Tipărește caractere de desen cu casetă cu pdfLaTeX

Am nevoie să tipăresc câteva caractere Unicode (din familia desenelor de casete) în documentul meu. Am găsit această întrebare care este foarte asemănătoare cu a mea, dar este valabilă doar pentru XeLaTeX. Există o modalitate validă de a face acest lucru cu pdfLaTeX sau trebuie să folosesc XeLaTeX în schimb?

Răspuns

Puteți utiliza simbolurile , dacă este disponibil pe tastatură sau pe macrocomenzi.

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

introduceți descrierea imaginii aici

Comentarii

  • Este ' ok cu mediul textual, dar încă am aceeași problemă cu mediul de listare.
  • Mulțumesc, funcționează excelent. Dar puteți explica de ce trebuie să tastăm definițiile \newunicodechar? De ce nu ' t pmboxdraw definește în primul rând acele caractere?
  • utf8 codificarea nu ' nu cunoaște astfel de caractere. Motivul pentru care trebuie să definiți caracterul și comanda acestuia
  • @Tobia Lucrurile cu \newunicodechar nu sunt necesare. Pachetul pmboxdraw îl gestionează deja automat, vezi răspunsul meu.

Răspuns

Aceasta este o extensie la răspunsul Herbert „s și un răspuns la Tobia„ s comentariu .

Pachetul inputenc cu opțiunea de codificare utf8 permite utilizarea UTF-8 în fișierele de intrare TeX cu Motoare TeX pe 8 biți. Ca premisă, caracterele Unicode trebuie cunoscute, cum sunt mapate la codul TeX. Suportul UTF-8 al inputenc cuplează acest lucru cu codarea fontului. Prin urmare, pachetul pmboxdraw definește un cod de font artificial pmboxdraw și fișierul de mapare aferent pmboxdrawenc.dfu, care este apoi încărcat automat. Acest lucru simplifică exemplul lui Herbert în:

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

Rezultat

Compilat cu:

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

Lista versiunilor \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 și XeTeX acceptă caractere Unicode și pachetul inputenc este depreciat. Cu toate acestea, pmboxdrawenc.dfu poate fi încă folosit pentru a face suportul caractere active și extindere la simboluri:

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

Comentarii

  • Nu. Utilizarea sistemului care vine cu apt-get install texlive-xetex texlive-fonts-recommended lmodern pe Linux Mint 18 (Ubuntu 16.04) care pare a fi versiunea 2015.20160320-1, exemplul dvs. apare fără caracterele de linie. Trebuie să definesc explicit caracterele cu \newunicodechar. Poate că ' lipsesc alt pachet? Sau TeX Live este prea vechi?
  • @Tobia Întrebarea era să o faci pentru pdfTeX , nu pentru XeTeX. Am actualizat răspunsul și am adăugat o versiune pentru LuaTeX / XeTeX.
  • Am primit o eroare deoarece am greșit opțiunea [utf8x] pentru pachetul inputenc. Odată ce am corectat asta la \usepackage[utf8]{inputenc}, totul a funcționat bine. . . BTW, nu sunteți sigur ce ar trebui să facă \listfiles? Nu aveam nevoie de asta. (Pdf-LaTeX.)
  • @Henke \listfiles produce lista de versiuni afișată în răspuns.
  • Da, OK. Are sens. ' nu m-am deranjat niciodată despre aceste jurnale și fișiere de ieșire. În zgârietura exemplului dvs. a trebuit să mă scot puțin pentru a-l găsi – butonul Logs and output files de lângă Recompile, apoi Other logs & files > log file în dreapta sus. Versiunea din partea de sus pare a fi relativ recentă: pmboxdraw.sty 2019/12/05 v1.4 Poor man's box drawing characters (HO). BTW, răspunsul dvs. (fără newunicodechar) este mai bun decât cel acceptat și merită să fie votat în sus. 🙂

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *