PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Keine Links mehr im PDF



Boron
11-01-2005, 09:16
Hallo zusammen,

Bisher habe ich aus der tex-Datei immer direkt ein PDF mit pdflatex.exe erstellen lassen.
Aus diversen Günden musste ich gestern einen Zwischenschritt einfügen: tex -> ps -> pdf.

Allerdings gehen mir jetzt die Links verloren.
Z.B. Links aus den Inhaltsverzeichnis direkt zu den Kapiteln, oder die Links von Literatirverweisen ins Literaturverzeichnis.

Gibt es noch irgendwelche Tricks für den hypersetup-Teil vom hyperref Paket, oder irgendwas anderes um weitehin die Links in PDF zu haben?

edico
11-01-2005, 11:37
Ich denke, tex und pdftex benötigen unterschiedliche Optionen. Um nun je nach Notwendigkeit sowohl mit tex als auch mit pdf compilieren zu können, könntest du in die Präamble schreiben:
...
%----------------------------------------------------------------------------%
\usepackage{color}
\definecolor{rltred}{rgb}{.75,0,0}
\definecolor{webred}{rgb}{.5,0,0}
\definecolor{rltblue}{rgb}{0,0,.75}
\definecolor{webblue}{rgb}{0,0,.5}
\definecolor{rltgreen}{rgb}{0,.25,0}
\definecolor{webgreen}{rgb}{0,.5,0}
\newif \ifpdf
\ifx \pdfoutput \undefined
\pdffalse
\else
\pdftrue
\fi
\ifpdf
\pdfcatalog { /PageMode (/UseNone)
}
\usepackage{thumbpdf}
\usepackage[pdftex]{hyperref}
\else
\usepackage[ps2pdf]{hyperref}
\fi
\hypersetup{%
colorlinks=true, % Farbige links
linktocpage, % colored pagenumber_in_toc
anchorcolor=blue, % anchor-text (header)
citecolor=webgreen, % biblio link
filecolor=rltblue, % local file (PDF)
linkcolor=webred, % content,index,ref/pageref-label
menucolor=blue, % Acrobat menu item
pagecolor=rltblue, % link to other document pages
urlcolor=webblue, % URLs - http-Adressedate (auch TeX)
pdfpagemode=None, % PageWdth, FullScreen, None ...
%bookmarksopen=true,
%bookmarksnumbered=true,
pdfstartpage={1},
pdfnewwindow=true,
pdftitle={Howto}, % <== title
pdfsubject={PDF document}, % <== subject
pdfauthor={Donald Duck},%
pdfkeywords={PDF, Hyperref, LaTeX, pdfLaTeX},
pdfcreator={PDF-Generator},%
pdfproducer={latex-pdftex}
}
%----------------------------------------------------------------------------%
...
Anpassungen sind erwünscht ... (Mit VTeX zu kompilieren, geht nicht. hier ist noch eine andere Konfiguration indiziert.)
edico

blubb
11-01-2005, 12:03
Ich denke, tex und pdftex benötigen unterschiedliche Optionen. Eigentlich sollten die Pakete selbst in der Lage sein, das zu erkennen.

Ich würde das Gegenteil empfehlen.
Hast du ein Paket, das eine Option pdftex bekommt? Dann die Option entfernen.

Meine Glaskugel sagt mir, das du hyperref mit der Option pdftex ruft (oder die Option aus der Klasse weitergibst.

\documentclass[pdftex]{scrartcl}
\usepackage[pdftex]{hyperref}
Damit hebelst du die Fähigkeit der Pakete zur Selbsteinstellung aus. Bisher war das kein Problem, weil die Option zufällig passte, jetzt nimmst du latex, sagst aber hyperref, es soll sich wie bei pdftex verhalten.

Besser: Keine Option pdftex (oder dvi2ps, dvipdfm o.ä.) sondern die entscheidung den Paketen selbst überlassen.

Boron
11-01-2005, 12:59
Nie gehört von der Option pdftex.

Meine Präamble sieht so aus:
\documentclass[12pt]{scrreprt}
\usepackage{ngerman} % für neue Rechtschreibung und Trennung
\usepackage{mathptmx} % für Schrift mit Serifen
\usepackage[scaled=.90]{helvet} % für Schrift ohne Serifen
\usepackage{courier} % für Schrift mit konstanter Breite
\usepackage[latin1]{inputenc} % für direkte Benutzung von Umlauten
\usepackage{hyperref} % für Links im Inhaltsverzeichnis und sonstige
% Kreuzverweise
\usepackage{graphicx} % für Bilder
\usepackage{tabularx} % für Zeilenumbruch in Tabellen
\usepackage{enumerate} % für individuelle "Aufzählungen"
\usepackage{vaucanson-g} % für Zeichnungen von Automaten

\author{Michael Zwick}
\date{1. November 2004}
\title{Code Generierung für Eingebettete Systeme aus UML Zustandsdiagrammen}
% Numeriere 4 Ebenen tief (bis subsubsection) ...
\setcounter{secnumdepth}{4}
% ... und nimm 1 Ebene in das Inhaltsverzeichnis auf.
\setcounter{tocdepth}{1}

\hypersetup{
pdftitle={Code Generierung für Eingebettete Systeme aus UML
Zustandsdiagrammen},
pdfauthor={Michael Zwick},
pdfsubject={Code Generierung für Eingebettete Systeme aus UML
Zustandsdiagrammen},
pdfkeywords={Code, Generierung, Embedded, Eingebettet, System, Statecharts,
Zustandsdiagramme, UML},
bookmarksnumbered=true, % Kapitelnummer in Bookmarks schreiben
bookmarksopen=false, % Bookmark Baum nicht aufklappen
pdfpagemode=UseOutlines, % PDF-Viewer startet ohne Inhaltsverzeichnis et.al.
pdfstartview=FitB, % PDF-Viewer benutzt beim Start bestimmte
% Seitenbreite
pdfborder=000, % Keine farbigen Rahmen um Links
}

\bibliographystyle{alphadin}

edico
11-01-2005, 14:05
[1]
... und wenn du die Offerte, die eine problemlose Compilation sowohl mit pdf(la)tex als eben auch mit (la)tex, dvips, ps2pdf zulässt, nicht ausprobieren willst, dann änderst du deinen Code zum Compilieren mit tex so:
\usepackage[ps2pdf]{hyperref}
und setzt diese package-Zeile vor die mit hypersetup.
Es wird dazu geraten, hyperref als letztes package zu laden.
Somit z.B. latex, dvips, ps2pdf
[2]
Nochmal: pdftex meint hier cmd pdflatex.
edico

Boron
11-01-2005, 14:31
Das Paket vaucanson-g ist der Grund warum ich nicht direkt mit pdflatex.exe von der tex-Datei zum pdf konvertieren kann.

Deshalb lasse ich mit latex.exe von *.tex nach *.dvi konvertieren.
Im dvi sind die Links noch enthalten.

Dann mit dvips.exe von *.dvi nach *.ps
Keine Ahnung wie ich mit den Viewer GSView prüfen kann ob die Links noch da sind?

Zum Schluss mit GhostScript gswin32c.exe von *.ps nach *.pdf.
Im pdf sind die Links weg!

Das alles mache eigentlich der TeXnicCenter-Editor unter Windows.

Ich habe auch mal von Hand mit ps2pdf.exe den letzen Schritt gemacht, aber es gibt keine Links im pdf.
Auch das setzen der \usepackage{hyperref} Zeile bringt nicht, ob mit oder ohne [ps2pdf] als Zusatz.

[edit]
Ich sehe gerade, dass venn ich [ps2pdf] zusätzlich beim \usepackage{hyperref} nutze, die Erzeugung des pdfs bei der Inhaltsangabe abbricht. Alles vor der Inhaltsangabe (Titelblatt usw.) ist da, aber alles ab der Inhaltsangabe (inklusive) fehlt.

edico
12-01-2005, 09:00
Alles ärgerlich! Es liegt AFAIK an diesem package vaucanson-g. Ich kann ansonsten sowohl mit tex als auch mit pdftex für deinen Code Bookmarks replizieren ... Dieses package kenne ich nicht; warum diese Inkompatibilität auftaucht: ?
edico

blubb
12-01-2005, 09:15
Wo ich das von Edico gerade lese:
-> Reihenfolge der Pakete ändern.
hyperref definiert Makros um (es muss ja zusätzliche Informationen zum erstellen der Links haben).

Wenn vaucanson-g die Makros auch ändert, werden die hyperref-Änderungen auch wieder überschrieben.

Wird hyperref als letztes geladen sollte es klappen (In der Hoffnung, das hyperref die Makros so umdefiniert, das die Funktion von vaucanson-g erhalten bleibt -> Probieren).

Es gibt aber Pakete, die schlicht nicht mit hyperref zusammenarbeiten.

edico
12-01-2005, 09:35
... also nochmal ...
ich schlage dir vor, folgendes zu versuchen:
\usepackage[dvips]{hyperref}
und aus dem \hypersetup{...} pdfborder=000 auszukommentieren.
Hier scheint doch ein bug mit tex zu stecken.
...
ich habe das vcanson-g mal geladen und so werden auch links in PDF produziert mit latex foo && dvips foo.dvi && ps2pdf foo.ps:
...
\documentclass[12pt]{scrreprt}
\usepackage{ngerman} % für neue Rechtschreibung und Trennung
\usepackage{mathptmx} % für Schrift mit Serifen
\usepackage[scaled=.90]{helvet} % für Schrift ohne Serifen
\usepackage{courier} % für Schrift mit konstanter Breite
\usepackage[latin1]{inputenc} % für direkte Benutzung von Umlauten
\usepackage{graphicx} % für Bilder
\usepackage{tabularx} % für Zeilenumbruch in Tabellen
\usepackage{enumerate} % für individuelle "Aufzählungen"
\usepackage{vaucanson-g} % für Zeichnungen von Automaten
\usepackage{blindtext}
\author{Michael Zwick}
\date{1. November 2004}
\title{Code Generierung für Eingebettete Systeme aus UML Zustandsdiagrammen}
% Numeriere 4 Ebenen tief (bis subsubsection) ...
\setcounter{secnumdepth}{4}
% ... und nimm 1 Ebene in das Inhaltsverzeichnis auf.
\setcounter{tocdepth}{1}
\usepackage[dvips]{hyperref}
%\usepackage{hyperref}
\hypersetup{
pdftitle={Code Generierung für Eingebettete Systeme aus UML Zustandsdiagrammen},
pdfauthor={Michael Zwick},
pdfsubject={Code Generierung für Eingebettete Systeme aus UML Zustandsdiagrammen},
pdfkeywords={Code, Generierung, Embedded, Eingebettet, System, Statecharts, Zustandsdiagramme, UML},
bookmarksnumbered=true, % Kapitelnummer in Bookmarks schreiben
bookmarksopen=false, % Bookmark Baum nicht aufklappen
pdfpagemode=UseOutlines, % PDF-Viewer startet ohne Inhaltsverzeichnis et.al.
pdfstartview=FitB, % PDF-Viewer benutzt beim Start bestimmte Seitenbreite
% pdfborder=000, % Keine farbigen Rahmen um Links
}
\bibliographystyle{alphadin}
\begin{document}
\blindtext[1]
\url{http://www.mrunix.de/forums/forumdisplay.php?s=&daysprune=&f=38}
\end{document}
edico

Boron
12-01-2005, 13:36
Es klappt, es klappt. Juhuu :)!
Das \usepackage[dvips]{hyperref} ist die Lösung.

Vielen Dank.