PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme bei der Kompatibilität von hyperref und geometry



thomfisch
07-12-2007, 16:11
Hallo zusammen,

ich nutze die Klasse scrartcl und würde gern sowohl das Paket hyperref als auch das Paket geometry nutzen.


\documentclass[12pt,oneside,liststotoc,bibtotoc,halfparskip]{scrartcl}
\usepackage[left=6cm, right=1cm]{geometry}
\usepackage[backref, colorlinks=true, citecolor=red, pdfpagemode={UseOutlines}, pdfstartview={FitH}, pdfview={FitH}, pdfsubject={...}, pdftitle={...}, pdfauthor={...}, pdfdisplaydoctitle=true]{hyperref}


Nutze ich nur eines der beiden, gibt es keinerlei Fehler- oder Warnmeldungen. Benutze ich sie gemeinsam, bekomme ich den Fehler
no room for a new \dimen.

Was kann ich tun?

Viele Grüße

Thomas

bobmalaria
07-12-2007, 16:50
hi,

bei mir kommt es zu keinen fehlern


\documentclass[12pt,oneside,liststotoc,bibtotoc,halfparskip,ngerm an]{scrartcl}
\usepackage[ngerman]{babel}

\usepackage[left=6cm, right=1cm]{geometry}

\usepackage{blindtext}%zum test
\usepackage[
backref,
colorlinks=true,
citecolor=red,
pdfpagemode={UseOutlines},
pdfstartview={FitH},
pdfview={FitH},
pdfsubject={...}, pdftitle={...},
pdfauthor={...},
pdfdisplaydoctitle=true
]{hyperref}


\begin{document}
\Blindtext
\end{document}

lösche mal alle temporören dateien und versuche es nochmal.
sollte das nicht helfen kommentiere erstmal einzelne pakete aus, solange bis du ein paket gefunden hast das den fehler verursacht.

dann schaue ob sich alle optionalen argumente vertragen.

so solltest du den fehler einkreisen können.

gruß

sommerfee
07-12-2007, 19:42
TeX hat nur eine endliche Anzahl von Registern, deswegen kann es schon einmal zu einer solchen Fehlermeldung kommen, wenn man sehr, sehr viele Pakete verwendet.


Was kann ich tun?

In die Log-Datei schauen, dort sieht man genau, welches Paket welche Dimension-Register verbraucht. Und anschließend muß man sich entscheiden, auf welches Paket man zugunsten eines anderen Paketes verzichtet.

Oder man verwendet e-TeX, welches mehr Register zur Verfügung stellt als TeX. Bei vielen Distributionen (z.B. MikTeX) ist deswegen auch e-TeX bereits als Standard für LaTeX eingestellt.

Liebe Grüße,
Axel

thomfisch
07-12-2007, 23:40
Vielen Dank für Eure Antworten. Es scheint tatsächlich damit zusammen zu hängen, dass ich zu viele packages geladen habe, obwohl schon nur Pakete geladen sind, die ich auch wirklich brauche. (Ich habe allerdings alle anderen Pakete ausgeblendet, weil ich dachte, dass es am Zusammenspiel von Hyperref und geometry liegt.)

Weiterhin benutze ich auch MikTeX, so dass e-Tex voreingestellt sein dürfte. Die Welt geht nicht unter. In der finalen Fassung kommentiere ich das Hyperref-Paket sowieso aus, dann läuft das Ganze ja auch.

Noch einmal vielen Dank und viele Grüße

Thomas

sommerfee
08-12-2007, 08:24
Weiterhin benutze ich auch MikTeX, so dass e-Tex voreingestellt sein dürfte.

Prima, dann baue doch mal ein \usepackage{etex} in dein Dokument ein, am besten gleich nach der \documentclass-Zeile, und schaue, ob dein Dokument dann auch mit hyperref durchläuft.

Hier mal ein kleiner Test auf e-TeX und ob mehr als 256 "dimen"-Register vorhanden sind:



\documentclass{article}

\expandafter\ifx\csname currentgrouplevel\endcsname\relax
\typeout{Es wird TeX verwendet}%
\else
\typeout{Es wird e-TeX verwendet}%
\usepackage{etex}
\fi

\usepackage{ifthen}
\newcounter{A}
\whiledo{\value{A}<256}{%
\expandafter\newdimen\csname dim\roman{A}\endcsname
\stepcounter{A}}

\begin{document}
A
\end{document}


Es sollte ohne Fehler durchlaufen und man sollte in der Log-Datei folgende Zeilen finden:



Es wird e-TeX verwendet
...
\dimcxxx=\dimen233
Normal \dimen register pool exhausted, switching to extended pool.
\dimcxxxi=\dimen256
...


Gruß,
Axel

thomfisch
08-12-2007, 21:50
Vielen Dank Axel,

mit \usepackage{etex} funktioniert es tadellos. Ich bin begeistert.

Viele Grüße

Thomas