alltt 包的 \alltt{} 会生成一个换行符

alltt 包的 \alltt{} 会生成一个换行符

alltt导致换行(换行符)。我该如何抑制这种情况?我想要的效果是,\verb+HELLO+除了\begin{verbatim} \end{verbatim}不导致换行之外,它还能执行其他操作。

 \documentclass{article}
 \usepackage{alltt}

 \begin{document}

 The line will break HERE: \alltt{a}

 \end{document}

答案1

alltt定义了一个在内部使用列表环境的环境。因此,它不能以与或alltt相同的方式使用。\verb\texttt

包的要点是、和alltt的使用保持不变。以下宏除了三个字符外,为其参数设置逐字 catcode。\{}\textalltt

\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}

结果

相关内容