Stampa i caratteri del box drawing con pdfLaTeX

Ho bisogno di stampare alcuni caratteri Unicode (della famiglia del box drawing) nel mio documento. Ho trovato questa domanda che è molto simile alla mia ma è valida solo per XeLaTeX. Cè un modo valido per farlo con pdfLaTeX o devo usare XeLaTeX invece?

Risposta

Puoi usare i simboli , se disponibile sulla tastiera o sulle macro.

\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} 

inserisci qui la descrizione dellimmagine

Commenti

  • È ' ok con lambiente verbatim ma ho ancora lo stesso problema con lambiente lstlisting.
  • Grazie, funziona alla grande. Ma puoi spiegare perché dobbiamo digitare le definizioni \newunicodechar? Perché ' t pmboxdraw definisce questi caratteri in primo luogo?
  • Il utf8 la codifica ' non conosce tali caratteri. Il motivo per cui devi definire il carattere e il suo comando
  • @Tobia Le cose con \newunicodechar non sono necessarie. Il pacchetto pmboxdraw lo gestisce già automaticamente, vedi la mia risposta.

Risposta

Questa è unestensione della risposta di Herbert e una risposta al commento .

Il pacchetto inputenc con opzione di codifica utf8 consente luso di UTF-8 nei file di input TeX con Motori TeX a 8 bit. Come prerequisito, i caratteri Unicode devono essere conosciuti, come sono mappati al codice TeX. Il supporto UTF-8 di inputenc lo accoppia con la codifica del carattere. Pertanto il pacchetto pmboxdraw definisce una codifica del carattere artificiale pmboxdraw e il relativo file di mappatura pmboxdrawenc.dfu, che viene quindi caricato automaticamente. Questo semplifica lesempio di Herbert in:

% 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} 

Risultato

Compilato con:

This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) 

Elenco delle versioni di \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 *********** 

LuaTeX / XeTeX version

LuaTeX e XeTeX supportano i caratteri Unicode e il pacchetto inputenc è obsoleto. Tuttavia, pmboxdrawenc.dfu può ancora essere utilizzato per rendere supportato caratteri attivi e si espandono nei simboli:

% 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} 

Commenti

  • No. Utilizzando il sistema fornito con apt-get install texlive-xetex texlive-fonts-recommended lmodern su Linux Mint 18 (Ubuntu 16.04) che sembra essere la versione 2015.20160320-1, il tuo esempio esce senza i caratteri di riga. Devo definire esplicitamente i caratteri con \newunicodechar. Forse ' mi manca qualche altro pacchetto? Oppure io Il mio TeX Live è troppo vecchio?
  • @Tobia La domanda era di farlo per pdfTeX , non per XeTeX. Ho aggiornato la risposta e aggiunto una versione per LuaTeX / XeTeX.
  • Ho ricevuto un errore perché avevo erroneamente lopzione [utf8x] per il pacchetto inputenc. Dopo averlo corretto in \usepackage[utf8]{inputenc}, ha funzionato tutto bene. . . A proposito, non sei sicuro di cosa dovrebbe fare \listfiles? Non ne avevo bisogno. (Pdf-LaTeX.)
  • @Henke \listfiles produce lelenco delle versioni mostrato nella risposta.
  • Sì, OK. Questo ha senso. ' non mi sono mai preoccupato di questi log e file di output prima dora. Nel mio graffio del tuo esempio ho dovuto curiosare un po per trovarlo: pulsante Logs and output files accanto a Recompile, quindi Other logs & files > log file in alto a destra. La versione sul retro sembra essere relativamente recente: pmboxdraw.sty 2019/12/05 v1.4 Poor man's box drawing characters (HO). A proposito, la tua risposta (senza newunicodechar) è migliore di quella accettata e merita di essere votata. 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *