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
\newunicodechar
eingeben müssen? Warum definiert ' tpmboxdraw
diese Zeichen überhaupt nicht? - Die
utf8
Die Codierung kennt ' solche Zeichen nicht. Der Grund, warum Sie das Zeichen und seinen Befehl definieren müssen - @Tobia Das Zeug mit
\newunicodechar
wird nicht benötigt. Das Paketpmboxdraw
verarbeitet 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 lmodern
unter 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\listfiles
tun soll? Das habe ich nicht gebraucht. (Pdf-LaTeX.) - @Henke
\listfiles
erstellt 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 files
nebenRecompile
und dannOther logs & files > log file
oben 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. 🙂