summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrknpap.dtx')
-rw-r--r--Master/texmf-dist/source/latex/koma-script/scrknpap.dtx147
1 files changed, 100 insertions, 47 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx b/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx
index eafcc61ce0d..808116dceff 100644
--- a/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx
+++ b/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{2970}
+% \CheckSum{2990}
% \iffalse meta-comment
% ======================================================================
% scrknpap.dtx
@@ -601,26 +601,48 @@
% entspricht. Voreingestellt ist die Textbreite.
% \begin{macro}{\if@refwide}
% \changes{v2.8n}{2001/09/08}{Neuer Schalter}
+% \changes{v3.09}{2011/03/07}{Neue Werte: \texttt{dateleft},
+% \texttt{dateright}, \texttt{nodate}}
% \begin{macro}{\@refwidetrue}
% \begin{macro}{\@refwidefalse}
% Gespeichert wird die Information in einem Schalter.
+% \begin{macro}{\@datepos}
+% \changes{v3.09}{2011/03/07}{Neu (intern)}
+% Das Datum kann links oder rechts oder gar nicht gesetzt werden.
+% Wo die Speicherung erfolgt wird in einem nummerischen Makro
+% abglegt. Voreingestellt ist rechts.
% \begin{macrocode}
\newif\if@refwide
+\newcommand*{\@datepos}{1}
\KOMA@key{refline}[wide]{%
\begingroup
- \KOMA@set@ncmdkey{refline}{@tempa}{{wide}{0},{narrow}{1}}{#1}%
+ \KOMA@set@ncmdkey{refline}{@tempa}{{wide}{0},{narrow}{1},%
+ {dateleft}{2},{leftdate}{2},%
+ {dateright}{3},{rightdate}{3},%
+ {nodate}{4}%
+ }{#1}%
\ifcase\@tempa
\endgroup
\@refwidetrue
- \else
+ \or
\endgroup
\@refwidefalse
+ \or
+ \endgroup
+ \def\@datepos{2}%
+ \or
+ \endgroup
+ \def\@datepos{1}%
+ \or
+ \endgroup
+ \def\@datepos{0}%
\fi
}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
% \end{option}
%
%
@@ -2482,6 +2504,14 @@
% \changes{v2.97c}{2007/05/14}{Neue Fontelemente}
% Je nachdem, welche Felder definiert sind, muss eine geschäftsmäßiger
% Standardbrief oder ein eher persönliches Aussehen gewählt werden.
+% \begin{macro}{\do@set@reffield}
+% \changes{v3.09}{2011/03/06}{Neu (intern)}
+% Das ist ein \cs{do} für die Felder und bekommt innerhalb von
+% \cs{@datefield} unterschiedliche Bedeutungen. An dieser Stelle wird es daher
+% nur reserviert.
+% \begin{macrocode}
+\newcommand*{\do@set@reffield}{}
+% \end{macrocode}
% \begin{macro}{\@set@reffield}
% Einzelne Felder werden mit Hilfe dieses Makros gesetzt. Als Parameter wird
% der Name des Feldes übergeben. Es wird dann davon ausgegangen, dass der
@@ -2502,6 +2532,20 @@
}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\@test@reffield}
+% \changes{v3.09}{2011/03/06}{Neu (intern)}
+% Dieses Makro testet, ob ein Feld tatsächlich zu setzen ist und setzt
+% ggf. \cs{@tempswa}.
+% \begin{macrocode}
+\newcommand*{\@test@reffield}[1]{%
+ \ifkomavarempty{#1}{}{%
+%<trace> \if@tempswa\l@addto@macro\@tempa{, }\fi
+%<trace> \l@addto@macro\@tempa{#1}%
+ \@tempswatrue
+ }%
+}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\@set@reffields}
% \changes{v2.8q}{2002/01/14}{Neu}
% Dieses Makro enthält alle Aufrufe von \cs{@set@reffield}, die durchzuführen
@@ -2511,11 +2555,13 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\addtoreffields}
+% \changes{v3.09}{2011/03/06}{Verwendung von \cs{do@set@reffield} an Stelle
+% von \cs{@set@reffield}}
% Dieses Makro erwartet als obligatorisches Argument den Namen einer
% KOMA-Script Variable. Der Befehl arbeitet lokal zur aktuellen Umgebung.
% \begin{macrocode}
\newcommand*{\addtoreffields}[1]{%
- \l@addto@macro{\@set@reffields}{\@set@reffield{#1}}%
+ \l@addto@macro{\@set@reffields}{\do@set@reffield{#1}}%
}
% \end{macrocode}
% \end{macro}
@@ -2562,6 +2608,8 @@
% \changes{v2.9l}{2003/01/28}{Berechnung von \texttt{refhpos} hinzugefügt}
% \changes{v2.95}{2006/03/23}{Absatzeinzug mit \cs{setparsizes} abschalten}
% \changes{v2.97c}{2007/05/14}{Neue Font-Elemente}
+% \changes{v3.09}{2011/03/06}{\cs{do@set@reffield} muss initialisiert
+% werden}
% \begin{macrocode}
\newcommand*{\@datefield}{{%
\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
@@ -2579,7 +2627,8 @@
\@setplength{refhpos}{\oddsidemargin}%
\@addtoplength{refhpos}{1in}%
\fi
- \else\ifdim\useplength{refhpos}=\z@
+ \else
+ \ifdim\useplength{refhpos}=\z@
\begingroup
% \end{macrocode}
% Wir bestimmen zunächst, um wieviel die Geschäftszeile schmaler ist als der
@@ -2616,64 +2665,68 @@
\@tempswafalse
\move@topt\vskip\useplength{refvpos}%
% \end{macrocode}
+% Jetzt kontrollieren wir, ob überhaupt etwas auszugeben ist:
+% \begin{macrocode}
+ \@tempswafalse
+ \let\do@set@reffield\@test@reffield
+%<trace> \let\@tempa\@empty
+ \@set@reffields
+ \ifcase \@datepos\else\@test@reffield{date}\fi
+ \if@tempswa
+%<trace> \typeout{Reference line(s) with: \@tempa}%
+ \@tempswafalse
+% \end{macrocode}
% Jetzt erfolgt noch die Absatzeinzugkorrektur. Danach kommt die eigentliche
% Arbeit.
% \begin{macrocode}
- \rlap{\noindent\move@topl\hskip\useplength{refhpos}%
- \vbox{\hsize\useplength{refwidth}%
- \noindent\@set@reffields%
+ \rlap{\noindent\move@topl\hskip\useplength{refhpos}%
+ \vbox{\hsize\useplength{refwidth}%
+ \noindent
+ \ifnum \@datepos=2
+ \@set@reffields
+ \if@tempswa
+ \@tempswafalse
+ \@set@reffield{date}%
+ \fi
+ \fi
+ \let\do@set@reffield\@set@reffield
+ \@set@reffields%
+ \if@tempswa
+ \ifnum \@datepos=1 \@set@reffield{date}\fi%
% \end{macrocode}
% Seit Version~2.97c wird hier auch noch getestet, ob die Geschäftszeile
% möglicherweise mit zu großer Schrift gesetzt wird.
% \begin{macrocode}
- \if@tempswa
- \setbox0\hbox{\usekomafont{refname}\strutbox}%
- \ifdim\ht0>\ht\strutbox
- \ClassWarningNoLine{scrlttr}{%
- Font element `refname' should not be larger than
- \string\normalsize!}%
- \fi
- \setbox0\hbox{\usekomafont{refvalue}\strutbox}%
- \ifdim\ht0>\ht\strutbox
- \ClassWarningNoLine{scrlttr}{%
- Font element `refvalue' should not be larger than
- \string\normalsize!}%
- \fi
- \fi
- \ifkomavarempty{date}{%
- \if@tempswa
- \typeout{Reference line(s): with fields but without date}%
- \else
- \typeout{Reference line(s): no}%
- \aftergroup\aftergroup\aftergroup\@tempswatrue
- \fi
- }{%
- \if@tempswa
- \typeout{Reference line(s): with fields and date}%
- \settowidth{\@tempdima}{\strut
- \usekomafont{refvalue}\usekomavar{date}}%
- \setbox0\hbox{\usekomafont{refname}\usekomavar*{date}}%
- \ifdim \@tempdima<\wd0\setlength{\@tempdima}{\wd0}\fi
- \enskip\hfill
- \parbox[t]{\@tempdima}{\noindent\raggedright%
- \strut\box0\\\usekomafont{refvalue}\strut\usekomavar{date}}%
+ \setbox0\hbox{\usekomafont{refname}\strutbox}%
+ \ifdim\ht0>\ht\strutbox
+ \ClassWarningNoLine{scrlttr}{%
+ Font element `refname' should not be larger than
+ \string\normalsize!}%
+ \fi
+ \setbox0\hbox{\usekomafont{refvalue}\strutbox}%
+ \ifdim\ht0>\ht\strutbox
+ \ClassWarningNoLine{scrlttr}{%
+ Font element `refvalue' should not be larger than
+ \string\normalsize!}%
+ \fi
\else
- \typeout{Reference line: only place and date}%
- \enskip\hfill
- \ifkomavarempty{place}{}{%
- \usekomavar{place}\usekomavar{placeseparator}}%
- \usekomavar{date}%
- \@tempswatrue
+ \ifcase \@datepos\else
+ \ifnum \@datepos=1 \enskip\hfill\fi
+ \ifkomavarempty{place}{}{%
+ \usekomavar{place}\usekomavar{placeseparator}}%
+ \usekomavar{date}%
+ \fi
\fi
- }%
}%
}%
- \if@tempswa\vskip-\baselineskip\fi
+%<trace> \else\typeout{No reference line.}%
+ \fi
\vskip\useplength{refaftervskip}%
}%
}
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\@maketitle}
% \changes{v2.3b}{1996/01/14}{Verwendung von \cs{sectfont} für den