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