sagetex 中存在 \sagestr 问题

sagetex 中存在 \sagestr 问题

我正在尝试使用 SageTeX 创建一些数学练习。这是我的代码:

\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sagesilent}
x=var("x")
A(x)=(x-2)^2-36
B(x)=1-(2*x-3)^2
formules=[]
for k in [A,B]:
    formules.append(k(x)==factor(k(x)))

enonce=""
for k in formules:
    enonce+=f"""

    ${latex(k)}$"""
\end{sagesilent}
\sagestr{enonce}
\end{document}

第一次使用 pdflatex 编译没问题。使用 sage 编译也没问题。但是第二次使用 pdflatex 编译时出现

! Paragraph ended before \@newl@bel was complete.

有人可以解释一下哪里出了问题吗?

答案1

log文件告诉我们 LaTeX 发现了哪些错误。您说:“第一次使用 pdflatex 编译没有问题。使用 sage 编译也没有问题。”这意味着您应该查看该sout文件以查看返回给 LaTeX 的信息。它看起来像这样:

在此处输入图片描述

我认为! Paragraph ended before \@newl@bel was complete.是指.sout文件中的空行(空行结束段落)。我使用raw strings,它允许有问题的字符串输入,例如\。这允许我使用 以新行结束计算行\newline

\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sagesilent}
x=var("x")
A(x)=(x-2)^2-36
B(x)=1-(2*x-3)^2
formules=[]
for k in [A,B]:
    formules.append(k(x)==factor(k(x)))

enonce= r""
for k in formules:
    enonce+=r"\noindent $%s$ \newline"%(latex(k))
\end{sagesilent}
\sagestr{enonce}
\end{document}

在Cocalc中运行的结果没有错误:

在此处输入图片描述

如果您希望在上图中的两行之间留一个空行,请添加另一个空行,\newlineenonce+=r"\noindent $%s$ \newline \newline"%(latex(k))。您也可以使用\\代替\newline,或者用 插入特定数量的空格,例如\\[20pt]

相关内容