Skriva ut ritningstecken med pdfLaTeX

Jag måste skriva ut några unicode-tecken (av lådteckningens familj) i mitt dokument. Jag hittade den här frågan som är mycket lik min men är endast giltig för XeLaTeX. Det finns ett giltigt sätt att göra detta med pdfLaTeX eller måste jag istället använda XeLaTeX?

Svar

Du kan använda symbolerna , om det finns på tangentbordet eller makron.

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

ange bildbeskrivning här

Kommentarer

  • Det ' är ok med verbatim miljö men jag har fortfarande samma problem med lstlista miljö.
  • Tack, det här fungerar bra. Men kan du förklara varför vi måste skriva definitionerna \newunicodechar? Varför definierar inte ' t pmboxdraw dessa tecken i första hand?
  • utf8 -kodning känner inte ' sådana tecken. Anledningen till att du måste definiera karaktären och dess kommando
  • @Tobia Grejerna med \newunicodechar behövs inte. Paketet pmboxdraw hanterar det redan automatiskt, se mitt svar.

Svar

Detta är en förlängning av Herbert ”s svar och ett svar på Tobia” s kommentar .

Paket inputenc med kodningsalternativ utf8 tillåter användning av UTF-8 i TeX-ingångsfiler med 8-bitars TeX-motorer. Som en förutsättning måste Unicode-tecknen vara kända, hur de mappas till TeX-kod. UTF-8-stöd för inputenc kopplar detta med teckensnittskodningen. Därför definierar paket pmboxdraw en artificiell typsnitt som kodar för pmboxdraw och den relaterade mappningsfilen pmboxdrawenc.dfu laddas sedan automatiskt. Detta förenklar Herberts exempel till:

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

Resultat

Sammanställt med:

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

Versionslista med \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 och XeTeX har stöd för Unicode-tecken och paket inputenc är utfasad. pmboxdrawenc.dfu kan fortfarande användas för att göra det stöd tecken aktiva och utökas till symbolerna:

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

Kommentarer

  • Nej. Använd systemet som kommer in med apt-get install texlive-xetex texlive-fonts-recommended lmodern på Linux Mint 18 (Ubuntu 16.04) som verkar vara version 2015.20160320-1, ditt exempel kommer ut utan linjetecknen. Jag måste uttryckligen definiera tecknen med \newunicodechar. Kanske saknar jag ' något annat paket? Eller jag är min TeX Live för gammal?
  • @Tobia Frågan var att göra det för pdfTeX , inte XeTeX. Jag har uppdaterat svaret och lagt till en version för LuaTeX / XeTeX.
  • Jag fick ett fel eftersom jag felaktigt hade valet [utf8x] för paketet inputenc. När jag rättat till det till \usepackage[utf8]{inputenc}, fungerade allt bra. . . BTW, inte säker på vad \listfiles ska göra? Jag behövde inte det. (Pdf-LaTeX.)
  • @Henke \listfiles producerar den versionslista som visas i svaret.
  • Ja, OK. Det låter vettigt. Jag ' har aldrig brytt mig om dessa loggar och utdatafiler förut. I min skrapa av ditt exempel var jag tvungen att peka lite för att hitta den – knapp Logs and output files bredvid Recompile och sedan Other logs & files > log file uppe till höger. Versionen på nästa sida verkar vara relativt ny: pmboxdraw.sty 2019/12/05 v1.4 Poor man's box drawing characters (HO). BTW, ditt svar (utan newunicodechar) är bättre än det accepterade och förtjänar att bli röstat. 🙂

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *