Skriv ut tegningstegn med pdfLaTeX

Jeg må skrive ut noen unicode-tegn (av bokstegningsfamilien) i dokumentet mitt. Jeg fant dette spørsmålet som ligner veldig på meg, men bare gjelder for XeLaTeX. Det er en gyldig måte å gjøre dette med pdfLaTeX eller må jeg bruke XeLaTeX i stedet?

Svar

Du kan bruke symbolene , hvis det er tilgjengelig på tastaturet eller makroene.

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

skriv inn bildebeskrivelse her

Kommentarer

  • Det ' er ok med ordrett miljø, men jeg har fortsatt det samme problemet med første listen over miljø.
  • Takk, dette fungerer bra. Men kan du forklare hvorfor vi trenger å skrive definisjonene \newunicodechar? Hvorfor definerer ikke ' t pmboxdraw disse tegnene i utgangspunktet?
  • utf8 koding kjenner ikke ' slike tegn. Årsaken til at du må definere tegnet og dets kommando
  • @Tobia Ting med \newunicodechar er ikke nødvendig. Pakke pmboxdraw håndterer den allerede automatisk, se svaret mitt.

Svar

Dette er en utvidelse av Herbert «s svar og et svar på Tobia» s kommentar .

Pakke inputenc med kodingsalternativ utf8 tillater bruk av UTF-8 i TeX-inndatafiler med 8-bit TeX-motorer. Som en forutsetning må Unicode-tegnene være kjent, hvordan de blir kartlagt til TeX-kode. UTF-8-støtten til inputenc kobler dette med fontkodingen. Derfor definerer pakken pmboxdraw en kunstig font som koder for pmboxdraw og den relaterte kartleggingsfilen pmboxdrawenc.dfu, som blir deretter automatisk lastet inn. 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

Kompilert med:

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

Versjonsliste 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-versjon

LuaTeX og XeTeX støtter Unicode-tegn og pakke inputenc avvikles. Imidlertid kan pmboxdrawenc.dfu fortsatt brukes til å gjøre det støttede aktive tegn og utvides til symbolene:

% 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

  • Nei. Bruker systemet som kommer inn med apt-get install texlive-xetex texlive-fonts-recommended lmodern på Linux Mint 18 (Ubuntu 16.04) som ser ut til å være versjon 2015.20160320-1, kommer eksemplet ditt uten linjetegnene. Jeg må eksplisitt definere tegnene med \newunicodechar. Kanskje jeg ' mangler en annen pakke? Eller jeg er min TeX Live for gammel?
  • @Tobia Spørsmålet var å gjøre det for pdfTeX , ikke XeTeX. Jeg har oppdatert svaret og lagt til en versjon for LuaTeX / XeTeX.
  • Jeg fikk en feil fordi jeg feilaktig hadde muligheten [utf8x] for pakken inputenc. Når jeg korrigerte det til \usepackage[utf8]{inputenc}, fungerte det bra. . . BTW, ikke sikker på hva \listfiles skal gjøre? Det trengte jeg ikke. (Pdf-LaTeX.)
  • @Henke \listfiles produserer versjonslisten vist i svaret.
  • Ja, OK. Det gir mening. Jeg ' har aldri brydd meg om disse loggene og utdatafilene før. I min skrap av eksemplet ditt måtte jeg peke litt for å finne det – knapp Logs and output files ved siden av Recompile, og deretter Other logs & files > log file øverst til høyre. Versjonen på neste side ser ut til å være relativt fersk: pmboxdraw.sty 2019/12/05 v1.4 Poor man's box drawing characters (HO). BTW, svaret ditt (uten newunicodechar) er bedre enn det aksepterte, og fortjener å bli oppstemt. 🙂

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *