# [texhax] Smart periods

Michael Barr barr at math.mcgill.ca
Mon Nov 5 21:12:40 CET 2012

I guess I really did ask the question nearly three years ago.  My memory must be failing.  I think I didn't understand Donald Arsenault's suggestion of using \spacefactor.  The following code seems to work quite well, as far as I have tested it:

\def\smartperiod#1{#1\ifnum\the\spacefactor=1000 .\fi}

\smartperiod{This is a string}
\smartperiod{This is a string,}
\smartperiod{This is a string.}
\smartperiod{This is a string?}
\smartperiod{This is a string!}

Although the journal does not use \frenchspacing, the following redefinition of frenchspacing, as also suggested by Donald Arsenault, works well too:

\def\frenchspacing{\sfcode\.=1001 \sfcode\!=1001 \sfcode\,=1001
\sfcode\;=1001 \sfcode\:=1001 }

Michael

----- Original Message -----
From: texhax-request at tug.org
To: texhax at tug.org
Sent: Monday, November 5, 2012 6:00:02 AM
Subject: texhax Digest, Vol 2012, Issue 287

Surely someone has solved this problem.  The online journal I do tex editing for uses \subsection and \subsubsection run in to the text.  The problem is that we want to add a period to the title unless there is already a punctuation mark.  But I have seen the following in authors' texts (even my own, I must admit).
\subsection{This is a subsection}
\subsection{This is a subsection.}
\subsection{Is this a subsection?}
\subsection{This is an amazing subsection!}
and I would want to automatically add a period to the first form and leave the remaining three unchanged.  This is also an issue for the starred version.  I have tried a couple of solutions, none of which quite worked.  Yet it seems like an obvious thing for someone to have dealt with.

Michael

------------------------------

Message: 3
Date: Sun, 4 Nov 2012 21:21:51 +0100
From: Uwe L?ck <uwe.lueck at web.de>
To: Michael Barr <barr at math.mcgill.ca>
Cc: "<Unknown>" <texhax at tug.org>
Subject: Re: [texhax] Smart periods?
Message-ID: <1352060511.5786.10.camel at uwe-laptop>
Content-Type: text/plain; charset="UTF-8"

Am Sonntag, den 04.11.2012, 12:59 -0500 schrieb Michael Barr:
> \subsection{This is a subsection}
> \subsection{This is a subsection.}
> \subsection{Is this a subsection?}
> \subsection{This is an amazing subsection!}
> and I would want to automatically add a period to the first form
> and leave the remaining three unchanged.
> This is also an issue for the starred version.
> I have tried a couple of solutions, none of which quite worked.
> Yet it seems like an obvious thing for someone to have dealt with.

"The last character of a string"
on

http://tug.org/pipermail/texhax/2010-January/

Cheers,

Uwe.

`