带参数和 shell-escape/write18 的新命令

带参数和 shell-escape/write18 的新命令

此示例与 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

在此处输入图片描述

相关内容