fixes
This commit is contained in:
parent
443a456154
commit
1aaadbe896
|
@ -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}
|
||||
|
||||
|
|
129
doku.tex
129
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}
|
||||
|
|
Loading…
Reference in a new issue