我有一段程序代码/输入,需要按照输入的精确布局进行渲染(逐字逐句)。是否可以将其作为方程式?我尝试将环境嵌套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
(但添加\normalbaselines
becausegathered
会增加行间空间)。
\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}