是否可以在 pythonTeX pyblock 环境中使用 LaTeX 宏并在 pythonTeX 的 python 端使用/存储它们的输出?
以下MWE应该可以完全说明我的问题:
\documentclass[11pt]{article}
\usepackage{fontspec}
\usepackage{lipsum}
\usepackage{pythontex}
\begin{document}
\begin{pyblock}
mytext = \lipsum[4]
print(mytext)
\end{pyblock}
\printpythontex
\end{document}
对于文档编译,我使用 LuaLatex,因此使用 lua 作为“中间人”来实现这一点对我来说是完全可以接受的。
注意:显然 python 将其解释\
为行继续符,天真地尝试逃避它\\
导致没有成功...
答案1
PythonTeX 环境 (pyblock
和pycode
) 不支持 LaTeX 宏。但是命令 (\pyb
和\pyc
) 支持,因此可能存在以下选项:
\pyc{mytext = """\lipsum[4]"""}
\begin{pyblock}
print(mytext)
\end{pyblock}
应该可以创建一个环境来扩展宏,然后将结果传递给 PythonTeX。我从未真正研究过这一点,因为命令确实会扩展宏,而且扩展宏的环境可能涉及 Python 和 LaTeX 之间的大量额外转义。