[linux-l] Re: Suche Freiwillige für (LaTeX-)Projekt

Rocco Rutte pdmef at cs.tu-berlin.de
Mi Jun 1 15:46:27 CEST 2005


Hi,

* Oliver Bandel [05-06-01 13:31:14 +0200] wrote:

>Ich versteh noch nicht, was das machen soll das Programm.

>Beipiel?

Um der allgemeinen Verwirrung entgegenzuwirken: ich habe all meine 
Dokumente (Briefe, Uni, sonstiges) einem riesigen Ordner mit knapp 300 
LaTeX-Files, die zwar meist triviale Abhängigkeiten haben, die aber ich 
_nicht_ per Hand angeben will.

Beispiel 1:

Datei foo.tex sieht stark gekürzt so aus:

  \documentclass{article}
  \begin{document}
    \input{foo_a_input}
    \input{foo_b_input}
  \end{document}

Im Verzeichnis ./a gibt es dann:

  \documentclass{article}
  \begin{document}
    \input{foo_a_input}
  \end{document}

In ./a/foo_a_input.tex steht der eigentliche Inhalt. Selbiges für 
foo_b.tex und ./b/foo_b_input.tex etc.

Die Abhängigkeit sieht jetzt so aus:

  - foo.tex muss neu gebaut werden, wenn sich foo_(a|b)_input.tex ändern
  - foo_a.tex muss neu gebaut werden, wenn sich foo_a_input.tex ändert, 
    analog für foo_b

Und ich will jetzt, dass make das alles völlig allein löst, ohne dass 
ich einen Finger krumm machen muss. Ich habe ein globales 
Include-Makefile, wo drinsteht wie man aus TeX-Quellen ein PDF/PS/DVI 
macht und mehr nicht. Ich gebe im eigentlichen Makefile nur an, welche 
PDFs ich haben will und gut. Make soll sich dann um die Reihenfolge und 
die (teilweise Neu-)Übersetzung kümmern.

Der Output von meinem Programm sieht in etwa so aus:

Datei .depend

  | foo.pdf: \
  |     foo.tex \
  |     a/foo_a_input.tex \
  |     b/foo_b_input.tex

Datei a/.depend

  | foo_a.pdf: \
  |     foo_a.tex \
  |     foo_a_input.tex

Beispiel 2:

Es gibt foo.tex mit:

  \documentclass{article}
  \usepackage{pdfpages}
  \begin{document}
    \includepdf[...]{bar}
  \end{document}

Egal wie bar.tex jetzt aussieht: es muss zuerst bar.pdf gebaut werden, 
weil foo.tex davon abhängt. Ich bin zu faul mir die richtige Reihenfolge 
zu überlegen und das manuell zu machen.

In .depend steht dann:

  | foo.pdf: \
  |     foo.tex \
  |     bar.pdf
  |
  | bar.pdf: \
  |     bar.tex

Beispiel 3:

Ich habe in ~/texmf ein Package mit nützlichen Abkürzungen, um 
Quelltexte für die Abgabe von Hausaufgaben hübsch mit TeX zu setzen. 
Manchmal ändere ich etwas an dieser Vorlage. Wenn ich dann 'make' tippe, 
soll make alle Dokumente aktualisieren, die von dieser Formatvorlage 
abhängen. Wieder natürlich ohne manuelles zutun. Dazu kommen dann noch 
ein paar mehr Packages in ~/texmf, die sich ab und zu ändern.

In den .depend-Dateien, die man per include in die jeweils aktuellen 
Makefiles einbeziehen kann, steht dann sowas wie:

  | foo.pdf: \
  |     foo.tex \
  |     [...] \
  |     ~/texmf/tex/latex/tub/tub-info.sty
  |     ~/texmf/tex/latex/tub/opal.sty

wobei die Abhängigkeit auf opal.sty erst durch tub-info.sty erzeugt 
wird; mein Tool erkennt das dann rekursiv.

  bye, Rocco
-- 
:wq!



Mehr Informationen über die Mailingliste linux-l