Projekt

Allgemein

Profil

Aktionen

Überschriften » Historie » Revision 22

« Zurück | Revision 22/25 (Vergleich) | Weiter »
Patrick Schulz, 05.10.2022 12:53


Überschriften

Überschriften im transpect-tex Common Framework (transpect-headings.dtx)

\begin{heading}[<opt>]{<level>}
  %% Eigentliche Überschrift:
  \tpTitle{…}
  \tpAuthorNameList{…}
  \tpSubtitle{…}
  \tpNumber{…}
  \tpQuote{…}
  \tpQuoteSource{…}
  %% Overrides für ToC-Entries:
  \tpTocTitle{…}
  \tpTocAuthorNameList{…}
  \tpTocSubtitle{…}
  \tpTocNumber{…}
  %% Overrides für Kolumnentitel:
  \tpRunTitle{…}
  \tpRunAuthorNameList{…}
  \tpRunSubtitle{…}
  \tpRunNumber{…}
  %% Overrides für PDF-Bookmarks:
  \tpBMTitle{…}
  \tpBMAuthorNameList{…}
  \tpBMSubtitle{…}
  \tpBMNumber{…}
\end{heading}
  • <level> ist der Name der Überschrift-Ebene, z.B. chapter, section, subsubsection…
  • <opt> optionale Parameter für einzelne Überschriften. Wenn es keine gibt, eckige Klammern weglassen!
    • notoc: Überschrift erzeugt keinen Eintrag im IHV
    • noBM: Überschrift erzeugt keinen Bookmark-Eintrag
  • Notwendig ist nur \tpTitle{}; der Rest optional
  • \tpAuthorNameList{} ist die unstrukturierte Version der Abschnitts-/Kapitelautor*innen
  • \tpSubtitle{} ist der Untertitel
  • \tpNumber{} ist der Überschrift-Zähler samt Präfix (z.B. "Kapitel 2", "2.1.2.3", "Anhang A", etc.)
  • \tpQuote{} ist ein Zitat
  • \tpQuoteSource{} die Quelle dazu
  • Mit v0.100 können Überschriften auch automatisiert gezählt werden. Ist \tpNumber gesetzt, wird die interne Zählung überschrieben und das automatische Weiterzählen für diese Überschrift ausgesetzt.
Spezielle Überschriften haben weitere Datenfelder:
  • \tpAbstract{} Abstract
  • \tpAbstractTitle{} Überschrift des Abstracts, default: “Abstract”
  • \tpKeywords{} Schlagworte
  • \tpKeywordsTitle{} Überschrift für die Schlagworte, default: “Keywords”
  • \tpDOI{} DOI
  • \tpDOITitle{} Titel für die DOI Angabe, default: <leer>.

Diese "speziellen Überschriften" können von Projekt zu Projekt unterschiedlich heißen, qua Konvention heißt die Ebene aber i.d.R. contribution und erbt ihre sonstigen Merkmale von chapter.

In jedem Makro kann \tpBreak verwendet werden, um einen Zeilenumbruch an der Stelle zu erzwingen.

Overrides für Inhaltsverzeichnisse, Kolumnentitel und PDF-Bookmarks

*Zu den Makros \tp<Makro> mit <Makro> := (Author|Number|Subtitle|Title) gibt es je drei Overrides: \tpRun<Makro> (für Kolumnen), \tpToc<Makro> (für IHV), und \tpBM<Makro> (für Bookmarks).
  • Fehlt das Overridefür Kolumnentitel bzw. IHV, wird der Inhalt von \tp<Makro> für Kolumnentitel bzw. IHV-Eintrag verwendet.
  • Fehlt das Override für die Bookmarks, wird der Inhalt von \tpToc<Makro> verwendet; gibt es die auch nicht, dann die von \tp<Macro>.
  • Ist \tp(Run|Toc|BM)<Makro>{<Text>} gesetzt, wird <text> statt der Inhalt von \tp(Toc)<Makro> verwendet.
  • Ist \tp(Run|Toc|BM)<Makro>{} gesetzt (also mit leerem Argument!), wird die Ausgabe des <Makro> in Kolumnentitel/IHV/Bookmarks komplett unterdrückt.

Beispiel:

\begin{heading}{chapter}
  \tpTitle{Ein Text}
  \tpAuthorNameList{Max Musterfrau}
  \tpTocAuthorNameList{Max Mustertransfrau}
  \tpRunTitle{Ein Alternativtext}
  \tpRunAuthorNameList{}
\end{heading}
würde als Überschrift
Max Musterfrau: Ein Text
erzeugen. Als Toc-Eintrag würde
Max Mustertransfrau: Ein Text
ausgegeben, it dem Override für den Autorennamen. Als Kolumnentitel würde dann
Ein Alternativtext
ausgegeben. Der Autorenname wird im Kol-Titel unterdrückt, weil das Argument von \tpRunAuthor in dem Fall leer ist.

Strukturierte vs unstrukturierte Kapitel-/Abschnittsautor:innen und Affiliations (ab cocotex Version 0.2)

Strukturierte Autor:innen werden in der tpAuthor-Umgebung innerhalb der heading-Umgebung kodiert, eine pro Autor:in:

\begin{heading}{contribution}
  %% Autor:innen
  \begin{tpAuthor}
    \tpFirstName{Max}
    \tpMidName{M.}
    \tpLastName{Mustermann}
    \tpPersonPrefix{Prof. Dr.}
    \tpORCID{http://orcid.org/0000-0002-9441-3978}
    \tpEmail{max.mustermann@example.org}
    \tpAffil{1}
    %% Override:
    \tpFullName{Max M. Mustermann}
  \end{tpAuthor}
  %% Affiliations:
  \begin{tpAffil}
    \tpAffilID{1}                                         
    \tpInstitute{Uni Musterstadt}
    \tpDepartment{Institut für Mustererstellung}
    \tpAddress{Musterstr. 1, 01234 Musterstadt}
    \tpCountry{Germany}
    %% Override:
    \tpAffiliation{Uni Musterrstadt, Institut für Mustererstellung, 01234 Musterstadt, Germany}
  \end{tpAffil}
  %% Overrides:
  \tpAuthorNameList{Max Mustermann}
  \tpAffilBlock{Die arbeiten alle irgendwo…}
\end{heading}

Die Konponenten in den Sub-Containern tpAffil und tpAuthor werden in abhängigkeit vom Verlagsstyle zusammen gesetzt un in tpFullName bzw. tpAffiliation gespeichert, wenn es diese innerhalb der Sub-Container noch nicht gibt, d.h. \tpAffiliation und \tpFullName diene gleichzeitig als Overrides für die jeweiligen Sub-Container an sich. So würde z.B. in obigen Beispiel als voller Autorenname "Prof. Dr. Max M. Mustermann" generiert werden, da aber \tpFullName bereits explizit gegeben ist, wird dieser generierte String verworfen und der Inhalt von \tpFullName für das weitere Processing verwendet. Analog bei tpAffil mit \tpAffiliation.

Ferner werden die Instanzen der jeweiligen Sub-Container innerhalb einer heading-Umgebung zu einem "Block" zusammengefasst und ausgebenen. Bei tpAuthor ist der Block \tpAuthorNameList und bei tpAffil ist das \tpAffilBlock. Diese können auch direkt in der heading-Umgebung verwendet werden und überschreiben damit alle Einzelinstanzen der Sub-Container. So werden die (generierten) Inhalte der \tpFullName-Komponenten aller tpAuthor-Umgebungen aneinander gehängt und in \tpAuthorNameList gespeichert, außer es gibt dieses bereits. Analog dazu mit tpAffil und \tpAffilBlock, in dem die (generierten) \tpAffiliation-Inhalte der einzelnen tpAffil-Continaer gespeichert werden, außer \tpAffilBlock existiert bereits innerhalb der heading-Umgebung.

Komponenten-Makro Bedeutung
tpAuthor
\tpFirstName{} Rufname
\tpLastName{} Nachname
\tpMidName{} Mittelnamen/Initiale
\tpPersonPrefix{} Titel
\tpORCID{} ORC-ID
\tpEmail{} Email-Adresse
\tpAffil{} ID der Affiliation zu der die Autor:in gehört
\tpFullName{} Einzelnamen-Override: Wenn das fehlt, wird FullName aus "PersonPrefix FirstName MidName LastName" zusammen gesetzt (abhg. vom Verlagsstyle)
tpAffil
\tpAffilID{} ID der Affiliation
\tpInstitute{} Institut/Uni/Firma
\tpDepartment{} Abteilung/Fakultät/Institut
\tpAddress{} Adresse
\tpCountry{} Land
\tpAffiliation{} Affiliation-Override: Wenn das fehlt, wird tpAffiliation aus "Institute, Department, Address, Country" zusammengesetzt (abhg. vom Verlagsstyle)

Wichtige Anmerkung zu den PDF-Bookmarks

In dem, was in den Bookmarks landet, darf kein LaTeX-Markup enthalten sein, da diese Inhalte 1:1 in den PDF-Code geschrieben werden! Sind Makros in einer Überschrift enthalten, wirft pdftex Fehler bei der PDF-Erzeugung aus und ignoriert die Makros, lässt ggf. aber Argumente dieser Makros stehen, z.B. \foreignlanguage{english}{text} würde als Bookmark "englishtext" erzeugen! Besonders kritisch ist dies, wenn Formeln in der Überschrift enthalten sind! Wenn in der Überschrift also tex-Markup (Mathe, foreignlanguage, aber auch Auszeichnungen wie \textit, etc.) enthalten ist, IMMER die BM-Overrides verwenden und dort nur reinen Text reinschreiben.

Abbildungsverzeichnis und Tabellenverzeichnis

Diese beiden Verzeichnisse werden entsprechend der Hierarchiestufe als normale Heading ausgezeichnet und dann das Makro zum Erzeugen des Verzeichnisses ausgegeben.

\begin{heading}{section}
\tpTitle{Abbildungsverzeichnis}
\tpTocTitle{Abbildungsverzeichnis}
\tpRunTitle{Frische Früchte, kaputte Körper}
\end{heading}

\listoffigures % oder \listoftables

Von Patrick Schulz vor fast 2 Jahren aktualisiert · 22 Revisionen