使用 UTF-8(或至少是德语变音符号)的 Latex 列表
尝试使用列表包将源文件包含到我的乳胶文档中,我在代码注释中遇到了德语元音变音的问题。 在源文件中使用
\lstset{
extendedchars=\true,
inputencoding=utf8x
}
变音符号(以 UTF-8 编码,无 BOM)会被处理,但它们会以某种方式移动到它们所包含的单词的开头。 所以
// die Größe muss berücksichtigt werden
在输入源文件中,变成
// die ößGre muss übercksichtigt werden
在输出文件中。
注意:由于我在初始设置中发现了错误,因此我大量编辑了这个问题
Trying to include a source-file into my latex document using the listings package, i got problems with german umlauts inside of the comments in the code.
Using
\lstset{
extendedchars=\true,
inputencoding=utf8x
}
Umlauts in the source files (encoded in UTF-8 without BOM) are processed, but they are somehow moved to the beginning of the word they are contained in.
So
// die Größe muss berücksichtigt werden
in the input source file, becomes
// die ößGre muss übercksichtigt werden
in the output file.
NOTE: since i found errors in my initial setup, i heavily edited this question
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(25)
我找到了一种更简单的方法,对我有用:
I found a simpler approach, which works for me:
对于仅注释,您可以使用
texcl
选项:您的注释将变成Latex,并且您可以使用“特殊”字符
For comments only, you can use the
texcl
option:Than your comments become Latex and you can use "special" characters
这也适用于其他语言(西班牙语、丹麦语):
This should work for other languages (Spanish, Danish) as well:
我对捷克语的贡献。
My contribution for Czech language.
我对巴西葡萄牙语的贡献。
My contribution for brazilian portuguese.
好的,现在找到了一种解决方法:
使用listingsutf8代替listings包
\usepackage{listingsutf8}
将listings.sty复制到文档所在的文件夹
找到以下几行
<前>\lst@CCPutMacro
\lst@ProcessOther {"23}\#
\lst@ProcessLetter{"24}\textdollar
\lst@ProcessOther {"25}\%
\lst@ProcessOther {"26}\&
在其中输入以下行(每行“注册”一个元音变音)
保存文件
使用
<前>\lstset{
扩展字符=\true,
输入编码=utf8/latin1
}
启用 utf8 字符到 latin1 字符的映射
我知道这在很多方面都很丑陋,但它是唯一的解决方案到目前为止这对我有用。
ok, found kinda workaround now:
instead of listings package, use listingsutf8
\usepackage{listingsutf8}
copy listings.sty to the folder the document resides
find the following lines
Enter there the following lines (each "registers" one umlaut)
Save the file
Use
to enable utf8 character to latin1 character mapping
I know this is ugly in many way, but its the only solution that works for me so far.
适用于大多数 iso 角色。 (包括我需要的瑞典语 åäöÅäÖ)
来源: http://en.wikibooks.org /wiki/LaTeX/Source_Code_Listings#Encoding_issue
Works for most iso-characters. (including swedish åäöÅÄÖ which is what I needed)
source: http://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings#Encoding_issue
法语更简单的方法。
Simpler approach for french.
对我来说效果很好!
我给法国队2分钱:
Works fine for me!
My 2 cents for the French side:
与之前的帖子(yaxz 和其他人)类似,我为克罗地亚语定义了宏:
我在添加关键字“inače”时仍然遇到“小”问题。 以下不适用于“inače”:
关键字“inače”(出现在代码中)不被识别为关键字。 有任何想法吗?
希望这会对某人有所帮助(除了我:))。
Similarly to posts before (yaxz and others) I defined macros for Croatian:
I still have "little" problem with adding keyword "inače". Following won't work for "inače":
Keyword "inače" (that appear in code) is not recognized as keyword. Any ideas?
Hope this will help someone (besides me :)).
瑞典语版本:
The Swedish version:
我对立陶宛语的贡献:
My contribution for Lithuanian language:
我们都知道 LaTeX 与希腊语的关系不太好。 尽管如此,这是我的贡献,它需要几种解决方法,并且不包括变音符号(但有效!):
We all know how LaTeX doesn’t play nice with Greek. Nevertheless, here’s my contribution, which requires several workarounds, and doesn’t include diacritics (but works!):
对于波兰语:
这里是符号列表,以便您可以为您的语言创建它: https://en .wikibooks.org/wiki/LaTeX/Special_Characters
For Polish:
And here's list of symbols so you can create it for your language: https://en.wikibooks.org/wiki/LaTeX/Special_Characters
我可以确认 Janosch 提供的解决方案几乎可以正常工作。
就我而言,我需要使用西班牙语字符:á,é,í,ó,ú,ñ,Á,É,Í,Ó,Ú,并尝试了他的解决方案,但没有结果,直到我用 xelatex 而不是 pdflatex 编译我的文件。
无论如何,您应该在本地副本或直接在公共文件中修改listings.sty并添加以下内容:
在我的.tex文件中,我使用了以下列表选项:
希望它可以帮助任何人,也许我们可以构建一个listing.sty包含几乎所有 UTF8 字符...:)
I can confirm that solution provided by Janosch works almost correctly.
In my case I needed to use Spanish characters: á,é,í,ó,ú,ñ,Á,É,Í,Ó,Ú and tried his solution without results until I compiled my file with xelatex instead of pdflatex.
Anyway you should modify listings.sty either in your local copy or directly in the common file and add the following:
In my .tex file I used the following options for listings:
Hope it can help anybody and maybe we can construct a listing.sty containing almost every UTF8 char... :)
我对西班牙语的贡献。
经过测试,它工作得很好,既可以导入带有西班牙字符代码的文件,也可以直接将代码片段粘贴到乳胶文档中。
My contribution for spanish language.
Tested, it works great, both importing files with the code with spanish characters, and pasting snippets of code directly in the latex document.
包的作者建议使用texcl选项。 有时有帮助,有时没有。
Author of package suggests using texcl option. Sometimes it helps, sometimes doesn't.
如果您想使用任何列表包,请不要在 LaTex 中使用 UTF-8。 在文档中使用 latin1 将很好地显示德语变音符号。
我正在使用以下设置用德语写论文:
Simply don't use UTF-8 in LaTex if you want to use any listings packages. Using latin1 in your documents will display German Umlauts just fine.
I'm writing my thesis in German using this setup:
最干净的解决方案是使用listings2包: http://www.atscire .de/index.php?nav=products/listings2
只需使用
\usepackage{listings2}
而不是\usepackage{listings}
即可。The cleanest solution for this is to use the listings2 package: http://www.atscire.de/index.php?nav=products/listings2
Simply use
\usepackage{listings2}
instead of\usepackage{listings}
and that's it.@Janosch 解决方案中 listings.sty 的挪威字母:
Norwegian letters for listings.sty in @Janosch's solution:
对于越南语:
For Vietnamese:
对于冰岛语:
For Icelandic:
我对斯洛伐克语的贡献。
My contribution for Slovak language.
要向
listings
添加版权支持,请添加以下内容:To add copyright support to
listings
, add this:您可能还需要将文档的输入编码设置为 UTF-8。 有一个 comp.text.tex 线程 讨论如何做到这一点。 以下在 GNU/Linux 上的 TeXLive 中完成此操作:
You might need to set the document's input encoding to also be UTF-8. There's a comp.text.tex thread discussing how to do this. The following accomplishes this in TeXLive on GNU/Linux: