Ich habe mir in einer separaten tex-Datei einige Makros definiert. Diese würde ich gern auch bei der Erstellung weiterer Dokumente mit \input laden, allerdings ohne sie jedes Mal in den entsprechenden Arbeitsordner kopieren zu müssen. Kann ich die Datei irgendwo zentral speichern, so dass sie immer gefunden wird?

gefragt 23 Feb '14, 21:19

welle's gravatar image

welle
106222631
Akzeptiert-Rate: 0%

bearbeitet 25 Mai '14, 22:04

esdd's gravatar image

esdd
17.8k284257


MiKTeX

Will man die Datei in unterschiedlichen Projekten laden, empfiehlt es sich einen eigenen TEXMF-Ordner anzulegen und in MiKTeX als Root zu registrieren. Dieser Ordner kann überall außerhalb der eigentlichen MiKTeX Installation liegen. Damit MiKTeX ihn als Root akzeptiert, muss er entsprechend dem TDS-Standard aufgebaut sein. Dazu kann man sich einfach am Aufbau des MiKTeX Verzeichnisses orientieren. In dem eigenen TEXMF-Ordner muss mindestens der Ordner tex vorhanden sein, und in diesem ein Ordner latex, in dem man dann direkt oder in Unterordnern seine Dateien mit eigenen Makros abspeichern kann.

alt text

Um den Ordner dann als Root zu registrieren, sucht man zunächst die MiKTeX Settings im Startmenü und startet diese. Man kann auch im Suchfeld des Startmenüs mo.exe eingeben oder mit der Tastenkombination Win+R das Ausführenfeld aufrufen und dort mo.exe eingeben. In jedem Fall öffnen sich die "MiKTeX Options" und man wechselt in den Reiter Roots.

alt text

Klickt man nun auf "Add", kann man seinen Ordner suchen und auswählen.

alt text

Anschließend kann man noch die Reihenfolge der Roots ändern. Das ist insofern wichtig, weil die Reihenfolge der TEXMF-Ordner in der Rootliste auch der Suchreihenfolge entspricht. Klickt man dann auf "Übernehmen" wird auch automatisch die Filename Database aktualisiert. Danach kann man die Dateien in dem eigenen TEXMF-Ordner in verschiedenen Projekten laden.

alt text

In MiKTeX kann man mehrere dieser eigenen TEXMF-Ordner nutzen. Das ist zum Beispiel dann hilfreich, wenn man vorübergehend eine Entwicklerversion eines Paketes verwenden möchte. Hat man diese jeweils in einem eigenen TEXMF-Ordner, dann ist sie mit wenigen Klicks aktiviert und auch wieder deaktiviert.

Multiuser Installation

Ist auf einem Computer MiKTeX für mehrere Nutzer installiert, so kann man zum einen Roots in den MiKTeX Settings(admin) einbinden, die dann für alle Nutzer verfügbar sind. Das bietet sich zum Beispiel für eigene Klassen oder Stildateien oder auch zusätzliche Schriften an, die von allen genutzt werden dürfen/sollen. Zum anderen hat jeder seine eigenen MiKTeX Settings. Dort bindet man die Roots mit den privaten Dingen ein.

TeX Live

Bereits bei der Installation von TeX Live werden weitere TEXMF-Ordner für diesen Zweck mit registriert, die dann ebenfalls nach dem TDS-Standard aufgebaut sein müssen:

  • ein lokaler für Dateien (zum Beispiel Schriften), die von allen Nutzern verwendet werden können. Der Pfad zu diesem ist in TEXMFLOCAL abgespeichert.
  • jeweils ein privater für die einzelnen Benutzer zum Abspeichern der persönlichen Dateien. Der Pfad zum Ordner steht in TEXMFHOME.

alt text

Die Pfade können zwar bei der Installation angepasst werden, aber da diese Verzeichnisse auch nach dem Wechsel auf eine neuere TeX Live Version weiter genutzt werden sollen, empfiehlt es sich die vorgeschlagenen Pfade so zu lassen, wie sie sind.

Über eine Konsole / Eingabeaufforderung kann man mit

Open in writeLaTeX
kpsewhich -var-value TEXMFHOME

jederzeit abfragen, wo sich der private TEXMF Ordner befindet. Das gleiche gilt für TEXMFLOCAL.

Falls Änderungen innerhalb des lokalen TEXMF Ordners (TEXMFLOCAL) vorgenommen werden, kann es notwendig sein jeweils noch die Dateiliste mit mktexlsr bzw. texhash über die Konsole oder in der GUI über das Menü „Aktionen - Aktualisierung der Dateienlisten“ auf den neuesten Stand gebracht werden. Bei der Standardinstallation des Original-TeX-Live wird TEXMFLOCAL allerdings immer komplett durchsucht, so dass eine Aktualisierung der Dateienlisten normalerweise nicht notwendig ist.

Auch in TeX Live ist es möglich, zusätzliche lokale oder private TEXMF Verzeichnisse zu verwenden, wenn man das aus irgendeinem Grund benötigt. Entsprechende Änderungen der Variablen TEXMF, TEXMFLOCAL oder TEXMFHOME kann man in der Datei texmf.cnf vornehmen, die neben dem texmf-dist Verzeichnis der aktuellen TeX Live Version liegt. Die Voreinstellungen findet man in der Datei texmf-dist/web2c/texmf.cnf, in der man selbst keine Änderungen vornehmen sollte.

Permanenter link
Dieser Antwort ist "Community Wiki" markiert.

beantwortet 26 Feb '14, 20:04

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 02 Nov '14, 12:27

gast3's gravatar image

gast3
(ausgesetzt)

Es ist wunderlich, welche komplizierten Umwege bestehen und favorisiert werden und wie man sich von grafischen Oberflächen gängeln läßt. Man kann dem Computer/Compiler auch einfach sagen was man will, er macht es dann... "Nimm Datei von da und baue sie hier ein"(input "/verzeichnis/datei.xyz") Diese grafischen Umwege sind mehr Schein als Sein und Symptom der Windows/Motif/Mac - Seuche. Dahinter stehen dieselben alten, ergrauten Shell-Befehle, aufbereitet für Leute, denen nicht mehr erklärt wird (werden soll), wie ihr Gerät funktioniert. Ist wie den Ferrari über die Kreuzung schieben...

(26 Feb '14, 22:43) ctansearch

@ctansearch der TeXbaum hat den Vorteil, dass man einfach einfach \input{datei} machen kann, ohne dass man den Pfad wissen müsste. Besser noch: man kann sie als Paket abspeichern und dann \usepackage{datei} benutzen. Richtig angewendet funktioniert das auch für biblatex Stile, ist-Dateien. Früher hab ich das so gemacht (\input{/der/lange/pfad/zur/datei}) aber seit dem ich weiß, wie es mit dem TeXbaum geht, hab ich das nie wieder verwendet...

(26 Feb '14, 22:48) cgnieder

Deine Antwort wird in dem Moment Stimmen bekommen, in dem Du eine Beschriebung zum TeXbaum (vielleicht für Linux und TeX Live) einfügst, anstatt nur auf andere Seiten in einer anderen Sprache zu verweisen

(26 Feb '14, 22:48) cgnieder

@clemens Wie bekannt, reite ich auf der "puristischen" Welle. Wenn das "einfach" Deines Kommentars damit erkauft wird, daß man Konfigurationen und Pfade definieren muß, finde ich das unpraktisch, Zudem ist es sinnvoller, die privaten von den allgemeinen Daten zu trennen, weil eine TeX-Installation standardisiert und öffentlich sein soll, private Dateien aber nicht. Wenn man den TeX-Baum nutzt, hat das den Nachteil, daß man seine Zweige auf jede Installation neu aufpfropfen muß. Ob meine Antworten Stimmen erhalten ist nicht wichtig.

(26 Feb '14, 23:32) ctansearch

@ctansearch aber das muss man doch nur ein einziges mal machen? Und die Trennung privat/allgemein hat man doch eben, indem man seine Dateien in den privaten Teil des Baums legt... Das kann auf einem Mehruser-Linux-System jeder in seinem Home-Verzeichnis machen (wie Du, wie ich vermute, weißt, da Du da den TeXbaum in Deiner Antwort erwähnt hast). Wenn man dann TeX Live aktualisiert (etwa von 2012 auf 2013), hat man schon seinen Baum und muss den auch nicht neu anlegen...

(26 Feb '14, 23:51) cgnieder

Abspeichern kann man die Datei wo man will. Man muss lediglich den Pfad mit angeben.

Open in writeLaTeX
\input /home/user/mymacros.tex

Wenn man das nicht möchte, kann man sich im Verzeichnisbaum von TeX einen Zweig erstellen, in dem man alle eigenen Dateien speichert, dann werden sie immer gefunden. Zur Aktualiserung einmal texhash aufrufen, damit das Programm immer den aktuellen Stand der Verzeichnisse kennt. Wer mag, kann sich bei CTAN über den tds-Verzeichnisbaum informieren oder bei Texlive nachschauen.

Permanenter link

beantwortet 23 Feb '14, 21:56

ctansearch's gravatar image

ctansearch
(ausgesetzt)
Akzeptiert-Rate: 18%

bearbeitet 23 Feb '14, 22:57

3

Das mit dem eigenen Zweig im Verzeichnisbaum ist eine gute Idee. Vielleicht kannst Du ja noch ein bisschen ausführen, welches Verzeichnis TeX Live/MiKTeX (ich weiß nicht, welches Du hast), dafür standardmäßig vorsieht, und wie man ihm eventuell beibringen kann, auch ein eigenes zu verwenden?

(23 Feb '14, 22:07) cgnieder

Ich werf mal noch die Variable texinputs in den Raum.

(23 Feb '14, 22:15) Johannes
1

Apropos TEXINPUTS: Ich würde zumindest in Windows eher abraten – http://texwelt.de/wissen/fragen/3100/texstudio-variable-texinputs

(25 Feb '14, 16:18) Speravir
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×117
×43
×38

gestellte Frage: 23 Feb '14, 21:19

Frage wurde gesehen: 18,705 Mal

zuletzt geändert: 02 Nov '14, 12:27