Listados y caracteres Unicode

Listados y caracteres Unicode

Quiero escribir algunos caracteres Unicode en lstlistingel entorno, pero se muestran en línea en el resultado, lo cual no es lo que esperaba. ¿Cómo puedo hacer que funcione como caracteres estándar? Gracias.

\documentclass{article}

\usepackage{fontspec}
\setmonofont{Consolas}

\usepackage{listings}
\lstset{
    basicstyle=\ttfamily
}

\begin{document}
    \begin{lstlisting}
    \end{lstlisting}    
\end{document}

Respuesta1

Lo siento si encuentras mi respuesta inapropiada, pero después de jugar un rato con tu código, la variante más fácil que encontré es cambiar del lstlistingpaquete a minted.

Por qué minted?

Ventajas:

  • Funciona muy bien con pdflatex, xelatex, etc.
  • Admite muchos más idiomas para resaltar quelstlisting
  • A veces el resaltado se ve mejor.
  • No tiene problemas con los caracteres UTF-8 listos para usar

Contras:

  • Requiere software adicional (aunque la instalación tarda entre 2 y 5 minutos)
  • Necesita editar los indicadores del comando de compilación (otros 30 segundos)

La buena noticia es quesoftware adicionalLo mencionado anteriormente es Python, que probablemente venga con su sistema si usa OS X o cualquier distribución popular de Linux, y su paquete Pygments, que se puede instalar con una línea en el shell.

Puedes dirigirte aminted manualy consulte la sección 2.1, las instrucciones son muy breves e informativas.

También necesitas verificar la configuración de tu editor TeX y cambiar algo como

/Library/tex/texbin/xelatex -synctex=1 %.tex

agregando -shell-escapebandera, por lo que ahora se ve algo así como

/Library/tex/texbin/xelatex -shell-escape -synctex=1 %.tex

Esto es para permitir que XeLaTeX llame a cosas fuera de su "zona de pruebas" (en nuestro caso para llamar a Python).

Después de estos pasos ya estará listo para usar minted. Nunca más será necesaria ninguna configuración.


Ahora tu MWE, adaptado para minted:

\documentclass{article}

\usepackage{fontspec}
\setmonofont{Consolas}

\usepackage{minted}

\begin{document}
    \begin{minted}{text}
    \end{minted}    
\end{document}

Observe la opción {text}: es para especificar el idioma (en nuestro caso, texto sin formato).

Y el resultado:

ingrese la descripción de la imagen aquí


PD: Nunca he trabajado con él mintedantes, pero tratando de resolver tu problema pasé más de 40 minutos jugando lstlistingy solo 2 minutos instalándolo y acostumbrándome minted, así que definitivamente vale la pena intentarlo.

información relacionada