![使用 TAB 键作为缩进时,SageTeX 不起作用](https://linux22.com/image/466944/%E4%BD%BF%E7%94%A8%20TAB%20%E9%94%AE%E4%BD%9C%E4%B8%BA%E7%BC%A9%E8%BF%9B%E6%97%B6%EF%BC%8CSageTeX%20%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我编写了两个几乎完全相同的文件,用于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