verlinktes Inhaltsverzeichnis, TeXnicCenter

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


faf32005
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Do 18. Dez 2008, 15:38
Wohnort: Holzheim

verlinktes Inhaltsverzeichnis, TeXnicCenter

Beitrag von faf32005 »

Hallo zusammen,

bin LaTeX-Neuling, habe aber vor meine Diplomarbeit in LaTex zu schreiben. Dabei habe ich Probleme beim Erstellen eines verlinkten Inhaltsverzeichnisses. Habe schon sämtliche Bücher und Tutorials, Vorlagen usw. durchsucht, habe aber nichts hilfreiches gefunden. wahrscheinlich bin ich nur zu blind :)

Hier mein Problem:
  • - Inhaltsverzeichnis teilweise falsch verlinkt, z.B. beim Klick auf Kapitel 1 wird auf das Tabellenverzeichnis gesprungen.
    - Lesezeichen im pdf falsch verschachtelt, im Inhaltsverzeichnis aber richtig, siehe screenshot vom pdf.jpg
hier ein Auszug aus meinem Code:
\documentclass[pdftex,12pt,a4paper,titlepage,oneside,chapterprefix,idxtotoc,liststotoc,bibtotoc]{scrbook}
\usepackage[pdftex]{thumbpdf}
\usepackage[pdftex]{graphicx}
\usepackage[pdftex]{hyperref}
\usepackage{pdfpages}
\pdfoutput=1
\pdfcompresslevel=9 
\DeclareGraphicsExtensions{.pdf,.jpg,.png}

%\includeonly{}

% common preamble for both latex kinds
\usepackage{ngerman}  %neue deutsche Rechtschreibung
\usepackage{a4}			% A4 Papier einstellen
\usepackage[latin1]{inputenc}	% ermöglicht die direkte Eingabe von deutschen Umlauten
\usepackage[german]{varioref}

\usepackage{ae}			% Vektorschriftarten verwenden (bessere Bildschirmqualität)
\usepackage[T1]{fontenc}	% T1 Schriften verwenden

\usepackage{moreverb}
\usepackage{fancyhdr}

\input{settings}

%% Header-Layout
\pagestyle{fancy}
\addtolength{\headwidth}{\marginparsep}
\headheight=15pt
\fancyhf{}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\rhead{\rightmark}
\renewcommand{\headrulewidth}{0.4pt}
% footer
\rfoot{\thepage}

%redefine plain pagestyle - used for chapter pages.
\fancypagestyle{plain}{
  \fancyhf{}
  \rfoot{\thepage}
  \renewcommand{\headrulewidth}{0pt}
}

%------ the real document begins here ------
\begin{document}

\pagenumbering{roman}
%------ preface, table of contents, summary ------
\include{titelblatt}
\include{vorwort}

%------ Verzeichnisse ---------
\pdfbookmark{\contentsname}{tableofcontents}
\tableofcontents
\listoffigures
\listoftables
\newpage


%------ text of diploma thesis ------
\pagenumbering{arabic}
\chapter{Kapitelname}
xc
\section{Überschrift 1. Ordnung}
xc
\subsection{Überschrift 2. Ordnung}
xc
\subsubsection{Überschrift 3. Ordnung}
xc
\chapter{Theoretische Grundlagen}
blablabla

\section{Allgemeines und Historisches}
trallalla

\begin{itemize}
 \item Punkt 1
 \item Punkt 2
 \item Punkt 3
\end{itemize}

\section{So und so}
wäre für jeden Tipp dankbar.

edit: Versionen:
MikTex complete 2.7.2960
TeXnicCenter 1Beta7.50

Grüße
Dateianhänge
screenshot vom pdf.jpg
screenshot vom pdf.jpg (140.41 KiB) 8242 mal betrachtet
faf32005

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2534
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Verlinkung im Dokument, hyperref

Beitrag von Stefan Kottwitz »

Hallo,

das angesprochene Problem betrifft die Verlinkung und die bookmarks, für beides ist hyperref verantwortlich. hyperref sollte, bis auf Ausnahmen, als letztes Paket geladen werden, da es Makros anderer Pakete für die Verlinkung u.a. redefiniert. Das kann Deine Probleme evtl. bereits beheben. Schreibe
\usepackage{hyperref}
erst nach dem Laden der anderen Pakete.

Ganz allgemein noch ein paar Tipps:
  • die Option pdftex kannst Du beim Laden der Dokumentklasse und der anderen Pakete (graphicx, hyperref, ...) weglassen, das sollte automatisch erkannt werden,
  • \DeclareGraphicsExtensions ist unnötig,
  • \usepackage{ngerman} würde ich ersetzen durch
    \usepackage[ngerman]{babel}
  • das Paket a4 ist veraltet bzw. es gibt etliche verschiedene Versionen davon, ich würde es nicht verwenden, stattdessen die Option a4paper, die Du bereits nutzt, sowie typearea oder geometry nutzen,
  • das Paket ae würde ich auch nicht laden, stattdessen eine T1 codierte Schrift einstellen, Du benutzt ja auch \usepackage[T1]{fontenc}.
  • fancyhdr funktioniert natürlich, mit scrbook würde ich lieber scrpage2 stattdessen verwenden, das integriert sich besser mit den KOMA-Klassen.
  • l2tabu.pdf könnte Dir gute Hinweise geben, auch im Sinn der obengenannten Punkte.
Viele Grüße,

Stefan

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: verlinktes Inhaltsverzeichnis, TeXnicCenter

Beitrag von KOMA »

faf32005 hat geschrieben:bin LaTeX-Neuling, habe aber vor meine Diplomarbeit in LaTex zu schreiben.
Darf ich davon ausgehen, dass Du dabei eine Vorlage verwendest, die Dir irgend jemand angeblich freundlicherweise überlassen hat? Derjenige hat Dir einen Bärendienst erwiesen. Bevor ich mich auch nur annähernd mit Deinem eigentlichen Problem befassen konnte, bohrten sich schon meine Fußnägel durch die Oberseite meiner Socken und Schlappen. Vorab: In meiner Signatur findest Du einen Link auf wichtige Dokumente. Im entsprechenden Wiki-Eintrag ist dann auch "Das LaTeX 2e Sündenregister" zu finden. Das solltest Du unbedingt lesen. Ich werde bei den Kommentaren zu Deiner Präambel nur per »siehe l2tabu« auf selbiges verweise, wenn man etwas nicht tun sollte.

Als grundsätzlicher Tipp sei noch gegeben: Wird alles aus der Dokumentpräambel raus, von dem Du nicht weißt was es macht und ob Du es brauchst. Baue dann jeweils nur das ein, was Du wirklich brauchst. Damit vermeidest Du Unfug von anderen Leuten zu übernehmen, der Dir am Ende sogar schwere Probleme bereiten könnte.
faf32005 hat geschrieben:
\documentclass[pdftex,12pt,a4paper,titlepage,oneside,chapterprefix,idxtotoc,liststotoc,bibtotoc]{scrbook}
Die Option pdftex ist in 99% der Fälle überflüssig und eher störend. Praktisch alle Pakete können pdf-Ausgabe durch PDFTeX (und außerdem auch durch VTeX oder XeTeX) selbst erkennen und dann entsprechen reagieren, wenn man ihnen nicht etwas anderes vorschreibt. Empfehlenswert wäre jedoch die Option pagesize.

Einseitige Bücher (Option oneside) sind extrem ungewöhnlich. Vermutlich ist also Deine Diplomarbeit kein Buch, sondern soll ein Bericht werden. Also wäre vermutlich die Klasse scrreprt besser.

Du hast sämtliche Optionen in alter Schreibweise. Falls Du tatsächlich noch ein altes KOMA-Script verwendest, empfehle ich ein Update auf die aktuelle Version 3.02a, jedenfalls auf KOMA-Script 3. Nicht nur, dass das viel mehr kann, es hat auch eine wesentlich verbesserte Anleitung, die aktuelle Auflage des Buches bezieht sich darauf und es gibt noch Support dafür (für die 2er-Versionen gibt es nämlich keinen Support mehr). Ich empfehle dann, alle KOMA-Script-spezifischen Optionen in der neuen key=value-Schreibweise anzugeben. Damit schaltet KOMA-Script nämlich nicht mehr automatisch in den Kompatibilitätsmodus zu KOMA-Script 2.9t, sondern verwendet die neusten Verbesserungen auch dann, wenn sie sich auf den Umbruch auswirken und diesen ggf. verbessern. Alternativ besteht die Möglichkeit Kompatibilität zu einer bestimmten Version oder der neusten Version durch Angabe einer passenden Einstellung für Option version ganz am Ende der Optionenliste zu erzwingen.
faf32005 hat geschrieben:
\usepackage[pdftex]{thumbpdf}
\usepackage[pdftex]{graphicx}
\usepackage[pdftex]{hyperref}
Siehe oben. Es ist nicht sinnvoll, die Option pdftex bei diesen Paketen explizit anzugeben. Außerdem werden globale Optionen ohnehin an alle Pakete weitergereicht, die diese Option kennen. Du erschwerst Dir durch die mehrfache explizite Angabe die Arbeit - insbesondere, wenn das Dokument eben doch einmal nicht mit pdftex als PDF erzeugt werden soll.
faf32005 hat geschrieben:
\pdfoutput=1
Du machst das Dokument damit dann endgültig inkompatibel. PDF-Augabe mit PDFLaTeX erreicht man dadurch, dass man eben pdflatex statt latex verwendet. Hier noch einmal explizit PDF-Ausgabe zu verlangen, ist keine gute Idee.
faf32005 hat geschrieben:
\pdfcompresslevel=9
Das ist eventuell bereits die Voreinstellung. Du solltest diese Anweisung, wenn Du sie verwenden möchtest, auf jeden Fall absichern. Da Du KOMA-Script verwendest, geht das einfach mit:
\ifpdfoutput{\pdfcompresslevel=9[}{}
Will man das unabhängig von KOMA-Script lösen, so verwendet man das Paket ifpdf (siehe dessen Anleitung).
faf32005 hat geschrieben:
\DeclareGraphicsExtensions{.pdf,.jpg,.png}
Von ganz wenigen Spezialfällen, die eigentlich nur bei Experten auftreten, abgesehen, ist es nie sinnvoll, graphics selbst zu sagen, welchen Dateierweiterungen es kennen soll. Das macht nämlich der Ausgabetreiber oder graphics.cfg bereits automatisch. Mit solchen Deklarationen handelt man sich fast nur Nachteile ein. So werden in Deinem Fall beispielsweise nun keine ".jpeg", ".JPG", ".JPEG", ".PNG", ".PDF" mehr erkannt. Wirf die Zeile komplett raus!
faf32005 hat geschrieben:
\usepackage{ngerman}  %neue deutsche Rechtschreibung
Das ist nicht falsch, allerdings wird ngerman seit Jahren nicht mehr aktiv gepflegt. Außerdem ist es sicher kein Fehler, sich gleich an ein Paket zu gewöhnen, das auch mit anderen Sprachen umgehen kann. Ich empfehle daher:
\usepackage[ngerman]{babel]
faf32005 hat geschrieben:
\usepackage{a4}			% A4 Papier einstellen
Siehe l2tabu. In der Regel macht KOMA-Script schon in der Voreinstellung einen min. genauso guten Seitenspiegel. Einfluss kann man zusätzlich über die Optionen DIV und BCOR nehmen, wobei KOMA-Script noch immer viel typografischen Wissen einbringt. Maximalen Einfluss kann man mit dem Paket geometry nehmen.
faf32005 hat geschrieben:
\usepackage{ae}			% Vektorschriftarten verwenden (bessere Bildschirmqualität)
Bereits der Kommentar ist komplett falsch. ae ist ein Paket, das den 7-Bit-Font Computer Modern im OT1-Encoding, bei dem beispielsweise Umlaute durch zwei Zeichen zusammengesetzt werden müssen, als virtuellen 8-Bit-Font im T1-Encoding einbindet. Dadurch wird lediglich die Trennung verbessert. Allerdings handelt man sich damit auch das Problem ein, dass eben manche Zeichen, die man eingibt nicht dargestellt werden. Es ist ein uralter Hack, der längst überholt ist. Inzwischen gibt es nämlich mit Latin Modern eine überarbeitete Version von Computer Modern, die im T1-Encoding vorliegt. Also einfach:
\usepackage[T1]{fontenc}	% 8-Bit-Codierung der Fonts verwenden
\usepackage{lmodern} % neue Quasi-Standard-Schrift verwenden
und das Ergebnis wird deutlich besser.
faf32005 hat geschrieben:
\usepackage{moreverb}
Das Paket wird häufig von Leuten verwendet, um Quelltext einzubinden. Das Paket listings ist dem aber meilenweit überlegen.
faf32005 hat geschrieben:
\usepackage{fancyhdr}
Das ist kein Fehler, aber scrpage2 ist deutlich besser auf KOMA-Script-Klassen abgestimmt. scrpage2 ist ebenfalls in der KOMA-Script-Anleitung dokumentiert.
faf32005 hat geschrieben:
\input{settings}
Du bindest hier eine externe Datei ein, in der sich vermutlich weitere Einstellungen verbergen. Eventuell sind darin ebenfalls viele nicht empfehlenswerte Dinge enthalten. In jedem Fall fehlt uns diese Datei zu einem vollständigen Minimalbeispiel. Solange externe Dateien geladen werden, die nicht verfügbar sind, ist ein Beispiel nicht vollständig und ein Problem im Zweifelsfall nicht reproduzierbar.
faf32005 hat geschrieben:
\headheight=15pt
Längen setzt man in LaTeX mit \setlength. Du verwendest hier eine Low-Level-TeX-Methode. Es empfiehlt sich gerade dem Anfäger, nur dann Low-Level-TeX zu verwenden, wenn dies zwingend notwendig ist. Siehe l2tabu.
faf32005 hat geschrieben:
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
KOMA-Script definiert \sectionmark bereits passend. Durch die Umdefinierung werden Möglichkeiten und Automatismen von KOMA-Script deaktiviert. Sollte man nur machen, wenn man ganz genau weiß, was man tut.
faf32005 hat geschrieben:
\pdfbookmark{\contentsname}{tableofcontents}
\tableofcontents
Im Zweifelsfall, nämlich in dem Fall, dass die aktuelle Seite noch nicht ausgegeben wurde, beginnt \tableofcontents eine neue Seite (im doppelseitigen Modus eventuell sogar eine neue rechte Seite). Deshalb könnte im Extremfall die Bookmark auf einer ganz anderen Seite stehen. Solange die letzte Anweisung davor ein \iinclude bleibt, wird das zwar nicht passieren, trotzdem empfehle ich, sich daran zu gewöhnen, hier
\clearpage% ACHTUNG: Bei doppelseitigen Satz \cleardoublepage verwenden!
\pdfbookmark{\contentsname}{tableofcontents}
\tableofcontents
zu verwenden. Man könnte das Problem auch über entsprechende Umdefinierung über die Präambel lösen. Aber das führt an dieser Stelle etwas zu weit.

Mehr kann ich aus Deinem Beispiel aktuell nicht herausholen, das es eben kein vollständiges Minimalbeispiel, sondern nur ein Code-Ausschnitt ist. Ich hoffe, dass ich Dir trotzdem etwas weiterhelfen konnte. Vor der nächsten Frage, lies bitte den goLaTeX-Knigge (Link in meiner Signatur) und beachte die Hinweise zu Minimalbeispielen.

Es ist übrigens ein häufiger Fehler von LaTeX-Neulingen, erst einmal die Prämabel vollzustopfen und dort alle möglichen Einstellungen auszuprobieren. Das ist man von Textverarbeitungen so gewohnt, weil es dort nicht leicht ist, bei umfangreichen Dokumenten, bei denen man eventuell auch noch ordentlich getrickst hat, nachträglich etwas am Layout zu ändern. Bei LaTeX ist das anders. Notfalls geht in der Regel sogar der Wechsel der Klasse recht schnell. Dinge wie Schriftwahl, Trennung, Kopf- und Fußzeilen sind fast immer etwas, was man ganz am Ende machen kann. Ich kenne bisher nur ein einziges Dokument, das bezüglich des Umbruchs so sensibel ist, dass mir jedesmal graut, wenn ich etwas am Layout ändere. Das ist ausgerechnet das KOMA-Script-Buch und liegt schlicht daran, dass dort im Text sehr viel nicht trennbares Material von erheblicher Länge vorkommt. Deshalb noch einmal mein Hinweis: Präambel entrümpeln, auf den den Inhalt konzentrieren.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

PS: Ich habe das Thema verschoben, weil es mit dem Editor absolut nichts zu tun hat.

faf32005
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Do 18. Dez 2008, 15:38
Wohnort: Holzheim

Beitrag von faf32005 »

erstmal: vielen Dank für eure Antworten und Vorschläge. und ja, das war ne Vorlage (von meiner FH).
ich hoffe ich verstoße jetzt nicht gegen die goLatex.de-Knigge.

ich habe jetzt auf die neueste Version von Koma-Script geupdated. Leider bekomme ich nun nur noch ne Fehlermeldung:

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

die datei befindet sich aber hier:
C:\Programme\MiKTeX 2.7\tex\latex\koma-script

was mache ich jetzt falsch?

achja, hier der code aus settings.tex:
\hypersetup{
 pdfauthor={xxx},
 pdftitle={xxx},
 pdfsubject={xxx, xxx},
 pdfkeywords={wort1, wort2},
 backref=true,
 pagebackref=true,
 hyperfigures,
 hyperindex,
 colorlinks,
 bookmarksopen,
 bookmarksopenlevel=1,
 bookmarksnumbered,
 pageanchor,
 plainpages=false,
 urlcolor=black,
 menucolor=black,
 citecolor=black,
 anchorcolor=black,
 filecolor=black,
 linkcolor=black,
 colorlinks=true,
}

\setlength{\parindent}{1em}	% Einrücktiefe bei Absätzen einstellen
\setlength{\parskip}{1.5ex}	% Absatzabstand einstellen

\setcounter{secnumdepth}{3}	% Hier stellt man ein bis zu welcher Ordnung Überschriften nummeriert werden (Beginnt bei 0 (Kapitel) und geht bis 5 (Subparagraph)
\setcounter{tocdepth}{3}	% Hier stellt man ein bis zu welcher Ordnung Überschriften ins Inhaltsverzeichnis übernommen werden (ebenfalls 0 - 5)
faf32005

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2534
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

scrbase.sty nicht gefunden

Beitrag von Stefan Kottwitz »

Hallo,

versuche eine Aktualisierung Deiner Paketdatenbank: Startmenü, MiKTeX Settings bzw. Options, dort klicke den Button "Refresh FNDB".

Stefan

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

faf32005 hat geschrieben:
\setlength{\parindent}{1em}	% Einrücktiefe bei Absätzen einstellen
\setlength{\parskip}{1.5ex}	% Absatzabstand einstellen
Wer das gemacht hat, hat von Typografie offenbar so wenig Ahnung wie von LaTeX. Man markiert Absätze entweder durch Erstzeileneinzug oder durch Absatzabstand, aber niemals durch beides. Ich empfehle den Erstzzeileneinzug (auch Absatzeinzug genannt). In diesem Fall wirft man einfach beide Zeilen weg, weil die erste Zeile bereits der Voreinstellung von KOMA-Script entspricht. Will man stattdessen Absatzabstand, sollte man die KOMA-Script-Option parskip mit dem gewünschten Wert (hier vermutlich full) verwenden. Zum manuellen Setzen von \parindent und \parskip siehe ebenfalls l2tabu.

Warum ausgerechnet die paar Zeilen in eine eigene Datei ausgelagert wurden, statt sie ebenfalls in die reichlich bestückte Präambel aufzunehmen, ist auch nicht nachzuvollziehen ...

faf32005
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Do 18. Dez 2008, 15:38
Wohnort: Holzheim

Beitrag von faf32005 »

danke für eure hilfe. durch eure vorschläge funktioniert jetzt alles und sieht auch so aus, wie es sein soll. danke
faf32005

Antworten