Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

latex kompiliert die falsche Datei (TeX Live 2011 / Kommandozeile)

54 views
Skip to first unread message

Geza Giedke

unread,
Nov 5, 2012, 6:46:25 PM11/5/12
to
Hallo,

seit kurzem kompiliert latex (beim Aufruf von der Kommandozeile oder
innerhalb von emacs/auctex) nicht mehr die Datei, auf die ich es
anwende(n will), sondern eine Datei desselben Namens, die aber in einem
anderen Verzeichnis liegt:

Z.B. liegt im Verzeichnis
~/TeX/TeXinput/Current/Journal/
die Datei paper.tex

Wenn ich in diesem Verzeichnis latex paper aufrufe

geza@linux-ia2u:~/TeX/TeXinput/Current/Journal> latex paper

dann wird nicht (wie erwartet) die Datei

~/TeX/TeXinput/Current/Journal/paper.tex

kompiliert, sondern die Datei

~/TeX/TeXinput/Other/paper.tex

(Other = Templates/Show/Show_v2.0, aber das duerfte unwichtig sein)

.log, .aux und .dvi dateien werden in
~/TeX/TeXinput/Current/Journal/
erzeugt.

Dieses Verhalten ist neu und ich habe keine Idee, woran es liegen
koennte oder was ich geaendert habe. Fuer Ideen oder Loesungsvorschlaege
bin ich dankbar.

Die TEXINPUTS Variable ist

$TEXINPUTS is "~/TeX/TeXinput/:~/texmf/"

Wenn ich

latex ~/TeX/TeXinput/Current/Journal/paper.tex

aufrufe, erhlate ich das gewuenschte Resultat.

Die ersten Zeilen des .log-files sind:

This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011)
(format=pdflatex 2012.9.18) 6 NOV 2012 00:39
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**paper
(~/TeX/TeXinput/Templates/Show/Show_v2.0/paper.tex
LaTeX2e <2009/09/24>

Vielen Dank fuer Eure Hilfe.

Gruesse
Geza

Rolf Niepraschk

unread,
Nov 6, 2012, 3:38:20 AM11/6/12
to
Am 06.11.2012 00:46, schrieb Geza Giedke:
...
>
> Die TEXINPUTS Variable ist
>
> $TEXINPUTS is "~/TeX/TeXinput/:~/texmf/"
>

Die Belegung von TEXINPUTS ist nicht sinnvoll und erklärt das Verhalten.
Die Variable enthält _nicht_ das aktuelle Verzeichnis. Du solltest
darüber nachdenken, ob TEXINPUTS zu setzen überhaupt notwendig ist. Wenn
nicht, dann

unset TEXINPUTS

und neuer Test. Wenn doch, dann besser so

TEXINPUTS=.:~/TeX/TeXinput:~/texmf

Unter TeXLive wird ~/texmf ohnehin verwendet (TEXMFHOME). Zumindest
diese Angabe ist also unnötig.

...Rolf



Markus Kohm

unread,
Nov 6, 2012, 3:34:24 AM11/6/12
to
Geza Giedke (Dienstag, 6. November 2012 00:46):

> Die TEXINPUTS Variable ist
>
> $TEXINPUTS is "~/TeX/TeXinput/:~/texmf/"

Das aktuelle Arbeitsverzeichnis ist also nicht Bestandteil von TEXINPUTS,
sondern die Datei paper.tex wird auf andere Weise gefunden. Wenn Du willst,
dass Dateien im aktuellen Arbeitsverzeichnis Priorität haben, dann sollte
die Ausgabe von

kpsewhich -progname=pdflatex -var-value=TEXINPUTS

mit .: beginnen.

Außerdem ist zu beachten, dass ein unsachgemäßes TEXINPUTS auch die Suche
via kpathsea verhindern kann. Näheres dazu ist der Anleitung, kpathsea.pdf,
zu entnehmen.

Gruß
Markus Kohm
--
KOMA-Script, eine Sammlung von Klassen und Paketen für LaTeX2e
Aktuell: KOMA-Script 3.11b (siehe <http://www.komascript.de/release>)
Anleitung: <http://prdownload.berlios.de/koma-script3/scrguide-20120729.pdf>

Heiko Oberdiek

unread,
Nov 6, 2012, 10:05:46 AM11/6/12
to
Rolf Niepraschk <Rolf.Ni...@gmx.de> wrote:

> Am 06.11.2012 00:46, schrieb Geza Giedke:
> ...
> >
> > Die TEXINPUTS Variable ist
> >
> > $TEXINPUTS is "~/TeX/TeXinput/:~/texmf/"

Unwahrscheinlich. So enthaelt die Umgebungsvariable lediglich die
beiden Verzeichnisse, Unterverzeichnisse werden nicht durchsucht,
auch die Standardverzeichnisse sind ausgeschlossen.

> Die Belegung von TEXINPUTS ist nicht sinnvoll und erkl�rt das Verhalten.
> Die Variable enth�lt _nicht_ das aktuelle Verzeichnis. Du solltest
> dar�ber nachdenken, ob TEXINPUTS zu setzen �berhaupt notwendig ist. Wenn
> nicht, dann
>
> unset TEXINPUTS
>
> und neuer Test. Wenn doch, dann besser so
>
> TEXINPUTS=.:~/TeX/TeXinput:~/texmf
>
> Unter TeXLive wird ~/texmf ohnehin verwendet (TEXMFHOME).

Nicht ganz. So werden weder Unterverzeichnisse noch die Standardorte
durchsucht. TEXINPUTS fuer LaTeX ist etwa definiert als

TEXINPUTS.latex = .;$TEXMF/tex/{latex,generic,}//

Man sieht:
* es enthaelt das aktuelle Verzeichnis,
* nur TeX-Dateien in den Formaten "latex" und "generic"
werden durchsucht,
* durch "//" werden auch die Unterverzeichnisse angesehen.

TEXINPUTS=.:~/TeX/TeXinput//:

Der abschliessende Doppelpunkt sorgt dafuer, dass auch die
vorige Bedeutung von TEXINPUTS (etwa, das, was in der texmf.cnf
konfiguriert ist,) mit eingebunden wird. "~/texmf/tex/..." braucht man
daher nicht mehr. Das aktuelle Verzeichnis hingegen soll ja am
Anfang stehen und wird daher nochmal angegeben.

--
Heiko Oberdiek

Geza Giedke

unread,
Dec 5, 2012, 3:30:43 AM12/5/12
to
Markus Kohm schrieb am 11/06/2012 09:34 AM:
> Außerdem ist zu beachten, dass ein unsachgemäßes TEXINPUTS auch die Suche
> via kpathsea verhindern kann. Näheres dazu ist der Anleitung, kpathsea.pdf,
> zu entnehmen.

vielen Dank fuer alle Antworten. Nachdem ich alle selbstverbrochenen
Setzungen von TEXINPUTS entfernt habe (in bashrc und in der
emacs/AucTeX-Konfiguration) laeuft alles so, wie erwuenscht.

Gruesse
Geza

0 new messages