如何解决乳胶:列表无法正确替换特殊字符
我想在文档中包含python脚本,但是在这些脚本中,我使用了áéíóú等字符。我正在使用\lstet
的识字选项。这是示例代码:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish,es-tabla]{babel}
\usepackage{listings,pythonhighlight}
\lstset{
basicstyle=\ttfamily\small,breakatwhitespace=false,breaklines=true,inputencoding=utf8,extendedchars=false,literate= {á}{{\'a}}1
{é}{{\'e}}1
{í}{{\'i}}1
{ó}{{\'o}}1
{ú}{{\'u}}1
}
\begin{document}
\lstinputlisting[language=Python]{example.py}
\end{document}
使用包含以下内容的python脚本(example.py)
# coding = utf-8
# á é í ó ú
我得到这样的pdf文件:
在识字选项中所有特殊字符都替换为最后一个。
为什么会这样?
编辑
使用软件包listingsutf8
代替listings
,
basicstyle=\ttfamily\small,literate= {á}{{\'a}}1
{é}{{\'e}}1
{í}{{\'i}}1
{ó}{{\'o}}1
{ú}{{\'u}}1
}
不更改任何内容。
将listingsutf8
用于:
\lstset{ ...
inputencoding=utf8/latin1,...
}
允许我需要使用所有特殊字符,但放错了位置(所有字符都出现在python注释的开头,而不是它们应位于句子中的位置)。
将listingsutf8
与:
\lstset{ ...
inputencoding=latin1,...
}
也不起作用,因为我的代码是utf8,所以它给了我编译错误。
解决方法
好的,所以我设法使它起作用。我仍然不知道为什么会这样,因为我看到其他人也遇到了同样的问题,可以用对我不起作用的方法解决它。如果有人发现自己处在相同的情况下,那么这对我有用:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{listingsutf8,pythonhighlight}
\lstset{
basicstyle=\ttfamily\small,breakatwhitespace=false,breaklines=true,inputencoding=utf8/latin1,extendedchars=true,literate= {á}{{\'a}}1
{é}{{\'e}}1
{í}{{\'i}}1
{ó}{{\'o}}1
{ú}{{\'u}}1
}
\begin{document}
\lstinputlisting[language=Python]{Programas/data_bindings_RF.py}
\end{document}
请注意, 没有 的任何其他组合都对我有用。我见过有人通过将\usepackage{listingsutf8}
软件包和
\lstset{
literate= {á}{{\'a}}1
{é}{{\'e}}1
{í}{{\'i}}1
{ó}{{\'o}}1
{ú}{{\'u}}1
}
选项,但对我来说却产生了相同的结果。其他软件包和设置的组合也一样,我不确定为什么。祝你好运!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。