将逐字代码作为等式

将逐字代码作为等式

我有一段程序代码/输入,需要按照输入的精确布局进行渲染(逐字逐句)。是否可以将其作为方程式?我尝试将环境嵌套Verbatim在其中,equation但没有成功。有什么帮助吗?

\begin{equation}
\begin{Verbatim}
... hack hack hack ...
\end{Verbatim}
\end{equation}

答案1

如果您只想排版包含一些逐字文本的单个方程式,则可以使用的缩写形式verbatim,例如\verb!...!

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\begin{equation}
  \verb!f(x)=ax^2+bx+c! \label{eq:1}
\end{equation}
In order to typeset $f(x)=ax^2+bx+c$, see~\eqref{eq:1}.
\end{document}

amsmath规定\eqref{<lab>}将公式引用( )放在括号中。当然,这些equation环境可以根据需要与文本混合使用。

verbatim以上是在公式中快速轻松地排版的方法。如果您希望verbatim在对齐公式环境中显示多个内容(例如amsmath's align),你可以使用fancyvrb包裹捕获逐字内容,然后在align环境中使用它。verbatim直接使用align不起作用。

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\usepackage{fancyvrb}% http://ctan.org/pkg/fancyvrb
\begin{document}
\DefineShortVerb{\|}
\SaveVerb{VerbA}|f(x)=ax^2+bx+c|% First equation verbatim
\SaveVerb{VerbB}|g(x)=dx^2+ex+f|% Second equation verbatim
\begin{align}
  \UseVerb{VerbA} \label{eq:1} \\
  \UseVerb{VerbB} \label{eq:2}
\end{align}
In order to typeset $f(x)=ax^2+bx+c$, see~\eqref{eq:1}. There is also~\eqref{eq:2} that shows you how to typeset $g(x)=dx^2+ex+f$.
\end{document}

编辑:将这些分组为单个“等式”与原始equation环境类似,并且仅使用array环境来“收集”内容。

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\begin{equation}
  \left.\begin{array}{r@{}l}
    \verb!f(x)!&\verb!=ax^2+bx+c! \\
    \verb!g(x)+2f(x)!&\verb!=y!
  \end{array}\right\} \label{eq:input}
\end{equation}
One could use~\eqref{eq:input} as input.
\end{document}

尽管不是完全必要的,但上面的例子使用零宽度列分隔来对齐等式部分的@{}等号。=\verb

答案2

可以使用 中的“子”环境之一来获得具有单个方程编号的多行方程amsmath。每行都需要\verb单独应用:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
 \begin{aligned}
  &\verb|f(x)=ax^2=bx+c|\\
  &\verb|g(x)=dx^2=ex+f|\\
  &\verb|h(x)=kx^2=mx+n|
 \end{aligned}
\end{equation}
\end{document}

答案3

尝试

\newenvironment{texteq}{%
    \begin{equation}%
        \begin{minipage}{0.9\linewidth}%
}{%
        \end{minipage}%
    \end{equation}%
    \ignorespacesafterend%
}

您仍然必须在 texteq 环境中启动 verbatim 环境:

\begin{texteq}
    \begin{verbatim}
    ...
    \end{verbatim}
\end{texteq}

答案4

您可以使用fancyvrb及其BVerbatim环境。为了使公式编号居中,请使用gathered(但添加\normalbaselinesbecausegathered会增加行间空间)。

\documentclass{article}
\usepackage{amsmath}
\usepackage{fancyvrb}
\usepackage{lipsum}

\newenvironment{EqVerbatim}
 {\VerbatimEnvironment\begin{gathered}\normalbaselines\begin{BVerbatim}}
 {\end{BVerbatim}\end{gathered}}

\begin{document}

\lipsum*[2]
\begin{equation}
\begin{EqVerbatim}
| 1 0 0 0 0 0 0 |
| 0 1 0 0 0 0 0 |
| 0 0 1 0 0 0 0 |
| 0 0 0 1 0 0 0 |
| 0 0 0 0 1 0 0 |
| 0 0 0 0 0 1 0 |
| 0 0 0 0 0 0 1 |
\end{EqVerbatim}
\end{equation}
\lipsum[3]

\end{document}

在此处输入图片描述

相关内容