自动正确格式化单引号

自动正确格式化单引号

LaTeX 倾向于将所有引号格式化为同一方向。对于双引号,我通过添加以下内容解决了此问题:

\usepackage[autostyle, english = american]{csquotes}
\MakeOuterQuote{"}

但是,我似乎不知道如何对单引号执行相同的操作。目前,This is a 'quote'.结果是:

在此处输入图片描述

如您所见,开头'应该是镜像的。我在 StackExchange 上找到了多个关于此问题的主题,大多数建议改用\lq或反引号。但是,我想知道是否可以自动正确格式化单引号,就像我对上面的双引号所做的那样。非常感谢您的建议!

答案1

当然可以。但你需要先从保留字符列表中删除引号。

但是如果你取消注释,l'enfer你就会明白为什么 csquotes 将字符放入列表中(并因此阻止你将其用作\MakeInnerQuote字符)。

我建议你避免这样的伎俩。当你没有预料到的时候,它们会咬你一口。使用\enquote虽然需要多一点打字工作,但更安全。与其尝试调整 LaTeX,不如花点时间设置编辑器,让它\enquote用快捷键插入。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[autostyle]{csquotes}
\MakeOuterQuote{"}
\MakeAutoQuote{«}{»}
\makeatletter
%Remove \do\' from the list of reserved chars
\def\csq@resrvdchars{%
  \do\[\do\]\do\*\do\@\do\~\do\-\do\`\do\.\do\,\do\;\do\:%
  \do\!\do\?\do\0\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9}
\makeatother
\MakeInnerQuote{'}  

\begin{document}
"quote" 'quote'  %l'enfer
\enquote{quote}
\enquote*{quote}
«quote «inner quote» quote»
\end{document}

在此处输入图片描述

答案2

csquotes根据语言设置决定使用哪种引号。例如,在英国印刷术中,习惯上将单引号作为外引号,将双引号作为内引号。对于美式英语则相反。

因此,

\documentclass{article}
\usepackage[british]{babel}
\usepackage{csquotes}
\MakeOuterQuote{"}
\begin{document}  
"quote"
\end{document}

生产

在此处输入图片描述

更改britishamerican,您将获得

在此处输入图片描述

相关内容