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

"Markus Kohm" (via tex-d-l Mailing List) <[email protected]> Tue, 13 May 2025 09:03:24 +0200
Newsgroups gmane.comp.tex.german
Organization KOMA
Message-ID <[email protected]>
Am Montag, 12. Mai 2025, 18:23 schrieb Jakob Mendel:
> - die Datei heißt nicht makefile, sondern makefile.tex;

Obwohl das AFAIR nicht von TeX selbst so festgelegt ist, hängen die Engines 
"traditionell" beim Schreiben von Dateien ohne Endung ".tex" an. Das macht 
also nicht LaTeX. Lässt man folgendes mit tex, pdftex, luatex laufen:

\newwrite\testwrite
\immediate\openout\testwrite testfile
\immediate\write\testwrite{\relax}
\immediate\closeout\testwrite
\bye

erhält man immer die Datei testfile.tex.

Übrigens testet kpathsea (die Library, mit der heutige TeX Engines nach 
Dateien zum Lesen suchen) bei Dateien ohne Endung auch immer auf Dateien mit 
Endung. Wenn man also obiges hat laufen lassen und dann

kpsewhich ./testfile

im Terminal aufruft, bekommt man ./testfile.tex angezeigt, wenn nicht 
zusätzlich eine Datei ./testfile ohne Endung existiert.

Wie gesagt: Das ist historisch bedingt. Da ich ebenfalls schon seit sehr 
langer Zeit hoffe, dass sich das einmal ändert, gebe ich sowohl beim Schreiben 
von *.tex-Dateien als auch beim Lesen mit \input die Endung immer mit an.

Bei \include sieht es übrigens anders aus. Dort hängt LaTeX selbst immer die 
Endung ".tex" an.

> - der Tabulator in der zweiten Zeile der makefile wird automatisch in
> ein Leerzeichen umgewandelt.

Das mit dem Schreiben von Tabulatoren ist ähnlich. AFAIK führen die Engines 
selbst die Umwandlung von Tab zu Space durch.

Die beste Chance wäre also in der Tat, das ganze per Lua zu machen. Eine 
generell zu überlegende Alternative wäre, von make zu l3build oder latexmk zu 
wechseln. Dort braucht man keine Tabs. Allerdings kann der Wechsel auch 
Nachteile haben. Seit ich für den Bau von KOMA-Script von make auf l3build 
umgestiegen bin vermisse ich sehr Automatismen zur Erkennung welche Dateien 
sich verändert haben und was deshalb neu erzeugt werden muss.

Markus
-- 
KOMA-Script: https://sf.net/p/koma-script
KOMA-Script-Wiki: https://sf.net/p/koma-script/wiki-en/Home
KOMA-Script and Friends: https://gitlab.com/latex9343737
KOMA on github: https://github.com/komascript
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEE1/uTv8+wAU8hvYZOE7WYy8/T98EFAmgi7rwACgkQE7WYy8/T
98FeMQ//ezSSbwUTqJ7zIJPS5mFTWjcSgA1J88XYQQP+34SzoHl90cuJlKijnYpb
ie872Qz1pe+F5k8eg4w7FaObJXbb/1CbhViIe77s8PM1qClx/hep2GNqUq7zDZnF
QFE9UYnci0oMH2T1AeYeKSAfGbVVfYhaTX3gApA2QHu7UdvyVOIaTluSei1d3Qs/
EWv3SGQL3YWFT0SHx6GsLGHNKfBkmo1JLyL76I6CJVfIRRnA0z09G1seeJBCQOdu
i2cLQPX5x+/5qXO//QAAIGpM+INqNsFU0u/bL0y65ifqzJAIzH47Kuyemaj+Tkwt
sdPSHxlRCaQhiKD7rOvD/ogfw8m/B47CqUKWpAMtDvTvhyQhx2K4wJfLQy0nuBC9
CHnA/FA19hfpILs+LtdW4h7w5iDiuurgcqSfqv3+pq/yGGDGyTPGe+LV3YMUGOaL
9DZvWCoFCMsEFhcnhK9+BiJqo6T6svENV70tr2VirQWs8I+qvpZ/Bkvvqb3ztjr2
gWjWtbkr8tLm4hCn+hoZDfjuhcoj/NrTiUDBc9T1I30ZjciDQE8tXQBMHGRUUJE1
rklelutum5qY+qkyzAwzXmOyjp/0wLqbyzn+9SwkVDU6ESZiJGZNcQr8ILefoR51
0ZcijEsUaL0QCewE/8Ud2ivJ4DW3juB9GRbILRUhrEmFyfwMe+s=
=cdiK
-----END PGP SIGNATURE-----