genauteur.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import yaml,sys,os
  2. #
  3. # Fabriquer la table des auteurs.
  4. #
  5. excludedirs={"ChapitresEtParties","Academie"}
  6. #---------------------------------------------
  7. sys.path.append(f"{os.getcwd()}/..")
  8. from memmod import *
  9. #
  10. path2add= "../Sources/Courante"
  11. with open("all_texts") as f:
  12. L= f.readlines()
  13. D={}
  14. for x in L:
  15. d0=x.split('/')[0]
  16. if not d0 in excludedirs and d0[0]!="#":
  17. d= f"{path2add}/{d0}/data.yml"
  18. with open(d) as f:
  19. lt=yaml.safe_load(f)
  20. auteur= lt["auteur"]
  21. titre= lt["titre"]
  22. D.setdefault(auteur,[]).append(titre)
  23. # On a un dictionnaire D: auteur -> liste des textes.
  24. # fabriquer le LaTeX.
  25. with open("refauteur.tex","w") as f:
  26. s="\\begin{center} \\Large{\\bfseries INDEX DES AUTEURS}\\end{center}\n"
  27. f.write(s)
  28. f.write("\n")
  29. # trier les clés pas noms (pas forcément exact)
  30. DK=sorted([x for x in D.keys()], key=lambda x: x.split()[-1])
  31. for k in DK:
  32. print(k,len(D[k]))
  33. if len(D[k])==1:
  34. x=D[k][0]
  35. cle= dolabel(k,x)
  36. print(k,"/",x,f"\n\\label{{{cle}}}","\n")
  37. s= f"{k}, \\textit{{{x}}} \\dotfill \\pageref{{{cle}}}\n\n"
  38. f.write(s)
  39. else:
  40. f.write(f"{k}:\n\n")
  41. for x in D[k]:
  42. space="\\hspace*{0.75cm}"
  43. cle= dolabel(k,x)
  44. print("Clé:",k,"/",x,cle,"\n")
  45. s= f"{space}\\textit{{{x}}} \\dotfill \\pageref{{{cle}}}\n\n"
  46. f.write(s)
  47. f.write("\n")