使用 TAB 键作为缩进时,SageTeX 不起作用

使用 TAB 键作为缩进时,SageTeX 不起作用

我编写了两个几乎完全相同的文件,用于SageTeX确定正整数是奇数还是偶数。第一个例子使用制表符进行缩进。

\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sagesilent}
def oddeven(n):
    if n % 2:
        return "ODD"
    else:
        return "EVEN"
\end{sagesilent}
$3$ is $\sagestr{oddeven(3)}$.

$16$ is $\sagestr{oddeven(16)}$.
\end{document}

输出:

3 is ??.
16 is ??.

日志中的某处:

File "/sagetex_with_tabs.sagetex.sage.py", line 14
    if n % _sage_const_2 :
    ^
IndentationError: expected an indented block

如果我将每个制表符改为四个空格,代码就可以顺利编译并按预期工作。

\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sagesilent}
def oddeven(n):
    if n % 2:
        return "ODD"
    else:
        return "EVEN"
\end{sagesilent}
$3$ is $\sagestr{oddeven(3)}$.

$16$ is $\sagestr{oddeven(16)}$.
\end{document}

输出:

3 is ODD.
16 is EVEN.

Python我在和中使用制表符缩进时从未遇到过问题LaTeX。感觉很奇怪,SageTeX无法将制表符识别为有效的缩进方法。我该如何让它识别制表符?

Python即使使用了制表符,以下代码仍能正常工作:

def oddeven(n):
    if n % 2:
        return "ODD"
    else:
        return "EVEN"
print("3 is {}.".format(oddeven(3)))
print("16 is {}.".format(oddeven(16)))

ps 两个 tex 文件都按以下顺序编译:pdflatex -> sage -> pdflatex

相关内容