diff --git a/Makefile b/Makefile index 90886a5..46e2fd5 100644 --- a/Makefile +++ b/Makefile @@ -13,11 +13,8 @@ clean: distclean: latexmk -C -mwe.pdf: mwe.tex - latexmk -pdflua -lualatex="lualatex --shell-escape %O %S" $< - doku.pdf: doku.tex cccbform.cls logo.pdf - latexmk -pdflua -lualatex="lualatex --shell-escape %O %S" $< + latexmk -g -pdflua -lualatex="lualatex --shell-escape %O %S" $< %.pdf :: %.tex cccbform.cls logo.pdf - latexmk -pdflua $< + latexmk -g -pdflua $< diff --git a/belegkopie.tex b/belegkopie.tex index 0e745c4..8a5aee1 100644 --- a/belegkopie.tex +++ b/belegkopie.tex @@ -1,10 +1,4 @@ \documentclass[]{cccbform} -\NewDocumentCommand{\ul}{m}{% - \tikz[baseline=(word.base)]{% - \node[inner sep=1pt] (word) {#1}; - \draw[thick] (word.south west) -- (word.south east); - }% -} \begin{document} \TwoColumns{% \vbox to 0pt{% diff --git a/cccbform.cls b/cccbform.cls index 03ccfb8..4e66bf1 100644 --- a/cccbform.cls +++ b/cccbform.cls @@ -23,7 +23,7 @@ \@Exampletrue } \DeclareOption{shortexample}{ - \geometry{paperwidth=105mm, paperheight=74mm, margin=2ex} + \geometry{a6paper, margin=2ex} \@Exampletrue \AtEndDocument{% \pageheight=\pagetotal @@ -262,7 +262,9 @@ \ifMultiColumn% \pgfmathsetmacro{\@tlen}{1.0}% \else% - \IfBooleanTF{#1}{\pgfmathsetmacro{\@tlen}{1.0}}{\pgfmathsetmacro{\@tlen}{\normalfieldwidth}}% + \IfBooleanTF{#1}% + {\pgfmathsetmacro{\@tlen}{1.0}}% + {\pgfmathsetmacro{\@tlen}{\normalfieldwidth}}% \fi% \begin{tikzpicture}[baseline] \useasboundingbox (0,0) rectangle (\@tlen\textwidth,\formfieldheight); @@ -304,7 +306,9 @@ \ifMultiColumn% \pgfmathsetmacro{\@tlen}{1.0}% \else% - \IfBooleanTF{#1}{\pgfmathsetmacro{\@tlen}{1.0}}{\pgfmathsetmacro{\@tlen}{\normalfieldwidth}}% + \IfBooleanTF{#1}% + {\pgfmathsetmacro{\@tlen}{1.0}}% + {\pgfmathsetmacro{\@tlen}{\normalfieldwidth}}% \fi% \begin{tikzpicture}[baseline] \useasboundingbox (0,0) rectangle (\@tlen\textwidth,\formfieldheight); @@ -370,7 +374,7 @@ % CheckboxOther[width]{label} - a checkbox for a write-in option \NewDocumentCommand{\CheckboxOther}{O{\shortfieldwidth} m}{% \par% - \full@CheckBox\quad#2\quad\smash{\full@TextField[#1]}% + \full@CheckBox\quad\IfBlankTF{#2}{}{#2\quad}\smash{\full@TextField[#1]}% \par\addvspace{\formskip}% } @@ -426,57 +430,71 @@ % TwoColumns{left}{right} - put two sections side-by-side \NewDocumentCommand{\TwoColumns}{+m +m}{% - \MultiColumntrue \begin{minipage}[t]{0.5\linewidth - 0.5\colsep}% + \MultiColumntrue% #1% + \MultiColumnfalse% \end{minipage}% \hfill \begin{minipage}[t]{0.5\linewidth - 0.5\colsep}% + \MultiColumntrue% #2% + \MultiColumnfalse% \end{minipage}% - \MultiColumnfalse \par\addvspace{\formskip}% } \NewDocumentCommand{\ThreeColumns}{+m +m +m}{% - \MultiColumntrue \begin{minipage}[t]{0.333\linewidth - 0.66\colsep}% + \MultiColumntrue% #1% + \MultiColumnfalse% \end{minipage}% \hfill \begin{minipage}[t]{0.333\linewidth - 0.66\colsep}% + \MultiColumntrue% #2% + \MultiColumnfalse% \end{minipage}% \hfill \begin{minipage}[t]{0.333\linewidth - 0.66\colsep}% + \MultiColumntrue% #3% + \MultiColumnfalse% \end{minipage}% - \MultiColumnfalse \par\addvspace{\formskip}% } \NewDocumentCommand{\FiveColumns}{+m +m +m +m +m}{% - \MultiColumntrue \begin{minipage}[t]{0.2\linewidth - 0.8\colsep}% + \MultiColumntrue% #1% + \MultiColumnfalse% \end{minipage}% \hfill \begin{minipage}[t]{0.2\linewidth - 0.8\colsep}% + \MultiColumntrue% #2% + \MultiColumnfalse% \end{minipage}% \hfill \begin{minipage}[t]{0.2\linewidth - 0.8\colsep}% + \MultiColumntrue% #3% + \MultiColumnfalse% \end{minipage}% \hfill \begin{minipage}[t]{0.2\linewidth - 0.8\colsep}% + \MultiColumntrue% #4% + \MultiColumnfalse% \end{minipage}% \hfill \begin{minipage}[t]{0.2\linewidth - 0.8\colsep}% + \MultiColumntrue% #5% + \MultiColumnfalse% \end{minipage}% - \MultiColumnfalse \par\addvspace{\formskip}% } @@ -485,19 +503,29 @@ {\scriptsize #1}% } +% ul{text} - underline a single word or short phrase +\NewDocumentCommand{\ul}{m}{% + \tikz[baseline=(word.base)]{% + \node[inner sep=1pt] (word) {#1}; + \draw[thick] (word.south west) -- (word.south east); + }% +} + % % % common title patterns % put the logo in the top right corner \NewDocumentCommand{\@logo}{}{ \if@Example \begin{tikzpicture}[remember picture, overlay] - \node[anchor=north east] at (current page.north east) [xshift=-0.5cm, yshift=-0.5cm] {% + \node[anchor=north east] + at (current page.north east) [xshift=-0.5cm, yshift=-0.5cm] {% \includegraphics[width=1.5cm]{logo.pdf}% }; \end{tikzpicture}% \else \begin{tikzpicture}[remember picture, overlay] - \node[anchor=north east] at (current page.north east) [xshift=-1.5cm, yshift=-1.5cm] {% + \node[anchor=north east] + at (current page.north east) [xshift=-1.5cm, yshift=-1.5cm] {% \includegraphics[width=3cm]{logo.pdf}% }; \end{tikzpicture}% diff --git a/doku.tex b/doku.tex index 510751a..ba91719 100644 --- a/doku.tex +++ b/doku.tex @@ -1,8 +1,9 @@ \documentclass{ltxdoc} -\usepackage{tikz,geometry,minted,fontspec,luacode} \usepackage[ngerman]{babel} -\usetikzlibrary{positioning} +\usepackage{tikz,geometry,minted,fontspec,luacode,csquotes} +\MakeOuterQuote{"} \geometry{a4paper,margin=2cm} +% font definition (same as cccbform.cls) \setmainfont[ Renderer=HarfBuzz, ItalicFont=Recursive, @@ -46,13 +47,16 @@ ItalicFeatures={RawFeature={+axis={MONO=0.0,CASL=0.4,slnt=-15,CRSV=1,wght=500}}} ]{Recursive} +% set up example build directory \directlua{ os.execute "mkdir -p cccbform-examples" } \directlua{ os.execute "cp cccbform.cls cccbform-examples/" } \directlua{ os.execute "cp logo.pdf cccbform-examples/" } - +% stuff to add before/after examples to form a full document \begin{luacode*} -HEADER = [[ +HEADER1 = [[ \documentclass[shortexample]{cccbform} +]] +HEADER2 = [[ \begin{document} ]] FOOTER = [[ @@ -80,51 +84,59 @@ FOOTER = [[ end return luaverbstart, luaverbend end +\end{luacode*} +\begin{luacode*} function CMD(name) return "\\"..name end + LF = "\n" + + function EndExample( EndFun, x1, x2 ) + CONTENT = EndFun( ) + if x1 ~= "" then + EXTRALINES, EXTRASTUFF = 1, "\\geometry{paperheight="..x1.."}\n" + else + EXTRALINES, EXTRASTUFF = 0, "" + end + local f = io.open( "cccbform-examples/"..x2..".tex", "w" ) + f:write( HEADER1, EXTRASTUFF, HEADER2, CONTENT, FOOTER ) + f:close( ) + os.execute( "cd cccbform-examples ; latexmk -pdflua "..x2..".tex" ) + local n, f = 0, io.open( "cccbform-examples/"..x2..".tex" ) + for l in f:lines( ) do n = n + 1 end + tex.print( "\\def\\lc{"..(n - 1).."}" ) + tex.print( "\\def\\ls{"..(3 + EXTRALINES).."}" ) + end \end{luacode*} \directlua{ ShortExampleStart, ShortExampleEnd = makeVerb "ShortExample" } -\NewDocumentEnvironment{ShortExample}{m m}{ - \directlua{ShortExampleStart()}}{\directlua{ - CONTENT = ShortExampleEnd( ) - local f = io.open( "cccbform-examples/#1.tex", "w" ) - f:write( HEADER, CONTENT, FOOTER ) - f:close( ) - os.execute( "cd cccbform-examples ; latexmk -pdflua #1.tex" ) - local n, f = 0, io.open( "cccbform-examples/#1.tex" ) - for l in f:lines( ) do n = n + 1 end - tex.print( CMD"def"..CMD"lc".."{" .. (n-1) .. "}" ) +\NewDocumentEnvironment{ShortExample}{O{} m m}{ + \addvspace{1em} + \directlua{ShortExampleStart()} +}{ + \directlua{ EndExample( ShortExampleEnd, "#1", "#2" ) } + \par + \vbox{ + \noindent + \begin{tikzpicture} + \node[anchor=north east] (code) at (-0.5ex,0) { + \begin{minipage}[t]{0.5\textwidth - 3ex} + \vspace{-2ex} + \inputminted[firstline=\ls,lastline=\lc]{tex}{cccbform-examples/#2.tex} + \end{minipage} + }; + \node[anchor=north west, draw=black!50] (output) at (0.5ex,0) { + \begin{minipage}[t]{0.5\textwidth - 2ex} + \includegraphics[width=\linewidth]{cccbform-examples/#2.pdf} + \end{minipage} + }; + \end{tikzpicture} + \par + \vspace{-2ex} + {\null\hfill\bfseries #3 \hfill\null} } - - \begin{tikzpicture}[example frame/.style={draw=gray!50, thick, inner sep=1ex}] - \node[draw=gray!30, fill=gray!5, inner sep=1ex, rounded corners, minimum width=\textwidth] (example container) {}; - \node[example frame, anchor=north west, minimum height=7cm] (code) at (example container.north west) { - \begin{minipage}[t]{0.45\textwidth} - \inputminted[firstline=3,lastline=\lc]{tex}{cccbform-examples/#1.tex} - \end{minipage} - }; - \node[example frame, anchor=north west, right=2mm of code, minimum height=7cm] (output) { - \begin{minipage}[t]{0.45\textwidth} - \includegraphics[width=\linewidth]{cccbform-examples/#1.pdf} - \end{minipage} - }; - \node[anchor=north west, font=\small\itshape] at (example container.north west |- code.north west) {Example: #2}; - \end{tikzpicture} - -% \begin{tikzpicture} -% \node[anchor=north west, inner sep=1ex, draw] (code) { -% \begin{minipage}[t]{0.45\textwidth} -% \inputminted[firstline=3,lastline=\lc]{tex}{cccbform-examples/#1.tex} -% \end{minipage} -% }; -% \node[anchor=north west, right=2mm of code, draw] (output) { -% \begin{minipage}[t]{0.45\textwidth} -% \includegraphics[width=\linewidth]{cccbform-examples/#1.pdf} -% \end{minipage} -% }; -% \end{tikzpicture} + \par + \addvspace{4ex} } \NewDocumentEnvironment{StandaloneExample}{m}{ @@ -151,6 +163,11 @@ FOOTER = [[ \end{tikzpicture} } +\setminted{autogobble,bgcolor=black!10,frame=lines,framesep=1ex,tabsize=4} + +\sloppy +\raggedbottom + \title{\texttt{cccbform} -- Formulare für den CCCB} \author{Frank Nord} \begin{document} @@ -159,16 +176,326 @@ FOOTER = [[ \section{Übersicht} -\begin{ShortExample}{text}{Text} -\Text{Test} +Die Grundstruktur für Formulare ist folgende: + +\begin{center} + \begin{minipage}{0.5\textwidth} + \begin{minted}{tex} + \documentclass{cccbform} + \begin{document} + % Inhalt hier + \end{document} + \end{minted} + \end{minipage} +\end{center} + +\texttt{cccbform} kümmert sich um die Details mit PDF-Formularen und definiert +Hilfsbefehle zur rein semantischen Erstellung von Formularen. Mit einer Reihe +von Befehlen kann dann recht bequem ein Formular definiert werden. + +\subsection{Für \TeX-Neulinge} + +Das meiste sollte auch ohne \TeX-Kenntnisse gehen, es gibt jedoch eine Reihe +von Sonderzeichen, die besondere Bedeutung haben. Als eines der wichtigeren +beginnt \texttt{\%} einen Zeilenkommentar. Bei den meisten Symbolen reicht es, +einen Backslash (\texttt{\textbackslash}) davorzusetzen, aber der Backslash +selbst wird z.~B. durch \texttt{\textbackslash textbackslash} und nicht +\texttt{\textbackslash\textbackslash} 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 diese jeweils +erzeugt. Das Symbol sollte generell ohne \texttt{\textbackslash usepackage} +auskommen und im \texttt{textmode} funktionieren -- diese Infos stehen ggf. +über/unter dem Zeichen.) + +Zu Leerzeichen und Zeilenumbrüchen noch folgendes: Einfache Zeilenumbrüche +werden von \TeX{} generell ignoriert bzw. wie ein Leerzeichen zwischen Worten +behandelt. Eine leere Zeile (also (mindestens) zwei aufeinanderfolgende +Zeilenumbrüche) beginnt einen neuen Absatz. (Das geht auch mit +\texttt{\textbackslash par}.) \texttt{\textbackslash\textbackslash} ist +ein "einfacher" Zeilenumbruch in der Ausgabe (ohne den Absatz zu beenden), der +hier aber möglichst vermieden werden sollte. Ein oder mehrere Leerzeichen +werden wie ein einzelnes Leerzeichen gelesen, erlauben aber generell +Zeilenumbrüche wenn die Zeile voll ist. \texttt{\textasciitilde} erzeugt +geschützte Leerzeichen, die nicht umbrechen dürfen (und z.~B. +(\texttt{z.\textasciitilde B.}) bei Abkürzungen oder Zahlen mit Einheiten +verwendet werden sollten.) Nach Befehlen (\texttt{\textbackslash irgendwas}) +werden Leerzeichen generell als Trenner des Namens von nachfolgenden Zeichen +ignoriert und ein Verdoppeln des Leerzeichen bringt ebenfalls nichts. +Stattdessen kann man entweder leere Argumente angeben +(\texttt{\textbackslash TeX\{\} test}) oder das Leerzeichen ebenfalls mit einem +Backslash schützen (\texttt{\textbackslash TeX\textbackslash\ test}.) + +\section{Klassen-Optionen} + +PDF-Formulare haben eine ganze Reihe von Problemen. Das wichtigste ist, dass +viele Viewer PDF-Formulare nicht mitdrucken. Die Elemente wie sie hier erzeugt +werden sind also in Wirklichkeit ein Bild, was wie ein Formularfeld aussieht und +dann ein "echtes" Feld direkt darüber platziert. \emph{Manche} Viewer hingegen +drucken die Elemente mit, was dann wiederum anders komisch aussehen kann\dots + +\subsection{\texttt{noform}} + +Wird das Dokument also stattdessen mit +\mintinline{tex}|\documentclass[noform]{cccbform}| begonnen, werden keine +PDF-Formular-Felder erzeugt sondern nur die "falschen" als Bilder erzeugt. Das +stellt sicher, dass reine Druckvorlagen (die eh nicht ausgefüllt werden sollen) +mit allen Viewern fehlerfrei gedruckt werden können. + +\section{Struktur} + +Bereitgestellte Befehle fallen grob in 4 Kategorien -- Titel, Inhalt, Struktur, Hervorhebung. + +\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. + +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.) + +\subsubsection{\texttt{\textbackslash 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\}}} + +\begin{ShortExample}[8.865cm]{addresstitle}{Titel und Adresse} +\AddressTitle{Beispieltitel} +\Text{(...und hier geht's weiter.)} +\end{ShortExample} + +Es gibt auch die Variante mit \texttt{*}, welche zusätzlich das Logo einbettet. + +\begin{ShortExample}[8.865cm]{addresstitlestar}{Titel, Adresse und Logo} +\AddressTitle*{Beispieltitel} +\Text{(...und hier geht's weiter.)} +\end{ShortExample} + +\subsection{Inhalt} + +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: + +\begin{ShortExample}{textgood}{Text mit korrekten Abständen} +\Text{Dieser Satz kein Verb.} +\TextField{Lachhubel} +\Text{Die blöden Ösen!} +\end{ShortExample} + +\begin{ShortExample}{textbad}{lose Worte -- nicht gut!} +Dieser Satz kein Verb. +\TextField{Lachhubel} +Die blöden Ösen! +\end{ShortExample} + +Auch lange Texte mit mehreren Absätzen können in \texttt{\textbackslash Text} +verwendet werden. + +\begin{ShortExample}{textlong}{langer Text ist kein Problem} +\Text{ + Lorem ipsum dolor sit amet, + consectetuer adipiscing elit. + Aenean commodo ligula eget dolor. +} +\TextField{Aenean massa.} +\Text{ + Cum sociis natoque penatibus et + magnis dis parturient montes, + nascetur ridiculus mus. + + Donec quam felis, ultricies nec, + pellentesque eu, pretium quis, sem. + Nulla consequat massa quis enim. +} +\end{ShortExample} + +\subsubsection{Textfelder} + +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). + \begin{ShortExample}{textfield}{normales Textfeld} -\TextField{abc} +\TextField{Bezeichnung} \end{ShortExample} +Wird die volle Breite benötigt gibt es auch die Variante mit Stern: + +\begin{ShortExample}{textfieldstar}{maximale Breite} +\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. + \begin{ShortExample}{shorttextfield}{kurzes Textfeld} -\ShortTextField{abc} +\ShortTextField{Stromverbrauch (TWh)} \end{ShortExample} +Optional kann die Länge auch explizit als Faktor relativ zur Textbreite +angegeben werden. Das Formular sieht aber einheitlicher aus, wenn das +\emph{nicht} gemacht wird, also bitte zweimal überlegen, ob es das +\emph{wirklich} braucht. + +\begin{ShortExample}{shorttextfieldopt}{besonders kurzes Textfeld} +\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. + +\begin{ShortExample}{multilinetextfield}{mehrzeiliges Textfeld} +%%% FIXME bug in preview (works in doc) +\Text{} +\MultilineTextField[2cm]{Kringel} +\Text{} +\end{ShortExample} + +\begin{ShortExample}{multilinetextfieldbad}{einzeiliges mehrzeiliges Textfeld} +%%% FIXME bug in preview (works in doc) +\Text{} +\MultilineTextField{Kringel} +\Text{} +\end{ShortExample} + +Auch hier gibt es wieder die Variante mit Stern für volle Breite: + +\begin{ShortExample}{multilinetextfieldstar}{breites mehrzeiliges Textfeld} +%%% FIXME bug in preview (works in doc) +\Text{} +\MultilineTextField*[2cm]{Kringel} +\Text{} +\end{ShortExample} + +\paragraph{Spezialfälle} Unterschriften sollen üblicherweise händisch gesetzt +werden, hierfür gibt es daher ein Feld was nur ein "falsches" Formularfeld ist. + +\begin{ShortExample}{signature}{Feld für Unterschriften} +\Signature +\end{ShortExample} + +Das Label kann optional geändert werden. + +\begin{ShortExample}{signatureopt}{Unterschrift mit anderem Label} +\Signature[Unterschrift] +\end{ShortExample} + +Ebenfalls gibt es ein etwas größeres Feld für Notizen oder Vermerke. + +\begin{ShortExample}{notes}{großes Feld} +%%% FIXME bug in preview (works in doc) +\Notes +\Text{} +\end{ShortExample} + +Auch hier kann optional das Label geändert werden. + +\begin{ShortExample}{notesopt}{großes Feld} +%%% FIXME bug in preview (works in doc) +\Notes[Platz zum Malen] +\Text{} +\end{ShortExample} + +\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.) + +\begin{ShortExample}{checkbox}{Checkboxen} +\Checkbox{Ich habe die AGB, + Datenschmutzerklärung, + Beitragsordnung, Satzung, Hausordnung + (inklusive Durchführungsverordnung + zur Pflanzenpflege im Treppenhaus), + Geheimhaltungsvereinbarung, die + Datenschutzgrundsätze in leichter + Sprache (PDF, 451 Seiten), das + Hygienekonzept, sowie die Anleitung + zum Lesen von Anleitungen gelesen.} +\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. + +\begin{ShortExample}{othercheckbox}{"Sonstiges"} +\Text{Meine Lieblingstaste ist:} +\begin{Indented} + \Checkbox{Escape} + \Checkbox{Enter} + \CheckboxOther[0.1]{Buchstabe} + \CheckboxOther[0.1]{F\hspace{-1em}} + \CheckboxOther{} +\end{Indented} +\end{ShortExample} + +\goodbreak + +\paragraph{Spezielle Zwecke} + +In Sondersituationen könnten z.~B. in Aufzählungen innerhalb einer Zeile auch +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}-\nobreak Leerzeichen angehängt werden.) + +\begin{ShortExample}{inlinecheckbox}{Sonderfall -- Inline} +\Text{Ich bin \InlineCheckbox groß, + \InlineCheckbox grau, und/oder + \InlineCheckbox unwichtig. +} +\begin{Indented} + \Text{(Bearbeitungsvermerk: Bei + Anwahl von zwei oder mehr ist der/die + Ausfüllende möglicherweise ein + Irrelefant und vor Aufnahme + \ul{zwingend} eine + Löschdiskussionsrecherche + durchzuführen.)} +\end{Indented} +\end{ShortExample} + +\subsection{Struktur} + + + +% Environment: Indented {O{}} +% \RuleSection {m} +% \Rule {} + +\subsubsection{"klassische" Struktur} + +% \Section {m} +% \Subsection {m} + +\subsubsection{mehrspaltige Bereiche} + +% \TwoColumns {+m +m} +% \ThreeColumns {+m +m +m} +% \FiveColumns {+m +m +m +m +m} + +\subsection{Hervorhebung} + +% \details {m} +% \ul {m} + \end{document} +