Bonjour à tous, voici le petit défi :)

J'ai un texte rédigé en langue française. Il contient la chaîne de caractères « xml:id » dont je souhaite le rendu tel quel.

Malheureusement, lualatex insère une espace devant le double-point. Un indice pour t'aider dans ta quête : le paquetage polyglossia est chargé dans le préambule. Ce que j'ai déjà tenter : xml{:}id, {xml:id}, xml\string:id, $xml:id$ vraiment trop trop moche,

Merci de vos lumières.

Posée 12 Déc '19, 00:35

polymorphisme's gravatar image

polymorphisme
548924
Taux d'acceptation : 50%

Modifiée 13 Déc '19, 00:10

samcarter's gravatar image

samcarter
8.4k2817


Je pense que quelque chose comme xml:id n'est pas un texte normal, mais code, alors il devrait être \verb|xml:id| (ou avec des extensions listings, minted ....)

Si vous voulez texte normale: \NoAutoSpacing xml:id \AutoSpacing

Ouvrir dans l'éditeur Overleaf
% !TeX TS-program = lualatex

\documentclass{article}

\usepackage{polyglossia}
\setmainlanguage{french}

\begin{document}

\verb|xml:id|

\NoAutoSpacing xml:id \AutoSpacing

\end{document}
Lien permanent

Publiée 12 Déc '19, 00:58

samcarter's gravatar image

samcarter
8.4k2817
Taux d'acceptation : 56%

Modifiée 12 Déc '19, 01:08

2

Je ne connais pas bien luaLaTeX/polyglossia, mais il me semble que le code ci-dessus ne fonctionne pas (\NoAutoSpacing est défini par babel-french mais pas par polyglossia, et \AutoSpacing n'est pas défini du tout). La solution serait d'utiliser \nofrench@punctuation (cf. https://tex.stackexchange.com/questions/187864/remove-space-before-punctuation/187881)

(12 Déc '19, 13:16) nmarkey nmarkey's gravatar image
2

@nmarkeyy \NoAutoSpacing et \AutoSpacing sont en polyglossia depuis version 1.45. Si ça ne marche pas pour vous, peut-être mis a jour l'extension? \nofrench@punctuation est pour usage interne dans l'extension, pas dans le document

(12 Déc '19, 13:51) samcarter samcarter's gravatar image

@samcarter Ok, désolé. J'ai la version 1.44, je vais mettre à jour.

(12 Déc '19, 14:38) nmarkey nmarkey's gravatar image

On peut aussi utiliser la commande \string comme ceci

Ouvrir dans l'éditeur Overleaf
xml\string:id

mais je suis d'accord pour dire qu'il vaudrait mieux coder ça en verbatim si possible

Lien permanent

Publiée 12 Déc '19, 21:49

Le%20TeXnicien%20de%20surface's gravatar image

Le TeXnicien de surface
2.0k814
Taux d'acceptation : 27%

1

Je ne suis pas sûr que ça marche avec lualatex : \number\catcode \:

(12 Déc '19, 23:25) touhami touhami's gravatar image
2

Au risque de me tromper à nouveau : l'utilisation de \string est la solution classique avec (pdf)latex (elle est d'ailleurs listée dans la question de @polymorphisme), mais cette solution ne fonctionne pas avec xelatex ou lualatex.

(12 Déc '19, 23:27) nmarkey nmarkey's gravatar image

@Le TeXnicien de surface : Je confirme le post de nmarkey.

(15 Déc '19, 18:31) polymorphisme polymorphisme's gravatar image

@samcart En fait, cette chaîne de caractère est dans le titre d'une spécification donc je ne peux pas utiliser verbatim.

@nmarkey De mon côté, j'ai trouvé la même solution, et elle fonctionne très bien avec ma version 1.43 du paquetage polyglossia. Merci.

Lien permanent

Publiée 15 Déc '19, 18:41

polymorphisme's gravatar image

polymorphisme
548924
Taux d'acceptation : 50%

Modifiée 19 Déc '19, 20:12

1

\NoAutoSpacing est défini pour le paquetage polyglossia, vous devez mettre à jour l'extension.

(16 Déc '19, 14:08) samcarter samcarter's gravatar image

@samcarter Ok, c'est noté, merci. :)

(19 Déc '19, 20:11) polymorphisme polymorphisme's gravatar image

Le deux-points ne pose aucun problème en lualatex avec babel-french :

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper]{article}
\usepackage[french]{babel}
\begin{document}
xml:id C:\boi Mes documents http://monsite.fr 10:23 mais a: b!
\end{document}

Je précise que ceci ne fonctionne (sans espace parasite avant le deux-points) qu'avec lualatex.

Avec xelatex ou pdflatex, il faudrait coder (dans un groupe) :

Ouvrir dans l'éditeur Overleaf
{\Noautospacing xml:id}

car babel-french, contrairement à polyglossia 1.45 n'a pas de commande \AutoSpacing, l'idée est d'utiliser \NoAutoSpacing localement dans un groupe.

Lien permanent

Publiée 19 Déc '19, 18:44

dflipo's gravatar image

dflipo
2813
Taux d'acceptation : 16%

Modifiée 19 Déc '19, 18:48

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.