为什么 \texttt 和 \verb 在输入中使用 LaTeX 命令时会出现错误

为什么 \texttt 和 \verb 在输入中使用 LaTeX 命令时会出现错误

在最新版本的 MikTeX 上,以下功能有效:

\begin{align*}
\int sinxdx && \texttt{test line 1}\\
\int{sinx}dx && \texttt{test line 2}\\
\end{align*}

但以下会出现错误:

\begin{align*}
\int sinxdx && \texttt{\int sinxdx}\\
\int{sinx}dx && \texttt{\int{sinx}dx}\\
\end{align*}

错误:

Underfull \hbox (badness 10000) in paragraph at lines 94--102
[2] [3]
Overfull \hbox (40.0189pt too wide) detected at line 168
\OML/cmm/m/it/10.95 a=c \OMS/cmsy/m/n/10.95

当使用 \verb 时,以下也会出现类似的错误:

\begin{align*}
\int sinxdx && \verb|test line 1|\\
\int{sinx}dx && \verb|test line 2|\\
\end{align*}

答案1

为了获取align*环境中的逐字内容,我的verbatimbox包可以提供帮助。

\documentclass{article}
\usepackage{amsmath,verbatimbox}
\begin{document}
\begin{myverbbox}{\lineA}\int \sin x\,dx\end{myverbbox}
\begin{myverbbox}{\lineB}\int{\sin x}\,dx\end{myverbbox}
\begin{align*}
\int \sin x\,dx && \lineA\\
\int{\sin x}\,dx && \lineB\\
\end{align*}
\end{document}

在此处输入图片描述

对于的另一个问题\texttt,请尝试\mathtt以数学模式处理其参数。


附录

OP 询问是否可以不使用其他软件包来完成此操作。也许这样就足够了:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
\int \sin x\,dx && \texttt{\string\int~\string\sin~x\string\,dx}\\
\int{\sin x}\,dx && \texttt{\string\int\string{\string\sin~x\string}\string\,dx}
\end{align*}
\end{document}

在此处输入图片描述

答案2

您不能\verb在 内部使用align*,就像在任何其他命令的参数中一样;align是一个特殊的环境,它在开始排版之前读取其内容,这会导致不允许的后果\verb。如果您想制作输入和输出的示例,您可以使用array

\documentclass{article}
\usepackage{array,booktabs}

\begin{document}

\[
\begin{array}{>{\displaystyle}ll}
\int \sin x \, dx & \verb|\int \sin x \, dx| \\
\addlinespace
\int \cos x \, dx & \verb|\int \cos x \, dx|
\end{array}
\]

\end{document}

请注意正确的 TeX 符号;空格是可选的(\sin和之间的空格除外) x

在此处输入图片描述

相关内容