我的文档中有双引号字符 ( "
)。我得到的不是精确排版"
(在 Latex 中\textquotedbl
),而是正确的双引号字符 (在 Latex''
或 中\textquotedblright
)。为什么 LaTex 排版
"Blablabla"
写成“Blablabla”而不是“Blablabla”?
当我想要“Blabblabla”时,我输入“Blabblabla”,那么为什么会"
变成”
?
我正在使用 LuaLatex 和fontspec
。
答案1
fontspec
默认适用于和Ligatures=TeX
定义的字体。这些连字符应该重现标准 LaTeX 设置。\rmfamily
\sffamily
您可以禁用它,但您将失去所有字体。请注意,您必须声明一个主字体,因为默认字体已使用Ligatures=TeX
set 预加载。
\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures[\rmfamily,\sffamily]{}
\setmainfont{Latin Modern Roman}
\begin{document}
"blabla"
``blabla''
“blabla”
\end{document}
答案2
使用所需字符的字符代码。
我使用 LuaLaTeX(它理解 Unicode)。直双引号位于十六进制字符代码 22。因此,^^^^0022
放置它。我可以对直撇号执行类似操作:^^^^0027
。这些放置的字符不会受到 TeX 连字符的影响。
在不支持 Unicode 的 pdflatex 中,也有类似的方法。但是 pre-Unicode 太旧了,我忘了。
另外:某些 TeX 编辑器(包括 TeXWorks)可能会在您输入时自动在编辑器中进行字符替换。请注意!
您可以尝试使用以下方法局部禁用连字fontspec
:
在序言中(请注意括号是双重的):
\newcommand\nolig[1]{{\addfontfeature{Ligatures=ResetAll}#1}}
在文档中:
\nolig{text without ligatures '' and so forth}