Listagens e caracteres unicode

Listagens e caracteres unicode

Quero escrever alguns caracteres Unicode no lstlistingambiente, mas eles são exibidos embutidos na saída, o que não é o que estou esperando. Como posso fazer com que funcione como caracteres padrão? Obrigado.

\documentclass{article}

\usepackage{fontspec}
\setmonofont{Consolas}

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

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

Responder1

Lamento se você achou minha resposta inadequada, mas depois de brincar um pouco com seu código, a variante mais fácil que encontrei foi mudar de lstlistingpacote para minted.

Por que minted?

Prós:

  • Funciona muito bem com pdflatex, xelatex e assim por diante
  • Suporta muito mais idiomas para destacar do quelstlisting
  • Às vezes, o realce fica melhor
  • Não tem problemas com caracteres UTF-8 prontos para uso

Contras:

  • Requer software adicional (embora demore de 2 a 5 minutos para instalar)
  • Precisa editar os sinalizadores de comando de compilação (mais 30 segundos)

A boa notícia é quesoftware adicionalmencionado acima é o Python, que provavelmente virá com o seu sistema se você usar o OS X ou qualquer distribuição Linux popular, e seu pacote Pygments, que pode ser instalado com uma linha no shell.

Você pode ir paraminted manuale verifique a seção 2.1, as instruções são muito curtas e informativas.

Além disso, você precisa verificar as configurações do editor TeX e alterar algo como

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

adicionando -shell-escapeflag, então agora parece algo como

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

Isso permite que o XeLaTeX chame coisas fora de sua "sandbox" (no nosso caso, para chamar Python).

Após essas etapas você estará pronto para usar minted. Nenhuma configuração será necessária novamente.


Agora seu MWE, adaptado para minted:

\documentclass{article}

\usepackage{fontspec}
\setmonofont{Consolas}

\usepackage{minted}

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

Observe a opção {text}- é para especificar o idioma (no nosso caso, texto simples).

E o resultado:

insira a descrição da imagem aqui


PS: Nunca trabalhei mintedantes, mas tentando resolver seu problema, passei mais de 40 minutos brincando lstlistinge apenas 2 minutos instalando e me acostumando minted, então definitivamente vale a pena tentar.

informação relacionada