Drucken von Box-Zeichen mit pdfLaTeX

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} 

Geben Sie hier die Bildbeschreibung ein.

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 ' t pmboxdraw 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 Paket pmboxdraw 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} 

Ergebnis

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 Paket inputenc. 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 neben Recompile und dann Other 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 (ohne newunicodechar) besser als die akzeptierte und verdient eine positive Bewertung. 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.