Überschriften » Historie » Revision 23
Revision 22 (Patrick Schulz, 05.10.2022 12:53) → Revision 23/25 (Marcus Hottenroth, 28.12.2023 10:00)
h1. Überschriften h2. Überschriften im *CoCoTeX-Framework* ("coco-headings.sty":https://gitlab.le-tex.de/transpect-tex/transpect-tex/-/blob/oop/projects/common/coco-headings.sty) *transpect-tex Common Framework* ("transpect-headings.dtx":https://gitlab.le-tex.de/transpect-tex/transpect-tex/-/blob/master/src/transpect-headings.dtx) <pre><code class="text"> \begin{heading}[<opt>]{<level>} %% Überschrift im Fließtext: Eigentliche Überschrift: \tpTitle{…} \tpAuthorNameList{…} \tpSubtitle{…} \tpNumber{…} \tpQuote{…} \tpQuoteSource{…} %% Überschreibungen Overrides für Inhaltsverzeichniseinträge: ToC-Entries: \tpTocTitle{…} \tpTocAuthorNameList{…} \tpTocSubtitle{…} \tpTocNumber{…} %% Überschreibungen Overrides für Kolumnentitel: \tpRunTitle{…} \tpRunAuthorNameList{…} \tpRunSubtitle{…} \tpRunNumber{…} %% Überschreibungen Overrides für PDF-Lesezeichen: PDF-Bookmarks: \tpBMTitle{…} \tpBMAuthorNameList{…} \tpBMSubtitle{…} \tpBMNumber{…} \end{heading} </code></pre> * @<level>@: @<level>@ ist der Name der Überschriftebene, z. B. <code>chapter</code>, <code>section</code>, <code>subsection</code> etc. Überschrift-Ebene, z.B. chapter, section, subsubsection… * @<opt>@: @<opt>@ optionale Argumente Parameter für einzelne Überschriften Überschriften. Wenn es keine gibt, eckige Klammern weglassen! ** @notoc@: Überschrift erzeugt keinen Eintrag im Inhaltsverzeichnis IHV ** @noBM@: Überschrift erzeugt kein PDF-Lesezeichen keinen Bookmark-Eintrag * lediglich @\tpTitle{…}@ Notwendig ist obligatorisch; restliche Angaben sind nur @\tpTitle{}@; der Rest optional * @\tpAuthorNameList{…}@: _unstrukturierte_ @\tpAuthorNameList{}@ ist die *unstrukturierte* Version der Abschnitts-/Kapitelautoren Abschnitts-/Kapitelautor*innen * @\tpSubtitle{…}@: @\tpSubtitle{}@ ist der Untertitel * @\tpNumber{…}@: Überschriftzähler @\tpNumber{}@ ist der Überschrift-Zähler samt Präfix (z. B. »Kapitel 2«, »2.1.2.3«, »Anhang A«) (z.B. "Kapitel 2", "2.1.2.3", "Anhang A", etc.) * @\tpQuote{…}@: @\tpQuote{}@ ist ein Zitat * @\tpQuoteSource{…}@: @\tpQuoteSource{}@ die Quelle des Zitats 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{…}@: (Kurz-)Zusammenfassung @\tpAbstract{}@ Abstract * @\tpAbstractLabel{…}@: @\tpAbstractTitle{}@ Überschrift der Zusammenfassung; Standardwert: »Abstract« des Abstracts, default: “Abstract” * @\tpKeywords{…}@: @\tpKeywords{}@ Schlagworte * @\tpKeywordsLabel{…}@: @\tpKeywordsTitle{}@ Überschrift für die Schlagworte; Standardwert: »Keywords« Schlagworte, default: “Keywords” * @\tpTitleEn{…}@: englischer Titel (bspw. bei nicht englischsprachigen Artikeln) * @\tpTitleEnLabel{…}@: Überschrift für den englischen Titel; Standardwert: keiner * @\tpDOI{…}@: @\tpDOI{}@ DOI * @\tpDOITitle{…}@: @\tpDOITitle{}@ Titel für die DOI-Angabe; Standardwert: keiner. DOI Angabe, default: <leer>. Diese »speziellen Überschriften« "speziellen Überschriften" können von Projekt zu Projekt unterschiedlich heißen. Qua heißen, qua Konvention heißt eine solche die Ebene aber i. d. R. i.d.R. @contribution@ und erbt ihre sonstigen Merkmale von @chapter@. In jedem Makro kann @\tpBreak@ verwendet werden, um einen instantanen Zeilenumbruch an der Stelle zu erzwingen. h2. Überschreibungen Overrides für Inhaltsverzeichnisse, Kolumnentitel und PDF-Lesezeichen PDF-Bookmarks Zu *Zu den Makros @\tpAuthorNameList@, @\tpNumber@, @\tpSubtitle@ sowie @\tpTitle@ @\tp<Makro>@ mit @<Makro> := (Author|Number|Subtitle|Title)@ gibt es je drei Überschreibungen @\tpRun…@ Overrides: @\tpRun<Makro>@ (für Kolumnentitel), @\tpToc…@ Kolumnen), @\tpToc<Makro>@ (für Inhaltsverzeichnisangaben), IHV), und @\tpBM…@ @\tpBM<Makro>@ (für PDF-Lesezeichen). * Wird keine Überschreibung für Bookmarks). ** Fehlt das Overridefür Kolumnentitel bzw. das Inhaltsverzeichnis vorgenommen, IHV, wird der Inhalt von @\tp…@ @\tp<Makro>@ für den Kolumnentitel bzw. den Inhaltsverzeichniseintrag IHV-Eintrag verwendet. * Wird keine Überschreibung ** Fehlt das Override für die PDF-Lesezeichen vorgenommen, Bookmarks, wird der Inhalt von @\tpToc<Makro>@ verwendet. Gibt verwendet; gibt es die auch diese nicht, wird der Inhalt dann die von @\tp<Macro>@ eingesetzt. @\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* *Beispiel:* <pre> \begin{heading}{chapter} \tpTitle{Ein Text} \tpAuthorNameList{Max Musterfrau} \tpTocAuthorNameList{Max Mustertransfrau} \tpRunTitle{Ein alternativer Kolumnentitel} Alternativtext} \tpRunAuthorNameList{} \end{heading} </pre>würde als Überschrift<pre>Max Musterfrau: Ein Text</pre> erzeugen. Als Inhaltsverzeichniseintrag Toc-Eintrag würde<pre>Max Mustertransfrau: Ein Text</pre>ausgegeben. <pre>Ein alternativer Kolumnentitel</pre> wird als Text</pre>ausgegeben, it dem Override für den Autorennamen. Als Kolumnentitel würde dann<pre>Ein Alternativtext</pre> ausgegeben. Der Autorenname wird im Kolumnentitel Kol-Titel unterdrückt, weil @\tpRunAuthorNameList{…}@ zwar gesetzt, aber das Argument von @\tpRunAuthor@ in dem Fall leer gelassen wird. ist. h2. Strukturierte vs. vs unstrukturierte Kapitel-/Abschnittsautoren Kapitel-/Abschnittsautor:innen und Institutionszugehörigkeiten Affiliations (ab CoCoTeX-Version cocotex Version 0.2) Strukturierte Autoren Autor:innen werden in je Autor einer der @tpAuthor@-Umgebung innerhalb der @heading@-Umgebung festgelegt:<pre>\begin{heading}{contribution} kodiert, eine pro Autor:in:<pre>\begin{heading}{contribution} %% Autor:innen \begin{tpAuthor} % Autoren. \tpFirstName{Max} \tpMidName{M.} \tpLastName{Mustermann} \tpHonorific{Prof. \tpPersonPrefix{Prof. Dr.} \tpORCID{http://orcid.org/0000-0002-9441-3978} \tpEmail{max.mustermann@example.org} \tpAffilRef{1} \tpAffil{1} %% Override: \tpFullName{Max M. Mustermann} % Überschreibung. \end{tpAuthor} %% Affiliations: \begin{tpAffil} % Institutionszugehörigkeiten. \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} % Überschreibung. \end{tpAffil} %% Overrides: \tpAuthorNameList{Max Mustermann} % Überschreibung des Autorennamens. \tpAffilBlock{Alle irgendwo angestellt} % Überschreibung der Institutionszugehörigkeitsinformationen. \tpAffilBlock{Die arbeiten alle irgendwo…} \end{heading}</pre> Die Komponenten Konponenten in den Subcontainern Sub-Containern @tpAffil@ und @tpAuthor@ werden jeweils den Festlegungen im jeweiligen in abhängigkeit vom Verlagsstyle entsprechend zusammengesetzt und zusammen gesetzt un in @FullName@ tpFullName bzw. @Affiliation@ gespeichert. Existieren tpAffiliation gespeichert, wenn es diese innerhalb der Sub-Container noch nicht gibt, d.h. @\tpAffiliation@ und @\tpFullName@ diene gleichzeitig als Overrides für die zu letztgenannten Variablen setzenden Makros (@\tpFullName{…}@ resp. @\tpAffiliation{…}@) im jeweiligen Subcontainer, überschreiben diese jene verlagsspezifische Konkatenation. Sub-Container an sich. So würde z.B. in obigem obigen Beispiel als voller Autorenname »Prof. "Prof. Dr. Max M. Mustermann« Mustermann" generiert werden, da aber @\tpFullName{…}@ verwendet wird, @\tpFullName@ bereits explizit gegeben ist, wird diese automatisch erzeugte Zeichenkette dieser generierte String verworfen und der @\tpFullName{…}@-Inhalt Inhalt von @\tpFullName@ für die das weitere Verarbeitung genutzt. @\tpAffiliation@ im @tpAffil@-Container verhält sich analog. Processing verwendet. Analog bei @tpAffil@ mit @\tpAffiliation@. Ferner werden die Instanzen der jeweiligen Subcontainer Sub-Container innerhalb einer @heading@-Umgebung zu einer Art Block einem "Block" zusammengefasst und ausgegeben. ausgebenen. Bei @tpAuthor@ heißt ist der Block @\tpAuthorNameList@ und bei @tpAffil@ ist das @\tpAffilBlock@. Diese können auch direkt in der @heading@-Umgebung heading-Umgebung verwendet werden und überschreiben damit alle (ggf. zusammengesetzten) Einzelinstanzen der Subcontainer. Für eine Liste Sub-Container. So werden die (generierten) Inhalte der verfügbaren @tpAuthor@- @\tpFullName@-Komponenten aller tpAuthor-Umgebungen aneinander gehängt und @tpAffiliation@-Makros, siehe Informationen zur Titelei in den Abschnitten "Personen":https://redmine.le-tex.de/projects/transpect-typesetter/wiki/Titelei#Generelle-Auszeichnung sowie "Institutionszugehörigkeiten (Affiliations)":https://redmine.le-tex.de/projects/transpect-typesetter/wiki/Titelei#Institutionszugeh%C3%B6rigkeiten-Affiliations. @\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| |_\2. 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) | |_\2. 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) | h3. *Wichtige Anmerkung zu den PDF-Lesezeichen* PDF-Bookmarks* In dem, was in den für PDF-Lesezeichen verwendeten Inhalten *Bookmarks* landet, darf *kein TeX-Markup* LaTeX-Markup* enthalten sein, da diese Inhalte eins zu eins 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. Beispielsweise stehen, z.B. @\foreignlanguage{english}{text}@ würde @\foreignlanguage{english}{text}@ als Lesezeichen Bookmark @"englishtext"@ erzeugen. erzeugen! Besonders kritisch ist dies, wenn Formeln in der Überschrift enthalten sind. sind! Wenn in der Überschrift also TeX-Markup (mathematische Ausdrücke, @\foreignlanguage{…}{…}@, tex-Markup (Mathe, foreignlanguage, aber auch Auszeichnungen wie @\textit{…}@ @\textit@, etc.) enthalten ist, sind _stets_ @\tpBM…@-Überschreibungen zu IMMER die BM-Overrides verwenden und dort nur reiner reinen Text einzutragen. reinschreiben. h2. Abbildungs- Abbildungsverzeichnis und Tabellenverzeichnis Diese beiden Verzeichnisse werden entsprechend der Hierarchiestufe als normale Überschrift Heading ausgezeichnet und anschließend wird dann das jeweilige Makro zum Erzeugen des Verzeichnisses verwendet. ausgegeben. <pre> \begin{heading}{section} \tpTitle{Abbildungsverzeichnis} \tpTocTitle{Abbildungsverzeichnis} \tpRunTitle{Frische Früchte, kaputte Körper} \end{heading} \listoffigures % oder \listoftables </pre>