在对话中我经常需要使用这种形式\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}