Imprimer des caractères de dessin de boîte avec pdfLaTeX

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} 

entrez la description de limage ici

Commentaires

  • Ça ' est ok avec lenvironnement verbatim mais jai toujours le même problème avec lenvironnement lstlisting.
  • Merci, cela fonctionne très bien. Mais pouvez-vous expliquer pourquoi nous devons taper les définitions de \newunicodechar? Pourquoi ' t pmboxdraw définit-il ces caractères en premier lieu?
  • Le 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
  • @Tobia Le truc avec \newunicodechar nest pas nécessaire. Le package pmboxdraw le gère déjà automatiquement, voir ma réponse.

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} 

Résultat

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 paquet inputenc. 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é de Recompile, puis Other 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 (sans newunicodechar) est meilleure que celle acceptée, et mérite dêtre votée pour. 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *