例如,假设我们有一个 Python 文件 songbook-makeindex.py,它要求输入文件扩展名为 .xsd,输出文件扩展名为 .sbx,该文件需要在 latex 文件中运行。
\documentclass{article}
{here some required packages}
\begin{document}
songbook-makeindex.py english_auth.sxd > english_auth.sbx
songbook-makeindex.py english_title.sxd > english_title.sbx
\end{document}
答案1
它可以是一个文件吗?我的意思是 LaTeX 代码加上 Python 代码加上 Python 输出全部混合在一个带有.Rnw
扩展名的文件中。
如果是这样,您必须将其转换为.tex
使用R
,knitr
然后像往常一样编译 LaTeX 文件,或者更好的是,让 Rstudio 来处理整个过程。
例子:
% For .tex output use:
% Rscript -e "library(knitr); knit('filename.Rnw')"
\documentclass[a5paper]{article}
\setlength\parindent{0pt}
\begin{document}
This is not just verbatim text, but executable python code:
<<test1, echo=T, eval=FALSE, engine='python'>>=
x = 'hello, python world!'
print(x)
print(x.split(' '))
@
And this the phython ouput of the above code from \textsc{this} file:
<<test2, echo=F, comment="", engine='python'>>=
<<test1>>
@
All inside only a \LaTeX\ (R noweb) file.
\end{document}
答案2
我认为使用该包应该可以实现sagetex
;其文档可供查阅这里在 CTAN 上。该软件包允许您运行名为 Sage 的计算机代数系统。这意味着 Sage 需要安装在您的计算机上本地,或者更简单的是,您可以免费获得科卡尔帐户,以前称为 SagemathCloud。该sagetex
包是一种轻松获得 Python 的强大功能以及 Sage 的所有内置数学功能的方法。我将一个计算 Recaman 序列开头的 Python 文件上传到 Cocal。代码本身并不重要,重要的是运行程序的结果包含在名为的字符串中output
。该sagesilent
块允许 Sage 代码运行,但不会在 LaTeX 代码中显示任何内容。在这种情况下,我只是加载了 Python 程序并运行它。在 LaTeX 文档的正文中,\sagestr 命令告诉 Sage 抓取字符串输出并将其放入文档中。可以使用 \sage 命令进行计算。您可以在此站点搜索 sagetex 以了解有关其用法的更多信息。请注意,下图显示 Python 文档和 LaTeX 文档位于同一目录中。
\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sagesilent}
load("Recaman.py")
python Recaman.py
\end{sagesilent}
Result printed:\\
\sagestr{output}
\end{document}
我不清楚你的其他扩展,但很明显 Python 文件被导入、运行,并且输出被合并到 LaTeX 文档中。Sage 的文档是这里上面链接的 Cocal 网站称:
“CoCalc 是一个用于在线计算的复杂网络服务:数学计算:SageMath、SymPy、Maxima;统计分析:R 项目、Pandas、statsmodels、scikit-learn、Tensorflow、NLTK;各种其他计算:Octave、Julia 等。”所以有很多可能性。