Re: makefile aus \begin{filecontents} ... \end{filecontents} erzeugen

"\"Jakob Mendel:\"" (via tex-d-l Mailing List) <[email protected]> Thu, 15 May 2025 12:11:19 +0200
Newsgroups gmane.comp.tex.german
Message-ID <[email protected]>
Liebe Fachleute,

vielen Dank an alle, die sich mit meinem Problem beschäftigt und zu 
seiner Lösung beigetragen haben.

Da ich unter Linux arbeite, scheint mir folgendes das Beste zu sein:

1) Im {filecontents} wird aus makefile makefile.mk, sonst bleibt alles 
unverändert:
\begin{filecontents}[overwrite, noheader]{makefile.mk}
latexfile.pdf : latexfile.tex
      pdflatex latexfile.tex
\end{filecontents}

2) makefile wird als Symlink angelegt:
bash $ ln -s makefile.mk makefile
Es reicht aus, den Befehl einmal auszuführen; ggf. wird das Target 
überschrieben, aber der Link darauf bleibt erhalten.

3) Das von TeX erzeugte Leerzeichen wird nach *jedem* Erzeugen von 
makefile.mk in einen TAB umgewandelt:
bash $ sed -i 's/^ /\t/' makefile.mk   # direkter Zugriff auf die Datei
ODER
bash $ sed -i --follow-symlinks 's/^ /\t/' makefile
-i ... "in place", also ohne Umwege in der Datei selbst
--follow-symlinks ... ermöglicht den Schreibzugriff auf das Link-Target 
makefile.mk.  Läßt man die Option weg, folgt "sed -i ... makefile" dem 
Link zwar beim Lesen, aber nicht beim Schreiben – der Link wird einfach 
mit der (korrekten) Datei makefile überschrieben.

Das funktioniert, zumindest unter Unix und Linux, unabhängig von der 
TeX-Variante.

Viele Grüße
Jakob


Am 12.05.25 um 18:23 schrieb Jakob Mendel (via tex-d-l Mailing List):
> Liebe Fachleute,
> 
> um alle Daten an einer Stelle (= in einer Datei) zu haben, möchte ich 
> die makefile von LaTeX bzw. pdflatex schreiben lassen und verwende dazu 
> die Umgebung filecontents:
> 
> -----
> \documentclass{article}
> 
> \begin{filecontents}[overwrite, noheader]{makefile}
> latexfile.pdf : latexfile.tex
>      pdflatex latexfile.tex
> \end{filecontents}
> 
> \begin{document}
> Text.
> \end{document}
> -----
> 
> Leider macht pdflatex nicht, was ich gern hätte:
> - die Datei heißt nicht makefile, sondern makefile.tex;
> - der Tabulator in der zweiten Zeile der makefile wird automatisch in 
> ein Leerzeichen umgewandelt.  Die Fehlermeldung ist: "LaTeX Warning: Tab 
> has been converted to Blank Space."
> 
> Weiß jemand, wie man diese beiden Probleme lösen kann?
> 
> Vielen Dank! und viele Grüße
> Jakob
> 
> 
>

-- 
FAQ: http://texfragen.de/
Durchsuchbares Archiv: https://www.listserv.dfn.de/sympa/arc/tex-d-l 
Unsubscribe/Verwaltung: https://www.listserv.dfn.de/sympa/info/tex-d-l