第一个解决方案

第一个解决方案

在对话中我经常需要使用这种形式\enquote{---\,Lorem ipsum dolor}。但有时,当引文开始于一行的末尾时,我得到的翻译会很丑陋,如下所示:

d sse lectus lorem sit amet et consectetur quia adipit erit et« —

洛雷姆痛苦之源 »

这是此行为的一个最小示例:

\documentclass{article}
\usepackage[french]{babel}
\RequirePackage[babel=true]{csquotes}
\begin{document}
d sse lectus lorem ipsum quia dolor sit amet et consectetur quia adipit     \enquote{---\,Lorem ipsum dolor}
\end{document}

如您所见,我\,在长划线和后面的单词之间使用了 ,但结果行在拆分时被打断了。使用 也会出现同样的情况~

那么,我怎样才能强制整个链“« — Lorem”位于同一行?

答案1

第一个解决方案

Mico 的答案很好,但这个答案不需要任何包。

\documentclass{article}
\usepackage{csquotes}

\newcommand{\denquote}[1]{%
   \enquote{\mbox{---\,}\ignorespaces#1}}

\begin{document}

% orig. form of "paragraph"
d sse lectus lorem ipsum quia dolor sit amet et consectetur 
quia adipit \enquote{---\,Lorem ipsum dolor}

% with \denquote
d sse lectus lorem ipsum quia dolor sit amet et consectetur 
quia adipit \denquote{Lorem ipsum dolor}

\end{document}

示例代码的输出

我抛出了这个\ignorespaces以防万一输入不小心,并以输入的空格开头。

第二种解决方案

您还可以创建可以在任何需要破折号的地方使用的宏\longdash,而不仅仅是在\enquote命令中:

\documentclass{article}
\usepackage[french]{babel}
\RequirePackage[babel=true]{csquotes}

\newcommand\longdash{\mbox{---\,}\ignorespaces{}}
\begin{document}
d sse lectus lorem ipsum quia dolor sit amet et consectetur quia adipit     \enquote{---\,Lorem ipsum dolor}

d sse lectus lorem ipsum quia dolor sit amet et consectetur quia adipit     \enquote{\longdash{}Lorem ipsum dolor}
\end{document}

答案2

我建议您amsmath使用其宏来加载该包\nobreakdash,如下所示:

\enquote{\nobreakdash---\,Lorem ipsum dolor}

完整的 MWE:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath} % for "\nobreakdash" macro
\usepackage[french]{babel}
\RequirePackage[babel=true]{csquotes}
\begin{document}

% orig. form of "paragraph"
d sse lectus lorem ipsum quia dolor sit amet et consectetur 
quia adipit \enquote{---\,Lorem ipsum dolor}

% with \nobreakdash immed. before "---"
d sse lectus lorem ipsum quia dolor sit amet et consectetur 
quia adipit \enquote{\nobreakdash---\,Lorem ipsum dolor}

\end{document}

相关内容