Jai besoin dimprimer quelques caractères Unicode (de la famille de dessin de boîte) dans mon document. Jai trouvé cette question qui est très similaire à la mienne mais nest valable que pour XeLaTeX. Il existe un moyen valide de le faire avec pdfLaTeX ou je dois utiliser XeLaTeX à la place?
Réponse
Vous pouvez utiliser les symboles , si disponible sur le clavier ou les macros.
\documentclass{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{pmboxdraw} \usepackage{newunicodechar} \newunicodechar{└}{\textSFii} \newunicodechar{├}{\textSFviii} \newunicodechar{─}{\textSFx} \begin{document} \begin{verbatim} ├── Maildir/ └── scripts/ ├── backup.sh* └── OLD/ ├── backup_cleanup.sh.old └── backup.sh.old* \end{verbatim} \end{document}
Commentaires
Réponse
Ceci est une extension de la réponse dHerbert et une réponse au commentaire de Tobia .
Le package inputenc
avec option dencodage utf8
permet lutilisation de UTF-8 dans les fichiers dentrée TeX avec Moteurs TeX 8 bits. Comme condition préalable, les caractères Unicode doivent être connus, comment ils sont mappés au code TeX. Le support UTF-8 de inputenc
le couple avec le codage de la police. Par conséquent, le package pmboxdraw
définit un codage de police artificiel pmboxdraw
et le fichier de mappage associé pmboxdrawenc.dfu
, qui est alors automatiquement chargé. Cela simplifie lexemple de Herbert en:
% arara: pdflatex \listfiles \documentclass{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{pmboxdraw} \begin{document} \begin{verbatim} ├── Maildir/ └── scripts/ ├── backup.sh* └── OLD/ ├── backup_cleanup.sh.old └── backup.sh.old* \end{verbatim} \end{document}
Compilé avec:
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016)
Liste des versions de \listfiles
:
*File List* article.cls 2014/09/29 v1.4h Standard LaTeX document class size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option) fontenc.sty t1enc.def 2005/09/27 v1.99g Standard LaTeX file inputenc.sty 2015/03/17 v1.2c Input encoding file utf8.def 2016/02/28 v1.1s UTF-8 support for inputenc t1enc.dfu 2016/02/28 v1.1s UTF-8 support for inputenc ot1enc.dfu 2016/02/28 v1.1s UTF-8 support for inputenc omsenc.dfu 2016/02/28 v1.1s UTF-8 support for inputenc pmboxdraw.sty 2011/03/24 v1.1 Poor man"s box drawing characters (HO) ltxcmds.sty 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) kvsetkeys.sty 2012/04/25 v1.16 Key value parser (HO) infwarerr.sty 2010/04/08 v1.3 Providing info/warning/error messages (HO) etexcmds.sty 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) ifluatex.sty 2010/03/01 v1.3 Provides the ifluatex switch (HO) kvdefinekeys.sty 2011/04/07 v1.3 Define keys (HO) pmboxdrawenc.dfu 2011/03/24 v1.1 UTF-8 support for box drawing characters kvoptions.sty 2011/06/30 v3.11 Key value format for package options (HO) keyval.sty 2014/10/28 v1.15 key=value parser (DPC) t1cmtt.fd 2014/09/29 v2.5h Standard LaTeX font definitions ***********
Version LuaTeX / XeTeX
LuaTeX et XeTeX prennent en charge les caractères Unicode et le package inputenc
est obsolète. Cependant, pmboxdrawenc.dfu
peut toujours être utilisé pour rendre le caractères actifs et se développent jusquaux symboles:
% arara: xelatex % or % arara: lualatex \documentclass{article} \usepackage{pmboxdraw} \begingroup \def\DeclareUnicodeCharacter#1{% \begingroup \lccode`\~="#1\relax \lowercase{\endgroup \global\catcode`~=\active \gdef~% }% }% \input{pmboxdrawenc.dfu}% \endgroup \begin{document} \begin{verbatim} ├── Maildir/ └── scripts/ ├── backup.sh* └── OLD/ ├── backup_cleanup.sh.old └── backup.sh.old* \end{verbatim} \end{document}
Commentaires
- Non. Utilisation du système fourni avec
apt-get install texlive-xetex texlive-fonts-recommended lmodern
sur Linux Mint 18 (Ubuntu 16.04) qui semble être la version 2015.20160320-1, votre exemple sort sans les caractères de ligne. Je dois définir explicitement les caractères avec\newunicodechar
. Peut-être que ' manque un autre paquet? Ou je mon TeX Live est-il trop vieux? - @Tobia La question était de le faire pour pdfTeX , pas pour XeTeX. Jai mis à jour la réponse et ajouté une version pour LuaTeX / XeTeX.
- Jai eu une erreur car jai eu par erreur loption
[utf8x]
pour le paquetinputenc
. Une fois que jai corrigé cela en\usepackage[utf8]{inputenc}
, tout a bien fonctionné. . . BTW, vous ne savez pas ce que\listfiles
est censé faire? Je navais pas besoin de ça. (Pdf-LaTeX.) - @Henke
\listfiles
produit la liste des versions affichée dans la réponse. - Ouais, OK. Ça a du sens. Je ' je ne me suis jamais soucié de ces journaux et fichiers de sortie auparavant. Dans mon gratte de votre exemple , jai dû fouiller un peu pour le trouver – bouton
Logs and output files
à côté deRecompile
, puisOther logs & files > log file
en haut à droite. La version au verso semble être relativement récente:pmboxdraw.sty 2019/12/05 v1.4 Poor man's box drawing characters (HO)
. BTW, votre réponse (sansnewunicodechar
) est meilleure que celle acceptée, et mérite dêtre votée pour. 🙂
\newunicodechar
? Pourquoi ' tpmboxdraw
définit-il ces caractères en premier lieu?utf8
le codage ne ' ne connaît pas ces caractères. La raison pour laquelle vous devez définir le caractère et sa commande\newunicodechar
nest pas nécessaire. Le packagepmboxdraw
le gère déjà automatiquement, voir ma réponse.