使用 alltt 环境编写数学公式并制作一个盒子

使用 alltt 环境编写数学公式并制作一个盒子

我尝试查找这个问题,但还没有找到同时完成这两项操作的方法。

我希望在逐字环境中编写数学符号,为此我使用alltt。但我还希望将我的代码放在一个框中,为此我曾经使用\usepackage{fancyvrb}Verbatim环境。

有没有办法将两者结合起来?

答案1

是的,您可以这样做,如文档第 16 页所述fancyvrb

\documentclass{article}
\usepackage{fancyvrb}

\begin{document}

\begin{Verbatim}[commandchars=\\\{\},
codes={\catcode`$=3\catcode`^=7\catcode`_=8},frame=single]
some code test
$\sum a_i$
\end{Verbatim}

\end{document}

在此处输入图片描述

我建议你改用listings并使用其mathescape=true功能:

\documentclass{article}
\usepackage{listings}

\lstset{
  basicstyle=\ttfamily,
  columns=fullflexible,
  mathescape=true,
  frame=single
}

\begin{document}

\begin{lstlisting}
some code test
$\sum a_i$
\end{lstlisting}

\end{document}

在此处输入图片描述

如果你想要更漂亮的盒子,那么你可以使用tcolorbox及其与的相互作用listings

答案2

下面的例子来自文档fancyvrb,“4.1.6 Catcode 字符”。

\documentclass[a5paper]{article}
\usepackage{fancyvrb}
\begin{document}
\begin{Verbatim}[
  frame=single,
  commandchars=\\\{\},
  codes={%
    \catcode`$=3\relax
    \catcode`^=7\relax
    \catcode`_=8\relax
  },
]
x\string_0=1/sqrt(z\string^2) ! $x_0=\frac{1}{\sqrt{z^2}}$
\end{Verbatim}
\begin{Verbatim}[
  frame=single,
  commandchars=\\\{\},
  codes={%
    \catcode`$=3\relax
  },
]
x_0=1/sqrt(z^2) ! $x\sb{0}=\frac{1}{\sqrt{z\sp{2}}}$
\end{Verbatim}
\end{document}

结果

_^具有正常类别代码时,\string如果要以逐字模式设置它们,则需要以 为前缀。

或者,_^保持不变,而\sb\sp则用于数学模式。

相关内容