我不明白如何输入我们用法语说的悬吊点在句子末尾,像这样...我想创建一个 \endldots 命令。我该如何重新定义 \ldots,使其在盎格鲁撒克逊风格的句末间距方面表现得类似于常规点,即产生更大的跳跃?我试过 \@…\space,但它不起作用(仅适用于 Pdftex)。(注意:在这篇文章中我使用了 Unicode 字符;当然我可以只输入 3 个点,但显然这不是我想要的。)
重要提示:我正在编译Luatex
。
% !TEX TS-program = lualatex
\documentclass{article}
\begin{document}
But\@\ldots\space Even though,\@\ldots\space It still doesn't work. Too bad!
But\ldots\@\space Even though,\ldots\@\space It still doesn't work.\@ Too bad!
\end{document}
编辑
\documentclass{article}
\usepackage{newunicodechar}
\newcommand{\susp}{…\spacefactor\sfcode`.\relax\space}
\renewcommand{\ldots}{…\space}
\begin{document}
But\susp Even though,\susp Now thanks to Egreg and David\ldots it works… like a charm\susp Thank you very much!
\end{document}
答案1
您可以定义\susp
(或任何您喜欢的名称)以在末尾说明所需的空间因子和发出一个空格。无论如何,末尾段落的这个空格都会被删除。
\documentclass{article}
%\usepackage[french]{babel}
\usepackage{newunicodechar}
\newcommand{\susp}{\ldots\spacefactor\sfcode`.\relax\space}
\newunicodechar{…}{\susp\ignorespaces}
\begin{document}
\xspaceskip=30pt % to better show the effect
But\susp But… But
BUT\susp But
\frenchspacing
But\susp But… But
BUT\susp But
\end{document}
使用 pdflatex 我们会得到
答案2
\@\ldots\space
(下面最后一行)
\documentclass{article}
\begin{document}
\parfillskip=0pt plus .5\textwidth % just to exagerate the space
Aaa\ldots Bbb.
Aaa\ldots\ Bbb.
Aaa\ldots\@ Bbb.
Aaa\ldots\@ Bbb.
Aaa\@\ldots\space Bbb.
\end{document}
在 Unicode TeX 中,问题有所不同,\ldots
它解析为字符…
,因此你可以为该字符赋予相同的空间因子代码 ( \sfcode
).
\documentclass{article}
\sfcode`\…=\sfcode`\.
\begin{document}
\parfillskip=0pt plus .5\textwidth % just to exagerate the space
Aaa\ldots Bbb.
Aaa\ldots\ Bbb.
Aaa{\ldots} Bbb.
Aaa\ldots\space Bbb.
Aaa… Bbb.
\end{document}