I've noticed that a capital letter followed by punctuation makes the following glue behave like the usual interword glue and does not change the space factor. This is mostly OK when a capital letter is followed by a period because initials are quite common (e.g. D. E. Knuth
), but not OK when a capital letter is followed by an exclamation mark, question mark, comma, semicolon, or comma.
I've provided a MWE that displays the space factor when a punctuation mark (.
, !
, ?
, :
, ;
, ,
) is followed by a )
, ]
, or }
for three cases: when the punctuation mark follows a (a) lowercase letter, (b) capital letter, (c) capital letter with \@
before the following punctuation. I am aware that the csquotes
package already handles the space factor following a closing quotation mark.
Instead of adding \@
after each capital letter followed by the aforementioned punctuation marks, I am currently thinking about adding a macro to my documents that treats all capital letters like lowercase letters with respect to the space factor. See the code by egreg: Disabling interword spacing for periods following capital letters
I am interested in the LaTeX community's thoughts on this issue.
\documentclass{article}
\usepackage[fontsize=9pt]{fontsize}
\usepackage{geometry}
\usepackage{multicol}
\setlength{\columnseprule}{0.5pt}
\raggedright
\usepackage{stix2}
%
%The following macro makes all uppercase letters behave like the lowercase with respect to the space factor.
%Source: https://tex.stackexchange.com/questions/60876/disabling-interword-spacing-for-periods-following-capital-letters
%\count255=`A
%\loop
% \ifnum\count255<`Z
% \sfcode\count255=1000
% \advance\count255 by 1
%\repeat
%
\begin{document}
%
\begin{multicols}{4}[\section*{LaTeX Space Factors After Punctuation}]
Period
\par
\verb|abc.|
abc.
\the\spacefactor
\par
\verb|ABC.|
ABC.
\the\spacefactor
\par
\verb|ABC\@.|
ABC\@.
\the\spacefactor
%
\par
\bigskip
Exclamation Mark
\par
\verb|abc!|
abc!
\the\spacefactor
\par
\verb|ABC!|
ABC!
\the\spacefactor
\par
\verb|ABC\@!|
ABC\@!
\the\spacefactor
%
\par
\bigskip
Question Mark
\par
\verb|abc?|
abc?
\the\spacefactor
\par
\verb|ABC?|
ABC?
\the\spacefactor
\par
\verb|ABC\@?|
ABC\@?
\the\spacefactor
%
\par
\bigskip
Colon
\par
\verb|abc:|
abc:
\the\spacefactor
\par
\verb|ABC:|
ABC:
\the\spacefactor
\par
\verb|ABC\@:|
ABC\@:
\the\spacefactor
%
\par
\bigskip
Semicolon
\par
\verb|abc;|
abc;
\the\spacefactor
\par
\verb|ABC;|
ABC;
\the\spacefactor
\par
\verb|ABC\@;|
ABC\@;
\the\spacefactor
%
\par
\bigskip
Comma
\par
\verb|abc,|
abc,
\the\spacefactor
\par
\verb|ABC,|
ABC,
\the\spacefactor
\par
\verb|ABC\@,|
ABC\@,
\the\spacefactor
%
\par
.)
\par
\verb|abc.)|
abc.)
\the\spacefactor
\par
\verb|ABC.)|
ABC.)
\the\spacefactor
\par
\verb|ABC\@.)|
ABC\@.)
\the\spacefactor
%
\par
\bigskip
!)
\par
\verb|abc!|
abc!
\the\spacefactor
\par
\verb|ABC!|
ABC!
\the\spacefactor
\par
\verb|ABC\@!|
ABC\@!
\the\spacefactor
%
\par
\bigskip
?)
\par
\verb|abc?)|
abc?)
\the\spacefactor
\par
\verb|ABC?)|
ABC?)
\the\spacefactor
\par
\verb|ABC\@?)|
ABC\@?)
\the\spacefactor
%
\par
\bigskip
:)
\par
\verb|abc:)|
abc:)
\the\spacefactor
\par
\verb|ABC:)|
ABC:)
\the\spacefactor
\par
\verb|ABC\@:)|
ABC\@:)
\the\spacefactor
%
\par
\bigskip
;)
\par
\verb|abc;)|
abc;)
\the\spacefactor
\par
\verb|ABC;)|
ABC;)
\the\spacefactor
\par
\verb|ABC\@;)|
ABC\@;)
\the\spacefactor
%
\par
\bigskip
,)
\par
\verb|abc,)|
abc,)
\the\spacefactor
\par
\verb|ABC,)|
ABC,)
\the\spacefactor
\par
\verb|ABC\@,)|
ABC\@,)
\the\spacefactor
%
\par
.]
\par
\verb|abc.]|
abc.]
\the\spacefactor
\par
\verb|ABC.]|
ABC.]
\the\spacefactor
\par
\verb|ABC\@.]|
ABC\@.]
\the\spacefactor
%
\par
\bigskip
!]
\par
\verb|abc!|
abc!
\the\spacefactor
\par
\verb|ABC!|
ABC!
\the\spacefactor
\par
\verb|ABC\@!|
ABC\@!
\the\spacefactor
%
\par
\bigskip
?]
\par
\verb|abc?]|
abc?]
\the\spacefactor
\par
\verb|ABC?]|
ABC?]
\the\spacefactor
\par
\verb|ABC\@?]|
ABC\@?]
\the\spacefactor
%
\par
\bigskip
:]
\par
\verb|abc:]|
abc:]
\the\spacefactor
\par
\verb|ABC:]|
ABC:]
\the\spacefactor
\par
\verb|ABC\@:]|
ABC\@:]
\the\spacefactor
%
\par
\bigskip
;]
\par
\verb|abc;]|
abc;]
\the\spacefactor
\par
\verb|ABC;]|
ABC;]
\the\spacefactor
\par
\verb|ABC\@;]|
ABC\@;]
\the\spacefactor
%
\par
\bigskip
,]
\par
\verb|abc,]|
abc,]
\the\spacefactor
\par
\verb|ABC,]|
ABC,]
\the\spacefactor
\par
\verb|ABC\@,]|
ABC\@,]
\the\spacefactor
%
\par
.\}
\par
\verb|abc.\}|
abc.\}
\the\spacefactor
\par
\verb|ABC.\}|
ABC.\}
\the\spacefactor
\par
\verb|ABC\@.\}|
ABC\@.\}
\the\spacefactor
%
\par
\bigskip
!\}
\par
\verb|abc!|
abc!
\the\spacefactor
\par
\verb|ABC!|
ABC!
\the\spacefactor
\par
\verb|ABC\@!|
ABC\@!
\the\spacefactor
%
\par
\bigskip
?\}
\par
\verb|abc?\}|
abc?\}
\the\spacefactor
\par
\verb|ABC?\}|
ABC?\}
\the\spacefactor
\par
\verb|ABC\@?\}|
ABC\@?\}
\the\spacefactor
%
\par
\bigskip
:\}
\par
\verb|abc:\}|
abc:\}
\the\spacefactor
\par
\verb|ABC:\}|
ABC:\}
\the\spacefactor
\par
\verb|ABC\@:\}|
ABC\@:\}
\the\spacefactor
%
\par
\bigskip
;\}
\par
\verb|abc;\}|
abc;\}
\the\spacefactor
\par
\verb|ABC;\}|
ABC;\}
\the\spacefactor
\par
\verb|ABC\@;\}|
ABC\@;\}
\the\spacefactor
%
\par
\bigskip
,\}
\par
\verb|abc,\}|
abc,\}
\the\spacefactor
\par
\verb|ABC,\}|
ABC,\}
\the\spacefactor
\par
\verb|ABC\@,\}|
ABC\@,\}
\the\spacefactor
\end{multicols}
%
\end{document}
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
\@
to whatever macro is making the uppercase eg latex adds\@
to\TeX
so\TeX.
gets end of sentence space