3

I do not understand how to type what we call in French points de suspension at the end of a sentence, like this... I would like to create an \endldots command. How could I redefine \ldots so that it behaves similarly to a regular dot with respect to anglosaxon-style end-of-sentence spacing, i.e. generates a bigger skip ? I tried \@…\space but it does not work (only work with Pdftex). (Note: in this post I used the Unicode character; of course I could just type 3 dots but obviously this is not what i want.)

Important : I'm compiling with 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}

enter image description here

Edit

\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}

enter image description here

2 Answers2

3

\@\ldots\space (the last line below)

enter image description here

\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}


In Unicode TeX the issue is rather different, \ldots resolves to the character so you can give that character the same space factor code (\sfcode) as .

enter image description here

\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}

David Carlisle
  • 757,742
2

You can define \susp (or whatever name you prefer) to state the wanted space factor at the end and to issue a space. This space will be removed at end paragraphs anyway.

\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}

enter image description here

With pdflatex we'd get

enter image description here

egreg
  • 1,121,712
  • Thank you very much ! I like this \newcommand{\susp}{\ldots\spacefactor\sfcode`.\relax\space} because it leaves the original character alone, we need it for middle-of-sentence context. – Vincent Krebs Mar 23 '22 at 10:31