diff options
author | Karl Berry <karl@freefriends.org> | 2013-12-26 23:18:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-12-26 23:18:36 +0000 |
commit | 9b219d1b664067729034647a4b37626cf2bf5e26 (patch) | |
tree | 00708467b44f90736dc32ed1bebb95e9c4710139 /Master/texmf-dist/source/latex/koma-script/scrkernel-pseudolengths.dtx | |
parent | c00c8298eb6913b74270a36c1f1018f1e9946f7b (diff) |
koma-script (26dec13)
git-svn-id: svn://tug.org/texlive/trunk@32489 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-pseudolengths.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkernel-pseudolengths.dtx | 251 |
1 files changed, 251 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-pseudolengths.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-pseudolengths.dtx new file mode 100644 index 00000000000..447e8e91e64 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-pseudolengths.dtx @@ -0,0 +1,251 @@ +% \CheckSum{100} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-pseudolengths.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-pseudolengths.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \fi +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \iffalse +%%% From File: $Id: scrkernel-pseudolengths.dtx 1388 2013-10-01 16:03:42Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-pseudolengths.dtx}[2011/03/20 v3.08b KOMA-Script + (pseudo length)] +% \iffalse +\documentclass{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-pseudolengths.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +%</driver> +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2006/03/22}{% +% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} +% +% \section{Pseudo-Längen für Briefe} +% +% Pseudo-Längen wurden für \textsf{scrlttr2} eingeführt, um Längenregister zu +% sparen. Tatsächlich hat das \LaTeX-Team kurz darauf entschieden, dass +% künftig \eTeX{} die empfohlene Maschine für \LaTeX{} sein soll, wodurch die +% Einführung von Pseudo-Längen nachträglich überflüssig wurde. Es gibt sie nun +% aber einmal und aus Gründen der Kompatiblität wird es sie für Briefe auch +% weiterhin geben. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*letter> +% \fi +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Option} +% Das Prinzip der Pseudo-Längen wird nicht durch Optionen beeinflusst. +% +% +% \iffalse +%</option> +%<*body> +% \fi +% +% \subsection{Anweisungen für Pseudo-Längen} +% +% Zu Berechnung der Feldpositionen werden verschiedene Dimensions-Variablen +% benötigt. Um jedoch nicht unnötig viele Längenregister zu verbrauchen, wird +% hier mit einer Pseudo-Längen-Arithmetik gearbeitet. +% +% \begin{macro}{\@newplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% \changes{v2.8q}{2001/10/06}{Kompatibilität zu \texttt{scrlettr.cls} +% aufgegeben} +% Dieses Makro definiert eine neue Pseude-Länge und setzt sie auf den +% Wert 0. Eine Pseudo-Länge ist ein Makro, das eine Länge enthält. +% \begin{macrocode} +\newcommand*{\@newplength}[1]{% + \@ifundefined{ltr@len@#1}{% + \expandafter\let\csname ltr@len@#1\endcsname=\z@% + }{% + \ClassError{scrlttr2}{% + pseudo-length \expandafter\string\csname ltr@len@#1\endcsname + already defined% + }{% + You tried to define a new pseudo-length using + \string\@newplength\MessageBreak + which is already defined. Try another name or + better\MessageBreak + Don't use this KOMA-Script internal macro}% + }% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\useplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% \changes{v2.97c}{2007/09/17}{\cs{dimexpr} statt \cs{number} verwendet, +% wenn \eTeX{} verwendet wird} +% Natürlich muss auf eine solche Pseudo-Länge auch wieder lesend +% zugeriffen werden können. Wir definieren dies hier so, dass es +% außerdem möglich ist, ein Vorzeichen oder einen Faktor zu verwenden. Dafür +% wird allerdings \eTeX{} benötigt. +% \begin{macrocode} +\scr@ifundefinedorrelax{dimexpr}{% + \newcommand*{\useplength}[1]{% + \number \csname ltx@len@#1\endcsname\relax}% +}{% + \newcommand*{\useplength}[1]{% + \dimexpr \csname ltr@len@#1\endcsname\relax}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\setlengthtoplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% Eine echte Länge soll auf das Vielfache einer Pseudo-Länge gesetzt +% werden. Dabei wird der Faktor als optionaler Parameter übergeben. +% Der erste obligatorische Parameter ist die Länge, der zweite +% obligatorische Parameter ist die Pseudo-Länge. +% \begin{macrocode} +\newcommand*{\setlengthtoplength}[3][]{% + \setlength{#2}{\useplength{#3}}% + \setlength{#2}{#1#2}} +% \end{macrocode} +% +% \begin{macro}{\@setplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% Natürlich wird ebenfalls eine Möglichkeit benötigt, einer +% Pseudo-Länge einen Wert zuzuweisen. Dies geschieht unter lokaler +% Anwendung einer Länge, damit sichergestellt ist, dass eine +% Längenangabe übergeben wird. Dabei wird das zuvor definierte Makro +% \cs{setlengthtoplength} verwendet. +% \begin{macrocode} +\newcommand*{\@setplength}[3][]{% + \begingroup% + \setlength{\@tempskipa}{#3}% + \setlength{\@tempskipa}{#1\@tempskipa}% + \edef\@tempa{\noexpand\endgroup% + \noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*% + \noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempskipa}% + }% + \@tempa% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\addtolengthplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% Wenn wir schon dabei sind, soll statt dem Setzen auch das Addieren +% funktionieren. Hier ist die Erschwernis, dass der Faktor nur für +% die Pseudo-Länge und nicht für das Endergebnis gelten soll. +% \begin{macrocode} +\newcommand*{\addtolengthplength}[3][]{% + \begingroup% + \setlengthtoplength[{#1}]{\@tempskipa}{#3}% + \edef\@tempa{\endgroup% + \noexpand\addtolength{#2}{\the\@tempskipa}}% + \@tempa% + } +% \end{macrocode} +% +% \begin{macro}{\@addtoplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% Ebenso wird ein Makro benötigt, mit dem zu einer Pseudo-Länge das +% Vielfache eines Wertes addiert werden kann. +% \begin{macrocode} +\newcommand*{\@addtoplength}[3][]{% + \begingroup% + \setlength{\@tempskipa}{#3}% + \setlength{\@tempskipa}{#1\@tempskipa}% + \addtolengthplength{\@tempskipa}{#2}% + \edef\@tempa{\noexpand\endgroup% + \noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*% + \noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempskipa}% + }% + \@tempa% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \iffalse +%</body> +% \fi +% +% \iffalse +%</letter> +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-pseudolengths.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: |