Замените строки и скомпилируйте файлы latex в цикле

#python #latex

Вопрос:

У меня есть код LaTeX, в котором есть несколько глав, которые я компилирую по отдельности. Иногда мне приходится компилировать много этих файлов, и я пытаюсь автоматизировать этот процесс, вместо того чтобы снова раскомментировать, компилировать и комментировать строки глав. Мне также нужно переименовать и поместить в другую папку главу, которую я скомпилировал.

Мне удалось написать код для одной главы:

 import os

texdoc = []

with open('aluno.tex') as fin:
   for line in fin:
        texdoc.append(line.replace('% \include{chapters/funcoes}', '\include{chapters/funcoes}'))

# write back the new document
with open('aluno.tex', 'w') as fout:
    for i in range(len(texdoc)):
        fout.write(texdoc[i])

os.system("latexmk -pdfxe -c aluno.tex")

with open('aluno.tex', errors="ignore") as fin:
    for line in fin:
        texdoc.append(line.replace('\include{chapters/funcoes}', '% \include{chapters/funcoes}'))


# write back the new document
with open('aluno.tex', 'w', errors="ignore") as fout:
    for i in range(len(texdoc)):
        fout.write(texdoc[i])

os.rename('aluno.pdf','Introdução às Funções.pdf')

shutil.copy('Introdução às Funções.pdf', 'subfolder', follow_symlinks=True)
os.remove('Introdução às Funções.pdf')
 

Сейчас я пытаюсь автоматизировать этот процесс с помощью списка глав, которые я хочу составить. Что-то вроде

 chapter = ["funcoes","taxa"]

name = ["Introdução às Funções", "Taxa de Variação"]

for j in chapter and k in name

   with open('aluno.tex') as fin:
   for line in fin:
        texdoc.append(line.replace('% \include{chapters/j}', '\include{chapters/j}'))
    
   os.rename('aluno.pdf','k.pdf')
 

Как я могу добиться этого с помощью python?

Комментарии:

1. Вы рассмотрели subfiles пакет, а затем просто повторяете имена файлов, ничего не меняя?

2. Спасибо за ответ, но я думаю, что это не решит мою проблему. Я могу работать и компилировать архивы просто отлично, но иногда я делаю небольшие изменения и мне приходится обновлять все главы в двух разных основных файлах файлов, которые разделяют эти же главы.