使用LaTeX'listing'包时,如何显示直引号而不是弯引号?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用LaTeX'listing'包时,如何显示直引号而不是弯引号?相关的知识,希望对你有一定的参考价值。
我正在使用LaTeX的“listings”包来格式化源代码。不幸的是,我得到的是引号而不是直引号。由于卷曲引号并不总是指向正确的方向,因此它看起来很糟糕。我怎样才能得到直引号呢?
我不想更改或过滤源代码本身。过滤代码以正确地改变“to”或“'会起作用,但这比在一行上使用多个引号或跨越多行的引号更容易完成。或者你可以使用符号或许多其他东西。但我我真的想保持源不变。
示例LaTeX:
documentclass{article}
usepackage{listings}
egin{document}
egin{lstlisting}
Fahrenheit=input("What is the Fahrenheit temperature?")
Celsius=(5.0/9.0)*(Fahrenheit-32)
print"The temperature is",Celsius,"degrees Celsius"
end{lstlisting}
end{document}
示例输出(在Windows上使用Miktex):
(Qazxswpoi)
您是否考虑过将monospaced(打字机)字体用于列表?以下示例有效:
Direct link to image of incorrect output
我在文档中看到(应该与包装一起分发,但可以在documentclass{article}
usepackage{listings}
lstset{basicstyle= tfamily} % <<< This line added
egin{document}
egin{lstlisting}
Fahrenheit=input("What is the Fahrenheit temperature?")
Celsius=(5.0/9.0)*(Fahrenheit-32)
print"The temperature is",Celsius,"degrees Celsius"
end{lstlisting}
end{document}
上找到),因为http://www.ctan.org/tex-archive/macros/latex/contrib/listings/listings.pdf有一个名为listings
的可设置属性来处理这个问题。
从文档:
upquote
做点什么
upquote=⟨true|false⟩ false
determines whether the left and right quote are printed ‘’ or `'. This
key requires the textcomp package if true.
在lstset{upquote=true}
ing列表环境之前,或使用
begin
也可能已在适当的语言定义中为您设置此属性(请再次参阅文档,第12页的预定义语言的大列表)。
使用:
egin{lstlisting}[upquote=true]
...
end{lstlisting}
在标题中。然后使用上述任一惯例设置语言以选择选项。
上面的lstloadlanguages{<dialects you need>}
可能有效。如果你放弃你的最后一个条件,即你允许更改代码,那么有一个更通用的解决方案,我倾向于使用它(La)TeX渲染一个字符的方式与我预期的不同是使用dmckee's answer命令。我在这里列出它因为它在其他情况下也很有用:
symbol
然后你的例子:
ewcommand{qq}{symbol{34}} % 34 is the decimal ascii code for "
注意花括号,据说将列表恢复到LaTeX模式(参见包的egin{lstlisting}
...
print{qq}The temperature is{qq},Celsius,{qq}degrees Celsius{qq}
...
end{lstlisting}
选项。)
这是一个解决方案
escapechars
我有同样的问题,使用fontspec,解决方案是不设置usepackage[T1]{fontenc}
usepackage{textcomp}
usepackage{lmodern}
% in the listings package configuration, try:
literate={"}{ extquotedbl}1,
,而是专门设置defaultfontfeatures{Mapping=tex-text}
仅主要和sans字体,并将tt字体留给它自己的设备。 :)
也许是因为我早期作为LaTeX用户安装了列表,但我很惊讶地发现,如果没有列表包,行为就会有所不同。
我的解决方案类似于David Hanak,但是我使用了LaTeX Cheat Sheet(Mapping=tex-text
)中描述的双引号符号
http://stdout.org/~winston/latex
以上是关于使用LaTeX'listing'包时,如何显示直引号而不是弯引号?的主要内容,如果未能解决你的问题,请参考以下文章
如何在matlab中的xlabel,ylabel,legend和text函数中使用latex
Latex 编译出错!不知道宏包怎么调顺序...出现Command \@proof already defined ,急求指点!具体如下: