Projekt

Allgemein

Profil

Überschriften » Historie » Revision 21

Revision 20 (Patrick Schulz, 16.08.2022 11:55) → Revision 21/25 (Patrick Schulz, 17.08.2022 11:24)

h1. Überschriften 

 h2. Überschriften im *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>} 
   %% 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} 
 </code></pre> 

 * @<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. 

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

 

 h2. Strukturierte vs unstrukturierte Kapitel-/Abschnittsautor:innen und Affiliations (ab transpect-tex Version 0.2) 

 Strukturierte Autor:innen werden in der @tpAuthor@-Umgebung innerhalb der @heading@-Umgebung kodiert, eine pro Autor:in:<pre>\begin{heading}{contribution} Autor:in:<pre>\begin{heading} 
   %% 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}</pre> 
 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| 
 |_\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-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. 

 

 h2. Abbildungsverzeichnis und Tabellenverzeichnis 

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

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

 \listoffigures % oder \listoftables 
 </pre>