PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wechsel LaTeX -> PDFLaTeX - Referenzen



Lyn
05-08-2008, 18:01
Hallo.
Bin gestern von Latex auf PDFTeX umgestiegen.

Die Bilder werden wie folgt in den Test integriert:



...
Rechnerarchitektur dagegen umfasst die technischen Aspekte von Computersystemen. Nehmen wir also doch einmal einen Rechner und schauen hinein (siehe Abb.~\ref{abb:rechner}).

\begin {Abbildung}
\begin{center}
\includegraphics[width=7cm]{rechner.pdf}
\end{center}
\caption{Normaler Arbeitsplatzrechner}
\label{abb:rechner}
\end{Abbildung}
....


Nun kommt aber dieser Fehler:




! Undefined control sequence.
<argument> Abbildung.\theHAbbildung

l.5 ...chauen hinein (siehe Abb.~\ref{abb:rechner}
).


Der dazugehörige Fehler für das Literaturverzeichnis:



! Undefined control sequence.
<argument> Abbildung.\theHAbbildung

l.1 ...latzrechner}}{3}{Abbildung.\theHAbbildung }



Wenn ich die Fehler ignoriere und den Make-Aufruf manuell weiterlaufen lasse, wird das main.pdf erstellt, aber die Referenzen sind Rot umrandet und ebenso jeder Eintrag im Inhaltsverzeichnis und im Abbildungsverzeichnis.

Auszug aus dem dazugehörigen .aux File:




\@writefile{abb}{\contentsline {Abbildung}{\numberline {1.1}{\ignorespaces Normaler Arbeitsplatzrechner}}{3}{Abbildung.\theHAbbildung }}
\newlabel{abb:rechner}{{1.1}{3}{Motivation\relax }{Abbildung.\theHAbbildung }{}}
\@writefile{abb}{\contentsline {Abbildung}{\numberline {1.2}{\ignorespaces Hauptplatine eines Computers}}{4}{Abbildung.\theHAbbildung }}
\newlabel{abb:mainboard}{{1.2}{4}{Motivation\relax }{Abbildung.\theHAbbildung }{}}



Leider finde ich keine Dokumentation, die mir weiterhilft. Kommt jemandem das bekannt vor??

Ich arbeite an einem nicht von mir erstellten Dokument. Es wurden von mehreren Bearbeitern mehrere Styles um- und neu geschrieben. In den Styles wurden die Titelseite und die Kapitelüberschriften verändert. Der Begriff 'theHAbbildung' taucht in den Styles nicht auf.

Mir würde schon helfen wenn ich wüsste wo ich suchen muss.

pospiech
05-08-2008, 19:57
Bin gestern von Latex auf PDFTeX umgestiegen.

du meinst pdflatex, pdftex würde LaTeX code nicht kompilieren.

Dein Problem liegt vermutlich darin wie die Umgebung 'Abbildung' definiert ist.

Lyn
05-08-2008, 20:43
Ja stimmt, PDFLaTeX.

Ich habe den Fehler an sich noch nicht gefunden, da ich den Style nicht finde, in dem die Umgebung Abbildung definiert wird. (Auch "grep Abbildung *.sty" hat nichts aufschlussreiches ergeben).

Aber das Auskommentieren des {hyperref}-Packages hat immerhin den Fehler beseitigt.

Danke für die Hilfe.

Ne Frage noch nebenbei:
gibt es außer
\newtheorem{satz}{Satz}
\def
\newcommand
noch andere Möglichkeiten, neues zu definieren? Welches ist am sinnvollsten, wenn ich eine eigene Umgebung anlegen will??

Stefan_K
05-08-2008, 20:59
Hi Lyn,

gibt es außer
\newtheorem{satz}{Satz}
\def
\newcommand
noch andere Möglichkeiten, neues zu definieren?
Etliche, sowohl von LaTeX (\providecommand, \newenvironment, Sternformen) als auch TeX (\edef, \xdef, \let, \newdimen, \newskip,\newbox, \newif, \newcount, \newtoks, ...)


Welches ist am sinnvollsten, wenn ich eine eigene Umgebung anlegen will??
\newenvironment (http://www.weinelt.de/latex/newenvironment.html).

Stefan

Lyn
05-08-2008, 21:45
Danke für die prompte Antwort.

sommerfee
06-08-2008, 08:15
Aber das Auskommentieren des {hyperref}-Packages hat immerhin den Fehler beseitigt.

Das hyperref-Paket braucht die sog. "H"-Definitionen (wie z.B. \theHAbbildung), um eineindeutige Ankernamen für die Sprungziele vergeben zu können.

Um diese Definitionen zu erhalten, gibt es zwei Vorgehensweisen:

1. Auf die richtige Lade- und Anwendereihenfolge achten, hyperref tätigt dann diese Definition in der Regel selber. hyperref muß in der Regel zuletzt geladen werden, alle Anwendungen von Paketen müssen danach getätigt werden. Ein Beispiel: Man möchte mit \newfloat von dem float-Paket die Umgebung "Abbildung" definieren. Die richtige Reihenfolge wäre dann: float-Paket laden (stellt \newfloat bereit) => hyperref-Paket laden (modifiziert \newfloat) => \newfloat anwenden.

2. Die H-Definition selber nachholen, also \providecommand\theHAbbildung{...}, wobei in dem ... etwas stehen muß, was bei jeder Abbildung einen eineindeutigen Namen generiert.

Gruß,
Axel