# Too much space after an abbreviation period in tt mode

Is there any way to reduce the space between "CTRL." and "OUT", in the following text?

\documentclass[11pt,a4paper,twoside,openright]{book}
\begin{document}
\noindent
Press the button \texttt{CTRL. OUT} in the controller.\\
Press the button \texttt{CTRL.\ OUT} in the controller.\\
Press the button \texttt{CTRL.\@ OUT} in the controller.\\
Press the button \texttt{CTRL\@. OUT} in the controller.\\
Press the button \texttt{CTRL\@.\@ OUT} in the controller.\\
Press the button \texttt{CTRL.~OUT} in the controller.
\end{document}


Nothing seems to work as stated here.

• In my opinion, the spacing is correct (except in the fourth case). You are using a monospaced font, so the space should have the same width as any other glyph... The space is the same with or without abbreviation. It looks bigger after an abbreviation because of the white space you see above the period. But if you measure it's actually the same width. – Phelype Oleinik May 28 '18 at 20:09
• it seems odd to choose a monospace font and then ask for the space to vary. – David Carlisle May 28 '18 at 20:37
• A Unicode monospace font might nonetheless have a thin-space character. – Davislor May 29 '18 at 0:33

## 3 Answers

The space and the period have the same width, but the period is almost centered in the allotted width (a bit shifted to the left, see the image below).

\documentclass[11pt,a4paper,twoside,openright]{book}
\begin{document}
\noindent
1. Press the button \texttt{CTRL. OUT} in the controller.\\
2. Press the button \texttt{CTRLXXOUT} in the controller.\\
3. Press the button \texttt{CTRL.\ OUT} in the controller.\\
4. Press the button \texttt{CTRL.\@ OUT} in the controller.\\
5. Press the button \texttt{CTRL\@. OUT} in the controller.\\
6. Press the button \texttt{CTRL\@.\@ OUT} in the controller.\\
7. Press the button \texttt{CTRL.~OUT} in the controller.

\vrule\texttt{.}\vrule
\end{document}


Line 2 shows the widths are the same. After a capital letter, the \spacefactor of the period is not relevant. The Computer Modern font however, has a nonzero “extra space” component, which is used when the current space factor is 3000 or more, which is the case of line 5 where \@. first sets the space factor to 1000 with \@ and then the period sets it to 3000. The extra space has a value whose effect is to add a double space. You can realize this with

\texttt{ctrl. out}


as well.

If you really want to reduce the space after the period, you have to do it manually, say with

\texttt{CTRL.\hspace{0.3em}OUT}


Example:

\bigskip
\noindent
\texttt{CTRL. OUT}\\
\texttt{CTRL.\hspace{0.3em}OUT}


I agree with Phelype that there's not an error here, but if you'd like to directly manipulate the spacing you can do something like this:

   Press the button \texttt{CTRL.\kern0.1emOUT} in the controller.\\


The result of the above is the last line in the image below; the lines above are from your MWE.

My shortest answer in this site: \,