我正在尝试使用 在 LaTeX 中插入源代码listings
,但是我的代码有重音,并且 pdflatex 给了我这个错误:
Unicode char \u8:�\expandafter not set up for use with LaTeX.
这是重现错误的代码。
例子.tex
\documentclass{article}
\usepackage{listings}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\begin{document}
\lstinputlisting[language=C++]{code.cpp}
\end{document}
代码.cpp
// Código con una tilde
我该怎么做才能正确生成 PDF?
答案1
您可以加载包listingsutf8
,然后使用以下命令设置编码\lstset{inputencoding=utf8/latin1}
:
\documentclass{article}
\usepackage{listingsutf8}
\usepackage[spanish]{babel}
\begin{document}
\lstset{inputencoding=utf8/latin1}
\lstinputlisting[language=C++]{code.cpp}
\end{document}
答案2
接受的解决方案对我来说不起作用,所以这是我的:
\usepackage{listings} % ordinary listings package
然后配置字母映射 - 这些映射适用于捷克语,但您可以配置自己的
\lstset{
literate=%
{á}{{\'a}}1
{í}{{\'i}}1
{é}{{\'e}}1
{ý}{{\'y}}1
{ú}{{\'u}}1
{ó}{{\'o}}1
{ě}{{\v{e}}}1
{š}{{\v{s}}}1
{č}{{\v{c}}}1
{ř}{{\v{r}}}1
{ž}{{\v{z}}}1
{ď}{{\v{d}}}1
{ť}{{\v{t}}}1
{ň}{{\v{n}}}1
{ů}{{\r{u}}}1
{Á}{{\'A}}1
{Í}{{\'I}}1
{É}{{\'E}}1
{Ý}{{\'Y}}1
{Ú}{{\'U}}1
{Ó}{{\'O}}1
{Ě}{{\v{E}}}1
{Š}{{\v{S}}}1
{Č}{{\v{C}}}1
{Ř}{{\v{R}}}1
{Ž}{{\v{Z}}}1
{Ď}{{\v{D}}}1
{Ť}{{\v{T}}}1
{Ň}{{\v{N}}}1
{Ů}{{\r{U}}}1
}
答案3
在巴西葡萄牙语中,这个解决方案对我有用
\usepackage{listings} % for including code
\lstset{
language=R, % R code
literate=
{á}{{\'a}}1
{à}{{\`a}}1
{ã}{{\~a}}1
{é}{{\'e}}1
{ê}{{\^e}}1
{í}{{\'i}}1
{ó}{{\'o}}1
{õ}{{\~o}}1
{ú}{{\'u}}1
{ü}{{\"u}}1
{ç}{{\c{c}}}1
}
答案4
匈牙利语版本基于上一个答案:
\lstset{ literate={á}{{\'a}}1 {é}{{\'e}}1 {í}{{{\'\i}}}1 {ó}{{\'o}}1 {ö}{{\"o}}1 {ő}{{\H o}}1 {ú}{{\'u}}1 {Ú}{{\'U}}1 {ü}{{\"u}}1 {ű}{{\H u}}1 {Ü}{{\"U}}1 }
LaTex 是匈牙利最受欢迎的塑料之一。