LaTeX 中的 Python 代码无法运行

LaTeX 中的 Python 代码无法运行

Latex/Python 项目:

在 Latex 中根据文件夹中的 pdf 文件创建一本歌本并制作目录。

问题:

以下代码无法在 Latex 中运行。感谢 G.Poore,我添加了 \verb 命令来解决下划线等问题。但仍然不起作用。我认为问题在于:

  1. Latex 以某种方式消除了压痕
  2. 可能还存在一些其他编码错误,由于 1. 我无法测试。(抱歉......)

usepackage python 与 pythontex:

我使用 python 是因为

  1. 运行一个文件比运行 latex/python/latex 更容易
  2. 由于某些原因,pythontex 无法在我的 Mac 上运行,但是没问题,请参阅 1。

有人能给我一些提示吗?谢谢!

  % !TEX program = XeLaTeX+shell-escape
\documentclass{article}
\usepackage{hyperref}
\usepackage{python}
\usepackage[final]{pdfpages}
\usepackage[ngerman]{babel}

\begin{document}
\begin{python}
import os
from Tkinter import Tk
from tkFileDialog import askdirectory

Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing

# show an "Open" dialog box and return the path to the selected file
Liederpfad = askdirectory(title="Choose folder:") 

# get filenames from path
v5 = os.listdir(Liederpfad)

# remove "symlink" if there
for name in v5:
    if name.endswith("symlink"):
        os.rename(Liederpfad + "/" + name, Liederpfad + "/" + name[:-8])

# write latex code
for x in v5:
    if not x.startswith("."): #versteckte Systemdateien ausblenden
        print ('\\phantomsection')
        if x.endswith("symlink"):
            print ('\\addcontentsline{toc}{section}{\\verb|' + x[:-12] + '|}\n')
        else:
            print ('\\addcontentsline{toc}{section}{\\verb|' + x[:-4] + '|}\n')
        print ('\\includepdf[fitpaper=true,pages=-,pagecommand={\\thispagestyle{fancy}}]{\\verb|' + Liederpfad + '/' + x + '|}\n)
        print ('')
\end{python}

\tableofcontents
\end{document}

答案1

在您的简短示例中,您尝试打印文件名。但一般来说,文件名不是有效的 LaTeX,因为它们可能包含下划线等。如果您执行类似以下操作

print('\\verb|' + name + '|\n')

那么文件名将被包装在\verb命令中,因此特殊字符不会成为问题。

此外,您不需要%后续python环境。

根据你最终想要做的事情,你可能希望考虑pythontex软件包。它提供了很多附加功能,但还涉及三步编译过程(LaTeX,,pythontex.py然后再次使用 LaTeX)

相关内容