我如何将 sagetex 和 ifthenelse 的值进行比较?

我如何将 sagetex 和 ifthenelse 的值进行比较?

我使用 sage 在 LaTeX 文档中做了一些计算。我想包含结果并进行一些比较。但要使用命令执行此操作,我需要保存在 sage 文件中的值。我如何获取结果,或者是否有其他方法可以使用 ifthenelse 命令\ifthenelse比较值?sagetex

\documentclass{article}
 \usepackage{sagetex}
 \usepackage{ifthen}
 \begin{document}
\begin{sagesilent}
  var('x')
   f = x^2
 \end{sagesilent}
$\ifthenelse{\sage{f(2)}>0}{a}{b}$

 \end{document}

答案1

许多软件包与该sagetex软件包“配合得不好”。这个软件包似乎就是这样一个软件包,因为它阻止您以在代码中尝试的自然方式输入内容。一种方法是利用sagetexPython 来避免甚至必须使用该ifthen软件包。但是如果您想使用该软件包,那么您可以将sagetex命令作为字符串插入。这个解决方案似乎不是特别自然,但我不知道有更好的方法。

\documentclass{article}
\usepackage{sagetex}
\usepackage{ifthen}
\begin{document}
\begin{sagesilent}
var('x')
f = x^2

output = r""
if f(2)>0:
    output += "a"
else:
    output += "b"

output1 = r"\ifthenelse{%s>%s}{a}{b}"%(f(2),0)
\end{sagesilent}
One way to handle the problem is to process it with sagetex to get\\
\sagestr{output}\\
and another way is to insert the command as a string\\
\sagestr{output1}
\end{document}

在Sagemath Cloud中运行代码的结果是: 在此处输入图片描述

相关内容