Udskriv bokstegningstegn med pdfLaTeX

Jeg har brug for at udskrive nogle unicode-tegn (af bokstegningens familie) i mit dokument. Jeg fandt dette spørgsmål , der minder meget om mit, men kun gælder for XeLaTeX. Der er en gyldig måde at gøre dette med pdfLaTeX eller jeg er nødt til at bruge XeLaTeX i stedet?

Svar

Du kan bruge symbolerne , hvis det er tilgængeligt på tastaturet eller makroerne.

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

indtast billedbeskrivelse her

Kommentarer

  • Det ' er ok med ordret miljø, men jeg har stadig det samme problem med første liste miljø.
  • Tak, dette fungerer godt. Men kan du forklare, hvorfor vi skal skrive \newunicodechar definitionerne? Hvorfor definerer ' t pmboxdraw disse tegn i første omgang?
  • utf8 kodning kender ikke ' sådanne tegn. Årsagen til, at du skal definere tegnet og dets kommando
  • @Tobia Tingene med \newunicodechar er ikke nødvendige. Pakke pmboxdraw håndterer den allerede automatisk, se mit svar.

Svar

Dette er en udvidelse af Herbert “s svar og et svar på Tobia” s kommentar .

Pakke inputenc med kodningsindstilling utf8 tillader brug af UTF-8 i TeX-inputfiler med 8-bit TeX-motorer. Som en forudsætning skal Unicode-tegnene være kendt, hvordan de kortlægges til TeX-kode. UTF-8-understøttelsen af inputenc parrer dette med skrifttypekodningen. Derfor definerer pakke pmboxdraw en kunstig skrifttype, der koder pmboxdraw og den tilknyttede tilknytningsfil pmboxdrawenc.dfu, som indlæses derefter automatisk. Dette forenkler Herberts eksempel til:

% 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

Kompileret med:

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

Versionsliste 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 og XeTeX understøtter Unicode-tegn og pakke inputenc er udfaset. pmboxdrawenc.dfu kan dog stadig bruges til at gøre det understøttede aktive tegn og udvides til symbolerne:

% 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. Brug af det system, der kommer ind med apt-get install texlive-xetex texlive-fonts-recommended lmodern på Linux Mint 18 (Ubuntu 16.04), som ser ud til at være version 2015.20160320-1, kommer dit eksempel ud uden linjetegnene. Jeg skal eksplicit definere tegnene med \newunicodechar. Måske mangler jeg ' en anden pakke? Eller jeg er min TeX Live for gammel?
  • @Tobia Spørgsmålet var at gøre det til pdfTeX , ikke XeTeX. Jeg har opdateret svaret og tilføjet en version til LuaTeX / XeTeX.
  • Jeg fik en fejl, fordi jeg fejlagtigt havde muligheden [utf8x] til pakken inputenc. Når jeg rettede det til \usepackage[utf8]{inputenc}, fungerede det hele fint. . . BTW, er du ikke sikker på, hvad \listfiles skal gøre? Jeg havde ikke brug for det. (Pdf-LaTeX.)
  • @Henke \listfiles producerer den oversigtsliste, der vises i svaret.
  • Ja, OK. Det giver mening. Jeg ' har aldrig generet disse logfiler og outputfiler før. I min skrabe af dit eksempel måtte jeg stikke lidt rundt for at finde det – knap Logs and output files ved siden af Recompile, og derefter Other logs & files > log file øverst til højre. Versionen på næste side synes at være relativt ny: pmboxdraw.sty 2019/12/05 v1.4 Poor man's box drawing characters (HO). BTW, dit svar (uden newunicodechar) er bedre end det accepterede og fortjener at blive opstemt. 🙂

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *