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}
Kommentarer
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}
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 pakkeninputenc
. 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 avRecompile
, og deretterOther 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 (utennewunicodechar
) er bedre enn det aksepterte, og fortjener å bli oppstemt. 🙂
\newunicodechar
? Hvorfor definerer ikke ' tpmboxdraw
disse tegnene i utgangspunktet?utf8
koding kjenner ikke ' slike tegn. Årsaken til at du må definere tegnet og dets kommando\newunicodechar
er ikke nødvendig. Pakkepmboxdraw
håndterer den allerede automatisk, se svaret mitt.