Sie sind hier

Author unter Überschrift und im Inhaltsverzeichnis

Hallo zusammen,

da ich in ein paar Tagen mit meiner Diplorbeit anfange erstelle ich zur Zeit eine Vorlage. Bei der Arbeit handelt es sich um eine Doppel Diplomarbeit. Es gibt also zwei Autoren.

Jedes Kapitel, Unterkapitel und Unterunterkapitel (\chapter, \section, \subsection) müssen den Authorennamen enthalten.

Die Überschriften sollen genauso bleiben wie sie sind jedoch soll der Authorname direkt in kleiner kursiver Schrift unter der Überschrift stehen. Dabei bündig mit der Überschrift und nicht mit der Kapitelnummer gesetzt werden. Weiterhin soll der Authorname auch im Inhaltsverzeichnis stehen.

Im Forum habe ich folgenden Link gefunden, jedoch bekomme ich es nicht hin das Beispiel anzupassen.

http://www.komascript.de/node/394

Ich hoffe Ihr könnt mir helfen.

Vielen Dank
Gruß

Stephan

AnhangGröße
Package icon authormode.zip2.09 KB
Bild von Markus Kohm

Wenn Du uns verrätst, was genau Du denn bereits geschafft hast und was genau noch fehlt. Ich gehe mal davon aus, dass der Kapitelteil erledigt ist und Dir Erweiterungen für \section und \subsection fehlen. Hier ist das Problem, dass es keine Anweisung gibt, die automatisch direkt danach ausgeführt wird. Man wird nicht umhin kommen, hier direkt in die Befehle einzugreifen. Wie genau verrate ich dann in einem späteren Beitrag. Bevor ich mich an die Arbeit mache, wüsste ich nämlich gerne, ob meine Annahme richtig ist. Außerdem wüsste ich gerne:

  1. Soll bei absolut jeder Überschrift der Autor angegeben werden?
  2. Werden nicht nummerierte Überschriften mit Autorangabe benötigt?
    Wenn ja: Auf welchen Ebenen?
  3. Werden nicht nummerierte Überschriften ohne Autorangabe benötigt?
    Wenn ja: Auf welchen Ebenen (Hinweis: Auf der Kapitelebene werden die schonmal für das Inhaltsverzeichnis benötigt)?
  4. Werden Kolumnentitel gewünscht?
    Wenn ja: Was soll genau wo stehen?
  5. Werden unterhalb von \subsection weitere Ebenen benötigt?

Du wirst sicher verstehen, dass ich mich gerne auf das beschränken will, was wirklich notwendig ist, das aber möglichst auch gleich beim ersten Mal drin haben will, damit ich nicht dreimal neu anfangen muss.

Hallo,

vielen Dank für die hohe Hilfsbereitschaft. Ich hoffe das ich Sie nicht verärgere wenn ich sagen muss, dass ich noch gar nichts zeigen kann.

Wie in meinem Beitrag schon erwähnt, habe ich versucht das Minimalbeispiel zu verstehen, bin aber leider daran gescheitert. Mir fehlt einfach der richtige Ansatz.

  1. Soll bei absolut jeder Überschrift der Autor angegeben werden?
    Eigentlich schon, ich dachte, dass man auch einen leeren String übergeben kann und so kein Author erscheinen würde, sollte das nicht möglich sein, ist eine Angabe Pflicht.
  2. Werden nicht nummerierte Überschriften mit Autorangabe benötigt? Wenn ja: Auf welchen Ebenen?
    Zunächst würden die nummerierten reichen, hätte ich für diese eine Lösung, käme es für mich auf einen Versuch an es mal selbst zu probieren.
  3. Werden nicht nummerierte Überschriften ohne Autorangabe benötigt? Wenn ja: Auf welchen Ebenen (Hinweis: Auf der Kapitelebene werden die schonmal für das Inhaltsverzeichnis benötigt)?
    Ja, mindestens Auf Ebene Chapter, da ich diese für Kapitel wie Danksagung und Eidesstattliche Erklärung nutze. Hier wäre eine Angabe völlig überflüssig.
  4. Werden Kolumnentitel gewünscht? Wenn ja: Was soll genau wo stehen?
    Wenn du damit meinst ob in der Kopfzeile der Author ebenfalls stehen soll, ja. Ich habe im Moment auf der linken Seite oben links den Chapter-Namen und auf der rechten oberen Seite den Section-Namen stehen. Ich dachte, dass der Authorname dann automatisch daneben geschrieben wird, weil er ja Teil der Überschrift ist.
  5. Werden unterhalb von \subsection weitere Ebenen benötigt?
    Evtl. noch \subsubsection. Zunächst reicht jedoch auch hier bis \subsection

Ich hoffe ich habe alle Unklarheiten beseitigen können und Sie haben noch genügend Motivation mir zu helfen.

Vielen Dank
Freundliche Grüße
Stephan

PS: Eine Diplomarbeit mit genau diesen modifizierten Überschriften habe ich vorliegen, leider nur im PDF Format, sodass ich keine LaTeX Quellen besitze. Es muss also irgendwie möglich sein.

[Admin-Edit:] Formatierung korrigiert.

Bild von Markus Kohm

... weil ich jetzt beschlossen habe, das ein wenig genereller anzugehen. Du wirst aber eine Lösung bekommen.

Bild von Markus Kohm

Ich habe jetzt mal etwas gebastelt, das zum einen aus einem Paket besteht, das die Gliederungsebenen von \section bis \subparagraph behandelt und etwas zusätzlichen Code, der die Ebene \chapter behandelt und dabei das Paket nutzt. Ich habe das mal zusammengepackt und hänge es an Deinen ersten Beitrag an (Anhänge zu Kommentaren sind nicht möglich). Schau es Dir an und sag mir, was Du anders haben willst oder war noch fehlt.

Zunächst einmal Vielen Dank,

Ich habe das Beispiel kopiert und kompilieren lassen und bekomme unzählige Warnings.

Grundsätzlich habe ich mir das Ganze genauso vorgestellt, jedoch gibt es folgende Probleme.

  1. Der Authorname soll im TOC neben der Überschrift stehen.
  2. Jede Überschrift hat einen eigenen Bookmarkeintrag. Auch hier soll der Authorname einfach direkt neben der Überschrift stehen.
  3. Der erste Bookmarkeintrag ist irgendwie falsch.
  4. Die Punkte kannst du im Folgenden Minimalbeispiel sehen

    \documentclass{scrreprt}
    \usepackage{blindtext}
    \usepackage{authormode}
    \usepackage[bookmarksopen,
    pdfstartview={Fit},
    colorlinks=true,
    linkcolor=blue,
    urlcolor=blue,
    citecolor=blue,  		
    plainpages=false,
    pdfpagelabels]{hyperref}              
    \KOMAoptions{authormode}
    \makeatletter
    \newlength{\authorindent}
    \newcommand*{\orig@chapterheadendvskip}{}
    \let\orig@chapterheadendvskip\chapterheadendvskip
    \newcommand*{\orig@chapter}{}
    \let\orig@chapter\chapter
    \renewcommand*{\chapter}{%
      \ifauthormode
        \if@openright\cleardoublepage\else\clearpage\fi
        \addcontentsline{toc}{chapterauthor}{\@author}%
      \else
        \addcontentsline{toc}{chapterauthor}{}%
      \fi
      \orig@chapter
    }
    \newcommand*{\l@chapterauthor}[2]{%
      \ifnum\c@tocdepth>-1\relax
        \ifx \relax#1\relax\else
          \vskip 1.0em \@plus\p@
          \vskip 2\baselineskip
          \vskip -2\baselineskip
          \textit{#1}\par\nobreak
          \vskip -1.0em \@plus -\p@\nobreak
        \fi
      \fi
    }
    \renewcommand*{\chapterheadendvskip}{%
      \ifauthormode
        \let\chapter@author\@author
        \markright{\chapter@author}%
        \settowidth{\authorindent}{{%
            \usekomafont{sectioning}\usekomafont{chapter}\chapterformat
        }}%
        \@hangfrom{\hspace*{\authorindent}}%
        \@authorvfont{\chapter@author}\par\nobreak
      \fi
      \noindent\par\nobreak\orig@chapterheadendvskip
    }
    \makeatother
    \begin{document}
    \title{test}
    \author{Man A}
    \KOMAoptions{authormode=false}
    \tableofcontents
    \KOMAoptions{authormode=true}
    \author{Author A}
    \chapter{Chapter}
    \section{Section}
    \subsection{Subsection}
    \author{Author B}
    \chapter{Chapter}
    \section{Section}
    \subsection{Subsection}
    \end{document}

    [Admin-Edit:] Formatierung angepasst.

Bild von Markus Kohm

Kommt ein Mann in ein Schuhgeschäft: »Meine Frau hat Geburtstag und ich möchte ihr gerne ein paar passende Schuhe zu ihrem neuen Kleid schenken.« – »Was ist das denn für ein Kleid?« – »Ein Frauenkleid.«

IST Zustand
************************************
Author A
1 Kapitel ................. 1

Author B
2 Kapitel ................. 2

SOLL Zustand
************************************
1 Kapitel Author A ........ 1
2 Kapitel Author B ........ 2

Wobei der Authorname natürlich kleiner als der Überschriftentext sein sollte

Bild von Markus Kohm

\documentclass{scrbook}
\usepackage{blindtext}
\usepackage{authormode}
\KOMAoptions{authormode}
\makeatletter
\newlength{\authorindent}
\newcommand*{\orig@chapterheadendvskip}{}
\let\orig@chapterheadendvskip\chapterheadendvskip
\newcommand*{\orig@chapter}{}
\let\orig@chapter\chapter
\renewcommand*{\chapter}{%
  \ifauthormode
    \if@openright\cleardoublepage\else\clearpage\fi
    \addcontentsline{toc}{chapterauthor}{\@author}%
  \else
    \addcontentsline{toc}{chapterauthor}{}%
  \fi
  \orig@chapter
}
\newcommand*{\l@chapterauthor}[2]{%
  \ifnum\c@tocdepth>-1\relax
    \ifx \relax#1\relax\else
      \vskip 1.0em \@plus\p@
      \vskip 2\baselineskip
      \vskip -2\baselineskip
      \textit{#1}\par\nobreak
      \vskip -1.0em \@plus -\p@\nobreak
    \fi
  \fi
}
\renewcommand*{\chapterheadendvskip}{%
  \ifauthormode
    \let\chapter@author\@author
    \markright{\chapter@author}%
    \settowidth{\authorindent}{{%
        \usekomafont{sectioning}\usekomafont{chapter}\chapterformat
    }}%
    \@hangfrom{\hspace*{\authorindent}}%
    \@authorvfont{\chapter@author}\par\nobreak
  \fi
  \noindent\par\nobreak\orig@chapterheadendvskip
}
\newcommand*{\toc@author}{}
\renewcommand*{\l@chapterauthor}[2]{\def\toc@author{#1}}
\let\l@sectionauthor\l@chapterauthor
\let\l@subsectionauthor\l@chapterauthor
\let\l@subsubsectionauthor\l@chapterauthor
\let\l@paragraphauthor\l@chapterauthor
\let\l@subparagraphauthor\l@chapterauthor
\newcommand*{\extend@l}[1]{%
  \expandafter\newcommand\expandafter*\csname orig@l@#1\endcsname{}%
  \expandafter\let\csname orig@l@#1\expandafter\endcsname
  \csname l@#1\endcsname
  \expandafter\renewcommand\expandafter*\csname l@#1\endcsname[1]{%
    \csname orig@l@#1\endcsname{##1%
      \ifx\toc@author\@empty\else
%        \ifx\toc@author\last@toc@author\else
          \global\let\last@toc@author\toc@author
          \enskip{\small\textit{(\toc@author)}}%
%        \fi
      \fi}%
  }%
}
\extend@l{chapter}
\extend@l{section}
\extend@l{subsection}
\extend@l{subsubsection}
\extend@l{paragraph}
\extend@l{subparagraph}
\makeatother
\begin{document}
\title{test}
\author{Man A}
\maketitle
\KOMAoptions{authormode=false}
\tableofcontents
\blinddocument
\KOMAoptions{authormode=true}
\blinddocument
\author{Man B}\expandafter\show\csname @author\endcsname
\blinddocument
\author{Man C}
\chapter{Chapter}
\blindtext
 
\author{Man D}
\section{Section A}
\blindtext
 
\author{Man E}
\section{Section B}
\blindtext
 
\author{Man F}
\subsection{Subsection}
\blindtext
 
\author{Man G}
\subsubsection{Subsubsection}
\blindtext
 
\author{Man H}
\paragraph{Paragraph}
\blindtext
 
\author{Man I}
\subparagraph{Subparagraph}
\blindtext
 
\end{document}

Die Bookmarks sind dabei aber komplett vermurkst und wenn man im Inhaltsverzeichnis auf die Autoren klickt, geht das ebenfalls in die Hose. Es fragt sich natürlich, wozu man bei einer Diplomarbeit überhaupt Hyperlinks und Bookmarks benötigt.

BTW: Wenn die beiden auskommentierten Zeilen aktiviert werden, werden nur Autorenwechsel angezeigt.

[Admin-Edit:] Formatierung angepasst.

Bild von Markus Kohm

die aber auch mit hyperref keine Probleme hat, wäre dann:

\documentclass{scrreprt}
\usepackage{blindtext}
\usepackage[bookmarksopen,
pdfstartview={Fit},
colorlinks=true,
linkcolor=blue,
urlcolor=blue,
citecolor=blue,                 
plainpages=false,
pdfpagelabels]{hyperref}              
\makeatletter
\g@addto@macro{\maketitle}{\def\author#1{\def\@author{#1}}}
\newcommand*{\extendsectlevel}[1]{%
  \expandafter\newcommand\expandafter*\csname saved@#1\endcsname{}%
  \expandafter\let\csname saved@#1\expandafter\endcsname\csname #1\endcsname
  \expandafter\renewcommand\expandafter*\csname #1\endcsname{%
    \expandafter\let\csname author@#1\endcsname\@author
    \@ifstar
      {\csname star@#1\endcsname}%
      {\@dblarg{\csname opt@#1\endcsname}}%
  }%
  \expandafter\newcommand\expandafter*\csname star@#1\endcsname[1]{%
    \csname saved@#1\endcsname*{##1%
      \expandafter\ifx\csname author@#1\endcsname\@empty\else
        \hfill\linebreak{\normalsize
          \textmd{\textit{\csname author@#1\endcsname}}}%
      \fi
    }%
  }%
  \expandafter\newcommand\expandafter*\csname opt@#1\endcsname[2][]{%
    \csname saved@#1\endcsname[{##1%
      \expandafter\ifx\csname author@#1\endcsname\@empty\else
        \enskip\textmd{\textit{(\csname author@#1\endcsname)}}%
      \fi
    }]{##2%
      \expandafter\ifx\csname author@#1\endcsname\@empty\else
        \hfill\linebreak{\normalsize
          \textmd{\textit{\csname author@#1\endcsname}}}%
      \fi
    }%
  }%
}
\extendsectlevel{chapter}
\extendsectlevel{section}
\extendsectlevel{subsection}
\makeatother
\begin{document}
\title{test}
\author{Man A}
\maketitle
\tableofcontents
\author{Author A}
\chapter{Chapter}
\section{Section}
\subsection{Subsection}
\author{Author B}
\chapter{Chapter}
\section{Section}
\subsection{Subsection}
\end{document}

Diese Lösung funktioniert so nicht für Spitzmarken. Für Spitzmarken (z. B. \paragraph) müsste man dann noch eine angepasste \extendsectlevel definieren, die keinen Zeilenumbruch vornimmt, sondern stattdessen ggf. ebenfalls etwas wie \enskip verwendet.

[Admin-Edit:] Formatierung angepasst.

Hallo Markus,

die zweite Lösung entspricht eigentlich genau meinen Vorstellungen.
Leider bekomme ich für jede Überschrift eine Warnung das der Befehl \hskip nicht erlaubt ist.

Es wäre auch noch schön wenn man die Überschriften, die nicht in Inhaltsverzeichniss und keine Nummerierung bekommen auch nutzen könnte. Im Moment wird an der Stelle wo der Autho stehen würde ein Stern ausgegeben. Hier sollte ja dann eigentlich gar nichts stehen.

Wie gesagt, ansonsten finde ich die Lösung richtig gut!
Was stört dich denn?

Vielen Dank

PS: Ich muss meine Diplomarbeit sowohl in Druckform für die UNI als auch als PDF (für das Unternehmen wo ich schreibe) abgeben.

Bild von Markus Kohm

Die Warnung kommt von der Bookmark-Erzeugung von hyperref. Und hyperref macht an der Stelle genau die Ersetzung, die Du haben willst. Also würde ich vorschlagen, Du ignorierst die Warnung einfach.

Bei mir funktionieren \chapter* und \section*. Ich habe das gerade ausprobiert, indem ich in meinem Beispiel noch

\section*{Star Section}
\chapter*{Star Chapter}

am Ende eingefügt habe.

[Admin-Edit:] Formatierung angepasst.

Bild von Markus Kohm

Ich kann nicht versprechen, dass ich die Bookmark-Erzeugung in irgend einer Form berücksichtigen kann. Das Problem ist, dass ich schon seit Jahren eine dokumentierte Schnittstelle in hyperref anmahne, über die Klassen- und Paketautoren Einfluss auf die Erzeugung automatisch gesetzter Bookmarks, Anker etc. nehmen kann. Der hyperref-Autor baut zwar immer wieder neue Features in hyperref ein, eine solche Schnittstelle fehlt aber. Für mich als Klassen- und Paketautor bedeutet das, dass ich durch Codeinspektion selbst herausfinden muss, wie man bei der aktuellen hyperref-Version etwas manipulieren kann. Kommt dann eine neue hyperref-Version heraus, muss ich überprüfen, ob mein Code noch funktioniert und ggf. Änderungen vornehmen. Dabei müsste ich eventuell auch noch den Code so ändern, dass er mit mehr als einer hyperref-Version funktioniert. Diesen Aufwand kann und will ich auch nicht treiben.

Ich bin bei der Suche zu genau diesem Problem nur hier fündig geworden. Das Paket passt eigentlich zu unseren Bedürfnissen. Allerdings wollen wir die Angabe der Autoren auf \chapter beschränken. Die untergeordneten Abschnitts-Kategorien sollten global ausgeschaltet sein, ohne dass man mit \KOMAoptions den authormode ständig ein- und ausschalten muss. Die folgende Sequenz funktioniert, ist IMHO aber nur eine Hilfslösung.

\KOMAoptions{authormode=true} 
\author{Monika Muster}
\chapter{Kapitelüberschrift}
\KOMAoptions{authormode=false}

BTW: Ist das Paket noch aktuell, bzw. über den alpha-Status hinausgekommen?

[Admin-Edit:] Formatierung angepasst.

Bild von Markus Kohm

Das Paket ist leider nicht mehr aktuell, insbesondere verträgt es sich überhaupt nicht mit den Neuerungen ab KOMA-Script 3.10. Man sollte es derzeit also besser nicht verwenden!

Es gibt leider derzeit auch keine aktuelle Fassung davon, weil das Paket gänzlich in Vergessenheit geraten ist. Als ich das kürzlich beim Aufräumen auf meiner Platte entdeckte habe ich es sogar für etwas gehalten, das ich irgendwann mal angefangen aber nie beendet habe und habe es dort gelöscht.

Es gibt sicher eine Möglichkeit, das Paket wieder zu beleben und auch um weitere Features zu erweitern. Aber im Augenblick bin ich in meiner Freizeit vollauf mit anderen Teilen von KOMA-Script beschäftigt, so dass ich nicht versprechen kann, wann das der Fall sein wird.

BTW: Die Formatierungshinweise, die in einem der älteren Kommentare zu finden waren, sind nicht mehr aktuelle. Inzwischen ist die Verwendung von <code>, wie auch in den Formatierungshinweisen angegeben, natürlich absolut korrekt.

Comments for "Author unter Überschrift und im Inhaltsverzeichnis" abonnieren