PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abstract in mehreren Sprachen und toc im toc



greenmoon
10-08-2021, 13:38
Hi,

für meine Arbeit brauche ich einen abstract sowohl auf Deutsch als in Englisch. Die Abstracts und das toc hätte ich dann aber auch gerne im toc. Vom Prinzip habe ich dafür auch einen Weg gefunden um das hinzubekommen, abstracts und toc sind mit richtiger Seitenzahl im toc eingetragen. Wenn ich aber im toc auf den Link "Kurzbeschreibung" oder "abstract" klicke lande ich auf der Titelseite. Selbiges gilt auch wenn ich im pdf reader (evince: Seitenleiste Inhalt) auf die beiden Einträge klicke. Also im toc erkennt LaTeX dass Seite 3 bzw 5 richtig sind, verlinkt dann aber irgendwie auf Seite 1? Gibt es eine bessere Lösung mit richtigem Link?



\documentclass[bibliography=totoc, listof=totoc, numbers=noenddot]{scrbook}
\setuptoc{toc}{totoc}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english, ngerman]{babel}
\usepackage{hyperref}

% abstract not defined in book -.-
\newenvironment{abstract}{}{}
\usepackage{abstract}

\title{Fancy title - crazy subtitle}
\author{Me, myself and I}
\date{\today}

\begin{document}

\maketitle

%%%%% abstracts in german and english
\selectlanguage{ngerman}
\renewcommand{\abstractname}{Kurzbeschreibung}
\begin{abstract}
\addcontentsline{toc}{chapter}{Kurzbeschreibung}
Cooler deutscher Abstract
\end{abstract}

\selectlanguage{english}
\begin{abstract}
\addcontentsline{toc}{chapter}{Abstract}
crazy english abstract
\end{abstract}

\tableofcontents

\chapter{First chapter}
some text

\chapter{Second chapter}
more text

\end{document}


Edit: Für toc im toc statt tocbibind jetzt auf \setuptoc{toc}{totoc} gewechelt

Edit2: Wow, manchmal findet man Lösungen erst nachdem man um Hilfe gefragt hat. Wenn ich \cleardoublepage\phantomsection\addcontentsline{to c}{chapter}{Abstract} vor das \begin{abstract} schreibe stimmt die Seitenzahl im toc und auch der Link. Komisch nur weil ich gelesen hatte dass das addcontentsline im abstract block stehen muss damit die Seitenzahl stimmt. Es funktioniert jetzt gerade alles (soweit ich das sehe), ich wäre aber trotzdem noch daran interessiert ob das auch eine gute Lösung ist.

rais
11-08-2021, 11:51
Es sollte genügen, den \phantomsection vor den jeweiligen \addcontents-Befehlen innerhalb der dazugehörigen abstract-Umgebung zu setzen, dann sparst Du Dir den \cleardoublepage.
Alternativ könntest Du das abstract-Paket anweisen, den Eintrag im TOC selbst vorzunehmen, da müsste besagter \phantomsection allerdings auch noch ergänzt werden:


\documentclass[bibliography=totoc, listof=totoc, numbers=noenddot]{scrbook}
\setuptoc{toc}{totoc}

%\usepackage[utf8]{inputenc} ist inzwischen nicht mehr notwendig
\usepackage[T1]{fontenc}
\usepackage[english, ngerman]{babel}
\usepackage{hyperref}%<-- muß das wirklich vor abstract geladen werden?

% abstract not defined in book -.-
\newenvironment{abstract}{}{}
\usepackage[addtotoc]{abstract}%<-- Option addtotoc ergänzt

\makeatletter
\renewcommand{\put@bsintoc}{%
\ifadd@bstotoc
\ifnumber@bs\else
\phantomsection%<--
\@ifundefined{chapter}{\addcontentsline{toc}{secti on}{\abstractname}}{%
\addcontentsline{toc}{chapter}{\abstractname}}
\fi
\fi
}
\makeatother

\addto\captionsngerman{% Kurzbeschreibung statt Zusammenfassung:
\renewcommand*\abstractname{Kurzbeschreibung}%
}

\title{Fancy title - crazy subtitle}
\author{Me, myself and I}
\date{\today}

\begin{document}

\maketitle

%%%%% abstracts in german and english
%\selectlanguage{ngerman} ist hier seit Dokumentbeginn aktiv
\begin{abstract}
Cooler deutscher Abstract
\end{abstract}

\selectlanguage{english}
\begin{abstract}
crazy english abstract
\end{abstract}

\tableofcontents

\chapter{First chapter}
some text

\chapter{Second chapter}
more text

\end{document}

Ist vllt etwas aufwändiger in der Präambel, dafür deutlich einfacher im Text;-)

Hier lohnt vllt auch ein entsprechender Hinweis an den Author des abstract-Pakets ...

VG

greenmoon
12-08-2021, 13:54
Hi,

vielen dank für die Antwort und alle Anmerkungen zum Beispiel.
Ich schreib dem Author mal ne mail.