Necesito imprimir algunos caracteres Unicode (de la familia de dibujos de caja) en mi documento. Encontré esta pregunta que es muy similar a la mía, pero es válida solo para XeLaTeX. ¿Hay una forma válida de hacer esto con pdfLaTeX o tengo que usar XeLaTeX en su lugar?
Respuesta
Puedes usar los símbolos , si está disponible en el teclado o en las 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}
Comentarios
Respuesta
Esta es una extensión de la respuesta de Herbert y una respuesta al comentario .
El paquete inputenc
con la opción de codificación utf8
permite el uso de UTF-8 en archivos de entrada TeX con Motores TeX de 8 bits. Como requisito previo, se deben conocer los caracteres Unicode, cómo se asignan al código TeX. La compatibilidad con UTF-8 de inputenc
combina esto con la codificación de fuentes. Por lo tanto, el paquete pmboxdraw
define una codificación de fuente artificial pmboxdraw
y el archivo de mapeo relacionado pmboxdrawenc.dfu
, que luego se carga automáticamente. Esto simplifica el ejemplo de Herbert a:
% 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}
Compilado con:
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016)
Lista de versiones de \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 ***********
Versión LuaTeX / XeTeX
LuaTeX y XeTeX admiten caracteres Unicode y el paquete inputenc
está en desuso. Sin embargo, pmboxdrawenc.dfu
todavía se puede usar para hacer caracteres activos y expandidos a los símbolos:
% 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}
Comentarios
- Nop. Usando el sistema que viene con
apt-get install texlive-xetex texlive-fonts-recommended lmodern
en Linux Mint 18 (Ubuntu 16.04) que parece ser la versión 2015.20160320-1, su ejemplo sale sin los caracteres de línea. Tengo que definir explícitamente los caracteres con\newunicodechar
. ¿Quizás ' me falta algún otro paquete? O ¿Mi TeX Live es demasiado viejo? - @Tobia La pregunta era hacerlo para pdfTeX , no para XeTeX. Actualicé la respuesta y agregué una versión para LuaTeX / XeTeX.
- Recibí un error porque por error tenía la opción
[utf8x]
para el paqueteinputenc
. Una vez que lo corrigí a\usepackage[utf8]{inputenc}
, todo funcionó bien. . . Por cierto, ¿no estás seguro de qué se supone que debe hacer\listfiles
? Yo no necesitaba eso. (Pdf-LaTeX.) - @Henke
\listfiles
produce la lista de versiones que se muestra en la respuesta. - Sí, de acuerdo. Eso tiene sentido. ' nunca antes me había preocupado por estos registros y archivos de salida. En mi cero de su ejemplo , tuve que hurgar un poco para encontrarlo: el botón
Logs and output files
junto aRecompile
y luegoOther logs & files > log file
en la esquina superior derecha. La versión al dorso parece ser relativamente reciente:pmboxdraw.sty 2019/12/05 v1.4 Poor man's box drawing characters (HO)
. Por cierto, su respuesta (sinnewunicodechar
) es mejor que la aceptada y merece ser votada a favor. 🙂
\newunicodechar
? ¿Por qué no ' tpmboxdraw
define esos caracteres en primer lugar?utf8
la codificación no ' no conoce tales caracteres. La razón por la que tienes que definir el carácter y su comando\newunicodechar
no son necesarias. El paquetepmboxdraw
ya lo maneja automáticamente, vea mi respuesta.