Tekenkaders afdrukken met pdfLaTeX

Ik moet enkele Unicode-tekens (van de kadertekeningfamilie) in mijn document afdrukken. Ik heb deze vraag gevonden die erg lijkt op de mijne, maar alleen geldig is voor XeLaTeX. Is er een geldige manier om dit te doen met pdfLaTeX of moet ik in plaats daarvan XeLaTeX gebruiken?

Antwoord

Je kunt de symbolen gebruiken , indien beschikbaar op het toetsenbord, of de macros.

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

voer de beschrijving van de afbeelding hier in

Reacties

  • Het is ' ok met een verbatim-omgeving, maar ik heb nog steeds hetzelfde probleem met de lstlisting-omgeving.
  • Bedankt, dit werkt geweldig. Maar kun je uitleggen waarom we de \newunicodechar -definities moeten typen? Waarom definieert niet ' t pmboxdraw die tekens in de eerste plaats?
  • De utf8 codering kent geen ' dergelijke karakters. De reden waarom je het karakter en zijn commando moet definiëren
  • @Tobia Het spul met \newunicodechar is niet nodig. Pakket pmboxdraw handelt het al automatisch af, zie mijn antwoord.

Antwoord

Dit is een uitbreiding op Herbert “s antwoord en een antwoord op Tobia” s opmerking .

Pakket inputenc met coderingsoptie utf8 staat het gebruik van UTF-8 toe in TeX-invoerbestanden met 8-bit TeX-motoren. Voorwaarde is dat de Unicode-tekens bekend zijn en hoe ze zijn toegewezen aan TeX-code. De UTF-8-ondersteuning van inputenc koppelt dit aan de lettertypecodering. Daarom definieert pakket pmboxdraw een kunstmatige lettertypecodering pmboxdraw en het gerelateerde toewijzingsbestand pmboxdrawenc.dfu, dat wordt dan automatisch geladen. Dit vereenvoudigt het voorbeeld van Herbert tot:

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

Resultaat

Gecompileerd met:

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

Versielijst van \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-versie

LuaTeX en XeTeX ondersteunen Unicode-tekens en pakket inputenc is verouderd. pmboxdrawenc.dfu kan echter nog steeds worden gebruikt om de ondersteunde tekens actief en uitbreiden naar de symbolen:

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

Reacties

  • Nee. Met behulp van het systeem dat wordt geleverd in met apt-get install texlive-xetex texlive-fonts-recommended lmodern op Linux Mint 18 (Ubuntu 16.04) die versie 2015.20160320-1 lijkt te zijn, je voorbeeld komt uit zonder de lijntekens. Ik moet de tekens expliciet definiëren met \newunicodechar. Misschien mis ik ' een ander pakket? Of Is mijn TeX Live te oud?
  • @Tobia De vraag was om het te doen voor pdfTeX , niet voor XeTeX. Ik heb het antwoord bijgewerkt en een versie voor LuaTeX / XeTeX toegevoegd.
  • Ik kreeg een foutmelding omdat ik ten onrechte de optie [utf8x] had voor het pakket inputenc. Toen ik dat eenmaal had gecorrigeerd naar \usepackage[utf8]{inputenc}, werkte het allemaal prima.Trouwens, weet je niet zeker wat \listfiles moet doen? Ik had dat niet nodig. (Pdf-LaTeX.)
  • @Henke \listfiles produceert de versielijst die in het antwoord wordt getoond.
  • Ja, OK. Dat is logisch. Ik ' heb me nog nooit druk gemaakt over deze logboeken en uitvoerbestanden. In mijn kras van je voorbeeld moest ik een beetje rondneuzen om het te vinden – knop Logs and output files naast Recompile, en dan Other logs & files > log file rechtsboven. De versie op de ommezijde lijkt relatief recent te zijn: pmboxdraw.sty 2019/12/05 v1.4 Poor man's box drawing characters (HO). Trouwens, je antwoord (zonder newunicodechar) is beter dan het geaccepteerde antwoord, en verdient het om te worden geapprecieerd. 🙂

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *