LaTeX中编写Python代码宏包之Pythontex
考虑到以后要编写大量代码,决定使用文学编程写出具体的编程思路和使用文档,但是在测试之前写的cexam.dtx
文件时,发现已经不能正常编译,原因在于我长时间没有更新代码,而LaTeX3
已经更新了很多了,其中一些命令改变了定义,所以之前的文档需要更新,但是考虑到时间关系暂时不去更新cexam.dtx
,在试图解决问题的过程中发现有一个神奇的宏包pythontex
可以在LaTeX
文档中插入Python
代码还可以插入运行后的结果,由于没有深入研究,暂时将其README.md
放于此处,留待研究。
https://githbu.com/gpoore/pythontex
PythonTeX
Execute Python and other code in LaTeX documents, or typeset it with syntax highlighting |
PythonTeX executes code in LaTeX documents and allows the output to
be included in the original document. It supports Python as well as
Bash, JavaScript, Julia, Octave, Perl, R, Raku (Perl 6), Ruby, Rust, and
SageMath. PythonTeX also provides syntax highlighting for typeset code
in LaTeX documents via the
Pygments <https://pygments.org/>
_ syntax
highlighter.
See pythontex_quickstart.pdf
to get started, and
pythontex_gallery.pdf
for examples of what is possible with
PythonTeX. PythonTeX is included in TeX Live and MiKTeX and may be
installed via the package manager. See pythontex.pdf
for
detailed installation instructions if you want to install the current
development version, or just use the installation script for TeX Live
and MiKTeX.
The depythontex
utility creates a copy of a PythonTeX
document in which all code has been replaced by its output. This plain
LaTeX document is more suitable for journal submission, sharing, or
conversion to other document formats. See
pythontex_gallery.html
and the accompanying conversion
script for an example of a PythonTeX document that was converted to HTML
via depythontex
and
Pandoc <http://johnmacfarlane.net/pandoc/>
_.
Example
- LaTeX document
doc.tex
:
1 | \documentclass{article} |
- Compiling under Windows:
1 | pdflatex -interaction=nonstopmode doc.tex |
- Compiling under other operating systems:
1 | pdflatex -interaction=nonstopmode doc.tex |
- Output:
1 | Python says “Hello!” |
Notice that there is a three-step compile process. This is what makes
possible commands like \pymultiply
that use Python or other
languages internally. You may want to configure your LaTeX editor with a
shortcut for running pythontex
or
pythontex.py
, or configure your LaTeX build system to run
pythontex
or pythontex.py
.
Citing PythonTeX
If you use PythonTeX in your writing and research, please consider
citing it in any resulting publications. The best and most recent paper
is in
Computational Science & Discovery <http://stacks.iop.org/1749-4699/8/i=1/a=014010>
(doi:10.1088/1749-4699/8/1/014010). You may also cite the paper in the
2013 SciPy proceedings <http://conference.scipy.org/proceedings/scipy2013/poore.html>
.
License
LPPL_ for LaTeX code and BSD 3-Clause
_ for Python
code.
.. _LPPL: http://www.latex-project.org/lppl.txt
.. _BSD 3-Clause
:
http://www.opensource.org/licenses/BSD-3-Clause