Ich muss einige Unicode-Zeichen (der Box-Zeichenfamilie) in meinem Dokument drucken. Ich habe diese -Frage gefunden, die meiner sehr ähnlich ist, aber nur für XeLaTeX gültig ist. Es gibt eine gültige Möglichkeit, dies mit pdfLaTeX zu tun, oder ich muss stattdessen XeLaTeX verwenden?
Antwort
Sie können die Symbole verwenden , falls auf der Tastatur oder in den Makros verfügbar.
\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} 
Kommentare
- ' ist in Ordnung mit wörtlicher Umgebung, aber ich habe immer noch das gleiche Problem mit lstlisting Umgebung.
 -  Danke, das funktioniert großartig. Aber können Sie erklären, warum wir die Definitionen 
\newunicodechareingeben müssen? Warum definiert ' tpmboxdrawdiese Zeichen überhaupt nicht? -  Die 
utf8Die Codierung kennt ' solche Zeichen nicht. Der Grund, warum Sie das Zeichen und seinen Befehl definieren müssen -  @Tobia Das Zeug mit 
\newunicodecharwird nicht benötigt. Das Paketpmboxdrawverarbeitet es bereits automatisch, siehe meine Antwort. 
Antwort
Dies ist eine Erweiterung von Herberts Antwort und eine Antwort auf Tobias Kommentar .
 Paket inputenc mit Codierungsoption utf8 ermöglicht die Verwendung von UTF-8 in TeX-Eingabedateien mit 8-Bit-TeX-Engines. Voraussetzung ist, dass die Unicode-Zeichen bekannt sind, wie sie dem TeX-Code zugeordnet sind. Die UTF-8-Unterstützung von inputenc koppelt dies mit der Schriftkodierung. Daher definiert das Paket pmboxdraw eine künstliche Schriftcodierung pmboxdraw und die zugehörige Zuordnungsdatei pmboxdrawenc.dfu, die wird dann automatisch geladen. Dies vereinfacht Herberts Beispiel zu: 
% 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} 
Kompiliert mit:
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) 
 Versionsliste von \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 und XeTeX unterstützen Unicode-Zeichen und das Paket inputenc ist veraltet. pmboxdrawenc.dfu kann jedoch weiterhin verwendet werden, um die Unterstützung zu gewährleisten Zeichen aktiv und erweitern zu den Symbolen: 
% 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} 
Kommentare
-  Nein. Verwenden Sie das kommende System In 
apt-get install texlive-xetex texlive-fonts-recommended lmodernunter Linux Mint 18 (Ubuntu 16.04), das anscheinend die Version 2015.20160320-1 ist, wird Ihr Beispiel ohne die Zeilenzeichen ausgegeben. Ich muss die Zeichen explizit mit\newunicodechar. Vielleicht fehlt mir ' ein anderes Paket? Oder ich Ist mein TeX Live zu alt? - @Tobia Die Frage war, es für pdfTeX zu tun, nicht für XeTeX. Ich habe die Antwort aktualisiert und eine Version für LuaTeX / XeTeX hinzugefügt.
 -  Ich habe eine Fehlermeldung erhalten, weil ich fälschlicherweise die Option 
[utf8x]für das Paketinputenc. Nachdem ich das auf\usepackage[utf8]{inputenc}korrigiert hatte, funktionierte alles einwandfrei. . . Übrigens, nicht sicher, was\listfilestun soll? Das habe ich nicht gebraucht. (Pdf-LaTeX.) -  @Henke 
\listfileserstellt die in der Antwort angezeigte Versionsliste. -  Ja, OK. Das macht Sinn. Ich ' habe mich noch nie um diese Protokolle und Ausgabedateien gekümmert. In meinem  Kratzer Ihres Beispiels  musste ich ein wenig herumstöbern, um es zu finden – Schaltfläche 
Logs and output filesnebenRecompileund dannOther logs & files > log fileoben rechts. Die Version auf der Rückseite scheint relativ neu zu sein:pmboxdraw.sty 2019/12/05 v1.4 Poor man's box drawing characters (HO). Übrigens ist Ihre Antwort (ohnenewunicodechar) besser als die akzeptierte und verdient eine positive Bewertung. 🙂