有没有办法在引号内自动移动句点? csquotes 似乎不起作用

问题描述

csquotes 在这种情况下不起作用,可能是因为我使用的是自定义命令:

\documentclass[12pt,letter,american]{article}
\usepackage[american]{babel}
\usepackage[autopunct,style=american]{csquotes}
\newcommand{\qq}[1]{\textquote{#1}}
\begin{document}
This is an \qq{example}.
\end{document}

\qq 不会将尾随句点移动到报价中,例如This is an \qq{example}. 仍然会产生 This is an “example”. 我已经用 \qq 写了一本书,并希望将引用样式更改为将句点和冒号移动到引号中的样式。有没有安全的方法自动实现这一目标?也许一个包不同于csquotes?到目前为止,我在网上找到的唯一解决方案无法正确处理间距。

解决方法

请参阅 csquotes 文档,第 9.2 节:

\documentclass[12pt]{article}
\usepackage[american]{babel}
\usepackage[autopunct,style=american]{csquotes}
\renewcommand{\mktextquote}[6]{#1#2#4#5#3#6}
\newcommand{\qq}[1]{\textquote{#1}}
\begin{document}
This is an \qq{example}.
\end{document}