From 0daeff73d32aacd49e6140586dd0f12601f2382f Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Wed, 11 Jan 2006 23:58:00 +0000
Subject: trunk/Master/texmf-dist/source/latex/statistik

git-svn-id: svn://tug.org/texlive/trunk@527 c570f23f-e606-0410-a88d-b1316a301751
---
 .../source/latex/statistik/statistik.dtx           | 558 +++++++++++++++++++++
 1 file changed, 558 insertions(+)
 create mode 100644 Master/texmf-dist/source/latex/statistik/statistik.dtx

(limited to 'Master/texmf-dist/source/latex/statistik/statistik.dtx')

diff --git a/Master/texmf-dist/source/latex/statistik/statistik.dtx b/Master/texmf-dist/source/latex/statistik/statistik.dtx
new file mode 100644
index 00000000000..b0f5ee5d57d
--- /dev/null
+++ b/Master/texmf-dist/source/latex/statistik/statistik.dtx
@@ -0,0 +1,558 @@
+% \CheckSum{0}
+% \iffalse meta comment
+% File: statistik.dtx 
+% Copyright (C) 2003 Michael Niedermair
+%
+%   This program is free software; you can redistribute it and/or modify
+%   it under the terms of the GNU General Public License as published by
+%   the Free Software Foundation; either version 2 of the License, or
+%   (at your option) any later version.
+%
+%   This program is distributed in the hope that it will be useful,
+%   but WITHOUT ANY WARRANTY; without even the implied warranty of
+%   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+%   GNU General Public License for more details.
+%
+%   You should have received a copy of the GNU General Public License
+%   along with this program; if not, write to the Free Software
+%   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\documentclass[a4paper]{ltxdoc}
+   \usepackage[latin1]{inputenc}
+   \usepackage[T1]{fontenc}
+   \usepackage{ngerman}
+   \usepackage{mathpazo}
+   \usepackage[scaled=0.95]{helvet}
+   \usepackage{courier}
+   \usepackage{expdlist,booktabs}
+   \newcommand{\bs}{$\backslash$}
+   \GetFileInfo{statistik.dtx} 
+   \title{Statistiken über Kapitel erstellen}
+   \author{Michael Niedermair\thanks{Michael Niedermair  m.g.n@gmx.de}}
+   \date{2003--04--05}
+   \begin{document}
+     \maketitle
+     \DocInput{statistik.dtx}
+   \end{document}
+%</driver>
+% \fi
+%
+% \begin{abstract}
+%   \noindent Mit dem Paket \emph{statistik} werden die Seiten pro Kapitel gezählt und 
+%   auf verschiedene Weise in einer extra Datei ausgegeben.
+% \end{abstract}
+%
+% \section{Paket einbinden}
+%
+% Das Paket wird über 
+% \begin{verbatim}
+%   \usepackage[<optionen>]{statistik}
+% \end{verbatim}
+% eingebunden.
+%
+%
+%
+%
+%
+% \section{Optionen}
+%
+% Dabei stehen folgende Optionen zur Verfügung:
+%
+% \begin{description}[\compact\setlabelphantom{xmlencoding}]
+% \item [textable] 
+%       Hierbei wird eine eigenständige \LaTeX--Datei erzeugt, die in einer 
+%       Tabelle die entsprechenden Kapitel und deren Seitenzahlen enthält.
+%
+%       \begin{tabular}{@{}clc@{}}
+%         Nummer & Titel      & Seiten \\ \midrule
+%         1      & Österreich & 4 \\
+%         2      & B          & 2 \\
+%         3      & Kapitel C  & 4 \\
+%         4      & Kapitel D  & 1 \\
+%       \end{tabular}\\
+%
+% \item [table]
+%       Wie \emph{textable}, jedoch wird nur die reine Tabelle in die Datei geschrieben,
+%       so dass diese über \verb|\input{<datei>}| eingebunden werden kann.
+%
+% \item [csv]
+%       Die Daten werden in eine CSV-Datei (\textbf{C}omma \textbf{S}eparated \textbf{V}alue)
+%       geschrieben, so dass diese mit einem Tabellenkalkulationsprogramm weiter
+%       verarbeitet werden können.
+%
+%\begin{verbatim}
+%1;Österreich;4
+%2;B;2
+%3;Kapitel C;4
+%4;Kapitel D;1
+%\end{verbatim}
+%
+% \item [xml]
+%        Die Daten werden in eine XML-Datei geschrieben. Dabei werden aber keine
+%        Entitäten, Sonderzeichen,  etc.\ berücksichtigt.
+%
+%\begin{verbatim}
+%<?xml version= "1.0" encoding="ISO-8859-1" ?>
+%<dokument>
+% <kapitel>
+%  <nr>1</nr><titel>Österreich</titel><seiten>4</seiten>
+% </kapitel>
+% <kapitel>
+%  <nr>2</nr><titel>B</titel><seiten>2</seiten>
+% </kapitel>
+% <kapitel>
+%  <nr>3</nr><titel>Kapitel C</titel><seiten>4</seiten>
+% </kapitel>
+% <kapitel>
+%  <nr>4</nr><titel>Kapitel D</titel><seiten>1</seiten>
+% </kapitel></dokument>
+%\end{verbatim}
+%
+% \item [encoding]
+%       Legt das Encoding für die \LaTeX--Datei fest. Als Standard wird hier
+%       \verb|latin1| verwendet.
+%
+% \item [xmlencoding]
+%       Legt das Encoding für die XML--Datei fest. Als Standard wird hier
+%       \verb|ISO-8859-1| verwendet.
+%
+% \end{description}
+%
+% \section{Beispiele}
+%
+% Folgende Beispieldateien sind vorhanden:
+% \begin{description}[\compact\setlabelphantom{sta\_mytable.tex }]
+% \item [sta\_textable.tex] Beispiel für die Option \verb|textable|.
+% \item [sta\_tab.tex]      Beispiel für die Option \verb|table|.
+% \item [sta\_csv.tex]      Beispiel für die Option \verb|csv|.
+% \item [sta\_xml.tex]      Beispiel für die Option \verb|xml|.
+% \item [sta\_mytable.tex]  Beispiel, welches den Output entsprechend anpasst.
+% \end{description}
+%
+%
+%
+%
+%
+% \section{Anpassung der Ausgabe}
+%
+% Mit nachfolgenden Befehlen wird gesteuert, wie die Ausgabe erzeugt wird.
+%
+% \begin{description}[\compact\setlabelphantom{\bs stafilename}]
+% \item [\bs stafilename]
+%       Legt den Dateinamen für die erzeugte Ausgabedatei fest. Der Standard 
+%       ist hier der aktuelle Jobname mit den Anhang '-info.tex':
+%\begin{verbatim}
+%\renewcommand{\stafilename}{\jobname-info.tex}
+%\end{verbatim}
+%
+% \item [\bs staheader]
+%       Legt fest, was als Header am Anfang in die Datei geschrieben wird.
+%\begin{verbatim}
+%\renewcommand{\staheader}{%
+% \string\documentclass{article}^^J%
+% \string\usepackage[\staenconding]\string{inputenc\string}^^J%
+% \string\usepackage[ngerman]{babel}^^J%
+% \string\begin{document}^^J%
+% \string\begin{tabular}{|c|l|c|}\string\hline^^J%
+% Nummer & Titel & Seiten \string\\\string\hline\string\hline%
+%}
+%\end{verbatim}
+%
+% \item [\bs statabline]
+%       Legt fest, was nach jeder Tabellenzeile in die Datei geschrieben werden
+%       soll, zum Beispiel \verb|\hline| etc.
+%\begin{verbatim}
+%\renewcommand{\statabline}{}
+%\end{verbatim}
+%
+% \item [\bs stafoot]
+%       Legt fest, was am Ende (nach der Tabelle) in die Datei geschrieben werden 
+%       soll.
+%\begin{verbatim}
+%\renewcommand{\stafoot}{%
+%  \string\hline^^J%
+%  \string\end{tabular}^^J%
+%  \string\end{document}^^J%
+%}
+%\end{verbatim}
+%
+% \item [\bs stabody]
+%       Legt fest, was in jede Tabellezeile geschrieben werden soll. Der Befehl
+%       erhält drei Parameter (Kapitelnummer, Kapiteltitel und Seitenzahl).
+%\begin{verbatim}
+%\renewcommand{\stabody}[3]{%
+%  #1 & #2 & #3 \string\\\statabline%
+%}
+%\end{verbatim}
+%
+% \end{description}
+%
+% \section{Der Code}
+%
+%    \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{statistik}
+  [2003/04/05 v0.03 Statistiken über Kapitel erstellen (mgn)]
+%    \end{macrocode}
+% \subsection*{benötigte Pakete}
+% Das Paket \emph{keyval} wird für die Parameterübergabe benötigt.
+%    \begin{macrocode}
+\RequirePackage{keyval}
+%    \end{macrocode}
+% \subsection*{Befehle für die einzelnen Ausgaben} 
+% Legt den Dateinamen für die Ausgabedatei fest.
+%    \begin{macrocode}
+\newcommand{\stafilename}{\jobname-info.tex}
+%    \end{macrocode}
+% Legt das Encoding für die \LaTeX--Datei fest.
+%    \begin{macrocode}
+\newcommand{\staenconding}{latin1}
+%    \end{macrocode}
+% Legt das Encoding für die XML--Datei fest.
+%    \begin{macrocode}
+\newcommand{\staxmlencoding}{ISO-8859-1}
+%    \end{macrocode}
+% Befehl, der den Datei--Header erzeugt.
+%    \begin{macrocode}
+\newcommand{\staheader}{}
+%    \end{macrocode}
+% Befehl, der den Datei--Foot erzeugt.
+%    \begin{macrocode}
+\newcommand{\stafoot}{}
+%    \end{macrocode}
+% Befehl, der die Zeilen für jedes Kapitel erzeugt.
+%    \begin{macrocode}
+\newcommand{\stabody}[3]{%
+#1 #2 #3 ^^J%
+}
+%    \end{macrocode}
+% Befehl, der das Zeilenende (nach \verb|\stabody|) erzeugt.
+%    \begin{macrocode}
+\newcommand{\statabline}{}
+%    \end{macrocode}
+% Befehl, der Befehle bei \verb|AtBeginDocument| hinzufügt.
+%    \begin{macrocode}
+\newcommand{\stabegincommand}{}
+%    \end{macrocode}
+% \subsection*{Optionen}
+% \subsubsection*{encoding}
+%    \begin{macrocode}
+\define@key{Sta}{encoding}[latin1]{\renewcommand{\staenconding}{#1}}
+%    \end{macrocode}
+% \subsubsection*{xmlencoding}
+%    \begin{macrocode}
+\define@key{Sta}{xmlencoding}[ISO-8859-1]{%
+  \renewcommand{\staxmlenconding}{#1}}
+%    \end{macrocode}
+% \subsubsection*{textable}
+%    \begin{macrocode}
+\define@key{Sta}{textable}[true]{%
+  \renewcommand{\stafilename}{\jobname-info.tex}
+  \renewcommand{\staheader}{%
+    \string\documentclass{article}^^J%
+    \string\usepackage[\staenconding]\string{inputenc\string}^^J%
+    \string\usepackage[ngerman]{babel}^^J%
+    \string\begin{document}^^J%
+    \string\begin{tabular}{|c|l|c|}\string\hline^^J%
+    Nummer & Titel & Seiten \string\\\string\hline\string\hline%
+  }
+  \renewcommand{\statabline}{}
+  \renewcommand{\stafoot}{%
+    \string\hline^^J%
+    \string\end{tabular}^^J%
+    \string\end{document}^^J%
+  }
+  \renewcommand{\stabody}[3]{%
+    ##1 & ##2\space & ##3 \string\\\statabline%
+  }
+  \renewcommand{\stabegincommand}{%
+    \AtBeginDocument{%
+      \WrtStatistik{\staheader}%
+      \AtEndDocument{%
+        \clearpage\ShowPagesOfThisChapter{}%
+        \WrtStatistik{\stafoot}%
+      }%
+    }
+  }
+}
+%    \end{macrocode}
+% \subsubsection*{table}
+%    \begin{macrocode}
+\define@key{Sta}{table}[true]{%
+  \renewcommand{\stafilename}{\jobname-info.tex}
+  \renewcommand{\staheader}{%
+    \string\begin{tabular}{|c|l|c|}\string\hline^^J%
+    Nummer & Titel & Seiten \string\\\string\hline\string\hline%
+  }
+  \renewcommand{\statabline}{}
+  \renewcommand{\stafoot}{%
+    \string\hline^^J%
+    \string\end{tabular}^^J%
+  }
+  \renewcommand{\stabody}[3]{%
+    ##1 & ##2\space & ##3 \string\\\statabline%
+  }
+  \renewcommand{\stabegincommand}{%
+    \AtBeginDocument{%
+      \WrtStatistik{\staheader}%
+      \AtEndDocument{%
+        \clearpage\ShowPagesOfThisChapter{}%
+        \WrtStatistik{\stafoot}%
+      }%
+    }
+  }
+}
+%    \end{macrocode}
+% \subsubsection*{csv}
+%    \begin{macrocode}
+\define@key{Sta}{csv}[true]{%
+  \renewcommand{\stafilename}{\jobname-info.csv}
+  \renewcommand{\staheader}{}
+  \renewcommand{\stafoot}{}
+  \renewcommand{\stabody}[3]{##1;##2;##3}
+  \renewcommand{\statabline}{}
+  \renewcommand{\stabegincommand}{%
+    \AtEndDocument{\clearpage\ShowPagesOfThisChapter{}}
+  }
+}
+%    \end{macrocode}
+% \subsubsection*{xml}
+%    \begin{macrocode}
+\define@key{Sta}{xml}[true]{%
+  \renewcommand{\stafilename}{\jobname-info.xml}
+  \renewcommand{\staheader}{%
+    <?xml version= "1.0" encoding="\staxmlencoding" ?>^^J<dokument>}
+  \renewcommand{\stafoot}{</dokument>}
+  \renewcommand{\stabody}[3]{%
+    <kapitel><nr>##1</nr><titel>##2</titel><seiten>##3</seiten></kapitel>}
+  \renewcommand{\statabline}{}
+  \renewcommand{\stabegincommand}{%
+    \AtBeginDocument{%
+      \WrtStatistik{\staheader}%
+      \AtEndDocument{\clearpage\ShowPagesOfThisChapter{}%
+        \WrtStatistik{\stafoot}%
+      }%
+    }%
+  }
+}
+%    \end{macrocode}
+% \subsubsection*{Verarbeitung der Aufrufparameter}
+%    \begin{macrocode}
+\def\ProcessOptionsWithKV#1{%
+  \let\@tempc\relax
+  \let\Sta@tempa\@empty
+  \@for\CurrentOption:=\@classoptionslist\do{%
+    \@ifundefined{KV@#1@\CurrentOption}%
+    {}%
+    {\edef\Sta@tempa{\Sta@tempa,\CurrentOption,}}%
+  }%
+  \edef\Sta@tempa{%
+    \noexpand\setkeys{#1}{%
+      \Sta@tempa\@ptionlist{\@currname.\@currext}%
+    }%
+  }%
+  \Sta@tempa
+}
+%
+\ProcessOptionsWithKV{Sta}
+\AtEndOfPackage{%
+  \let\@unprocessedoptions\relax
+}
+%    \end{macrocode}
+% \subsection*{Der Hauptteil}
+%    \begin{macrocode}
+\newwrite\Statistik
+\immediate
+\openout\Statistik=\stafilename
+\stabegincommand
+\newcommand*{\WrtStatistik}{\immediate\write\Statistik}
+\newcounter{lastchapterfirstpage}\setcounter{lastchapterfirstpage}{-1}
+\newcounter{lastchapterpages}
+\newcommand*{\Orig@Chapter}{}
+\let\Orig@Chapter=\chapter
+\newcommand*\TitleOfLastChapter{}
+\newcommand*\XTitleOfLastChapter{}
+\newcommand*{\ShowPagesOfThisChapter}[2][\thechapter]{%
+  \ifnum \value{lastchapterfirstpage}>-1
+  \setcounter{lastchapterpages}{\value{page}}%
+  \addtocounter{lastchapterpages}{-\value{lastchapterfirstpage}}%
+  \WrtStatistik{\stabody{#1}{\XTitleOfLastChapter}{\thelastchapterpages}}%
+  \fi
+  \renewcommand*{\TitleOfLastChapter}{#2}%
+  \expandafter\edef\expandafter\XTitleOfLastChapter\expandafter{%
+    \expandafter\strip@prefix\meaning\TitleOfLastChapter}%
+}
+%    \end{macrocode}
+%    Dies ist der meaning-Trick (von Markus Kohm; Danke Dir), damit das auch mit Umlauten noch klappt.
+%    ``Anfänger mögen beachten, dass man \verb|\expandafter| geschickt einstreuen kann
+%    und keineswegs Dutzende \verb|\expandafter| hintereinander schreiben muss (was
+%    ich oft gesehen habe, aber nur extrem selten nötig war).''
+%    \begin{macrocode}
+\newcommand*{\St@schapter}[1]{%
+  \ShowPagesOfThisChapter{#1}%
+  \setcounter{lastchapterfirstpage}{\value{page}}%
+  \Orig@Chapter*{#1}}
+\newcommand*{\St@chapter}[2][]{%
+  \ShowPagesOfThisChapter{#1}% oder #2 für den langen Titel
+  \setcounter{lastchapterfirstpage}{\value{page}}%
+  \Orig@Chapter[{#1}]{#2}}
+\renewcommand*{\chapter}{%
+  \if@twoside\cleardoublepage\else\clearpage\fi
+  \secdef\St@chapter\St@schapter
+}
+%    \end{macrocode}
+%    \begin{macrocode}
+%</package>
+%    \end{macrocode}
+%
+% \Finale
+%
+% \iffalse
+%<*stacvs>
+\documentclass{book}
+
+\usepackage[latin1]{inputenc}
+
+\usepackage[csv]{statistik}
+
+\begin{document}
+\chapter{Österreich}
+\clearpage
+\null\clearpage
+\null\clearpage
+\chapter{B}
+\clearpage
+\null\clearpage
+\chapter{Kapitel C}
+\clearpage
+\null\clearpage
+\null\clearpage
+\null\clearpage
+\chapter{Kapitel D}
+\end{document}
+%</stacvs>
+%
+%<*staxml>
+\documentclass{book}
+
+\usepackage[latin1]{inputenc}
+
+\usepackage[xml]{statistik}
+
+\begin{document}
+\chapter{Österreich}
+\clearpage
+\null\clearpage
+\null\clearpage
+\chapter{B}
+\clearpage
+\null\clearpage
+\chapter{Kapitel C}
+\clearpage
+\null\clearpage
+\null\clearpage
+\null\clearpage
+\chapter{Kapitel D}
+\end{document}
+%</staxml>
+%
+%<*statextable>
+\documentclass{book}
+
+\usepackage[latin1]{inputenc}
+
+\usepackage[textable]{statistik}
+
+\begin{document}
+\chapter{Österreich}
+\clearpage
+\null\clearpage
+\null\clearpage
+\chapter{B}
+\clearpage
+\null\clearpage
+\chapter{Kapitel C}
+\clearpage
+\null\clearpage
+\null\clearpage
+\null\clearpage
+\chapter{Kapitel D}
+\end{document}
+%</statextable>
+%
+%<*statab>
+\documentclass{book}
+
+\usepackage[latin1]{inputenc}
+
+\usepackage[table]{statistik}
+
+\begin{document}
+\chapter{Österreich}
+\clearpage
+\null\clearpage
+\null\clearpage
+\chapter{B}
+\clearpage
+\null\clearpage
+\chapter{Kapitel C}
+\clearpage
+\null\clearpage
+\null\clearpage
+\null\clearpage
+\chapter{Kapitel D}
+\end{document}
+%</statab>
+%
+%<*stamytable>
+\documentclass{book}
+
+\usepackage[latin1]{inputenc}
+
+\usepackage[textable]{statistik}
+
+\renewcommand{\staheader}{%
+  \string\documentclass{article}^^J%
+  \string\usepackage[\staenconding]\string{inputenc\string}^^J%
+  \string\usepackage[ngerman]{babel}^^J%
+  \string\usepackage{booktabs}^^J%
+  \string\begin{document}^^J%
+  \string\begin{tabular}{@{}clc@{}}\string\toprule^^J%
+  Kapitel--Nummer & Kapitel--Text & Seitenanzahl \string\\\string\midrule%
+}
+\renewcommand{\stafoot}{%
+  \string\bottomrule^^J%
+  \string\end{tabular}^^J%
+  \string\end{document}^^J%
+}
+
+\begin{document}
+\chapter{Österreich}
+\clearpage
+\null\clearpage
+\null\clearpage
+\chapter{B}
+\clearpage
+\null\clearpage
+\chapter{Kapitel C}
+\clearpage
+\null\clearpage
+\null\clearpage
+\null\clearpage
+\chapter{Kapitel D}
+\end{document}
+%</stamytable>
+% \fi
+%
+\endinput
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
+
+
-- 
cgit v1.2.3

