diff --git a/doku.tex b/doku.tex index e92e4d3..1e04b32 100644 --- a/doku.tex +++ b/doku.tex @@ -1,6 +1,7 @@ %% NB: Dieses Dokument baut beim ersten Mal so 3-10 Minuten je nach %% Dateisystem-Performance… (Sehr viele Beispiele die jeweils komplette %% eigenständige Dokumente sind.) Danach sollte es gehen. +% header <<< \documentclass[ngerman,10pt]{scrreprt} \setcounter{secnumdepth}{\subsubsectionnumdepth} \setcounter{tocdepth}{\subsubsectiontocdepth} @@ -13,6 +14,7 @@ %% 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 +% fonts <<< \setmainfont[ Renderer=HarfBuzz, ItalicFont=Recursive, @@ -52,8 +54,11 @@ 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} +% embedded examples <<< + % set up example build directory \directlua{ os.execute "mkdir -p ./cccbform-examples/" } \directlua{ os.execute "cp cccbform.cls logo.pdf cccbform-examples/" } @@ -70,6 +75,7 @@ FOOTER = [[ ]] \end{luacode*} +% crinkly paper tears <<< \begin{luacode*} -- PARAM: number of layers, resulting in 2^LAYERS points local LAYERS = 7 @@ -145,8 +151,8 @@ function plotPoints( x1, x2, y1, y2, smooth_top ) buf = table.concat( buf, " -- " ) tex.print( buf ) end - \end{luacode*} +% >>> \begin{luacode*} function makeVerb( envname ) @@ -241,6 +247,8 @@ end \addvspace{4ex} } +% XXX now unused… keep while things are in flux and just delete if we don't add +% complete examples \NewDocumentEnvironment{StandaloneExample}{m}{ \VerbatimEnvironment% \begin{VerbatimOut}{cccbform-examples/#1.tex}}% @@ -265,6 +273,8 @@ end \end{tikzpicture} } +% >>> + \setminted{autogobble,bgcolor=black!10,frame=lines,framesep=1ex,tabsize=4,fontsize=\small} \setmintedinline{frame=none,framesep=0pt,fontsize=\small} \newmintinline[texcode]{tex}{} @@ -278,15 +288,18 @@ end \begin{document} \maketitle \tableofcontents +% >>> -\chapter{TODO} +\chapter{TODO} % <<< \begin{itemize} \item Grundsätze des aktuellen Designs \item \TeX-Intro zum Ende, +build info \end{itemize} -\chapter{Übersicht} +% >>> + +\chapter{Übersicht} % <<< Die Grundstruktur für Formulare ist folgende: @@ -364,14 +377,16 @@ Backslash schützen (\texcode{\TeX\ test} = \TeX\ test.) \TeX\ ist eine sehr flexible Makro-Sprache, aber sowohl \LaTeX\ als auch diese Klasse geben sich Mühe, das meiste davon zu verstecken und sehr einheitliche -Struktur vorzugeben. Befehlsaufrufe haben generell die Form +Struktur vorzugeben. Befehlsaufrufe haben hier generell die Form \texcode{\Befehl{Arg1}{Arg2}...{ArgN}}, wobei Argumente in geschweiften Klammern immer angegeben werden müssen. Einige Befehle akzeptieren auch \emph{optionale Argumente}, welche als Konvention eckige Klammern benutzen -- -diese können entweder angegeben oder komplett weggelassen werden. +diese können entweder angegeben oder komplett weggelassen werden +(\texcode{\Foo{Baz}} oder \texcode{\Foo[Bar]{Baz}}.) Zusätzlich gibt es manchmal auch "gesternte" Varianten, wo ein \texttt{*} -unmittelbar auf den Namen folgt. Diese machen in der Regel nahezu das gleiche -wie die normale Variante ohne Stern. +unmittelbar auf den Namen folgt (\texcode{\Fnord{23}} oder +\texcode{\Fnord*{23}}.) Konzeptuell ist das ein optionales +true/false-Argument, nur mit anderer Schreibweise. \subsection{Erzeugen von PDFs} @@ -380,18 +395,23 @@ Makefile findet automatisch alle neuen \texttt{.tex}-Dateien.) Soll nur ein einzelnes Dokument gebaut werden, so sollte \texttt{make foo.pdf} zu einem \texttt{foo.tex} genau dieses eine Dokument bauen. -\emph{Wirklich} alle Dokumente zu bauen dürfte beim ersten Mal mehrere Minuten +Wirklich \emph{alle} Dokumente zu bauen dürfte beim ersten Mal mehrere Minuten dauern. (Diese Dokumentation hier enthält viele Beispiele, die tatsächlich eigenständige Dokumente sind. Der Overhead für alle je 2× \texttt{lualatex} zu starten, mehrere temporäre Dateien zu schreiben, etc. etc. kann gut 3--10 -Minuten fressen.) +Minuten fressen.) Danach erkennen \texttt{make} bzw. \texttt{latexmk}, dass +sich in den meisten Dateien nichts verändert hat und es geht bei zukünftigen +Durchläufen deutlich schneller (solange nicht die Klasse verändert wird -- was +wieder alles neu bauen würde -- wenige Sekunden bis ca. eine Minute.) -\chapter{Befehle} +% >>> + +\chapter{Befehle} % <<< Bereitgestellte Befehle fallen grob in 4 Kategorien -- Titel, Inhalt, Struktur, Hervorhebung. Zusätzlich hat die Klasse selbst ein paar Optionen. -\section{Klassen-Optionen} +\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 @@ -416,7 +436,9 @@ macht das gleiche, berechnet aber am Ende die tatsächliche Höhe und verkürzt das ausgegebene Dokument. Fast alle Beispiele hier sind \texttt{[shortexample]}s. -\section{Titel} +% >>> + +\section{Titel} % <<< Aktuell gibt es zwei Arten von Titeln. In jedem Fall sollte genau einer und unmittelbar in der Zeile hinter dem \texcode{\begin{document}} verwendet @@ -452,7 +474,9 @@ Es gibt auch die Variante mit \texttt{*}, welche zusätzlich das Logo einbettet. \Text{(...und hier geht's weiter.)} \end{ShortExample} -\section{Inhalt} +% >>> + +\section{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} @@ -493,7 +517,7 @@ werden. } \end{ShortExample} -\subsection{Textfelder} +\subsection{Textfelder} % <<< Die vermutlich wichtigste Komponente, entsprechend viele Varianten gibt es. @@ -628,7 +652,9 @@ nochmal darauf hingewiesen werden, dass dieses Problem bei nur einer Zeile Text nicht relevant ist, da dann die Abstände um die Block-Elemente herum sowieso für ein einheitliches Aussehen sorgen. -\subsection{Checkboxen} +% >>> + +\subsection{Checkboxen} % <<< \paragraph{Normale Verwendung} Gibt es eigentlich nicht viel dazu zu sagen -- \texcode{\Checkbox{Label}} für eine Checkbox (und das Label kann auch ein @@ -693,11 +719,15 @@ angehängt werden.) \end{Indented} \end{ShortExample} -\section{Struktur} +% >>> + +% >>> + +\section{Struktur} % <<< Drei Kategorien -- formularspezifisch, "klassische" Abschnitte, und mehrere Spalten. -\subsection{formularspezifisch angepasste Formen} +\subsection{formularspezifisch angepasste Formen} % <<< \paragraph{\texttt{Indented}} Visuelle Gruppierung durch Einrücken von zusammenhängenden bzw. untergeordneten Abschnitten ist eine sehr gute Option, @@ -750,9 +780,9 @@ Stellen zur grafischen Trennung eingesetzt werden kann. \CheckboxOther[0.5]{Abgelehnt, weil:} \end{ShortExample} -\clearpage +% >>> -\subsection{"klassische" Struktur} +\subsection{"klassische" Struktur} % <<< In \TeX\ üblich sind \texcode{\section}, \texcode{\subsection}, etc.; in Analogie dazu gibt es für ggf. längere Formulare \texcode{\Section} und @@ -773,9 +803,9 @@ Struktur geschaffen werden kann. \Signature \end{ShortExample} -\clearpage +% >>> -\subsection{mehrspaltige Bereiche} +\subsection{mehrspaltige Bereiche} % <<< 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 @@ -815,7 +845,11 @@ Bei zu vielen Spalten werden die Abstände unlesbar -- siehe hier die Foo/Bar/Baz-Gruppierung. Auf A4 geht diese Schachtelung aber üblicherweise noch problemlos. -\section{Hervorhebung} +% >>> + +% >>> + +\section{Hervorhebung} % <<< Es gibt verschiedene in \TeX\ eingebaute Befehle, die ebenfalls verwendet werden können\dots\ aber "weniger ist mehr" trifft insbesondere auch hier zu. @@ -854,5 +888,10 @@ oder -12!) zum Kopieren per Fax zu verwenden.}} \end{ShortExample} +% >>> + +% >>> + \end{document} +% vim: set fdm=marker fmr=<<<,>>> :