4

There seems to be too much horizontal whitespace following italic typewriter text. Consider this example:

\documentclass{article}

\begin{document}
\noindent
\texttt{This is a perfectly \textit{fine example} of text\newline
Immediately succeeded by another line of similar text.}
\end{document}

This produces two lines of text. The letters at the beginning of each line are in perfect vertical alignment, but the letters following the end of the italics are not. There's too much space after \textit{fine example}.

How can I avoid this extraneous space, so that I can use the monospace font to line up columns across multiple lines?

Update: Interestingly, the spacing is correct if an upright comma is added after the italics, \textit{fine example},, but not if the comma is italic, too: \textit{fine example,}.

  • 1
    I don't see too much space. also, why you are using \newline? – CroCo Nov 23 '15 at 22:19
  • @CroCo: I don't want justification, I just wanted two naturally-spaced lines. I can see the misalignment e.g. on latexfiddle.com. – Kerrek SB Nov 23 '15 at 22:21
  • Of course not but my point is what do you expect the \newline does? – CroCo Nov 23 '15 at 22:27
  • you can use the nonbreakable space ~ if you don't want extra space \textit{fine example}~of but in your case, I don't see why you need that. The space between strings is set automatically. – CroCo Nov 23 '15 at 22:39
  • That's probably the italic correction. Try {\itshape fine example} – cgnieder Nov 23 '15 at 22:39
3

The \textit command adds the italic correction, which is usually desirable when in normal text: compare

\textit{full} size

{\itshape full} size

that gives

enter image description here

where the second line has too short space.

However, this is not desirable in a monospaced context, as you notice. Either use {\itshape fine example} or the following more complicated version.

\documentclass{article}
\usepackage{pdftexcmds}

\DeclareTextFontCommand{\latextextit}{\itshape}
\makeatletter
\DeclareRobustCommand{\textit}[1]{%
  \ifnum\pdf@strcmp{\f@family}{\ttdefault}=\z@
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
  {\latextextit{#1\nocorr}}%
  {\latextextit{#1}}%
}
\makeatother

\begin{document}

\noindent\textit{full} size

\noindent{\itshape full} size

\noindent
\texttt{This is a perfectly \textit{fine example} of text\newline
Immediately succeeded by another line of similar text.}
\end{document}

enter image description here

  • 1
    Every day something new: I didn't know \nocorr :) – cgnieder Nov 23 '15 at 22:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.