5

All of us know that we should use \dots instead of ... (three single dots).

But how can I typeset correctly the combination of an exclamation mark with an ellipsis (!..) or a question mark with an ellipsis (?..), or both marks with a dot (?!., !?.)?

I want to have dots on equal distances — same as in \dots.

Of course, I can guess the kerning, but this solution will be font-dependent :-(

pantlmn
  • 1,366
  • 8
  • 17
  • I'd suggest that the question / exclamation mark and the ellipsis are independent and you should therefore use ?\dots, rather than overwriting the dots. However the spacing may not be what you'd like, it may come out rather like ". ...". – Chris H Sep 08 '15 at 12:38
  • @ChrisH That doesn't work: you cannot redefine the country-wide standards in typography and use four dots instead of three (?...) – pantlmn Sep 08 '15 at 12:41
  • @pantlmn -- i'm not familiar with the standards you're referring to. in what country are they used? (your profile doesn't identify that.) in the u;s., it is sometimes considered appropriate to use \dots plus a period to show definitively that this is the end of a sentence. and i've never seen either an exclamation or question mark with "attached" dots; a full three-dot sequence following a space after such punctuation indicates an omission from discourse in a quote. (i agree with following local standards, but provenance is important.) – barbara beeton Sep 08 '15 at 12:52
  • @barbarabeeton Russian typografic rules allow usage of "!.." and "?.." (https://en.wikipedia.org/wiki/Ellipsis#In_Russian) – pantlmn Sep 08 '15 at 13:03
  • I didn’t know that about Russian typography. Thanks! – Davislor Sep 09 '15 at 16:21
  • Deleted my answer as not answering your question, then. (If anyone cares, the command for an interrobang is \textinterrobang.) – Davislor Sep 09 '15 at 16:23

3 Answers3

8

I'm not sure what these character combination should mean. Anyway, here they are; still font dependent, I'm afraid, because the shape of ? gets in the way, so I provide a “parameter” for it. Uncomment one of the font packages to see the effect with a different font; for these two a change in \centqmkern doesn't seem necessary.

\documentclass{article}
%\usepackage{erewhon}
%\usepackage{newtxtext}

\newcommand{\centqm}{\makebox[\fontcharwd\font`.]{?}}
\newcommand{\centqmkern}{\kern.2\fontcharwd\font`?}

\DeclareRobustCommand{\edots}{%
  !\kern\fontdimen3\font
  .\kern\fontdimen3\font
  .\kern\fontdimen3\font
}
\DeclareRobustCommand{\qdots}{%
  \centqmkern
  \centqm\kern\fontdimen3\font
  .\kern\fontdimen3\font
  .\kern\fontdimen3\font
}

\DeclareRobustCommand{\qedots}{%
  \centqmkern
  \centqm\kern\fontdimen3\font
  !\kern\fontdimen3\font
  .\kern\fontdimen3\font
}

\DeclareRobustCommand{\eqdots}{%
  !\kern\fontdimen3\font
  \centqm\kern\fontdimen3\font
  .\kern\fontdimen3\font
}

\begin{document}

Text\dots

Text\edots

Text\eqdots

Text\qdots

Text\qedots

Text?

\end{document}

enter image description here

egreg
  • 1,121,712
  • Worked perfect. The meaning of the signs is rather closely shown by jlv in the dialogue. Ellipsis shows hesitation and that the phrase is kind of unfinished. – pantlmn Sep 08 '15 at 16:34
  • @pantlmn Something I'd never use. ;-) – egreg Sep 08 '15 at 16:39
  • Tested your solution a bit more: actually, you don't need \kern\fontdimen3\font after the last dot. Test example is : «Really\qedots» — said John. – pantlmn Sep 09 '15 at 14:09
  • @pantlmn That's what the standard \dots (more precisely \textellipsis) does. – egreg Sep 09 '15 at 14:16
4

You can use the macro \eli followed by three symbols. For example Text\eli?.. The advantage is that you needn't to specify explicit space after this. The name \eli means ellipsis.

\def\eli#1#2#3{%
   \setbox0=\hbox{#1}%
   \setbox2=\hbox{.}%
   \kern.5\wd0
   \cbox{#1}\kern1.6\wd2\cbox{#2}\kern1.6\wd2\cbox{#3}%
   \kern\wd2
}
\def\cbox#1{\hbox to0pt{\hss#1\hss}}

Text\eli... Text\eli?.. Text\eli!.. Text\eli?!.

\bye 

Result:

eli

wipet
  • 74,238
0

I'm not sure if there are commands for the symbols you mention, but there is a way to make it look like what you want, with \rlap (see here for more details). Here's the code:

\documentclass{ltxdoc}
\begin{document}

\noindent
Hello\rlap{\dots}!\\
Yes\rlap{\dots}?\\
May I come in\rlap{\hspace{1pt}\dots}?\\
Why\rlap{\dots}?!\\
Why not\rlap{\hspace{1pt}\dots}?\hspace{1pt}!\\
Because\rlap{\dots}!?\\
Never\rlap{\dots}!\hspace{1pt}?

\end{document}

And here's the resulting image:

enter image description here

As you can see, there are some problems, since the question mark does not have quite the same spacing as the exclamation point, but a little adjustment makes it work nicely.

  • There is no use or \rlap{\dots} if you use manual kerning. It's much better to have uneven spaces between punctuation signs than to get extra dots or strange-shaped dots. – pantlmn Sep 08 '15 at 16:29