diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/latex-tabellen/06-00-32.ltx2')
-rw-r--r-- | Master/texmf-dist/doc/latex/latex-tabellen/06-00-32.ltx2 | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/latex-tabellen/06-00-32.ltx2 b/Master/texmf-dist/doc/latex/latex-tabellen/06-00-32.ltx2 new file mode 100644 index 00000000000..c291be19a0a --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-tabellen/06-00-32.ltx2 @@ -0,0 +1,190 @@ +%% +%% A DANTE-Edition example +%% +%% Beispiel 06-00-32 auf Seite 196. +%% +%% Copyright (C) 2010 H. Voss +%% +%% It may be distributed and/or modified under the conditions +%% of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% +%% See http://www.latex-project.org/lppl.txt for details. +%% + +%%Run also: >> << +% Show page(s) 1,2 + +\documentclass[]{article} +\pagestyle{empty} +\setlength\textwidth{173.82971pt} +\usepackage[utf8]{inputenc}% adapt maybe +\usepackage[paper=70mm:88mm,pagesize]{typearea} +\usepackage[utf8]{inputenc}% eventuell anpassen +\usepackage[ngerman]{babel} +\setlength\parindent{0pt} +\usepackage{etex} % Damit Marken verwendet werden koennen +\usepackage{ltxtable} +\usepackage[savepos,user]{zref} % Um die aktuelle Position zu merken +\usepackage{fltpoint} % Rechnen mit Komma-Zahlen +\usepackage{calc} % Fuer das Makro \widthof +\usepackage{numprint} % Zahlen formatiert ausgeben +\usepackage{eurosym} % Das Euro-Zeichen +% Globale Einstellungen fuer numprint +\npstylegerman % Deutsche Zahlenformatierung +\nprounddigits{2} % Zwei Nachkommasstellen +\npreplacenull{---} % Buchhalter-Strich statt Nachkomma-Nullen + +%%%%%%%%%%%%%%Befehle zur Berechnung der Zwischensumme%%%%%%%%%%%%%%%%%%%% +\newcommand*\laufsumme{0} +\newcommand*\resetlaufsumme{\global\def\laufsumme{0}} +\newcommand*\addlaufsumme[1]{\fpAdd{\laufsumme}{\laufsumme}{#1}% + \global\let\laufsumme\laufsumme} +\newcommand*\printwert[1]{\numprint{#1}} + +%%%%%%%%PlainTeX-Hack fuer Positionierung der Zwischensummen%%%%%%%%%%%%%%% +\makeatletter % Das at-Zeichen in Variablen zulassen +% Variablen bereit stellen + \newdimen\drx + \newdimen\dry + \newmarks\ltm@marks + \def\ltm@setmarks#1{\marks\ltm@marks{#1}} + \def\ltm@getmarks{\botmarks\ltm@marks} + +% Den aktuellen Wert der Laufsumme berechnen und merken +\newcommand*{\Wert}[1]{% + \printwert{#1}% Ausgabe des Werts vor Ort + \addlaufsumme{#1}% Den uebergebenen Wert zur Laufsumme addieren + \expandafter\ltm@setmarks\expandafter{\laufsumme}% Laufsumme merken +} + +% Merken der aktuellen Position +\newcommand*{\MarkZwsumPos}{% + \leavevmode + \zsavepos{zwsumpos\thepage}% + \zrefused{zwsumpos\thepage}} + +% Ausgabe der Zwischensumme +\def\ltm@insertfoot#1{% + \vbox to\z@{% + \vss + \hb@xt@\z@{% + \color@begingroup + \zsavepos{tabende\thepage}% % Die aktuelle Position merken + \drx=0sp + \dry=0sp + % Die aktuelle Position abziehen und die gemerkte addieren + \advance \drx by -\zposx{tabende\thepage}sp + \advance \drx by \zposx{zwsumpos\thepage}sp + \advance \dry by -\zposy{tabende\thepage}sp + \advance \dry by \zposy{zwsumpos\thepage}sp + \smash{\kern\drx\raise\dry% + \hbox{\makebox[\widthof{ \euro}][r]{% + \printwert{#1} \euro}}% + } + \color@endgroup + }% + }% +} + +% Ausgabe des Uebertrags +% Wie die Ausgabe der Zwischensumme, nur ohne neu gemerkte Position +\def\ltm@inserthead#1{% + \vbox to\z@{% + \vss + \hb@xt@\z@{% + \color@begingroup + \drx=0sp + \dry=0sp + % Die Position des Tabellenendes abziehen + \advance \drx by -\zposx{tabende\thepage}sp + \advance \drx by \zposx{zwsumpos\thepage}sp + \advance \dry by -\zposy{tabende\thepage}sp + \advance \dry by \zposy{zwsumpos\thepage}sp + \smash{\kern\drx\raise\dry% + % Die eigentliche Ausgabe. Rechtsbuendig und + % um die Breite des Euro-Zeichens verschoben. + \hbox{\makebox[\widthof{ \euro}][r]{% + \printwert{#1} \euro}}% + } + \color@endgroup + }% + }% +} + +\def\ltm@lastfoot{\ltm@insertfoot\ltm@getmarks} +\def\ltm@foot{\ltm@insertfoot{\ltm@getmarks}} +\def\ltm@head{\ltm@inserthead{\ltm@getmarks}} + +% Ueberschreiben der Output-Routine von longtable +\def\LT@output{% + \ifnum\outputpenalty <-\@Mi + \ifnum\outputpenalty > -\LT@end@pen + \LT@err{floats and marginpars % + not allowed in a longtable}\@ehc + \else + \setbox\z@\vbox{\unvbox\@cclv}% + \ifdim \ht\LT@lastfoot>\ht\LT@foot + \dimen@\pagegoal + \advance\dimen@-\ht\LT@lastfoot + \ifdim\dimen@<\ht\z@ + \setbox\@cclv\vbox{% + \unvbox\z@\copy\LT@foot\ltm@foot\vss + }% + \@makecol + \@outputpage + \setbox\z@\vbox{\box\LT@head}% + \fi + \fi + \global\@colroom\@colht + \global\vsize\@colht + \vbox{% + \unvbox\z@ + \box\ifvoid\LT@lastfoot + \LT@foot\ltm@foot + \else + \LT@lastfoot\ltm@lastfoot + \fi + }% + \fi + \else + \setbox\@cclv\vbox{% + \unvbox\@cclv\copy\LT@foot\ltm@foot\vss + }% + \@makecol + \@outputpage + \global\vsize\@colroom + \copy\LT@head\ltm@head + \fi +} +\makeatother % Das at-Zeichen in Variablen wieder verbieten +%%%%%%%%%%%%%%%%%%%%Ende plaintex-Hack%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\usepackage{longtable} + +\begin{document} +\resetlaufsumme +\begin{longtable}{p{0.7\linewidth}r} + links & rechts +\endfirsthead + Übertrag & \\ +\endhead + Zwischensumme: & \MarkZwsumPos \\ +\endfoot + Summe: &\MarkZwsumPos \\ +\endlastfoot + Ein beliebiger einleitender Text zu Beginn der Spalte \ldots. + & \Wert{1,00} \\ + b & \Wert{2,1} \\ + c & \Wert{3,4} \\ + d & \Wert{4,5} \\ + e & \Wert{5,6} \\ + f & \Wert{6,7} \\ + g & \Wert{7,8} \\ + h & \Wert{8,9} \\ + i & \Wert{9,42} \\ + j & \Wert{10,88}\\ + k & \Wert{15,76} +\end{longtable} +\end{document} |