fold markers

This commit is contained in:
nobody 2024-12-19 16:48:15 +01:00
parent 2f71b5589d
commit 6ad266b3c6

View file

@ -1,6 +1,7 @@
%% NB: Dieses Dokument baut beim ersten Mal so 3-10 Minuten je nach %% NB: Dieses Dokument baut beim ersten Mal so 3-10 Minuten je nach
%% Dateisystem-Performance… (Sehr viele Beispiele die jeweils komplette %% Dateisystem-Performance… (Sehr viele Beispiele die jeweils komplette
%% eigenständige Dokumente sind.) Danach sollte es gehen. %% eigenständige Dokumente sind.) Danach sollte es gehen.
% header <<<
\documentclass[ngerman,10pt]{scrreprt} \documentclass[ngerman,10pt]{scrreprt}
\setcounter{secnumdepth}{\subsubsectionnumdepth} \setcounter{secnumdepth}{\subsubsectionnumdepth}
\setcounter{tocdepth}{\subsubsectiontocdepth} \setcounter{tocdepth}{\subsubsectiontocdepth}
@ -13,6 +14,7 @@
%% FIXME: RawFeature +case x microtype fixes %% FIXME: RawFeature +case x microtype fixes
%% see https://github.com/schlcht/microtype/issues/33 for fix notes %% see https://github.com/schlcht/microtype/issues/33 for fix notes
%% see https://fontdrop.info/?darkmode=true for character lookup %% see https://fontdrop.info/?darkmode=true for character lookup
% fonts <<<
\setmainfont[ \setmainfont[
Renderer=HarfBuzz, Renderer=HarfBuzz,
ItalicFont=Recursive, ItalicFont=Recursive,
@ -52,8 +54,11 @@
BoldItalicFeatures={RawFeature={+axis={MONO=0.0,CASL=0.4,slnt=-15,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}}} ItalicFeatures={RawFeature={+axis={MONO=0.0,CASL=0.4,slnt=-15,CRSV=1,wght=500}}}
]{Recursive} ]{Recursive}
% >>>
\usepackage{microtype} \usepackage{microtype}
% embedded examples <<<
% set up example build directory % set up example build directory
\directlua{ os.execute "mkdir -p ./cccbform-examples/" } \directlua{ os.execute "mkdir -p ./cccbform-examples/" }
\directlua{ os.execute "cp cccbform.cls logo.pdf cccbform-examples/" } \directlua{ os.execute "cp cccbform.cls logo.pdf cccbform-examples/" }
@ -70,6 +75,7 @@ FOOTER = [[
]] ]]
\end{luacode*} \end{luacode*}
% crinkly paper tears <<<
\begin{luacode*} \begin{luacode*}
-- PARAM: number of layers, resulting in 2^LAYERS points -- PARAM: number of layers, resulting in 2^LAYERS points
local LAYERS = 7 local LAYERS = 7
@ -145,8 +151,8 @@ function plotPoints( x1, x2, y1, y2, smooth_top )
buf = table.concat( buf, " -- " ) buf = table.concat( buf, " -- " )
tex.print( buf ) tex.print( buf )
end end
\end{luacode*} \end{luacode*}
% >>>
\begin{luacode*} \begin{luacode*}
function makeVerb( envname ) function makeVerb( envname )
@ -241,6 +247,8 @@ end
\addvspace{4ex} \addvspace{4ex}
} }
% XXX now unused… keep while things are in flux and just delete if we don't add
% complete examples
\NewDocumentEnvironment{StandaloneExample}{m}{ \NewDocumentEnvironment{StandaloneExample}{m}{
\VerbatimEnvironment% \VerbatimEnvironment%
\begin{VerbatimOut}{cccbform-examples/#1.tex}}% \begin{VerbatimOut}{cccbform-examples/#1.tex}}%
@ -265,6 +273,8 @@ end
\end{tikzpicture} \end{tikzpicture}
} }
% >>>
\setminted{autogobble,bgcolor=black!10,frame=lines,framesep=1ex,tabsize=4,fontsize=\small} \setminted{autogobble,bgcolor=black!10,frame=lines,framesep=1ex,tabsize=4,fontsize=\small}
\setmintedinline{frame=none,framesep=0pt,fontsize=\small} \setmintedinline{frame=none,framesep=0pt,fontsize=\small}
\newmintinline[texcode]{tex}{} \newmintinline[texcode]{tex}{}
@ -278,15 +288,18 @@ end
\begin{document} \begin{document}
\maketitle \maketitle
\tableofcontents \tableofcontents
% >>>
\chapter{TODO} \chapter{TODO} % <<<
\begin{itemize} \begin{itemize}
\item Grundsätze des aktuellen Designs \item Grundsätze des aktuellen Designs
\item \TeX-Intro zum Ende, +build info \item \TeX-Intro zum Ende, +build info
\end{itemize} \end{itemize}
\chapter{Übersicht} % >>>
\chapter{Übersicht} % <<<
Die Grundstruktur für Formulare ist folgende: 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 \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 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 \texcode{\Befehl{Arg1}{Arg2}...{ArgN}}, wobei Argumente in geschweiften
Klammern immer angegeben werden müssen. Einige Befehle akzeptieren auch Klammern immer angegeben werden müssen. Einige Befehle akzeptieren auch
\emph{optionale Argumente}, welche als Konvention eckige Klammern benutzen -- \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{*} Zusätzlich gibt es manchmal auch "gesternte" Varianten, wo ein \texttt{*}
unmittelbar auf den Namen folgt. Diese machen in der Regel nahezu das gleiche unmittelbar auf den Namen folgt (\texcode{\Fnord{23}} oder
wie die normale Variante ohne Stern. \texcode{\Fnord*{23}}.) Konzeptuell ist das ein optionales
true/false-Argument, nur mit anderer Schreibweise.
\subsection{Erzeugen von PDFs} \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 einzelnes Dokument gebaut werden, so sollte \texttt{make foo.pdf} zu einem
\texttt{foo.tex} genau dieses eine Dokument bauen. \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 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 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 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, Bereitgestellte Befehle fallen grob in 4 Kategorien -- Titel, Inhalt, Struktur,
Hervorhebung. Zusätzlich hat die Klasse selbst ein paar Optionen. 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 PDF-Formulare haben eine ganze Reihe von Problemen. Das wichtigste ist, dass
viele Viewer PDF-Formulare nicht mitdrucken. Die Elemente wie sie hier erzeugt 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 das ausgegebene Dokument. Fast alle Beispiele hier sind
\texttt{[shortexample]}s. \texttt{[shortexample]}s.
\section{Titel} % >>>
\section{Titel} % <<<
Aktuell gibt es zwei Arten von Titeln. In jedem Fall sollte genau einer und Aktuell gibt es zwei Arten von Titeln. In jedem Fall sollte genau einer und
unmittelbar in der Zeile hinter dem \texcode{\begin{document}} verwendet 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.)} \Text{(...und hier geht's weiter.)}
\end{ShortExample} \end{ShortExample}
\section{Inhalt} % >>>
\section{Inhalt} % <<<
Hier gibt es größtenteils Befehle für Formularfelder. Anders als in normalen 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} \TeX-Dokumenten ist es hier jedoch wichtig, für korrekte Abstände \emph{allen}
@ -493,7 +517,7 @@ werden.
} }
\end{ShortExample} \end{ShortExample}
\subsection{Textfelder} \subsection{Textfelder} % <<<
Die vermutlich wichtigste Komponente, entsprechend viele Varianten gibt es. 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 Text nicht relevant ist, da dann die Abstände um die Block-Elemente herum
sowieso für ein einheitliches Aussehen sorgen. sowieso für ein einheitliches Aussehen sorgen.
\subsection{Checkboxen} % >>>
\subsection{Checkboxen} % <<<
\paragraph{Normale Verwendung} Gibt es eigentlich nicht viel dazu zu sagen -- \paragraph{Normale Verwendung} Gibt es eigentlich nicht viel dazu zu sagen --
\texcode{\Checkbox{Label}} für eine Checkbox (und das Label kann auch ein \texcode{\Checkbox{Label}} für eine Checkbox (und das Label kann auch ein
@ -693,11 +719,15 @@ angehängt werden.)
\end{Indented} \end{Indented}
\end{ShortExample} \end{ShortExample}
\section{Struktur} % >>>
% >>>
\section{Struktur} % <<<
Drei Kategorien -- formularspezifisch, "klassische" Abschnitte, und mehrere Spalten. 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 \paragraph{\texttt{Indented}} Visuelle Gruppierung durch Einrücken von
zusammenhängenden bzw. untergeordneten Abschnitten ist eine sehr gute Option, 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:} \CheckboxOther[0.5]{Abgelehnt, weil:}
\end{ShortExample} \end{ShortExample}
\clearpage % >>>
\subsection{"klassische" Struktur} \subsection{"klassische" Struktur} % <<<
In \TeX\ üblich sind \texcode{\section}, \texcode{\subsection}, etc.; in In \TeX\ üblich sind \texcode{\section}, \texcode{\subsection}, etc.; in
Analogie dazu gibt es für ggf. längere Formulare \texcode{\Section} und Analogie dazu gibt es für ggf. längere Formulare \texcode{\Section} und
@ -773,9 +803,9 @@ Struktur geschaffen werden kann.
\Signature \Signature
\end{ShortExample} \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 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 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 Foo/Bar/Baz-Gruppierung. Auf A4 geht diese Schachtelung aber üblicherweise noch
problemlos. problemlos.
\section{Hervorhebung} % >>>
% >>>
\section{Hervorhebung} % <<<
Es gibt verschiedene in \TeX\ eingebaute Befehle, die ebenfalls verwendet Es gibt verschiedene in \TeX\ eingebaute Befehle, die ebenfalls verwendet
werden können\dots\ aber "weniger ist mehr" trifft insbesondere auch hier zu. 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.}} verwenden.}}
\end{ShortExample} \end{ShortExample}
% >>>
% >>>
\end{document} \end{document}
% vim: set fdm=marker fmr=<<<,>>> :