我想在 LaTeX 文档中包含一些 Mathematica 代码。
大致如下
f[a_,b_]:=a^2+b^2+4b^3+25a*b*c ;
但是,当我构建 PDF 时,和_
总是^
会呈现。有没有办法让它像上面显示的那样显示?
答案1
正如 rdhs 提到的,您可以使用 listings 包。示例如下:
\documentclass{article}
\usepackage{listings}
\lstloadlanguages{[5.2]Mathematica}
\begin{document}
\begin{lstlisting}
f[a_,b_]:=a^2+b^2+4b^3+25a*b*c ;
\end{lstlisting}
For inline stuff you can use \lstinline$f[a_,b_]:=a^2+b^2+4b^3+25a*b*c ;$
instead of the lstlisting environment.
\end{document}
注意 lstinline 的动词分隔符。不过,列表手册指出了动词分隔符,但在我所有的工作中,我都使用通常的 { 和 },而且效果很好(可能有点奇怪,但我发现它更容易阅读,并且会尽可能长时间地继续使用它)
还有其他方法。例如,minted 包可以完成您想要的操作,但它要求您安装 Pygments,这是一个 Python 库。
答案2
使用\verb
,如\verb|f[a_,b_]:=a^2+b^2+4b^3+25a*b*c ;|
。对于较长的程序,使用listings
包。或者使用 Mathematica 的将选择内容保存为 PDF功能并将 PDF 作为图像包含在内。
答案3
要包含 Mathematica 代码的图像,您可以评估单元格
然后选择它(通过单击右方括号]
)。然后,按照菜单File
>Save Selection As...
并保存为 PDF 生成 PDF 输出:
这种方法的一个优点是它将包含嵌入的 Mathematica 字体,以及与实际 Mathematica 显示相同的间距和布局。如果您要摆脱输入/输出指示器,您可以使用以下方式剪辑图像graphicx
的trim=lx ly ux uy,clip
键值,或者提取图像前它被评估。
答案4
除了lstlisting
解决方案之外,这里还有另一种方法。
在 Mathematica 中,另存为菜单,选择 LaTex 文档格式,.tex并且代码将自动为您生成。
例如,以下代码
将转换为
\documentclass{article}
\usepackage{amsmath, amssymb, graphics, setspace}
\newcommand{\mathsym}[1]{{}}
\newcommand{\unicode}[1]{{}}
\newcounter{mathematicapage}
\begin{document}
\begin{doublespace}
\noindent\(\pmb{f[\text{x$\_$}]\text{:=}\text{Exp}[-a*(x-y){}^{\wedge}2];}\\
\pmb{f\text{''}[x]}\)
\end{doublespace}
\begin{doublespace}
\noindent\(-2 a e^{-a (x-y)^2}+4 a^2 e^{-a (x-y)^2} (x-y)^2\)
\end{doublespace}
\end{document}
生成的文档如下
如果你希望它居中,请\centerline
使用\noindent
\documentclass{article}
\usepackage{amsmath, amssymb, graphics, setspace}
\newcommand{\mathsym}[1]{{}}
\newcommand{\unicode}[1]{{}}
\newcounter{mathematicapage}
\begin{document}
\begin{doublespace}
\centerline{$\pmb{f[\text{x$\_$}]\text{:=}\text{Exp}[-a*(x-y){}^{\wedge}2];}$}
\centerline{$\pmb{f\text{''}[x]}$}
\end{doublespace}
\begin{doublespace}
\centerline{$-2 a e^{-a (x-y)^2}+4 a^2 e^{-a (x-y)^2} (x-y)^2$}
\end{doublespace}
\end{document}