
Quero escrever alguns caracteres Unicode no lstlisting
ambiente, 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 lstlisting
pacote para minted
.
Por que minted
?
Prós:
- Funciona muito bem com pdflatex, xelatex e assim por diante
- Suporta muito mais idiomas para destacar do que
lstlisting
- À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-escape
flag, 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:
PS: Nunca trabalhei minted
antes, mas tentando resolver seu problema, passei mais de 40 minutos brincando lstlisting
e apenas 2 minutos instalando e me acostumando minted
, então definitivamente vale a pena tentar.