![带参数和 shell-escape/write18 的新命令](https://linux22.com/image/358999/%E5%B8%A6%E5%8F%82%E6%95%B0%E5%92%8C%20shell-escape%2Fwrite18%20%E7%9A%84%E6%96%B0%E5%91%BD%E4%BB%A4.png)
此示例与 shell-escape 一起使用:
\documentclass{article}
\usepackage{python}
\begin{document}
\begin{python}
from sympy import *
from sympy.abc import *
print "$" + latex(expand( (x+1)*(x-1) )) + "$"
\end{python}
\end{document}
将符号扩展放在新命令中的一个非常原始(不起作用)的方法是
\documentclass{article}
\usepackage{python}
\newcommand{\pyexpand}[1]{
\begin{python}
from sympy import *
from sympy.abc import *
print "$" + latex(expand( #1 )) + "$"
\end{python}
}
\begin{document}
\pyexpand{(x+5)*(x-5)}
\end{document}
错误:!\@python 的使用与其定义不符。
如何实现这个功能?
答案1
抱歉,你不能。
环境python
被定义为将其内容写入辅助文件中,并且为了做到这一点,它会执行verbatim
一些技巧,以防止它被用作命令的参数。
但是,您可以使用 PythonTeX:
\documentclass{article}
\usepackage{pythontex}
\begin{pythontexcustomcode}{py}
from sympy import *
from sympy.abc import *
\end{pythontexcustomcode}
\newcommand{\pyexpand}[1]{%
$\py{latex(expand( #1 ))}$%
}
\begin{document}
\pyexpand{(x-1)*(x+1)}
\end{document}
这需要中间运行pythontex
。