latex(VAR) 命令在 latex 显示其他连接字符串时将其转换为 mathemode

latex(VAR) 命令在 latex 显示其他连接字符串时将其转换为 mathemode

在 latex 中使用 sagetex;看来使用 latex() 命令会将任何连接到该术语的字符串转换为数学模式,而不是字符串。请参阅下面的 MWE:

\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sagesilent}
StartStr = 'Beginning string'
EndStr = 'trailing string.'
WorkingStr = StartStr + " and "+ EndStr
BrokeStr = StartStr + latex(11/2) + EndStr
\end{sagesilent}

Notice that "$\sage{StartStr}$", "$\sage{EndStr}$", and "$\sage{WorkingStr}$" are all printed as text.

But "$\sage{BrokeStr}$" converts the entire string into math-mode and breaks everything.
\end{document}

有什么方法可以阻止 Sage 将整个字符串转换为乳胶数学模式,同时仍然能够将整个句子保存在一个变量中,同时保持乳胶内容的正确数学显示(例如,将其显示为实际分数而不是字符串“11/2”)。

明确地说,我的具体要求是:

  1. 将字符串与正确呈现的数学运算连接起来(不一定通过 latex() 命令,但我看不到任何其他有意义的选项?)并正确呈现所有单独的部分;字符串作为字符串,数学作为实际数学
  2. 将以上内容保存到单个 sage 变量;而不是按照某种顺序调用一系列变量来实现结果。

答案1

根据 CTAN 上发布的文档这里,你会发现从第 6 页开始有宏、、\sage和。宏用于数值数据,用于字符串数据。我已调整你的代码,以便它使用。为了处理 (a = 11/2) 中的数值数据,我已使用原始字符串将其添加到你的字符串中,这样斜线就不会造成问题。这是通过在你的数字上使用和来确定要将哪些整数用于制作 LaTeX 分数来完成的。\sagestr\percent\sageplot\sage\sagestr\sagestrnumerator()denominator()

\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sagesilent}
a = 11/2
StartStr = 'Beginning string'
EndStr = 'trailing string.'
WorkingStr = StartStr + " and "+ EndStr
BrokeStr = (StartStr + r" $\frac{%s}{%s}$ " + EndStr)%(a.numerator(),a.denominator())
\end{sagesilent}
Notice that \sagestr{StartStr}, \sagestr{EndStr}, and \sagestr{WorkingStr} are all printed as text.

Now \sagestr{BrokeStr} prints the entire string.
\end{document}

Cocalc 中的输出是:

在此处输入图片描述

编辑:由于您的评论指定您希望将分数插入字符串,因此我已编辑了我的代码来执行此操作。

相关内容