diff options
author | Karl Berry <karl@freefriends.org> | 2008-11-12 00:44:32 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-11-12 00:44:32 +0000 |
commit | e0fa36719ae8b943d0c515ccc2a4f1e2670cc614 (patch) | |
tree | cfd7d451101897cf222cd885a36573ccacd922c4 /Master/texmf-dist/tex/latex/koma-script/scrlttr2.cls | |
parent | 6d06dddb5a2041f7c07b6502a3bfa973f0d86635 (diff) |
koma-script update (11nov08)
git-svn-id: svn://tug.org/texlive/trunk@11262 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/koma-script/scrlttr2.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/koma-script/scrlttr2.cls | 361 |
1 files changed, 189 insertions, 172 deletions
diff --git a/Master/texmf-dist/tex/latex/koma-script/scrlttr2.cls b/Master/texmf-dist/tex/latex/koma-script/scrlttr2.cls index b02516826bc..515a3e9f1ae 100644 --- a/Master/texmf-dist/tex/latex/koma-script/scrlttr2.cls +++ b/Master/texmf-dist/tex/latex/koma-script/scrlttr2.cls @@ -91,7 +91,7 @@ \fi } \fi - \@CheckKOMAScriptVersion{2007/12/24 v2.98 KOMA-Script}% + \@CheckKOMAScriptVersion{2008/11/03 v3.00 KOMA-Script}% \endgroup \newcommand*{\KOMAClassName}{% scrlttr2% @@ -123,7 +123,8 @@ \ClassError{\KOMAClassName}{% Option `version' too late% }{% - Option `version' may be set only while loading the class.\MessageBreak + Option `version' may be set only while loading the + class.\MessageBreak But you've tried to set it up later.% }% }% @@ -144,7 +145,11 @@ \@namedef{scr@v@2.97d}{5} \@namedef{scr@v@2.97e}{6} \@namedef{scr@v@2.98}{6} -\@namedef{scr@v@last}{6} +\@namedef{scr@v@2.98a}{6} +\@namedef{scr@v@2.98b}{6} +\@namedef{scr@v@2.98c}{7} +\@namedef{scr@v@3.00}{8} +\@namedef{scr@v@last}{8} %%% From File: scrkmisc.dtx \KOMA@key{draft}[true]{% \KOMA@set@ifkey{draft}{@tempswa}{#1}% @@ -189,16 +194,41 @@ \def\@pt@@scan #1pt#2\@pt@@scan{% \ifstr{#2}{pt}{% \ifnumber{#1}{% - \KOMA@UseObsoleteOption{\PackageInfoNoLine}{#1#2}{fontsize=#1#2}% + \KOMA@UseObsoleteOption{\PackageInfoNoLine{\KOMAClassName}}% + {#1#2}{fontsize=#1#2}% }{\@headlines}% }{\@headlines}% } +\providecommand*{\@fontsizefilebase}{scrsize} \KOMA@key{fontsize}{% \scr@ifundefinedorrelax{changefontsizes}{% \@defaultunits\@tempdima#1pt\relax\@nnil \edef\@ptsize{#1}% }{% - \changefontsizes{#1}% + \expandafter\@defaultunits\expandafter\@tempdima#1 pt\relax\@nnil + \edef\@tempa{#1}% + \setlength{\@tempdimb}{\@tempdima}% + \edef\@tempb{\strip@pt\@tempdimb}% + \addtolength{\@tempdimb}{-10\p@}% + \edef\@ptsize{\strip@pt\@tempdimb}% + \edef\@tempa{% + \noexpand\makeatletter + \noexpand\InputIfFileExists{\@fontsizefilebase\@tempa.clo}{% + \noexpand\ClassInfo{\KOMAClassName}{% + File `\@fontsizefilebase\@tempa.clo' used to setup font sizes}% + }{% + \noexpand\InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{% + \noexpand\ClassInfo{\KOMAClassName}{% + File `\@fontsizefilebase\@tempb pt.clo' used instead of% + \noexpand\MessageBreak + file `\@fontsizefilebase\@tempa.clo' to setup font sizes}% + }{% + \noexpand\changefontsizes{#1}% + }% + }% + \noexpand\catcode`\noexpand\@=\the\catcode`\@ + }% + \@tempa }% } %%% From File: scrkvars.dtx @@ -266,7 +296,7 @@ } \KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{oneside}{twoside=false} \KOMA@key{twocolumn}[true]{% - \if@atdocument\else\PassOptionsToPackage{twoside=#1}{typearea}\fi% + \if@atdocument\else\PassOptionsToPackage{twocolumn=#1}{typearea}\fi% } \KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{onecolumn}{twocolumn=false} \DeclareOption*{% @@ -377,32 +407,28 @@ \endgroup \fi } -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{parskip-}{parskip=full-} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{parskip+}{parskip=full+} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{parskip*}{parskip=full*} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{halfparskip}{parskip=half} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{halfparskip-}{parskip=half-} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{halfparskip+}{parskip=half+} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{halfparskip*}{parskip=half*} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{parindent}{parskip=false} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{parskip-}{parskip=full-} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{parskip+}{parskip=full+} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{parskip*}{parskip=full*} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{halfparskip}{parskip=half} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{halfparskip-}{parskip=half-} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{halfparskip+}{parskip=half+} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{halfparskip*}{parskip=half*} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{parindent}{parskip=false} %%% From File: scrkpage.dtx \newif\if@hsl \KOMA@key{headsepline}[true]{% \KOMA@set@ifkey{headsepline}{@hsl}{#1}% - \@ifpackageloaded{typearea}{% - \KOMAoptions{headinclude=#1}% - }{}% + \KOMA@options{headinclude=#1}{}% } -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{headnosepline}{% +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{headnosepline}{% headsepline=false} \newif\if@fsl \KOMA@key{footsepline}[true]{% \KOMA@set@ifkey{footsepline}{@fsl}{#1}% - \@ifpackageloaded{typearea}{% - \KOMAoptions{footinclude=#1}% - }{}% + \KOMA@options{footinclude=#1}{}% } -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{footnosepline}{% +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{footnosepline}{% footsepline=false} \@twosidefalse \KOMA@key{cleardoublepage}{% @@ -414,34 +440,103 @@ }% \ifstr{#1}{current}{% \def\@tempc{\endgroup% - \let\cleardoublepage\cleardoublestandardpage + \def\cleardoublepage{\cleardoublestandardpage}% + \def\cleardoubleoddpage{\cleardoubleoddstandardpage}% + \def\cleardoubleevenpage{\cleardoubleevenstandardpage}% }% }{% \ifnotundefined{ps@#1}{% \def\@tempc{\endgroup% \def\cleardoublepage{\cleardoublepageusingstyle{#1}}% + \def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}% + \def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}% }% }{}% }% \@tempc } -\newcommand*{\cleardoublestandardpage}{} -\let\cleardoublestandardpage\cleardoublepage +\newcommand*{\cleardoubleoddstandardpage}{} +\let\cleardoubleoddstandardpage=\cleardoublepage +\newcommand*{\cleardoubleoddpageusingstyle}[1]{\clearpage + {\thispagestyle{#1}\cleardoubleoddstandardpage}} +\newcommand*{\cleardoubleoddemptypage}{\cleardoubleoddpageusingstyle{empty}} +\newcommand*{\cleardoubleoddplainpage}{\cleardoubleoddpageusingstyle{plain}} +\newcommand*{\cleardoubleevenstandardpage}{% + \clearpage + \if@twoside\ifodd\c@page + \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi + \fi\fi +} +\newcommand*{\cleardoubleevenpageusingstyle}[1]{\clearpage + {\thispagestyle{#1}\cleardoubleevenstandardpage}} +\newcommand*{\cleardoubleevenemptypage}{\cleardoubleevenpageusingstyle{empty}} +\newcommand*{\cleardoubleevenplainpage}{\cleardoubleevenpageusingstyle{plain}} +\newcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage} +\renewcommand*{\cleardoublepage}{% + \expandafter\ifnum \@nameuse{scr@v@2.98c}<\scr@compatibility\relax + \cleardoubleemptypage + \else + \cleardoublestandardpage + \fi +} +\newcommand*{\cleardoubleoddpage}{\cleardoubleoddemptypage} +\newcommand*{\cleardoubleevenpage}{\cleardoubleevenemptypage} \newcommand*{\cleardoublepageusingstyle}[1]{\clearpage {\thispagestyle{#1}\cleardoublestandardpage}} \newcommand*{\cleardoubleemptypage}{\cleardoublepageusingstyle{empty}} \newcommand*{\cleardoubleplainpage}{\cleardoublepageusingstyle{plain}} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{cleardoubleempty}{% - cleardoublepage=empty% -} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{cleardoubleplain}{% - cleardoublepage=plain% -} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{cleardoublestandard}{% - cleardoublepage=current% -} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{cleardoubleempty}% + {cleardoublepage=empty} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{cleardoubleplain}% + {cleardoublepage=plain} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{cleardoublestandard}% + {cleardoublepage=current} %%% From File: scrkfloa.dtx %%% From File: scrkftn.dtx +\KOMA@key{footnotes}{% + \ifx\@footnotemark\scr@saved@footnotemark + \else + \ifx\@footnotemark\scr@footnotemark + \else + \ClassWarning{\KOMAClassName}{% + Change of `\string\@footnotemark' detected!\MessageBreak + Use of `footnotes=#1' may break\MessageBreak + another package!\MessageBreak + Maybe you should remove the usage of\MessageBreak + option `footnotes=#1'}% + \fi + \fi + \ifstr{#1}{multiple}{% + \let\@footnotemark\scr@footnotemark + \let\FN@mf@prepare\scr@mf@prepare + \def\scr@footmisc@options{multiple}% + }{% + \ifstr{#1}{nomultiple}{% + \let\@footnotemark\scr@saved@footnotemark + \let\FN@mf@prepare\relax + \let\scr@footmisc@options\@empty + }{% + \KOMA@unknown@keyval{footnotes}{#1}{`multiple' and `nomultiple'}% + }% + }% +} +\newcommand*{\scr@footmisc@options}{} +\PassOptionsToPackage{\noexpand\scr@footmisc@options}{footmisc} +\newcommand*{\scr@saved@footnotemark}{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi + \@makefnmark + \ifhmode\spacefactor\@x@sf\fi + \relax} +\expandafter\CheckCommand\expandafter*\expandafter\@footnotemark +\expandafter{\scr@saved@footnotemark} +\newcommand*{\scr@footnotemark}{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\FN@mf@check\nobreak\fi + \@makefnmark + \csname FN@mf@prepare\endcsname + \ifhmode\spacefactor\@x@sf\fi + \relax} %%% From File: scrklist.dtx %%% From File: scrknpap.dtx \KOMA@ifkey{firsthead}{@firsthead}\@firstheadtrue @@ -510,13 +605,13 @@ \@biglocfalse \fi } -\DeclareOption{wlocfield}{\@ObsoleteOption{locfield=wide}} -\DeclareOption{slocfield}{\@ObsoleteOption{locfield=narrow}} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{wlocfield}{locfield=wide} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{slocfield}{locfield=narrow} \newif\if@fold\@foldtrue \newcommand*{\@usefolds}{TMBPL} \KOMA@key{foldmarks}[true]{% \begingroup - \def\KOMA@unknown@keyval##1##2##3{% + \def\FamilyUnknownKeyValue##1##2##3##4{% \def\sc@nf@ldch@rs####1{% \ifx ####1\@nil\else \if ####1T\g@addto@macro\@usefolds{####1}\else @@ -683,11 +778,12 @@ %%% From File: scrkcile.dtx %%% From File: scrkmisc.dtx \KOMAExecuteOptions{% - parskip=false% + parskip=false,% + headings=big% } \KOMAProcessOptions\relax %%% From File: scrkcomp.dtx -\expandafter\ifnum \@nameuse{scr@v@2.95}>\scr@compatibility +\expandafter\ifnum \@nameuse{scr@v@2.95}>\scr@compatibility\relax \newcommand*{\@setif}[2][]{% \begingroup \edef\@tempa{#1}\ifx\@tempa\@empty @@ -941,7 +1037,6 @@ \setlength\partopsep{.2\@tempdimc \@plus.1\@tempdimc \@minus.1\@tempdimc}% }% } -\providecommand*{\@fontsizefilebase}{scrsize} \expandafter\@defaultunits\expandafter\@tempdima\@ptsize pt\relax\@nnil \edef\@tempa{\@ptsize}% \setlength{\@tempdimb}{\@tempdima}% @@ -1215,119 +1310,6 @@ \edef\LOPNP@size{#2}\edef\LOPNP@option{#1}% } %%% From File: scrklang.dtx -\newcommand*{\providecaptionname}[3]{% - \@ifundefined{captions#1}{% - \@ifundefined{cap@info@#1@done}{% - \ClassInfo{\KOMAClassName}{% - No captions found for `#1'\MessageBreak - --> skipped% - }% - \expandafter\let\csname cap@info@#1@done\endcsname\@empty - }{}% - }{% - \begingroup - \let\@tempa\endgroup - \csname captions#1\endcsname - \ifx #2\undefined - \edef\@tempb{#1}% - \@onelevel@sanitize\@tempb - \@onelevel@sanitize\languagename - \ifx\@tempb\languagename - \def\@tempa{\endgroup% - \expandafter\g@addto@macro\csname captions#1\endcsname{% - \def#2{#3}}% - \csname captions#1\endcsname - }% - \else - \def\@tempa{\endgroup% - \expandafter\g@addto@macro\csname captions#1\endcsname{% - \def#2{#3}}% - }% - \fi - \else - \ClassInfo{\KOMAClassName}{% - `\string#2' at language `#1' already - defined\MessageBreak - --> skipped% - }% - \fi - \@tempa - }% -} -\newcommand*{\newcaptionname}[3]{% - \@ifundefined{captions#1}{% - \ClassInfo{\KOMAClassName}{% - No captions found for `#1' --> defining% - }% - \@namedef{captions#1}{}% - }{}% - \begingroup - \csname captions#1\endcsname - \ifx #2\undefined\else - \ClassError{\KOMAClassName}{% - `\string#2' at language `#1' already defined% - }{% - You've told me to define `\string#2' at language - `#1',\MessageBreak - but it is already defined.\MessageBreak - It will be redefined, if you'll continue.% - }% - \fi - \endgroup - \expandafter\g@addto@macro\csname captions#1\endcsname{% - \def#2{#3}% - }% - \begingroup - \edef\@tempb{#1}% - \@onelevel@sanitize\@tempb - \@onelevel@sanitize\languagename - \ifx\@tempb\languagename - \def\@tempa{\endgroup\csname captions#1\endcsname}% - \else - \let\@tempa\endgroup - \fi - \@tempa -} -\newcommand*{\renewcaptionname}[3]{% - \@ifundefined{captions#1}{% - \ClassError{\KOMAClassName}{% - No captions found for `#1'% - }{% - You've told me to redefine the caption `\string#2' at language - `#1',\MessageBreak - but `\expandafter\string\csname captions#1\endcsname' is not - defined.\MessageBreak - If you'll continue it will be defined.% - } - \@namedef{captions#1}{}% - }{}% - \begingroup - \csname captions#1\endcsname - \ifx #2\undefined - \ClassError{\KOMAClassName}{% - `\string#2' not defined at language `#1'% - }{% - You've told me to redefine `\string#2' at language - `#1',\MessageBreak - but it is not defined.\MessageBreak - If you'll continue it will be defined.% - }% - \fi - \endgroup - \expandafter\g@addto@macro\csname captions#1\endcsname{% - \def#2{#3}% - }% - \begingroup - \edef\@tempb{#1}% - \@onelevel@sanitize\@tempb - \@onelevel@sanitize\languagename - \ifx\@tempb\languagename - \def\@tempa{\endgroup\csname captions#1\endcsname}% - \else - \let\@tempa\endgroup - \fi - \@tempa -} \newcommand*{\g@addnumerical@date}[2]{% \@ifundefined{date#1}{% \ClassInfo{% @@ -1973,19 +1955,19 @@ \addtolength{#1}{\@tempskipa}% \fi } -\g@addto@macro{\@listi}{\@list@extra} -\let\@listI=\@listi -\g@addto@macro{\@listii}{\@list@extra} -\g@addto@macro{\@listiii}{\@list@extra} +\newcommand*{\@list@extra}{% + \ifdim\parskip>\z@\topsep\z@\parsep\parskip\itemsep\z@\fi +} \newcommand*{\add@extra@listi}[1]{% \expandafter\let\csname #1@listi\endcsname=\@listi \def\@listi{\csname #1@listi\endcsname\@list@extra}% } -\g@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}} -\g@addto@macro{\small}{\protect\add@extra@listi{sml}} -\newcommand*{\@list@extra}{% - \ifdim\parskip>\z@\topsep\z@\parsep\parskip\itemsep\z@\fi -} + \l@addto@macro{\@listi}{\@list@extra}% + \let\@listI=\@listi + \l@addto@macro{\@listii}{\@list@extra}% + \l@addto@macro{\@listiii}{\@list@extra}% + \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}% + \l@addto@macro{\small}{\protect\add@extra@listi{sml}}% \@lowpenalty = 51 \@medpenalty =151 \@highpenalty =301 @@ -1997,16 +1979,18 @@ \addtolength{\@tempdima}{\marginparwidth}% \fi } -\newcommand*\pnumfont{\normalfont\normalcolor} -\newcommand*\headfont{\normalfont\normalcolor\slshape} +\newcommand*{\pnumfont}{\normalfont\normalcolor} +\newcommand*{\headfont}{\normalfont\normalcolor\slshape} +\newcommand*{\footfont}{} \newcommand*{\scr@fnt@pagenumber}{\pnumfont} \aliaskomafont{pagination}{pagenumber} -\newcommand*{\scr@fnt@pagehead}{\headfont} +\newcommand*{\scr@fnt@pageheadfoot}{\headfont} +\aliaskomafont{pagehead}{pageheadfoot} \newcommand*{\scr@fnt@wrn@pagehead}[1]{% - `pagehead' and `pagefoot' are aliases for the same\MessageBreak - font element, changed% + `pagehead' is only an alias of `pageheadfoot'.\MessageBreak + Font of page foot will also be changed% } -\aliaskomafont{pagefoot}{pagehead} +\newcommand*{\scr@fnt@pagefoot}{\footfont} \newcommand*{\pagemark}{{\usekomafont{pagenumber}% \pagename\ % \thepage}} @@ -2067,7 +2051,7 @@ \hrulefill\\ }% \fi - \vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\@nextfoot}}% + \vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\footfont\@nextfoot}}% }% }% \let\@evenfoot\@oddfoot @@ -2127,9 +2111,44 @@ \newcommand*{\ftntm@font}{} \newcommand*{\scr@fnt@footnotereference}{\ftntm@font} \newcommand*{\scr@fnt@footnoteref}{\ftntm@font} +\newcommand*{\FN@mf@check}{% + \ifdim\lastkern=\multiplefootnotemarker\relax + \edef\@x@sf{\the\spacefactor}% + \unkern\multiplefootnoteseparator + \spacefactor\@x@sf\relax + \fi +} +\newcommand*{\scr@mf@prepare}{% + \kern-\multiplefootnotemarker + \kern\multiplefootnotemarker\relax +} +\@ifundefined{FN@mf@prepare}{}{} +\newcommand*{\scr@saved@footnotetext}{} +\let\scr@saved@footnotetext\@footnotetext +\renewcommand*{\@footnotetext}[1]{% + \scr@saved@footnotetext{#1}% + \csname FN@mf@prepare\endcsname +} +\BeforePackage{footmisc}{% + \ifx\@footnotemark\scr@footnotemark + \let\@footnotemark\scr@saved@footnotemark + \fi + \let\@footnotetext\scr@saved@footnotetext +} +\newcommand*{\multiplefootnoteseparator}{% + \begingroup\let\thefootnotemark\multfootsep\@makefnmark\endgroup +} +\newcommand*{\multfootsep}{,} +\newcommand*{\multiplefootnotemarker}{3sp} \newcommand*{\thefootnotemark}{\@thefnmark} \deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}} \deffootnotemark{\textsuperscript{\thefootnotemark}} +\newcommand*{\footref}[1]{% + \begingroup + \unrestored@protected@xdef\@thefnmark{\ref{#1}}% + \endgroup + \@footnotemark +} %%% From File: scrklist.dtx \setlength{\leftmargini}{2.5em} \setlength{\leftmarginii}{2.2em} @@ -2780,7 +2799,6 @@ \@savevbox{\useplength{locheight}}{% \noindent\hsize\useplength{locwidth}% \ifcase\@alignfrom - \usekomavar{location}% \or \if@logo \ifkomavarempty{fromlogo}{\null}{% @@ -2788,7 +2806,6 @@ \vskip\parskip}\noindent}% \fi \or - \usekomavar{location}% \or \if@logo \ifkomavarempty{fromlogo}{}{% @@ -2866,8 +2883,8 @@ \fi \\ }% - \usekomavar{location}% \fi + \usekomavar{location}% \vskip \z@ \@plus .00001fil}% {location field}{locheight}{\setkomavar}% }}% |