diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/nox/nox.tex |
Initial commit
Diffstat (limited to 'macros/latex/contrib/nox/nox.tex')
-rw-r--r-- | macros/latex/contrib/nox/nox.tex | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/macros/latex/contrib/nox/nox.tex b/macros/latex/contrib/nox/nox.tex new file mode 100644 index 0000000000..da53574559 --- /dev/null +++ b/macros/latex/contrib/nox/nox.tex @@ -0,0 +1,186 @@ +\documentclass[10pt,a4paper]{article}% +\usepackage[utf8]{inputenc}% +\usepackage[ngerman]{babel}% +\usepackage[colspecstaysintable,c]{nox} +\usepackage{amsmath,graphicx,tabularx} +\author{ctansearch,rais} +\title{Nox v.1.0} +\begin{document}% +\maketitle +\abstract{Dieses Paket ist aus einer kleinen Onlinezusammenarbeit entstanden. Es +ermöglicht, Daten, Texte und \TeX/\LaTeX - Befehle und Umgebungen in einem Array +unterzubringen und später in frei definierbaren und fortlaufenden Tabellen +abzurufen. Ursprünglich hieß der Versuch \texttt{tablenumbers} Der häufige +Gebrauch des \textbackslash noexpand-Befehls hat diesem Paket den Namen \texttt{Nox} +gegeben.}\par +\section{Allgemeines} +Werte können in beliebiger Anzahl in den Array \begin{verbatim} +\deflintab{1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17} \end{verbatim} eingegeben werden. +Dann legt man die Ausrichtung innerhalb der Tabelle fest +\begin{verbatim} +\renewcommand{\cellflush}{\raggedright} +\renewcommand{\cellflush}{\raggedleft} +\renewcommand{\cellflush}{\centering} +\renewcommand{\cellflush}{} %ergibt Blocksatz +\end{verbatim} +Man definiert mit \begin{verbatim}\tntabledimen{x}{y}\end{verbatim} die +Spaltenbreite x und Zeilenhöhe y. +Durch \begin{verbatim}\tntab[x]{y}{y Elemente in x Spalten}\end{verbatim} legt man fest, in wievielen Spalten +wieviele Elemente des Array dargestellt werden sollen. Wenn die Anzahl der +abgerufenen Elemente (y*x) kleiner ist, als die im Array verfügbaren Elemente, können +diese durch weitere, anschließende Tabellen abgerufen werden. Wenn sie größer +ist, erscheint ein Fehlermeldung. + +\section{Anwendung mit Zahlen} +\renewcommand{\cellflush}{} +\begin{verbatim} +\deflintab{1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17} +\renewcommand{\cellflush}{\raggedright} +\tntabledimen{1}{1} %Zeilenhöhe 1\baselineskip Zellenbreite 1\basecolskip +\tntab[4]{8}{2x4} +\tntab[4]{8}{4x8} +\tntab[4]{8}{4x8} +\end{verbatim} ergibt +\deflintab{1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17} +\tntabledimen{1}{5} +\tntab[4]{8}{2x4} +Zwischen den Tabellen kann man ohne weiteres einen Text einbringen, die +Tabelle wird einfach weitergeführt. +\tntab[4]{8}{2x4} +\subsection{Verschachtelungen} +Mit Verschachtelungen kann man auch mehrere Tabellen nebeneinander +setzen. Wieviele Elemente und Befehle solche Teiltabellen aufnehmen können muß +noch getestet werden. +\def\TabA{%Tabelle in einem Befehl zusammenfassen addbyctans 11.06.13 +\deflintab{ +\celllabel{A} +{\nox\begin{tabular}{cccc}\nox\caption{}\nox\\ +1\amp 2\amp \nox\\ +1\amp 2\amp 3 \nox\\ +1\amp 2\amp 3 $\nox\rightarrow$\nox\\ +\nox\end{tabular}}, +\celltitle{B} +{\nox\begin{tabular}{cccc}\nox\caption{B}\nox\\ +1\amp 2\amp 3 \nox\\ +1\amp 2\amp 3 \nox\\ +1\amp 2\amp 3 $\nox\rightarrow$\nox\\ +\nox\end{tabular}}, +\celltitle{C} +{\nox\begin{tabular}{cccc}\nox\caption{C}\nox\\ +1\amp 2\amp 3 \nox\\ +1\amp 2\amp 3 \nox\\ +1\amp 2\amp 3 $\nox\rightarrow$\nox\\ +\nox\end{tabular}}, +\celltitle{D} +{\nox\begin{tabular}{cccc}\nox\caption{D}\nox\\ +1\amp 2\amp 3 \nox\\ +1\amp 2\amp 3 \nox\\ +1\amp 2\amp 3 $\nox\rightarrow$\nox\\ +\nox\end{tabular}}, +\celltitle{E} +{\nox\begin{tabular}{cccc}\nox\caption{E}\nox\\ +1\amp 2\amp 3 \nox\\ +1\amp 2\amp 3 \nox\\ +1\amp 2\amp 3 $\nox\rightarrow$\nox\\ +\nox\end{tabular}}, +\celltitle{F} +{\nox\begin{tabular}{cccc}\nox\caption{F}\nox\\ +1\amp 2\amp 3 \nox\\ +1\amp 2\amp 3 \nox\\ +1\amp 2\amp 3 $\nox\rightarrow$\nox\\ +\nox\end{tabular}} +} +\tntabledimen{9}{8} +\tntab[3]{6}{Zwei mal drei}} +\TabA%Zusammengefasste Tabelle abrufen.addbyctans 11.06.13 + +Wenn man möchte, kann man die Konstruktionen jeweils als eigenen Befehl +definieren und dort abrufen, wo man sie braucht. So ist zum Beispiel die +Tabellenkette [\ref{A}] im Befehl \texttt{$\backslash$TabA} gespeichert. +Man kann solche Tabellen in einer externen Datei speichern und bei Bedarf +einbinden oder zum Beispiel Tabellenvorlagen erarbeiten, in die man nur noch +die Daten einfügt. +Für den Befehl \texttt{$\backslash$tntabledimen} ist zu erwähnen, daß er für alle +folgenden Tabellen gilt, solange er nicht neu definiert wird. Man kann also +alle Tabellen eines Dokumentes leicht auf ein Format bringen. +\section{Anwendung mit Texten} +Eine Anwendung mit Texten macht es möglich, Spalten mit fortlaufenden Texten +zu füllen, die bei einem Zeilenwechsel immer mit der ersten Spalte neu beginnen. +Automatische Spaltenwechsel sind nach wie vor nicht möglich, sie müssen im +Array durch geschweifte Klammern(Gruppieren) und Kommata definiert werden. +Die Zeilenhöhe wird dabei explizit festgelegt, die Zeilenhöhen passen sich +\textbf{nicht} automatisch an. Es gibt derzeit keine Möglichkeit, die Anzahl +der Zeichen mit der Spaltenbreite und Zeilenhöhe in Beziehung zu setzen um so +einen automatischen Spaltenumbruch zu erzeugen. Übervolle Spalten führen +deshalb zu einem Überlauf, der durch veränderte Gruppierung , breitere Spalten +oder größere Zeilenhöhen ausgeglichen werden muß. Die Anpassung durch +\texttt{$\backslash$tntabledimen} macht eine sehr genaue Dimensionierung der +Tabellen möglich, worauf man nicht ohne weiteres verzichten +sollte. +\begin{verbatim} +\deflintab{{...},{...},{...},{...},{...}} +\tntabledimen{12}{7}%Zeilenhöhe Spaltenbreite +\tntab[4]{12}{Worte} +\end{verbatim} ergibt +\tntabledimen{5}{7.5}%Zeilenhöhe Spaltenbreite +\renewcommand{\cellflush}{\raggedright} +\deflintab{{Hier wird ein Text dargestellt, der in einer Spalte ausgegeben + wird.},{In der zweiten Spalte wird er fortgeführt, so wie er},{in der + dritten Spalte beendet wird.},{Der nächste Text wird in die folgende + Spalte oder Zeile verschoben.},{Dies + hängt von der Gestaltung der Tabelle(der Spaltenanzahl, Spaltenhöhe und der + Gruppierung) ab.}} + +\tntab[4]{8}{Worte} +\section{Anwendung mit Umgebungen und Befehlen} +In dem Array \texttt{$\backslash$deflintab} können auch Befehle oder Umgebungen untergebracht werden, was +eine große Zahl von Gestaltungsmöglichkeiten in Tabellenzellen erlaubt. Hier +kommt der Befehl \texttt{$\backslash$noexpand} zum Tragen, der durch +\texttt{$\backslash$nox} abgekürzt wird. Wenn man allen +\texttt{$\backslash$} ein +\texttt{$\backslash$nox} voranstellt, werden die Befehle nicht expandiert und +kommen erst später zur Anwendung. Für viele Befehle und Umgebungen +funktioniert dies, im Einzelnen muß man es ausprobieren. Manche Umgebungen muß +man zusätzlich gruppieren \{...\}. +\tntabledimen{5}{8} +\deflintab{ +\celllabel{List}\nox\begin{list}{\nox\dots}{\nox\itemsep \nox\labelsep \nox\labelwidth \nox\leftmargin\nox\listparindent\nox\parsep\nox\parskip\nox\partopsep\nox\rightmargin \nox\topsep } +\nox\item First item \nox\item Second item \nox\end{list}, +\celllabel{Equation } \nox\begin{equation}\nox\sqrt{15}=3.87\nox\end{equation}, +\celllabel{Itemize } \nox\begin{itemize}\nox\item Aufzählung \nox\item Aufzählung \nox\end{itemize}, +\celllabel{Math} Text ist immer dabei \nox\begin{math}x=f(y^2+2) + \nox\end{math}, +\celllabel{MathA} Text ist immer dabei \nox\begin{math}x=f(y^2+2) \nox\end{math}, +\celllabel{frac}$\nox\frac{\nox\pi}{180^\nox\circ}=1$, +} +\tntab[3]{8}{Umgebungen und Befehle} +\section{Cellnotes} +Aus dem Paket \textsl{mbenotes.sty} habe ich den Code entliehen, der Anmerkungen in jeder +Zelle möglich macht. Diese werden am Ende der jeweiligen Teiltabelle +ausgegeben, sofern sie vorhanden sind. \texttt{$\backslash$cellnote{}} muß mit +\texttt{$\backslash$noexpand} oder \texttt{$\backslash$nox} +eingeleitet werden, wenn sie im Array \texttt{$\backslash$deflintab{...}}genutzt wird. +\begin{verbatim} +\deflintab{1,2\nox\cellnote{$\nox\sqrt{4}$},3,4,5} +\tntabledimen{1}{1} +\tntab[3]{5}{Cellnotes} +\end{verbatim} ergibt +\deflintab{1,2\nox\cellnote{$\nox\sqrt{4}$},3,4,5} +\tntabledimen{1}{1} +\tntab[3]{5}{Cellnotes} +\section{Referenzen} +Im laufenden Text kann man auf jeden Zellentitel(jede Zelle der Tabelle) referenzieren, da die Labels +bereits beim Erstellen der Titel erzeugt +werden\texttt{$\backslash$celllabel\{x\}} erzeugt einen Titel und ein Label, \texttt{$\backslash$celltitle\{x\}} erzeugt nur einen +Titel, ohne ein Label zu erzeugen. Die üblichen \texttt{$\backslash$label\{x\}} +funktionieren weiterhin. +\section{Erweiterungen} +Der Grund, für die Tabellen \texttt{longtable} zu wählen ist, daß man die +\texttt{$\backslash$tabular}-Umgebung in diese einbringen kann. Umgekehrt wäre +dies schwieriger. +Wünschenswert wäre noch eine \texttt{$\backslash$subtable}-Funktion für das +Tabellenverzeichnis, um die Tabellen, die in der Longtable-Umgebung definiert +werden, der Haupttabelle zu untergliedern. +\listoftables +\tableofcontents +\end{document} |