Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Abstract in mehreren Sprachen und toc im toc

  1. #1
    Registrierter Benutzer
    Registriert seit
    15.09.2011
    Beiträge
    15

    Abstract in mehreren Sprachen und toc im toc

    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?

    Code:
    \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.
    Geändert von greenmoon (10-08-2021 um 14:10 Uhr)

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.840
    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:
    Code:
    \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}{section}{\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
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    15.09.2011
    Beiträge
    15
    Hi,

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

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •