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 lmodernpå 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\listfilesskal gjøre? Det trengte jeg ikke. (Pdf-LaTeX.) - @Henke
\listfilesproduserer 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 filesved 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 ' tpmboxdrawdisse tegnene i utgangspunktet?utf8koding kjenner ikke ' slike tegn. Årsaken til at du må definere tegnet og dets kommando\newunicodecharer ikke nødvendig. Pakkepmboxdrawhåndterer den allerede automatisk, se svaret mitt.