Imprimir caracteres de dibujo de caja con pdfLaTeX

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} 

ingrese la descripción de la imagen aquí

Comentarios

  • Está ' está bien con el entorno literal pero todavía tengo el mismo problema con el entorno lstlisting.
  • Gracias, esto funciona muy bien. Pero, ¿puede explicarnos por qué necesitamos escribir las definiciones de \newunicodechar? ¿Por qué no ' t pmboxdraw define esos caracteres en primer lugar?
  • El utf8 la codificación no ' no conoce tales caracteres. La razón por la que tienes que definir el carácter y su comando
  • @Tobia Las cosas con \newunicodechar no son necesarias. El paquete pmboxdraw ya lo maneja automáticamente, vea mi respuesta.

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} 

Resultado

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 paquete inputenc. 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 a Recompile y luego Other 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 (sin newunicodechar) es mejor que la aceptada y merece ser votada a favor. 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *