Sie sind hier

label Problem

Alle anderen Verweise im Dokument sind genauso aufgebaut und funktionieren ohne Probleme. Ich brauche nur diesen rausnehmen und alles funktioniert wieder. Ich bin ratlos, absolut.
Meine einzige Idee richtet sich auf den Umlaut, weil der auch der einzige Unterschied zu den anderen ist, aber ich weiß trotzdem nicht weiter. Irgendwas ist auch mit ngerman nicht richtig, es gehört wohl in die documentclass.¹

\documentclass[a5paper,DIVcalc]{scrartcl}
\usepackage[ngerman]{Babel}
\usepackage[latin1]{inputenc}
\usepackage{graphicx}
\usepackage{caption}
 
\begin{document}
 
\graphicxpath{Pfad}
 
Text
(Abb. S.~\pageref{abb:Flötenakazie})
Text. 
 
\begin{figure}[tb]
\includegraphics[width=8cm]{flötenakazie}
\caption{Flötenakazie}
\label{abb:Flötenakazie}
\end{figure}
 
\end{document}

1 [Admin-Edit:] <code>...</code> eingefügt. Bitte künftig selbst beachten!

Bild von Markus Kohm

... die Fehlermeldung

! LaTeX Error: File `Babel.sty' not found.

die man bei Verwendung eines case-sensitiven Dateisystems bekommt? Richtig, das Paket heißt nicht »Babel«, sondern »babel«. Auch Windows-Anwender sollten das beachten, denn spätestens, wenn sie ihr Dokument zu einem Kumpel tragen, der sich mit LaTeX besser auskennt, bekommen sie sonst ein Problem.

... die Fehlermeldung:

! Undefined control sequence.
l.7 \graphicxpath
                 {Pfad}

Mir sagt sie, dass es keine Anweisung \graphicxpath gibt. Und richtig, wenn ich in die Anleitung zu graphics und graphicx schaue, dann finde ich dort zwar \graphicspath aber kein \graphicxpath. Darüber hinaus ist dann aber auch noch die Syntax des Arguments falsch. Daneben ist aber auch die \includegraphics-Anweisung für ein vollständiges Minimalbeispiel ungeeignet und sollte ggf. durch eine \rule gleicher Größe ersetzt werden.

... die Fehlermeldung:

! Missing \endcsname inserted.
 
                   \unhbox 
l.9  (Abb. S.~\pageref{abb:Flötenakazie}
                                         )

Mir sagt sie, dass irgendwas bei \pageref schief gelaufen ist. Die Fehlermeldung gehört jedoch in die Kategorie der Allerweltsfehlermeldungen von TeX, für deren Zuordnung man schon eine gehörige Portion Erfahrung benötigt.

Tatsächlich ist Deine Vermutung, dass das etwas mit dem Umlaut im Label zu tun hat, gar nicht schlecht und Du hättest das natürlich leicht selbst ausprobieren können. Das Paket inputenc arbeitet mit aktiven Zeichen, um die Zuordnung zwischen Eingabe-Zeichen mit einem Code > 127 zu dem Ausgabezeichen vornehmen zu können. Aktive Zeichen sind so etwas wie Befehle, die nur aus einem Zeichen bestehen. Aktive Zeichen sollte man in Labels besser vermeiden. Ich empfehle immer, Labels nur aus ASCII-Buchstaben, Ziffern, Bindestich, Punkt und Doppelpunkt (wobei der bei manchen Sprachen bereits kritisch sein kann) zusammenzusetzen.

Vielen Dank für deine ausführlich Hilfe, nun klappt für die nächsten fünf Minuten wieder alles wunderbar. Nach den Ersetzungen "Graphicspath und babel und Floetenakazie" läuft alles wieder perfekt. Tatsächlich hatte ich schon die oe-Lösung probiert, aber durch den Fehler mit Graphicxpath kein Ergebnis erzielt und sie wieder verworfen.

Dass die Syntax des Argumentes falsch sei, macht mir noch kopfzerbrechen. Was ein vollständiges Minimalbeispiel ist, werde ich hoffentlich zum nächsten Mal besser verstanden haben.

frank

Bild von Markus Kohm

Aus dem grfguide:

This optional declaration may be used to specify a list of directories in which to
search for graphics files. The format is the same as for the LATEX2e primitive
\input@path. A list of directories, each in a {} group (even if there is only one
in the list). For example:
\graphicspath{{eps/}{tiff/}}
would cause the system to look in the subdirectories eps and tiff of the current
directory.

Du hast angegeben:

\graphicxpath{Pfad}

Korrigiert man den Tippfehler im Makroname fehlt noch immer eine Klammer im Argument. Außerdem sollte man den abschließenden Slash nicht vergessen.

\graphicspath{{Pfad/}}

BTW: Das LaTeX-Team rät selbst von der Verwendung von \graphicspath ab. Stattdessen soll man lieber TEXINPUTS passend setzen.

Die richtige Syntax hat zur Folge, dass der Kompiliervorgang sich auf ein Viertel der Zeit verkürzt. Allerdings habe ich nun auch das Dateiformat mit angeben müssen, weil sonst alles was noch den Namen meines Bildes trägt, aber in einem anderen Format gespeichert war, plötzlich als Pfad über dem Bild angegeben wird.

Gerade glücklich geworden, habe ich mich dem Thema TEXINPUTS angenommen, das im Latexsündenregister als Alternative für \graphicspath geführt wird. Plattformunabhängigkeit, weniger Nutzung von Tex-Speicher und mehr Flexibilität sind wohl die Hauptargumente dafür.

Jedenfalls habe ich in Xp unter Benutzervariablen den Eintrag TEXINPUTS und einen neuen Pfad hinzugefügt, in den ich alle Bilder lege, die ich für meine Dokumente brauche. Dann habe ich im Tex-Dokument anstelle von \graphicspath{{Pfad/}{Pfad/}} TEXINPUTS ={Pfad} angegeben und sonst alles so gelassen. Das zeugt aber wohl nur von Diletantismus par exelence, denn der Kompiliervorgang stockt schon, wenn er nur \TEXINPUTS liest.
Na vielleicht finde ich noch n Tutorial dazu, am besten eines für Dummies.

Bild von Markus Kohm

Gibt die Pfade an, in denen TeX nach Dateien such. Dabei gibt es auf kpathsea-basierten Systemen noch die Besonderheit, dass der leere Pfad für die Verwendung von kpathsea (bzw. der Filename-Database) steht. Etwas wie:

TEXINPUTS=:./Unterverzeichnis

würde also beispielsweise zunächst per kpathsea und dann im Verzeichnis Unterverzeichnis des aktuellen Arbeitsverzeichnisses suchen.

Dann gibt es noch die Besonderheit, dass // für alle Unterverzeichnisse eines Verzeichnisses steht. Also würde:

TEXINPUTS=.//:

erst im aktuellen Verzeichnis und allen Unterverzeichnissen davon und dann per kpathsea suchen.

Wie das nun konkret bei MikTeX ist, kann ich Dir nicht sagen. Bei TeX-Live funktioniert obiges.

Vielen Dank für deine Mühe.

Wie schaffst du es, dass im scrguide.pdf alle Labels komplett verlinkt sind? Bei mir ist es leider nur die Zahl, was ja eine Einbuße an Komfort darstellt.

Bild von Markus Kohm

hyperref kennt \autoref. Dazu ist dann in scrguide.cls noch \autopageref in einer Art und Weise definiert, die Heiko leider abgelehnt hat. Offiziell müsste man wohl mit \phantomsection vor jedem \label und \hyperref und darin mit \pageref*{...} oder so ähnlich arbeiten.

Ich hab jetzt, was ich wollte mit Folgendem erreicht:
\hyperref[Marke]{S.\,\pageref*{Marke}}
Dadurch ist nicht nur die Seitenzahl verlinkt, sondern die Abkürzung S. auch. Eine sehr ausführliche Dokumentation über hyperref:

http://e-collection.ethbib.ethz.ch/ecol-pool/bericht/bericht_93.pdf.

Was mich beunruhigt ist, das die Tilde leider zwei Funktionen wahrnimmt, von denen diese, dass sie Platz beansprucht, von mir nicht gewünscht ist. Denn ich finde, dass der Abstand zwischen S. und Zahl besser über \, aussieht als über S.~7 zum Beispiel. Dummerweise gehe ich jetzt das Risiko, dass mir S. und Zahl auseinandergerissen werden. Gibt es eine Lösung, außer mbox -- wenn das eine sein sollte -- S. und Zahl zu verdrahten, aber mit geringerem Abstand versehen, als die Tilde ihn produziert?

Bild von Markus Kohm

Und wenn dem nicht so wäre, spräche ja trotzdem nichts dagegen etwas wie

\newcommand*{\autopageref}[1]{%
  \mbox{\hyperref{#1}{S.\,\pageref*{#1}}%
}

zu definieren und dann \autopageref{Marke} zu schreiben. Man kann die \mbox theoretisch auch in das Argument von \hyperref ziehen.

Comments for "label Problem" abonnieren