Ich möchte ein LaTeX-Paket mit den folgenden Unterverzeichnissen erstellen:
tex/latex/common
(eine gemeinsame.tex
Datei, die vonbeamer
jedem Brief genutzt wird)tex/latex/resources
(viele PDF- und EPS-Dateien mit grafischen Ressourcen)tex/latex/mybeamer
(ein benutzerdefiniertes Beamer-Design mit 5.sty
Dateien)tex/latex/myletter
(eine.cls
Datei für eine Briefvorlage)
Ich möchte diese Dateien in einem einzigen LaTeX-Paket packen, das Benutzer einfach installieren können. Ich habe über die .ins
und .dtx
Dateien gelesen und weiß, wie die .sty- und .cls
-Dateien gepackt werden, aber was ist mit den zusätzlichen Grafiken – dem Ressourcenordner, der mehrere PDF- und .eps
-Dateien enthält?
Antwort1
TDS-Struktur
Angenommen, Ihr LaTeX-Paket heißt foobar
. Dann gemäß TDS (Eine Verzeichnisstruktur für TeX-Dateien) würden die Dateien in die folgenden Verzeichnisse verschoben:
TDS:tex/latex/foobar/
(für TeX-Dateien: .tex, .sty, Bilder)TDS:doc/latex/foobar/
(für Dokumentationsdateien)TDS:source/latex/foobar/
(für Quelldateien .dtx, .ins)
Weitere Unterverzeichnisse sind dir überlassen. Ich würde sie vermeiden, wenn nur wenige Dateien vorhanden sind. Wenn es viele Dateien sind, können weitere Verzeichnisebenen helfen, die Dateien zu ordnen.
Beispiel:
TDS:doc/latex/foobar/foobar.pdf
TDS:source/latex/foobar/foobar.dtx
TDS:source/latex/foobar/foobar.ins
- Andere Quelldateien, die nicht in der
.dtx
Datei enthalten sind, können angegeben werden in:
TDS:source/latex/foobar/
oder
TDS:source/latex/foobar/resources/
TDS:tex/latex/foobar/foobar.cls
TDS:tex/latex/foobar/foobar-common.sty
(Die TeX-Datei für die Briefklassen- und Beamer-Vorlagen)TDS:tex/latex/foobar/<foobar beamer file 1>
,
TDS:tex/latex/foobar/<foobar beamer file 2>
,
...,
TDS:tex/latex/foobar/<foobar beamer file 5>
TDS:tex/latex/foobar/resources/<.eps/.pdf image files>
Wenn du zusätzlich eine README
Datei mitlieferst, dann würde ich exakt diesen Namen verwenden (AFAIK CTAN Konvention) und diese , je nach Inhalt der Datei, in den doc
oder Unterbaum setzen.source
Verteilungsform
Für die Distribution würde ich diese Dateien inklusive der Verzeichnisstruktur in eine .zip
Datei packen foobar.tds.zip
(ohne TDS:
/ temxf
root). Dann ist die Installation für den Anwender recht einfach, der die Installation ganz einfach durch Entpacken durchführen kann. Installationsbeispiel für Standard-Home-Tree in Linux/TeX Live:
$ unzip foobar.tds.zip -d ~/texmf/
Falls das Paket in einem systemweiten lokalen texmf
Baum installiert ist, muss die Dateinamendatenbank (unter Root) aktualisiert werden:
$ texhash
oder
$ mktexlsr
CTAN
Ein Vorschlag für das CTAN-Formular, falls Sie es dort angeben möchten:
CTAN:macros/latex/foobar/foobar.dtx
CTAN:macros/latex/foobar/foobar.ins
CTAN:macros/latex/foobar/foobar.pdf
(Dokumentation)- (
CTAN:macros/latex/foobar/README
) CTAN:macros/latex/foobar/resources.zip
(oder entpackt im Verzeichnisresources/
)CTAN:install/macros/latex/foobar.tds.zip
Antwort2
In der TeX-Verzeichnisstruktur (TDS) sind die Verzeichnisnamen tex/latex
eine global gemeinsam genutzte Ressource. Sie sollten also nicht zu viele davon verwenden und Namen wählen, die für Ihr Paket eindeutig sind. tex/latex/resources
Und tex/latex/common
wären also keine guten Namen (und ich vermute, sie würden nicht akzeptiert werden, wenn Sie versuchen würden, das Paket in eine Distribution wie Texlive aufzunehmen).
beamer
und letter
beide teilen sich den gleichen Eingabepfad für Tex-Dateien, sodass es nicht nötig ist, Ihre Beamer- und Letter-Dateien zu trennen.
Antwort3
Hier ist dasTeX-VerzeichnisstrukturWeg. Wählen Sie einen Namen für Ihr Paket.
- Legen Sie TeX-Dateien, die in jedem Format verwendet werden könnten, in
tex/generic/bundlename
- Legen Sie LaTeX-Dateien wie Klassen und Pakete in
tex/latex/bundlename
- Fügen Sie Grafikressourcen ein in
tex/generic/images/bundlename
- Legen Sie die Dokumentation bei
doc/latex/bundlename
- Fügen Sie Docstrip-Quellen ein
source/latex/bundlename
Sie werden viele davon im Einsatz sehen, wenn Sie beispielsweise einen Blick in die pgf
Distribution werfen. Der Installationsvorgang besteht dann nur darin, cp -R
die Verzeichnisse in einem texmf
Baum zusammenzufassen.