PythonTeX:在 pyblock 中使用 LaTeX 宏

PythonTeX:在 pyblock 中使用 LaTeX 宏

是否可以在 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 环境 (pyblockpycode) 不支持 LaTeX 宏。但是命令 (\pyb\pyc) 支持,因此可能存在以下选项:

\pyc{mytext = """\lipsum[4]"""}

\begin{pyblock}
print(mytext)
\end{pyblock}

应该可以创建一个环境来扩展宏,然后将结果传递给 PythonTeX。我从未真正研究过这一点,因为命令确实会扩展宏,而且扩展宏的环境可能涉及 Python 和 LaTeX 之间的大量额外转义。

相关内容