%20%E6%8C%87%E4%BB%A4%E5%9C%A8%20Latex%20%E9%A1%AF%E7%A4%BA%E6%99%82%E5%B0%87%E5%85%B6%E4%BB%96%E9%80%A3%E6%8E%A5%E7%9A%84%E5%AD%97%E4%B8%B2%E8%BD%89%E6%8F%9B%E7%82%BA%E6%95%B8%E5%AD%B8%E6%A8%A1%E5%BC%8F.png)
在乳膠中使用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}
有沒有辦法阻止聖人將整個字串轉換為乳膠數學模式,並且仍然能夠將整個句子保存在一個變數中,並保持乳膠內容的正確數學顯示(例如,將其顯示為實際分數)字串「11/ 2”)。
要先明確的是,我的具體要求是:
- 將字串與正確渲染的數學連接起來(不一定通過 Latex() 命令,但我沒有看到任何其他有意義的選項?)並且所有單獨的部分都正確渲染;字串作為字串,數學作為實際數學
- 將以上內容儲存到單一聖人變數;與以某種順序呼叫一系列變數來實現結果相反。
答案1
根據 CTAN 上發布的文檔這裡,您會發現從第 6 頁開始有巨集\sage
、\sagestr
、\percent
和\sageplot
。宏\sage
適用於數值數據,宏\sagestr
適用於字串數據。我已經調整了您的程式碼,以便它使用\sagestr
.為了處理 (a = 11/2) 中的數字數據,我已使用原始字串將其添加到您的字串中,這樣斜杠就不會引起問題。這是透過在你的數字上使用numerator()
和denominator()
來確定要產生 LaTeX 分數的整數來完成的。
\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 中的輸出為:
編輯:由於您的評論指定您希望將分數插入字串中,因此我編輯了程式碼來執行此操作。