3
1

Suite à ma précédente question relative à l'insertion automatique de l'espace fine insécable avec des guillemets, je tombe sur un nouveau problème.

Pour insérer une citation dans une citation, j'utilise, à la mode suisse, des guillemets simples : « ‹ … › ». Je constate que LaTeX n'insère pas automatiquement des espaces fines insécables ; ces guillemets simples étant des caractères rares, cela ne m'étonne pas. Du coup j'insère à la main les les espaces fines insécables par un copier-coller depuis wikipédia car l'ordinateur que j'utilise ne possède pas ce caractère (connu chez Unicode sous le doux sobriquet de U+202F) :

Ouvrir dans l'éditeur
\documentclass[12pt, francais, a4paper, BCOR = 0pt, DIV = 15]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[oldstyle, largesmallcaps, light]{kpfonts}
\usepackage{microtype}
\usepackage{babel}
\begin{document}
Blabla : « blabla ‹ blabla › blabla » blibli: hem!
\end{document}

Et là, catastrophe, ça ne compile pas. Ou plutôt si :

Ouvrir dans l'éditeur
! Package ucs Error: Unknown Unicode character 8239 = U+202F,
(ucs)                possibly declared in uni-32.def.
(ucs)                Type H to see if it is available with options.

See the ucs package documentation for explanation.
Type  H <return>  for immediate help.
 ...

l.57 ‹

Je tape H, un retour chariot et j'obtiens :

Ouvrir dans l'éditeur
? H
Unicode character 8239 = U+202F:
NARROW NO-BREAK SPACE
Character available with following options:
   autogenerated.
Enter I!<RET> to define the glyph.

Je tape donc I!, un retour chariot et j'obtiens :

Ouvrir dans l'éditeur
? I!
Please enter definition for unicode character 8239

\definition=

Je colle donc là le glyphe copié et la compilation continue, avec ce message préliminaire :

Ouvrir dans l'éditeur
Tip:
(ucs)                You may include
(ucs)                  \DeclareUnicodeCharacter {8239}{}
(ucs)                into your document source.

... et je constate que la compilation s'est en fait arrêtée à ce caractère !

Quant à inclure \DeclareUnicodeCharacter {8239}{ } dans le code-source, cela ne fonctionne pas : la compilation s'arrête.

Ouvrir dans l'éditeur
! TeX capacity exceeded, sorry [parameter stack size=10000].
\uc@checkopt@error #1#2#3#4#5->
                               \ifx \@nil #5\uc@errordrawopt {#1}{#2, #3}{#4...
l.57 ‹ 
           Texte à composer
!  ==> Fatal error occurred, no output PDF file produced!

Me voici donc arrêté. Pourquoi diantre LaTeX est-il capable de composer automatiquement des espaces fines insécables mais pas de les compiler copiées-collées ?

D'autre part, je constate que les typographies francophones supportées par l'extension babel sont french, francais, canadien, acadian (et frenchle). Je m'étonne de ne pas y voir listés les français de Belgique et de Suisse, pays à l'imprimerie de longue tradition. Ç'aurait été tellement plus simple de déclarer \usepackage[suisse, main = francais]{babel} et d'utiliser \begin{otherlanguage}{suisse} pour obtenir les guillemets de deuxième niveau désirés !

Enfin, je dois me tromper, mais je n'ai pas été foutu d'ouvrir la doc de frenchb autrement qu'en… anglais ! Existe-t-elle en français ? De plus, le lien renvoyé par le moteur de recherche de la CTAN est rompu !

Posée 11 Mai '16, 18:15

Pathe's gravatar image

Pathe ♦♦
7.4k28196245
Taux d'acceptation : 55%

Modifiée 11 Mai '16, 20:39

Encore des commandes inconnues de moi ! \/ compile mais ne crée pas d'espace, tandis que \, crée bien une espace fine qui fait mon affaire.

Quant à savoir si cette dernière est insécable, c'en est une autre.

(11 Mai '16, 19:00) Pathe ♦♦ Pathe's gravatar image

Je suis au regret de dire que la documentation de frenchb n'est plus disponible qu'en anglais. J'avoue que je ne comprends pas ce choix puisque cette extension est destinée principalement à un public francophone qui n'est pas censé lire l'anglais et pour qui cette documentation peut être difficile voire impossible à lire.

Au pire, je pense qu'il faudrait offrir une traduction en français.

(11 Mai '16, 21:44) unbonpetit ♦♦ unbonpetit's gravatar image
3

L'extension csquotes est capable de faire cela automatiquement lorsque la langue principale est l'allemand. J'ai regardé l'aide de csquotes mais il n'y a rien de similaire avec le français apparemment. Ca mérite le coup de demander une amélioration aux auteurs, j'ai l'impression

Ouvrir dans l'éditeur
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[german=swiss]{csquotes}
\begin{document}
    Blabla : \enquote{blabla \enquote{blabla} blabla} blibli: hem!
\end{document}
(12 Mai '16, 01:17) pluton pluton's gravatar image
2

@unbonpetit En fait, frenchb dispose d'une documentation en français mais celle-ci n'est pas fournie avec les distributions TeX pour des questions de licence.

(12 Mai '16, 10:28) denis ♦♦ denis's gravatar image

En déclarant le caractère U+202F comme étant l'espace fine classique insécable 0.16667em, cela donne pourtant de bons résultats, enfin, il me semble :

Ouvrir dans l'éditeur
\documentclass[12pt, francais, a4paper, BCOR = 0pt, DIV = 15]{scrartcl}
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{202F}{\ifhmode\kern0.16667em\relax\fi}
\usepackage[T1]{fontenc}
\usepackage[oldstyle, largesmallcaps, light]{kpfonts}
\usepackage{microtype}
\usepackage{babel}
\begin{document}
Blabla : « blabla ‹ blabla › blabla » blibli: hem!
\end{document}

alt text

Lien permanent

Publiée 11 Mai '16, 21:37

unbonpetit's gravatar image

unbonpetit ♦♦
1.8k18
Taux d'acceptation : 68%

Modifiée 11 Mai '16, 21:39

Je suis très heureux de cet exemple me permettant de comprendre comment remplir la commande \DeclareUnicodeCharacter{}{}.

En revanche, comment êtes-vous parvenu à la valeur de 0.16667 em ?

(11 Mai '16, 22:15) Pathe ♦♦ Pathe's gravatar image
3

L'espace fine est souvent le huitième de cadrat, soit .125em. La valeur de 0.1667em, soit le sixième de cadrat est la valeur retenue par frenchb. Je l'ai choisie pour garder une cohérence avec les espaces fines insérées par frenchb. Vous faites bien évidemment ce que vous souhaitez concernant la valeur de cette espace.

(11 Mai '16, 22:31) unbonpetit ♦♦ unbonpetit's gravatar image

L'extension csquotes est capable de faire cela automatiquement lorsque la langue principale est l'allemand. J'ai regardé l'aide de csquotes mais il n'y a rien de similaire avec le français apparemment. Ca mérite le coup de demander une amélioration aux auteurs, j'ai l'impression

Ouvrir dans l'éditeur
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[german=swiss]{csquotes}
\begin{document}
    Blabla : \enquote{blabla \enquote{blabla} blabla} blibli: hem!
\end{document}
(12 Mai '16, 01:17) pluton pluton's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.