Ich habe vor kurzem eine Dokumentklasse erstellt und sie gerade in eine DTX-Datei verpackt. Ich habe eine Installationsdatei, die so aussieht:
%%
%% Licence info
%%
\input docstrip.tex
\keepsilent
\usedir{tex/latex/bil-CV}
\preamble
This is a generated file licenced under the MIT License:
The MIT License (MIT)…blah blah blah...
\endpreamble
\generate{\file{bil-CV.cls}{\from{bil-CV.dtx}{class}}}
\obeyspaces
\Msg{*********************************************************}
\Msg{*}
\Msg{* To finish the installation you have to move the}
\Msg{* following file into a directory searched by TeX:}
\Msg{*}
\Msg{* \space\space bil-CV.cls}
\Msg{*}
\Msg{* To produce the documentation run the file bil-CV.dtx}
\Msg{* through LaTeX.}
\Msg{*}
\Msg{* Happy TeXing!}
\Msg{*********************************************************}
\endbatchfile
Ich führe dies mit aus latex bil-CV.ins
und erhalte die folgende Ausgabe:
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (preloaded format=latex)
restricted \write18 enabled.
entering extended mode
(./bil-CV.ins
LaTeX2e <2014/05/01>
Babel <3.9k> and hyphenation patterns for 78 languages loaded.
(/usr/local/texlive/2014/texmf-dist/tex/latex/base/docstrip.tex
Utility: `docstrip' 2.5d <2005/07/29>
English documentation <2014/04/19>
**********************************************************
* This program converts documented macro-files into fast *
* loadable files by stripping off (nearly) all comments! *
**********************************************************
********************************************************
* No Configuration file found, using default settings. *
********************************************************
)
Generating file(s) ./bil-CV.cls
Processing file bil-CV.dtx (class) -> bil-CV.cls
Lines processed: 407
Comments removed: 262
Comments passed: 9
Codelines passed: 130
*********************************************************
*
* To finish the installation you have to move the
* following file into a directory searched by TeX:
*
* bil-CV.cls
*
* To produce the documentation run the file bil-CV.dtx
* through LaTeX.
*
* Happy TeXing!
*********************************************************
)
No pages of output.
Transcript written on bil-CV.log.
Warum wird nach der Angabe \usedir{tex/latex/bil-CV}
die Klassendatei im CWD generiert und nicht ~/Library/texmf/tex/latex/bil-CV
wie in und angegeben in /usr/local/texlive/2014/texmf.cnf
der INS-Datei?
Antwort1
Wie im Einzelnen in derDocStrip-Handbuch, das Design von DocStrip ist so, dass Sie Folgendes festlegen müssen \BaseDirectory
(da TeX nicht wissen kann, wohin Sie installieren möchten) und \UseTDS
(um die Zuordnung Ihrer \usedir
Zeilen zur TDS-Struktur zu aktivieren). Diese Zeilen sollen höchstwahrscheinlich in eine docstrip.cfg
Datei und nicht in die .ins
Datei(en) selbst eingefügt werden.
Wie in den Kommentaren erwähnt, erlauben moderne TeX-Systeme aus Sicherheitsgründen nicht das Schreiben in ein Verzeichnis über dem aktuellen. (Dies kann geändert werden, wird aber überhaupt nicht empfohlen.) TeX und damit auch DocStrip können keine Verzeichnisse erstellen, daher muss die Struktur auch bereits vorhanden sein. Daher sollte die Funktion „Nach TDS extrahieren“ von DocStrip am besten als historische Idee betrachtet und nicht für die heutige Verwendung verwendet werden. Anstatt DocStrip zum Auffüllen eines lokalen Baums zu verwenden, ist es sinnvoller, eine Zip-Datei im TDS-Stil zu erstellen und diese zu verwenden. Es stehen verschiedene Skripte zur Verfügung, die bei diesem Vorgang helfen.