带有UTF-8(或至少是德国变音符号)的Latex列表


69

试图使用清单包将源文件包含到我的乳胶文档中,我在代码中的注释中遇到了德国变音符号的问题。使用

\lstset{
extendedchars=\true,
inputencoding=utf8x
}

处理了源文件中的Umlauts(以UTF-8编码,不带BOM),但是它们以某种方式移到了所包含单词的开头。

// die Größe muss berücksichtigt werden

在输入源文件中,变为

// die ößGre muss übercksichtigt werden

在输出文件中。

注意:由于我在初始设置中发现错误,因此我大量编辑了此问题


1
您在文档中声明了哪种输入编码,在编辑器中使用了哪种编码?
Gumbo

1
我对法语也有同样的问题。IMO,您应该尝试使用非多字节编码,例如Latin-1。
巴斯蒂安·莱纳德(BastienLéonard)

1
西里尔字母的类似问题。使用一字节编码解决了该问题。
Vanuan

Answers:


59

我找到了一种更简单的方法,对我有用:

\usepackage{listings}

\lstset{
  literate={ö}{{\"o}}1
           {ä}{{\"a}}1
           {ü}{{\"u}}1
}

1
这对我来说很好用,不需要包Listingsutf8。最佳解决方法!
Chielus

3
它也适用于土耳其语。以下是相关的代码段: \lstset{ literate={â}{{\^{a}}}1 {Â}{{\^{A}}}1 {ç}{{\c{c}}}1 {Ç}{{\c{C}}}1 {ğ}{{\u{g}}}1 {Ğ}{{\u{G}}}1 {ı}{{\i}}1 {İ}{{\.{I}}}1 {ö}{{\"o}}1 {Ö}{{\"O}}1 {ş}{{\c{s}}}1 {Ş}{{\c{S}}}1 {ü}{{\"u}}1 {Ü}{{\"U}}1 }
petrichor

2
texcl=true在另一个答案中描述的解决方案使用似乎更优雅。
2013年

1
有人知道挪威字符æøå的解决方案是什么样的吗?
Njaal Gjerde

我认为这不是解决方案或解决方法,因为如果您的内容很长(可能生成)且带有任意特殊字符,这将无济于事。
阴离子

36

对于注释,可以使用以下texcl选项:

\lstset{language=C++,texcl=true}

比起您的评论成为Latex,您可以使用“特殊”字符

\begin{lstlisting}
int iLink = 0x01; // Paramètre entrée
\end{lstlisting}

6
这是这里最优雅的解决方案之一,需要更多的支持!:)
1月Špaček2013年

哇!然后,您甚至可以将数学公式放入列表中,例如double pi = 3.141; // This is $\pi$double d = 1.0 // $3 \int_0^1 x^2 dx$。这真是太酷了!
Elmar Zander 2015年

太棒了!另一个选项(带有literate)不适用于XeLaTex。
WerWet

似乎如果$某些注释中存在或类似内容,它们将被解释为数学公式(这可能是意料之外的,如果格式不正确,则会导致许多错误)
user202729

24

这也适用于其他语言(西班牙语,丹麦语):

\documentclass[
a4paper, %% defines the paper size: a4paper (default), a5paper, letterpaper, ...
12pt %% set default font size to 12 point
]{scrartcl} %% article, see KOMA documentation (scrguide.dvi)

\usepackage[utf8]{inputenc}

\usepackage[T1]{fontenc}
\usepackage{listings}

\lstset{language=Pascal}
\lstset{literate=%
{Ö}{{\"O}}1
{Ä}{{\"A}}1
{Ü}{{\"U}}1
{ß}{{\ss}}2
{ü}{{\"u}}1
{ä}{{\"a}}1
{ö}{{\"o}}1
}

\begin{document}

[Latex: kann man Umlaute in lstlisting verwenden?]
\begin{lstlisting}
Test für Umlaut äöü ÄÖÜ ß So geht es
\end{lstlisting}

\end{document} 

4
谢谢-奏效了!波兰语语言也一样:\ lstset {literate = {±} {{\ k {a}}} 1 {ł} {{\ l {}}} 1 {ń} {{\'n}} 1 {ę} {{\ k {e}}} 1 {ś} {{\'s}} 1 {ż} {{\。z}} 1 {ó} {{\'o}} 1 {ź} {{\' z}} 1 {Ą} {{\ k {A}}} 1 {Ł} {{\ L {}}} 1 {Ń} {{\'N}} 1 {Ę} {{\ k {E} }} 1 {Ś} {{\'S}} 1 {Ż} {{\。Z}} 1 {Ó} {{\'O}} 1 {Ź} {{\'Z}} 1}
GDR

3
并感谢您,GDR!这节省了时间。您只忘记了ć和Ć。这是其他快捷键Ctrl + C + Ctrl + V的完整列表(奖金:已排序):\ lstset {literate =%{±} {{\ k {a}}} 1 {ć} {{\'c} } 1 {ę} {{\ k {e}}} 1 {ł} {{\ l {}}} 1 {ń} {{\'n}} 1 {ó} {{\'o}} 1 { ś} {{\'s}} 1 {ż} {{\。z}} 1 {ź} {{\'z}} 1 {Ą} {{\ k {A}}} 1 {Ć} {{ \'C}} 1 {Ę} {{\ k {E}}} 1 {Ł} {{\ L {}}} 1 {Ń} {{\'N}} 1 {Ó} {{\'O }} 1 {Ś} {{\'S}} 1 {Ż} {{\。Z}} 1 {Ź} {{\'Z}} 1}(显然,注释没有换行符,因此粘贴您之后必须解决它(例如在vim: :.s/ /\r/g
przemoc

3
谢谢-好的解决方案!无论如何,应该这样{ß}{{\ss}}1,因为“ß”在输出中仅包含1个字符;)
Simon

17

我对捷克语言的贡献。

\lstset{
    inputencoding=utf8,
    extendedchars=true,
    literate=%
    {á}{{\'a}}1
    {č}{{\v{c}}}1
    {ď}{{\v{d}}}1
    {é}{{\'e}}1
    {ě}{{\v{e}}}1
    {í}{{\'i}}1
    {ň}{{\v{n}}}1
    {ó}{{\'o}}1
    {ř}{{\v{r}}}1
    {š}{{\v{s}}}1
    {ť}{{\v{t}}}1
    {ú}{{\'u}}1
    {ů}{{\r{u}}}1
    {ý}{{\'y}}1
    {ž}{{\v{z}}}1
    {Á}{{\'A}}1
    {Č}{{\v{C}}}1
    {Ď}{{\v{D}}}1
    {É}{{\'E}}1
    {Ě}{{\v{E}}}1
    {Í}{{\'I}}1
    {Ň}{{\v{N}}}1
    {Ó}{{\'O}}1
    {Ř}{{\v{R}}}1
    {Š}{{\v{S}}}1
    {Ť}{{\v{T}}}1
    {Ú}{{\'U}}1
    {Ů}{{\r{U}}}1
    {Ý}{{\'Y}}1
    {Ž}{{\v{Z}}}1
}

1
谢谢!:)请注意,我必须先删除inputencoding=utf8,extendedchars=true,行以及%之后的内容literate=,然后才能在我的情况下使用。
zbr 2016年

11

好的,现在找到了一种解决方法:

  1. 代替Listings包,使用listingsutf8

    \ usepackage {listingsutf8}

  2. 将listings.sty复制到文档所在的文件夹

  3. 找到以下几行

    \ lst @ CCPutMacro
        \ lst @ ProcessOther {“ 23} \#
        \ lst @ ProcessLetter {“ 24} \ textdollar
        \ lst @ ProcessOther {“ 25} \%
        \ lst @ ProcessOther {“ 26} \&
  4. 在此处输入以下几行(每个“注册”一个变音符号)

    \ lst @ ProcessLetter {“ E4} {\” a}
    \ lst @ ProcessLetter {“ F6} {\” o}
    \ lst @ ProcessLetter {“ FC} {\” u}
    \ lst @ ProcessLetter {“ C4} {\” A}
    \ lst @ ProcessLetter {“ D6} {\” O}
    \ lst @ ProcessLetter {“ DC} {\” U}
    \ lst @ ProcessLetter {“ DF} {\ ss {}}
  5. 保存文件

  6. 采用

    \ lstset {
        extendedchars = \ true,
        inputencoding = utf8 / latin1
    }

启用utf8字符到latin1字符映射

  1. 将源文件的行尾从Windows(\ r \ n)转换为Unix(\ n)
  2. 请享用

我知道这在很多方面都很丑陋,但这是迄今为止对我来说唯一有效的解决方案。


我认为,“ extendedchars = \ true”等于“ extendedchars = false”。
Vanuan

我在Ubuntu 10.10上的/ usr / share / texmf-texlive / tex / latex / listings /中将listings.sty复制到listingsutf8.sty。我编辑了文件,但是我的清单不起作用。
Martin Thoma

11

我对巴西葡萄牙语的贡献。

\lstset{%
        inputencoding=utf8,
        extendedchars=true,
        literate=%
        {é}{{\'{e}}}1
        {è}{{\`{e}}}1
        {ê}{{\^{e}}}1
        {ë}{{{e}}}1
        {É}{{\'{E}}}1
        {Ê}{{\^{E}}}1
        {û}{{\^{u}}}1
        {ù}{{\`{u}}}1
        {ú}{{\'{u}}}1
        {â}{{\^{a}}}1
        {à}{{\`{a}}}1
        {á}{{\'{a}}}1
        {ã}{{\~{a}}}1
        {Á}{{\'{A}}}1
        {Â}{{\^{A}}}1
        {Ã}{{\~{A}}}1
        {ç}{{\c{c}}}1
        {Ç}{{\c{C}}}1
        {õ}{{\~{o}}}1
        {ó}{{\'{o}}}1
        {ô}{{\^{o}}}1
        {Õ}{{\~{O}}}1
        {Ó}{{\'{O}}}1
        {Ô}{{\^{O}}}1
        {î}{{\^{i}}}1
        {Î}{{\^{I}}}1
        {í}{{\'{i}}}1
        {Í}{{\~{Í}}}1
}

4

适用于大多数iso字符。(包括我需要的瑞典语åäöÅÄÖ)

\usepackage[utf8]{inputenc}
\usepackage{listings}
\lstset{literate=
  {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
  {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
  {à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
  {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
  {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
  {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
  {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
  {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
  {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
  {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
  {€}{{\EUR}}1 {£}{{\pounds}}1
}

来源:http : //en.wikibooks.org/wiki/LaTeX/Source_Code_Listings#Encoding_issue


3

法语的简单方法。

\documentclass{article}
    \usepackage[utf8]{inputenc}
    \usepackage[francais]{babel}
    \usepackage[T1]{fontenc}
    \usepackage{listings}
    \lstloadlanguages{R}
    \lstset{language=R}
    \lstset{%
        inputencoding=utf8,
            extendedchars=true,
            literate=%
            {é}{{\'{e}}}1
            {è}{{\`{e}}}1
            {ê}{{\^{e}}}1
            {ë}{{{e}}}1
            {û}{{\^{u}}}1
            {ù}{{\`{u}}}1
            {â}{{\^{a}}}1
            {à}{{\`{a}}}1
            {î}{{\^{i}}}1
            {ô}{{\^{o}}}1
            {ç}{{\c{c}}}1
            {Ç}{{\c{C}}}1
            {É}{{\'{E}}}1
            {Ê}{{\^{E}}}1
            {À}{{\`{A}}}1
            {Â}{{\^{A}}}1
            {Î}{{\^{I}}}1
    }

    \begin{document}
    \begin{lstlisting}
    # Est-ce que ça marche : é ê è à Â Ê É Î ç Ç
    x<-rnorm(100,0,10)
    plot(density(x))
    \end{lstlisting}
    \end{document}

2

对我来说很好!

我给法方的2美分:

\lst@ProcessOther {"C0}{\`{A}}
\lst@ProcessOther {"C1}{\'{A}}
\lst@ProcessOther {"C2}{\^{A}}
\lst@ProcessOther {"C4}{\"{A}}
\lst@ProcessOther {"C7}{\c{C}}
\lst@ProcessOther {"C8}{\`{E}}
\lst@ProcessOther {"C9}{\'{E}}
\lst@ProcessOther {"CA}{\^{E}}
\lst@ProcessOther {"CB}{\"{E}}
\lst@ProcessOther {"CE}{\^{I}}
\lst@ProcessOther {"CF}{\"{I}}
\lst@ProcessOther {"D4}{\^{O}}
\lst@ProcessOther {"D6}{\"{O}}
\lst@ProcessOther {"D9}{\`{U}}
\lst@ProcessOther {"DB}{\^{U}}
\lst@ProcessOther {"E0}{\`{a}}
\lst@ProcessOther {"E1}{\'{a}}
\lst@ProcessOther {"E2}{\^{a}}
\lst@ProcessOther {"E4}{\"{a}}
\lst@ProcessOther {"E7}{\c{c}}
\lst@ProcessOther {"E8}{\`{e}}
\lst@ProcessOther {"E9}{\'{e}}
\lst@ProcessOther {"EA}{\^{e}}
\lst@ProcessOther {"EB}{\"{e}}
\lst@ProcessOther {"EE}{\^{\i}}
\lst@ProcessOther {"EF}{\"{\i}}
\lst@ProcessOther {"F4}{\^{o}}
\lst@ProcessOther {"F6}{\"{o}}
\lst@ProcessOther {"F9}{\`{u}}
\lst@ProcessOther {"FB}{\^{u}}

2

瑞典语版本:

\lstset{literate=%
{å}{{\r{a}}}1
{ä}{{\"a}}1
{ö}{{\"o}}1
{Å}{{\r{A}}}1
{Ä}{{\"A}}1
{Ö}{{\"O}}1
}

2

我对立陶宛语的贡献:

\lstset{%
    literate=%
     {ą}{{\k{a}}}1
     {č}{{\v{c}}}1
     {ę}{{\k{e}}}1
     {ė}{{\.{e}}}1
     {į}{{\k{i}}}1
     {š}{{\v{s}}}1
     {ų}{{\k{u}}}1
     {ū}{{\={u}}}1
     {ž}{{\v{z}}}1
     {Ą}{{\k{A}}}1
     {Č}{{\v{C}}}1
     {Ę}{{\k{E}}}1
     {Ė}{{\.{E}}}1
     {Į}{{\k{I}}}1
     {Š}{{\v{S}}}1
     {Ų}{{\k{U}}}1
     {Ū}{{\={U}}}1
     {Ž}{{\v{Z}}}1
}

1

我可以确认Janosch提供的解决方案几乎可以正常工作。

在我的情况下,我需要使用西班牙语字符:á,é,í,ó,ú,ñ,Á,É,Í,Ó,Ú,并尝试使用没有结果的解决方案,直到用xelatex而不是pdflatex编译文件。

无论如何,您应该在本地副本中或直接在公用文件中修改listings.sty并添加以下内容:

\lst@CCPutMacro
    \lst@ProcessOther {"23}\#
    \lst@ProcessLetter{"24}\textdollar
    \lst@ProcessOther {"25}\%
    \lst@ProcessOther {"26}\&
        %spanish letters coded in UTF
    \lst@ProcessOther {"E1}{\'a}
    \lst@ProcessOther {"C1}{\'A}
    \lst@ProcessOther {"E9}{\'e}
    \lst@ProcessOther {"C9}{\'E}
    \lst@ProcessOther {"ED}{\'i}
    \lst@ProcessOther {"CD}{\'I}
    \lst@ProcessOther {"F3}{\'o}
    \lst@ProcessOther {"D3}{\'O}
    \lst@ProcessOther {"FA}{\'u}
    \lst@ProcessOther {"DA}{\'U}
    \lst@ProcessOther {"F1}{ñ}
    \lst@ProcessOther {"D1}{Ñ}

在我的.tex文件中,我使用了以下选项进行列表:

\usepackage{listingsutf8}
\lstset{
        inputencoding=utf8,
        extendedchars=\true}

希望它可以帮助任何人,也许我们可以构造一个包含几乎所有UTF8字符的listing.sty ... :)


1

与之前的文章(yaxz和其他文章)类似,我为克罗地亚语定义了宏:

% on top
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[croatian]{babel}

% add listings package
\usepackage{listings}

% set font translations
\lstset{inputencoding=utf8}
\lstset{extendedchars=true}
\lstset{
    literate=%
    {ć}{{\'c}}1
    {č}{{\v{c}}}1
    {đ}{{\dj{}}}1
    {š}{{\v{s}}}1
    {ž}{{\v{z}}}1
    {Ć}{{\'C}}1
    {Č}{{\v{C}}}1
    {Đ}{{\DJ{}}}1
    {Š}{{\v{S}}}1
    {Ž}{{\v{Z}}}1
}

添加关键字“inače”仍然存在“小”问题。以下对“inače”无效:

\lstset{morekeywords={ponavljaj, ako, inače, dok}}

关键字“inače”(出现在代码中)无法识别为关键字。有任何想法吗?

希望这会帮助某人(除了我:)。


我有同样的问题,我想使用带有重音符号的关键字。有没有人做的?
爱德华多·桑塔纳

1

我们都知道LaTeX如何与希腊语搭配不好。不过,这是我的贡献,需要一些解决方法,并且不包括变音符号(但可以!):

\usepackage[greek]{babel}
\usepackage{textgreek}
\usepackage{listings}

% Notice that here it is spelled ‘omikron’, not ‘omicron’,
% and that I use ‘\textmugreek’ instead of ‘\textmu’,
% which are both part of the textgreek package, but the
% ‘normal’ \textmu conflicts with the textcomp package as
% that uses another font for \textmu.
\DeclareUnicodeCharacter{03BF}{\textomikron}
\DeclareUnicodeCharacter{039F}{\textOmikron}
\DeclareUnicodeCharacter{03BC}{\textmugreek}

\lstset{
    inputencoding=utf8,
    extendedchars=true,
    literate=
    {α}{{\textalpha}}1   {Α}{{\textAlpha}}1
    {β}{{\textbeta}}1    {Β}{{\textBeta}}1
    {γ}{{\textgamma}}1   {Γ}{{\textGamma}}1
    {δ}{{\textdelta}}1   {Δ}{{\textDelta}}1
    {ε}{{\textepsilon}}1 {Ε}{{\textEpsilon}}1
    {ζ}{{\textzeta}}1    {Ζ}{{\textZeta}}1
    {η}{{\texteta}}1     {Η}{{\textEta}}1
    {θ}{{\texttheta}}1   {Θ}{{\textTheta}}1
    {ι}{{\textiota}}1    {Ι}{{\textIota}}1
    {κ}{{\textkappa}}1   {Κ}{{\textKappa}}1
    {λ}{{\textlambda}}1  {Λ}{{\textLambda}}1
    {μ}{{\textmugreek}}1 {Μ}{{\textMu}}1
    {ν}{{\textnu}}1      {Ν}{{\textNu}}1
    {ξ}{{\textxi}}1      {Ξ}{{\textXi}}1
    {ο}{{\textomikron}}1 {Ο}{{\textOmikron}}1
    {π}{{\textpi}}1      {Π}{{\textPi}}1
    {ρ}{{\textrho}}1     {Ρ}{{\textRho}}1
    {σ}{{\textsigma}}1   {Σ}{{\textSigma}}1   {ς}{{\textvarsigma}}1
    {τ}{{\texttau}}1     {Τ}{{\textTau}}1
    {υ}{{\textupsilon}}1 {Υ}{{\textUpsilon}}1
    {φ}{{\textphi}}1     {Φ}{{\textPhi}}1
    {χ}{{\textchi}}1     {Χ}{{\textChi}}1
    {ψ}{{\textpsi}}1     {Ψ}{{\textPsi}}1
    {ω}{{\textomega}}1   {Ω}{{\textOmega}}1
}

1

波兰语:

\lstset{%
literate=%
 {ą}{{\k{a}}}1
 {ę}{{\k{e}}}1
 {Ą}{{\k{A}}}1
 {Ę}{{\k{E}}}1
 {ś}{{\'{s}}}1
 {Ś}{{\'{S}}}1
 {ź}{{\'{z}}}1
 {Ź}{{\'{Z}}}1
 {ń}{{\'{n}}}1
 {Ń}{{\'{N}}}1
 {ć}{{\'{c}}}1
 {Ć}{{\'{C}}}1
 {ó}{{\'{o}}}1
 {Ó}{{\'{O}}}1
 {ż}{{\.{z}}}1
 {Ż}{{\.{Z}}}1
 {ł}{{\l{}}}1
 {Ł}{{\l{}}}1
}

以下是符号列表,因此您可以根据自己的语言创建它:https : //en.wikibooks.org/wiki/LaTeX/Special_Characters


0

软件包的作者建议使用texcl选项。有时会有所帮助,有时却无济于事。



0

挪威语中@Janosch解决方案中的listings.sty字母:

\lst@ProcessLetter{"C5}{\AA}
\lst@ProcessLetter{"C6}{\AE}
\lst@ProcessLetter{"D8}{\O}
\lst@ProcessLetter{"E5}{\aa}
\lst@ProcessLetter{"E6}{\ae}
\lst@ProcessLetter{"F8}{\o}

0

对于越南人:

\usepackage{vntex}
\usepackage[utf8]{inputenc}
\usepackage{listings}  
\usepackage{tipa}

\lstset{columns=fullflexible,literate=
{đ}{{\dj}}1
{â}{{\^a}}1
{ă}{{\u{a}}}1
{ê}{{\^e}}1
{ô}{{\^o}}1
{ơ}{{\ohorn}}1
{ư}{{\uhorn}}1
{á}{{\'a}}1
{à}{{\`a}}1
{ả}{\h{a}}1
{ã}{{\~a}}1
{ạ}{\textsubdot{a}}1
{ấ}{\'{\^a}}1
{ầ}{\`{\^a}}1
{ẩ}{\h{\^a}}1
{ẫ}{\~{\^a}}1
{ậ}{\textsubdot{\^a}}1
{ắ}{\'{\u{a}}}1
{ằ}{\`{\u{a}}}1
{ẳ}{\h{\u{a}}}1
{ẵ}{\~{\u{a}}}1
{ặ}{\textsubdot{\u{a}}}1
{é}{{\'e}}1
{è}{{\`e}}1
{ẻ}{\h{e}}1
{ẽ}{{\~e}}1
{ẹ}{\textsubdot{e}}1
{ế}{\'{\^e}}1
{ề}{\`{\^e}}1
{ể}{\h{\^e}}1
{ễ}{\~{\^e}}1
{ệ}{\textsubdot{\^{e}}}1
{í}{{\'i}}1
{ì}{{\`i}}1
{ỉ}{\h{i}}1
{ĩ}{{\~i}}1
{ị}{\textsubdot{i}}1
{ó}{{\'o}}1
{ò}{{\`o}}1
{ỏ}{\h{o}}1
{õ}{{\~o}}1
{ọ}{\textsubdot{o}}1
{ố}{\'{\^o}}1
{ồ}{\`{\^o}}1
{ổ}{\h{\^o}}1
{ỗ}{\~{\^o}}1
{ộ}{\textsubdot{\^o}}1
{ớ}{\'{\ohorn}}1
{ờ}{\`{\ohorn}}1
{ở}{\h{\ohorn}}1
{ỡ}{\~{\ohorn}}1
{ợ}{\textsubdot{\ohorn}}1
{ú}{{\'u}}1
{ù}{{\`u}}1
{ủ}{\h{u}}1
{ũ}{{\~u}}1
{ụ}{\textsubdot{u}}1
{ứ}{\'{\uhorn}}1
{ừ}{\`{\uhorn}}1
{ử}{\h{\uhorn}}1
{ữ}{\~{\uhorn}}1
{ự}{\textsubdot{\uhorn}}1
{ý}{{\'y}}1
{ỳ}{{\`y}}1
{ỷ}{\h{y}}1
{ỹ}{{\~y}}1
{ỵ}{\textsubdot{y}}1
{Đ}{{\DJ}}1
{Â}{{\^A}}1
{Ă}{{\u{A}}}1
{Ê}{{\^E}}1
{Ô}{{\^O}}1
{Ơ}{{\OHORN}}1
{Ư}{{\UHORN}}1
{Á}{{\'A}}1
{À}{{\`A}}1
{Ả}{\h{A}}1
{Ã}{{\~A}}1
{Ạ}{\textsubdot{A}}1
{Ấ}{\'{\^A}}1
{Ầ}{\`{\^A}}1
{Ẩ}{\h{\^A}}1
{Ẫ}{\~{\^A}}1
{Ậ}{\textsubdot{\^A}}1
{Ắ}{\'{\u{A}}}1
{Ằ}{\`{\u{A}}}1
{Ẳ}{\h{\u{A}}}1
{Ẵ}{\~{\u{A}}}1
{Ặ}{\textsubdot{\u{A}}}1
{É}{{\'E}}1
{È}{{\`E}}1
{Ẻ}{\h{E}}1
{Ẽ}{{\~E}}1
{Ẹ}{\textsubdot{E}}1
{Ế}{\'{\^E}}1
{Ề}{\`{\^E}}1
{Ể}{\h{\^E}}1
{Ễ}{\~{\^E}}1
{Ệ}{\textsubdot{\^{E}}}1
{Í}{{\'I}}1
{Ì}{{\`I}}1
{Ỉ}{\h{I}}1
{Ĩ}{{\~I}}1
{Ị}{\textsubdot{I}}1
{Ó}{{\'O}}1
{Ò}{{\`O}}1
{Ỏ}{\h{O}}1
{Õ}{{\~O}}1
{Ọ}{\textsubdot{O}}1
{Ố}{\'{\^O}}1
{Ồ}{\`{\^O}}1
{Ổ}{\h{\^O}}1
{Ỗ}{\~{\^O}}1
{Ộ}{\textsubdot{\^O}}1
{Ớ}{\'{\OHORN}}1
{Ờ}{\`{\OHORN}}1
{Ở}{\h{\OHORN}}1
{Ỡ}{\~{\OHORN}}1
{Ợ}{\textsubdot{\OHORN}}1
{Ú}{{\'U}}1
{Ù}{{\`U}}1
{Ủ}{\h{U}}1
{Ũ}{{\~U}}1
{Ụ}{\textsubdot{U}}1
{Ứ}{\'{\UHORN}}1
{Ừ}{\`{\UHORN}}1
{Ử}{\h{\UHORN}}1
{Ữ}{\~{\UHORN}}1
{Ự}{\textsubdot{\UHORN}}1
{Ý}{{\'Y}}1
{Ỳ}{{\`Y}}1
{Ỷ}{\h{Y}}1
{Ỹ}{{\~Y}}1
{Ỵ}{\textsubdot{Y}}1
  }

0

对于冰岛人:

\lstset{
  literate=%
    {Á}{{\'A}}1
    {á}{{\'a}}1
    {Ð}{{\dh}}1
    {ð}{{\dh}}1
    {É}{{\'E}}1
    {é}{{\'e}}1
    {í}{{\'i}}1
    {Í}{{\'I}}1
    {Ó}{{\'O}}1
    {ó}{{\'o}}1
    {Ú}{{\'U}}1
    {ú}{{\'u}}1
    {Ý}{{\'Y}}1
    {ý}{{\'y}}1
    {Þ}{{\TH}}1
    {þ}{{\th}}1
    {Æ}{{\AE}}1
    {æ}{{\ae}}1
    {Ö}{{\"O}}1
    {ö}{{\"o}}1
}

-1

如果要使用任何列表包,只需在LaTex中不使用UTF-8 。在文档中使用latin1可以很好地显示德国Umlauts。

我使用以下设置用德语写论文:

% Your language, here German
\usepackage[ngerman]{babel} 
% Will work with Umlauts
\usepackage[latin1]{inputenc}
% Euro characters etc.
\usepackage{textcomp}
% Works perfectly with latin1
\usepackage{listings}

-3

您可能需要将文档的输入编码也设置为UTF-8。有一个comp.text.tex线程讨论如何执行此操作。以下是在GNU / Linux上的TeXLive中完成的操作:

\usepackage[utf8]{inputenc}

我的主要文件在utf8中。(而且有效,我什至可以在主文档中写äöü)
Janosch

清单处理字符的方式与主文档不同。因此,inputenc在这里没有帮助。清单软件包需要显式支持utf8输入(因此,listingsutf8)。
罗伯逊
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.