5
2

Manchmal werden im Internet Pakete oder Klassen angeboten, die nur aus der fertigen sty- bzw. cls-Datei und ggf. einem Beispiel oder einer Anleitung bestehen. Gibt es eine Möglichkeit, diese ohne umständliche Installation auszuprobieren? Und wenn ich mich dann entschließe, dieses Paket oder die Klasse später doch häufiger verwenden zu wollen, wie kann ich sie dann dauerhaft installieren?

gefragt 02 Mai '14, 02:05

Bes's gravatar image

Bes
1411516
Akzeptiert: 100%

bearbeitet 03 Mai '14, 20:08

esdd's gravatar image

esdd
14.2k53251


Um eine derartige Klasse oder ein derartiges Paket einfach nur einmal auszuprobieren genügt es bei den gängigen TeX-Distributionen, wenn man die sty- bzw. die cls-Datei in das Dokumentverzeichnis kopiert, also in das Verzeichnis auf dem Computer, in dem sich auch die tex-Datei des Testdokuments befindet. Normalerweise haben alle Dateien im Dokumentverzeichnis Vorrang vor Dateien, die in einem TEXMF-Baum installiert sind.

Will man die Klasse bzw. das Paket später regelmäßiger verwenden, so sollte man es entsprechend der Anleitung der TeX-Distribution installieren.

Für TeX-Live

Bei TeX-Live ermittelt man dazu in einem Terminalfenster zunächst die Wurzel des lokalen TEXMF-Baums:

Open in writeLaTeX
kpsewhich -var-value=TEXMFLOCAL

oder des persönlichen TEXMF-Baums:

Open in writeLaTeX
kpsewhich -var-value=TEXMFHOME

Der Unterschied zwischen de beiden Bäumen liegt darin, dass Dateien im persönlichen TEXMF-Baum normalerweise nur dem einen Anwender zur Verfügung stehen, während Dateien im lokalen TEXMF-Baum allen Benutzern des Rechners zur Verfügung stehen. Dafür kann im lokalen TEXMF-Baum ggf. nicht jeder Benutzer Dateien installieren. Daher gehe ich im folgenden aus Gründen der Vereinfachung davon aus, dass der persönlichen TEXMF-Baum verwendet wird.

Nehmen wir an, bei obiger Anweisung wird als Ergebnis ~/texmf zurückgegeben. Um das Paket bzw. die Klasse foo zu installieren legt man nun in diesem Verzeichnis die Unterverzeichnisse tex/latex/foo an. Man hat dann also ~/texmf/tex/latex/foo. In dieses Verzeichnis kopiert man die Klassen- bzw. Paketdatei, hat dann also die Datei ~/texmf/tex/latex/foo/foo.sty bzw. ~/texmf/tex/latex/foo/foo.cls. Da der persönliche TEXMF-Baum (und auch der lokale TEXMF-Baum) in der Voreinstellung von TeX-Live immer komplett durchsucht wird, benötigt man normalerweise kein texhash, damit die Datei gefunden wird. Dies sollte man jedoch kontrollieren:

Open in writeLaTeX
kpsewhich foo.sty

bzw.

Open in writeLaTeX
kpsewhich foo.cls

Wird hier nicht die Datei in ~/texmf/tex/latex/foo ausgegeben, so sollte man zusätzlich einmal

Open in writeLaTeX
texhash ~/texmf

aufrufen.

Damit die Doku oder Beispieldatei von texdoc gefunden wird, falls eine solche existieren, sollte man außerdem das Verzeichnis ~/doc/latex/foo anlegen und die Doku bzw. Beispieldatei in dieses Verzeichnis kopieren.

Windows-Anwender ersetzen bitte in obigen Pfadangaben für die Verwendung im Windows Explorer oder in CMD.EXE den Slash / durch den Backslash \. Das gilt auch im von kpsewhich zurückgelieferten Verzeichnis. Wenn dieses beispielsweise C:/Dokumente und Einstellungen/BENUTZER/texmf lautet, wäre also im Windows Explorer bzw in CMD.EXE stattdessen C:\Dokumente und Einstellungen\BENUTZER\texmf zu verwenden.

Für MiKTeX

Bei MiKTeX legt man beim ersten Mal ein neue TEXMF-Wurzel an. Gehen wir einfach einmal davon aus, dass diese für all diese einfachen Klassen und Pakete aus dem Verzeichnis C:\Dokumente und Einstellungen\BENUTZER\Eigene Dateien\MiKTeX\mytexmf besteht. Die Wahl des Verzeichnisses ist jedoch frei. Es sollte beim ersten Mal lediglich ein neues noch leere Verzeichnis sein.

In diesem Verzeichnis legt man nun für eine Klasse oder ein Paket foo Unterverzeichnisse an (im Windows-Explorer geht das einfach mit Rechtsklick in das Verzeichnis und dann Auswahl von Neu → Ordner) bis man C:\Dokumente und Einstellungen\BENUTZER\Eigene Dateien\MiKTeX\mytexmf\tex\latex\foo hat. In dieses Verzeichnis kopiert man nun die Klassendatei foo.cls bzw. die Paketdatei foo.sty.

Falls es eine Anleitung bzw. eine Beispieldatei zu der Klasse bzw. dem Paket gibt, ist es außerdem sinnvoll C:\Dokumente und Einstellungen\BENUTZER\Eigene Dateien\MiKTeX\mytexmf\doc\latex\foo anzulegen und in dieses Verzeichnis die Anleitung bzw. die Beispieldatei zu kopieren.

Über MiKTeX Options (findet man im klassischen Start-Menü von Windows unter MiKTeX → Maintenance → Settings bzw. MiKTeX → Maintenance (Admin) → Settings) trägt man nun diese neue TEXMF-Wurzel, C:\Dokumente und Einstellungen\BENUTZER\Eigene Dateien\MiKTeX\mytexmf auf der Registerkarte Roots ein. Bei der Bestätigung des Dialog wird automatisch die Filename Database erneuert wodurch die Dateien in dem TEXMF-Baum MiKTeX bekannt werden.

Die Reihenfolge des Vorgehens ist sehr wichtig! Sollte man stattdessen erst den TEXMF-Baum bei MiKTeX anmelden und dann Dateien in diesen hineinkopieren, bzw. später in einem bereits früher angelegten TEXMF-Baum ein weiteres solches Paket oder solche Klasse hinzufügen, muss man die Filename Database selbst aktualisieren. Auch dies ist einfach per Klick über MiKTeX Options auf der Registerkarte General über den Knopf Refresh FNDB möglich.

Bei MiKTeX ist außerdem zu beachten, dass im Falle einer Admin-Installation von MiKTeX selbst angelegte TEXMF-Bäume erst nach den automatisch von MiKTeX angelegten TEXMF-Bäumen für benutzerspezifische, automatisch installierte Pakete durchsucht werden. Daher ist diese Methode nicht geeignet, um in diesem Fall automatisch installierte Pakete durch eigene Versionen zu ersetzen. Ggf. sind die entsprechenden automatisch installierten Pakete über den Paketmanager zu entfernen. Benutzerinstallationen von MiKTeX haben dieses Problem nicht.

Permanenter link

beantwortet 02 Mai '14, 02:26

Bes's gravatar image

Bes
1411516

bearbeitet 27 Jan '15, 07:26

saputello's gravatar image

saputello
18.4k22352

1

Also so sehr ich es liebe, dass man in Miktex so einfach neue Texmf-Wurzeln anmelden kann: Für eine Klasse, die nur aus einer Datei besteht, würde ich keinen eigenen Baum erzeugen. Die kopiere ich in meinen von mir bereits angelegten "localtexmf"-Baum und aktualisiere dann die FNDB..

(02 Mai '14, 03:36) Ulrike Fischer

Es sei darauf hingewiesen, dass man neben Klassen und Paketen natürlich auch andere Dateien global installieren kann. Dabei können für LaTeX gedachte .tex-Dateien oder Bilder genau wie oben angegeben behandelt werden. Man kann für sie aber auch den Zweig …/generic/ verwenden, wenn sie beispielsweise nicht auf LaTeX beschränkt sind. Für .bib-Dateien ist der richtige Zweig im TeX-Baum …/bibtex/bib/. Für .bst-Dateien entsprechend …/bibtex/bst/. Die korrekten Zweige im TEXMF-Baum (aka TDS-Baum) findet man ggf. im TeX Directory Structure standard.

(08 Feb '15, 13:54) saputello
-1

Hallo

Auch wenn es an dieser stelle vermutlich nicht ideal hinpassen könne:

Ich habe das einbinden von Dateien in meinem Dokument aus externen quellen zumindest für das Literaturverzeichniss hinbekommen. Man kann einfach über bibliography{C:/Users/.../Literatur} den speicherort der Datei angeben und Latex schnappt die sich dann.

Leider klappt das nicht bei anderen Verzeichnissen. include{C:/Users/.../Verzeichnisse/Symbole} scheitert bei mir im Texmaker an folgender Fehlermeldung:

! I can't write on file `C:/Users/.../Verzeichnisse/Symbole.a ux'. @include ...immediate openout @partaux #1.aux immediate write @partau... l.91 .../Verzeichnisse/Symbole} Please type another output file name ! Emergency stop.

Das System möchte scheinbar die Symbole.aux-Datei erstellen aber kann dies an dem Ort nicht. Meine Frage lautet nun ob dies ein Windows-Rechte oder ein allgemeines Problem ist?

Permanenter link

beantwortet 09 Feb '15, 03:08

metzelmax's gravatar image

metzelmax
2714

Das ist keine Antwort auf die Frage. Es ist aber auch kein echter Kommentar zur Antwort. Am besten sollte es als neue Frage gestellt werden. Übrigens liegt vermutlich eine falsche Verwendung von \include statt \input vor.

(09 Feb '15, 03:56) saputello

Tschuldigung, die andere Frage war geschlossen worden.

Vielen Dank für den hinweis! Genau daran scheint es gelegen zu haben. mit input funktioniert alles so wie es soll :).

Danke nochmal

(09 Feb '15, 04:10) metzelmax

Die andere Frage ist geschlossen worden, weil auch auf entsprechenden Hinweis kein nennenswerter Unterschied zur Frage hier herausgearbeitet wurde! Das hier ist aber definitiv keine Antwort auf die Frage hier und gehört deshalb hier nicht als Antwort hin! Man kann doch nicht einfach einen Mangel durch einen anderen ersetzen. Bitte halte Dich an die Spielregeln. Bearbeite ggf. die Frage dort, gibt dort ein VM, Fehlermeldungen (bitte lesbar nicht wie hier) und ggf. weitere Unterschiede zur Frage hier an. Dann kann die ggf. auch wieder geöffnet werden. Ohne das eher nicht.

(09 Feb '15, 04:32) saputello
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×108
×40
×32
×9

Frage gestellt: 02 Mai '14, 02:05

Frage wurde angeschaut: 5,324 Mal

Zuletzt aktualisiert: 09 Feb '15, 04:35