Eigenes Paket erstellen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Eigenes Paket erstellen

von sLy » Mi 27. Jan 2010, 12:26

KOMA hat geschrieben:
sLy hat geschrieben:Leider weis ich nicht, wie ich einen neuen TEXMF-Baum anlege,
MiKTeX hat eine Anleitung und eine FAQ. Da steht das drin. Nein, ich weiß das nicht, weil ich MiKTeX verwende, sondern weil ich einfach mal einen Blick auf die MiKTeX-Homepage geworfen habe.
sLy hat geschrieben:von daher habe ich es (schon vorher) so gemacht, wie du es danach beschrieben hast: die .sty ins \tex\latex\EigenesPaket verzeichnis
Das hast Du mich missverstanden. Das Unterverzeichnis ist zwar grundsätzlich richtig, allerdings nur, wenn es nicht im primären MiKTeX-TEXMF-Baum liegt, sondern in einem eigenen. Der primäre Baum sollte dem MiKTeX-Paketmanager vorbehalten bleiben. Zum einen fackelt der beim Überschreiben von Dateien in seinem Baum nicht lange und zum anderen wirst Du nach einem Upgrade auf eine neue MiKTeX-Version so ggf. Probleme haben, deine Pakete wieder zu finden. Bei Verwendung eines eigenen Baums ist das kein Problem. Den muss man nach dem Upgrade nur in MiKTeX Options wieder eintragen. Welche manuell installierte Pakete in welchen Unterverzeichnissen dort liegen, muss man nicht wissen. Trotzdem hat man auch darüber dann einen guten Überblick.
Aufgrund der Tatsache, dass ich noch anfänger bin und ein recht komplexes Thema bearbeite, bitte es zu entschuldigen, dass ich nicht wusste, dass ich einen neuen TEXMF-Baum anlegen sollte.
Die FAQ habe ich deswegen nicht konsultiert, weil ich desöfteren bereits stundenlang in so manchen FAQs gelesenhab, ohne eine Lösung für mein Problem zu sehen. Deswegen dachte ich, bevor ich meine zeit dafür opfere, wende ich mich an dieses Forum.
Ich war einfach froh, dass es auch auf meine weise funktioniert hat.

mfg
sLy

von KOMA » Mi 27. Jan 2010, 08:48

sLy hat geschrieben:Leider weis ich nicht, wie ich einen neuen TEXMF-Baum anlege,
MiKTeX hat eine Anleitung und eine FAQ. Da steht das drin. Nein, ich weiß das nicht, weil ich MiKTeX verwende, sondern weil ich einfach mal einen Blick auf die MiKTeX-Homepage geworfen habe.
sLy hat geschrieben:von daher habe ich es (schon vorher) so gemacht, wie du es danach beschrieben hast: die .sty ins \tex\latex\EigenesPaket verzeichnis
Das hast Du mich missverstanden. Das Unterverzeichnis ist zwar grundsätzlich richtig, allerdings nur, wenn es nicht im primären MiKTeX-TEXMF-Baum liegt, sondern in einem eigenen. Der primäre Baum sollte dem MiKTeX-Paketmanager vorbehalten bleiben. Zum einen fackelt der beim Überschreiben von Dateien in seinem Baum nicht lange und zum anderen wirst Du nach einem Upgrade auf eine neue MiKTeX-Version so ggf. Probleme haben, deine Pakete wieder zu finden. Bei Verwendung eines eigenen Baums ist das kein Problem. Den muss man nach dem Upgrade nur in MiKTeX Options wieder eintragen. Welche manuell installierte Pakete in welchen Unterverzeichnissen dort liegen, muss man nicht wissen. Trotzdem hat man auch darüber dann einen guten Überblick.

von sLy » Di 26. Jan 2010, 20:24

KOMA hat geschrieben:
sLy hat geschrieben:hab es selbst geschafft: einfach ein anderes .sty file (Pfad bei mir: C:\Programme\TeX\MiKTeX 2.8\tex\latex) als vorbild genommen, umeditiert und dann noch meinen eigentlichen code als .tex unter C:\Programme\TeX\MiKTeX 2.8\tex\generic\Paketname gespeichert.
Zum einen sollte man eigene Erweiterungen nicht im primären TEXMF-Baum ablegen. Stattdessen sollte man einen eigenen TEXMF-Baum anlegen und dessen Wurzelverzeichnis als weitere Root im MikTeX-Setup eintragen.

Desweiteren ist nach dem manuellen Einfügen von Dateien in einen TEXMF-Baum ggf. die Filename Database neu zu erzeugen. Auch das geht mit dem MikTeX-Setup-Werkzeug.

Außerdem ist eine Datei mit Endung ".tex" im "tex/generic"-Zweig des TEXMF-Baums kein LaTeX-Paket. LaTeX-Pakete haben die Endung ".sty", sollten im "tex/latex"-Zweig abgelegt werden und werden per \usepackage geladen. Dateien im "tex/generic"-Zweig sollten mit unterschiedlichen Formaten funktionieren und dürfen auch mit \input - oder unter LaTeX alternativ mit \InputIfFileExists - geladen werden. Konkret definiert die tds-Anleitung:
generic, for input files that are useful across a wide range of formats (examples: null.tex, path.sty). Generally, this means any format that uses the category codes of Plain TEX and does not rely on any particular format. This is in contrast to those files which are useful only with Plain TEX (which go under texmf/tex/plain), e.g., testfont.tex and plain.tex itself.
Demnach sollte eine Datei im Bereich "tex/generic" also keine Anweisungen aus dem LaTeX-Kernel voraussetzen und auch keine LaTeX-Pakete laden, die das ihrerseits tun, bevor das Paket diese Anweisungen nicht ggf. in äquivalenter Weise bereitstellt. Für erste Schritte ist es daher sicher leichter ein echtes LaTeX-Paket zu schreiben und das unterhalb von "tex/latex", als in "tex/latex/eigenesVerzeichnis", abzulegen.
danke für die erklärung.
Leider weis ich nicht, wie ich einen neuen TEXMF-Baum anlege, von daher habe ich es (schon vorher) so gemacht, wie du es danach beschrieben hast: die .sty ins \tex\latex\EigenesPaket verzeichnis, die .tex in \generic\EigenesPaket und dann die FNDB erneuert.

mfg
sLy

von KOMA » Mo 25. Jan 2010, 10:26

sLy hat geschrieben:hab es selbst geschafft: einfach ein anderes .sty file (Pfad bei mir: C:\Programme\TeX\MiKTeX 2.8\tex\latex) als vorbild genommen, umeditiert und dann noch meinen eigentlichen code als .tex unter C:\Programme\TeX\MiKTeX 2.8\tex\generic\Paketname gespeichert.
Zum einen sollte man eigene Erweiterungen nicht im primären TEXMF-Baum ablegen. Stattdessen sollte man einen eigenen TEXMF-Baum anlegen und dessen Wurzelverzeichnis als weitere Root im MikTeX-Setup eintragen.

Desweiteren ist nach dem manuellen Einfügen von Dateien in einen TEXMF-Baum ggf. die Filename Database neu zu erzeugen. Auch das geht mit dem MikTeX-Setup-Werkzeug.

Außerdem ist eine Datei mit Endung ".tex" im "tex/generic"-Zweig des TEXMF-Baums kein LaTeX-Paket. LaTeX-Pakete haben die Endung ".sty", sollten im "tex/latex"-Zweig abgelegt werden und werden per \usepackage geladen. Dateien im "tex/generic"-Zweig sollten mit unterschiedlichen Formaten funktionieren und dürfen auch mit \input - oder unter LaTeX alternativ mit \InputIfFileExists - geladen werden. Konkret definiert die tds-Anleitung:
generic, for input files that are useful across a wide range of formats (examples: null.tex, path.sty). Generally, this means any format that uses the category codes of Plain TEX and does not rely on any particular format. This is in contrast to those files which are useful only with Plain TEX (which go under texmf/tex/plain), e.g., testfont.tex and plain.tex itself.
Demnach sollte eine Datei im Bereich "tex/generic" also keine Anweisungen aus dem LaTeX-Kernel voraussetzen und auch keine LaTeX-Pakete laden, die das ihrerseits tun, bevor das Paket diese Anweisungen nicht ggf. in äquivalenter Weise bereitstellt. Für erste Schritte ist es daher sicher leichter ein echtes LaTeX-Paket zu schreiben und das unterhalb von "tex/latex", als in "tex/latex/eigenesVerzeichnis", abzulegen.

von KOMA » Mo 25. Jan 2010, 10:09

Ergänzend sei noch darauf hingewiesen, dass in Anhang B des KOMA-Script-Buches bei der Entwicklung eines Wrapper-Pakets ganz bewusst auch ein paar wichtige Anweisungen für das Schreiben von Paketen erklärt werden. Darüber hinaus werden in Anhang B und E ein paar wichtige Vorgehensweisen wie das Aufstellen einer Liste von Anforderungen, also einer Art minimalen Spezifikation, vorgeführt.

Ich habe das damals gemacht, weil ich der Meinung war, dass es vom fortgeschrittenen Anwender zum Autor von kleinen Paketen oder Wrapper-Paketen nicht weit ist, aber genau diese Punkte oftmals eine Hürde darstellen. Auch hat eine Kontrolle von ein paar Paketen gezeigt, dass wichtige Hinweise aus dem clsguide, beispielsweise dass hinter \ProcessOptions immer ein \relax gehört, oftmals nicht beachtet werden.

Was in Anhang B fehlt, ist der Hinweis, dass sich alternativ zum dort beschriebenen Vorgehen auch die Verwendung von \RequirePackageWithOptions angeboten hätte.

von phi » Sa 23. Jan 2010, 18:22

sLy hat geschrieben: allerdings ist das nicht ganz das was ich suche: mir wäre eine anleitung lieber, wie ich ein .sty file schreiben muss.
Genau dafür ist das erste Dokument da.

von sLy » Sa 23. Jan 2010, 16:19

danke zunächst mal für den tipp.

allerdings ist das nicht ganz das was ich suche: mir wäre eine anleitung lieber, wie ich ein .sty file schreiben muss.
Deine Tutorials gehen davon aus, dass ich auch noch eine userdocumentation schreib will usw. (deswegen zuers ein .ins file und dann noch ein .dtx file erstellen)

Mein Ziel ist es jedoch, nur eine sty datei zu erstellen, diese manuell über miktex einzubinden, sodass meine makros und die dafür erforderlichen anderen pakete geladen werden wenn ich den befehl \usepackage{meinpaket} gebe.
Kann mir jemand sagen wie das geht?

mfg
sLy

EDIT:
hab es selbst geschafft: einfach ein anderes .sty file (Pfad bei mir: C:\Programme\TeX\MiKTeX 2.8\tex\latex) als vorbild genommen, umeditiert und dann noch meinen eigentlichen code als .tex unter C:\Programme\TeX\MiKTeX 2.8\tex\generic\Paketname gespeichert.

von phi » Fr 22. Jan 2010, 22:21

Siehe clsguide und dtxtut.

Eigenes Paket erstellen

von sLy » Fr 22. Jan 2010, 18:11

Hallo,

ich habe selbst einige makros geschrieben und würde daraus gerne ein Paket, das zu miktex hinzugefügt werden kann, erstellen.
Leider habe ich nichts nützliches im Internet dazu gefunden.

Meine Makros bauen auf einigen anderen paketen (pst-circ,multido,etoolbox) auf.

Kann mir jemand sagen wie das geht?

mfg
sLy

Nach oben