[Tex/LaTex] alltt package’s \alltt{} makes a newline

line-breakingverbatim

alltt causes a line break (newline). How do i suppress this? I want something to the effect of \verb+HELLO+ in that it does what \begin{verbatim} \end{verbatim} does except doesn't cause the line to break.

 \documentclass{article}
 \usepackage{alltt}

 \begin{document}

 The line will break HERE: \alltt{a}

 \end{document}

Best Answer

Package alltt defines an environemnt alltt that uses a list environment internally. Therefore it cannot be used the same way as \verb or \texttt.

The main point of package alltt is the unchanged use of \, { and }. The following macro \textalltt sets verbatim catcodes for its argument except for the three characters.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\makeatletter
\newcommand*{\textalltt}{}
\DeclareRobustCommand*{\textalltt}{%
  \begingroup
    \let\do\@makeother
    \dospecials
    \catcode`\\=\z@
    \catcode`\{=\@ne
    \catcode`\}=\tw@
    \verbatim@font\@noligs
    \@vobeyspaces
    \frenchspacing
    \@textalltt
}
\newcommand*{\@textalltt}[1]{%
    #1%
  \endgroup
}
\makeatother

\begin{document}
Verbatim text: \textalltt{Hello \textbf{\textsl{world}}}.
\end{document}

Result

Related Question