结束双引号后没有空格

结束双引号后没有空格

正如标题所示,我的结束引言后没有空格,我将我的长篇序言浓缩为以下内容,

% Manual: http://ctan.org/tex-archive/macros/latex/contrib/memoir/memman.pdf
\documentclass[a4paper,oneside,article]{memoir}

\usepackage[utf8]{inputenc}
\usepackage[danish]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\begin{document}
Hello "I AM A" DUMMY SENTENCE
\end{document}

渲染到

Hello "I AM A"DUMMY SENTENCE

我真的希望它能成为

Hello "I AM A" DUMMY SENTENCE

我正在使用适用于 Windows 的 MikTex 包,我的编辑器是 TexMaker。

我看了看XeLaTeX 中右双引号后的空格但我不认为该解决方案适用,因为我认为我没有加载任何 CJK 包。

答案1

babel包会"变成一个活动字符(所谓的速记),为非英语语言的特殊处理提供很好的快捷方式。(快速、肮脏且印刷错误的解决方法是使用{}12:)"I AM A"{} DUMMY

正确的丹麦语引号是用"`(„) 和"'(“) 获得的。
顺便说一句,既然你无论如何都可以使用,那么你可以直接utf8输入和:„I AM A“

看看babel手册及其有关丹麦语的部分!

您也可能对以下内容感兴趣csquotes提供有用的引号宏。它还能够babel识别 -aware 并使用正确的引号。

babel使用 的简写进行编码

\documentclass[a4paper,oneside,article]{memoir}

\usepackage[utf8]{inputenc}
\usepackage[danish]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\begin{document}
Hello "`I AM A"' DUMMY SENTENCE
\end{document}

\enquote使用来自csquotes包的代码

\documentclass[a4paper,oneside,article]{memoir}

\usepackage[utf8]{inputenc}
\usepackage[danish]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{csquotes}

\begin{document}
Hello \enquote{I AM A} DUMMY SENTENCE
\end{document}

两种变体的输出

两种变体的输出

之后僵硬吗"

如果您仍在直双引号后面",则可以使用\textquotedbl

\documentclass[a4paper,oneside,article]{memoir}

\usepackage[utf8]{inputenc}
\usepackage[danish]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\begin{document}
Hello \textquotedbl I AM A\textquotedbl{} DUMMY SENTENCE 
\end{document}

输出\textquotedbl

\textquotedbl 输出

答案2

为了补充 Qrrbrbirlbel 的出色回答,以下是一些关于为什么有时候是这样的。

角色"应该绝不在 LaTeX 中用来获取引号。获取(英式)双引号的正确方法是

``Opening and closing quotes''

"不应依赖 产生看似正确的引号 (”)的事实:它可能会失败,具体取决于所使用的字体。此外,在良好的排版中,开始和结束的引号应该彼此不同。

当遵循不同的印刷传统时,引号会发生变化;德语使用降低的开头引号和升高的结尾引号,但与英国用法相反。丹麦语似乎也是如此,并且babel提供了速记功能,无需在键盘上寻找正确的字符,正如 Qrrbrbirlbel 所解释的那样。

在许多语言模块中,babel“直双引号”字符以相同的方式用于引入简写。它们的工作方式总是babel相同的:

<shorthand_char><char>

其中一些组合是有意义的(它们在不同语言中可能有不同的含义),而其他组合则没有。当组合没有预定义的含义时,<shorthand_char>会回退到"“在当前字体中位置 34 处打印字符”的情况。但是,识别下一个字符的过程会\@ifnextchar根据设计使用它会占用过程中找到的所有空格。

因此在示例中

Hello "I AM A" DUMMY SENTENCE

LaTeX 会检查该组合"I对丹麦语是否有意义,如果有意义,则会打印

“我

然后它找到第二个",并开始寻找下一个字符,吞掉空格。最终A找到了,由于"A不是预定义的组合,

“A

已打印。

相关内容