From 1aaadbe896ad3e4e04f7e86b7c1f29f9328cd397 Mon Sep 17 00:00:00 2001 From: nobody Date: Thu, 12 Dec 2024 19:26:10 +0100 Subject: [PATCH] fixes --- cccbform.cls | 2 +- doku.tex | 129 ++++++++++++++++++++++++++------------------------- 2 files changed, 66 insertions(+), 65 deletions(-) diff --git a/cccbform.cls b/cccbform.cls index c6f56a8..407d516 100644 --- a/cccbform.cls +++ b/cccbform.cls @@ -2,8 +2,8 @@ \ProvidesClass{cccbform}[2024/12/08 In the Beginning, There Was Chaos] \LoadClass{scrartcl} -\RequirePackage{geometry, calc, fontspec, tikz, hyperref, changepage, letltxmacro, csquotes} \RequirePackage[ngerman]{babel} +\RequirePackage{geometry, calc, fontspec, tikz, hyperref, changepage, letltxmacro, csquotes} \MakeOuterQuote{"} \usetikzlibrary{calc} diff --git a/doku.tex b/doku.tex index 6ad3b03..78bc1b2 100644 --- a/doku.tex +++ b/doku.tex @@ -1,18 +1,21 @@ %% NB: Dieses Dokument baut so 3-10 Minuten je nach Dateisystem-Performance… %% (Sehr viele Beispiele die jeweils komplette eigenständige Dokumente sind.) \documentclass[ngerman,10pt]{scrartcl} -\usepackage{calc,tikz,minted,fontspec,luacode,csquotes,babel,hyperref,microtype} -\MakeOuterQuote{"} +\KOMAoptions{BCOR=1cm,DIV=10} +\usepackage{calc,tikz,minted,fontspec,luacode,babel,csquotes,hyperref} \hypersetup{colorlinks,urlcolor={magenta!75!black},linkcolor={green!50!black}} \linespread{1.05} % font definition (same as cccbform.cls) +%% FIXME: RawFeature +case x microtype fixes +%% see https://github.com/schlcht/microtype/issues/33 for fix notes +%% see https://fontdrop.info/?darkmode=true for character lookup \setmainfont[ Renderer=HarfBuzz, ItalicFont=Recursive, BoldFont=Recursive, BoldItalicFont=Recursive, UprightFeatures={ - RawFeature={+ss01,+ss02,+ss08,+case}, + RawFeature={+ss01,+ss02,+ss08}, RawFeature={+axis={MONO=0.0,CASL=0.2,slnt=0,CRSV=0,wght=400}} }, BoldFeatures={RawFeature={+axis={MONO=0.0,CASL=0.2,slnt=0,CRSV=0,wght=700}}}, @@ -25,7 +28,7 @@ BoldFont=Recursive, BoldItalicFont=Recursive, UprightFeatures={ - RawFeature={+ss01,+ss02,+ss08,+case}, + RawFeature={+ss01,+ss02,+ss08}, RawFeature={+axis={MONO=1.0,CASL=0.2,slnt=0,CRSV=0,wght=400}} }, BoldFeatures={RawFeature={+axis={MONO=1.0,CASL=0.2,slnt=0,CRSV=0,wght=700}}}, @@ -38,13 +41,14 @@ BoldFont=Recursive, BoldItalicFont=Recursive, UprightFeatures={ - RawFeature={+ss01,+ss02,+ss08,+case}, + RawFeature={+ss01,+ss02,+ss08}, RawFeature={+axis={MONO=0.0,CASL=0.4,slnt=0,CRSV=1,wght=500}} }, BoldFeatures={RawFeature={+axis={MONO=0.0,CASL=0.4,slnt=0,CRSV=1,wght=800}}}, BoldItalicFeatures={RawFeature={+axis={MONO=0.0,CASL=0.4,slnt=-15,CRSV=1,wght=800}}}, ItalicFeatures={RawFeature={+axis={MONO=0.0,CASL=0.4,slnt=-15,CRSV=1,wght=500}}} ]{Recursive} +\usepackage{microtype} % set up example build directory \directlua{ os.execute "mkdir -p cccbform-examples" } @@ -172,7 +176,8 @@ FOOTER = [[ \sloppy \raggedbottom -\title{\texttt{cccbform} -- Formulare für den CCCB} +\MakeOuterQuote{"} +\title{\texttt{cccbform} – Formulare für den CCCB} \author{Frank Nord} \begin{document} \maketitle @@ -181,11 +186,10 @@ FOOTER = [[ \section{TODO} \begin{itemize} -\item csquotes / MakeOuterQuote in cls -\item mehr \texttt{\textbackslash mintinline} \item Inline-Textfeld \item Grundsätze des aktuellen Designs \item Bug: Höhe Multiline-Textfeld in example +\item \TeX-Intro zum Ende, +build info \end{itemize} \section{Übersicht} @@ -216,7 +220,7 @@ Das meiste sollte auch ohne \TeX-Kenntnisse gehen, es gibt jedoch eine Reihe von Sonderzeichen, die besondere Bedeutung haben. Als eines der wichtigeren beginnt \texcode|%| einen Zeilenkommentar. Bei den meisten Symbolen reicht es, einen Backslash (\texttt{\textbackslash}) davorzusetzen, aber der -Backslash selbst wird z.~B. durch \mintinline{tex}{\textbackslash} und nicht +Backslash selbst wird z.~B. durch \texcode{\textbackslash} und nicht \texcode{\\} erzeugt. Bei Unsicherheit hilft auch \url{http://detexify.kirelabs.org/classify.html}. (Dort kann man Symbole malen und bekommt eine Liste möglicher Übereinstimmungen und wie man @@ -265,23 +269,22 @@ Bereitgestellte Befehle fallen grob in 4 Kategorien -- Titel, Inhalt, Struktur, \subsection{Titel} Aktuell gibt es zwei Arten von Titeln. In jedem Fall sollte genau einer und -unmittelbar in der Zeile hinter dem \texttt{\textbackslash begin\{document\}} -verwendet werden. +unmittelbar in der Zeile hinter dem \texcode{\begin{document}} verwendet +werden. -Bei langen Titeln ist ein manueller Zeilenumbruch -(\texttt{\textbackslash\textbackslash}) im Titel ggf. sinnvoll, da der Text -sonst über das Logo bis zum Seitenrand laufen kann. (Das Logo und ggf. die -Adresse werden nachträglich platziert, \TeX\ "sieht" diese also nicht beim -verarbeiten des restlichen Inhalts.) +Bei langen Titeln ist ein manueller Zeilenumbruch (\texcode{\\}) im Titel ggf. +sinnvoll, da der Text sonst über das Logo bis zum Seitenrand laufen kann. (Das +Logo und ggf. die Adresse werden nachträglich platziert, \TeX\ "sieht" diese +also nicht beim verarbeiten des restlichen Inhalts.) -\subsubsection{\texttt{\textbackslash LogoTitle\{Titel\}}} +\subsubsection{\texcode{\LogoTitle{Titel}}} \begin{ShortExample}[4.953cm]{logotitle}{Die einfache Variante -- Titel links, Logo rechts.} \LogoTitle{Beispieltitel} \Text{(...und hier geht's weiter.)} \end{ShortExample} -\subsubsection{\texttt{\textbackslash AddressTitle\{Titel\}}} +\subsubsection{\texcode{\AddressTitle{Titel}}} \begin{ShortExample}[8.865cm]{addresstitle}{Titel und Adresse} \AddressTitle{Beispieltitel} @@ -299,9 +302,9 @@ Es gibt auch die Variante mit \texttt{*}, welche zusätzlich das Logo einbettet. Hier gibt es größtenteils Befehle für Formularfelder. Anders als in normalen \TeX-Dokumenten ist es hier jedoch wichtig, für korrekte Abstände \emph{allen} -"losen" Text explizit als \texttt{\textbackslash Text} auszuzeichnen. Der -Befehl kümmert sich um korrekte Abstände, ohne diesen liegen Dinge zu eng -beieinander. Vergleiche: +"losen" Text explizit als \texcode{\Text} auszuzeichnen. Der Befehl kümmert +sich um korrekte Abstände, ohne diesen liegen Dinge zu eng beieinander. +Vergleiche: \begin{ShortExample}{textgood}{Text mit korrekten Abständen} \Text{Dieser Satz kein Verb.} @@ -315,8 +318,8 @@ Dieser Satz kein Verb. Die blöden Ösen! \end{ShortExample} -Auch lange Texte mit mehreren Absätzen können in \texttt{\textbackslash Text} -verwendet werden. +Auch lange Texte mit mehreren Absätzen können in \texcode{\Text} verwendet +werden. \begin{ShortExample}{textlong}{langer Text ist kein Problem} \Text{ @@ -340,10 +343,10 @@ verwendet werden. Die vermutlich wichtigste Komponente, entsprechend viele Varianten gibt es. -\paragraph{\texttt{\textbackslash TextField}} Im Zweifel ist die einfachste -Variante die richtige. Ein einzeiliges Freitextfeld mit Label und einer für -die meisten Zwecke angemessenen Breite (welche auch z.~B. in mehrspaltigen -Bereichen von allein angepasst wird). +\paragraph{\texcode{\TextField}} Im Zweifel ist die einfachste Variante die +richtige. Ein einzeiliges Freitextfeld mit Label und einer für die meisten +Zwecke angemessenen Breite (welche auch z.~B. in mehrspaltigen Bereichen von +allein angepasst wird). \begin{ShortExample}{textfield}{normales Textfeld} \TextField{Bezeichnung} @@ -355,8 +358,8 @@ Wird die volle Breite benötigt gibt es auch die Variante mit Stern: \TextField*{Bezeichnung} \end{ShortExample} -\paragraph{\texttt{\textbackslash ShortTextField}} Wirkt die Breite hingegen zu -hoch (z.~B. für eine einzelne Zahl), so gibt es auch ein explizit kurzes Textfeld. +\paragraph{\texcode{\ShortTextField}} Wirkt die Breite hingegen zu hoch (z.~B. +für eine einzelne Zahl), so gibt es auch ein explizit kurzes Textfeld. \begin{ShortExample}{shorttextfield}{kurzes Textfeld} \ShortTextField{Stromverbrauch (TWh)} @@ -371,10 +374,10 @@ angegeben werden. Das Formular sieht aber einheitlicher aus, wenn das \ShortTextField[0.15]{Verbrauch (TWh)} \end{ShortExample} -\paragraph{\texttt{\textbackslash MultilineTextField}} Für mehr Text gibt es -auch mehrzeilige Textfelder. Auch wenn die Höhe technisch gesehen optional -ist, sollte sie immer angegeben werden -- ansonsten hat das Feld die -Standard-Höhe von normalen Textfeldern. +\paragraph{\texcode{\MultilineTextField}} Für mehr Text gibt es auch +mehrzeilige Textfelder. Auch wenn die Höhe technisch gesehen optional ist, +sollte sie immer angegeben werden -- ansonsten hat das Feld die Standard-Höhe +von normalen Textfeldern. \begin{ShortExample}{multilinetextfield}{mehrzeiliges Textfeld} %%% FIXME bug in preview (works in doc) @@ -437,8 +440,8 @@ Auch hier kann optional das Label geändert werden. \subsubsection{Checkboxen} \paragraph{Normale Verwendung} Gibt es eigentlich nicht viel dazu zu sagen -- -\texttt{\textbackslash Checkbox\{Label\}} für eine Checkbox (und das Label kann -auch ein kompletter Absatz sein.) +\texcode{\Checkbox{Label}} für eine Checkbox (und das Label kann auch ein +kompletter Absatz sein.) \begin{ShortExample}{checkbox}{Checkboxen} \Checkbox{Ich habe die AGB, @@ -454,8 +457,8 @@ auch ein kompletter Absatz sein.) \end{ShortExample} Für Freitextfelder als "Sonstige:" gibt es -\texttt{\textbackslash CheckboxOther[Breite]\{Label\}}, wieder mit optionaler -Breitenangabe (relativ zur Textbreite) für das Freitextfeld. +\texcode{\CheckboxOther[Breite]{Label}}, wieder mit optionaler Breitenangabe +(relativ zur Textbreite) für das Freitextfeld. \begin{ShortExample}{othercheckbox}{"Sonstiges"} \Text{Meine Lieblingstaste ist:} @@ -480,8 +483,8 @@ Checkboxen benötigt sein. Dafür gibt es die -- nur in Ausnahmefällen zu verwendende -- Inline-Variante, welche sich (fast) gar nicht um die Formatierung kümmert und nur die Box zur Verfügung stellt. (Das Einzige: ein Leerzeichen auf der rechten Seite wird sichergestellt, für gleichmäßige -Abstände sollte also genau \emph{nicht} \texttt{\{\}} oder -\texttt{\textbackslash} angehängt werden.) +Abstände sollte also genau \emph{nicht} \texcode{{}} oder \texcode{\ } +angehängt werden.) \begin{ShortExample}{inlinecheckbox}{Sonderfall -- Inline} \Text{Ich bin \InlineCheckbox groß, @@ -527,10 +530,10 @@ angegeben werden. \end{Indented} \end{ShortExample} -\paragraph{\texttt{\textbackslash RuleSection}} Dient zur Trennung von -Formularabschnitten, die durch verschiedene Personengruppen ausgefüllt werden. -Die Linie geht immer über die komplette Formularbreite und kann z.~B. nicht -innerhalb von mehrspaltigen Bereichen verwendet werden. +\paragraph{\texcode{\RuleSection}} Dient zur Trennung von Formularabschnitten, +die durch verschiedene Personengruppen ausgefüllt werden. Die Linie geht immer +über die komplette Formularbreite und kann z.~B. nicht innerhalb von +mehrspaltigen Bereichen verwendet werden. \begin{ShortExample}{rulesection}{Mehrere klar getrennte Abschnitte} \TextField{Name} @@ -540,8 +543,8 @@ innerhalb von mehrspaltigen Bereichen verwendet werden. \CheckboxOther[0.5]{Abgelehnt, weil:} \end{ShortExample} -\paragraph{\texttt{\textbackslash Rule}} Eine einfache Trennlinie, die an -verschiedenen Stellen zur grafischen Trennung eingesetzt werden kann. +\paragraph{\texcode{\Rule}} Eine einfache Trennlinie, die an verschiedenen +Stellen zur grafischen Trennung eingesetzt werden kann. \begin{ShortExample}{rule}{Mehr Trennlinien} \RuleSection{Bearbeiter} @@ -560,12 +563,12 @@ verschiedenen Stellen zur grafischen Trennung eingesetzt werden kann. \subsubsection{"klassische" Struktur} -In \TeX\ üblich sind \texttt{\textbackslash section}, -\texttt{\textbackslash subsection}, etc.; in Analogie dazu gibt es für ggf. -längere Formulare \texttt{\textbackslash Section} und -\texttt{\textbackslash Subsection}. Für die meisten Formulare ist das jedoch -vermutlich nicht nötig, insbesondere da ggf. per Einrückung via -\texttt{Indented} visuell schneller lesbare Struktur geschaffen werden kann. +In \TeX\ üblich sind \texcode{\section}, \texcode{\subsection}, etc.; in +Analogie dazu gibt es für ggf. längere Formulare \texcode{\Section} und +\texcode{\Subsection}. Für die meisten Formulare ist das jedoch vermutlich +nicht nötig, insbesondere da ggf. per Einrückung via +\texcode|\begin{Indented} ... \end{Indented}| visuell schneller lesbare +Struktur geschaffen werden kann. \begin{ShortExample}{sectioning}{Abschnittsunterteilung} \Section{Allgemeines} @@ -585,9 +588,9 @@ vermutlich nicht nötig, insbesondere da ggf. per Einrückung via Es gibt Unterstützung für 2, 3, und 5 Spalten (ggf. können diese auch ineinander geschachtelt werden.) Die Befehle heißen -- vermutlich wenig -überraschend -- \texttt{\textbackslash TwoColumns}, -\texttt{\textbackslash ThreeColumns}, und \texttt{\textbackslash FiveColumns} -und es sollten entsprechend viele \texttt{\{\}}-Gruppen folgen. +überraschend -- \texcode{\TwoColumns}, \texcode{\ThreeColumns}, und +\texcode{\FiveColumns} und es sollten entsprechend viele \texcode{{}}-Gruppen +folgen. \begin{ShortExample}{multicolumn}{Mehrspaltigkeit} \TwoColumns{ @@ -628,19 +631,17 @@ werden können\dots\ aber "weniger ist mehr" trifft insbesondere auch hier zu. Die meisten sollten also nur bei ernsthaftem Bedarf verwendet werden. Eine akzeptable Formatierungsmethode ist das Hervorheben von Text mit -\texttt{\textbackslash emph}. Üblicherweise typografisch eher verpönt, aber -schon irgendwie zum aktuellen Design passend, können mit -\texttt{\textbackslash ul} auch \emph{einzelne Worte oder sehr kurze Passagen} -unterstrichen werden, dabei ist jedoch zu beachten, dass innerhalb -unterstrichener Bereiche keine Zeilenumbrüche mehr möglich sind. (Der Bereich -wird als eine logische Box verpackt und kann nur noch als Ganzes verschoben -werden.) +\texcode{\emph}. Üblicherweise typografisch eher verpönt, aber schon irgendwie +zum aktuellen Design passend, können mit \texcode{\ul} auch \emph{einzelne +Worte oder sehr kurze Passagen} unterstrichen werden, dabei ist jedoch zu +beachten, dass innerhalb unterstrichener Bereiche keine Zeilenumbrüche mehr +möglich sind. (Der Bereich wird als eine logische Box verpackt und kann nur +noch als Ganzes verschoben werden.) Es gibt zwar eigentlich viele verschiedene Schriftgrößen, es ist jedoch keine gute Idee, alle quer durcheinander zu verwenden. Die Dokumentenklasse kümmert -sich ums meiste, als einzige Akzeptable gibt es \texttt{\textbackslash details} -(als semantischen Namen), welche für untergeordnete Bemerkungen zur Verfügung -steht. +sich ums meiste, als einzige Akzeptable gibt es \texcode{\details} (als +semantischen Namen), welche für untergeordnete Bemerkungen zur Verfügung steht. \begin{ShortExample}{formatting}{Formatierungsbeispiele} \Text{Die Formulare sind \ul{sofort}