#!/home/moi/ProtoMemoires/venv/bin/python import glob #------------------------------------------- def addpath(x,ajout): # Pour transformer les chemins vers les images if "includegraphics" in x: return x.replace("{",ajout) else: return x # # Récupérer la liste des textes à introduire # with open("all_texts") as f: lf= [x for x in f.readlines() if x[0] != "#"] # faire la liste des *.bib (éventuels): forbiblatex={} for f in lf: forbiblatex[f]=",".join([x for x in glob.glob(f"../{f.split("/")[0]}/*.bib")]) allbibfiles=[forbiblatex[k] for k in forbiblatex.keys() if forbiblatex[k]!=""] print("Fichiers bib",allbibfiles,"\n") # # Récuperer le template # templat= "../tpl.tex" # with open(templat) as f: Ltmpl=f.readlines() # # ne garder du template que le début Lall=[] for l in Ltmpl: if "%@@debut" in l: break else: if "addbibresource" in l: # ajouter les chemins vers les fichires bib for x in allbibfiles: Lall.append(f"\\addbibresource{{{x}}}\n") Lall.append(l) # # parcourir les fichiers à assembler: # for l in lf: lok="../"+l.replace("\n","") print(lok) with open(lok) as g: LL=g.readlines() # insérer ce qui entre %@@debut et "%@@fin": start= False Z= [] for x in LL: if "@@debut" in x: start= True print("--> start") if "@@fin" in x: break if start: Z.append(x) print("--> nl:",len(Z)) # graphiques: modifier les chemins: ajout="{../"+l.split("/")[0]+"/" Lall+=[addpath(x,ajout) for x in Z if not "newcounter" in x] Lall.append("\\vfill\n\\eject\n") # # sauver le resultat.... with open("final.tex","w") as f: for x in Lall[:-1]: f.write(x) #----------------------------------------------------------- f.write("\\tableofcontents\n") f.write("\\end{document}\n")