双引号字符为“ (\textquotedbl) 而不是” (\textquotecblright)

双引号字符为“ (\textquotedbl) 而不是” (\textquotecblright)

我的文档中有双引号字符 ( ")。我得到的不是精确排版"(在 Latex 中\textquotedbl),而是正确的双引号字符 (在 Latex''或 中\textquotedblright)。为什么 LaTex 排版

"Blablabla"

写成“Blablabla”而不是“Blablabla”?

当我想要“Blabblabla”时,我输入“Blabblabla”,那么为什么会"变成

我正在使用 LuaLatex 和fontspec

答案1

fontspec默认适用于和Ligatures=TeX定义的字体。这些连字符应该重现标准 LaTeX 设置。\rmfamily\sffamily

您可以禁用它,但您将失去所有字体。请注意,您必须声明一个主字体,因为默认字体已使用Ligatures=TeXset 预加载。

\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}

相关内容