该pythontex
包允许我们通过 简单地在 LaTeX 中对 Python 进行求值\py{1+3}
。但是,在 中这是不可能的addplot
。一个解决方案是将整个包装tikzpicture
在替代环境中\pys
,用 进行替换!{1+3}
。4
但是,我希望结果依赖于\x
,这在该“解决方案”中是不可能的。
像这样,怎样才能用来自 LaTeX 的参数来评估一段 Python 代码呢?
\documentclass{beamer}
\usepackage{pythontex}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot {\py{1+\x}};
\end{axis}
\end{tikzpicture}
\end{document}
谢谢你!
答案1
以下工作:
\documentclass{beamer}
\usepackage{pythontex}
\usepackage{pgfplots}
\pgfmathdeclarefunction{func}{1}{\pys{\pgfmathparse{!{str(1+float('#1'[2:-1])*(-1 if '#1'[0] == '2' else 1))}}}}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot {func(x)};
\end{axis}
\end{tikzpicture}
\end{document}
显然,PGFplots 或 Tikz 可以使用形式为的奇怪数字2Y4.1665201e0
,其中前两个字母表示1Y
如果它为正数,2Y
如果它为负数。
也许我需要做点什么\pgfmathfloatvalueof
?