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/source | |
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/source')
104 files changed, 28209 insertions, 15149 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/ChangeLog b/Master/texmf-dist/source/latex/koma-script/ChangeLog index 5388341dffa..2b893c44827 100644 --- a/Master/texmf-dist/source/latex/koma-script/ChangeLog +++ b/Master/texmf-dist/source/latex/koma-script/ChangeLog @@ -1,3 +1,747 @@ +r751 2008-11-03 09:32:11 +0100 mjk: + + * Makefile: exit 1 removed + +r748 2008-11-03 07:52:55 +0100 mjk: + + * releaselist.txt: release 2008/11/03 v3.00 + +r747 2008-11-03 07:51:55 +0100 mjk: + + * scrkvers.dtx: prepared for 3.00 + +r746 2008-10-31 09:02:21 +0100 mjk: + + * doc/, doc/ngerman/, doc/ngerman/preface.tex, + doc/ngerman/common.tex, doc/ngerman/typearea.tex: Ligaturen in den + Bookmarks drin lassen + +r745 2008-10-20 10:29:35 +0200 mjk: + + * tocbasic.dtx: only build changes + +r744 2008-10-20 09:50:04 +0200 mjk: + + * tocstyle.dtx: \if@tocleft test fixed + +r743 2008-10-16 09:59:20 +0200 mjk: + + * scrkbib.dtx, scrkliof.dtx, scrkidx.dtx, doc/, doc/ngerman/, + doc/ngerman/scrbookreportarticle.tex: toc and notoc values of options + listof, index and bibliography equalized + +r740 2008-10-14 16:52:03 +0200 mjk: + + * Makefile: handling of DTX_IS_INS files fixed + +r739 2008-10-08 09:17:21 +0200 mjk: + + * scrktare.dtx: layout information not only with \typearea but also + \areaset + +r738 2008-10-07 17:45:50 +0200 mjk: + + * releaselist.txt: release 2008/10/07 v3.00RC2 + +r737 2008-10-07 17:02:01 +0200 mjk: + + * scrkvers.dtx: Prepared for 3.00RC2 + +r736 2008-10-07 16:58:36 +0200 mjk: + + * scrksect.dtx: \@autodottrue and \@autodotfalse work global to make + autodot feature group level independant + +r735 2008-10-07 12:17:42 +0200 mjk: + + * scrkvers.dtx: Ready for 2008/10/07 3.00 RC1 + +r734 2008-10-07 12:11:13 +0200 mjk: + + * doc/, doc/guide.tex, doc/english/, + doc/english/scrbookreportarticle.tex, doc/english/scrpage2.tex, + doc/english/scrlttr2.tex, doc/english/typearea.tex, + doc/english/scraddr.tex: minor changes for KOMA-Script 3 + +r733 2008-10-06 12:07:42 +0200 mjk: + + * tocbasic.dtx, doc/, doc/Makefile.guide, doc/guide.tex, + doc/english/, doc/english/scrbookreportarticle.tex, + doc/english/guide-english.tex, doc/english/typearea.tex: minor changes + for english documentation + +r732 2008-09-27 10:51:05 +0200 mjk: + + * scrkpage.dtx, scrksect.dtx: \frontmatter, \mainmatter and + \backmatter use \cleardoubleoddpage + +r731 2008-09-24 14:35:34 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/Makefile.guide, + doc/ngerman/Makefile: Vorbereitungen fuer das Buch + +r730 2008-09-23 17:00:45 +0200 mjk: + + * manifest.txt, doc/, doc/Makefile, doc/ngerman/, + doc/ngerman/Makefile.guide: usage of new german guide + +r729 2008-09-23 14:23:54 +0200 mjk: + + * doc/, doc/scrguide.cls, doc/Makefile.latexinit, doc/Makefile.guide, + doc/Makefile, doc/bin/, doc/bin/genhtmlidx.pl, doc/ngerman/, + doc/ngerman/scrbookreportarticle.tex, doc/ngerman/preface.tex, + doc/ngerman/scrbase.tex, doc/ngerman/expertpart.tex, + doc/ngerman/scrextend.tex, doc/ngerman/tocbasic.tex, + doc/ngerman/linkalias.tex, doc/ngerman/common.tex, + doc/ngerman/scrlfile.tex, doc/ngerman/authorpart.tex, + doc/ngerman/Makefile.guide, doc/ngerman/scrdatetime.tex, + doc/ngerman/scrpage2.tex, doc/ngerman/typearea-experts.tex, + doc/ngerman/introduction.tex, doc/ngerman/settleford600label.lco, + doc/ngerman/htmlsetup, doc/ngerman/Makefile, + doc/ngerman/scrlttr2-experts.tex, doc/ngerman/scrlttr2examples.dtx, + doc/ngerman/scrlttr2.tex, doc/ngerman/adrconvnote.tex, + doc/ngerman/typearea.tex, doc/ngerman/labelbasic.lco, + doc/ngerman/guide.tex, doc/ngerman/scrbookreportarticle-experts.tex, + doc/ngerman/scraddr.tex, doc/ngerman/guide-ngerman.tex: Modifications + for new german guide (KOMA-Script-Buch 3. Auflage) + +r728 2008-09-19 11:04:34 +0200 mjk: + + * doc/, doc/scrguide.cls, doc/guide.bib, doc/guide.tex, + doc/plength.dtx, doc/english/, doc/english/htmlsetup, + doc/english/guide-english.tex, doc/german/, doc/german/htmlsetup, + doc/german/guide-ngerman.tex, doc/bin/, doc/bin/genhtmlidx.pl: + preparation to add the new german guide + +r727 2008-09-09 09:45:40 +0200 mjk: + + * scrkvers.dtx: prepared for 3.00 BETA + +r726 2008-09-09 09:42:06 +0200 mjk: + + * tocbasic.dtx: spell fix + +r725 2008-08-05 11:14:56 +0200 mjk: + + * scrkpage.dtx: \partpagestyle not defined at scrartcl any longer, + because not used + +r724 2008-07-11 12:56:15 +0200 mjk: + + * tocstyle.dtx: part with \hfill leaders + +r723 2008-07-09 20:05:52 +0200 mjk: + + * scrlfile.dtx: \newpage only temporary not allowed at + \BeforeCloseMainAux + +r722 2008-07-09 12:44:12 +0200 mjk: + + * scrktare.dtx, doc/, doc/german/, doc/german/typearea.tex: new value + "semi" for option "twoside" + +r721 2008-07-05 13:36:49 +0200 mjk: + + * tocbasic.dtx: some \Macro{\@currext} replaced by \Macro{@currext} + +r720 2008-07-04 16:42:44 +0200 mjk: + + * scrsource.tex: tocbasic removed because of \if-level problem + +r719 2008-07-04 16:19:04 +0200 mjk: + + * scrsource.tex: tocbasic added + +r718 2008-07-04 16:01:21 +0200 mjk: + + * scrkliof.dtx, tocbasic.dtx, scrksect.dtx: vertical space or chapter + entry for chapters to list of ... using tocbasic + +r717 2008-07-04 13:26:14 +0200 mjk: + + * scrkliof.dtx, tocbasic.dtx, scrmain.ins: toc, lof and lot created + using tocbasic (code at scrksect.dtx still has to be changed + +r716 2008-07-01 10:53:35 +0200 mjk: + + * scrksect.dtx: some ugly hyperref hacks lack of an interface for + class and package authors + +r715 2008-07-01 09:59:19 +0200 mjk: + + * scrkpage.dtx, scrkcomp.dtx, scrksect.dtx: \relax added at + compatibility tests + +r714 2008-06-19 11:47:45 +0200 mjk: + + * scrktitl.dtx, scrextend.dtx, scrmain.ins, scrkmisc.dtx: scrextend + activates features with option "extendedfeature" not longer with + e.g. option "titlepage=KOMA" + +r713 2008-06-06 11:50:57 +0200 mjk: + + * scrknpap.dtx: option `foldmarks' fixed + +r712 2008-05-28 09:23:26 +0200 mjk: + + * scrkbase.dtx: FamilyNumericalKey fixed + +r711 2008-05-14 11:47:38 +0200 mjk: + + * scrkmisc.dtx: option "draft" also at scrextend + +r710 2008-05-06 14:26:43 +0200 mjk: + + * doc/, doc/german/, doc/german/scrlttr2.tex: Wort korrigiert + +r709 2008-05-06 09:28:23 +0200 mjk: + + * scrkbase.dtx: Most \Family... commands have an optional argument for + the member + +r708 2008-05-02 16:46:18 +0200 mjk: + + * TODO: new packages scrbase and scrextend + +r707 2008-05-02 16:43:26 +0200 mjk: + + * scrkfont.dtx, scrkbase.dtx, scrklang.dtx, scrktitl.dtx, + scrklist.dtx, scrextend.dtx, scrkfloa.dtx, scrmain.ins, scrkmisc.dtx, + Makefile, scrkpar.dtx, scrsource.tex, scrkpage.dtx, scrkcomp.dtx, + scrksect.dtx, scrkftn.dtx, scrbeta.dtx: new packages scrbase and + scrextend + +r706 2008-04-30 09:52:59 +0200 mjk: + + * doc/, doc/german/, doc/german/scrbookreportarticle.tex, + doc/german/scrpage2.tex, doc/german/introduction.tex, + doc/german/scrlttr2.tex, doc/german/typearea.tex: diverse Neuerungen + inbesondere bezüglich der Optionen dokumentiert + +r705 2008-04-30 09:52:22 +0200 mjk: + + * doc/, doc/guide.bib: some additional references + +r704 2008-04-30 09:15:14 +0200 mjk: + + * doc/, doc/scrguide.cls: Explain improved; obsolete LM fixes removed + +r703 2008-04-30 09:13:50 +0200 mjk: + + * scrksect.dtx: more aliases for option numbers + +r702 2008-04-17 11:51:49 +0200 mjk: + + * README.SVN, LIESMICH.SVN: README.SVN and LIESMICH.SVN for tester of + the svn version. + +r701 2008-04-17 11:35:20 +0200 mjk: + + * README.SVN: Need for Makefile revision removed; VERBOSE note added + +r700 2008-04-17 11:25:02 +0200 mjk: + + * Makefile.baserules: spell fix + +r699 2008-04-17 11:23:44 +0200 mjk: + + * Makefile.baserules, Makefile, doc/, doc/Makefile.guide, + doc/Makefile: new rules: prepare, prepare_recursive, prepare_local + +r698 2008-04-16 11:45:23 +0200 mjk: + + * scrkliof.dtx: bib-values for option `toc' + +r697 2008-04-11 12:08:52 +0200 mjk: + + * doc/, doc/scrguide.cls: indentation and page break after environment + "Declaration" avoided + +r696 2008-04-11 10:15:46 +0200 mjk: + + * scrkpage.dtx, scrkcomp.dtx: default for \cleardoublepage changed + depeding on "version" + +r695 2008-04-10 11:43:54 +0200 mjk: + + * doc/, doc/english/, doc/english/guide-english.tex: missing % at + \GuideLanguageExtensions added + +r694 2008-04-10 11:43:09 +0200 mjk: + + * doc/, doc/german/, doc/german/guide-ngerman.tex: missing % at + \GuideLanguageExtensions added + +r693 2008-04-09 16:39:33 +0200 mjk: + + * TODO: documentation leaks + +r692 2008-04-09 16:18:30 +0200 mjk: + + * scrktare.dtx: Replacement for option `dvips' changed + +r691 2008-04-09 08:57:00 +0200 mjk: + + * scrktare.dtx: new option `headheight' + +r690 2008-04-08 12:11:07 +0200 mjk: + + * doc/, doc/scrguide.cls: \OptionValue does not longer generate an + additional desc:[...].option.[...] label + +r689 2008-04-08 11:33:37 +0200 mjk: + + * doc/, doc/scrguide.cls: new: \OptionValue + +r688 2008-04-04 09:55:09 +0200 mjk: + + * doc/, doc/german/, doc/german/introduction.tex: Gernot in die + Danksagung aufgenommen + +r687 2008-04-04 09:37:50 +0200 mjk: + + * scrkvers.dtx: prepared for 2.98c BETA + +r686 2008-04-03 12:01:09 +0200 mjk: + + * tocbasic.dtx: one more fix of beta handling + +r685 2008-04-03 10:42:17 +0200 mjk: + + * tocbasic.dtx: beta generation fixed + +r684 2008-04-03 10:41:54 +0200 mjk: + + * scrbeta.dtx: BerliOS added + +r683 2008-04-03 10:37:04 +0200 mjk: + + * tocbasic.dtx: scrbeta used + +r682 2008-04-03 10:36:47 +0200 mjk: + + * scrbeta.dtx: tocbasic added + +r681 2008-03-27 10:16:07 +0100 mjk: + + * TODO: already existing note about using "version" only at class + loading removed + +r680 2008-03-27 09:13:23 +0100 mjk: + + * scrkvers.dtx: date changed + +r679 2008-03-27 09:10:54 +0100 mjk: + + * doc/, doc/german/, doc/german/scrbookreportarticle.tex, + doc/german/introduction.tex, doc/german/scrpage2.tex, + doc/german/scrdatetime.tex, doc/german/typearea.tex, + doc/german/scraddr.tex, doc/german/htmlsetup, + doc/german/scrlfile.tex, doc/german/adrconvnote.tex, + doc/german/Makefile, doc/german/guide-ngerman.tex, doc/english/, + doc/english/scrbookreportarticle.tex, doc/english/introduction.tex, + doc/english/scrpage2.tex, doc/english/scrdatetime.tex, + doc/english/typearea.tex, doc/english/scraddr.tex, + doc/english/htmlsetup, doc/english/scrlfile.tex, + doc/english/adrconvnote.tex, doc/english/Makefile, + doc/english/japanlco.tex, doc/english/guide-english.tex: unknown + change + +r678 2008-03-27 09:09:02 +0100 mjk: + + * doc/, doc/english/, doc/english/scrlttr2.tex: only option "version" + may not be set using \KOMAoptions + +r677 2008-03-27 09:08:08 +0100 mjk: + + * doc/, doc/german/, doc/german/scrlttr2.tex: "version" ist die + einzige Option, die nicht per \KOMAoptions gesetzt werden kann + +r676 2008-03-27 08:41:40 +0100 mjk: + + * scrjura.dtx: ask is false + +r675 2008-03-27 08:40:45 +0100 mjk: + + * scrbeta.dtx, scrkpar.dtx, scrmain.ins, scrkfont.dtx, Makefile: new + font size files scrsize10pt.clo, scrsize11pt.clo, scrsize12pt.clo + +r674 2008-03-27 08:40:38 +0100 mjk: + + * scrkpage.dtx: options "headsepline" and "footsepline" improved + +r673 2008-03-26 15:30:52 +0100 mjk: + + * TODO: \@ifpackageloaded problem solved + +r672 2008-03-26 14:41:51 +0100 mjk: + + * TODO: one documentation and one implementation fault + +r671 2008-03-25 14:49:35 +0100 mjk: + + * README.SVN: new instruction for installation from svn + +r670 2008-03-24 11:30:01 +0100 mjk: + + * Makefile: scrjura added + +r669 2008-03-24 11:12:19 +0100 mjk: + + * scrkvers.dtx: prepared for 2.98c BETA + +r668 2008-03-24 11:10:35 +0100 mjk: + + * Makefile: improved handling of alpha files, that should be part of + distribution + +r667 2008-03-24 11:06:00 +0100 mjk: + + * tocstyle.dtx: <feature> etc. replaced by !<feature!> etc. + +r666 2008-03-24 07:38:50 +0100 mjk: + + * Makefile: Warning for missing ChangeLog changed + +r665 2008-03-22 16:58:33 +0100 mjk: + + * TODO: broken option fixed + +r664 2008-03-22 16:56:04 +0100 mjk: + + * scrkfont.dtx: option `Xpt' does work again + +r663 2008-03-20 19:01:44 +0100 mjk: + + * TODO: broken option + +r662 2008-03-18 14:38:42 +0100 mjk: + + * tocbasic.dtx: auto mode added + +r661 2008-03-18 14:16:42 +0100 mjk: + + * tocbasic.dtx: documentation + +r660 2008-03-18 12:14:31 +0100 mjk: + + * tocbasic.dtx: some more features, some bug fixes and some more + documentation + +r659 2008-03-17 14:07:21 +0100 mjk: + + * tocbasic.dtx: some more documentation + +r658 2008-03-17 09:39:00 +0100 mjk: + + * tocbasic.dtx: some more documentation + +r657 2008-03-14 18:59:48 +0100 mjk: + + * tocbasic.dtx: implementation of most features (untested) and some + parts of documentation + +r656 2008-03-13 13:29:28 +0100 mjk: + + * tocbasic.dtx: start of a new package for class and packages authors + creating toc files + +r655 2008-03-12 09:50:59 +0100 mjk: + + * scrkbase.dtx: new command \KOMAoption{<key>}{<valuelist>} + +r654 2008-03-12 09:50:24 +0100 mjk: + + * scrkfloa.dtx: vertical alignment at captionsbeside fixed + +r653 2008-03-10 10:06:41 +0100 mjk: + + * scrksect.dtx: new values for option `headings' to set options + `chapterprefix' and `appendixprefix' + +r652 2008-03-10 09:52:26 +0100 mjk: + + * scrkmisc.dtx, scrksect.dtx: new option `headings' with values `big', + `normal', `small', `openany', `openright', and `openleft'; option + `bigheadings', `normalheadings', and `smallheadings' are obsolete; + `headings=big' is default + +r651 2008-03-10 09:27:32 +0100 mjk: + + * scrknpap.dtx: missing `v' at version argument of changes entry added + +r650 2008-03-10 09:25:02 +0100 mjk: + + * scrlettr.dtx: missing `v' at version argument of changes entry added + +r649 2008-03-10 09:23:43 +0100 mjk: + + * scrkidx.dtx: missing `v' at version argument of changes entry added + +r648 2008-03-10 09:23:16 +0100 mjk: + + * scrkfloa.dtx: missing `v' at version argument of changes entry added + +r647 2008-03-10 09:22:50 +0100 mjk: + + * scrkbase.dtx: missing `v' at version argument of changes entry added + +r646 2008-03-07 10:25:13 +0100 mjk: + + * scrksect.dtx: new option `number' with values `auto', `enddot', + `noenddot' instead of obsolete options `pointednumbers' and + `pointlessnumbers'; options `pointednumber' and `pointlessnumber' + removed + +r645 2008-03-06 11:42:46 +0100 mjk: + + * scrkpage.dtx: \def\cleardoublepage to make option `open=left' work + even without usage of option `cleardoublepage' + +r644 2008-03-06 11:28:25 +0100 mjk: + + * scrksect.dtx: new value 'left' for option `open' + +r643 2008-03-06 11:22:57 +0100 mjk: + + * scrkpage.dtx: new macros `\cleardoubeoddstandardpage', + `\cleardoubleevenstandardpage', `\cleardoubleoddusingstyle', + `\cleardoubleevenusingstyle', `\cleardoubleoddemptypage', + `\cleardoubleevenemptypage', `\cleardoubleoddplainpage', + `\cleardoubleevenplainpage' + +r642 2008-03-06 11:09:25 +0100 mjk: + + * scrksect.dtx: new option `open' with values `any' and `right' + +r641 2008-03-06 10:55:11 +0100 mjk: + + * scrknpap.dtx: `wlocfield' and `slocfield' are simple obsolete + options + +r640 2008-03-05 09:56:41 +0100 mjk: + + * scrkliof.dtx: new values `nolistof', 'listof', and 'listofnumbered' + to option 'toc' + +r639 2008-03-05 09:38:36 +0100 mjk: + + * scrkliof.dtx: new `toc=flat', `toc=graduated' instead of obsolete + `tocleft', `tocindent'; new `listof=notoc', `listof=totoc', + `listof=numbered', `listof=flat', `listof=graduated' instead of + obsolete `liststotoc', `liststotocnumbered', `listsleft', + `listsindent'; new `listof=chapterentry', `listof=nochaptergap', + `listof=chaptergapsmall', `listof=chaptergapline' + +r638 2008-03-04 17:31:23 +0100 mjk: + + * scrkliof.dtx: new option `toc=index' and `toc=noindex' uses + `index=totoc' and `index=notoc' internally + +r637 2008-03-04 17:30:28 +0100 mjk: + + * scrkidx.dtx: options `index=notoc' and `index=totoc' replaces + obsolete `idxtotoc' + +r636 2008-03-03 14:41:39 +0100 mjk: + + * scrkfloa.dtx: deprecated handling for caption package removed + +r635 2008-03-03 11:56:07 +0100 mjk: + + * scrkfloa.dtx: Option `captions=oneline' instead of obsolete + `onelinecaptions', option `captions=nooneline' instead if obsolete + `noonelinecaptions'; values `topbeside', `bottombeside', + `centeredbeside', `rightbeside', `leftbeside', `innerbeside', + `outerbeside' for option `captions' to set default placement of + `captionsbeside' environment + +r634 2008-03-03 10:49:58 +0100 mjk: + + * scrkfloa.dtx: date fixed + +r633 2008-03-03 10:24:13 +0100 mjk: + + * scrkfloa.dtx: works with caption 3.1g + +r632 2008-02-29 16:19:13 +0100 mjk: + + * scrpage.dtx: usage of \if@mainmatter (instead of \ifmainmatter) at + scrpage.sty fixed + +r631 2008-02-29 13:13:13 +0100 mjk: + + * scrkfloa.dtx: use \captionsetup* instead of \captionsetup + +r630 2008-02-18 11:13:30 +0100 mjk: + + * scrkfloa.dtx: new option "captions"; "captions=tableheading" + replaces "tablecaptionabove"; "captions=tablesignature" replaces + "tablecaptionbelow" + +r629 2008-02-18 10:45:12 +0100 mjk: + + * scrkbase.dtx: Obsolete option messages are messages of the classes + or packages that declare the option not of scrkbase. + +r628 2008-02-18 09:13:04 +0100 mjk: + + * scrkbib.dtx: \AtBeginBibliography renamed to + \AfterBibliographyPreamble because of biblatex + +r627 2008-02-16 11:42:17 +0100 mjk: + + * TODO: biblatex compatiblitity note + +r626 2008-02-15 15:25:26 +0100 mjk: + + * scrkvers.dtx: date changed + +r625 2008-02-15 12:51:39 +0100 mjk: + + * scrkbib.dtx: options "bibtotoc" and "bibtotocnumbered" replaced by + "bibliography=totoc" and "bibliography=totocnumbered"; option + "bibliography=nottotoc" added; new commands \AtBeginBibliography, + \AtEndBibliography and \BreakBibliography + +r624 2008-02-15 10:15:38 +0100 mjk: + + * scrkbib.dtx: Option "openbib" replaced by "bibliography=openstyle"; + option "bibliography=oldstyle" added; new command \newbibstyle + +r623 2008-02-15 10:12:30 +0100 mjk: + + * scrksect.dtx, scrktitl.dtx: \ClassInfo replaced by \ClassInfoNoLine + at usage of \KOMA@DeclareObsoleteOption + +r622 2008-02-15 10:09:07 +0100 mjk: + + * scrkbase.dtx: \ClassInfoNoLine defined + +r621 2008-02-15 08:32:25 +0100 mjk: + + * scrkbase.dtx: missing \end{macrocode} added + +r620 2008-02-14 16:17:47 +0100 mjk: + + * scrpage.dtx: some changes about font elements `pagehead' and + `pagefoot' + +r619 2008-02-14 16:17:34 +0100 mjk: + + * scrkpage.dtx: some changes about font elements `pagehead' and + `pagefoot' + +r618 2008-02-14 15:40:51 +0100 mjk: + + * scrkpage.dtx: new font element `pageheadfoot'; font element + `pagehead' is only an alias for `pageheadfoot' + +r617 2008-02-14 15:39:43 +0100 mjk: + + * scrpage.dtx: new font element pagefoot + +r616 2008-02-14 15:20:49 +0100 mjk: + + * scrpage.dtx: \footfont added + +r615 2008-02-14 15:07:31 +0100 mjk: + + * tocstyle.dtx: support for deprecated TOC styles and KOMAScript is + deprecated (use KOMAlike instead of) + +r614 2008-02-14 12:53:27 +0100 mjk: + + * scrkftn.dtx: no unwanted warnings of footmisc package + +r613 2008-02-14 12:22:35 +0100 mjk: + + * scrkftn.dtx: footnote solution is compatible to footmisc + +r612 2008-02-14 11:22:39 +0100 mjk: + + * scrkftn.dtx: multifootnote does work unless using bigfoot, manyfoot + etc. Special handling for footmisc does not longer produce a warning + message. + +r611 2008-02-14 10:51:58 +0100 mjk: + + * scrkftn.dtx: docu fix + +r610 2008-02-01 12:13:17 +0100 mjk: + + * scrkftn.dtx: new option "multifootnotes" and new command "\footref" + +r609 2008-02-01 09:07:06 +0100 mjk: + + * scrkvers.dtx, scrkcomp.dtx: prepared for 2.98c BETA + +r608 2008-01-30 11:10:16 +0100 mjk: + + * releaselist.txt: release 2008/01/30 v2.98b + +r607 2008-01-30 10:26:17 +0100 mjk: + + * scrkvers.dtx: prepared for 2008/01/30 2.98b + +r606 2008-01-30 10:01:30 +0100 mjk: + + * scrkvers.dtx, scrkcomp.dtx: prepared for 2.98b BETA + +r605 2008-01-30 10:00:17 +0100 mjk: + + * tocstyle.dtx: it's not a beta, it's an alpha + +r604 2008-01-30 09:51:41 +0100 mjk: + + * scrknpap.dtx: fix: \firsthead does not longer deactivate "location" + +r603 2008-01-26 16:05:53 +0100 mjk: + + * scrjura.dtx: docu improvement + +r602 2008-01-25 11:26:24 +0100 mjk: + + * scrjura.dtx: First offizial alpha of a new package (german docu + only) + +r601 2008-01-11 11:24:01 +0100 mjk: + + * releaselist.txt: release 2008/01/11 v2.98a + +r600 2008-01-11 11:21:50 +0100 mjk: + + * scrkmisc.dtx, scrkcile.dtx, scrsource.tex, scrpage.dtx, + tocstyle.dtx, scrkliof.dtx, scrkvers.dtx, scrlettr.ins, scrstrop.inc, + scrksect.dtx, scrbeta.dtx, scrlogo.dtx, scrstrip.inc, scrkfloa.dtx, + scrkpar.dtx, scrmain.ins, scrkidx.dtx, scrlfile.ins, scrkbase.dtx, + scrkplen.dtx, scrpage.ins, scrkbib.dtx, scrklist.dtx, scrtime.dtx, + scrkxflo.dtx, scraddr.ins, README, scrtime.ins, scrlettr.dtx, + scrkcomp.dtx, Makefile.baserules, japanlco.dtx, scrkftn.dtx, + scrkpage.dtx, scrklco.dtx, scrkfont.dtx, scrdoc.dtx, scrklang.dtx, + Makefile, scrlfile.dtx, scrktitl.dtx, scrknpap.dtx, manifest.txt, + scraddr.dtx, scrktare.dtx, Makefile.baseinit, scrkvars.dtx, + komabug.tex, doc/, doc/Makefile.latexinit, doc/plength.dtx, + doc/scrguide.gst, doc/scrguide.ist, doc/Makefile, doc/guide.tex, + doc/scrguide.cls, doc/Makefile.guide: prepared for 2008/01/11 2.98a + +r598 2008-01-11 09:14:15 +0100 mjk: + + * scrknpap.dtx: behaviour of location field with "fromalign=center" + changed to the one before 2.98 + +r597 2008-01-08 11:41:53 +0100 mjk: + + * scrkcomp.dtx: prepared for 2.98a BETA + +r596 2008-01-08 11:39:47 +0100 mjk: + + * scrkvers.dtx, scrktare.dtx: twocolumn option fixed at classes + +r595 2008-01-08 11:37:35 +0100 mjk: + + * Makefile: prepared for dtx that are ins too + r594 2007-12-21 11:15:13 +0100 mjk: * scrkvers.dtx: version bug fixed diff --git a/Master/texmf-dist/source/latex/koma-script/Makefile b/Master/texmf-dist/source/latex/koma-script/Makefile index ff272bf243c..e93d2d1db90 100644 --- a/Master/texmf-dist/source/latex/koma-script/Makefile +++ b/Master/texmf-dist/source/latex/koma-script/Makefile @@ -1,6 +1,6 @@ # ====================================================================== # Makefile -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # Makefile -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3b, verteilt und/oder veraendert werden. @@ -91,14 +91,21 @@ CLS_MAIN = scrbook.cls \ scrlttr2.cls \ scrlettr.cls \ typearea.sty \ + scrsize10pt.clo \ + scrsize11pt.clo \ + scrsize12pt.clo \ scrlfile.sty \ + scrbase.sty \ scrkbase.sty \ scraddr.sty \ scrpage.sty \ scrpage2.sty \ scrtime.sty \ scrdate.sty \ + scrjura.sty \ + tocbasic.sty \ tocstyle.sty \ + scrextend.sty \ DIN.lco \ DINmtext.lco \ SN.lco \ @@ -141,6 +148,9 @@ CLS_MAIN_DTX = scrbeta.dtx \ scrtime.dtx \ scrlettr.dtx \ scrlogo.dtx \ + scrextend.dtx \ + scrjura.dtx \ + tocbasic.dtx \ tocstyle.dtx STATIC_DOC = README \ @@ -158,13 +168,24 @@ CLS_MAIN_INS = scrmain.ins CLS_MAIN_SUBINS = scrlfile.ins scraddr.ins scrlettr.ins scrpage.ins \ scrtime.ins -ALPHA_INS = tocstyle.dtx +ALPHA_INS = tocstyle.dtx tocbasic.dtx scrjura.dtx -DTX_IS_INS = tocstyle.dtx +ALPHA_DOC = tocstyle.pdf scrjura.pdf + +ALPHA_DTX = $(subst .pdf,.dtx,$(ALPHA_DOC)) + +DTX_IS_INS = tocstyle.dtx tocbasic.dtx scrjura.dtx CLS_MAIN_SRC = $(CLS_MAIN_DTX) $(CLS_MAIN_INS) $(CLS_MAIN_SUBINS) \ scrsource.tex +$(ALPHA_DOC): $(ALPHA_DTX) + $(LATEX) $(BATCHMODE) $(PDFOUTPUT) $(subst .pdf,.dtx,$@) + $(MKINDEX) $(subst .pdf,,$@) + $(LATEX) $(BATCHMODE) $(PDFOUTPUT) $(subst .pdf,.dtx,$@) + $(MKINDEX) $(subst .pdf,,$@) + $(LATEX) $(BATCHMODE) $(PDFOUTPUT) $(subst .pdf,.dtx,$@) + $(CLS_MAIN): $(CLS_MAIN_DVI) $(CLS_MAIN_INS) $(INS_TEMPLATES) $(MAKE_FILES) $(TEXUNPACK) $(CLS_MAIN_INS) $(foreach alphains,$(ALPHA_INS),$(TEXUNPACK) $(alphains);) @@ -191,7 +212,7 @@ MISC_SRC = $(INS_TEMPLATES) $(MAKE_FILES) \ DIST_SRC = $(MISC_SRC) $(CLS_SRC) -DIST_FILES = $(DIST_SRC) $(STATIC_DOC) +DIST_FILES = $(DIST_SRC) $(STATIC_DOC) $(ALPHA_DOC) MAINTAIN_SRC = $(DIST_SRC) missing.dtx .cvsignore @@ -200,12 +221,13 @@ MAINTAIN_FILES = $(MAINTAIN_SRC) # ---------------------------------------------------------------------- # additional ruls -bindist: dist +bindist:dist $(UNTARGZ) $(DISTDIR).tar.gz + chmod -R a+w $(DISTDIR) ifdef PREPARERELEASE - $(foreach dtxins,$(DTX_IS_INS),$(SYMLINK) $(dtxins) $(dtxins).ins;) + $(foreach dtxins,$(DTX_IS_INS),\ + sed -i -e 's/{trace,/{/g;s/\(\\let\\ifbeta=\\if\)true/\1false/' $(DISTDIR)/$(dtxins) && ) : developer/scripts/preparerelease.sh 2 $(notdir $(DISTDIR)) - $(foreach dtxins,$(DTX_IS_INS),$(RM) $(dtxins).ins;) endif $(CD) $(notdir $(DISTDIR)) && \ $(MAKE) @@ -233,15 +255,16 @@ endif # local rules ChangeLog: - $(warning Developers should generate ChangeLog manually using:) - $(SECHO) " developer/scripts/genchangelog.pl ." >&2 - $(SECHO) " mv doc/ChangeLog.tmp doc/ChangeLog.svn" >&2 - $(SECHO) " cat doc/ChangeLog.svn ChangeLog.cvs > ChangeLog" >&2 + $(warning Developers should generate ChangeLog manually, see developers/doc/README.) + $(warning Distributors should not use a SVN version for their distributions!) + $(warning Betatester may continue with an empty ChangeLog after using: touch ChangeLog) @exit 1 default_local: test_baseinit $(CLS_FILES) -install_local: test_baseinit $(DIST_SRC) $(CLS_FILES) $(STATIC_DOC) +prepare_local: # nothing to do + +install_local: test_baseinit $(DIST_SRC) $(CLS_FILES) $(STATIC_DOC) $(ALPHA_DOC) @if ! $(MKDIR) $(INSTALLSRCDIR) \ || ! $(MKDIR) $(INSTALLCLSDIR) \ || ! $(MKDIR) $(INSTALLDOCDIR) ; then \ @@ -254,7 +277,7 @@ install_local: test_baseinit $(DIST_SRC) $(CLS_FILES) $(STATIC_DOC) fi $(INSTALL) $(DIST_SRC) $(INSTALLSRCDIR) $(INSTALL) $(CLS_FILES) $(INSTALLCLSDIR) - $(INSTALL) $(STATIC_DOC) $(INSTALLDOCDIR) + $(INSTALL) $(STATIC_DOC) $(ALPHA_DOC) $(INSTALLDOCDIR) $(SECHO) ------------------------------------------------------------ $(SECHO) Installed files at $(INSTALLSRCDIR): $(SECHO) $(DIST_SRC) @@ -263,7 +286,7 @@ install_local: test_baseinit $(DIST_SRC) $(CLS_FILES) $(STATIC_DOC) $(SECHO) $(CLS_FILES) $(SECHO) ------------------------------------------------------------ $(SECHO) Installed files at $(INSTALLDOCDIR): - $(SECHO) $(STATIC_DOC) + $(SECHO) $(STATIC_DOC) $(ALPHA_DOC) $(SECHO) ------------------------------------------------------------ uninstall_local: @@ -308,9 +331,9 @@ maintainclean_local: clean_local $(SRM) $(GENERATED) dist_prior: -ifdef PREPARERELEASE - developer/scripts/preparerelease.sh 1 -endif +#ifdef PREPARERELEASE +# developer/scripts/preparerelease.sh 1 +#endif -$(RMDIR) $(DISTDIR) $(MKDIR) $(DISTDIR) diff --git a/Master/texmf-dist/source/latex/koma-script/Makefile.baseinit b/Master/texmf-dist/source/latex/koma-script/Makefile.baseinit index fde785e2b42..9b2f7c21f8a 100644 --- a/Master/texmf-dist/source/latex/koma-script/Makefile.baseinit +++ b/Master/texmf-dist/source/latex/koma-script/Makefile.baseinit @@ -1,6 +1,6 @@ # ====================================================================== # Makefile.baseinit -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # Makefile.baseinit -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/Makefile.baserules b/Master/texmf-dist/source/latex/koma-script/Makefile.baserules index c2665027ea1..9807298a103 100644 --- a/Master/texmf-dist/source/latex/koma-script/Makefile.baserules +++ b/Master/texmf-dist/source/latex/koma-script/Makefile.baserules @@ -1,6 +1,6 @@ # ====================================================================== # Makefile.baserules -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # Makefile.baserules -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3b, verteilt und/oder veraendert werden. @@ -36,6 +36,7 @@ # ====================================================================== .PHONY: default default_recursive default_local \ + prepare prepare_recursive prepare_local \ install install_recursive install_local \ uninstall uninstall_recursive uninstall_local \ mktexlsr \ @@ -50,7 +51,10 @@ # ---------------------------------------------------------------------- # The default rule -default: default_recursive +default: prepare default_recursive + +# Prepare for the defaut rule +prepare: prepare_recursive # Install all files install: install_recursive mktexlsr @@ -114,6 +118,9 @@ endif default_recursive: default_local $(make_recursive) +prepare_recursive: prepare_local + $(make_recursive) + install_recursive: install_local $(make_recursive) diff --git a/Master/texmf-dist/source/latex/koma-script/doc/Makefile b/Master/texmf-dist/source/latex/koma-script/doc/Makefile index 195d7855986..d0766d0165f 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/Makefile +++ b/Master/texmf-dist/source/latex/koma-script/doc/Makefile @@ -1,6 +1,6 @@ # ====================================================================== # Makefile -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # Makefile -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3b, verteilt und/oder veraendert werden. @@ -42,7 +42,7 @@ export BASEDIR # ---------------------------------------------------------------------- # All directories with Makefiles -SUBDIRS = german english +SUBDIRS = english ngerman # ---------------------------------------------------------------------- # Default rules @@ -118,6 +118,8 @@ MAINTAIN_FILES = $(DIST_FILES) # ---------------------------------------------------------------------- # local rules +prepare_local: $(STATIC_DOC_LINKS) + default_local: $(STATIC_DOC) $(make_recursive) diff --git a/Master/texmf-dist/source/latex/koma-script/doc/Makefile.guide b/Master/texmf-dist/source/latex/koma-script/doc/Makefile.guide index d8f9b42bebb..98dbcd404ff 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/Makefile.guide +++ b/Master/texmf-dist/source/latex/koma-script/doc/Makefile.guide @@ -1,6 +1,6 @@ # ====================================================================== # Makefile.guide -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # Makefile.guide -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3b, verteilt und/oder veraendert werden. @@ -75,7 +75,8 @@ endif TEX_CHAPTERS = introduction.tex typearea.tex \ scrbookreportarticle.tex scrpage2.tex \ scrdatetime.tex scrlttr2.tex scraddr.tex \ - adrconvnote.tex scrlfile.tex $(TEX_APPENDICES) + adrconvnote.tex scrlfile.tex tocbasic.tex \ + $(TEX_APPENDICES) TEX_SRC = guide-$(LANGUAGELONG).tex $(TEX_CHAPTERS) @@ -95,6 +96,10 @@ MAINTAIN_FILES = $(MAINTAIN_SRC) # local rules default_local: $(GUIDE_FILES) +prepare_local: # nothing to do + echo $(GUIDE_FILES) + echo $(GENERATED_SRC) + clean_local: $(RM) *.aux *.bbl *.blg *.glo *.idx *.ilg *.ind *.log *.lot \ *.dvi *.tmp mpxerr.tex \ diff --git a/Master/texmf-dist/source/latex/koma-script/doc/Makefile.latexinit b/Master/texmf-dist/source/latex/koma-script/doc/Makefile.latexinit index 94b79eb6169..152c392b6f0 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/Makefile.latexinit +++ b/Master/texmf-dist/source/latex/koma-script/doc/Makefile.latexinit @@ -1,5 +1,5 @@ # Makefile.latexinit -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -61,5 +61,8 @@ BIBTEXNOERROR = 0 # BibTeX returns 0 on ok BIBTEXFIX = sed -i -e 's/\\btxurlfont[[:space:]]*$$/\\expandafter&/' MPOST = mpost -tex=latex -interaction=batchmode +MPTOPDF = mptopdf + +EPSTOPDF = epstopdf export TEXINPUTS BIBINPUTS BSTINPUTS diff --git a/Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl b/Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl index d4f41542888..482b5759c3d 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl +++ b/Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl @@ -60,6 +60,8 @@ my @variable; my @pagestyle; my @counter; my @floatstyle; +my @fontelement; +my @file; my $baselink; my $htmlhead; @@ -86,9 +88,9 @@ while ( $auxfile=shift ) { $entry = "$3.$page.$1.$2"; if ( "$2" eq "option" ) { push @option,$entry; - } elsif ( "$2" eq "macro" ) { + } elsif ( "$2" eq "cmd" ) { push @macro,$entry; - } elsif ( "$2" eq "environment" ) { + } elsif ( "$2" eq "env" ) { push @environment,$entry; } elsif ( "$2" eq "plength" ) { push @plength,$entry; @@ -100,6 +102,10 @@ while ( $auxfile=shift ) { push @counter,$entry; } elsif ( "$2" eq "floatstyle" ) { push @floatstyle,$entry; + } elsif ( "$2" eq "fontelement" ) { + push @fontelement,$entry; + } elsif ( "$2" eq "package" ) { + push @file,$entry; } else { print STDERR "Unknown type $2!\n"; } @@ -145,6 +151,8 @@ print "<li><a href=\"#variable\">$titles{variable}</a></li>" if ( @variable ); print "<li><a href=\"#pagestyle\">$titles{pagestyle}</a></li>" if ( @pagestyle ); print "<li><a href=\"#counter\">$titles{counter}</a></li>" if ( @counter ); print "<li><a href=\"#floatstyle\">$titles{floatstyle}</a></li>" if ( @floatstyle ); +#print "<li><a href=\"#fontelement\">$titles{fontelement}</a></li>" if ( @fontelement ); +#print "<li><a href=\"#file\">$titles{file}</a></li>" if ( @fontelement ); print "</ul>\n"; process "option","",\@option; @@ -155,4 +163,6 @@ process "variable","",\@variable; process "pagestyle","",\@pagestyle; process "counter","",\@counter; process "floatstyle","",\@floatstyle; +#process "fontelement","",\@fontelement; +#process "file","",\@file; print $htmlend; diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/Makefile b/Master/texmf-dist/source/latex/koma-script/doc/english/Makefile index 120a788930c..012e218e16b 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/Makefile +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/Makefile @@ -1,6 +1,6 @@ # ====================================================================== # Makefile -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # Makefile -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/adrconvnote.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/adrconvnote.tex index 07273965b18..346b45aeaf6 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/adrconvnote.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/adrconvnote.tex @@ -1,6 +1,6 @@ % ====================================================================== % adrconvnote.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % adrconvnote.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/guide-english.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/guide-english.tex index 24d329185a0..b7769154381 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/guide-english.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/guide-english.tex @@ -1,6 +1,6 @@ % ====================================================================== % guide-english.tex -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % guide-english.tex -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -63,10 +63,20 @@ % \begin{macrocode} \newcommand*{\GuideSubject}{The Guide}% \newcommand*{\GuideTitle}{\KOMAScript}% -\newcommand*{\GuideSubTitle}{a versatile {\LaTeXe} bundle}% +\newcommand*{\GuideSubTitle}{a versatile {\LaTeXe} bundle% + % Ugly note + \vfill + \noindent Note: This document is part of \KOMAScript~3 but was written for + \KOMAScript~2.98. Several features of \KOMAScript~2 are obsolete (but may + still be used) with \KOMAScript~3. In this case this documentation + sometimes describes obsolete things. Several features of \KOMAScript~3 are + new but may not be found at this manual. This manual will be updated with + respect to the available ressources. Any request for help shall be sent to + komascript~at~gmx.info.% +}% \newcommand*{\GuideAuthorHeadline}{Authors of the {\KOMAScript} Bundle}% -\newcommand*{\GuideTranslatorHeadline}{English translation of this manual by: } -\newcommand*{\GuideWarrantyHeadline}{Legal Notes:}% +\newcommand*{\GuideTranslatorHeadline}{English translation of this manual by: +} \newcommand*{\GuideWarrantyHeadline}{Legal Notes:}% \newcommand*{\GuideWarranty}{There is no warranty for any part of the documented Software. The authors have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no @@ -80,8 +90,8 @@ \newcommand*{\GuideCopyright}{Free screen version without any optimization of paragraph and page breaks\par\medskip% This guide is part of {\KOMAScript}, which is free under the terms and - conditions of {\LaTeX} Project Public License Version 1.3b. A version of this - license, which is valid to {\KOMAScript}, is part of {\KOMAScript} (see + conditions of {\LaTeX} Project Public License Version 1.3b. A version of + this license, which is valid to {\KOMAScript}, is part of {\KOMAScript} (see \File{lppl.txt}). Distribution of this manual\,---\,even if it is printed\,---\,is allowed provided that all parts of {\KOMAScript} are distributed. Distribution without the other parts of {\KOMAScript} needs a @@ -113,25 +123,43 @@ % Some terms, e.g. used at index notes. % % \begin{macro}{\GuideClass} +% \begin{macro}{\GuideClassIndexCategory} +% \begin{macro}{\GuideClassIndexCategoryExpanded} % The term »class«. % \begin{macrocode} \newcommand*{\GuideClass}{class} +\newcommand*{\GuideClassIndexCategory}{classes} +\let\GuideClassIndexCategoryExpanded\GuideClassIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideCounter} -% The term »counter«. +% \begin{macro}{\GuideCounterIndexCategory} +% \begin{macro}{\GuideCounterIndexCategoryExpanded} +%% The term »counter«. % \begin{macrocode} \newcommand*{\GuideCounter}{counter} +\newcommand*{\GuideCounterExpanded}{counters} +\let\GuideCounterIndexCategoryExpanded\GuideCounterIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideEnvironment} +% \begin{macro}{\GuideEnvIndexCategory} +% \begin{macro}{\GuideEnvIndexCategoryExpanded} % The term »environment«. % \begin{macrocode} \newcommand*{\GuideEnvironment}{environment} +\newcommand*{\GuideEnvIndexCategory}{environments} +\let\GuideEnvIndexCategoryExpanded\GuideEnvIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideExample} % The term »Example« used at a kind of heading, so it should be upper case. @@ -141,80 +169,146 @@ % \end{macro} % % \begin{macro}{\GuideFile} +% \begin{macro}{\GuideFileIndexCategory} +% \begin{macro}{\GuideFileIndexCategoryExpanded} % The term »file«. % \begin{macrocode} \newcommand*{\GuideFile}{file} +\newcommand*{\GuideFileIndexCategory}{files} +\let\GuideFileIndexCategoryExpanded\GuideFileIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideFloatstyle} +% \begin{macro}{\GuideFloatstyleIndexCategory} +% \begin{macro}{\GuideFloatstyleIndexCategoryExpanded} % The term »\Package{float} style«. % \begin{macrocode} \newcommand*{\GuideFloatstyle}{\Package{float} style} +\newcommand*{\GuideFloatstyleIndexCategory}{\Package{float} styles} +\newcommand*{\GuideFloatstyleIndexCategoryExpanded}{float styles} % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideFontElement} -% The term »element«. +% \begin{macro}{\GuideFontElementIndexCategory} +% \begin{macro}{\GuideFontElementIndexCategoryExpanded} +%% The term »element«. % \begin{macrocode} \newcommand*{\GuideFontElement}{element} +\newcommand*{\GuideFontElementIndexCategory}{elements} +\let\GuideFontElementIndexCategoryExpanded\GuideFontElementIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideLength} +% \begin{macro}{\GuideLengthIndexCategory} +% \begin{macro}{\GuideLengthIndexCategoryExpanded} % The term »length«. % \begin{macrocode} \newcommand*{\GuideLength}{length} +\newcommand*{\GuideLengthIndexCategory}{lengths} +\let\GuideLengthIndexCategoryExpanded\GuideLengthIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideMacro} +% \begin{macro}{\GuideMacroIndexCategory} +% \begin{macro}{\GuideMacroIndexCategoryExpanded} % \begin{macro}{\GuideCommand} +% \begin{macro}{\GuideCommandIndexCategory} +% \begin{macro}{\GuideCommandIndexCategoryExpanded} % The term »command«. % \begin{macrocode} \newcommand*{\GuideMacro}{command} \let\GuideCommand\GuideMacro +\newcommand*{\GuideMacroIndexCategory}{commands} +\let\GuideCommandIndexCategory\GuideMacroIndexCategory +\let\GuideMacroIndexCategoryExpanded\GuideMacroIndexCategory +\let\GuideCommandIndexCategoryExpanded\GuideCommandIndexCategory % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideOption} +% \begin{macro}{\GuideOptionIndexCategory} +% \begin{macro}{\GuideOptionIndexCategoryExpanded} % The term »option«. % \begin{macrocode} \newcommand*{\GuideOption}{option} +\newcommand*{\GuideOptionIndexCategory}{options} +\let\GuideOptionIndexCategoryExpanded\GuideOptionIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuidePackage} +% \begin{macro}{\GuidePackageIndexCategory} +% \begin{macro}{\GuidePackageIndexCategoryExpanded} % The term »package«. % \begin{macrocode} \newcommand*{\GuidePackage}{package} +\newcommand*{\GuidePackageIndexCategory}{packages} +\let\GuidePackageIndexCategoryExpanded\GuidePackageIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuidePagestyle} +% \begin{macro}{\GuidePagestyleIndexCategory} +% \begin{macro}{\GuidePagestyleIndexCategoryExpanded} % The term »page style«. % \begin{macrocode} \newcommand*{\GuidePagestyle}{page style} +\newcommand*{\GuidePagestyleIndexCategory}{page styles} +\let\GuidePagestyleIndexCategoryExpanded\GuidePagestyleIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuidePLength} +% \begin{macro}{\GuidePLengthIndexCategory} +% \begin{macro}{\GuidePLengthIndexCategoryExpanded} % \begin{macro}{\GuidePseudoPrefix} % The prefix »pseudo« at the term »pseudo length« and the term itself. % \begin{macrocode} \newcommand*{\GuidePseudoPrefix}{pseudo-} \newcommand*{\GuidePLength}{\GuidePseudoPrefix\GuideLength} +\newcommand*{\GuidePLengthIndexCategory}{\GuidePseudoPrefix\GuideLengthIndexCategory} +\let\GuidePLengthIndexCategoryExpanded\GuidePLengthIndexCategory % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideVariable} +% \begin{macro}{\GuideVariableIndexCategory} +% \begin{macro}{\GuideVariableIndexCategoryExpanded} % The termo »variable«. % \begin{macrocode} \newcommand*{\GuideVariable}{variable} +\newcommand*{\GuideVariableIndexCategory}{variables} +\let\GuideVariableIndexCategoryExpanded\GuideVariableIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideAnd} % The ``and'' at a list of two. @@ -414,7 +508,7 @@ % \begin{macro}{\changelogname} % The name of the change log index. % \begin{macrocode} - \def\changelogname{Change Log} + \def\changelogname{Change Log}% % \end{macrocode} % \end{macro} % \begin{macrocode} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/htmlsetup b/Master/texmf-dist/source/latex/koma-script/doc/english/htmlsetup index a65b6680603..b99a790c804 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/htmlsetup +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/htmlsetup @@ -1,6 +1,6 @@ # ====================================================================== # htmlsetup -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # htmlsetup -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3b, verteilt und/oder veraendert werden. @@ -58,6 +58,7 @@ alt=\"Valid HTML 4.0 Strict\" height=\"31\" width=\"88\"></a> "variable" => "Variables", "pagestyle" => "Page Styles", "counter" => "Counter", - "floatstyle" => "Styles for the float Package" ); + "floatstyle" => "Styles for the float Package", + "fontelement" => "Elements (Font May Be Changed)" ); # end of file diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/introduction.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/introduction.tex index b865de9cb9f..a5f990667aa 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/introduction.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/introduction.tex @@ -1,6 +1,6 @@ % ====================================================================== % introduction.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % introduction.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/japanlco.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/japanlco.tex index 0f1769b4aae..bc1c9a9327e 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/japanlco.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/japanlco.tex @@ -1,6 +1,6 @@ % ====================================================================== % japanlco.tex -% Copyright (c) Gernot Hassenpflug and Markus Kohm, 2001-2007 +% Copyright (c) Gernot Hassenpflug and Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % japanlco.tex -% Copyright (c) Gernot Hassenpflug und Markus Kohm, 2001-2007 +% Copyright (c) Gernot Hassenpflug und Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scraddr.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scraddr.tex index b1d03f6f975..12db589b78a 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scraddr.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scraddr.tex @@ -1,6 +1,6 @@ % ====================================================================== % scraddr.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scraddr.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ====================================================================== -\ProvidesFile{scraddr.tex}[2007/09/27 KOMA-Script guide (chapter: scraddr)] +\ProvidesFile{scraddr.tex}[2008/07/10 KOMA-Script guide (chapter: scraddr)] \translator{Jens-Uwe Morawski\and Gernot Hassenpflug\and Markus Kohm} % Date of translated german file: 2005/08/10 @@ -95,7 +95,7 @@ a lot of {\TeX} memory. The structure of the address entries in the address file was discussed in detail in \autoref{sec:scrlttr2.addressFile} from -\autopageref{desc:scrlttr2.macro.adrentry} onwards. The division of +\autopageref{desc:scrlttr2.cmd.adrentry} onwards. The division of the address file with the help of \Macro{adrchar} or \Macro{addrchar}, also discussed therein, has no meaning for \Package{scraddr} and is simply ignored. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrbookreportarticle.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrbookreportarticle.tex index 14653ea8f5c..74349845913 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrbookreportarticle.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrbookreportarticle.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrbookreportarticle.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrbookreportarticle.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ============================================================================ -\ProvidesFile{scrbookreportarticle.tex}[2007/12/15 KOMA-Script guide (chapter: +\ProvidesFile{scrbookreportarticle.tex}[2008/07/10 KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl)] \translator{Jens-Uwe Morawski\and Gernot Hassenpflug\and Markus Kohm} @@ -58,6 +58,9 @@ scrbook, scrreprt, scrartcl)] %\AddSeeIndex{command}{gen}{\GuidecmdIndexShort}{cmd}% <-- set automaticly \AddSeeIndex{macro}{gen}{\GuidecmdIndexShort}{cmd}% +\textsc{Note:} Almost all commands of the chapter for experts are missing, +because that chapter is still missing. Some are at this chapter instead. + \begin{Explain} The main classes of the {\KOMAScript} bundle are designed as counterparts to the standard {\LaTeX} classes. This means that the @@ -108,6 +111,92 @@ sections. \section{The Options} \label{sec:maincls.options} +\textsc{Note:} Since version~3.00 the main classes understand command +\Macro{KOMAoptions} (see \autoref{sec:scrlttr2.options}, +\autopageref{desc:scrlttr2.cmd.KOMAoptions}). In the course of the +development many new options were implemented and old became obsolete. Only +the new options may be used with \Macro{KOMAoptions}. Unfortunately most of +them are documented not yet. You may find the obsolete and corresponding new +options at \autoref{tab:maincls-experts.deprecated}. + +\textsc{Note:} Following options are still missing in this chapter: +\KOption{bibliography}\PName{setting}, \OptionValue{bibliography}{openstyle}, +\OptionValue{bibliography}{oldstyle}, \OptionValue{captions}{bottombeside}, +\OptionValue{captions}{centeredbeside}, \OptionValue{captions}{innerbeside}, +\OptionValue{captions}{leftbeside}, \OptionValue{captions}{outerbeside}, +\OptionValue{captions}{rightbeside}, \OptionValue{captins}{topbeside}, +\KOption{fontsize}\PName{size}, \OptionValue{footnotes}{multiple}, +\OptionValue{footnotes}{nomultiple}, \OptionValue{headings}{onelineappendix}, +\OptionValue{headings}{twolineappendix}, \OptionValue{headings}{onelinechapter}, +\OptionValue{headings}{twolinechapter}, \OptionValue{listof}{chapterentry}, +\OptionValue{listof}{chaptergapline}, \OptionValue{listof}{chaptergapsmall}, +\OptionValue{listof}{leveldown}, \OptionValue{listof}{nochaptergap}, +\OptionValue{numbers}{autoendperiod}, \OptionValue{toc}{bibliography}, +\OptionValue{toc}{bibliographynumbered}, \OptionValue{toc}{index}, +\OptionValue{toc}{listof}, \OptionValue{toc}{listofnumbered}, +\OptionValue{toc}{nobibliography}, \OptionValue{toc}{noindex}, +\OptionValue{toc}{nolistof}, \KOption{version}\PName{value} (see +\autoref{sec:scrlttr2.compatibilityOptions}, +\autopageref{desc:scrlttr2.option.version}). + +\begingroup + \onelinecaptionsfalse + \newcommand*{\NewOld}[2]{% + \BeginIndex{Option}{#1}\PValue{#1} & \PValue{#2}\EndIndex{Option}{#1}\\ + }% + \begin{longtable}{p{\dimexpr.5\textwidth-2\tabcolsep}p{\dimexpr.5\textwidth-2\tabcolsep}} + \caption{Obsolete vs. Recommended Options\label{tab:maincls-experts.deprecated}}\\ + \toprule + obsolete option & recommended option \\ + \midrule + \endfirsthead + \caption[]{Obsolete vs. Recommended Options + (\emph{continuation})}\\ + \toprule + obsolete Option & recommended option \\ + \midrule + \endhead + \midrule + \multicolumn{2}{r@{}}{\dots}\\ + \endfoot + \bottomrule + \endlastfoot + \NewOld{abstracton}{abstract}% + \NewOld{abstractoff}{abstract=false}% + \NewOld{parskip-}{parskip=full-}% + \NewOld{parskip+}{parskip=full+}% + \NewOld{parskip*}{parskip=full*}% + \NewOld{halfparskip}{parskip=half}% + \NewOld{halfparskip-}{parskip=half-}% + \NewOld{halfparskip+}{parskip=half+}% + \NewOld{halfparskip*}{parskip=half*}% + \NewOld{tocleft}{toc=flat}% + \NewOld{tocindent}{toc=graduated}% + \NewOld{listsleft}{listof=flat}% + \NewOld{listsindent}{listof=graduated}% + \NewOld{cleardoubleempty}{cleardoublepage=empty}% + \NewOld{cleardoubleplain}{cleardoublepage=plain}% + \NewOld{cleardoublestandard}{cleardoublepage=current}% + \NewOld{pointednumber}{numbers=enddot}% + \NewOld{pointlessnumber}{numbers=noenddot}% + \NewOld{nochapterprefix}{chapterprefix=false}% + \NewOld{noappendixprefix}{appendixprefix=false}% + \NewOld{bigheadings}{headings=big}% + \NewOld{normalheadings}{headings=normal}% + \NewOld{smallheadings}{headings=small}% + \NewOld{headnosepline}{headsepline=false}% + \NewOld{footnosepline}{footsepline=false}% + \NewOld{liststotoc}{listof=totoc}% + \NewOld{liststotocnumbered}{listof=numbered}% + \NewOld{bibtotoc}{bibliography=totoc}% + \NewOld{bibtotocnumbered}{bibliography=totocnumbered}% + \NewOld{idxtotoc}{index=totoc}% + \NewOld{tablecaptionabove}{captions=tableheading}% + \NewOld{tablecaptionbelow}{captions=tablesignature}% + \NewOld{onelinecaption}{captions=oneline}% + \NewOld{noonelinecaption}{captions=nooneline}% + \end{longtable} +\endgroup This section describes the global options of the three main classes. The majority of the options can also be found in the standard classes. @@ -129,49 +218,41 @@ set, either by default or by the user. Option & \Class{scrbook} & \Class{scrreprt} & \Class{scrartcl} \\ \hline\rule{0pt}{2.7ex}% - \Option{11pt} & - default & default & default \\ - \Option{a4paper} & - default & default & default \\ - \Option{abstractoff} & - \emph{undefined} & default & default \\ - \Option{bigheadings} & - default & default & default \\ - \Option{chapteratlists=} & + \KOption{abstract} & + \emph{undefined} & \PValue{false} & \PValue{false} \\ + \KOption{captions} & + \PValue{tablesignature} & \PValue{tablesignature} & \PValue{tablesignature} \\ + \KOption{chapteratlists} & \PValue10{pt} & \PValue{10pt} & \emph{undefined} \\ - \Option{final} & - default & default & default \\ - \Option{footnosepline} & - default & default & default \\ - \Option{headnosepline} & - default & default & default \\ - \Option{listsindent} & - default & default & default \\ - \Option{nochapterprefix} & - default & default & \emph{undefined} \\ - \Option{onelinecaption} & - default & default & default \\ - \Option{notitlepage} & - & & default \\ - \Option{onecolumn} & - default & default & default \\ - \Option{oneside} & - & default & default \\ - \Option{openany} & - & default & default \\ - \Option{openright} & - default & & \\ + \KOption{chapterprefix} & + \PValue{false} & \PValue{false} & \emph{undefined} \\ + \KOption{draft} & + \PValue{false} & \PValue{false} & \PValue{false} \\ + \KOption{fontsize} & + \PValue{11pt} & \PValue{11pt} & \PValue{11pt} \\ + \KOption{footsepline} & + \PValue{false} & \PValue{false} & \PValue{false} \\ + \KOption{headings} & + \PValue{big} & \PValue{big} & \PValue{big} \\ + \KOption{headsepline} & + \PValue{false} & \PValue{false} & \PValue{false} \\ + \KOption{listof} & + \PValue{graduated} & \PValue{graduated} & \PValue{graduated} \\ + \KOption{open} & + \PValue{right} & \PValue{any} & \emph{undefined} \\ + \KOption{paper} & + \PValue{a4} & \PValue{a4} & \PValue{a4} \\ \Option{parindent} & default & default & default \\ - \Option{tablecaptionbelow} & - default & default & default \\ - \Option{titlepage} & - default & default \\ - \Option{tocindent} & - default & default & default \\ - \Option{twoside} & - default & & \\ - \Option{version=} & + \KOption{titlepage} & + \PValue{true} & \PValue{true} & \PValue{false} \\ + \KOption{toc} & + \PValue{graduated} & \PValue{graduated} & \PValue{graduated} \\ + \KOption{twocolumn} & + \PName{false} & \PName{false} & \PName{false} \\ + \KOption{twoside} & + \PValue{true} & \PValue{false} & \PValue{false} \\ + \KOption{version} & \PValue{first} & \PValue{first} & \PValue{first} \\ \end{tabular} \label{tab:maincls.stdOptions} @@ -330,32 +411,6 @@ however. \end{Explain} -\begin{Declaration} - \Option{BCOR}\PName{correction}\\ - \Option{DIV}\PName{factor}\\ - \Option{DIVcalc}\\ - \Option{DIVclassic}\\ - \PName{Value}\Option{headlines} -\end{Declaration}% -\BeginIndex{Option}{BCOR}% -\BeginIndex{Option}{DIV}% -\BeginIndex{Option}{DIVcalc}% -\BeginIndex{Option}{DIVclassic}% -\BeginIndex{Option}{headlines}% -The options for the divisor and the binding correction\Index{binding - correction} are passed directly to the \Package{typearea} package -(see \autoref{sec:typearea.options}, \autopageref{desc:typearea.option.BCOR} -till \autopageref{desc:typearea.option.headlines}). This differs from the -standard classes, where there is no such transfer. This is also valid -for the option that sets the number of header lines. -% -\EndIndex{Option}{BCOR}% -\EndIndex{Option}{DIV}% -\EndIndex{Option}{DIVcalc}% -\EndIndex{Option}{DIVclassic}% -\EndIndex{Option}{headlines} - - \subsection{Options for Document Layout} \label{sec:maincls.layoutOptions} @@ -366,140 +421,85 @@ course, all page layout options (see options. The reverse is also partially true. \begin{Declaration} - \Option{oneside}\\ - \Option{twoside} + \KOption{open}\PName{value} \end{Declaration}% -\BeginIndex{Option}{oneside} -\BeginIndex{Option}{twoside}% -These two options have the same effect as in the standard classes. -The option \Option{oneside} defines a one-sided document layout with a -one-sided page layout. This means in particular that normally a ragged -page bottom is used. - -The option \Option{twoside} defines a two-sided document layout with a -two-sided page layout. This means that the {\LaTeX} command -\Macro{flushbottom}\IndexCmd{flushbottom} is used to ensure that page -breaks don't leave a variable empty space at the bottom of a page. A -ragged page bottom can be obtained with the {\LaTeX} command -\Macro{raggedbottom}\IndexCmd{raggedbottom}. -% -\EndIndex{Option}{oneside}% -\EndIndex{Option}{twoside}% - - -\begin{Declaration} - \Option{onecolumn}\\ - \Option{twocolumn} -\end{Declaration}% -\BeginIndex{Option}{onecolumn} -\BeginIndex{Option}{twocolumn}% -These options have the same effect as the corresponding standard -options. They are used to switch between a one-column and a two-column -layout. The standard {\LaTeX} capabilities for multi-column layout are -only useful for very simple uses. The standard package -\Package{multicol} is much more versatile (see -\cite{package:multicol}).\Index{columns}\IndexPackage{multicol} -% -\EndIndex{Option}{onecolumn} \EndIndex{Option}{twocolumn} - - -\begin{Declaration} - \Option{openany}\\ - \Option{openright} -\end{Declaration}% -\BeginIndex{Option}{openany}% -\BeginIndex{Option}{openright}% -These\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} options have the -same effect as the corresponding standard options. They affect the -choice of the page where a chapter\Index[indexmain]{chapter} can -begin, so they are not available with the \Class{scrartcl} class, -since the next largest unit below ``part'' is ``section''. The chapter -level is not available in \Class{scrartcl}. +\BeginIndex{Option}{open~=\PName{value}}% +These\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} option has the same effects +like the standard options \Option{openany} and \Option{openright}. They affect +the choice of the page where a chapter\Index[indexmain]{chapter} can begin, so +they are not available with the \Class{scrartcl} class, since the next largest +unit below ``part'' is ``section''. The chapter level is not available in +\Class{scrartcl}. A chapter always begins on a new page. When the option -\Option{openany} is active, any page can be used. The option -\Option{openright} causes the chapter to begin on a new right page. +\OptionValue{open}{any} is active, any page can be used. The option +\OptionValue{open}{right} causes the chapter to begin on a new right page. An empty left page may be inserted automatically in this case. The empty pages are created by the implicit execution of the {\LaTeX} command \Macro{cleardoublepage}\IndexCmd{cleardoublepage}. -The option \Option{openright} has no effect with a one-sided layout, +The option \OptionValue{open}{right} has no effect with a one-sided layout, because only the two-sided layout differentiates between left and right pages. For this reason it should only be used together with the -\Option{twoside} option. -% -\EndIndex{Option}{openany}% -\EndIndex{Option}{openright} +\Option{twoside} option.% +\EndIndex{Option}{open~=\PName{value}}% \begin{Declaration} - \Option{cleardoublestandard}\\ - \Option{cleardoubleplain}\\ - \Option{cleardoubleempty} + \KOption{cleardoublepage}\PName{page style}\\ + \OptionValue{cleardoublepage}{current} \end{Declaration}% -\BeginIndex{Option}{cleardoublestandard}% -\BeginIndex{Option}{cleardoubleplain}% -\BeginIndex{Option}{cleardoubleempty}% +\BeginIndex{Option}{cleardoublepage~=\PName{page style}}% +\BeginIndex{Option}{cleardoublepage~=\PValue{current}}% If one wishes the empty pages created by the \Macro{cleardoublepage} command to have no headers but only a page number, or neither headers nor page number while using the standard classes, the only possibility is to redefine the command appropriately. {\KOMAScript} provides options that avoid this necessity. The option -\Option{cleardoublestandard} enables the default +\OptionValue{cleardoublepage}{current} enables the default \Macro{cleardoublepage} behaviour. If the option -\Option{cleardoubleplain} is used, then the +\OptionValue{cleardoublepage}{plain} is used, then the \PValue{plain}\IndexPagestyle{plain} page style is applied to the -empty left page. The option \Option{cleardoubleempty} causes the +empty left page. The option \OptionValue{cleardoublepage}{empty} causes the \PValue{empty}\IndexPagestyle{empty} page style to be used. The page -styles are described in \autoref{sec:maincls.pageStyle}. -% -\EndIndex{Option}{cleardoublestandard}% -\EndIndex{Option}{cleardoubleplain}% -\EndIndex{Option}{cleardoubleempty}% +styles are described in \autoref{sec:maincls.pageStyle}.% +\EndIndex{Option}{cleardoublepage~=\PValue{current}}% +\EndIndex{Option}{cleardoublepage~=\PName{page style}}% \begin{Declaration} - \Option{titlepage}\\ - \Option{notitlepage} + \KOption{titlepage}\PName{switch} \end{Declaration}% -\BeginIndex{Option}{titlepage}% -\BeginIndex{Option}{notitlepage}% -Both options have the same effect as the corresponding standard ones. -The \Option{titlepage} option makes {\LaTeX} use separate pages for -the titles. These pages are set inside a \Environment{titlepage} -environment and normally have neither header nor footer. In comparison -with standard {\LaTeX}, {\KOMAScript} expands the handling of the titles -significantly (see \autoref{sec:maincls.titles}). - -The option \Option{notitlepage} specifies that an \emph{in-page} title -is used. This means that the title is specially emphasized, but it may -be followed by more material on the same page, for instance by an -abstract or a section. -% -\EndIndex{Option}{titlepage}% -\EndIndex{Option}{notitlepage}% +\BeginIndex{Option}{titlepage~=\PName{switch}}% +The values of the option (see \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}) have the same effect as the standard +options \Option{titlepage} and \Option{notitlepage}. The option +\OptionValue{titlepage}{true} makes {\LaTeX} use separate pages for the +titles. These pages are set inside a \Environment{titlepage} environment and +normally have neither header nor footer. In comparison with standard {\LaTeX}, +{\KOMAScript} expands the handling of the titles significantly (see +\autoref{sec:maincls.titles}). + +The option \OptionValue{titlepage}{false} specifies that an \emph{in-page} +title is used. This means that the title is specially emphasized, but it may +be followed by more material on the same page, for instance by an abstract or +a section.% +\EndIndex{Option}{titlepage~=\PName{switch}}% \begin{Explain}% \begin{Declaration} - \Option{parskip}\\ - \Option{parskip*}\\ - \Option{parskip+}\\ - \Option{parskip-}\\ - \Option{halfparskip}\\ - \Option{halfparskip*}\\ - \Option{halfparskip+}\\ - \Option{halfparskip-}\\ + \OptionValue{parskip}{full}\\ + \OptionValue{parskip}{full*}\\ + \OptionValue{parskip}{full+}\\ + \OptionValue{parskip}{full-}\\ + \OptionValue{parskip}{half}\\ + \OptionValue{parskip}{half*}\\ + \OptionValue{parskip}{half+}\\ + \OptionValue{parskip}{half-}\\ \Option{parindent} \end{Declaration}% -\BeginIndex{Option}{parskip}% -\BeginIndex{Option}{parskip*}% -\BeginIndex{Option}{parskip+}% -\BeginIndex{Option}{parskip-}% -\BeginIndex{Option}{halfparskip}% -\BeginIndex{Option}{halfparskip*}% -\BeginIndex{Option}{halfparskip+}% -\BeginIndex{Option}{halfparskip-}% +\BeginIndex{Option}{parskip~=\PName{Value}}% \BeginIndex{Option}{parindent}% The standard classes normally set paragraphs\Index[indexmain]{paragraph} indented and without any @@ -528,14 +528,15 @@ newspaper. Independently of the explanation above, there are often requests for a -document layout with vertical inter-paragraph spacing instead of -indentation. {\KOMAScript} provides a large number of related -options: \Option{parskip}, \Option{parskip-}, \Option{parskip*}, -\Option{parskip+} and \Option{halfparskip}, \Option{halfparskip-}, -\Option{halfparskip*} and \Option{halfparskip+}. - -The four \Option{parskip} options each define an inter-paragraph -spacing of one line. The four \Option{halfparskip} options use just a +document layout with vertical inter-paragraph spacing instead of indentation. +{\KOMAScript} provides a large number of related options: +\OptionValue{parskip}{full}, \OptionValue{parskip}{full-}, +\OptionValue{parskip}{full*}, \OptionValue{parskip}{full+} and +\OptionValue{parskip}{half}, \OptionValue{parskip}{half-}, +\OptionValue{parskip}{half*} and \OptionValue{parskip}{half+}. + +The four \PValue{full} option valuess each define an inter-paragraph +spacing of one line. The four \PValue{half} option values use just a spacing of half a line. In order to avoid a change of paragraph going unnoticed, for instance after a page break, three of the options of each set ensure that the last line of a paragraph is not completely @@ -545,71 +546,58 @@ is free and the star variant ensures that at least a fourth of the line is free. The minus variants make no special provision for the last line of a paragraph. -All eight options also change the spacing before, after and inside -list environments. This avoids the problem of these environments or -the paragraphs inside them having a larger separation than the -separation between the paragraphs of normal text. Additionally, these -options ensure that the table of contents and the lists of figures and -tables are set without any additional spacing. +All eight \PValue{full} and \PValue{half} option values also change the +spacing before, after and inside list environments. This avoids the problem of +these environments or the paragraphs inside them having a larger separation +than the separation between the paragraphs of normal text. Additionally, these +options ensure that the table of contents and the lists of figures and tables +are set without any additional spacing. The default behaviour of {\KOMAScript} follows the \Option{parindent} option. In this case, there is no spacing between paragraphs, only an indentation of the first line by 1\Unit{em}. % -\EndIndex{Option}{parskip}% -\EndIndex{Option}{parskip*}% -\EndIndex{Option}{parskip+}% -\EndIndex{Option}{parskip-}% -\EndIndex{Option}{halfparskip}% -\EndIndex{Option}{halfparskip*}% -\EndIndex{Option}{halfparskip+}% -\EndIndex{Option}{halfparskip-}% +\EndIndex{Option}{parskip~=\PName{Value}}% \EndIndex{Option}{parindent}% \begin{Declaration} - \Option{headsepline}\\ - \Option{headnosepline}\\ - \Option{footsepline}\\ - \Option{footnosepline} + \KOption{headsepline}\PName{switch}\\ + \KOption{footsepline}\PName{switch} \end{Declaration}% -\BeginIndex{Option}{headsepline}% -\BeginIndex{Option}{headnosepline}% -\BeginIndex{Option}{footsepline}% -\BeginIndex{Option}{footnosepline}% -In order to have a line separating the header from the text body use -the option \Option{headsepline}. The option \Option{headnosepline} has -the reverse effect. These options have no effect with the page styles -\PValue{empty} and \PValue{plain}, because there is no header in this -case. Such a line always has the effect of visually bringing header -and text body closer together. That doesn't mean that the header must -now be moved farther from the text body. Instead, the header should be -considered as belonging to the text body for the purpose of page -layout calculations. {\KOMAScript} takes this into account by -automatically passing the option \Option{headinclude} to the -\Package{typearea} package whenever the \Option{headsepline} option is -used. - -The presence of a line between text body and footer is controlled by -the options \Option{footsepline} and \Option{footnosepline}, that -behave like the corresponding header functions. Whenever a line is -requested by the \Option{footsepline} option, the \Option{footinclude} -option is automatically passed to the \Package{typearea} package. In -contrast to \Option{headsepline}, \Option{footsepline} takes effect -when used together with the page style \PValue{plain}, because the -\PValue{plain} style produces a page number in the footer. +\BeginIndex{Option}{headsepline~=\PName{switch}}% +\BeginIndex{Option}{footsepline~=\PName{switch}}% +In order to have a line separating the header from the text body use the +option \Option{headsepline} (see \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}). The option +\OptionValue{headsepline}{false} has the reverse effect. These options have no +effect with the page styles \PValue{empty} and \PValue{plain}, because there +is no header in this case. Such a line always has the effect of visually +bringing header and text body closer together. That doesn't mean that the +header must now be moved farther from the text body. Instead, the header +should be considered as belonging to the text body for the purpose of page +layout calculations. {\KOMAScript} takes this into account by automatically +passing the option \Option{headinclude} to the \Package{typearea} package +whenever the \Option{headsepline} option is used. + +The presence of a line between text body and footer is controlled by the +option \Option{footsepline}, that behaves like the corresponding header +functions. Whenever a line is requested by the \Option{footsepline} option, +the \Option{footinclude} option is automatically passed to the +\Package{typearea} package. In contrast to \Option{headsepline}, +\Option{footsepline} takes effect when used together with the page style +\PValue{plain}, because the \PValue{plain} style produces a page number in the +footer. % -\EndIndex{Option}{headsepline}% -\EndIndex{Option}{headnosepline}% -\EndIndex{Option}{footsepline}% -\EndIndex{Option}{footnosepline}% +\EndIndex{Option}{headsepline~=\PName{switch}}% +\EndIndex{Option}{footsepline~=\PName{switch}}% \begin{Declaration} \Option{chapterprefix}\\ - \Option{nochapterprefix} + \OptionValue{chapterprefix}{false} \end{Declaration}% \BeginIndex{Option}{chapterprefix}% -\BeginIndex{Option}{nochapterprefix}% +\BeginIndex{Option}{chapterprefix~=\PValue{false}}% With\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} the standard classes \Class{book} and \Class{report} a chapter title\Index[indexmain]{chapter>title} consists of a line with the word @@ -618,46 +606,44 @@ title\Index[indexmain]{chapter>title} consists of a line with the word followed by the chapter number. The title itself is set left-justified on the following lines. The same effect is obtained in {\KOMAScript} with the class option \Option{chapterprefix}. The default however is -\Option{nochapterprefix}. These options also affect the automatic +\OptionValue{chapterprefix}{false}. These options also affect the automatic running titles in the headers (see \autoref{sec:maincls.pageStyle}). % \EndIndex{Option}{chapterprefix}% -\EndIndex{Option}{nochapterprefix}% +\EndIndex{Option}{chapterprefix~=\PValue{false}}% \begin{Declaration} - \Option{appendixprefix}\\ - \Option{noappendixprefix} + \KOption{appendixprefix}\PName{switch} \end{Declaration}% -\BeginIndex{Option}{appendixprefix}% -\BeginIndex{Option}{noappendixprefix}% -Sometimes\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} one wishes to -have the chapter titles in simplified form according to -\Option{nochapterprefix}. But at the same time, one wishes a title of -an appendix\Index{appendix} to be preceded by a line with ``Appendix'' +\BeginIndex{Option}{appendixprefix~=\PName{switch}}% +Sometimes\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} one wishes to have the +chapter titles in simplified form according to +\OptionValue{chapterprefix}{false}. But at the same time, one wishes a title +of an appendix\Index{appendix} to be preceded by a line with ``Appendix'' followed by the appendix letter. This is achieved by using the -\Option{appendixprefix} option. Since this results in an inconsistent +\Option{appendixprefix} option (see \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}). Since this results in an inconsistent document layout, I advise against using this option. -The reverse option \Option{noappendixprefix} exists only for -completeness' sake. I don't know of any sensible use for it. -% -\EndIndex{Option}{appendixprefix}% -\EndIndex{Option}{noappendixprefix}% +The reverse option \OptionValue{appendixprefix}{false} exists only for +completeness' sake. I don't know of any sensible use for it.% +\EndIndex{Option}{appendixprefix~=\PName{switch}}% \begin{Declaration} - \Option{onelinecaption}\\ - \Option{noonelinecaption} + \OptionValue{captions}{oneline}\\ + \OptionValue{captions}{nooneline} \end{Declaration} -\BeginIndex{Option}{onelinecaption}% +\BeginIndex{Option}{captions~=\PValue{oneline}}% +\BeginIndex{Option}{captions~=\PValue{nooneline}}% The standard classes differentiate between one-line and multi-line table or figure captions. One-line captions are centered while multi-line captions are left-justified. This behavior, which is also the default with \KOMAScript, corresponds to the option -\Option{onelinecaption}. There is no special handling of one-line -captions when the \Option{noonelinecaption} option is given. +\OptionValue{captions}{oneline}. There is no special handling of one-line +captions when the \OptionValue{captions}{nooneline} option is given. \begin{Explain} The avoidance of a special treatment for the caption has an @@ -665,12 +651,12 @@ captions when the \Option{noonelinecaption} option is given. appear inside a \Macro{caption} command often have a wrong number assigned to them. This happens because the footnote counter is incremented once as soon as the text is measured to determine if it - will be one line or more. When the \Option{noonelinecaption} option + will be one line or more. When the \OptionValue{captions}{nooneline} option is used no such measurement is made. The footnote numbers are therefore correct. But since {\KOMAScript} version~2.9 you don't need the option - \Option{noonelinecaption} to avoid the above described + \OptionValue{captions}{nooneline} to avoid the above described effect. {\KOMAScript} classes contain a workaround, so you can have footnotes inside captions. It should be mentioned though that when using footnotes inside floating environments, the contents of the @@ -679,8 +665,8 @@ captions when the \Option{noonelinecaption} option is given. inseparable. \end{Explain} % -\EndIndex{Option}{onelinecaption}% -\EndIndex{Option}{noonelinecaption}% +\EndIndex{Option}{captions~=\PValue{oneline}}% +\EndIndex{Option}{captions~=\PValue{nooneline}}% \subsection{Options for Font Selection} \label{sec:maincls.fontOptions} @@ -720,20 +706,18 @@ the \Package{typearea} package. \begin{Declaration} - \Option{smallheadings}\\ - \Option{normalheadings}\\ - \Option{bigheadings} + \OptionValue{headings}{small}\\ + \OptionValue{headings}{normal}\\ + \OptionValue{headings}{big} \end{Declaration}% -\BeginIndex{Option}{smallheadings}% -\BeginIndex{Option}{normalheadings}% -\BeginIndex{Option}{bigheadings}% +\BeginIndex{Option}{headings~=\PName{size}}% The font size used for the titles\index{title}\index{document structure} is relatively big, both with the standard classes and with {\KOMAScript}. Not everyone likes this choice; moreover it is specially problematic for small paper sizes. Consequently, {\KOMAScript} provides, besides the large title font size defined by -the \Option{bigheadings} option, the two options -\Option{normalheadings} and \Option{smallheadings}, that allow for +the \OptionValue{headings}{big} option, the two options +\OptionValue{headings}{normal} and \OptionValue{headings}{small}, that allow for smaller title font sizes. The font sizes for headings resulting from these options for \Class{scrbook} and \Class{scrreprt} are shown in \autoref{tab:maincls.structureElementsFont}, @@ -743,14 +727,12 @@ smaller font sizes are generally used. \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}The spacing before and after chapter titles is also influenced by these options. Chapter titles are also influenced by the options \Option{chapterprefix} and -\Option{nochapterprefix}, and appendix titles by the options -\Option{appendixprefix} and \Option{noappendixprefix}, all of which +\OptionValue{chapterprefix}{false}, and appendix titles by the options +\Option{appendixprefix} and \OptionValue{appendixprefix}{false}, all of which are described in \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.chapterprefix}. % -\EndIndex{Option}{smallheadings}% -\EndIndex{Option}{normalheadings}% -\EndIndex{Option}{bigheadings}% +\EndIndex{Option}{headings~=\PName{size}}% \subsection{Options Affecting the Table of Contents} \label{sec:maincls.tocOptions} @@ -763,17 +745,17 @@ options provided. \begin{Explain}% \begin{Declaration} - \Option{liststotoc}\\ - \Option{idxtotoc}\\ - \Option{bibtotoc}\\ - \Option{bibtotocnumbered}\\ - \Option{liststotocnumbered} + \OptionValue{listof}{totoc}\\ + \OptionValue{index}{totoc}\\ + \OptionValue{bibliography}{totoc}\\ + \OptionValue{bibliography}{totocnumbered}\\ + \OptionValue{listof}{numbered} \end{Declaration}% -\BeginIndex{Option}{liststotoc}% -\BeginIndex{Option}{idxtotoc}% -\BeginIndex{Option}{bibtotoc}% -\BeginIndex{Option}{bibtotocnumbered}% -\BeginIndex{Option}{liststotocnumbered}% +\BeginIndex{Option}{listof~=\PValue{totoc}}% +\BeginIndex{Option}{index~=\PValue{totoc}}% +\BeginIndex{Option}{bibliography~=\PValue{totoc}}% +\BeginIndex{Option}{bibliography~=\PValue{totocnumbered}}% +\BeginIndex{Option}{listof~=\PValue{numbered}}% Normally, lists of tables and figures, index and bibliography are not included in the table of contents. These entries are purposely omitted in classical typography because, among other things, a very particular @@ -798,13 +780,13 @@ document. Both lists are similiar to the table of contents in structure and intention. I'm therefore sceptical of this evolution. Since it makes no sense to include only one of the lists of tables and figures in the table of contents, there exists only one option -\Option{liststotoc} that causes entries for both types of lists to be +\OptionValue{listof}{totoc} that causes entries for both types of lists to be included. This also includes any lists produced with version~1.2e or later of the \Package{float}\IndexPackage{float} package (see \cite{package:float}). All these lists are unnumbered, since they contain entries that reference other sections of the document. -The option \Option{idxtotoc} causes an entry for the index to be +The option \OptionValue{index}{totoc} causes an entry for the index to be included in the table of contents. The index is unnumbered since it too only includes references to the contents of the other sectional units. @@ -813,51 +795,50 @@ The bibliography is a different kind of listing. It does not list the contents of the present document but refers instead to external documents. For that reason, it could be argued that it qualifies as a chapter (or section) and, as such, should be numbered. The option -\Option{bibtotocnumbered} has this effect, including the generation of +\OptionValue{bibliography}{totocnumbered} has this effect, including the generation of the corresponding entry in the table of contents. I personally think that this reasoning would lead us to consider a classical list of sources also to be a separate chapter. On the other hand, the bibliography is finally not something that was written by the document's author. In view of this, the bibliography merits nothing more than an unnumbered entry in the table of contents, and that can -be achieved with the \Option{bibtotoc} option. +be achieved with the \OptionValue{bibliography}{totoc} option. As\ChangedAt{v2.8q}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} the author -of {\KOMAScript} already views the option \Option{liststotoc} with -open skepticism, and frankly detests option \Option{bibtotocnumbered}, +of {\KOMAScript} already views the option \OptionValue{listof}{totoc} with +open skepticism, and frankly detests option \OptionValue{bibliography}{totocnumbered}, it should come as no surprise that he implemented option -\Option{liststotocnumbered} only under extreme duress. He fears that +\OptionValue{listof}{numbered} only under extreme duress. He fears that as a next step someone will want the table of contents numbered and entered in the table of contents. Therefore, those looking in this -documentation for a detailed description of option \Option{liststotoc} +documentation for a detailed description of option \OptionValue{listof}{totoc} will search in vain. A similar option for the index would be just as silly, so its implementation has been determinedly refused so far. % -\EndIndex{Option}{liststotoc}% -\EndIndex{Option}{idxtotoc}% -\EndIndex{Option}{bibtotoc}% -\EndIndex{Option}{bibtotocnumbered}% -\EndIndex{Option}{liststotocnumbered}% +\EndIndex{Option}{listof~=\PValue{totoc}}% +\EndIndex{Option}{index~=\PValue{totoc}}% +\EndIndex{Option}{bibliography~=\PValue{totoc}}% +\EndIndex{Option}{bibliography~=\PValue{totocnumbered}}% +\EndIndex{Option}{listof~=\PValue{numbered}}% \begin{Declaration} - \Option{tocindent}\\ - \Option{tocleft} + \OptionValue{toc}{graduated}\\ + \OptionValue{toc}{flat} \end{Declaration}% -\BeginIndex{Option}{tocindent}% -\BeginIndex{Option}{tocleft}% +\BeginIndex{Option}{toc~=\PName{value}}% The table of contents is normally\ChangedAt{v2.8q}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} set up so that different sectional units have different indentations. The section number is set left-justified in a fixed-width field. This -setup is selected with the option \Option{tocindent}. +setup is selected with the option \OptionValue{toc}{graduated}. When there are many sections, the corresponding numbering tends to become very wide, so that the reserved field overflows. The FAQ \cite{DANTE:FAQ} suggests that the table of contents should be redefined in such a case. {\KOMAScript} offers an alternative format -that avoids the problem completely. If the option \Option{tocleft} is +that avoids the problem completely. If the option \OptionValue{toc}{flat} is selected, then no variable indentation is applied to the titles of the sectional units. Instead, a table-like organisation is used, where all unit numbers and titles, respectively, are set in a left-justified @@ -866,26 +847,25 @@ automatically. \begin{Explain} In order to calculate automatically the space taken by the unit - numbers when using the option \Option{tocleft} it is necessary to + numbers when using the option \OptionValue{toc}{flat} it is necessary to redefine some macros. It is improbable but not impossible that this leads to problems when using other packages. If you think this may be causing problems, you should try the alternative option - \Option{tocindent}, since it does not make any redefinitions. When + \OptionValue{toc}{graduated}, since it does not make any redefinitions. When using packages that affect the format of the table of contents, it - is possible that the use of options \Option{tocleft} and - \Option{tocindent} too may lead to problems. When using such + is possible that the use of options \OptionValue{toc}{flat} and + \OptionValue{toc}{graduated} too may lead to problems. When using such packages then, for safety's sake, one should refrain from using either of these options as global (class) options. - If the \Option{tocleft} option is active, the width of the field for + If the \OptionValue{toc}{flat} option is active, the width of the field for unit numbering is determined when outputting the table of contents. After a change that affects the table of contents, at most three {\LaTeX} runs are necessary to obtain a correctly set table of contents. \end{Explain} % -\EndIndex{Option}{tocindent}% -\EndIndex{Option}{tocleft}% +\EndIndex{Option}{toc~=\PName{value}}% \subsection{Options for Lists of Floats} \label{sec:maincls.listsOptions} @@ -909,30 +889,28 @@ possible to produce new float environments with corresponding lists. \end{Explain} \begin{Declaration} - \Option{listsindent}\\ - \Option{listsleft} + \OptionValue{listof}{graduated}\\ + \OptionValue{listof}{flat} \end{Declaration}% -\BeginIndex{Option}{listsindent}% -\BeginIndex{Option}{listsleft}% +\BeginIndex{Option}{listof~=\PName{value}}% Lists of figures and tables\ChangedAt{v2.8q}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} are generally set up so that their numbering uses a fixed space. This -corresponds to the use of option \Option{listsindent}. +corresponds to the use of option \OptionValue{listof}{graduated}. If the numbers become too large, for instance because many tables are used, it may happen that the available space is exceeded. Therefore -{\KOMAScript} supplies an option called \Option{listsleft} that is -similar to the \Option{tocleft} option. The width of the numbers is +{\KOMAScript} supplies an option called \OptionValue{listof}{flat} that is +similar to the \OptionValue{toc}{flat} option. The width of the numbers is automatically determined and the space for them correspondingly adjusted. Concerning the mode of operation and the side effects, the observations made in \autoref{sec:maincls.tocOptions}, -\autopageref{desc:maincls.option.tocleft} for the \Option{tocleft} +\autopageref{desc:maincls.option.toc} for the \OptionValue{toc}{flat} option are equally valid in this case. Please note that when using the -\Option{listsleft} option several {\LaTeX} runs are necessary before +\OptionValue{listof}{flat} option several {\LaTeX} runs are necessary before the lists of floats achieve their final form. % -\EndIndex{Option}{listsindent}% -\EndIndex{Option}{listsleft}% +\EndIndex{Option}{listof~=\PName{value}}% \begin{Declaration} \Option{chapteratlists}\\ @@ -971,21 +949,20 @@ formatting of the document and cannot be assigned to other sections. They are therefore the \emph{remaining options}. \begin{Declaration} - \Option{abstracton}\\ - \Option{abstractoff} + \KOption{abstract}\PName{switch} \end{Declaration}% -\BeginIndex{Option}{abstracton}% -\BeginIndex{Option}{abstractoff}% -In\OnlyAt{\Class{scrreprt}\and\Class{scrartcl}} the standard classes -the \Environment{abstract} environment sets the text ``\abstractname'' -centered before the summary text\Index[indexmain]{summary}. This was -normal practice in the past. In the meantime, newspaper reading has -trained readers to recognize a displayed text at the beginning of an -article or report as the abstract. This is even more true when the -text comes before the table of contents. It is also surprising when -precisely this title appears small and centered. {\KOMAScript} -provides the possibility of including or excluding the abstract's -title with the options \Option{abstracton} and \Option{abstractoff}. +\BeginIndex{Option}{abstract~=\PName{switch}}% +In\OnlyAt{\Class{scrreprt}\and\Class{scrartcl}} the standard classes the +\Environment{abstract} environment sets the text ``\abstractname'' centered +before the summary text\Index[indexmain]{summary}. This was normal practice in +the past. In the meantime, newspaper reading has trained readers to recognize +a displayed text at the beginning of an article or report as the +abstract. This is even more true when the text comes before the table of +contents. It is also surprising when precisely this title appears small and +centered. {\KOMAScript} provides the possibility of including or excluding the +abstract's title with the options \OptionValue{abstract}{true} and +\OptionValue{abstract}{false} (see +\autoref{tab:truefalseswitch},\autopageref{tab:truefalseswitch}). \begin{Explain} Books typically use another type of summary. In that case there is @@ -997,16 +974,14 @@ title with the options \Option{abstracton} and \Option{abstractoff}. thesis. \end{Explain} % -\EndIndex{Option}{abstracton}% -\EndIndex{Option}{abstractoff}% +\EndIndex{Option}{abstract~=\PName{switch}}% \begin{Declaration} - \Option{pointednumbers}\\ - \Option{pointlessnumbers} + \OptionValue{numbers}{enddot}\\ + \OptionValue{numbers}{noenddot} \end{Declaration}% -\BeginIndex{Option}{pointednumbers}% -\BeginIndex{Option}{pointlessnumbers}% +\BeginIndex{Option}{numbers~=\PName{value}}% \begin{Explain}% In German, according to {\small DUDEN}, the numbering of sectional units should have no dot at the end if only arabic numbers are used @@ -1023,8 +998,8 @@ title with the options \Option{abstracton} and \Option{abstractoff}. In some cases the mechanism for placing or leaving off the ending dot may fail, or other languagues may have different rules. Therefore it is possible to activate the use of the ending dot manually with the -option \Option{pointednumbers} or to deactivate it with -\Option{pointlessnumbers}. +option \OptionValue{numbers}{enddot} or to deactivate it with +\OptionValue{numbers}{noenddot}. Please note that the mechanism only takes effect on the next {\LaTeX} run. Therefore, before trying to use these options to forcibly @@ -1037,8 +1012,7 @@ correct. It so happened that the meaning of the chosen names was not clear to me a few years ago when the options were implemented. Some people asked me not to fix this ``funny little mistake'' so I didn't. % -\EndIndex{Option}{pointednumbers}% -\EndIndex{Option}{pointlessnumbers}% +\EndIndex{Option}{numbers~=\PName{value}}% \begin{Declaration} \Option{leqno} @@ -1058,24 +1032,26 @@ left. \BeginIndex{Option}{fleqn}% Displayed equations are normally centered. The standard option \Option{fleqn} causes the standard option file \File{fleqn.clo} to be -loaded. Displayed equations are then left-justified. +loaded. Displayed equations are then left-justified. This option may not be +used at the argument of \Macro{KOMAoptions} but at the optional argument of +\Macro{documentclass}. % \EndIndex{Option}{fleqn}% \begin{Declaration} - \Option{tablecaptionbelow}\\ - \Option{tablecaptionabove} + \OptionValue{captions}{tablesignature}\\ + \OptionValue{captions}{tableheading} \end{Declaration}% -\BeginIndex{Option}{tablecaptionbelow}% -\BeginIndex{Option}{tablecaptionabove}% +\BeginIndex{Option}{captions~=\PValue{tablesignature}}% +\BeginIndex{Option}{captions~=\PValue{tableheading}}% As described in \autoref{sec:maincls.floats}, -\autopageref{desc:maincls.macro.caption}, the +\autopageref{desc:maincls.cmd.caption}, the \Macro{caption}\IndexCmd{caption} command acts with figures like the \Macro{captionbelow}\IndexCmd{captionbelow} command. The behaviour with tables, however, depends on these two options. In the default -setting, \Option{tablecaptionbelow}, the \Macro{caption} macro acts +setting, \OptionValue{captions}{tablesignature}, the \Macro{caption} macro acts also with tables like the \Macro{captionbelow} command. With the -\Option{tablecaptionabove} option, \Macro{caption} acts like the +\OptionValue{captions}{tableheading} option, \Macro{caption} acts like the \Macro{captionabove}\IndexCmd{captionabove} command. Note that using any of these options does not change the position of @@ -1086,8 +1062,8 @@ placed above or below a table is set through the position of the \Macro{caption} command inside the \Environment{table} environment. Note\OnlyAt{\Package{float}}\IndexPackage{float} that when using the -\Package{float} package, the options \Option{tablecaptionbelow} and -\Option{tablecaptionabove} cease to act correctly when +\Package{float} package, the options \OptionValue{captions}{tablesignature} and +\OptionValue{captions}{tableheading} cease to act correctly when \Macro{restylefloat} is applied to tables. More details of the \Package{float} package and \Macro{restylefloat} can be found in \cite{package:float}. Additional support in {\KOMAScript} for the @@ -1095,8 +1071,8 @@ Note\OnlyAt{\Package{float}}\IndexPackage{float} that when using the \PValue{komaabove} in \autoref{sec:maincls.floats}, \autopageref{desc:maincls.floatstyle.komaabove}. % -\EndIndex{Option}{tablecaptionbelow}% -\EndIndex{Option}{tablecaptionabove}% +\EndIndex{Option}{captions~=\PValue{tablesignature}}% +\EndIndex{Option}{captions~=\PValue{tableheafins}}% \begin{Explain}% @@ -1111,7 +1087,7 @@ the command \Macro{LT@makecaption}. In order to ensure that these table captions match the ones used with normal tables, the {\KOMAScript} classes normally redefine that command. See \autoref{sec:maincls.floats}, -\autopageref{desc:maincls.macro.caption.longtable} for more +\autopageref{desc:maincls.cmd.caption.longtable} for more details. The redefinition is performed with help of the command \Macro{AfterPackage} immediately after the loading of package \Package{longtable}. If the package @@ -1127,7 +1103,9 @@ should not be redefined by the {\KOMAScript} classes, activate the \begin{Declaration} - \Option{openbib} + \Option{openbib}\\ + \OptionValue{bibliography}{openstyle}\\ + \OptionValue{bibliography}{oldstyle} \end{Declaration}% \BeginIndex{Option}{openbib}% The standard option \Option{openbib} switches to an alternative @@ -1141,27 +1119,25 @@ only a stretchable horizontal space. \begin{Declaration} - \Option{draft}\\ - \Option{final} + \KOption{draft}\PName{switch} \end{Declaration}% -\BeginIndex{Option}{draft}% -\BeginIndex{Option}{final}% -The two standard options \Option{draft} and \Option{final} are -normally used to distinguish between the draft and final versions of a -document. In particular, the option \Option{draft} activates small -black boxes that are set at the end of overly long lines. The boxes -help the untrained eye to find paragraphs that have to be treated -manually. With the \Option{final} option no such boxes are shown. - -The two options are also processed by other packages and affect their -operation. For instance, the \Package{graphics}\IndexPackage{graphics} -and the \Package{graphicx}\IndexPackage{graphicx} packages don't -actually output the graphics when the option \Option{draft} is -specified. Instead they output a framed box of the appropriate size -containing only the graphic's filename (see \cite{package:graphics}). -% -\EndIndex{Option}{draft}% -\EndIndex{Option}{final}% +\BeginIndex{Option}{draft~=\PName{switch}}% +The option \Option{draft} (see \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}) is normally used to distinguish between the +draft and final versions of a document. In particular, the option +\OptionValue{draft}{true} activates small black boxes that are set at the end +of overly long lines. The boxes help the untrained eye to find paragraphs that +have to be treated manually. With the \OptionValue{draft}{false} option no +such boxes are shown. + +Option \Option{draft} without value is also processed by other packages and +affect their operation. For instance, the +\Package{graphics}\IndexPackage{graphics} and the +\Package{graphicx}\IndexPackage{graphicx} packages don't actually output the +graphics when the option \Option{draft} is specified. Instead they output a +framed box of the appropriate size containing only the graphic's filename (see +\cite{package:graphics}).% +\EndIndex{Option}{draft~=\PName{switch}}% \section{General Document Characteristics} @@ -1318,7 +1294,7 @@ specification to the one currently used with the specified the main title page}% \feentry{title}{Main title of the document, i.\,e., the argument of \Macro{title} (for details about the title size see the additional - note in the text from \autopageref{desc:maincls.macro.title})}% + note in the text from \autopageref{desc:maincls.cmd.title})}% \end{desctable} % \EndIndex{Cmd}{setkomafont}% @@ -1390,8 +1366,8 @@ Usually one distinguishes four different page styles. \end{description} Besides, the form of the page styles \PValue{headings} and \PValue{myheadings} is affected by each of the four class options -\Option{headsepline}, \Option{headnosepline}, \Option{footsepline} and -\Option {footnosepline} (see \autoref{sec:maincls.layoutOptions}, +\Option{headsepline}, \OptionValue{headsepline}{false}, \Option{footsepline} and +\OptionValue{footsepline}{false} (see \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.headsepline}). The page style starting with the current page is changed by the command \Macro{pagestyle}. On the other hand \Macro{thispagestyle} @@ -1651,24 +1627,23 @@ care that all not yet output floats are output, and then starts a new page. There exists the instruction \Macro{cleardoublepage} which works like \Macro{clearpage} but which, in the double-sided layouts (see layout option \Option{twoside} in -\autoref{sec:maincls.layoutOptions}, -\autopageref{desc:maincls.option.twoside}) starts a new right-hand +\autoref{sec:typearea.options}, +\autopageref{desc:typearea.option.twoside}) starts a new right-hand page. An empty left page in the current page style is output if necessary. -With \Macro{cleardoublestandardpage} {\KOMAScript} works as described -above. The \Macro{cleardoubleplainpage} command changes the page -style of the empty left page to \PValue{plain} in order to suppress -the running heading. Analogously, the page style \PValue{empty} is -applied to the empty page with \Macro{cleardoubleemptypage}, -suppressing the page number as well as the runnning heading. The page is -thus entirely empty. However, the approach used by -\Macro{cleardoublepage} is dependent on the layout options -\Option{cleardoublestandard}, \Option{cleardoubleplain} and -\Option{cleardoubleempty} described in +With \Macro{cleardoublestandardpage} {\KOMAScript} works as described above. +The \Macro{cleardoubleplainpage} command changes the page style of the empty +left page to \PValue{plain} in order to suppress the running heading. +Analogously, the page style \PValue{empty} is applied to the empty page with +\Macro{cleardoubleemptypage}, suppressing the page number as well as the +runnning heading. The page is thus entirely empty. However, the approach used +by \Macro{cleardoublepage} is dependent on the layout options +\OptionValue{cleardoublepage}{current}, \OptionValue{cleardoublepage}{plain} +and \OptionValue{cleardoublepage}{empty} described in \autoref{sec:maincls.layoutOptions}, -\autopageref{desc:maincls.option.cleardoublestandard} and acts according to the -active option. +\autopageref{desc:maincls.option.cleardoublepage} and acts according to +the active option. % \EndIndex{Cmd}{clearpage}% \EndIndex{Cmd}{cleardoublepage}% @@ -1809,8 +1784,8 @@ the number 1 in the style \PName{numbering style}. \Class{article} or \Class{scrartcl} have by default \emph{in-page} titles, while classes like \Class{report}, \Class{book}, \Class{scrreprt} and \Class{scrbook} have title pages as default. - The defaults can be changed with the class options - \Option{titlepage} and \Option{notitlepage}. + The defaults can be changed with the class option + \Option{titlepage}. \end{Explain} @@ -1870,7 +1845,7 @@ The optional argument is ignored for \emph{in-page} titles. However, the page style of such a title page can be changed by redefining the \Macro{titlepagestyle} macro. For that see \autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.titlepagestyle}. +\autopageref{desc:maincls.cmd.titlepagestyle}. The following commands do not lead necessarily to the production of the titles. The typesetting of the title pages is always done by @@ -2174,10 +2149,10 @@ offer a special environment for this summary, the \Environment{abstract} environment. This is output directly, at it is not a component of the titles set by \Macro{maketitle}. Please note that \Environment{abstract} is an environment, not a command. Whether -the summary has a heading or not is determined by the options -\Option{abstracton} and \Option{abstractoff} (see +the summary has a heading or not is determined by the option +\Option{abstract} (see \autoref{sec:maincls.formattingOptions}, -\autopageref{desc:maincls.option.abstracton}) +\autopageref{desc:maincls.option.abstract}) With books (\Class{scrbook}) the summary is frequently a component of the introduction or a separate chapter at the end of the document. @@ -2203,23 +2178,23 @@ by lists of floats, e.\,g., lists of tables and figures (see \end{Declaration}% \BeginIndex{Cmd}{tableofcontents}% \BeginIndex{Cmd}{contentsname}% -The production of the table of contents is done by the -\Macro{tableofcontents} command. To get a correct table of contents, -at least two {\LaTeX} runs are necessary after every change. The -option \Option{liststotoc} causes the lists of figures and tables to -be included in the table of contents. \Option{idxtotoc} is the -corresponding option for the index. This is rather uncommon in -classical typography. One does find the bibliography included in the -table of contents slightly more frequently. This can be obtained with -the options \Option{bibtotoc} and \Option{bibtotocnumbered}. These -options are explained in \autoref{sec:maincls.tocOptions}, -\autopageref{desc:maincls.option.liststotoc}. +The production of the table of contents is done by the \Macro{tableofcontents} +command. To get a correct table of contents, at least two {\LaTeX} runs are +necessary after every change. The option \OptionValue{listof}{totoc} causes +the lists of figures and tables to be included in the table of +contents. \OptionValue{index}{totoc} is the corresponding option for the +index. This is rather uncommon in classical typography. One does find the +bibliography included in the table of contents slightly more frequently. This +can be obtained with the options \OptionValue{bibliography}{totoc} and +\OptionValue{bibliography}{totocnumbered}. These options are explained in +\autoref{sec:maincls.tocOptions}, +\autopageref{desc:maincls.option.listof.totoc}. \begin{Explain} The table of contents is set as an unnumbered chapter and is therefore subject to the side effects of the standard \Macro{chapter*} command, which are described in \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.macro.chapter*}. However, the running + \autopageref{desc:maincls.cmd.chapter*}. However, the running headings\Index{running heading} for left and right pages are correctly filled with the heading of the table of contents. @@ -2237,10 +2212,10 @@ are indented so that the unit number is flush left to the edge of the text of the next upper sectional unit. However, the space for the numbers is thereby limited and is only sufficient for a little more than 1.5 places per unit level. Should this become a problem, the -option \Option{tocleft} can be used to set the behaviour such that all +option \OptionValue{toc}{flat} can be used to set the behaviour such that all entries in the table of contents are set flush left under one another. As explained in \autoref{sec:maincls.tocOptions}, -\autopageref{desc:maincls.option.tocleft}, several {\LaTeX} runs are +\autopageref{desc:maincls.option.toc}, several {\LaTeX} runs are needed. \begin{Explain} @@ -2342,15 +2317,15 @@ contents, therefore the explanation is given here. \BeginIndex{Cmd}{listoffigures}% \BeginIndex{Cmd}{listtablename}% \BeginIndex{Cmd}{listfigurename}% -These commands generate a list of tables or figures. Changes in the -document that modify these lists will require two {\LaTeX} runs in -order to take effect. The layout of the lists can be influenced by -the options \Option{listsindent} and \Option{listsleft} (see +These commands generate a list of tables or figures. Changes in the document +that modify these lists will require two {\LaTeX} runs in order to take +effect. The layout of the lists can be influenced by the options +\OptionValue{listof}{graduated} and \OptionValue{listof}{flat} (see \autoref{sec:maincls.listsOptions}, -\autopageref{desc:maincls.option.listsleft}). Moreover, the options -\Option{liststotoc} and \Option{liststotocnumbered} have indirect +\autopageref{desc:maincls.option.listof}). Moreover, the options +\OptionValue{listof}{totoc} and \OptionValue{listof}{numbered} have indirect influence (see \autoref{sec:maincls.tocOptions}, -\autopageref{desc:maincls.option.liststotoc}). +\autopageref{desc:maincls.option.listof.totoc}). \begin{Explain} The text of the titles of this tables are stored in the macros @@ -2414,8 +2389,8 @@ version~2.97e (see option \Option{version}, this creates a confusion with chapter numbers! The use of \Macro{addsec} and \Macro{section*} (see \autoref{sec:maincls.structure}, -\autopageref{desc:maincls.macro.section*} and -\autopageref{desc:maincls.macro.addsec}) are thus, in the author's +\autopageref{desc:maincls.cmd.section*} and +\autopageref{desc:maincls.cmd.addsec}) are thus, in the author's opinion, far more preferable. As of version~2.97e\ChangedAt{v2.97e}{\Class{scrbook}} the numbering @@ -2440,7 +2415,7 @@ appendices. The chapters in the back matter are similar to the chapters in the front matter, but page numbering is not reset. If you do require separate page numbering you may use the command \Macro{pagenumbering} from \autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.pagenumbering}. +\autopageref{desc:maincls.cmd.pagenumbering}. % \EndIndex{Cmd}{frontmatter}% \EndIndex{Cmd}{mainmatter}% @@ -2481,7 +2456,7 @@ parts. This means that the chapter level (in \Class{scrbook} or numbered consecutively over all parts. Furthermore, for classes \Class{scrbook} and \Class{scrreprt} the title of the part level together with the corresponding preamble (see \Macro{setpartpreamble}, -\autopageref{desc:maincls.macro.setpartpreamble}) is set on a separate +\autopageref{desc:maincls.cmd.setpartpreamble}) is set on a separate page. \Macro{chapter} \OnlyAt{\Class{scrartcl}} only exists in book or @@ -2504,7 +2479,7 @@ Please note that \Macro{part} and \Macro{chapter} in classes one page. The applied page style in {\KOMAScript} is defined in the macros \Macro{partpagestyle} and \Macro{chapterpagestyle} (see \autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.titlepagestyle}). +\autopageref{desc:maincls.cmd.titlepagestyle}). \BeginIndex[indexother]{}{font}% \BeginIndex[indexother]{}{font>size}% @@ -2521,9 +2496,9 @@ followed by a specific element for every section level (see element \FontElement{disposition}\IndexFontElement{disposition} is predefined as \Macro{normalfont}\Macro{normalcolor}\Macro{sffamily}% \Macro{bfseries}. The default font size for the specific elements -depends on the options \Option{bigheadings}, \Option{normalheadings} -and \Option{smallheadings} (see \autoref{sec:maincls.fontOptions}, -\autopageref{desc:maincls.option.smallheadings}). The defaults are +depends on the options \OptionValue{headings}{big}, \OptionValue{headings}{normal} +and \OptionValue{headings}{small} (see \autoref{sec:maincls.fontOptions}, +\autopageref{desc:maincls.option.headings}). The defaults are listed in \autoref{tab:maincls.structureElementsFont} % \begin{table} @@ -2535,7 +2510,7 @@ listed in \autoref{tab:maincls.structureElementsFont} \toprule class option & element & default\\ \midrule - \Option{bigheadings} + \OptionValue{headings}{big} & \FontElement{part}\IndexFontElement{part} & \Macro{Huge} \\ & \FontElement{partnumber}\IndexFontElement{partnumber} @@ -2553,7 +2528,7 @@ listed in \autoref{tab:maincls.structureElementsFont} & \Macro{normalsize} \\ & \FontElement{subparagraph}\IndexFontElement{subparagraph} & \Macro{normalsize} \\[1ex] - \Option{normalheadings} + \OptionValue{headings}{normal} & \FontElement{part} & \Macro{huge} \\ & \FontElement{partnumber} & \Macro{huge} \\ & \FontElement{chapter} & \Macro{LARGE} \\ @@ -2562,7 +2537,7 @@ listed in \autoref{tab:maincls.structureElementsFont} & \FontElement{subsubsection} & \Macro{normalsize} \\ & \FontElement{paragraph} & \Macro{normalsize} \\ & \FontElement{subparagraph} & \Macro{normalsize} \\[1ex] - \Option{smallheadings} + \OptionValue{headings}{small} & \FontElement{part} & \Macro{LARGE} \\ & \FontElement{partnumber} & \Macro{LARGE} \\ & \FontElement{chapter} & \Macro{Large} \\ @@ -2577,7 +2552,7 @@ listed in \autoref{tab:maincls.structureElementsFont} \end{table} \begin{Example} - Suppose you are using the class option \Option{bigheadings} and + Suppose you are using the class option \OptionValue{headings}{big} and notice that the very big headings of document parts are too bold. You could change this as follows: \begin{lstlisting} @@ -2689,7 +2664,7 @@ Please note that \Macro{part} and \Macro{chapter} change the page style for one page. The applied style is defined in the macros \Macro{partpagestyle} and \Macro{chapterpagestyle} in {\KOMAScript} (see \autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.titlepagestyle}). +\autopageref{desc:maincls.cmd.titlepagestyle}). As for the possibilities of font switching\ChangedAt{v2.8p}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}, % @@ -2750,7 +2725,7 @@ Please note that \Macro{addpart} and \Macro{addchap} and their starred versions change the page style for one page. The particular page style is defined in the macros \Macro{partpagestyle} and \Macro{chapterpagestyle} (see \autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.titlepagestyle}). +\autopageref{desc:maincls.cmd.titlepagestyle}). As for the possibilities of font switching\ChangedAt{v2.8p}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}, % @@ -2912,7 +2887,7 @@ class \Class{scrartcl} but only in the classes \Class{scrbook} and \Class{scrreprt}. As described in \autoref{sec:maincls.formattingOptions}, -\autopageref{desc:maincls.option.pointlessnumbers}, dots in section +\autopageref{desc:maincls.option.numbers}, dots in section numbers should be handled for the German-speaking region according to the rules given in \cite{DUDEN}. The command \Macro{autodot} in {\KOMAScript} ensures that these rules are being followed. In all @@ -2951,10 +2926,10 @@ Strictly speaking, you could do without \Macro{autodot} at this point and insert a fixed dot instead. As \Macro{part} is numbered with roman numerals, according to \cite{DUDEN} a dot has to be applied. However, you thereby give up the possibility to use one of the options -\Option{pointednumbers} and \Option{pointlessnumbers} and optionally +\OptionValue{numbers}{enddot} and \OptionValue{numbers}{noenddot} and optionally depart from the rules. More details concerning class options can be found in \autoref{sec:maincls.formattingOptions}, -\autopageref{desc:maincls.option.pointlessnumbers}. +\autopageref{desc:maincls.option.numbers}. An additional possibility could be to place the section numbers in the left margin in such a way that the heading text is left aligned with @@ -2999,11 +2974,11 @@ redefine other commands. Using the layout option current language, followed by \PName{additional text}. In the appendix\Index{appendix}, the word ``Appendix'' in the current language is output instead, followed by \PName{additional text}. If the -option \Option{nochapterprefix} is set, then nothing is output. +option \OptionValue{chapterprefix}{false} is set, then nothing is output. The command \Macro{chapapp} always outputs the word ``Chapter'' or ``Appendix''. In this case the options \Option{chapterprefix} and -\Option{nochapterprefix} have no effect. +\OptionValue{chapterprefix}{false} have no effect. Since chapters only exist in the classes \Class{scrbook} and \Class{scrreprt} these commands only exist in these classes. @@ -3138,10 +3113,10 @@ or \Macro{addchap} command. \end{lstlisting} Depending on the settings for the heading font size\Index{heading} (see \autoref{sec:maincls.fontOptions}, -\autopageref{desc:maincls.option.smallheadings}) and the options for +\autopageref{desc:maincls.option.headings}) and the options for the \Environment{abstract} environment\IndexEnv{abstract} (see \autoref{sec:maincls.formattingOptions}, -\autopageref{desc:maincls.option.abstracton}), the result would look +\autopageref{desc:maincls.option.abstract}), the result would look similar to: \begin{ShowOutput}\centering {\LARGE\usekomafont{disposition} Part III.\par\vspace{20pt}} @@ -3162,7 +3137,7 @@ Please note that it is \emph{you} who is responsible for the spaces between the heading, preamble and the following text. Please note also that there is no \Environment{abstract} environment in the class \Class{scrbook} (see \autoref{sec:maincls.titles}, -\autopageref{desc:maincls.environment.abstract}). +\autopageref{desc:maincls.env.abstract}). The\ChangedAt{v2.8p}{\Class{scrbook}\and\Class{scrreprt}} first optional argument \PName{position} determines the position at which @@ -3551,12 +3526,6 @@ redefined using \Macro{renewcommand}. Every item is introduced with \end{itemize} \item helicopters \end{itemize} -%% wahrsheinlich Platzfiller in Deutscher Ausgabe? -% \item motorcycles -% \begin{itemize} -% \item historically accurate -% \item futuristic, not real -% \end{itemize} \item automobiles \begin{itemize} \item racing cars @@ -4074,7 +4043,7 @@ of the book can not be determined for certain in the first {\LaTeX} run. For details please refer to the explanation of the commands \Macro{ifthispageodd} and \Macro{ifthispagewasodd} in \autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.ifthispageodd}. +\autopageref{desc:maincls.cmd.ifthispageodd}. % \EndIndex{Env}{addmargin}% @@ -4203,10 +4172,10 @@ below and \Macro{captionabove} for captions above tables or figures. Using \Macro{caption} for figures always produces captions below the figure, whereas with tables the behaviour of \Macro{caption} can be modified using the options -\Option{tablecaptionabove}\IndexOption{tablecaptionabove} and -\Option{tablecaptionbelow}\IndexOption{tablecaptionbelow} (see +\OptionValue{captions}{tableheading} and +\OptionValue{captions}{tablesignature} (see \autoref{sec:maincls.formattingOptions}, -\autopageref{desc:maincls.option.tablecaptionabove}). For +\autopageref{desc:maincls.option.captions.tableheading}). For compatibility reasons the default behaviour of \Macro{caption} used with tables is similar to \Macro{captionbelow}. % @@ -4257,9 +4226,9 @@ with tables is similar to \Macro{captionbelow}. \end{tabular} \end{ShowOutput} Since you want all your tables typeset with captions above, you could - of course use the option \Option{tablecaptionabove} instead (see + of course use the option \OptionValue{captions}{tableheading} instead (see \autoref{sec:maincls.formattingOptions}, - \autopageref{desc:maincls.option.tablecaptionabove}). Then you can use + \autopageref{desc:maincls.option.captions.tableheading}). Then you can use \Macro{caption} as you would in the standard classes. You will get the same result as with \Macro{captionabove}. \end{Example} @@ -4275,7 +4244,7 @@ with tables is similar to \Macro{captionbelow}. \Macro{captionbelow} are so implemented that changes have an effect on both of these commands as well. - \phantomsection\label{desc:maincls.macro.caption.longtable}% + \phantomsection\label{desc:maincls.cmd.caption.longtable}% If the \Package{longtable} package\IndexPackage{longtable} is used, {\KOMAScript} ensures that captions above tables which are placed within a \Environment{longtable} environment have the same @@ -4577,10 +4546,10 @@ the absolute value of \PName{indent}. Whether one-line captions are set as captions with more than one line or are treated separately is specified with the class options -\Option{onelinecaption} and \Option{noonelinecaption}. For details +\OptionValue{captions}{oneline} and \OptionValue{captions}{nooneline}. For details please refer to the explanations of these options in \autoref{sec:maincls.layoutOptions}, -\autopageref{desc:maincls.option.noonelinecaption}. +\autopageref{desc:maincls.option.captions.nooneline}. \begin{Example} For the examples please refer to @@ -4701,9 +4670,9 @@ double-sided layout. In case of with the same problem with justification inside or outside as mentioned with the macro \Macro{setcapwidth}. Furthermore, the usage of \Macro{setcapmargin} or \Macro{setcapmargin*} switches on the -option \Option{noonelinecaption} (see +option \OptionValue{captions}{nooneline} (see \autoref{sec:maincls.layoutOptions}, -\autopageref{desc:maincls.option.noonelinecaption}) for the captions +\autopageref{desc:maincls.option.captions.nooneline}) for the captions which are typeset with this margin setting. \begin{Explain} @@ -4868,7 +4837,7 @@ support to produce an example figure with a greater vertical height. \end{Declaration} \BeginIndex{Cmd}{textsubscript}% In \autoref{sec:maincls.footnotes}, -\autopageref{desc:maincls.macro.textsuperscript}, the command +\autopageref{desc:maincls.cmd.textsuperscript}, the command \Macro{textsuperscript}\IndexCmd{textsuperscript} was already introduced as an integral part of the {\LaTeX} kernel. Unfortunately, {\LaTeX} itself does not offer a command to produce text in @@ -4946,9 +4915,9 @@ introduced with \Macro{appendix}. This command switches, among other things, the chapter numbering to upper case letters, also ensuring that the rules according to \cite{DUDEN} are followed (for German-speaking regions). These rules are explained in more detail in -the description of the class options \Option{pointednumbers} and -\Option{pointlessnumbers} in \autoref{sec:maincls.formattingOptions}, -\autopageref{desc:maincls.option.pointlessnumbers}. +the description of the class options \OptionValue{numbers}{enddot} and +\OptionValue{numbers}{noenddot} in \autoref{sec:maincls.formattingOptions}, +\autopageref{desc:maincls.option.numbers}. Please note that \Macro{appendix} is a command, \emph{not} an environment! This command does not expect any argument. Sectioning in @@ -4968,7 +4937,7 @@ There is a peculiarity within the \Macro{appendix} command in the this command is executed also by the \Macro{appendix} command. Internally the {\KOMAScript} classes \Class{scrbook} and \Class{scrreprt} take advantage of this behaviour to implement the -options \Option{appendixprefix} and \Option{noappendixprefix} (see +options \Option{appendixprefix} and \OptionValue{appendixprefix}{false} (see \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.appendixprefix}). You should take note of this in case you decide to define or redefine the @@ -4981,13 +4950,13 @@ intended to prevent you from disabling options without noticing it. You do not want the chapters in the main part of the classes \Class{scrbook} or \Class{scrreprt} to be introduced by a prefix line (see layout options \Option{chapterprefix} and - \Option{nochapterprefix} in \autoref{sec:maincls.layoutOptions}, + \OptionValue{chapterprefix}{false} in \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.chapterprefix}). For consistency you also do not want such a line in the appendix either. Instead, you would like to see the word ``Chapter'' in the language of your choice written in front of the chapter letter and, simultaneously, in the page headings. Instead of using the either layout option - \Option{appendixprefix} or \Option{noappendixprefix}, you would + \Option{appendixprefix} or \OptionValue{appendixprefix}{false}, you would define in the document preamble: % \begin{lstlisting} @@ -5022,8 +4991,8 @@ intended to prevent you from disabling options without noticing it. Redefined commands are explained in more detail in \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.macro.chapterformat} and - \autopageref{desc:maincls.macro.chaptermarkformat}. + \autopageref{desc:maincls.cmd.chapterformat} and + \autopageref{desc:maincls.cmd.chaptermarkformat}. \end{Example} % \EndIndex{Cmd}{appendixmore}% @@ -5033,19 +5002,18 @@ intended to prevent you from disabling options without noticing it. \Macro{setbibpreamble}\Parameter{preamble} \end{Declaration}% \BeginIndex{Cmd}{setbibpreamble}% -The command \Macro{setbibpreamble} can be used to set a preamble for -the bibliography\Index{bibliography}. This can be achieved by placing -the preamble before the command for issuing the bibliography. -However, it does not have to be directly in front of it. For example, -it could be placed at the beginning of the document. Similar to the -class options \Option{bibtotoc} and \Option{bibtotocnumbered}, this -command can only be successful if you have not loaded a package which -prevents this by redefining the \Environment{thebibliography} -environment. Even though the \Package{natbib} package -\IndexPackage{natbib} makes unauthorized use of internal macros of -{\KOMAScript} it could be achieved that \Macro{setbibpreamble} works -with the current version of \Package{natbib} (see -\cite{package:natbib}). +The command \Macro{setbibpreamble} can be used to set a preamble for the +bibliography\Index{bibliography}. This can be achieved by placing the preamble +before the command for issuing the bibliography. However, it does not have to +be directly in front of it. For example, it could be placed at the beginning +of the document. Similar to the class options +\OptionValue{bibliography}{totoc} and +\OptionValue{bibliography}{totocnumbered}, this command can only be successful +if you have not loaded a package which prevents this by redefining the +\Environment{thebibliography} environment. Even though the \Package{natbib} +package \IndexPackage{natbib} makes unauthorized use of internal macros of +{\KOMAScript} it could be achieved that \Macro{setbibpreamble} works with the +current version of \Package{natbib} (see \cite{package:natbib}). \begin{Example} You want to point out that the sorting of the references in the @@ -5088,7 +5056,7 @@ numbers in different ways. Please note that the page style of the first page of the index is changed. The applied page style is defined in the macro \Macro{indexpagestyle} (see \autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.titlepagestyle}). +\autopageref{desc:maincls.cmd.titlepagestyle}). The production, sorting and output of the index is done by the standard {\LaTeX} packages and additional programs. Similar to the @@ -5143,8 +5111,8 @@ environments. \BeginIndex{Cmd}{descfont}% This macro sets the font for the optional item arguments of a \Environment{description} environment. Instead, use the commands for - the element \FontElement{descriptionlabel}, described in section - ~\ref{sec:maincls.font}.% + the element \FontElement{descriptionlabel}, described in + \autoref{sec:maincls.font}.% \EndIndex{Cmd}{descfont}% \end{Explain} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrdatetime.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrdatetime.tex index 1f9bdedb1e7..4648eb7e766 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrdatetime.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrdatetime.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrdatetime.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrdatetime.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlfile.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlfile.tex index d55e5f98219..339936d299f 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlfile.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlfile.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrlfile.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlfile.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlttr2.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlttr2.tex index 07ae5818839..f70e995ec42 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlttr2.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlttr2.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrlttr2.tex -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlttr2.tex -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ============================================================================ -\ProvidesFile{scrlttr2.tex}[2007/12/17 KOMA-Script guide (chapter: scrlttr2)] +\ProvidesFile{scrlttr2.tex}[2008/07/10 KOMA-Script guide (chapter: scrlttr2)] \translator{Harald Bongartz\and Georg Grandke\and Raimund Kohl\and Jens-Uwe Morawski\and Stephan Hennig\and Gernot Hassenpflug\and Markus Kohm} @@ -116,7 +116,7 @@ you want to use \Class{scrlttr2}, you will have to install the perhaps also fewer optional arguments. You will see that when discussing the \Environment{letter} environment in \autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.environment.letter}. The class will + \autopageref{desc:scrlttr2.env.letter}. The class will automatically load the \Package{keyval} package. If you need to supply options to the \Package{keyval} package, you should use the \Macro{PassOptionsToPackage} command before \Macro{documentclass}. @@ -224,55 +224,6 @@ automatically, and the class then controls the package. The necessary options will be explained in this section. \begin{Declaration} - \Option{paper}=\PName{format} -\end{Declaration} -\BeginIndex{Option}{paper}% -\BeginIndex{}{paper format}% -This option defines the paper format. Theoretically, all paper formats -known by the \Package{typearea} are supported. However, you must leave -out the suffix \PValue{paper} when entering a value. So, for letter -format, you would use the value \PValue{letter}. The formats of the -ISO A, B, C, and D series must be entered in lowercase letters, e.\,g., -\PValue{a4} for ISO A4. See also \autoref{sec:typearea.paperTypes}. - -\begin{Explain} - Although every paper size supported by \Package{typearea} can be - used, several formats may result in unexpected results on the first - page of a letter. That is not a conceptual problem with the class, - but a reflection that there currently exist only parameter sets for - ISO A4. Unfortunately, there are no general rules to calculate the - placement of the address field and so on for arbitrary paper - sizes. However, it is possible to define additional parameter sets - for different paper sizes. See \autoref{sec:scrlttr2.lcoFile} for more - information. - -\end{Explain} -% -\EndIndex{Option}{paper}% -\EndIndex{}{paper format}% - -\begin{Declaration} - \Option{BCOR}=\PName{length}\\ - \Option{DIV}=\PName{value}\\ - \Option{headlines}=\PName{count} -\end{Declaration} -\BeginIndex{Option}{BCOR}% -\BeginIndex{Option}{DIV}% -\BeginIndex{Option}{header lines}% -The options for the divisor, the binding correction\Index{binding - correction}, and the number of headlines will be translated directly -into the corresponding options of the \Package{typearea} package and -passed to it. If the options are set using \Macro{KOMAoptions} and -not as class options, the \Macro{typearea} command from the -\Package{typearea} package will be used instead. See -\autoref{sec:typearea.options}, -\autopageref{desc:typearea.macro.typearea}. -% -\EndIndex{Option}{BCOR}% -\EndIndex{Option}{DIV}% -\EndIndex{Option}{header lines}% - -\begin{Declaration} \Option{enlargefirstpage} \end{Declaration} \BeginIndex{Option}{enlargefirstpage}% @@ -290,25 +241,12 @@ description of the pseudo-length \PLength{firstfootvpos} in \autoref{sec:scrlttr2.firstFoot}, \autopageref{desc:scrlttr2.plength.firstfootvpos}. This option can take the standard values for simple switches, as listed in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Default is +\autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Default is \PValue{false}. % \EndIndex{Option}{enlargefirstpage}% - -\begin{table} - \centering - \caption{Standard values for simple switches in \Class{scrlttr2}} - \begin{tabular}{ll} - Value & Description \\\hline\\[-1.75ex] - \PValue{true} & activates the option \\ - \PValue{on} & activates the option \\ - \PValue{false}& deactivates the option \\ - \PValue{off} & deactivates the option \\ - \end{tabular} - \label{tab:scrlttr2.simpleSwitchValues} -\end{table} - +% \EndIndex{}{page>layout}% \subsection{Other Layout Options} @@ -321,46 +259,9 @@ general. Strictly speaking, all page layout options vice versa for some of them. \begin{Declaration} - \Option{mpinclude}\\ - \Option{mpexclude} -\end{Declaration} -\BeginIndex{Option}{mpinclude}% -\BeginIndex{Option}{mpexclude}% -These two options of the \Package{typearea} package should not be used -with the \Class{scrlttr2} class, because the first page in particular -does not take this option into account. To anticipate any complaints, a -warning will be issued when this option is used. If you feel adventurous -you could try how these options, especially \Option{mpinclude}, interact -with other class options. -% -\EndIndex{Option}{mpinclude}% -\EndIndex{Option}{mpexclude}% - -\begin{Declaration} - \Option{twoside} -\end{Declaration}% -\BeginIndex{Option}{oneside}% -From the author's point of view, double-sided letters do not make much -sense. Therefore, the option \Option{twoside} only partially switches -to double-sided layout. You thus get the possibility to have different -margins on left and right pages, but this possibility is not used. So -this option really means \emph{activate the possibilities of a - double-sided document, but stay with the one-sided layout as far and - as long as possible.} This option can take the standard values for -simple switches, as listed in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Default is -\PValue{false}. -% -\EndIndex{Option}{twoside}% - -By the way, double-sided letters are not supported, because they seem -entirely unreasonable. - -\begin{Declaration} \Option{cleardoublepage}=\PName{style} \end{Declaration} -\BeginIndex{Option}{cleardoublepage}% +\BeginIndex{Option}{cleardoublepage~=\PName{style}}% If you want pages inserted by the \Macro{cleardoublepage} command to just contain a page number in the header and footer, or to be empty, this can be accomplished with this option. There are three different @@ -381,21 +282,21 @@ styles supported that are listed at \end{desctabular} \end{table} % -\EndIndex{Option}{cleardoublepage}% +\EndIndex{Option}{cleardoublepage~=\PName{style}}% \begin{Declaration} - \Option{headsepline}\\ - \Option{footsepline} + \KOption{headsepline}\PName{switch}\\ + \KOption{footsepline}\PName{switch} \end{Declaration} -\BeginIndex{Option}{headsepline}% -\BeginIndex{Option}{footsepline}% +\BeginIndex{Option}{headsepline~=\PName{switch}}% +\BeginIndex{Option}{footsepline~=\PName{switch}}% These two options insert a separator line below the header or above the footer, respectively, on consecutive pages. In the terminology of this manual, all pages of a letter except the first one are consecutive pages. This option can take the standard values for simple switches, as listed in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Default is +\autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Default is \PValue{false}. If one of the options is used without a value, like in the declaration above, this evaluates as \PValue{true}, so the separator line will be activated. When used as a \Macro{documentclass} @@ -404,8 +305,8 @@ respectively, will be passed on to the \Package{typearea} package (see \autoref{sec:typearea.options}, \autopageref{desc:typearea.option.headinclude}). % -\EndIndex{Option}{headsepline}% -\EndIndex{Option}{footsepline}% +\EndIndex{Option}{headsepline~=\PName{switch}}% +\EndIndex{Option}{footsepline~=\PName{switch}}% \begin{Declaration} \Option{pagenumber}=\PName{position} @@ -462,7 +363,7 @@ value are shown in \autoref{tab:scrlttr2.pagenumber}. Default is \begin{Declaration} \Option{parskip}=\PName{value} \end{Declaration}% -\BeginIndex{Option}{parskip}% +\BeginIndex{Option}{parskip~=\PName{value}}% \begin{Explain}% Especially in letters you often encounter paragraphs marked not with indentation of the first line, but with a vertical skip between @@ -516,7 +417,7 @@ in \autoref{tab:scrlttr2.parskip}. Default is \PValue{false}. \end{desctabular} \end{table} % -\EndIndex{Option}{parskip}% +\EndIndex{Option}{parskip~=\PName{value}}% \subsection{Font Options} \label{sec:scrlttr2.fontOptions} @@ -527,9 +428,9 @@ options affecting the font type would also count as font options. At present there is only one option for font size in \Class{scrlttr2}. \begin{Declaration} - \Option{fontsize}=\PName{size} + \KOption{fontsize}\PName{size} \end{Declaration} -\BeginIndex{Option}{fontsize}% +\BeginIndex{Option}{fontsize~=\PName{size}}% Whereas in the main classes you choose the font size\Index{font>size} for the document using the \Option{10pt}, \Option{12pt}, etc., options, in the \Class{scrlttr2} class the desired \PName{size} is set @@ -537,7 +438,7 @@ using the \Option{fontsize} option. The functionality is however the same. This option can only be used with \Macro{documentclass}, not with \Macro{KOMAoptions}. Default is \PValue{12pt}. % -\EndIndex{Option}{fontsize}% +\EndIndex{Option}{fontsize~=\PName{size}}% \subsection{Options for Letterhead and Address} \label{sec:scrlttr2.headoptions} @@ -550,21 +451,21 @@ these features could already be found in the now obsolete \Class{scrlettr} class. \begin{Declaration} - \Option{firsthead} + \KOption{firsthead}\PName{switch} \end{Declaration} -\BeginIndex{Option}{firsthead}% +\BeginIndex{Option}{firsthead~=\PName{switch}}% This\ChangedAt{v2.97e}{\Class{scrlttr2}} option determines whether the letterhead will be typeset at all. The option undestands the standard values for simple keys, given -in \autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Default is for the +in \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Default is for the letterhead to be set. -\EndIndex{Option}{firsthead}% +\EndIndex{Option}{firsthead~=\PName{switch}}% \begin{Declaration} - \Option{fromalign} + \KOption{fromalign}\PName{value} \end{Declaration} -\BeginIndex{Option}{fromalign}% +\BeginIndex{Option}{fromalign~=\PName{value}}% This option defines the placement of the return address in the letterhead of the first page. Apart from the various options for positioning the return address in the letterhead, there is also the @@ -612,12 +513,12 @@ explanations of the respective options. Possible values for \end{desctabular} \end{table} % -\EndIndex{Option}{fromalign}% +\EndIndex{Option}{fromalign~=\PName{value}}% \begin{Declaration} - \Option{fromrule} + \KOption{fromrule}\PName{value} \end{Declaration} -\BeginIndex{Option}{fromrule}% +\BeginIndex{Option}{fromrule~=\PName{value}}% This option is part of the letterhead extensions (see option \Option{fromalign} above). It allows you to place a horizontal line within the return address. The possible values are shown in @@ -643,108 +544,108 @@ line, see \autoref{sec:scrlttr2.other}, \end{desctabular} \end{table} % -\EndIndex{Option}{fromrule}% +\EndIndex{Option}{fromrule~=\PName{value}}% \begin{Declaration} - \Option{fromphone} + \KOption{fromphone}\PName{switch} \end{Declaration} -\BeginIndex{Option}{fromphone}% +\BeginIndex{Option}{fromphone~=\PName{switch}}% This option is part of the letterhead extensions (see option \Option{fromalign} above). It defines whether the phone number will be part of the return address. This option can take the standard values for simple switches, as listed in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Default is +\autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Default is \PValue{false}. % -\EndIndex{Option}{fromphone}% +\EndIndex{Option}{fromphone~=\PName{switch}}% \begin{Declaration} - \Option{fromfax} + \KOption{fromfax}\PName{switch} \end{Declaration} -\BeginIndex{Option}{fromfax}% +\BeginIndex{Option}{fromfax~=\PName{switch}}% This option is part of the letterhead extensions (see option \Option{fromalign} above). It defines whether the facsimile number will be part of the return address. This option can take the standard values for simple switches, as listed in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Default is +\autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Default is \PValue{false}. % -\EndIndex{Option}{fromfax}% +\EndIndex{Option}{fromfax~=\PName{switch}}% \begin{Declaration} - \Option{fromemail} + \KOption{fromemail}\PName{switch} \end{Declaration} -\BeginIndex{Option}{fromemail}% +\BeginIndex{Option}{fromemail~=\PName{switch}}% This option is part of the letterhead extensions (see option \Option{fromalign} above). It defines whether the email address will be part of the return address. This option can take the standard values for simple switches, as listed in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Default is \PValue{false}. +\autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Default is \PValue{false}. % -\EndIndex{Option}{fromemail}% +\EndIndex{Option}{fromemail~=\PName{switch}}% \begin{Declaration} - \Option{fromurl} + \KOption{fromurl}\PName{switch} \end{Declaration} -\BeginIndex{Option}{fromurl}% +\BeginIndex{Option}{fromurl~=\PName{switch}}% This option is part of the letterhead extensions (see option \Option{fromalign} above). It defines whether the URL will be part of the return address. This option can take the standard values for simple switches, as listed in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Default is \PValue{false}. +\autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Default is \PValue{false}. % -\EndIndex{Option}{fromurl}% +\EndIndex{Option}{fromurl~=\PName{switch}}% \begin{Declaration} - \Option{fromlogo} + \KOption{fromlogo}\PName{switch} \end{Declaration} -\BeginIndex{Option}{fromlogo}% +\BeginIndex{Option}{fromlogo~=\PName{switch}}% This option is part of the letterhead extensions (see option \Option{fromalign} above). It defines whether the logo will be part of the return address. This option can take the standard values for simple switches, as listed in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Regarding the placement +\autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Regarding the placement of the logo, see also the explanation of the option \Option{fromalign} above. Default is \PValue{false}. % -\EndIndex{Option}{fromlogo}% +\EndIndex{Option}{fromlogo~=\PName{switch}}% \begin{Declaration} - \Option{addrfield} + \KOption{addrfield}\PName{switch} \end{Declaration} -\BeginIndex{Option}{addrfield}% +\BeginIndex{Option}{addrfield~=\PName{switch}}% This option defines whether an address field will be set. Default is to use the address field. This option can take the standard values for simple switches, as listed in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Default is +\autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Default is \PValue{true}. % -\EndIndex{Option}{addrfield}% +\EndIndex{Option}{addrfield~=\PName{switch}}% \begin{Declaration} - \Option{backaddress} + \KOption{backaddress}\PName{switch} \end{Declaration} -\BeginIndex{Option}{backaddress}% +\BeginIndex{Option}{backaddress~=\PName{switch}}% This option defines whether a return address for window envelopes will be set. Default is to use the return address. If the address field is suppressed (see option \Option{addrfield}), there will be no return address either. This option can take the standard values for simple -switches, as listed in \autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. +switches, as listed in \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Default is \PValue{true}. % -\EndIndex{Option}{backaddress}% +\EndIndex{Option}{backaddress~=\PName{switch}}% \begin{Declaration} - \Option{subject} + \KOption{subject}\PName{value} \end{Declaration} -\BeginIndex{Option}{subject}% +\BeginIndex{Option}{subject~=\PName{value}}% This option serves two purposes: first, you can choose if your subject\Index{subject} should have a title, given by the \PName{subject} variable (see \autoref{tab:scrlttr2.subjectTerm}, @@ -773,12 +674,12 @@ Defaults are \PValue{beforeopening} and \PValue{untitled}. \end{desctabular} \end{table} % -\EndIndex{Option}{subject}% +\EndIndex{Option}{subject~=\PName{value}}% \begin{Declaration} - \Option{locfield} + \KOption{locfield}\PName{value} \end{Declaration} -\BeginIndex{Option}{locfield}% +\BeginIndex{Option}{locfield~=\PName{value}}% \Class{scrlttr2} places a field with additional sender attributes next to the address field. This can be used, for example, for bank account or similar additional information. Depending on the @@ -804,12 +705,12 @@ option are shown in \autoref{tab:scrlttr2.locfield}. Default is \end{desctabular} \end{table} % -\EndIndex{Option}{locfield}% +\EndIndex{Option}{locfield~=\PName{value}}% \begin{Declaration} - \Option{foldmarks} + \KOption{foldmarks}\PName{value} \end{Declaration} -\BeginIndex{Option}{foldmarks}% +\BeginIndex{Option}{foldmarks~=\PName{value}}% This option activates or deactivates foldmarks\Index{foldmark} for vertical two-, three- or four-panel folding, and a single horizontal folding, of the letter, whereby the folding need not result in @@ -820,8 +721,8 @@ vertical marks are configurable via pseudo-lengths (see The user has a choice: Either one may use the standard values for simple switches, as described in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}, to activate or +\autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}, to activate or deactivate at once all configured foldmarks on the left and upper edges of the paper; or\ChangedAt{v2.97e}{\Class{scrlttr2}} one may specify by one or more letters, as listed in @@ -837,8 +738,8 @@ The exact placement of the fold marks for three-panel letter folding depends on user settings, that is, the \File{lco} files (see \autoref{sec:scrlttr2.lcoFile}). The folding need not result in equal-sized parts. This option can take the standard values for simple -switches, as listed in \autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Default is +switches, as listed in \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Default is \PValue{true}, which implies setting the fold marks. \begin{table} \centering @@ -874,12 +775,12 @@ switches, as listed in \autoref{tab:scrlttr2.simpleSwitchValues}, \KOMAoption{foldmarks=true,foldmarks=blmtP} \end{lstlisting} \end{Example}% -\EndIndex{Option}{foldmarks}% +\EndIndex{Option}{foldmarks~=\PName{value}}% \begin{Declaration} - \Option{numericaldate} + \KOption{numericaldate}\PName{switch} \end{Declaration} -\BeginIndex{Option}{numericaldate}% +\BeginIndex{Option}{numericaldate~=\PName{switch}}% This option toggles between the standard, language-dependent date presentation, and a short, numerical one. {\KOMAScript} does not provide the standard presentation. It should be defined by packages @@ -888,18 +789,18 @@ such as \Package{german}\IndexPackage{german}, \Package{isodate}\IndexPackage{isodate}. The short, numerical presentation, on the other hand, is produced by \Class{scrlttr2} itself. This option can take the standard values for simple switches, -as listed in \autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Default is +as listed in \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Default is \PValue{false}, which results in standard date presentation. In the now obsolete \Class{scrlettr} class, the opposite effect was achieved using the \Option{orgdate} option. % -\EndIndex{Option}{numericaldate}% +\EndIndex{Option}{numericaldate~=\PName{switch}}% \begin{Declaration} - \Option{refline} + \Option{refline}\PName{value} \end{Declaration} -\BeginIndex{Option}{refline}% +\BeginIndex{Option}{refline~=\PName{value}}% With the \Class{scrlttr2} class, the header, footer, address, and sender attributes may extend beyond the normal type area to the left and to the right. This option defines whether that should also apply @@ -921,7 +822,7 @@ values for this option are shown in \end{desctabular} \end{table} % -\EndIndex{Option}{refline}% +\EndIndex{Option}{refline~=\PName{value}}% % \EndIndex{}{letter>head}\EndIndex{}{address}% @@ -941,9 +842,9 @@ pseudo-length \PLength{firstfootvpos}\IndexPLength{firstfootvpos} \autopageref{desc:scrlttr2.plength.firstfootvpos}). \begin{Declaration} - \Option{firstfoot} + \Option{firstfoot}\PName{switch} \end{Declaration} -\BeginIndex{Option}{firstfoot}% +\BeginIndex{Option}{firstfoot~=\PName{switch}}% This\ChangedAt{v2.97e}{\Class{scrlttr2}} option determines whether the letterfoot is set or not. If the letterfoot is not set then the pseudo-length \PLength{firstfootvpos} is also ignored, and instead @@ -954,10 +855,10 @@ pseudo-length \PLength{firstfootvpos} is also ignored, and instead concurrently. The option understands the standard values for simple switches, as -given in \autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Default is the setting +given in \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Default is the setting of the letterfoot. -\EndIndex{Option}{firstfoot}% +\EndIndex{Option}{firstfoot~=\PName{switch}}% \EndIndex{}{letter>footer} @@ -969,9 +870,9 @@ output and do not belong to another section. You might also call them the \emph{miscellaneous options}. \begin{Declaration} - \Option{draft} + \KOption{draft}\PName{switch} \end{Declaration} -\BeginIndex{Option}{draft}% +\BeginIndex{Option}{draft~=\PName{switch}}% This option toggles between the final\Index{final version} and the draft\Index{draft version} version of a document. In particular, enabling the \Option{draft} option activates little black boxes that @@ -979,13 +880,13 @@ will be drawn at the end of overfull lines. These boxes allow the unpracticed eye to more easily identify paragraphs that need manual intervention. When the \Option{draft} option is disabled, there will be no such boxes. This option can take the standard values for simple -switches, as listed in \autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues}. Default is +switches, as listed in \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Default is \PValue{false}, as usual. However, I strongly recommend enabling the \Option{draft} option when designing a letter, as for every other document. % -\EndIndex{Option}{draft}% +\EndIndex{Option}{draft~=\PName{switch}}% \subsection{The Letter Class Option Files} \label{sec:scrlttr2.lcoFile} @@ -1084,7 +985,7 @@ loading the \File{lco} file are local to the corresponding letter. The command \Macro{setkomavar} used above, and the principle of variables will be explained in detail in\autoref{sec:scrlttr2.variables}, -\autopageref{desc:scrlttr2.macro.setkomavar}. In the example given +\autopageref{desc:scrlttr2.cmd.setkomavar}. In the example given here, knowledge of the exact function of the command is not critical. It is only important to note what can be done with \File{lco} files, less so exactly how this might be @@ -1370,7 +1271,7 @@ page styles. macro \Macro{opening}\IndexCmd{opening} (see \autoref{sec:scrlttr2.firstHead}, \autoref{sec:scrlttr2.firstFoot}, as well as \autoref{sec:scrlttr2.opening}, - \autopageref{desc:scrlttr2.macro.opening}). + \autopageref{desc:scrlttr2.cmd.opening}). \item[plain] is the page style with only page numbers in the header or footer on subsequent pages. The placement of these page numbers is @@ -1393,7 +1294,7 @@ page styles. this end, the commands \Macro{markboth} and \Macro{markright} are available as usual, and with the use of package \Package{scrpage2} also \Macro{markleft} (see \autoref{sec:scrpage.basics.mark}, - \autopageref{desc:scrpage.macro.automark}) is available. + \autopageref{desc:scrpage.cmd.automark}) is available. \item[myheadings] is the page style for manual page headings on subsequent pages. This is very similar to \PValue{headings}, but @@ -1452,7 +1353,7 @@ look at the example in \autoref{sec:maincls.pageStyle}, \BeginIndex{Cmd}{cleardoubleplainpage}% \BeginIndex{Cmd}{cleardoubleemptypage}% Please refer to \autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.clearpage}. The function +\autopageref{desc:maincls.cmd.clearpage}. The function of \Macro{cleardoublepage} in \Class{scrlttr2} depends on the option \Option{cleardoublepage} which is described in more detail in \autoref{sec:scrlttr2.layout}, @@ -2005,19 +1906,20 @@ letters. As illustrated in \autoref{fig:scrlttr2.document}, a letter document consists of a preamble, the individual letters, and the closing. -The preamble comprises all settings that in general concern all -letters. Most of them can also be overwritten in the settings of the -individual letters. The only setting which can not be changed within a -single letter is the font size (see option \Option{fontsize} in -\autoref{sec:scrlttr2.fontOptions}, -\autopageref{desc:scrlttr2.option.fontsize}). It is recommended that -only general settings such as the loading of packages and the setting -of options be placed before \Macro{begin}\PParameter{document}. All -settings that comprise the setting of variables or other text features -should be done after \Macro{begin}\PParameter{document}. This is -particularly recommended when the \Package{babel} -package\IndexPackage{babel} (see \cite{package:babel}) is used, or -language-dependent variables of \Class{scrlttr2} are to be changed. +The preamble comprises all settings that in general concern all letters. Most +of them can also be overwritten in the settings of the individual letters. The +only setting which can not be changed within a single letter is compatibility +to prior versions of \Class{scrlttr2} (see option \Option{version} in +\autoref{sec:scrlttr2.compatibilityOptions}, +\autopageref{desc:scrlttr2.option.version}). + +It is recommended that only general settings such as the loading of packages +and the setting of options be placed before +\Macro{begin}\PParameter{document}. All settings that comprise the setting of +variables or other text features should be done after +\Macro{begin}\PParameter{document}. This is particularly recommended when the +\Package{babel} package\IndexPackage{babel} (see \cite{package:babel}) is +used, or language-dependent variables of \Class{scrlttr2} are to be changed. The closing usually consists only of \Macro{end}\PParameter{document}. Of course you can also insert @@ -2407,7 +2309,7 @@ e.\,g., letterhead width or an optional logo. Users can adjust rule length manually in their own \File{lco} files by setting this pseudo-length to positive values using \Macro{\@setplength} (see \autoref{sec:scrlttr2.pseudoLength}, -\autopageref{desc:scrlttr2.macro.@setplength}). The default +\autopageref{desc:scrlttr2.cmd.@setplength}). The default thickness of the line\ChangedAt{v2.97c}{\Class{scrlttr2}}, \PLength{fromrulethickness}, is 0.4\Unit{pt}. % @@ -3373,7 +3275,7 @@ as \Macro{centering} (all besides \Option{KOMAold}) or flush-right or flush-left alignment inside the box, the command can be redefined in the same way as \Macro{raggedsection} (see \autoref{sec:maincls.structure}, -\autopageref{desc:maincls.macro.raggedsection}). +\autopageref{desc:maincls.cmd.raggedsection}). Between closing phrase and signature a vertical space is inserted, the height of which is defined in the pseudo-length diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrpage2.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrpage2.tex index 2fc696e23e9..c4e50978f5e 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrpage2.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrpage2.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrpage2.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrpage2.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ============================================================================ -\ProvidesFile{scrpage2.tex}[2007/12/07 KOMA-Script guide (chapter:scrpage2)] +\ProvidesFile{scrpage2.tex}[2008/07/10 KOMA-Script guide (chapter:scrpage2)] \translator{Jens-Uwe Morawski\and Karl-Heinz Zimmer\and Christoph Bier\and Gernot Hassenpflug\and Markus Kohm} @@ -405,7 +405,7 @@ regard the proper assignment to left or right page. This command returns the formatted page number. The formatting can be controlled by \Macro{pnumfont}, introduced in \autoref{sec:scrpage.basics.format}, -\autopageref{desc:scrpage.macro.pnumfont}, which \Macro{pagemark} +\autopageref{desc:scrpage.cmd.pnumfont}, which \Macro{pagemark} heeds automatically. Alternatively, \Macro{setkomafont} can be used if a {\KOMAScript} class is used (see \autoref{sec:maincls.font}). % the last describtion \setkomafont ... is only fill-text @@ -941,7 +941,7 @@ This option ensures that the optional parameter of \Macro{automark}\IndexCmd{automark} will be ignored automatically in one-sided mode. See also the explanation of the command \Macro{automark} in \autoref{sec:scrpage.basics.mark}, -\autopageref{desc:scrpage.macro.automark}. +\autopageref{desc:scrpage.cmd.automark}. \EndIndex{Option}{autooneside} \BeginIndex{Option}{komastyle}\BeginIndex{Option}{standardstyle} @@ -1181,7 +1181,7 @@ structure. The individual parameters have the following meanings: If the optional line-parameters are omitted, then the line behaviour remains configurable by the commands introduced in \autoref{sec:scrpage.basics.format}, -\autopageref{desc:scrpage.macro.setheadtopline}. +\autopageref{desc:scrpage.cmd.setheadtopline}. The three elements \PName{EP}, \PName{OP} and \PName{OS} are boxes with the width of page header or footer, as appropriate. The diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/tocbasic.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/tocbasic.tex new file mode 100644 index 00000000000..ff2ce71356f --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/tocbasic.tex @@ -0,0 +1,588 @@ +%% +%% This is file `tocbasic.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tocbasic.dtx (with options: `doc') +%% +%% Copyright (c) 2007-2008 +%% Markus Kohm and any individual authors listed elsewhere in this file. +%% +%% This file was generated from file(s) of the KOMA-Script bundle. +%% --------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, version 1.3b of the license. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3b 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 file may only be distributed together with the files +%% `scrlogo.dtx' and `tocbasic.dtx'. You may however distribute the files +%% `scrlogo.dtx' and `tocbasic.dtx' without this file. +%% See also `tocbasic.dtx' for additional information. +%% +%% If this file is a beta version, you are not allowed to distribute it. +%% +%% Currently there is only a short english manual at `tocbasic.dtx', that +%% should also be found as `tocbasic.pdf'. +%% +%% The KOMA-Script bundle (but maybe not this file) was based upon the +%% LaTeX2.09 Script family created by Frank Neukam 1993 and the LaTeX2e +%% standard classes created by The LaTeX3 Project 1994-1996. +%% +%%% From File: tocbasic.dtx +\def\tocbasicversion{2008/10/06 v1.0} +\ProvidesFile{tocbasic.tex} + [\tocbasicversion + (manual)% + ] + +\chapter{Package \Package{tocbasic} for Class and Package Authors} +\labelbase{tocbasic} + +\textsc{Note: This is only a short version of the documentation. The german + \KOMAScript{} guide does contain a long version with usefull examples, that + should also be translated!} + +If a package creates it's list ``list of something''---something like ``list +of figures'', ``list of tables'', ``list of listings'', ``list of +algorithms'', etc. also known as \emph{toc-files}---have to do some +operations, that are equal for all those packages. Also it may be usefull +for classes and other packages to know about these additional +toc-files. This packages implements some basic functionality for all those +packages. Using this package will also improve compatibility with +\KOMAScript{} and---let us hope---other classes and packages. + +\section{Legal Note} +\label{sec:tocbasic.legalnote} + +You are allowed to destribute this part of \KOMAScript{} without the main +part of \KOMAScript{}. The files ``\File{scrlogo.dtx}'' and +``\File{tocbasic.dtx}'' may be distributed together under the conditions +of the \LaTeX{} Project Public License, either version~1.3b of this license +or (at your option) any later version. + +The latest version of this license is in +\mbox{http://www.latex-project.org/lppl.txt} and version~1.3b or later is +part of all distributions of \LaTeX{} version~2005/12/01 or later. + + +\section{Using Package \Package{tocbasic}} +\label{sec:tocbasic.usage} + +This package was made to be used by class and package authors. Because of +this the package has no options. If different packages would load it with +different options a option clash would be the result. So using options +would'nt be a good idea. + +There are two kind of commands. The first kind are basic command. Those +are used to inform other packages about the extensions used for files that +represent a list of something. Classes or packages may use this information +e.g, for putting something to every of those files. Packages may also ask, +if an extension is already in use. This does even work, if \Macro{nofiles} +was used. The second kind are commands to create the list of something. + +\subsection{Basic Commands} +\label{sec:tocbasic.basics} + +Basic commands are used to handle a list of all extensions known for files +representing a list of something. Entries to such files are written using +\Macro{addtocontents} or \Macro{addcontentsline} typically. There are also +commands to do something for all known extensions. And there are commands to +set or unset features of an extension or the file represented by the +extension. Typically an extension also has an owner. This owner may be a +class or package or a term decided by the author of the class or package +using \Package{tocbasic}, e.g., \KOMAScript{} uses the owner \texttt{float} +for list of figures ans list of tables and the default owner for the table of +contents. + +\begin{Declaration} + \Macro{ifattoclist}\Parameter{extension}\Parameter{true + part}\Parameter{false part} +\end{Declaration} +\BeginIndex{Cmd}{ifattoclist}% +This command +may be used to ask, wether a \PName{extension} is already a known extension or +not. If the \PName{extension} is already known the \PName{true part} will be +used, otherwise the \PName{false part} will be used. +\begin{Example} + Maybe you want to know if the extension ``\File{foo}'' is already in use to + report an error, if you can not use it: + \begin{lstlisting} + \ifattoclist{foo}{% + \PackageError{bar}{% + extension `foo' already in use% + }{% + Each extension may be used only + once.\MessageBreak + The class or another package already + uses extension `foo'.\MessageBreak + This error is fatal!\MessageBreak + You should not continue!}% + }{% + \PackageInfo{bar}{using extension `foo'}% + } + \end{lstlisting} +\end{Example} +\EndIndex{Cmd}{ifattoclist}% + +\begin{Declaration} + \Macro{addtotoclist}\OParameter{owner}\Parameter{extension} +\end{Declaration} +\BeginIndex{Cmd}{addtotoclist}% +This command +adds the \PName{extension} to the list of known extensions. If the optional +argument, \OParameter{owner}, was given this \PName{owner} will be stored to +be the owner of the \PName{extension}. If you omit the optional argument, +\Package{tocbasic} tries to find out the filename of the current processed +class or package and stores this as owner. This will fail if +\Macro{addtotoclist} was not used, loading a class or package but using a +command of a class or package after loading this class or package. In this +case the owner will be set to ``\PValue{.}''. Note that an empty +\PName{owner} is not the same like omitting the optional argument, but an +empty owner. + +\begin{Example} + You want to add the extension ``\File{foo}'' to the list of known extension, + while loading your package with file name ``\File{bar.sty}'': + \begin{lstlisting} + \addtotoclist{foo} + \end{lstlisting}% + This will add the extension ``\PValue{foo}'' with owner ``\PValue{bar.sty}'' + to the list of known extensions, if it was not already at the list of known + extensions. If the class or another package already added the extension you + will get the error: + \begin{lstlisting} + Package tocbasic Error: file extension `#2' cannot be used twice + + See the tocbasic package documentation for explanation. + Type H <return> for immediate help. + \end{lstlisting} + and after typing \texttt{H <return>} you will get the help: + \begin{lstlisting} + File extension `foo' is already used by a toc-file, while bar.sty + tried to use it again for a toc-file. + This may be either an incompatibility of packages, an error at a package, + or a mistake by the user. + \end{lstlisting} + + Maybe you package has a command, that creates list of files dynamically. In + this case you should use the optional argument of \Macro{addtotoclist} to + set the owner. + \begin{lstlisting} + \newcommand*{\createnewlistofsomething}[1]{% + \addtotoclist[bar.sty]{#1}% + % Do something more to make this list of something available + } + \end{lstlisting} + If the user calls know, e.g. + \begin{lstlisting} + \createnewlistofsomething{foo} + \end{lstlisting} + this would add the extension ``\PValue{foo}'' with the owner + ``\PValue{bar.sty}'' to the list of known extension or report an error, if the + extension is already in use. You may use any owner you want. But it should + be unique! So, if you are the author of package \Package{float} you may + use for example owner ``\PValue{float}'' instead of owner + ``\PValue{float.sty}'', so the \KOMAScript{} options for list of figure and + list of table will also handle the lists of this package, that are already + added to the known extensions, when the option is used. +\end{Example} +\EndIndex{Cmd}{addtotoclist}% + +\begin{Declaration} + \Macro{AtAddToTocList}\OParameter{owner}\Parameter{commands} +\end{Declaration} +\BeginIndex{Cmd}{AtAddToTocList}% +This command +adds the \PName{commands} to a internal list of commands, that should be +processed, if a toc-file with the given \PName{owner} will be added to the +list of known extensions using \Macro{addtoloclist}. If you omit the optional +argument, \Package{tocbasic} tries to find out the filename of the current +processed class or package and stores this as owner. This will fail if +\Macro{AtAddToTocList} was not used, loading a class or package but using a +command of a class or package after loading this class or package. In this +case the owner will be set to ``\PValue{.}''. Note that an empty +\PName{owner} is not the same like omitting the optional argument. With an +empty \PName{owner} you may add \Parameter{commands}, that will be processed +at every succefull \Macro{addtotoclist}, after processing the commands for the +indivdual owner. While processing the \PValue{commands}, \Macro{@currext} wil +be set to the extension of the currently added extension. +\begin{Example} +\Package{tocbasic} itself uses +\begin{lstlisting} + \AtAddToTocList[]{% + \expandafter\tocbasic@extend@babel + \expandafter{\@currext}% + } +\end{lstlisting} +to add every extension to the \Package{tocbasic}-internal babel handling of +toc-files. The \Macro{expandafter} are needed, because the argument of +\Macro{tocbasic@extend@babel} has to expanded! See the description of +\Macro{tocbasic@extend@babel} at \autoref{sec:tocbasic.internals}% +, \autopageref{desc:tocbasic.cmd.tocbasic@extend@babel} +for more information. +\end{Example} +\EndIndex{Cmd}{AtAddToTocList}% + +\begin{Declaration} + \Macro{removefromtoclist}\OParameter{owner}\Parameter{extension} +\end{Declaration} +\BeginIndex{Cmd}{removefromtoclist}% +This command +removes the \PName{extension} from the list of known extensions. If the +optional argument, \OParameter{owner}, was given the \PName{extension} will +only be removed, if it was added by this \PName{owner}. If you omit the +optional argument, \Package{tocbasic} tries to find out the filename of the +current processed class or package and use this as owner. This will fail if +\Macro{removefromtoclist} was not used, loading a class or package but using a +command of a class or package after loading this class or package. In this +case the owner will be set to ``\PValue{.}''. Note that an empty +\PName{owner} is not the same like omitting the optional argument, but removes +the \PName{extension} without any owner test. +\EndIndex{Cmd}{removefromtoclist}% + +\begin{Declaration} + \Macro{doforeachtocfile}\OParameter{owner}\Parameter{commands} +\end{Declaration} +\BeginIndex{Cmd}{doforeachtocfile}% +This command +processes \PName{commands} for every known toc-file of the given +\PName{owner}. While processing the \PName{commands} \Macro{@currext} ist the +extension of the current toc-file for every known toc-file. If you omit the +optional argument, \OParameter{owner}, every known toc-file will be used. If +the optional argument is empty, only toc-files with an empty owner will be +used. +\begin{Example} + If you want to type out all known extensions, you may simply write: + \begin{lstlisting} + \doforeachtocfile{\typeout{\@currext}} + \end{lstlisting} + and if only the extensions of owner ``\PValue{foo}'' should be typed out: + \begin{lstlisting} + \doforeachtocfile[foo]{\typeout{\@currext}} + \end{lstlisting} +\end{Example} +\EndIndex{Cmd}{doforeachtocfile}% + +\begin{Declaration} + \Macro{tocbasicautomode} +\end{Declaration} +\BeginIndex{Cmd}{tocbasicautomode}% +This command +redefines \LaTeX{} kernel macro \Macro{@starttoc} to add all not yet added +extensions to the list of known extensions and use \Macro{tocbasic@starttoc} +instead of \Macro{@starttoc}. +\EndIndex{Cmd}{tocbasicautomode}% + +\subsection{Creating a List of Something} +\label{sec:tocbasic.more} + +At the previous section you've seen commands to handle a list of known +extensions and to trigger commands while adding a new extension to this +list. You've also seen a command to do something for all known extensions or +all known extensions of one owner. In this section you will see commands to +handle the file corresponding with an extension or the list of known +extensions. + +\begin{Declaration} + \Macro{addtoeachtocfile}\OParameter{owner}\Parameter{contents} +\end{Declaration} +\BeginIndex{Cmd}{addtoeachtocfile}% +This command +writes \PName{contents} to every known toc-file of \PName{owner}. If you omit +the optional argument, \PName{contents} it written to every known +toc-file. While writing the contents, \Macro{@currext} is the extension of +the currently handled toc-file. +\begin{Example} + You may add a vertical space of one text line to all toc-files. + \begin{lstlisting} + \addtoeachtocfile{% + \protect\addvspace{\protect\baselineskip}% + } + \end{lstlisting} + And if you want to do this, only for the toc-files of owner + ``\PValue{foo}'': + \begin{lstlisting} + \addtoeachtocfile[foo]{% + \protect\addvspace{\protect\baselineskip}% + } + \end{lstlisting} +\end{Example} +\EndIndex{Cmd}{addtoeachtocfile}% + +\begin{Declaration} + \Macro{addcontentslinetoeachtocfile}\OParameter{owner}\Parameter{level}% + \Parameter{contentsline} +\end{Declaration} +\BeginIndex{Cmd}{addcontentslinetoeachtocfile}% +This command +is something like \Macro{addcontentsline} not only for one file, but all known +toc-files or all known toc-files of a given owner. +\begin{Example} + You are a class author and want to write the chapter entry not only to the + table of contents toc-file but to all toc-files, while \texttt{\#1} is the + title, that should be written to the files. + \begin{lstlisting} + \addcontentslinetoeachtocfile{chapter}{% + \protect\numberline{\thechapter}#1} + \end{lstlisting} +\end{Example} +\EndIndex{Cmd}{addcontentslinetoeachtocfile}% + +\begin{Declaration} + \Macro{listoftoc*}\Parameter{extension} +\\ + \Macro{listoftoc}\OParameter{list of title}\Parameter{extension} +\end{Declaration} +\BeginIndex{Cmd}{listoftoc*}% +\BeginIndex{Cmd}{listoftoc}% +This commands +may be used to set the ``list of'' of a toc-file. The star version +\Macro{listoftoc*} needs only one argument, the extension of the toc-file. It +does setup the vertical and horizontal spacing of paragraphs, calls before and +after hooks and reads the toc-file. You may use it as direct replacement of +the \LaTeX{} kernel macro \Macro{@starttoc}. + +The version without star, sets the whole toc-file with title, optional table +of contents entry, and running heads. If the optional argument +\OParameter{list of title} was given, it will be used as title term, optional +table of contents entry and running head. Note: If the optional argument is +empty, this term will be empty, too! If you omit the optional argument, but +\Macro{listof\PName{extension}name} was defined, that will be used. + +\begin{Example} + You have a new ``list of algorithms'' with extension \PValue{loa} and want to + show it. + \begin{lstlisting} + \listof[list of algorithm]{loa} + \end{lstlisting} + Maybe you want, that the ``list of algorithms'' will create an entry at the + table of contents. You may set + \begin{lstlisting} + \setuptoc{loa}{totoc} + \end{lstlisting} + But maybe the ``list of algorithms'' should not be set with a title. So you + may use + \begin{lstlisting} + \listof*{loa} + \end{lstlisting} + Note that in this case no entry at the table of contents will be created, + even if you'd used the setup command above. +\end{Example} + +The default heading new following features using \Macro{setuptoc}: +\begin{description} +\item[\texttt{totoc}] writes the title of the list of to the table of contents +\item[\texttt{numbered}] uses a numbered headings for the list of +\item[\texttt{leveldown}] uses not the top level heading (e.g., \Macro{chapter} + with book) but the first sub level (e.g., \Macro{section} with book). +\end{description} +\EndIndex{Cmd}{listoftoc*}% +\EndIndex{Cmd}{listoftoc}% + +\begin{Declaration} + \Macro{BeforeStartingTOC}\OParameter{extension}\Parameter{commands} +\\ + \Macro{AfterStartingTOC}\OParameter{extension}\Parameter{commands} +\end{Declaration} +\BeginIndex{Cmd}{BeforeStartingTOC}% +\BeginIndex{Cmd}{AfterStartingTOC}% +This commands +may be used to process \PName{commands} before or after loading the toc-file +with given \PName{extension} using \Macro{listoftoc*} or \Macro{listoftoc}. If +you omit the optional argument (or set an empty one) the general hooks will be +set. The general before hook will be called before the individuel one and the +general after hook will be called after the individuel one. While calling the +hooks \Macro{@currext} is the extension of the toc-file and should not be +changed. +\EndIndex{Cmd}{AfterStartingTOC}% +\EndIndex{Cmd}{BeforeStartingTOC}% + +\begin{Declaration} + \Macro{BeforeTOCHead}\OParameter{extension}\Parameter{commands} +\\ + \Macro{AfterTOCHead}\OParameter{extension}\Parameter{commands} +\end{Declaration} +\BeginIndex{Cmd}{BeforeTOCHead}% +\BeginIndex{Cmd}{AfterTOCHead}% +This commands +may be used to process \PName{commands} before or after setting the title of a +toc-file with given \PName{extension} using \Macro{listoftoc*} or +\Macro{listoftoc}. If you omit the optional argument (or set an empty one) the +general hooks will be set. The general before hook will be called before the +individuel one and the general after hook will be called after the individuel +one. While calling the hooks \Macro{@currext} is the extension of the toc-file +and should not be changed. +\EndIndex{Cmd}{AfterTOCHead}% +\EndIndex{Cmd}{BeforeTOCHead}% + +\begin{Declaration} + \Macro{listofeachtoc}\OParameter{owner} +\end{Declaration} +\BeginIndex{Cmd}{listofeachtoc}% +This command +sets all toc-files or all toc-files of the given \PName{owner} using +\Macro{listoftoc}. You should have defined +\Macro{listof\PName{extension}name} for each toc-file, otherwise you'll get a +warning. +\EndIndex{Cmd}{listofeachtoc}% + +\begin{Declaration} + \Macro{MakeMarkcase} +\end{Declaration} +\BeginIndex{Cmd}{MakeMarkcase}% +This command +will be used to change the case of the letters at the running +head. The default is, to use \Macro{@firstofone} for \KOMAScript{} classes and +\Macro{MakeUppercase} for all other classes. If you are the class author you +may define \Macro{MakeMarkcase} on your own. If \Package{scrpage2} or another +package, that defines \Macro{MakeMarkcase} will be used, \Package{tocbasci} +will not overwrite that Definition. +\EndIndex{Cmd}{MakeMarkcase}% + +\begin{Declaration} + \Macro{deftocheading}\Parameter{extension}\Parameter{definition} +\end{Declaration} +\BeginIndex{Cmd}{deftocheading}% +This command +defines a heading command, that will be used instead of the +default heading using \Macro{listoftoc}. The heading command has exactly one +argument. You may reference to that argument using \texttt{\#1} at your +\PName{defintion}. +\EndIndex{Cmd}{deftocheading}% + +\begin{Declaration} + \Macro{setuptoc}\Parameter{extension}\Parameter{featurelist} +\\ + \Macro{unsettoc}\Parameter{extension}\Parameter{featurelist} +\end{Declaration} +\BeginIndex{Cmd}{setuptoc}% +\BeginIndex{Cmd}{unsettoc}% +This commands +set up and unset features binded to an \PName{extension}. The +\PName{featurelist} is a comma seperated list of single +features. \Package{tocbasic} does know following features: +\begin{description} +\item[\texttt{totoc}] writes the title of the list of to the table of contents +\item[\texttt{numbered}] uses a numbered headings for the list of +\item[\texttt{leveldown}] uses not the top level heading (e.g., \Macro{chapter} + with book) but the first sub level (e.g., \Macro{section} with book). +\item[\texttt{nobabel}] prevents the extension to be added to the babel + handling of toc-files. To make this work, you have to set the feature + before adding the extension to the list of known extension. +\end{description} +Classes and packages may know features, too, e.g, the \KOMAScript{} classes +know following additional features: +\begin{description} +\item[\texttt{chapteratlist}] activates special code to be put into the list + at start of a new chapter. This code may either be vertical space or the + heading of the chapter. +\end{description} +\EndIndex{Cmd}{unsettoc}% +\EndIndex{Cmd}{setuptoc}% + +\begin{Declaration} + \Macro{iftocfeature}\Parameter{extension}\Parameter{feature}%^^A + \Parameter{true-part}\Parameter{false-part} +\end{Declaration} +\BeginIndex{Cmd}{iftocfeature}% +This command +may be used, to test, if a \PName{feature} was set for \PName{extension}. If +so the \PName{true-part} will be processed, otherwise the \PName{false-part} +will be. +\EndIndex{Cmd}{iftocfeature}% + +\subsection{Internal Commands for Class and Package Authors} +\label{sec:tocbasic.internals} + +Commands with prefix \Macro{tocbasic@} are internal but class and package +authors may use them. But even if you are a class or package author you +should not change them! + +\begin{Declaration} + \Macro{tocbasic@extend@babel}\Parameter{extension} +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@extend@babel}% +This command +extends the babel handling of toc-files. By default babel writes language +selections only to \PValue{toc}, \PValue{lot} and +\PValue{lof}. \Package{tocbasic} adds every \PName{extension} added to the +list of known extensions (see \Macro{addtotoclist}, \autoref{sec:tocbasic.basics}% +, \autopageref{desc:tocbasic.cmd.addtotoclist}% +) using \Macro{tocbasic@extend@babel}. Note: This should be called only once +per \PName{extension}. \Macro{tocbasic@extend@babel} does nothing, if the +feature \PValue{nobabel} was set for \PName{extension} before using +\Macro{addtotoclist}. +\EndIndex{Cmd}{tocbasic@extend@babel}% + +\begin{Declaration} + \Macro{tocbasic@starttoc}\Parameter{extension} +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@starttoc} +This command is something like the \LaTeX{} kernel macro \Macro{@starttoc}, +but does some additional settings before using \Macro{@starttoc}. It does set +\Macro{parskip} zu zero, \Macro{parindent} to zero, \Macro{parfillskip} to +zero plus one fil, \Macro{@currext} to the \PName{extension}, and processes +hooks before and after reading the toc-file. +\EndIndex{Cmd}{tocbasic@starttoc} + +\begin{Declaration} + \Macro{tocbasic@@before@hook}\\ + \Macro{tocbasic@@after@hook} +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@@before@hook}% +\BeginIndex{Cmd}{tocbasic@@after@hook}% +This macros +are processed before and after loading a toc-file. If you don't use +\Macro{listoftoc} or \Macro{listoftoc*} or \Macro{tocbasic@starttoc} to load +the toc-file, you should call these, too. But you should not redefine them! +\EndIndex{Cmd}{tocbasic@@before@hook}% +\EndIndex{Cmd}{tocbasic@@after@hook}% + +\begin{Declaration} + \Macro{tocbasic@\PName{extension}@before@hook}\\ + \Macro{tocbasic@\PName{extension}@after@hook} +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@\PName{extension}@before@hook}% +\BeginIndex{Cmd}{tocbasic@\PName{extension}@after@hook}% +This macros +are processed before and after loading a toc-file. If you don't use +\Macro{listoftoc} or \Macro{listoftoc*} or \Macro{tocbasic@starttoc} to load +the toc-file, you should call these, too. But you should not redefine them! +The first macro is processed just before \Macro{tocbasic@@before@hook}, the +second one just after \Macro{tocbasic@@after@hook} +\EndIndex{Cmd}{tocbasic@\PName{extension}@after@hook}% +\EndIndex{Cmd}{tocbasic@\PName{extension}@before@hook}% + +\begin{Declaration} + \Macro{tocbasic@listhead}\Parameter{title} +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@listhead}% +This command +is used by \Macro{listoftoc} to set the heading of the list, either the +default heading or the indiviually defined heading. If you define your own +list command not using \Macro{listoftoc} you may use +\Macro{tocbasic@listhead}. In this case you should define \Macro{@currext} to +be the extension of the toc-file before using \Macro{tocbasic@listhead}. +\EndIndex{Cmd}{tocbasic@listhead}% + +\begin{Declaration} + \Macro{tocbasic@listhead@\PName{extension}}\Parameter{title} +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@listhead@\PName{extension}}% +This command +is used in \Macro{tocbasic@listhead} to set the individual headings, optional +toc-entry, and running head, if it was defined. If it was not defined it will +be defined and used in \Macro{tocbasic@listhead}. +\EndIndex{Cmd}{tocbasic@listhead@\PName{extension}}% +\endinput +%% +%% End of file `tocbasic.tex'. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/typearea.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/typearea.tex index 3c61c55140a..bff6f4bca40 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/typearea.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/typearea.tex @@ -1,6 +1,6 @@ % ====================================================================== % typearea.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % typearea.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ====================================================================== -\ProvidesFile{typearea.tex}[2007/09/27 KOMA-Script guide (chapter: typearea)] +\ProvidesFile{typearea.tex}[2008/07/10 KOMA-Script guide (chapter: typearea)] \translator{Markus Kohm\and Gernot Hassenpflug} % Date of translated german file: 2006-11-29 @@ -53,6 +53,13 @@ \chapter{Construction of the Page Layout with \Package{typearea}} \labelbase{typearea} +\textsc{Note:} Following commands are still missing in this chapter: +\Macro{KOMAoptions}, \Macro{KOMAoption}, \Macro{recalctypearea}. + +\textsc{Note:} Following options are still missing in this chapter: +\OptionValue{BCOR}{current}, \OptionValue{twoside}{semi}, +\KOption{headheight}\PName{height}, \OptionValue{pagesize}{automedia}. + \section{Fundamentals of Page Layout} \begin{Explain} @@ -258,11 +265,60 @@ Since the \Package{typearea} package is loaded automatically when using the {\KOMAScript} main classes, the package options can be given as class options (see \autoref{sec:maincls.options}). + +\begin{Declaration} + \KOption{twoside}\PName{value} +\end{Declaration}% +\BeginIndex{Option}{twoside~=\PName{value}}% +These two options have the same effect as in the standard classes. +The option \Option{oneside} defines a one-sided document layout with a +one-sided page layout. This means in particular that normally a ragged +page bottom is used. + +The option \Option{twoside} defines a two-sided document layout with a +two-sided page layout. This means that the {\LaTeX} command +\Macro{flushbottom}\IndexCmd{flushbottom} is used to ensure that page +breaks don't leave a variable empty space at the bottom of a page. A +ragged page bottom can be obtained with the {\LaTeX} command +\Macro{raggedbottom}\IndexCmd{raggedbottom}. +% +\EndIndex{Option}{twoside~=\PName{value}}% + + +\begin{Declaration} + \KOption{twocolumn}\PName{switch} +\end{Declaration}% +\BeginIndex{Option}{twocolumn~=\PName{switch}}% +These values of the option (see \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}) have the same effect like the standard +options \Option{twocolumn} and \Option{onecolumn}. They are used to switch +between a one-column and a two-column layout. The standard {\LaTeX} +capabilities for multi-column layout are only useful for very simple uses. The +standard package \Package{multicol} is much more versatile (see +\cite{package:multicol}).\Index{columns}\IndexPackage{multicol}% +\EndIndex{Option}{twocolumn~=\PName{switch}} + +\begin{table} + \begin{minipage}{\textwidth} + \centering + \caption{Standard values for simple switches within \KOMAScript} + \begin{tabular}{ll} + Value & Description \\\hline\\[-1.75ex] + \PValue{true}\footnote{This value will be used also, if you use the option + without assigning any value.} & activates the option \\ + \PValue{on} & activates the option \\ + \PValue{false}& deactivates the option \\ + \PValue{off} & deactivates the option \\ + \end{tabular} + \label{tab:truefalseswitch} + \end{minipage} +\end{table} + \begin{Declaration} - \Option{BCOR}\PName{Correction} + \KOption{BCOR}\PName{Correction} \end{Declaration}% -\BeginIndex{Option}{BCOR}% -With the \Option{BCOR}\PName{Correction} option you specify the +\BeginIndex{Option}{BCOR~=\PName{value}}% +With the \KOption{BCOR}\PName{Correction} option you specify the absolute value of the binding correction, i.\,e., the width of the area that is used for the binding, thus ``lost'' from the paper width. @@ -278,11 +334,11 @@ any valid {\TeX} unit for \PName{Correction}. would use the following commands: \begin{lstlisting} \documentclass[a4paper]{report} - \usepackage[BCOR8.25mm]{typearea} + \usepackage[BCOR=8.25mm]{typearea} \end{lstlisting} or, using a {\KOMAScript} class: \begin{lstlisting} - \documentclass[a4paper,BCOR8.25mm]{scrreprt} + \documentclass[a4paper,BCOR=8.25mm]{scrreprt} \end{lstlisting} \end{Example} @@ -294,13 +350,13 @@ the standard classes, you need to give the option when you load (see \cite{latex:clsguide}) before you are loading \Package{typearea}, this always works. % -\EndIndex{Option}{BCOR} +\EndIndex{Option}{BCOR~=\PName{value}} \begin{Declaration} - \Option{DIV}\PName{Factor} + \KOption{DIV}\PName{Factor} \end{Declaration}% \BeginIndex{Option}{DIV}% -\Option{DIV}\PName{Factor} defines the number of stripes the page +\KOption{DIV}\PName{Factor} defines the number of stripes the page is split into when the page layout is constructed. The exact method can be found in \autoref{sec:typearea.divConstruction}, but the most important thing is this: the higher \PName{Factor}, the @@ -309,7 +365,7 @@ bigger the resulting text area, and the smaller the margins. For Please note that depending on your other options a very high value for \PName{Factor} can result in problems: for instance, in extreme cases, the running title might be outside the actual page -area. So if you use \Option{DIV}\PName{Factor}, it is your own +area. So if you use \KOption{DIV}\PName{Factor}, it is your own responsibility to choose a typographically acceptable line length and to pay attention to the other parameters. @@ -356,7 +412,7 @@ varying \Var{DIV} factors. Font size is not taken into account. \begin{lstlisting} \documentclass[a4paper,twoside]{protocol} \usepackage{bookman} - \usepackage[DIV15]{typearea} + \usepackage[DIV=15]{typearea} \end{lstlisting} After you are done you are told that the minutes will be collected and bound as a book at the end of the year. The binding will be a simple glue binding @@ -367,11 +423,11 @@ accordingly and use the ISO\,9000 document class: \begin{lstlisting} \documentclass[a4paper,twoside]{iso9000p} \usepackage{bookman} - \usepackage[DIV15,BCOR12mm]{typearea} + \usepackage[DIV=15,BCOR=12mm]{typearea} \end{lstlisting} Of course, you can also use a {\KOMAScript} class here: \begin{lstlisting} - \documentclass[twoside,DIV15,BCOR12mm]{scrartcl} + \documentclass[twoside,DIV=15,BCOR=12mm]{scrartcl} \usepackage{bookman} \end{lstlisting} The option \Option{a4paper} was omitted using class \Class{scrartcl}, @@ -388,18 +444,18 @@ loading \Package{typearea}, this always works. \EndIndex{Option}{DIV} \begin{Declaration} - \Option{DIVcalc}\\ - \Option{DIVclassic} + \Option{DIV=calc}\\ + \Option{DIV=classic} \end{Declaration}% -\BeginIndex{Option}{DIVcalc}% -\BeginIndex{Option}{DIVclassic}% +\BeginIndex{Option}{DIV~=calc}% +\BeginIndex{Option}{DIV~=classic}% As mentioned in \autoref{sec:typearea.divConstruction}, only paper format A4 has fixed defaults for the \Var{DIV} value. These are listed in \autoref{tab:typearea.div}. If you choose a different paper format, \Package{typearea} calculates a good \Var{DIV} value itself. Of course, you can also have it calculate -that for A4: use \Option{DIVcalc} instead of -\Option{DIV}\PName{Factor}. This works for all other paper formats +that for A4: use \Option{DIV=calc} instead of +\KOption{DIV}\PName{Factor}. This works for all other paper formats as well. If you want to use the automatic calculation, this is even very useful, since you can then override the defaults that are given in a configuration file (see @@ -419,18 +475,18 @@ are given in a configuration file (see The classic construction method as described in \autoref{sec:typearea.circleConstruction} can also be selected (with the difference that a good \Var{DIV} value is chosen). In -this case, instead of \Option{DIV}\PName{Factor} or -\Option{DIVcalc}, use the option \Option{DIVclassic}. +this case, instead of \KOption{DIV}\PName{Factor} or +\Option{DIV=calc}, use the option \Option{DIV=classic}. \begin{Example} - In the example for \Option{DIV}\PName{Factor} which used the + In the example for \KOption{DIV}\PName{Factor} which used the Bookman font, there was the problem that we needed a \Var{DIV} value which suited the font better. As a modification of the first example, this calculation can be left to \Package{typearea}: \begin{lstlisting} \documentclass[a4paper,twoside]{protocol} \usepackage{bookman} - \usepackage[DIVcalc]{typearea} + \usepackage[DIV=calc]{typearea} \end{lstlisting} \end{Example} @@ -450,18 +506,18 @@ to be used. Therefore, after evaluating the options, \Package{typearea} calculates the page layout by using the \Macro{typearea}\OParameter{BCOR}\Parameter{DIV} command. Here, the chosen \Var{BCOR} value is given as an optional parameter and -\Var{DIV} as a parameter. With the option \Option{DIVcalc}, the +\Var{DIV} as a parameter. With the option \Option{DIV=calc}, the (normally invalid) value~\(1\) is given; with the option -\Option{DIVclassic} the (normally invalid) value~\(3\). You can +\Option{DIV=classic} the (normally invalid) value~\(3\). You can also call \Macro{typearea} explicitly in the preamble. \begin{Example} Let us assume again that we want to calculate a good page layout for the Bookman font. We also want to use a {\KOMAScript} class. This is possible - using the \Macro{typearea} command with \Option{DIVcalc} = 1 as + using the \Macro{typearea} command with \Option{DIV=calc} = 1 as \PName{DIV} parameter: \begin{lstlisting} - \documentclass[BCOR12mm,DIVcalc,twoside]{scrartcl} + \documentclass[BCOR=12mm,DIV=calc,twoside]{scrartcl} \usepackage{bookman} \typearea[12mm]{1}% same as class options above \end{lstlisting} @@ -471,8 +527,8 @@ also call \Macro{typearea} explicitly in the preamble. It would be ridiculous if one had to use the \Macro{typearea} command with some pseudo-values, while the -\Option{DIV} option allows the use of \Option{DIVcalc} and -\Option{DIVclassic}. Thus the \Macro{typearea} also accepts +\Option{DIV} option allows the use of \Option{DIV=calc} and +\Option{DIV=classic}. Thus the \Macro{typearea} also accepts symbolic values for the parameter \PName{DIV} which are listed in \autoref{tab:symbolicDIV}. @@ -515,13 +571,13 @@ re-enter the current value. {\KOMAScript} class is easy when we use symbolic parameter values for \PName{BCOR} and \PName{DIV}: \begin{lstlisting} - \documentclass[BCOR12mm,DIVcalc,twoside]{scrartcl} + \documentclass[BCOR=12mm,DIV=calc,twoside]{scrartcl} \usepackage{bookman} \typearea[current]{calc} \end{lstlisting} If we want to use a fixed value for \Var{DIV} we can use either: \begin{lstlisting} - \documentclass[BCOR12mm,DIV11,twoside]{scrartcl} + \documentclass[BCOR=12mm,DIV=11,twoside]{scrartcl} \usepackage{bookman} \typearea[current]{last} \end{lstlisting} @@ -548,7 +604,7 @@ line spacing requires a re-calculation of page layout. assume that binding correction needs 12\Unit{mm}. Then you might use: \begin{lstlisting} \documentclass[10pt,twoside,% - BCOR12mm,DIVcalc]{scrreprt} + BCOR=12mm,DIV=calc]{scrreprt} \linespread{1.25} \typearea[current]{last} \end{lstlisting}\IndexCmd{linespread} @@ -560,7 +616,7 @@ line spacing requires a re-calculation of page layout. \cite{package:setspace}): \begin{lstlisting} \documentclass[10pt,twoside,% - BCOR12mm,DIVcalc]{scrreprt} + BCOR=12mm,DIV=calc]{scrreprt} \usepackage{setspace} \onehalfspacing \typearea[current]{last} @@ -574,7 +630,7 @@ line spacing requires a re-calculation of page layout. this: \begin{lstlisting} \documentclass[10pt,twoside,% - BCOR12mm,DIVcalc]{scrreprt} + BCOR=12mm,DIV=calc]{scrreprt} \usepackage{setspace} \onehalfspacing \typearea[current]{last} @@ -602,20 +658,16 @@ line spacing requires a re-calculation of page layout. incompatibilities when we change to {\LaTeX}3.% \end{Explain}% \EndIndex{Cmd}{typearea}% -\EndIndex{Option}{DIVclassic}% -\EndIndex{Option}{DIVcalc}% +\EndIndex{Option}{DIV~=classic}% +\EndIndex{Option}{DIV~=calc}% \begin{Explain} \begin{Declaration} - \Option{headinclude}\\ - \Option{headexclude}\\ - \Option{footinclude}\\ - \Option{footexclude} + \KOption{headinclude}\PName{switch}\\ + \KOption{footinclude}\PName{switch} \end{Declaration}% -\BeginIndex{Option}{headinclude}% -\BeginIndex{Option}{headexclude}% -\BeginIndex{Option}{footinclude}% -\BeginIndex{Option}{footexclude}% +\BeginIndex{Option}{headinclude~=\PName{switch}}% +\BeginIndex{Option}{footinclude~=\PName{switch}}% So far we have discussed how the page layout is calculated and what the ratios are between the borders and between borders and text area. However, one important question has not been answered: What constitutes the borders? This @@ -662,38 +714,36 @@ separation of text and header or footer, important is only the appearance when viewed out of focus. \end{Explain} -The \Package{typearea} package can not make the decision whether -or not to count headers and footers to the text body or the -border. Options \Option{headinclude} and \Option{footinclude} -cause the header or footer to be counted as text, options -\Option{headexclude} and \Option{footexclude} cause them to be -counted as border. If you are unsure about the correct setting, -re-read above explanations. Default is usually -\Option{headexclude} and \Option{footexclude}., but this can -change depending on {\KOMAScript} class and {\KOMAScript} packages used -(see \autoref{sec:maincls.options} and \autoref{cha:scrpage}). +The \Package{typearea} package can not make the decision whether or not to +count headers and footers to the text body or the border. Options +\Option{headinclude} and \Option{footinclude} cause the header or footer to be +counted as text, options \OptionValue{headinclude}{false} and +\OptionValue{footinclude}{false} cause them to be counted as border (see +\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}). If you are +unsure about the correct setting, re-read above explanations. Default is +usually \OptionValue{headinclude}{false} and +\OptionValue{footinclude}{false}, but this can change depending on +{\KOMAScript} class and {\KOMAScript} packages used (see +\autoref{sec:maincls.options} and \autoref{cha:scrpage}). % -\EndIndex{Option}{headinclude}% -\EndIndex{Option}{headexclude}% -\EndIndex{Option}{footinclude}% -\EndIndex{Option}{footexclude}% +\EndIndex{Option}{headinclude~=\PName{switch}}% +\EndIndex{Option}{footinclude~=\PName{switch}}% \begin{Declaration} - \Option{mpinclude}\\ - \Option{mpexclude} + \KOption{mpinclude}\PName{switch} \end{Declaration} -\BeginIndex{Option}{mpinclude}% -\BeginIndex{Option}{mpexclude}% +\BeginIndex{Option}{mpinclude~=\PName{switch}}% Besides\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} documents where the head and foot is part of the text area, there are also documents where the margin-note area must be counted to -the text body as well. The option \Option{mpinclude} does exactly this. The -effect is that one width-unit of the text body is taken for the margin-note -area. Using option \Option{mpexclude}, the default setting, then the normal -margin is used for the margin-note area. The width of that area is one or one -and a half width-unit, depending on whether one-sided or double-sided page layout -has been chosen. The option \Option{mpinclude} is mainly for experts and so -not recommended. +the text body as well. The option \Option{mpinclude} (see +\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}) does exactly +this. The effect is that one width-unit of the text body is taken for the +margin-note area. Using option \OptionValue{mpinclude}{false}, the default +setting, then the normal margin is used for the margin-note area. The width +of that area is one or one and a half width-unit, depending on whether +one-sided or double-sided page layout has been chosen. The option +\Option{mpinclude} is mainly for experts and so not recommended. \begin{Explain} In the cases where the option \Option{mpinclude} is used often a wider @@ -720,22 +770,21 @@ not recommended. \Length{textwidth} and enlarges the margin width \Length{marginparwidth} by the same amount. Unfortunately, this can not be attended when automatic calculation of the \PName{DIV} value is used. In contrast - \Option{DIVcalc}\IndexOption{DIVcalc} heeds \Option{mpinclude}. + \Option{DIV=calc}\IndexOption{DIV~=calc} heeds \Option{mpinclude}. \end{Explain} % -\EndIndex{Option}{mpinclude}% -\EndIndex{Option}{mpexclude}% +\EndIndex{Option}{mpinclude~=\PName{switch}}% \begin{Declaration} - \PName{Value}\Option{headlines} + \KOption{headlines}\PName{value} \end{Declaration}% \BeginIndex{Option}{headlines}% We have seen how to calculate the text layout and how to specify whether header and footer are part of the text body or the borders. However, we still have to specify the height in particular of the header. This is achieved with the option -\Option{headlines}, which is preceded by the number of lines in +\Option{headlines}, which is followed by the number of lines in the header. \Package{typearea} uses a default of 1.25. This is a compromise, large enough for underlined headers (see \autoref{sec:maincls.options}) and small enough that the @@ -751,11 +800,11 @@ special cases. calculate an appropriate page layout: \begin{lstlisting} \documentclass[a4paper]{article} - \usepackage[2.1headlines]{typearea} + \usepackage[headlines=2.1]{typearea} \end{lstlisting} If you use a {\KOMAScript} class this must be given as a class option: \begin{lstlisting} - \documentclass[a4paper,2.1headlines]{scrartcl} + \documentclass[a4paper,headlines=2.1]{scrartcl} \end{lstlisting} A tool that can be used to define the contents of a header with two lines is described in \autoref{cha:scrpage}. @@ -784,7 +833,7 @@ possible. The \Package{typearea} package offers the command the binding correction and the width and height of the text body. Width and position of the borders will then be calculated automatically, taking account of the options \Option{headinclude}, -\Option{headexclude}, \Option{footinclude} and \Option{footexclude} +\OptionValue{headinclude}{false}, \Option{footinclude} and \OptionValue{footinclude}{false} where needed. \begin{Example} @@ -827,34 +876,29 @@ values. If you have to do so you may use package \Package{geometry} (see \Index{paper format}% The {\LaTeX} standard classes support the options \Option{a4paper}, \Option{a5paper}, \Option{b5paper}, \Option{letterpaper}, -\Option{legalpaper} and \Option{executivepaper}. +\Option{legalpaper} and \Option{executivepaper}. These are support be +\Package{typearea} in the same way. + \begin{Declaration} - \Option{letterpaper} \\ - \Option{legalpaper} \\ - \Option{executivepaper} \\ - \Option{a\Var{X}paper} \\ - \Option{b\Var{X}paper} \\ - \Option{c\Var{X}paper} \\ - \Option{d\Var{X}paper} \\ + \OptionValue{paper}{letter} \\ + \OptionValue{paper}{legal} \\ + \OptionValue{paper}{executive} \\ + \OptionValue{paper}{a\Var{X}} \\ + \OptionValue{paper}{b\Var{X}} \\ + \OptionValue{paper}{c\Var{X}} \\ + \OptionValue{paper}{d\Var{X}} \\ \Option{landscape} \\ \Macro{isopaper}\OParameter{series}\Parameter{number} \end{Declaration}% -\BeginIndex{Option}{letterpaper} -\BeginIndex{Option}{legalpaper} -\BeginIndex{Option}{executivepaper} -\BeginIndex{Option}{a0paper} -\BeginIndex{Option}{b0paper} -\BeginIndex{Option}{c0paper} -\BeginIndex{Option}{d0paper} +\BeginIndex{Option}{paper~=\PName{size}} \BeginIndex{Option}{landscape} \BeginIndex{Cmd}{isopaper}% -The three American formats are supported by \Package{typearea} -in the same way. In addition, all ISO A-, ISO B-, ISO C- and -ISO D-formats are supported and derived from their basic sizes A0, B0, -C0 and D0. They may be selected directly with options -\Option{a0paper}, \Option{a1paper} and so on. Landscape orientation is -selected with the \Option{landscape} option just as in the standard -classes. +In addition to the paper formats of the standard classes, all ISO A-, ISO B-, +ISO C- and ISO D-formats are supported and derived from their basic sizes A0, +B0, C0 and D0. They may be selected directly with options +\OptionValue{paper}{a0}, \OptionValue{paper}{a1} and so on. Landscape +orientation is selected with the \Option{landscape} option just as in the +standard classes. Alternatively the paper size can be adjusted with the macro \Macro{isopaper}. This however required re-calculation of the @@ -867,35 +911,28 @@ recommend the use of \Macro{isopaper}. will be used. \begin{lstlisting} \documentclass{article} - \usepackage[headexclude,footexclude, - a8paper,landscape]{typearea} + \usepackage[headinclude=false,footinclude=false, + paper=a8,landscape]{typearea} \areaset{7cm}{5cm} \pagestyle{empty} \begin{document} \section*{Paper Size Options} - letterpaper, legalpaper, executivepaper, a0paper, - a1paper \dots\ b0paper, b1paper \dots\ c0paper, - c1paper \dots\ d0paper, d1paper \dots + letterpaper, legalpaper, executivepaper, a4paper, + a5paper, paper=a0, paper=a1 \dots\ paper=b0, + paper=b1 \dots\ paper=c0, paper=c1 \dots\ + paper=d0, paper=d1 \dots \end{document} \end{lstlisting} \end{Example} -All \Option{a\Var{X}paper}, \Option{b\Var{X}paper}, -\Option{c\Var{X}paper} and \Option{d\Var{X}paper} options need -to be given as class options when {\KOMAScript} classes are used. -For other classes this works only if they support -\Package{typearea}. For the standard {\LaTeX} classes these options -need to be declared when \Package{typearea} is loaded. -\Macro{PassOptionsToPackage} (see \cite{latex:clsguide}) works in -both cases. +The options \Option{a4paper}, +\Option{a5paper}, \Option{b5paper}, \Option{letterpaper}, +\Option{legalpaper} and \Option{executivepaper} need +to be given as class options when {\KOMAScript} classes are used. The +\Option{paper}-Option may be set using \Macro{KOMAoptions} oder +\Macro{KOMAoption} instead. % -\EndIndex{Option}{letterpaper} -\EndIndex{Option}{legalpaper} -\EndIndex{Option}{executivepaper} -\EndIndex{Option}{a0paper} -\EndIndex{Option}{b0paper} -\EndIndex{Option}{c0paper} -\EndIndex{Option}{d0paper} +\EndIndex{Option}{paper~=\PName{size}} \EndIndex{Option}{landscape} \EndIndex{Cmd}{isopaper} @@ -1025,7 +1062,7 @@ additional paper sizes. \BeginIndex{Cmd}{SetDIVList}% \begin{Explain}% The \Macro{SetDIVList} parameter was also intended for use in this - file. Before the option \Option{DIVcalc} was introduced this was the + file. Before the option \Option{DIV=calc} was introduced this was the only possibility to define \Var{DIV} values for different paper and font sizes. This list consists of a number of values in curly parentheses. The leftmost value is the font size, \(10\Unit{pt}\), @@ -1115,7 +1152,7 @@ listings\,---\,as well as the bibliography and the index. The \Package{setspace} package offers for this a special environment and its own instructions. -The \Package{typearea} package even with option \Option{DIVcalc} +The \Package{typearea} package even with option \Option{DIV=calc} calculates a very generous text area. Many conservative typographers will state that the resulting line length is still excessive. The calculated \Var{DIV} value may be found in the \File{log} file to the diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/scrbookreportarticle.tex b/Master/texmf-dist/source/latex/koma-script/doc/german/scrbookreportarticle.tex deleted file mode 100644 index c9e86f2c16c..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/doc/german/scrbookreportarticle.tex +++ /dev/null @@ -1,5577 +0,0 @@ -% ====================================================================== -% scrbookreportarticle.tex -% Copyright (c) Markus Kohm, 2001-2007 -% -% 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.3b of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3b 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. -% ---------------------------------------------------------------------- -% scrbookreportarticle.tex -% Copyright (c) Markus Kohm, 2001-2007 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3b, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3b 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. -% ====================================================================== -% -% Chapter about scrbook, scrreprt, and scrartcl of the KOMA-Script guide -% Maintained by Markus Kohm -% -% ---------------------------------------------------------------------- -% -% Kapitel über scrbook, scrreprt und scrartcl in der KOMA-Script-Anleitung -% Verwaltet von Markus Kohm -% -% ============================================================================ - -\ProvidesFile{scrbookreportarticle.tex}[2007/12/07 KOMA-Script guide (chapter: -scrbook, scrreprt, scrartcl)] - -\chapter{Die Hauptklassen \Class{scrbook}, \Class{scrreprt}, \Class{scrartcl}} -\labelbase{maincls} - -\AddSeeIndex{Anweisung}{gen}{\GuidecmdIndexShort}{cmd}% -\AddSeeIndex{Makro}{gen}{\GuidecmdIndexShort}{cmd}% -\begin{Explain} - Die Hauptklassen des \KOMAScript-Pakets sind als Äquivalent zu den - \LaTeX-Standard"-klassen angelegt. Das bedeutet, dass zu den drei - Standardklassen \Class{book}\IndexClass{book}, \Class{report}% - \IndexClass{report} und \Class{article}\IndexClass{article} im - \KOMAScript-Paket Entsprechungen zu finden sind. Daneben ist auch für die - Standardklasse \Class{letter}\IndexClass{letter} eine Entsprechung - vorhanden. Der Briefklasse in {\KOMAScript} ist jedoch ein eigenes Kapitel - gewidmet, da sie sich von den drei Hauptklassen grundsätzlich unterscheidet - (siehe \autoref{cha:scrlttr2}). - - Die Namen der {\KOMAScript}-Klassen sind aus dem Präfix »\texttt{scr}« und - den gekürzten Namen der Standardklassen zusammengesetzt. Um die Länge des - Namens auf acht Buchstaben zu beschränken, werden dabei notfalls von hinten - her die Vokale weggelassen. Eine Gegenüberstellung der Standardklassen und - der korrespondierenden \KOMAScript-Klassen zeigt - \autoref{tab:maincls.overview}. -\end{Explain} - -Die einfachste Möglichkeit, an Stelle einer Standardklasse eine -\KOMAScript-Klasse zu verwenden, ist die Ersetzung des Klassennamens in der -Anweisung \verb|\documentclass| entsprechend \autoref{tab:maincls.overview}, -also beispielsweise \Macro{documentclass}\PParameter{book} durch -\Macro{documentclass}\PParameter{scrbook}. Der anschließende \LaTeX-Lauf -sollte lediglich einige Layoutänderungen mit sich bringen. Ein großer Teil der -in den nachfolgenden Abschnitten beschriebenen vielfältigen Möglichkeiten und -Optionen werden von den \KOMAScript-Klassen zusätzlich geboten. - -\begin{table} - \centering - \caption[Klassengegenüberstellung]{Gegenüberstellung der - Standardklassen und der \KOMAScript-Klassen} - \begin{tabular}{ll} - \toprule - Standard-Klasse & \KOMAScript-Klasse \\%& \Script-Stil (\LaTeX2.09)\\ - \midrule - \Class{article} & \Class{scrartcl} \\%& \File{script\textunderscore s} \\ - \Class{report} & \Class{scrreprt} \\%& \File{script} \\ - \Class{book} & \Class{scrbook} \\%& \File{script} \\ - \Class{letter} & \Class{scrlttr2} \\%& \File{script\textunderscore l} \\ - \bottomrule - \end{tabular} - \label{tab:maincls.overview} -\end{table} - - -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Die Optionen} -\label{sec:maincls.options} - -Dieser Abschnitt behandelt alle Klassenoptionen der drei Hauptklassen. -Die Mehrzahl der Optionen ist in genau der gleichen Form auch in den -Standardklassen zu finden. Da die Erfahrung jedoch zeigt, dass viele -Optionen der Standardklassen unbekannt sind, wurde deren Beschreibung -hier aufgenommen. -\iffalse -% Umbruchoptimierungstext -Dies stellt eine Abweichung von dem Grundsatz dar, im \File{scrguide} nur die -Dinge zu beschreiben, die abweichend von den Standardklassen implementiert -sind. -% -\fi - -In \autoref{tab:maincls.stdOptions} finden Sie diejenigen -Optionen aufgeführt, die bei mindestens einer {\KOMAScript}-Klasse -voreingestellt sind. Dabei ist für jede der drei -\KOMAScript-Hauptklassen angegeben, ob die Option voreingestellt -ist oder nicht, oder ob sie für die jeweilige Klasse überhaupt -nicht definiert ist. Eine nicht definierte Option kann natürlich -weder voreingestellt sein, noch vom Anwender gewählt werden. - -\begin{table}[tbp] - \centering - \caption{Voreingestellte Optionen der \KOMAScript-Klassen} - \begin{tabular}{llll} - \toprule - Option & - \Class{scrbook} & \Class{scrreprt} & \Class{scrartcl} \\ - \midrule - \Option{11pt} & - Voreinstellung & Voreinstellung & Voreinstellung \\ - \Option{a4paper} & - Voreinstellung & Voreinstellung & Voreinstellung \\ - \Option{abstractoff} & - \emph{nicht definiert} & Voreinstellung & Voreinstellung \\ - \Option{bigheadings} & - Voreinstellung & Voreinstellung & Voreinstellung \\ - \Option{chapteratlists=} & - \PValue{10pt} & \PValue{10pt} & \emph{nicht definiert} \\ - \Option{final} & - Voreinstellung & Voreinstellung & Voreinstellung \\ - \Option{footnosepline} & - Voreinstellung & Voreinstellung & Voreinstellung \\ - \Option{headnosepline} & - Voreinstellung & Voreinstellung & Voreinstellung \\ - \Option{listsindent} & - Voreinstellung & Voreinstellung & Voreinstellung \\ - \Option{nochapterprefix} & - Voreinstellung & Voreinstellung & \emph{nicht definiert} \\ - \Option{onelinecaption} & - Voreinstellung & Voreinstellung & Voreinstellung \\ - \Option{notitlepage} & - & & Voreinstellung \\ - \Option{onecolumn} & - Voreinstellung & Voreinstellung & Voreinstellung \\ - \Option{oneside} & - & Voreinstellung & Voreinstellung \\ - \Option{openany} & - & Voreinstellung & Voreinstellung \\ - \Option{openright} & - Voreinstellung & & \\ - \Option{parindent} & - Voreinstellung & Voreinstellung & Voreinstellung \\ - \Option{tablecaptionbelow} & - Voreinstellung & Voreinstellung & Voreinstellung \\ - \Option{titlepage} & - Voreinstellung & Voreinstellung \\ - \Option{tocindent} & - Voreinstellung & Voreinstellung & Voreinstellung \\ - \Option{twoside} & - Voreinstellung & & \\ - \Option{version=} & - \PValue{first} & \PValue{first} & \PValue{first} \\ - \bottomrule - \end{tabular} - \label{tab:maincls.stdOptions} -\end{table} - -\begin{Explain} - Lassen Sie mich der Erläuterung der Optionen noch eine Bemerkung - vorausschicken. Oft ist man sich am Anfang eines Dokuments unsicher, - welche Einstellungen konkret zu wählen sind. Bei einigen - Optionen, wie der Auswahl des Papierformats, mögen sie bereits vorab - feststehen. Aber schon die Frage nach dem \Var{DIV}-Wert für den - Satzspiegel könnte im Voraus schwer zu beantworten sein. - Andererseits sollten diese Angaben für die Haupttätigkeiten des - Autors: Entwurf der Gliederung, Schreiben des Textes, - Zusammenstellen von Abbildungen, Tabellen und Verzeichnissen - zunächst auch unerheblich sein. Konzentrieren Sie sich als Autor - erst einmal auf den Inhalt. Wenn der dann steht, können Sie sich um - die Feinheiten der Form kümmern. Neben der Auswahl der Optionen - gehören dazu dann auch Dinge wie die Korrektur der Trennung und - möglicherweise dezente Eingriffe in den Seitenumbruch oder die - Verteilung von Abbildungen und Tabellen. -\iftrue -% Umbruchoptimierungstext - Als Beispiel hierfür sei \autoref{tab:maincls.stdOptions} genannt, die ich - mehrfach vom Anfang des Abschnitts an das Ende verschoben habe und - umgekehrt. Die Wahl der tatsächlichen Position wird erst bei Fertigstellung - des Dokuments feststehen. -% -\fi -\end{Explain} - - -\subsection{Optionen für die Kompatibilität} -\label{sec:maincls.compatibilityOptions} -\BeginIndex{}{Kompatibilität} - -Wer seine Dokumente im Quellcode archiviert, legt in der Regel allergrößten -Wert darauf, dass bei zukünftigen \LaTeX{}-Läufen immer wieder exakt dasselbe -Ergebnis erzielt wird. In einigen Fällen ist es aber so, dass Verbesserungen -und Korrekturen an der Klasse zu Änderungen im Verhalten, inbesondere beim -Umbruch, führen. - -\begin{Declaration} - \Option{version}\\ - \XOption{version}=\PName{Wert} -\end{Declaration} -\BeginIndex{Option}{version}% -Seit\ChangedAt{v2.96a}{\Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} -Version~2.96a besteht bei \KOMAScript\ die Wahl, ob eine Quelldatei so weit -irgend möglich auch zukünftig bei einem \LaTeX{}-Lauf zu exakt demselben -Ergebnis führen soll oder ob jeweils entsprechend der Anpassungen der neusten -Version der Klasse zu setzen ist. Zu welcher Version Kompatibilität -herzustellen ist, wird dabei über die Option \Option{version} -festgelegt. Voreingestellt ist Version~2.9t. Dasselbe Ergebnis kann mit -\begin{lstlisting} - version=first -\end{lstlisting} -oder -\begin{lstlisting} - version=2.9 -\end{lstlisting} -oder -\begin{lstlisting} - version=2.9t -\end{lstlisting} -erreicht werden. Bei Angabe einer unbekannten Version als \PName{Wert} wird -eine Warnung ausgegeben und sicherheitshalber \Option{version=}\PValue{first} -angenommen. Mit -\begin{lstlisting} - version=last -\end{lstlisting} -kann die jeweils neuste Version ausgewählt werden. In diesem Fall wird also -auf zukünftige Kompatibilität verzichtet. Wird die Option ohne Wertangabe -verwendet, so wird ebenfalls \PValue{last} angenommen. - -Die Frage der Kompatiblität betrifft in erster Linie Fragen des Umbruchs. Neue -Möglichkeiten, die sich nicht auf den Umbruch auswirken, sind auch dann -verfügbar, wenn man per Option die Kompatibilität zu einer älteren Version -ausgewählt hat. Die Option hat keine Auswirkungen auf Umbruchänderungen, die -bei Verwendung einer neueren Version durch Beseitigung eindeutiger Fehler -entstehen. Wer auch im Fehlerfall unbedingte Umbruchkompatibitlität benötigt, -sollte stattdessen mit dem Dokument auch die verwendete \KOMAScript-Version -archivieren. - -Es ist zu beachten, dass die Option \Option{version} nach dem Laden der Klasse -nicht mehr verändert werden kann.% -% -\EndIndex{Option}{version}% -% -\EndIndex{}{Kompatibilität} - - -\subsection{Optionen für den Satzspiegel} -\label{sec:maincls.typeareaOptions} - -Während bei den Standardklassen der Satzspiegel\Index{Satzspiegel} im -Wesentlichen durch das Laden der Optionendateien \File{size10.clo}, -\File{size11.clo}, \File{size12.clo} beziehungsweise \File{bk10.clo}, -\File{bk11.clo}, \File{bk12.clo} und den Standardschriften bestimmt wird, -verwenden die \KOMAScript-Klassen keinen festen Satzspiegel, sondern einen, -der von Papierformat\Index{Papierformat} und Schriftgröße abhängt. Dazu -stützen sich alle drei Hauptklassen auf das -\Package{typearea}-Paket\IndexPackage{typearea} (siehe -\autoref{cha:typearea}). Das Paket wird von den Klassen automatisch geladen. -Es ist also nicht notwendig, es mit \verb|\usepackage{typearea}| selbst -einzuladen. Es ist auch nicht sinnvoll bei Verwendung einer \KOMAScript-Klasse -das Paket \Package{typearea} noch einmal explizit zu laden. Sollten Sie beim -\LaTeX-Lauf die Fehlermeldung »\texttt{Option clash for package - typearea}«\Index{Option clash} erhalten, so liegt das mit größter -Wahrscheinlichkeit an einer expliziten Anweisung -\Macro{usepackage}\OParameter{Paketoptionen}\PParameter{typearea}. - -\begin{Declaration} - \Option{letterpaper} \\ - \Option{legalpaper} \\ - \Option{executivepaper} \\ - \Option{a\Var{X}paper} \\ - \Option{b\Var{X}paper} \\ - \Option{c\Var{X}paper} \\ - \Option{d\Var{X}paper} \\ - \Option{landscape} -\end{Declaration}% -\BeginIndex{Option}{letterpaper}% -\BeginIndex{Option}{legalpaper}% -\BeginIndex{Option}{executivepaper}% -\BeginIndex{Option}{a0paper}% -\BeginIndex{Option}{b0paper}% -\BeginIndex{Option}{c0paper}% -\BeginIndex{Option}{d0paper}% -\BeginIndex{Option}{landscape}% -Die grundlegenden Optionen zur Auswahl des Papierformats werden nicht direkt -von den Klassen ausgeführt. Stattdessen werden diese als globale Optionen -automatisch vom \Package{typearea}-Paket behandelt (siehe -\autoref{sec:typearea.paperTypes}, -\autopageref{desc:typearea.option.letterpaper}). Dabei entsprechen die Optionen -\Option{a5paper}, \Option{a4paper}, \Option{letterpaper}, \Option{legalpaper} -und \Option{executivepaper} den gleichnamigen Optionen der Standardklassen und -ergeben die gleichen Papierformate. Der aus dem jeweiligen Format berechnete -Satzspiegel ist dann jedoch ein anderer.% -% -\EndIndex{Option}{letterpaper}% -\EndIndex{Option}{legalpaper}% -\EndIndex{Option}{executivepaper}% -\EndIndex{Option}{a0paper}% -\EndIndex{Option}{b0paper}% -\EndIndex{Option}{c0paper}% -\EndIndex{Option}{d0paper}% -\EndIndex{Option}{landscape} - -\begin{Explain} - Tatsächlich werden die Optionen für das A"~, B"~, C- oder D-Format vom - \Package{typearea}-Paket nicht deshalb ausgewertet, weil es sich um - globale Optionen handelt, sondern nur weil die \KOMAScript-Klassen - sie explizit an das \mbox{\Package{typearea}}-Paket weiterreichen. Dies hat - seine Gründe in der Implementierung der Optionen im - \Package{typearea}-Paket beziehungsweise in der Funktion des - Mechanismus zur Weiterleitung und Auswertung von Optionen, der von - \LaTeX{} zur Verfügung gestellt wird. - - Dies gilt in gleicher Weise für die nachfolgend aufgeführten - Optionen zur Einstellung der Bindekorrektur, des Divisors und der - Anzahl der Kopfzeilen. -\end{Explain} - - -\begin{Declaration} - \Option{BCOR}\PName{Korrektur}\\ - \Option{DIV}\PName{Faktor}\\ - \Option{DIVcalc}\\ - \Option{DIVclassic}\\% - \kern-1.5pt\PName{Wert}\Option{headlines} -\end{Declaration}% -\BeginIndex{Option}{BCOR}% -\BeginIndex{Option}{DIV}% -\BeginIndex{Option}{DIVcalc}% -\BeginIndex{Option}{DIVclassic}% -\BeginIndex{Option}{headlines}% -Die Optionen für den Divisor und die Bindekorrektur\Index{Bindekorrektur} -werden direkt an das \Package{typearea}-Paket weitergeleitet (siehe -\autoref{sec:typearea.options}, \autopageref{desc:typearea.option.BCOR} bis -\autopageref{desc:typearea.option.headlines}). Dies geschieht in Abweichung zu -den Standardklassen, bei denen eine entsprechende Weiterleitung nicht -stattfindet. Das gilt ebenfalls für die Option zur Einstellung der Anzahl der -Kopfzeilen. -% -\EndIndex{Option}{BCOR}% -\EndIndex{Option}{DIV}% -\EndIndex{Option}{DIVcalc}% -\EndIndex{Option}{DIVclassic}% -\EndIndex{Option}{headlines} - - -\subsection{Optionen für das Layout} -\label{sec:maincls.layoutOptions} - -In diesem Unterabschnitt werden alle Optionen zusammengefasst, die -sich im erweiterten Sinne auf das Layout und nicht nur auf den -Satzspiegel auswirken. Genau genommen sind natürlich alle -Satzspiegeloptionen (siehe -\autoref{sec:maincls.typeareaOptions}) Layoutoptionen. -Teilweise gilt dies auch umgekehrt. - -\begin{Declaration} - \Option{oneside}\\ - \Option{twoside} -\end{Declaration}% -\BeginIndex{Option}{oneside}% -\BeginIndex{Option}{twoside}% -Diese beiden Optionen funktionieren genau wie bei den -Standardklassen. Bei der Option \Option{oneside} wird ein -einseitiges\Index{einseitig} Layout mit einem einseitigen -Satzspiegel gewählt. Dies bedeutet insbesondere auch, dass -normalweise mit einem flatternden unteren Rand gearbeitet wird. - -Bei der Option \Option{twoside} wird ein doppelseitiges Layout mit -einem doppelseitigen\Index{doppelseitig} Satzspiegel gewählt. Dazu -wird der \LaTeX-Befehl \Macro{flushbottom}\IndexCmd{flushbottom} -ausgeführt, der dafür sorgt, dass am Seitenende umbrochener Seiten -kein variabler Leerraum zu finden ist. Will man stattdessen einen -flatternden unteren Rand, so kann man dies mit Hilfe des -\LaTeX-Befehls \Macro{raggedbottom}\IndexCmd{raggedbottom} erreichen. -% -\EndIndex{Option}{oneside}% -\EndIndex{Option}{twoside}% - - -\begin{Declaration} - \Option{onecolumn}\\ - \Option{twocolumn} -\end{Declaration}% -\BeginIndex{Option}{onecolumn} -\BeginIndex{Option}{twocolumn}% -Diese beiden Optionen funktionieren genau wie bei den -Standardklassen. Mit ihrer Hilfe wird zwischen einem -einspaltigen\Index{einspaltig} und einem -zweispaltigen\Index{zweispaltig} Layout umgeschaltet. Die in -{\LaTeX} eingebauten Möglichkeiten für mehrspaltigen Satz reichen -oft nur für einfache Aufgaben aus. Es gibt jedoch das -Standardpaket \Package{multicol}, mit dem sehr viel flexiblerer -Mehrspaltensatz möglich ist (siehe -\cite{package:multicol}).\Index{Spalten}\IndexPackage{multicol} -% -\EndIndex{Option}{onecolumn} -\EndIndex{Option}{twocolumn} - - -\begin{Declaration} - \Option{openany}\\ - \Option{openright} -\end{Declaration}% -\BeginIndex{Option}{openany}% -\BeginIndex{Option}{openright}% -\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% -Diese beiden Optionen funktionieren genau wie bei den -Standardklassen. Sie haben Auswirkungen auf die Auswahl der -Seite, auf der ein Kapitel\Index{Kapitel>Anfang} beginnen kann -und existieren daher bei \Class{scrartcl} nicht, da dort die -oberste Gliederungsebene unter dem Teil der Abschnitt ist. Die -Gliederungsebene Kapitel gibt es bei \Class{scrartcl} nicht. - -Ein Kapitel beginnt immer auf einer neuen Seite. Mit der Option -\Option{openany} kann dies jede neue Seite sein. Bei Wahl der -Einstellung \Option{openright} wird jedoch zwingend eine neue rechte -Seite vorgeschrieben, wie es bei Büchern allgemein üblich ist. -Dazu wird gegebenenfalls eine linke Seite -eingefügt. Diese leeren Seiten werden durch implizite Ausführung des -\LaTeX-Befehls \Macro{cleardoublepage}\IndexCmd{cleardoublepage} -erzeugt. - -Da zwischen rechten und linken Seiten nur im doppelseitigen Layout -unterschieden wird, hat die Option \Option{openright} im einseitigen -Layout keinerlei Auswirkungen. Sie sollten sie deshalb zusammen mit -der Option \Option{twoside} einsetzen. -% -\EndIndex{Option}{openany} -\EndIndex{Option}{openright} - -\begin{Declaration} - \Option{cleardoublestandard}\\ - \Option{cleardoubleplain}\\ - \Option{cleardoubleempty} -\end{Declaration}% -\BeginIndex{Option}{cleardoublestandard}% -\BeginIndex{Option}{cleardoubleplain}% -\BeginIndex{Option}{cleardoubleempty}% -Will man, dass mit der \Macro{cleardoublepage}-Anweisung eingefügte Leerseiten -keinen Kolumnentitel,\Index{Kolumnentitel} sondern nur eine -Seitenzahl\Index{Paginierung}\Index{Seitenzahl} oder auch weder Kolumnentitel -noch Seitenzahl enthalten, so bleibt bei den Standardklassen nur, die -Anweisung entsprechend umzudefinieren. {\KOMAScript} bietet Optionen, um dem -Anwender dies abzunehmen. Mit der Option \Option{cleardoublestandard} hat man -das Standardverhalten von \Macro{cleardoublepage}. Bei Verwendung der Option -\Option{cleardoubleplain} wird die leere, linke Seite hingegen mit dem -Seitenstil \PValue{plain}\IndexPagestyle{plain} ausgegeben. Bei Verwendung der -Option \Option{cleardoubleempty} findet entsprechend der Seitenstil -\PValue{empty}\IndexPagestyle{empty} Anwendung. Die Seitenstile werden in -\autoref{sec:maincls.pageStyle} näher erläutert. -% -\EndIndex{Option}{cleardoublestandard}% -\EndIndex{Option}{cleardoubleplain}% -\EndIndex{Option}{cleardoubleempty}% - - -\begin{Declaration} - \Option{titlepage}\\ - \Option{notitlepage} -\end{Declaration}% -\BeginIndex{Option}{titlepage}% -\BeginIndex{Option}{notitlepage}% -Die beiden Optionen funktionieren genau wie bei den -Standardklassen. Mit der Option \Option{titlepage} wird erreicht, -dass für die gesamte Titelei\Index{Titel} eigene Seiten -verwendet werden. Diese Seiten werden innerhalb von -\Environment{titlepage}-Umgebungen gesetzt und erhalten somit -normalerweise weder Seitenkopf noch Seitenfuß. Bei {\KOMAScript} -wurde die Titelei gegenüber den Standardklassen stark erweitert -(siehe dazu \autoref{sec:maincls.titles}). - -Demgegenüber wird mit der Option \Option{notitlepage} erreicht, dass -ein sogenannter \emph{in-page} Titel gesetzt wird. Das heißt, die -Titelei wird lediglich speziell hervorgehoben, auf der Titelseite kann -aber nachfolgend weiteres Material, beispielsweise eine -Zusammenfassung oder ein Abschnitt gesetzt werden. -% -\EndIndex{Option}{titlepage}% -\EndIndex{Option}{notitlepage}% - - -\begin{Explain}% -\begin{Declaration} - \Option{parskip}\\ - \Option{parskip*}\\ - \Option{parskip+}\\ - \Option{parskip-}\\ - \Option{halfparskip}\\ - \Option{halfparskip*}\\ - \Option{halfparskip+}\\ - \Option{halfparskip-}\\ - \Option{parindent} -\end{Declaration}% -\BeginIndex{Option}{parskip}% -\BeginIndex{Option}{parskip*}% -\BeginIndex{Option}{parskip+}% -\BeginIndex{Option}{parskip-}% -\BeginIndex{Option}{halfparskip}% -\BeginIndex{Option}{halfparskip*}% -\BeginIndex{Option}{halfparskip+}% -\BeginIndex{Option}{halfparskip-}% -\BeginIndex{Option}{parindent}% - Die Standardklassen setzen Absätze\Index[indexmain]{Absatz} - normalerweise mit Absatzeinzug und ohne Absatzabstand. Bei - Verwendung eines normalen Satzspiegels, wie ihn \Package{typearea} - bietet, ist dies die vorteilhafteste Absatzauszeichnung. Würde man - ohne Einzug und Abstand arbeiten, hätte der Leser als Anhaltspunkt - nur die Länge der letzten Zeile. Im Extremfall kann es sehr schwer - sein, zu erkennen, ob eine Zeile voll ist oder nicht. Des Weiteren - stellt der Typograf fest, dass die Auszeichnung des Absatzendes am - Anfang der nächsten Zeile leicht vergessen ist. Demgegenüber ist - eine Auszeichnung am Absatzanfang einprägsamer. Der Absatzabstand - hat den Nachteil, dass er in verschiedenem Zusammenhang leicht - verloren geht. So wäre nach einer abgesetzten Formel nicht mehr - festzustellen, ob der Absatz fortgesetzt wird oder ein neuer - beginnt. Auch am Seitenanfang müsste zurückgeblättert werden, um - feststellen zu können, ob mit der Seite auch ein neuer Absatz - beginnt. All diese Probleme sind beim Absatzeinzug nicht gegeben. - Eine Kombination von Absatzeinzug und Absatzabstand ist wegen der - übertriebenen Redundanz abzulehnen. Der - Einzug\Index[indexmain]{Einzug} alleine ist deutlich genug. Der - einzige Nachteil des Absatzeinzuges liegt in der Verkürzung der - Zeile. Damit gewinnt der Absatzabstand\Index{Absatzabstand} bei - ohnehin kurzen Zeilen, etwa im Zeitungssatz, seine Berechtigung. -\end{Explain} - -Unabhängig von obigen Erläuterungen wird hin und wieder ein Layout mit -Absatzabstand an Stelle des Absatzeinzugs gefordert. \KOMAScript{} -bietet hierfür mit \Option{parskip}, \Option{parskip-}, \Option{parskip*}, -\Option{parskip+} sowie \Option{halfparskip}, \Option{halfparskip-}, -\Option{halfparskip*} und \Option{halfparskip+} eine ganze -Reihe von Optionen. - -Die vier \Option{parskip}-Optionen setzen jeweils einen Absatzabstand -von einer Zeile. Die vier \Option{halfparskip}-Optionen verwenden nur -eine halbe Zeile. -Um zu verhindern, dass beispielsweise beim Seitenwechsel ein -Absatzwechsel unerkannt bleibt, wird bei jeweils drei Varianten dafür -gesorgt, dass die letzte Zeile eines Absatzes nicht komplett gefüllt -wird. Bei der Variante ohne Plus und Stern bleibt mindestens ein -Leeraum von 1\Unit{em}. Bei der Plus-Variante bleibt mindestens ein -Drittel einer normalen Zeile und bei der Stern-Variante mindestens ein -Viertel einer normalen Zeile frei. Bei der Minus-Variante werden keine -Vorkehrungen für die letzte Zeile eines Absatzes getroffen. - -Alle acht Optionen zur Auswahl eines Absatzabstandes verändern -außerdem den Abstand vor, nach und innerhalb von Listenumgebungen. -Dadurch wird verhindert, dass diese Umgebungen oder Absätze innerhalb -dieser Umgebungen stärker vom Text abgesetzt werden als die Absätze -des normalen Textes voneinander. Darüber hinaus wird dafür gesorgt, -dass im Inhalts"~, Abbildungs- und Tabellenverzeichnis ohne -zusätzlichem Absatzabstand gearbeitet wird. - -Voreingestellt ist bei \KOMAScript{} das Verhalten der Option -\Option{parindent}. Hierbei gibt es keinen Absatzabstand, sondern -einen Absatzeinzug von 1\Unit{em}. -% -\EndIndex{Option}{parskip}% -\EndIndex{Option}{parskip*}% -\EndIndex{Option}{parskip+}% -\EndIndex{Option}{parskip-}% -\EndIndex{Option}{halfparskip}% -\EndIndex{Option}{halfparskip*}% -\EndIndex{Option}{halfparskip+}% -\EndIndex{Option}{halfparskip-}% -\EndIndex{Option}{parindent}% - - -\begin{Declaration} - \Option{headsepline}\\ - \Option{headnosepline}\\ - \Option{footsepline}\\ - \Option{footnosepline} -\end{Declaration}% -\BeginIndex{Option}{headsepline}% -\BeginIndex{Option}{headnosepline}% -\BeginIndex{Option}{footsepline}% -\BeginIndex{Option}{footnosepline}% -Wird unter Kolumnentiteln eine horizontale Linie\Index{Trennlinie} -gewünscht, so lässt sich diese mit der Option \Option{headsepline} -einschalten. Die Option \Option{headnosepline} stellt die Umkehrung -dar. Bei den Seitenstilen \PValue{empty} und \PValue{plain} hat dies -selbstverständlich keine Auswirkung, da hier auf einen -Seitenkopf\Index{Seitenkopf} ausdrücklich verzichtet werden soll. -Typografisch betrachtet hat eine solche Linie immer die Auswirkung, -dass der Kopf optisch näher an den Text heranrückt. Dies bedeutet nun -nicht, dass der Kopf räumlich weiter vom Textkörper\Index{Textbereich} -weggerückt werden müsste. Stattdessen sollte der Kopf dann bei der -Berechnung des Satzspiegels als zum Textkörper gehörend betrachtet -werden. Dies wird bei {\KOMAScript} dadurch erreicht, dass bei -Verwendung der Klassenoption \Option{headsepline} automatisch die -Paketoption \Option{headinclude} an das \Package{typearea}-Paket -weitergereicht wird. - -Für eine Trennlinie\Index{Trennlinie} über dem Seitenfuß gibt es -die analog funktionierenden Optionen \Option{footsepline} und -\Option{footnosepline}. Bei Aktivierung der Trennlinie mit -\Option{footsepline} wird automatisch die Option -\Option{footinclude} an das \Package{typearea}-Paket -weitergereicht. Im Gegensatz zu \Option{headsepline} wirkt sich -die Option \Option{footsepline} auch beim Seitenstil -\PValue{plain} aus, da \PValue{plain} eine Seitenzahl im Fuß -ausgibt. -% -\EndIndex{Option}{headsepline}% -\EndIndex{Option}{headnosepline}% -\EndIndex{Option}{footsepline}% -\EndIndex{Option}{footnosepline}% - - -\begin{Declaration} - \Option{chapterprefix}\\ - \Option{nochapterprefix} -\end{Declaration}% -\BeginIndex{Option}{chapterprefix}% -\BeginIndex{Option}{nochapterprefix}% -\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% -Bei den Standardklassen \Class{book} und \Class{report} werden -Kapitelüberschriften% -\Index{Kapitel>Ueberschrift=Überschrift} -in der Form ausgegeben, dass zunächst in einer Zeile -»Kapitel«\footnote{Bei Verwendung einer anderen Sprache als Deutsch - wird »Kapitel« selbstverständlich in der jeweiligen - Sprache gesetzt.} % -gefolgt von der Kapitelnummer steht. Erst ab der nächsten Zeile wird -dann die Überschrift in linksbündigem Flattersatz ausgegeben. Bei -{\KOMAScript} kann dieses Verhalten mit der Klassenoption -\Option{chapterprefix} ebenfalls erreicht werden. Voreingestellt ist -jedoch das Verhalten der Option \Option{nochapterprefix}. Die -Optionen wirken sich außerdem auf das Aussehen der automatischen -Kolumnentitel für Kapitel aus (siehe -\autoref{sec:maincls.pageStyle}). -% -\EndIndex{Option}{chapterprefix}% -\EndIndex{Option}{nochapterprefix}% - - -\begin{Declaration} - \Option{appendixprefix}\\ - \Option{noappendixprefix} -\end{Declaration}% -\BeginIndex{Option}{appendixprefix}% -\BeginIndex{Option}{noappendixprefix}% -\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% -Zuweilen kommt es vor, dass man die Kapitelüberschriften im -Hauptteil durchaus in der einfachen Form von -\Option{nochapterprefix} setzten möchte. Gleichzeitig sollen die -Überschriften im Anhang\Index{Anhang} jedoch davon abweichend mit -einer Präfixzeile, »Anhang« gefolgt vom Buchstaben des Anhangs, -versehen werden. Dies ist mit der Klassenoption -\Option{appendixprefix} möglich. Da sich jedoch dadurch ein -inkonsistentes Layout ergibt, rate ich von der Verwendung ab. - -Lediglich aus Gründen der symmetrischen Vollständigkeit gibt es auch -die Umkehrungsoption \Option{noappendixprefix}. Mir ist jedoch keine -sinnvolle Anwendung dieser Option bekannt. -% -\EndIndex{Option}{appendixprefix}% -\EndIndex{Option}{noappendixprefix}% - - -\begin{Declaration} - \Option{onelinecaption}\\ - \Option{noonelinecaption} -\end{Declaration} -\BeginIndex{Option}{onelinecaption}% -\BeginIndex{Option}{noonelinecaption}% -Bei den Standardklassen wird generell zwischen einzeiligen und -mehrzeiligen Über- oder Unterschriften von Tabellen und Abbildungen -unterschieden. Einzeilige Texte werden dabei grundsätzlich zentriert, -während mehrzeilige Texte linksbündig im Blocksatz gesetzt -werden. Dieses Verhalten, das auch bei \KOMAScript{} voreingestellt -ist, entspricht der Option \Option{onelinecaption}. Bei Verwendung der -Option \Option{noonelinecaption} findet hingegen keine -Sonderbehandlung für einzeilige Texte statt. - -\begin{Explain} - Der Verzicht auf die Sonderbehandlung wird auch gerne als Lösung für - einen weiteren Nebeneffekt beschrieben, der manchmal höchst - erwünscht ist. Werden Fußnoten innerhalb von \Macro{caption} - gesetzt, so werden diese in der Regel falsch nummeriert. Dies liegt - daran, dass bereits beim Ausmessen, ob ein einzeiliger Text - vorliegt, der Fußnotenzähler für jede Fußnote einmal erhöht - wird. Bei Verwendung der Option \Option{noonelinecaption} findet - dieses Ausmessen jedoch gar nicht erst statt. Die Nummern der - Fußnoten sind damit korrekt. - - Bei \KOMAScript{} ist ab Version~2.8q jedoch ohnehin eine Umgehung - dieses Problems eingebaut. Damit kann man Fußnoten auch mit - \Option{onelinecaption} in Über- oder Unterschriften von Tabellen - und Abbildungen verwenden. Allerdings sollte bei Verwendung von - Fußnoten in Gleitumgebungen der Inhalt der Gleitumgebung immer in - eine \Environment{minipage}-Umgebung verpackt werden. So bleiben - Gleitumgebung und Fußnote garantiert zusammen.% - \iffalse - % Umbruchkorrekturtext - Persönlich halte ich die Verwendung von Fußnoten in Gleitumgebungen, also - von Verweisen innerhalb von Verweisen, für stilistisch fragwürdig.% - \fi -\end{Explain} -% -\EndIndex{Option}{onelinecaption}% -\EndIndex{Option}{noonelinecaption}% - -\subsection{Optionen für die Schriftwahl} -\label{sec:maincls.fontOptions} - -Schriftoptionen wirken sich auf die Größe der Grundschrift -oder der Schrift einzelner Teile aus. -% Theoretisch wären auch -% Optionen, die sich auf die Schriftart auswirken, Schriftoptionen. -% Solche Optionen gibt es bei {\KOMAScript} derzeit jedoch nicht. - -\begin{Declaration} - \Option{10pt}\\% - \Option{11pt}\\% - \Option{12pt}\\ - \Option{\Var{X}pt} -\end{Declaration}% -\BeginIndex{Option}{10pt}% -\BeginIndex{Option}{11pt}% -\BeginIndex{Option}{12pt}% -\BeginIndex{Option}{\Var{X}pt}% -Die Optionen \Option{10pt}, \Option{11pt} und \Option{12pt} -entsprechen den Standardoptionen. Im Gegensatz zu den Standardklassen -kann bei {\KOMAScript} jedoch auch eine andere -Schriftgröße\Index[indexmain]{Schriftgroesse=Schriftgröße} eingestellt -werden. Da bei {\LaTeX} jedoch nur Klassenoptionsdateien für -10\Unit{pt}, 11\Unit{pt} und 12\Unit{pt} mitgeliefert werden und -{\KOMAScript} keine entsprechenden Dateien bereit stellt, müssen Sie -selbst für diese Dateien sorgen. Das Paket \Package{extsizes} (siehe -\cite{package:extsizes}) stellt beispielsweise mit \File{size14.clo} -solche Dateien zur Verfügung. Diese können bei \KOMAScript{} direkt -verwendet werden, indem die entsprechende Größe, beispielsweise -\Option{14pt}\IndexOption{14pt}, als Klassenoption angegeben wird. Bei -sehr großen Schriften kann es jedoch zu einem arithmetischen Überlauf -bei der Satzspiegelberechnung im \Package{typearea}-Paket kommen. -% -\EndIndex{Option}{10pt}% -\EndIndex{Option}{11pt}% -\EndIndex{Option}{12pt}% -\EndIndex{Option}{\Var{X}pt}% - - -\begin{Declaration} - \Option{smallheadings}\\ - \Option{normalheadings}\\ - \Option{bigheadings} -\end{Declaration}% -\BeginIndex{Option}{smallheadings}% -\BeginIndex{Option}{normalheadings}% -\BeginIndex{Option}{bigheadings}% -Die Überschriften\index{Ueberschriften=Überschriften}\index{Gliederung}% -werden sowohl bei den Standardklassen als auch bei {\KOMAScript} normalerweise -recht groß gesetzt. Dies gefällt nicht jedem und wirkt insbesondere bei -kleinen Papiergrößen oft störend. Daher stehen bei {\KOMAScript} neben den mit -der Option \Option{bigheadings} standardmäßig sehr groß voreingestellen -Überschriften die beiden Optionen \Option{normalheadings} und -\Option{smallheadings} zur Ver"-fügung, mit denen man insgesamt kleinere -Überschriften erhält. Die aus den Optionen resultierenden Schriftgrößen sind -für die Überschriften der Klassen \Class{scrbook} und \Class{scrreprt} -\autoref{tab:maincls.structureElementsFont}, -\autopageref{tab:maincls.structureElementsFont} zu entnehmen. Bei -\Class{scrartcl} werden generell etwas kleinere Überschriften verwendet. - -\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Die Abstände vor und nach -Kapitelüberschriften werden von diesen Optionen ebenfalls beeinflusst. Auf -Kapitelüberschriften wirken sich außerdem die Layoutoptionen -\Option{chapterprefix} und \Option{nochapterprefix} sowie im Anhang -\Option{appendixprefix} und \Option{noappendixprefix} aus, die in -\autoref{sec:maincls.layoutOptions}, -\autopageref{desc:maincls.option.chapterprefix} -% und \autopageref{desc:maincls.option.appendixprefix} % <- gleiche Seite -beschrieben worden sind. -% -\EndIndex{Option}{smallheadings}% -\EndIndex{Option}{normalheadings}% -\EndIndex{Option}{bigheadings}% - - -\subsection{Optionen für das Inhaltsverzeichnis} -\label{sec:maincls.tocOptions} - -Bei {\KOMAScript} gibt es mehrere Optionen, die sich auf den Inhalt -des Inhaltsverzeichnisses\Index[indexmain]{Inhaltsverzeichnis} -auswirken. Die Form des Inhaltsverzeichnisses ist zwar fest, es kann -jedoch durch Optionen zwischen unterschiedlichen Varianten gewählt -werden. - -\begin{Explain}% -\begin{Declaration} - \Option{liststotoc}\\ - \Option{idxtotoc}\\ - \Option{bibtotoc}\\ - \Option{bibtotocnumbered}\\ - \Option{liststotocnumbered} -\end{Declaration}% -\BeginIndex{Option}{liststotoc}% -\BeginIndex{Option}{idxtotoc}% -\BeginIndex{Option}{bibtotoc}% -\BeginIndex{Option}{bibtotocnumbered}% -\BeginIndex{Option}{liststotocnumbered}% - Normalerweise erscheinen Tabellen-\Index{Tabellen>Verzeichnis der} und - Abbildungsverzeichnis\Index{Abbildungen>Verzeichnis der}, - Index\Index{Index} und - Literaturverzeichnis\Index{Literaturverzeichnis} nicht im - Inhaltsverzeichnis. Im klassischen Buchdruck wird auf entsprechende - Einträge bewusst verzichtet. Das ist unter anderem deshalb so, weil - stillschweigend von einer ganz bestimmten Verteilung dieser - Verzeichnisse ausgegangen wird, wenn die entsprechenden Teile - überhaupt verwendet werden: - \begin{itemize} - \item Inhaltsverzeichnis nach der Titelei, - \item Tabellen- und Abbildungsverzeichnis nach dem - Inhaltsverzeichnis, - \item Index ganz am Ende, - \item Literaturverzeichnis vor dem Index. - \end{itemize} - Bücher, die all diese Verzeichnisse aufweisen, sind außerdem häufig - mit diesen praktischen Bändern gebunden, die man an den - entsprechenden Stellen ins Buch legen kann, so dass besagte - Verzeichnisse höchstens einmal gesucht werden müssen.\par -\end{Explain} - -Neuerdings ist es üblich geworden, dass Tabellen- und -Abbildungsverzeichnis sowie das Literaturverzeichnis, seltener der -Index im Inhaltsverzeichnis zu finden sind. Dies hat sicher auch -mit der neuen Mode zu tun, Abbildungs- und Tabellenverzeichnis ans -Buchende zu stellen. Beide Verzeichnisse haben von Aufbau und -Intention eine deutliche Ähnlichkeit mit dem Inhaltsverzeichnis. -Daher betrachte ich die Entwicklung skeptisch. Da es keinen Sinn -hat, nur das Tabellen- oder nur das Abbildungsverzeichnis ohne -das jeweils andere ins Inhaltsverzeichnis aufzunehmen, gibt es -nur eine Option \Option{liststotoc}, mit der beide Verzeichnisse -gemeinsam ins Inhaltsverzeichnis aufgenommen werden. Dabei werden -auch Verzeichnisse berücksichtigt, die mit Hilfe des -\Package{float}-Pakets\IndexPackage{float} ab Version~1.2e -erstellt werden (siehe \cite{package:float}). Als Verzeichnisse, -die den Inhalt anderer Abschnitte des Werks auf"|führen, erhalten -Tabellen"~, Abbildungs- und die mit dem \Package{float}-Paket -erzeugten Verzeichnisse grundsätzlich keine Kapitelnummer. - -Der Index erhält mit der Option \Option{idxtotoc} einen Eintrag ins -Inhaltsverzeichnis. Da der Index ebenfalls nur Verweise auf den Inhalt -anderer Abschnitte enthält, wird auch er grundsätzlich nicht -nummeriert. - -Das Literaturverzeichnis stellt eine etwas andere Art von Verzeichnis -dar. Hier wird nicht der Inhalt des vorliegenden Werks aufgelistet, -sondern auf externe Inhalte verwiesen. Mit dieser Begründung könnte -man argumentieren, dass das Literaturverzeichnis ein eigenes Kapitel -bzw. einen eigenen Abschnitt darstellt, und somit eine Nummer -verdient. Die Option \Option{bibtotocnumbered} führt genau dazu, -einschließlich des dann fälligen Eintrags in das Inhaltsverzeichnis. -Ich selbst bin der Meinung, dass bei dieser Argumentation auch ein -klassisches, kommentiertes Quellenverzeichnis ein eigenes Kapitel -wäre. Außerdem ist das Literaturverzeichnis letztlich nichts, was man -selbst geschrieben hat. Deshalb verdient es allenfalls einen nicht -nummerierten Eintrag ins Inhaltsverzeichnis, was mit der Option -\Option{bibtotoc} erreicht wird. - -Nachdem\ChangedAt{v2.8q}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} ich bereits -der Option \Option{liststotoc} recht skeptisch und der Option -\Option{bibtotocnumbered} ablehnend gegenüberstehe, sollte es nicht -wundern, dass ich die Option \Option{liststotocnumbered} nur -zähneknirschend implementiert habe. Als nächstes will noch jemand, -dass das Inhaltsverzeichnis nummeriert und im Inhaltsverzeichnis -aufgeführt wird. Wer daher eine Erklärung zur Option -\Option{liststotoc} erwartet, sucht in dieser Anleitung vergeblich -danach. Eine entsprechende Option für das Stichwortverzeichnis wäre -ebenfalls derart unsinnig, dass ich ihre Implementierung bisher -standhaft abgelehnt habe. -% -\EndIndex{Option}{liststotoc}% -\EndIndex{Option}{idxtotoc}% -\EndIndex{Option}{bibtotoc}% -\EndIndex{Option}{bibtotocnumbered}% -\EndIndex{Option}{liststotocnumbered}% - -\begin{Declaration} - \Option{tocindent}\\ - \Option{tocleft} -\end{Declaration}% -\BeginIndex{Option}{tocindent}% -\BeginIndex{Option}{tocleft}% -Normalerweise\ChangedAt{v2.8q}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} wird das -Inhaltsverzeichnis\Index{Inhaltsverzeichnis} so formatiert, dass die -Gliederungsebenen unterschiedlich weit eingezogen werden. Dabei wird -für die Gliederungsnummer jeder Ebene ein Raum fester Breite -vorgesehen, in dem die Nummer linksbündig gesetzt wird. Dies -entspricht der Verwendung der Option \Option{tocindent}. - -Werden sehr viele Gliederungspunkte verwendet, so werden die -Gliederungsnummern sehr breit. Damit reicht der vorgesehene Platz -nicht aus. In \cite{DANTE:FAQ} wird für solche Fälle vorgeschlagen, -die Erzeugung des Inhaltsverzeichnisses umzudefinieren. \KOMAScript{} -bietet jedoch eine alternative Formatierung an, bei der das Problem -nicht auf"|tritt. Bei Verwendung der Option \Option{tocleft} werden die -unterschiedlichen Gliederungsebenen nicht unterschiedlich weit -eingezogen. Stattdessen wird eine tabellenartige Form gewählt, in der -alle Gliederungsnummern und alle Gliederungstexte jeweils in einer -Spalte linksbündig untereinander stehen. Der für die -Gliederungsnummern benötigte Platz wird dabei automatisch ermittelt. - -\begin{Explain} - Damit der Platz, der für die Gliederungsnummern benötigt wird, bei - Option \Option{tocleft} automatisch ermittelt werden kann, müssen - einige Makros umdefiniert werden. Es ist zwar unwahrscheinlich, aber - nicht ausgeschlossen, dass dies zu Problemen bei Verwendung - anderer Pakete führt. Sollten Sie diesen Verdacht haben, - probieren Sie alternativ die Option \Option{tocindent}, die ohne - solche Umdefinierungen auskommt. Bei Verwendung von Paketen, die - ebenfalls in die Formatierung des Inhaltsverzeichnisses eingreifen, - ist außerdem damit zu rechnen, dass die Optionen \Option{tocleft} - und \Option{tocindent} nicht funktionieren. Sicherheitshalber sollte - man bei Verwendung solcher Pakete keine der beiden Optionen als - globale Optionen, also nicht als Klassenoptionen, angeben. - - Bei Option \Option{tocleft} erfolgt die Ermittlung der für die - Gliederungsnummern benötigten Breite während der Ausgabe des - Inhaltsverzeichnisses. Nach einer Änderung, die sich auf das - Inhaltsverzeichnis auswirkt, werden maximal drei \LaTeX-Durchläufe - benötigt, bis das Inhaltsverzeichnis mit korrektem Wert dargestellt - wird. -\end{Explain} -% -\EndIndex{Option}{tocindent}% -\EndIndex{Option}{tocleft}% - - -\subsection{Optionen für die Verzeichnisse der Gleitumgebungen} -\label{sec:maincls.listsOptions} - -Die bekanntesten Verzeichnisse von Gleitumgebungen sind das Abbildungs- und -das Tabellenverzeichnis. Beispielsweise mit Hilfe des -\Package{float}-Pakets\IndexPackage{float} (siehe \cite{package:float}) können -jedoch eigene Gleitumgebungen erstellt werden, die ebenfalls in Verzeichnissen -erfasst werden. - -\begin{Explain} - Ob sich \KOMAScript-Optionen auf Verzeichnisse auswirken, die mit Hilfe von - anderen Paketen erstellt werden, hängt maßgeblich von diesen Paketen ab. Bei - den Verzeichnissen des \Package{float}-Pakets\IndexPackage{float} ist dies - normalerweise der Fall. - - Neben den hier angegebenen Optionen gibt es weitere, die sich zwar - auf die Verzeichnisse der Gleitumgebungen, nicht jedoch auf deren - Formatierung oder Inhalt auswirken. Stattdessen haben sie - Auswirkungen auf den Inhalt des Inhaltsverzeichnisses. Deshalb - finden sich die entsprechenden Erläuterungen in - \autoref{sec:maincls.tocOptions}. -\end{Explain} - -\begin{Declaration} - \Option{listsindent}\\ - \Option{listsleft} -\end{Declaration}% -\BeginIndex{Option}{listsindent}% -\BeginIndex{Option}{listsleft}% -Normalerweise\ChangedAt{v2.8q}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} werden die -Verzeichnisse\Index{Abbildungen>Verzeichnis der}\Index{Tabellen>Verzeichnis - der} der Gleitumgebungen so formatiert, dass für die Nummer ein Raum fester -Breite verwendet wird. Dies entspricht der Verwendung der Option -\Option{listsindent}. - -Werden die Nummern sehr breit, weil beispielsweise sehr viele Tabellen -verwendet werden, so reicht der vorgesehene Platz irgendwann nicht mehr aus. -Vergleichbar zur Option \Option{tocleft} bietet \KOMAScript{} daher die Option -\Option{listsleft}. Dabei wird die Breite der Nummern automatisch ermittelt -und der Platz entsprechend angepasst. Bezüglich der Nebenwirkungen und -Funktionsweise gilt, was in \autoref{sec:maincls.tocOptions}, -\autopageref{desc:maincls.option.tocleft} für die Option \Option{tocleft} -erklärt wurde. Es sei an dieser Stelle jedoch nochmals darauf hingewiesen, -dass mit der Option \Option{listsleft} mehrere \LaTeX-Durchläufe benötigt -werden, bis die Verzeichnisse ihre endgültige Form erhalten haben. -% -\EndIndex{Option}{listsindent}% -\EndIndex{Option}{listsleft}% - -\begin{Declaration} - \Option{chapteratlists}\\ - \XOption{chapteratlists}=\PName{Wert} -\end{Declaration}% -\BeginIndex{Option}{chapteratlists}% -\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% -Normalerweise\ChangedAt{v2.96a}{\Class{scrbook}\and \Class{scrreprt}} fügt -jeder mit \Macro{chapter} erzeugte Kapiteleintrag einen vertikalen Abstand in -die Verzeichnisse der Gleitumgebungen ein. Seit Version~2.96a gilt dies auch -für die Anweisung \Macro{addchap}, wenn nicht eine Kompatibilitätseinstellung -zu einer früheren Version gewählt wurde (siehe Option \Option{version} in -\autoref{sec:maincls.compatibilityOptions}, -\autopageref{desc:maincls.option.version}). - -Außerdem kann nun mit der Option \Option{chapteratlists} der Abstand verändert -werden. Dazu gibt man als \PName{Wert} den gewünschten Abstand -an. Voreingestellt sind 10\,pt. Gibt man als Wert \PValue{entry} an oder -verwendet man die Form ohne Angabe eines Wertes, so wird statt des Abstandes -der Kapiteleintrag selbst in die Verzeichnisse eingetragen. - -Diese Option kann per \Macro{KOMAoptions}\Parameter{chapteratlists} oder -\Macro{KOMAoptions}\Parameter{chapteratlists=\PName{Wert}} auch innerhalb des -Dokuments verändert werden. Sie hat dann Auswirkungen ab der nächsten -Überschrift. Änderungen der Option werden jedoch erst nach dem übernächsten -\LaTeX-Lauf in den Verzeichnissen sichtbar. -\EndIndex{Option}{chapteratlists}% - - -\subsection{Optionen für die Formatierung} -\label{sec:maincls.formattingOptions} - -Formatierungsoptionen sind alle Optionen, welche die Form oder -Formatierung einer Ausgabe beeinflussen und nicht in einen anderen -Abschnitt eingeordnet werden können. Es sind also sozusagen die -\emph{sonstigen Optionen}. - -\begin{Declaration} - \Option{abstracton}\\ - \Option{abstractoff} -\end{Declaration}% -\BeginIndex{Option}{abstracton}% -\BeginIndex{Option}{abstractoff}% -\OnlyAt{\Class{scrreprt}\and\Class{scrartcl}}% -Bei den Standardklassen setzt die \Environment{abstract}-Umgebung -noch den zentrierten Titel »\abstractname« vor die -Zusammenfassung\Index[indexmain]{Zusammenfassung}. Früher war dies -durchaus üblich. Inzwischen sind wir durch das Zeitunglesen darin -geübt, einen entsprechend hervorgehobenen Text am Anfang eines -Artikels oder Berichts als Zusammenfassung zu erkennen. Dies gilt -umso mehr, wenn dieser Text noch vor dem Inhaltsverzeichnis steht. -Zudem verwundert es, wenn ausgerechnet diese Überschrift klein und -zentriert ist. {\KOMAScript} bietet mit den Optionen -\Option{abstracton} und \Option{abstractoff} die Möglichkeit, die -Überschrift über der Zusammenfassung ein- oder auszuschalten. - -\begin{Explain} - Bei Büchern wird in der Regel eine andere Art der Zusammenfassung - verwendet. Dort setzt man ein entsprechendes Kapitel an den Anfang - oder Ende des Werks. Oft wird diese Zusammenfassung entweder mit - der Einleitung oder einem weiteren Ausblick verknüpft. Daher gibt es - bei \Class{scrbook} überhaupt keine \Environment{abstract}-Umgebung. - Bei Berichten im weiteren Sinne, etwa einer Studien- oder - Diplomarbeit, ist ebenfalls eine Zusammenfassung in dieser Form zu - empfehlen.\par -\end{Explain} -% -\EndIndex{Option}{abstracton}% -\EndIndex{Option}{abstractoff}% - - -\begin{Explain}% -\begin{Declaration} - \Option{pointednumbers}\\ - \Option{pointlessnumbers} -\end{Declaration}% -\BeginIndex{Option}{pointednumbers}% -\BeginIndex{Option}{pointlessnumbers}% - Nach {\small DUDEN} steht in Gliederungen\Index{Gliederung}, in - denen ausschließlich arabische Ziffern für die - Nummerierung\Index{Nummerierung} verwendet werden, am Ende der - Gliederungsnummern kein abschließender Punkt (siehe - \cite[R\,3]{DUDEN}). Wird hingegen innerhalb der Gliederung auch mit - römischen Zahlen oder Groß- oder Kleinbuchstaben gearbeitet, so - steht am Ende aller Gliederungsnummer ein abschließender Punkt - (siehe \cite[R\,4]{DUDEN}). In {\KOMAScript} ist ein Automatismus - eingebaut, der diese etwas komplexe Regel zu erfüllen versucht. Der - Automatismus wirkt sich so aus, dass normalerweise bei Verwendung - des Gliederungsbefehls \Macro{part} oder eines Anhangs - (\Macro{appendix}) auf Gliederungsnummer mit abschließendem Punkt - umgeschaltet wird. Diese Information wird in der \File{aux}-Datei - gespeichert und wirkt sich dann beim nächsten \LaTeX-Lauf auf das - gesamte Dokument aus.\par -\end{Explain} - -Manchmal versagt der Automatismus zum Setzen oder Weglassen des -abschließenden Punktes in der Gliederungsnummer oder andere Sprachen -sehen andere Regeln vor. Deshalb ist es mit der Option -\Option{pointednumbers} möglich, den Punkt manuell einzuschalten oder -mit \Option{pointlessnumbers} zu verbieten. - -Es ist zu beachten, dass der Automatismus immer erst für den nächsten -\LaTeX-Lauf die Verwendung des abschließenden Punktes ein- oder -ausschaltet. Bevor also versucht wird, die korrekte Darstellung über -Verwendung einer der Optionen zu erzwingen, sollte grundsätzlich ein -weiterer \LaTeX-Lauf ohne Dokumentänderung durchgeführt werden. - -Richtig, die korrekten Namen für diese Optionen wären beispielsweise -\Option{dottednumbers}\IndexOption{dottednumbers} und -\Option{dotlessnumbers}\IndexOption{dotlessnumbers}. Die Bedeutung der statt -dessen gewählten Namen war mir vor Jahren bei der Implementierung nicht klar. -% -\EndIndex{Option}{pointednumbers}% -\EndIndex{Option}{pointlessnumbers}% - - -\begin{Declaration} - \Option{leqno} -\end{Declaration}% -\BeginIndex{Option}{leqno}% -Gleichungen\Index{Gleichungen>Nummern} werden normalerweise auf der -rechten Seite nummeriert. Mit Hilfe der Standardoption -\Option{leqno} wird die Standardoptionsdatei \File{leqno.clo} -geladen. Dadurch erfolgt die Nummerierung von Gleichungen links. -% -\EndIndex{Option}{leqno}% - - -\begin{Declaration} - \Option{fleqn} -\end{Declaration}% -\BeginIndex{Option}{fleqn}% -Gleichungen\Index{Gleichungen>Ausrichtung} werden normalerweise horizontal -zentriert ausgegeben. Mit Hilfe der Standardoption \Option{fleqn} wird die -Standardoptionsdatei \File{fleqn.clo} geladen. Dadurch erfolgt die Ausgabe von -Gleichungen linksbündig. -% -\EndIndex{Option}{fleqn}% - - -\begin{Declaration} - \Option{tablecaptionbelow}\\ - \Option{tablecaptionabove} -\end{Declaration}% -\BeginIndex{Option}{tablecaptionbelow}% -\BeginIndex{Option}{tablecaptionabove}% -Wie in \autoref{sec:maincls.floats}, \autopageref{desc:maincls.macro.caption} -erläutert wird, verhält sich \Macro{caption}\IndexCmd{caption} bei -Abbildungen\Index{Abbildungen} immer wie -\Macro{captionbelow}\IndexCmd{captionbelow}. Bei Tabellen ist das Verhalten -hingegen von diesen beiden Optionen abhängig. In der Voreinstellung, -\Option{tablecaptionbelow}, verhält sich \Macro{caption} auch bei Tabellen wie -\Macro{captionbelow}. Mit der Option \Option{tablecaptionabove} verhält sich -\Macro{caption} jedoch wie \Macro{captionabove}\IndexCmd{captionabove}. - -Es sei auch hier explizit darauf hingewiesen, dass die Optionen keinen -Einfluss darauf haben, ob mit \Macro{caption} Tabellenüberschriften oder -Tabellenunterschriften gesetzt werden. Sie haben lediglich einen Einfluss -darauf, ob der entsprechende Text als Tabellenüberschrift oder -Tabellenunterschrift formatiert wird. Ob der Text über oder unter der Tabelle -steht, wird jedoch durch die Position der \Macro{caption}-Anweisung -innerhalb der \Environment{table}-Umgebung bestimmt. - -Bitte\OnlyAt{\Package{float}}\IndexPackage{float} beachten Sie, dass bei -Verwendung des \Package{float}-Pakets die Optionen \Option{tablecaptionbelow} -und \Option{tablecaptionabove} nicht mehr funktionieren, sobald Sie -\Macro{restylefloat} auf Tabellen anwenden. Näheres zum \Package{float}-Paket -und \Macro{restylefloat} entnehmen Sie bitte \cite{package:float}. Die -zusätzliche Unterstützung, die \KOMAScript{} bei Verwendung des -\Package{float}-Pakets bietet, finden Sie bei der Erklärung zu -\PValue{komaabove} in \autoref{sec:maincls.floats}, -\autopageref{desc:maincls.floatstyle.komaabove}. -% -\EndIndex{Option}{tablecaptionbelow}% -\EndIndex{Option}{tablecaptionabove}% - - -\begin{Explain}% -\begin{Declaration} - \Option{origlongtable} -\end{Declaration}% -\BeginIndex{Option}{origlongtable}% - Beim Paket\OnlyAt{\Package{longtable}} - \Package{longtable}\IndexPackage{longtable} (siehe \cite{package:longtable}) - werden Tabellenüberschriften intern mit dem Befehl \Macro{LT@makecaption} - gesetzt. Damit diese Tabellenüberschriften zu denen normaler Tabellen - passen, definieren die \KOMAScript-Klassen diese Anweisung normalerweise um. - Siehe hierzu auch \autoref{sec:maincls.floats}, - \autopageref{desc:maincls.macro.caption.longtable}. Diese Umdefinierung - erfolgt mit Hilfe von \Macro{AfterPackage} unmittelbar nach dem Laden von - \Package{longtable}. Ist das Paket \Package{caption2}\IndexPackage{caption2} - (siehe \cite{package:caption}) geladen, unterbleibt die Umdefinierung in - \KOMAScript, um \Package{caption2} nicht in die Quere zu kommen. -\end{Explain} -Falls die Tabellenüberschriften des \Package{longtable}-Pakets von den -\KOMAScript-Klassen nicht umdefiniert werden sollen, kann die Option -\Option{origlongtable} gesetzt werden. -% -\EndIndex{Option}{origlongtable}% - - -\begin{Declaration} - \Option{openbib} -\end{Declaration}% -\BeginIndex{Option}{openbib}% -Die Standardoption \Option{openbib} schaltet auf eine alternative -Formatierung des Literaturverzeichnisses\Index{Literaturverzeichnis} -um. Dabei wird zum einen die erste Zeile der Literaturangabe, die -normalerweise den Autor enthält, weniger stark eingerückt. Zum anderen -wird der Befehl \Macro{newblock} so umdefiniert, dass er einen Absatz -einfügt. Ohne die Option fügt \Macro{newblock} lediglich einen -dehnbaren horizontalen Abstand ein. -% -\EndIndex{Option}{openbib} - - -\begin{Declaration} - \Option{draft}\\ - \Option{final} -\end{Declaration}% -\BeginIndex{Option}{draft}% -\BeginIndex{Option}{final}% -Die beiden Standardoptionen \Option{draft} und \Option{final} werden -normalerweise verwendet, um zwischen Dokumenten im -Entwurfsstadium\Index{Entwurf} und fertigen -Dokumenten\Index{Endfassung} zu unterscheiden. Insbesondere werden mit -der Option \Option{draft} kleine schwarze Kästchen aktiviert, die im -Falle von überlangen Zeilen am Zeilenende ausgegeben werden. Diese -Kästchen erleichtern dem ungeübten Auge, Absätze ausfindig zu machen, -die manueller Nachbearbeitung bedürfen. Demgegenüber erscheinen mit -der Option \Option{final} keine solchen Kästchen. - -Die beiden Optionen werden übrigens auch von anderen Paketen ausgewertet -und beeinflussen deren Eigenschaften. So -verzichtet das Paket \Package{graphics}\IndexPackage{graphics} -oder \Package{graphicx}\IndexPackage{graphicx} bei Verwendung der -Option \Option{draft} auf die Ausgabe der Grafiken. Stattdessen -werden lediglich Rahmen in der entsprechenden Größe und die -Dateinamen der Grafiken ausgegeben (siehe -\cite{package:graphics}). -% -\EndIndex{Option}{draft}% -\EndIndex{Option}{final}% - - -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Generelle Dokumenteigenschaften} -\label{sec:maincls.general} - -Einige Dokumenteigenschaften sind keinem speziellen Abschnitt des -Dokuments wie der Titelei, dem Text oder dem Literaturverzeichnis -zuzuordnen, sondern betreffen das Dokument insgesamt. Ein Teil dieser -Eigenschaften wurde bereits im \autoref{sec:maincls.options} -erläutert. - -\subsection{Änderung der verwendeten Schriftart} -\label{sec:maincls.font} - -\BeginIndex{}{Schriftart}\BeginIndex{}{Schriftgroesse=Schriftgröße}% -\begin{Explain} -\KOMAScript{} verwendet für verschiedene Elemente des Textes zum -Zwecke der Hervorhebung keine fest eingestellten Schriften und -Schriftauszeichungen. Stattdessen existieren Schriftvariablen in Form -von Anweisungen, in denen die Befehle zur Schriftumschaltung abgelegt -sind. In früheren Versionen von \KOMAScript{} musste der Anwender zur -Änderung der Auszeichnung eines Elements die entsprechende Anweisung -mit Hilfe von \Macro{renewcommand} umdefinieren. Manchmal war es auch -nicht einfach, aus dem Namen des Elements auf die zugehörige Anweisung -zu schließen. Außerdem musste zur Umdefinierung häufig erst einmal -festgestellt werden, wie die ursprüngliche Definition lautete. - -Genau genommen waren all diese Erschwernisse durchaus beabsichtigt. -Denn eigentlich sollte es sich dabei nicht um eine -Benutzerschnittstelle, sondern um eine Schnittstelle für Paketautoren -handeln, die eigene Klassen oder Pakete um \KOMAScript{} herum bauen. -Über die Jahre hat sich aber gezeigt, dass die Schnittstelle trotzdem -hauptsächlich von Anwendern verwendet wird. Also wurde eine neue, -einfachere Schnittstelle geschaffen. Dennoch rät der Autor dem -typografischen Laien ausdrücklich davon ab, Schriftgrößen und andere --auszeichnungen nach eigenem Geschmack zu ändern. Wissen und -Fingerspitzengefühl sind Grundvoraussetzungen für die Auswahl und die -Mischung unterschiedlicher Schriftgrößen, "~attribute und "~familien. -\end{Explain} - - -\begin{Declaration} - \Macro{setkomafont}\Parameter{Element}\Parameter{Befehle}\\ - \Macro{addtokomafont}\Parameter{Element}\Parameter{Befehle}\\ - \Macro{usekomafont}\Parameter{Element} -\end{Declaration}% -\BeginIndex{Cmd}{setkomafont}% -\BeginIndex{Cmd}{addtokomafont}% -\BeginIndex{Cmd}{usekomafont}% -Mit\ChangedAt{v2.8p}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} -Hilfe der beiden Anweisungen \Macro{setkomafont} und -\Macro{addtokomafont} ist es möglich, die \PName{Befehle} festzulegen, -mit denen die Schrift eines bestimmten \PName{Element}s -umgeschaltet wird. Theoretisch könnten als \PName{Befehle} alle -möglichen Anweisungen einschließlich Textausgaben verwendet werden. -Sie sollten sich jedoch unbedingt auf solche Anweisungen beschränken, -mit denen wirklich nur ein Schriftattribut umgeschaltet wird. In der -Regel werden dies die Befehle \Macro{normalfont}, \Macro{rmfamily}, -\Macro{sffamily}, \Macro{ttfamily}, \Macro{mdseries}, -\Macro{bfseries}, \Macro{upshape}, \Macro{itshape}, \Macro{slshape}, -\Macro{scshape} sowie die Größenbefehle \Macro{Huge}, \Macro{huge}, -\Macro{LARGE} etc. sein. Die Erklärung zu diesen Befehlen entnehmen -Sie bitte \cite{l2kurz}, \cite{latex:usrguide} oder -\cite{latex:fntguide}. Auch Farbumschaltungen wie \Macro{normalcolor} -sind möglich (siehe \cite{package:graphics}). Das Verhalten bei -Verwendung anderer Anweisungen, inbesondere solcher, die zu -Umdefinierungen führen oder Ausgaben tätigen, ist nicht definiert. -Seltsames Verhalten ist möglich und stellt keinen Fehler dar. - -Mit \Macro{setkomafont} wird die Schriftumschaltung eines Elements mit einer -völlig neuen Definition versehen. Demgegenüber wird mit \Macro{addtokomafont} -die existierende Definition lediglich erweitert. Es wird empfohlen, beide -Anweisungen nicht innerhalb des Dokuments zu verwenden. Beispiele für die -Verwendung entnehmen Sie bitte den Abschnitten zu den jeweiligen Elementen. -Namen und Bedeutung der einzelnen Elemente sind in -\autoref{tab:maincls.elementsWithoutText} aufgelistet. Die Voreinstellungen -sind den jeweiligen Abschnitten zu entnehmen. - -Mit der Anweisung \Macro{usekomafont} kann die aktuelle Schriftart auf -diejenige umgeschaltet werden, die für das angegebene \PName{Element} -definiert ist. - -\begin{Example} - Angenommen, Sie wollen, dass für das Element - \FontElement{captionlabel} dieselbe Schriftart wie - für das Element \FontElement{descriptionlabel} verwendet wird. Das - erreichen Sie einfach mit: -\begin{lstlisting} - \setkomafont{captionlabel}{% - \usekomafont{descriptionlabel}} -\end{lstlisting} - Weitere Beispiele finden Sie in den Abschnitten zu den jeweiligen - Elementen. -\end{Example} - -\begin{desctable} - \caption{Elemente, deren Schrift bei \KOMAScript{} mit - \Macro{setkomafont} und \Macro{addtokomafont} verändert werden - kann\label{tab:maincls.elementsWithoutText}}\\ - \Endfirsthead - \caption[]{Elemente, deren Schrift verändert werden kann - (\emph{Fortsetzung})}\\ - \Endhead% - \standardfoot% - \feentry{caption}{Text einer Abbildungs- oder Tabellenunter- oder - "~überschrift}% - \feentry{captionlabel}{% - Label einer Abbildungs- oder Tabellenunter- oder "~überschrift; Anwendung - erfolgt nach dem Element \FontElement{caption}}% - \feentry{chapter}{% - Überschrift der Ebene \Macro{chapter}}% - \feentry{chapterentry}{% - Inhaltsverzeichniseintrag der Ebene \Macro{chapter}}% - \feentry{chapterentrypagenumber}{% - Seitenzahl des Inhaltsverzeichniseintrags der Ebene \Macro{chapter} - abweichend vom Element \FontElement{chapterentry}}% - \feentry{descriptionlabel}{% - Labels, also das optionale Argument der \Macro{item}-Anweisung, in einer - \Environment{description}-Umgebung}% - \feentry{dictum}{% - schlauer Spruch (siehe Anweisung \Macro{dictum})}% - \feentry{dictumauthor}{% - Urheber eines schlauen Spruchs; Anwendung erfolgt nach dem Element - \FontElement{dictumtext}}% - \feentry{dictumtext}{% - alternative Bezeichnung für \FontElement{dictum}}% - \feentry{disposition}{% - alle Gliederungsüberschriften, also die Argumente von \Macro{part} bis - \Macro{subparagraph} und \Macro{minisec} sowie die Überschrift der - Zusammenfassung; die Anwendung erfolgt vor dem Element der jeweiligen - Gliederungsebene}% - \feentry{footnote}{% - Marke und Text einer Fußnote}% - \feentry{footnotelabel}{% - Marke einer Fußnote; Anwendung erfolgt nach dem Element - \FontElement{footnote}}% - \feentry{footnotereference}{% - Referenzierung der Fußnotenmarke im Text}% - \feentry{minisec}{% - mit \Macro{minisec} gesetzte Überschrift}% - \feentry{pagefoot}{% - eigentlich der Fuß einer Seite, jedoch auch der Kopf der Seite}% - \feentry{pagehead}{% - eigentlich der Kopf einer Seite, jedoch auch der Fuß der Seite}% - \feentry{pagenumber}{% - Seitenzahl im Kopf oder Fuß der Seite}% - \feentry{pagination}{% - alternative Bezeichnung für \FontElement{pagenumber}}% - \feentry{paragraph}{% - Überschrift der Ebene \Macro{paragraph}}% - \feentry{part}{% - Überschrift der Ebene \Macro{part} jedoch ohne die Zeile mit der Nummer - des Teils}% - \feentry{partentry}{% - Inhaltsverzeichniseintrag der Ebene \Macro{part}}% - \feentry{partentrypagenumber}{% - Seitenzahl des Inhaltsverzeichniseintrags der Ebene \Macro{part} - abweichend vom Element \FontElement{partentry}}% - \feentry{partnumber}{% - Zeile mit der Nummer des Teils in Überschrift der Ebene \Macro{part}}% - \feentry{section}{% - Überschrift der Ebene \Macro{section}}% - \feentry{sectionentry}{% - Inhaltsverzeichniseintrag der Ebene \Macro{section} (nur bei - \Class{scrartcl} verfügbar)}% - \feentry{sectionentrypagenumber}{% - Seitenzahl des Inhaltsverzeichniseintrags der Ebene \Macro{section} - abweichend vom Element \FontElement{sectionentry} (nur bei - \Class{scrartcl} verfügbar)}% - \feentry{sectioning}{% - alternative Bezeichnung für \FontElement{disposition}}% - \feentry{subject}{% - Typisierung des Dokuments, also das Argument von \Macro{subject} auf der - Haupttitelseite}% - \feentry{subparagraph}{% - Überschrift der Ebene \Macro{subparagraph}}% - \feentry{subsection}{% - Überschrift der Ebene \Macro{subsection}}% - \feentry{subsubsection}{% - Überschrift der Ebene \Macro{subsubsection}}% - \feentry{subtitle}{% - Untertitel des Dokuments, also das Argument von \Macro{subtitle} auf der - Haupttitelseite}% - \feentry{title}{% - Haupttitel des Dokuments, also das Argument von \Macro{title} (bezüglich - der Größe des Haupttitels siehe die ergänzenden Bemerkungen im Text ab - \autopageref{desc:maincls.macro.title})}% -\end{desctable} -% -\EndIndex{Cmd}{setkomafont}% -\EndIndex{Cmd}{addtokomafont}% -\EndIndex{Cmd}{usekomafont}% -\EndIndex{}{Schriftart}\EndIndex{}{Schriftgroesse=Schriftgröße}% - -\subsection{Seitenstil} -\label{sec:maincls.pageStyle} - -Eine der allgemeinen Eigenschaften eines Dokuments ist der -Seitenstil\Index[indexmain]{Seitenstil}. Bei {\LaTeX} versteht man -unter dem Seitenstil in erster Linie den Inhalt der Kopf- und -Fußzeilen. - -\begin{Declaration} - \Macro{pagestyle}\PParameter{empty}\\ - \XMacro{pagestyle}\PParameter{plain}\\ - \XMacro{pagestyle}\PParameter{headings}\\ - \XMacro{pagestyle}\PParameter{myheadings}\\ - \Macro{thispagestyle}\Parameter{lokaler Seitenstil} -\end{Declaration}% -\BeginIndex{Cmd}{pagestyle}% -\BeginIndex{Cmd}{thispagestyle}% -\BeginIndex{Pagestyle}{empty}% -\BeginIndex{Pagestyle}{plain}% -\BeginIndex{Pagestyle}{headings}% -\BeginIndex{Pagestyle}{myheadings}% -Üblicherweise wird zwischen vier verschiedenen Seitenstilen -unterschieden. -\begin{description} -\item[\phantomsection\label{desc:maincls.pagestyle.empty}empty] ist der Seitenstil, bei dem Kopf- und Fußzeile - vollständig leer bleiben. Dies ist bei {\KOMAScript} vollkommen - identisch zu den Standardklassen. -\item[plain] ist der Seitenstil, bei dem keinerlei - Kolumnentitel\Index{Kolumnentitel} verwendet, sondern nur eine - Seitenzahl\Index{Seitenzahl}\Index{Paginierung} ausgegeben wird. Bei den - Standardklassen wird diese Seitenzahl immer mittig im Fuß ausgegeben. Bei - {\KOMAScript} erfolgt die Ausgabe stattdessen im - doppelseitigen\Index{doppelseitig} Layout außen im Fuß. Der einseitige - Seitenstil entspricht bei {\KOMAScript} dem der Standardklassen. -\item[headings] ist der Seitenstil für lebende Kolumnentitel. Das sind - Kolumnentitel, bei denen Überschriften - automatisch\Index[indexmain]{Kolumnentitel>automatisch} in den Seitenkopf - übernommen werden. Im Internet oder in Beschreibungen zu \LaTeX-Paketen - findet man auch häufig die englische Bezeichnung »\emph{running - headline}«. \OnlyAt{\Class{scrbook}\and\Class{scrreprt}} Bei den Klassen - \Class{scrbook}\IndexClass{scrbook} und - \Class{scrreprt}\IndexClass{scrreprt} werden dabei im doppelseitigen Layout - die Überschriften der Kapitel und der Abschnitte in der Kopfzeile wiederholt - -- bei {\KOMAScript} jeweils außen, bei den Standardklassen innen. Die - Seitenzahl wird bei {\KOMAScript} im Fuß außen, bei den Standardklassen im - Kopf außen gesetzt. Im einseitigen Layout werden nur die Überschriften der - Kapitel verwendet und bei {\KOMAScript} zentriert im Kopf ausgegeben. Die - Seitenzahlen werden bei {\KOMAScript} dann zentriert im Fuß gesetzt. - \OnlyAt{\Class{scrartcl}}Bei \Class{scrartcl}\IndexClass{scrartcl} wird - entsprechend verfahren, jedoch eine Ebene tiefer bei Abschnitt und - Unterabschnitt angesetzt, da die Gliederungsebene Kapitel hier nicht - existiert. - - Während die Standardklassen automatische Kolumnentitel immer in - Versalien -- also Großbuchstaben -- setzen, verwendet {\KOMAScript} - die Schreibweise, die in der Überschrift vorgefunden wurde. Dies hat - verschiedene typografische Gründe. So sind Versalien als - Auszeichnung eigentlich viel zu mächtig. Verwendet man sie trotzdem, - sollten sie um einen Punkt kleiner gesetzt und leicht gesperrt - werden. All dies findet bei den Standardklassen keine Beachtung. -\item[myheadings] entspricht weitgehend dem Seitenstil \texttt{headings}, - allerdings werden die Kolumnentitel nicht - automatisch\Index[indexmain]{Kolumnentitel>manuell} erzeugt, sondern liegen - in der Verantwortung des Anwenders. Er verwendet dazu die Anweisungen - \Macro{markboth}\IndexCmd{markboth} und - \Macro{markright}\IndexCmd{markright}. -\end{description} -Die Form der Seitenstile \texttt{headings} und \texttt{myheadings} wird -außerdem durch jede der vier Klassenoptionen \Option{headsepline}, -\Option{headnosepline}, \Option{footsepline} und \Option{footnosepline} (siehe -\autoref{sec:maincls.layoutOptions}, -\autopageref{desc:maincls.option.headsepline}) beeinflusst. Der Seitenstil ab -der aktuellen Seite wird mit der Anweisung \Macro{pagestyle} umgeschaltet. -Demgegenüber verändert \Macro{thispagestyle} nur den Seitenstil der aktuellen -Seite. - -Der Seitenstil kann jederzeit mit Hilfe der -\Macro{pagestyle}-Anweisung gesetzt werden und gilt dann ab der -nächsten Seite, die ausgegeben wird. Üblicherweise setzt man den -Seitenstil jedoch nur einmal zu Beginn des Dokuments oder in der -Präambel. Für eine Änderung des Seitenstils nur der aktuellen Seite -verwendet man stattdessen die Anweisung \Macro{thispagestyle}. Dies -geschieht auch an einigen Stellen im Dokument automatisch. -Beispielsweise wird bei allen Kapitelanfangsseiten implizit die -Anweisung \Macro{thispagestyle}\PParameter{plain} ausgeführt. - -Bitte beachten Sie auch, dass die Umschaltung zwischen automatischen und -manuellen Kolumnentiteln bei Verwendung des \Package{scrpage2}-Pakets nicht -mehr über den Seitenstil, sondern mit speziellen Anweisungen erfolgt. Die -Seitenstile \texttt{headings} und \texttt{myheadings} sollten zusammen mit -diesem Paket nicht verwendet werden (siehe \autoref{cha:scrpage}, -\autopageref{desc:scrpage.pagestyle.useheadings}).% -% -\EndIndex{Cmd}{pagestyle}% -\EndIndex{Cmd}{thispagestyle}% -\EndIndex{Pagestyle}{empty}% -\EndIndex{Pagestyle}{plain}% -\EndIndex{Pagestyle}{headings}% -\EndIndex{Pagestyle}{myheadings}% - - -\BeginIndex[indexother]{}{Schriftart}% -Um die Schriftarten von Kopf und Fuß der Seite oder der Seitenzahl zu -ändern\ChangedAt{v2.8p}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}, % -verwenden Sie die Benutzerschnittstelle, die in -\autoref{sec:maincls.font} beschrieben ist. Für den Kopf und -den Fuß ist dabei das gleiche Element zuständig, das Sie wahlweise mit -\FontElement{pagehead}\IndexFontElement{pagehead} oder -\FontElement{pagefoot}\IndexFontElement{pagefoot} benennen können. -Das Element für die Seitenzahl innerhalb des Kopfes oder Fußes heißt -\FontElement{pagenumber}\IndexFontElement{pagenumber}. Die -Voreinstellungen sind in -\autoref{tab:maincls.defaultFontsHeadFoot} zu finden. -% -\begin{table} - \centering% - \caption{Schriftvoreinstellungen für die Elemente des Seitenstils} - \begin{tabular}{ll} - \toprule - Element & Voreinstellung \\ - \midrule - \FontElement{pagefoot}\IndexFontElement{pagefoot} & - \Macro{normalfont}\Macro{normalcolor}\Macro{slshape} \\ - \FontElement{pagehead}\IndexFontElement{pagehead} & - \Macro{normalfont}\Macro{normalcolor}\Macro{slshape} \\ - \FontElement{pagenumber}\IndexFontElement{pagenumber} & - \Macro{normalfont}\Macro{normalcolor}\\ - \bottomrule - \end{tabular} - \label{tab:maincls.defaultFontsHeadFoot} -\end{table} -% -\begin{Example} - \phantomsection\label{sec:maincls.pageStyle.example}% - Angenommen, Sie wollen Kopf und Fuß einen Schriftgrad kleiner und - kursiv setzen. Die Seitenzahl soll jedoch nicht kursiv, sondern fett - gesetzt werden. Davon abgesehen, dass das Ergebnis grauenvoll - aussehen wird, können Sie dies wie folgt erreichen: -\begin{lstlisting} - \setkomafont{pagehead}{% - \normalfont\normalcolor\itshape\small - } - \setkomafont{pagenumber}{\normalfont\bfseries} -\end{lstlisting} - Wollen Sie hingegen lediglich, dass zusätzlich zur bereits - voreingestellten schrägen Variante ebenfalls eine kleinere Schrift - verwendet wird, so genügt: -\begin{lstlisting} - \addtokomafont{pagefoot}{\small} -\end{lstlisting} - Wie Sie sehen, ist im letzten Beispiel das Element - \FontElement{pagefoot} verwendet. Das gleiche Ergebnis erhalten Sie - auch, wenn Sie stattdessen \FontElement{pagehead} verwenden (siehe - \autoref{tab:maincls.elementsWithoutText} auf - \autopageref{tab:maincls.elementsWithoutText}). -\end{Example} -Es ist an dieser Stelle nicht möglich, Versalien für die -automatischen Kolumnentitel zu erzwingen. Wenn Sie dies wünschen, -verwenden Sie bitte das \Package{scrpage2}-Paket (siehe -\autoref{cha:scrpage}, \autopageref{desc:scrpage.option.markuppercase}). - -Eine sinnvolle Verwendung können die Befehle -\Macro{usekomafont}\PParameter{pagehead} und -\Macro{usekomafont}\PParameter{pagenumber} finden, wenn Sie eigene -Seitenstile definieren. Falls Sie dafür nicht das \KOMAScript-Paket -\Package{scrpage2} (siehe \autoref{cha:scrpage}), sondern -beispielsweise das Paket \Package{fancyhdr}\IndexPackage{fancyhdr} -(siehe \cite{package:fancyhdr}) einsetzen, können Sie diese Befehle in -Ihren Definitionen verwenden. Dadurch bleiben Sie zu \KOMAScript{} -möglichst kompatibel. Verwenden Sie diese Befehle in Ihren eigenen -Definitionen nicht, so bleiben Schriftänderungen wie in den -vorangehenden Beispielen unbeachtet. Die Pakete -\Package{scrpage}\IndexPackage{scrpage} und -\Package{scrpage2}\IndexPackage{scrpage2} sorgen selbst für maximale -Kompatibilität. -% -\EndIndex[indexother]{}{Schriftart}% - - -\begin{Declaration} - \Macro{titlepagestyle}\\ - \Macro{partpagestyle}\\ - \Macro{chapterpagestyle}\\ - \Macro{indexpagestyle} -\end{Declaration}% -\BeginIndex{Cmd}{titlepagestyle}\Index{Titel>Seitenstil}% -\BeginIndex{Cmd}{partpagestyle}\Index{Teil>Seitenstil}% -\BeginIndex{Cmd}{chapterpagestyle}\Index{Kapitel>Seitenstil}% -\BeginIndex{Cmd}{indexpagestyle}\Index{Index>Seitenstil}% -Auf einigen Seiten wird mit Hilfe von \Macro{thispagestyle} automatisch ein -anderer Seitenstil gewählt. Welcher Seitenstil dies ist, wird diesen vier -Makros entnommen, wobei \Macro{partpagestyle} und -\Macro{chapterpagestyle}\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} nur bei -den Klassen \Class{scrbook} und \Class{scrreprt} nicht jedoch bei -\Class{scrartcl} existieren. In der Voreinstellung ist der Seitenstil in allen -vier Fällen \PValue{plain}. Die Bedeutung der einzelnen Makros entnehmen Sie -bitte \autoref{tab:specialpagestyles}. -% -\begin{table} - \centering - \caption{Makros zur Festlegung des Seitenstils besonderer Seiten} - \label{tab:specialpagestyles} - \begin{desctabular} - \mentry{titlepagestyle}{Seitenstil der Seite mit der Titelei bei - \emph{in-page}-Titeln}% - \mentry{partpagestyle}{Seitenstil der Seiten mit \Macro{part}-Titeln}% - \mentry{chapterpagestyle}{Seitenstil auf Kapitelanfangsseiten}% - \mentry{indexpagestyle}{Seitenstil der ersten Indexseite}% - \end{desctabular} -\end{table} -% -Die Seitenstile können mit Hilfe von \Macro{renewcommand} umdefiniert -werden. -\begin{Example} - Angenommen, Sie wollen nicht, dass die Seiten mit der - \Macro{part}-Überschrift mit einer Nummer versehen werden. Dann setzen Sie - folgende Anweisung beispielsweise in der Präambel Ihres Dokuments: -\begin{lstlisting} - \renewcommand*{\partpagestyle}{empty} -\end{lstlisting} - Wie Sie auf \autopageref{desc:maincls.pagestyle.empty} erfahren haben, ist - der Seitenstil \PValue{empty} genau das, was in diesem Beispiel verlangt - wird. Natürlich können Sie auch einen selbstdefinierten Seitenstil - verwenden. - - Angenommen, Sie haben mit dem Paket \Package{scrpage2} (siehe - \autoref{cha:scrpage}) einen eigenen Seitenstil für - Kapitelanfangsseiten definiert. Diesem Seitenstil haben Sie den - passenden Namen \PValue{chapter} gegeben. Um diesen nun auch - tatsächlich zu verwenden, definieren Sie das Makro - \Macro{chapterpagestyle} entsprechend um: -\begin{lstlisting} - \renewcommand*{\chapterpagestyle}{chapter} -\end{lstlisting} - - Angenommen, Sie wollen das Inhaltsverzeichnis eines Buches - insgesamt nicht mit Seitenzahlen versehen. Danach soll - aber wieder mit dem Seitenstil \PValue{headings} gearbeitet - werden, sowie mit \PValue{plain} auf den Kapitelanfangsseiten. Dann - verwenden Sie beispielsweise: -\begin{lstlisting} - \clearpage - \pagestyle{empty} - \renewcommand*{\chapterpagestyle}{empty} - \tableofcontents - \clearpage - \pagestyle{headings} - \renewcommand*{\chapterpagestyle}{plain} -\end{lstlisting} - Sie können die Umdefinierung des Seitenstils für Kapitelanfangsseiten aber - auch lokal halten. Das hat den Vorteil, dass Sie dann keine Annahmen über - die vor der Änderung gültige Einstellung treffen müssen. Die Änderung - des Seitenstils selbst können Sie gleichmaßen lokal halten: -\begin{lstlisting} - \clearpage - \begingroup - \pagestyle{empty} - \renewcommand*{\chapterpagestyle}{empty} - \tableofcontents - \clearpage - \endgroup -\end{lstlisting} - Beachten Sie jedoch, dass Sie niemals eine nummerierte - Gliederungsüberschrift in eine Gruppe packen sollten. Anderenfalls können - Anweisungen wie \Macro{label} rasch zu unvorhergesehenen Ergebnissen - führen. -\end{Example} - -\begin{Explain} - Wer nun glaubt, er könne auf Kapitelanfangsseiten ebenfalls mit - lebenden Kolumnentiteln arbeiten indem er einfach eine Definition - wie -\begin{lstlisting} - \renewcommand*{\chapterpagestyle}{headings} -\end{lstlisting} - verwendet, wird sich möglicherweise wundern. Zwar wird dadurch - tatsächlich auch auf Kapitelanfangsseiten der Seitenstil - \PValue{headings} verwendet. Allerdings erscheint bei Verwendung der - Option \Option{openright} trotzdem kein Kolumnentitel. Die Ursache - dafür ist im \LaTeX-Kern zu finden. Dort ist \Macro{rightmark}, die - Marke für rechte Seiten, mit: -\begin{lstlisting} - \let\@rightmark\@secondoftwo - \def\rightmark{\expandafter\@rightmark - \firstmark\@empty\@empty} -\end{lstlisting} - definiert. Es wird also die rechte Marke von \Macro{firstmark} - gesetzt. \Macro{firstmark} beinhaltet die erste linke und rechte - Marke, die auf einer Seite gesetzt wurde. Innerhalb von - \Macro{chapter} wird mit \Macro{markboth} die linke Marke auf die - Kapitelüberschrift und die rechte Marke auf einen leeren Inhalt - gesetzt. Damit ist also die erste rechte Marke auf einer rechten - Kapitelanfangsseite leer. Daher ist auf diesen Seiten auch der - Kolumnentitel leer. - - Nun könnte man natürlich in der Dokumentpräambel \Macro{rightmark} - so umdefinieren, dass statt der ersten, die letzte rechte Marke - einer Seite verwendet wird: -\begin{lstlisting} - \makeatletter - \renewcommand*{\rightmark}{% - \expandafter\@rightmark\botmark\@empty\@empty - } - \makeatother -\end{lstlisting} - Damit würde man aber auf rechten Kapitelanfangsseiten als - Kolumnentitel den Titel der letzten Abschnittsüberschrift - (\Macro{section}) dieser Seite erhalten. Das wäre verwirrend und - ist grundsätzlich abzulehnen. - - Ebenso verwirrend und damit abzulehnen wäre, wenn auf rechten - Kapitelanfangsseiten plötzlich als Kolumnentitel nicht die - Abschnittsüberschrift, sondern die Kapitelüberschrift erscheinen - würde. Das voreingestellte Verhalten ist also korrekt. -\end{Explain} -% -\EndIndex{Cmd}{titlepagestyle}% -\EndIndex{Cmd}{partpagestyle}% -\EndIndex{Cmd}{chapterpagestyle}% -\EndIndex{Cmd}{indexpagestyle}% - - -\begin{Declaration} - \Macro{clearpage}\\ - \Macro{cleardoublepage}\\ - \Macro{cleardoublestandardpage}\\ - \Macro{cleardoubleplainpage}\\ - \Macro{cleardoubleemptypage} -\end{Declaration}% -\BeginIndex{Cmd}{clearpage}% -\BeginIndex{Cmd}{cleardoublepage}% -\BeginIndex{Cmd}{cleardoublestandardpage}% -\BeginIndex{Cmd}{cleardoubleplainpage}% -\BeginIndex{Cmd}{cleardoubleemptypage}% -Im \LaTeX-Kern existiert die Anweisung \Macro{clearpage}, die dafür sorgt, -dass alle noch nicht ausgegebenen Gleitumgebungen ausgegeben werden und -anschließend eine neue Seite begonnen wird. Außerdem existiert die Anweisung -\Macro{cleardoublepage}, die wie \Macro{clearpage} arbeitet, durch die aber im -doppelseitigen Layout (siehe Layoutoption \Option{twoside} in -\autoref{sec:maincls.layoutOptions}, -\autopageref{desc:maincls.option.twoside}) eine neue rechte Seite begonnen -wird. Dazu wird gegebenenfalls eine leere linke Seite im aktuellen Seitenstil -ausgegeben. - -Bei {\KOMAScript} arbeitet \Macro{cleardoublestandardpage} genau in der soeben -beschriebene Art und Weise. Die Anweisung \Macro{cleardoubleplainpage} ändert -demgegenüber den Seitenstil der leeren linken Seite zusätzlich auf -\PValue{plain}, um den Kolumnentitel zu unterdrücken. Analog dazu wird bei der -Anweisung \Macro{cleardoubleemptypage} der Seitenstil \PValue{empty} -verwendet, um sowohl Kolumnentitel als auch Seitenzahl auf der leeren linken -Seite zu unterdrücken. Die Seite ist damit vollständig leer. Die Arbeitsweise -der \Macro{cleardoublepage}-Anweisung ist hingegen von den in -\autoref{sec:maincls.layoutOptions}, -\autopageref{desc:maincls.option.cleardoublestandard} erklärten Layoutoptionen -\Option{cleardoublestandard}, \Option{cleardoubleplain} und -\Option{cleardoubleempty} abhängig und entspricht je nach Option einer der -drei Anweisungen. -% -\EndIndex{Cmd}{clearpage}% -\EndIndex{Cmd}{cleardoublepage}% -\EndIndex{Cmd}{cleardoublestandardpage}% -\EndIndex{Cmd}{cleardoubleplainpage}% -\EndIndex{Cmd}{cleardoubleemptypage}% - - -\begin{Explain}% -\begin{Declaration} - \Macro{ifthispageodd}\Parameter{Wahr}\Parameter{Falsch}\\ - \Macro{ifthispagewasodd} \PName{Wahr}\Macro{else} \PName{Falsch}\Macro{fi} -\end{Declaration}% -\BeginIndex{Cmd}{ifthispageodd}% -\BeginIndex{Cmd}{ifthispagewasodd}% - Eine Besonderheit von \LaTeX{} besteht darin, dass es nicht einfach - möglich ist, festzustellen, auf welcher Seite man sich gerade befindet. - Damit ist auch schwer zu sagen, ob die aktuelle Seite eine - gerade oder eine ungerade Seitenzahl besitzt. Einige werden nun - einwenden, dass es doch die \TeX-Verzweigung \Macro{ifodd} gibt, die - man nur auf den aktuellen Seitenzähler anwenden muss. Dies ist - jedoch ein Irrtum. Zum Zeitpunkt der Auswertung einer solchen - Verzweigung weiß \LaTeX{} nämlich gar nicht, ob der gerade - bearbeitete Text noch auf dieser Seite oder erst auf der - nächsten gesetzt wird. Der Seitenumbruch findet nämlich nicht - bereits beim Einlesen des Absatzes, sondern erst in der - \emph{output}-Routine von \LaTeX{} statt. Zu dem Zeitpunkt wäre aber eine - Eingabe der Form \verb|\ifodd\value{page}| bereits vollständig - ausgewertet. - - Um zuverlässig festzustellen, ob ein Text auf einer geraden oder - einer ungeraden Seite ausgegeben wird, muss man normalerweise mit - einem Label und einer Seitenreferenz auf dieses Label - arbeiten. Dabei muss man auch noch spezielle Vorkehrungen für den - ersten \LaTeX-Durchlauf treffen, bei dem das Label noch nicht - bekannt ist. -\end{Explain} -Will man bei \KOMAScript{} feststellen, ob ein Text auf einer geraden -oder einer ungeraden Seite ausgegeben wird, so verwendet man die -Anweisung \Macro{ifthispageodd}. Dabei wird das \PName{Wahr}-Argument -nur dann ausgeführt, wenn man sich gerade auf einer ungeraden Seite -befindet. Anderenfalls wird das \PName{Falsch}-Argument ausgeführt. - -\begin{Explain} -Genau genommen geht es natürlich nicht darum, wo man sich gerade -befindet, sondern entscheidend ist, ob eine Seitenreferenz auf ein -Label, das an dieser Stelle gesetzt würde, eine gerade oder eine -ungerade Seite referenzieren würde. -\end{Explain} -\begin{Example} - Angenommen, Sie wollen einfach nur ausgeben, ob ein Text auf einer - geraden oder ungeraden Seite ausgegeben wird. Sie könnten dann - beispielsweise mit der Eingabe -\begin{lstlisting} - Dies ist eine Seite mit \ifthispageodd{un}{}gerader - Seitenzahl. -\end{lstlisting} - die Ausgabe - \begin{quote} - Dies ist eine Seite mit \ifthispageodd{un}{}gerader Seitenzahl. - \end{quote} - erhalten. Beachten Sie, dass in diesem Beispiel das Argument \PName{Falsch} - leer geblieben ist. -\end{Example} - -Da die Anweisung \Macro{ifthispageodd} mit einem Mechanismus arbeitet, -der einem Label und einer Referenz darauf sehr ähnlich ist, werden -nach jeder Textänderung mindestens zwei \LaTeX-Durchläufe -benötigt. Erst dann ist die Entscheidung korrekt. Im ersten Durchlauf -wird eine Heuristik für die Entscheidung verwendet. - -\begin{Explain} - Es sind Fälle denkbar, in denen die Anweisung \Macro{ifthispageodd} - nie zum korrekten Ergebnis führt. Nehmen wir an, dass die Anweisung - innerhalb einer Box verwendet wird. Eine Box wird von \LaTeX{} - immer im Ganzen gesetzt. In ihr findet kein Seitenumbruch - statt. Nehmen wir weiter an, der \PName{Wahr}-Teil wäre sehr groß, - der \PName{Falsch}-Teil aber leer. Nehmen wir außerdem an, dass die - Box mit dem \PName{Falsch}-Teil noch auf die aktuelle, gerade Seite - passt, mit dem \PName{Wahr}-Teil jedoch nicht. Nehmen wir weiter an, - \KOMAScript{} entscheidet beim ersten Durchlauf heuristisch, dass der - \PName{Wahr}-Teil zutrifft. Die Entscheidung war damit falsch und - wird im nächsten Durchlauf revidiert. Dadurch wird aber der - \PName{Falsch}-Teil statt dem \PName{Wahr}-Teil abgearbeitet. Die - Entscheidung wird also im nächsten Durchlauf wieder revidiert und - immer so weiter. - - Diese Fälle sind zwar selten. Trotzdem soll niemand sagen, ich habe - nicht darauf hingewiesen, dass sie möglich sind. - - Manchmal ist es auch notwendig nochmals festzustellen, wie die letzte - Entscheidung lautete. Dies ist mit der Expertenanweisung - \Macro{ifthispagewasodd} möglich. Diese ist entweder mit \Macro{iftrue} oder - \Macro{iffalse} identisch und entsprechend anzuwenden. -\end{Explain} -% -\EndIndex{Cmd}{ifthispageodd} -\EndIndex{Cmd}{ifthispagewasodd}% - -\begin{Declaration} - \Macro{pagenumbering}\Parameter{Nummerierungsstil} -\end{Declaration} -\BeginIndex{Cmd}{pagenumbering}% -Diese Anweisung funktioniert bei \KOMAScript{} genau in der gleichen Weise wie -bei den Standardklassen. Genau genommen handelt es sich dabei weder um eine -Fähigkeit der Standardklassen noch der \KOMAScript-Klassen, sondern um eine -Anweisung des \LaTeX-Kerns. Sie wird verwendet, um den -\PName{Nummerierungsstil} für die Seitenzahlen umzuschalten. - -Die Umschaltung gilt ab sofort, also ab der Seite, auf der diese Anweisung -aufgerufen wird. Gegebenfalls sollte also zuvor mit \Macro{clearpage} oder -\Macro{cleardoublepage} diese Seite erst beendet werden. Mögliche Angaben für -den \PName{Nummerierungsstil} sind \autoref{tab:numberKind} zu entnehmen. - -Der Aufruf von \Macro{pagenumbering} setzt immer die -Seitenzahl\Index{Seitenzahl} zurück. Die aktuelle Seite bekommt also die -Nummer 1 im gewählten \PName{Nummerierungsstil}. -% -\begin{table} - \centering - \caption{Verfügbare Nummerierungsstile für Seitenzahlen} - \begin{tabular}{lll} - \toprule - Nummerierungsstil & Beispiel & Bedeutung \\ - \midrule - \PValue{arabic} & 8 & arabische Zahlen \\ - \PValue{roman} & viii & kleine römische Zahlen \\ - \PValue{Roman} & VIII & große römische Zahlen \\ - \PValue{alph} & h & Kleinbuchstaben \\ - \PValue{Alph} & H & Großbuchstaben \\ - \bottomrule - \end{tabular} - \label{tab:numberKind} -\end{table} -% -\EndIndex{Cmd}{pagenumbering} - - -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Die Titelei} -\label{sec:maincls.titles} - -\begin{Explain} - Nachdem die Optionen und einige allgemeine Dinge nun bekannt sind, beginnen - wir das Dokument, wo es normalerweise beginnt: mit der Titelei. Unter der - Titelei\Index[indexmain]{Titel} versteht man alles, was im weitesten Sinne - zum Titel eines Dokuments gehört. Wie bei den Optionen \Option{titlepage} - und \Option{notitlepage} in \autoref{sec:maincls.layoutOptions}, - \autopageref{desc:maincls.option.titlepage} bereits erwähnt, wird - grundsätzlich zwischen Titelseiten und \emph{in-page}-Titeln unterschieden. - Artikelklassen wie \Class{article} oder \Class{scrartcl} haben - \emph{in-page}-Titel voreingestellt, während bei Klassen wie \Class{report}, - \Class{book}, \Class{scrreprt} und \Class{scrbook} Titelseiten - voreingestellt sind. -\end{Explain} - - -\begin{Declaration} - \XMacro{begin}\PParameter{\Environment{titlepage}}\\ - \quad\dots\\ - \XMacro{end}\PParameter{titlepage} -\end{Declaration}% -\BeginIndex{Env}{titlepage}% -Grundsätzlich werden bei den Standardklassen und bei {\KOMAScript} -alle Titelseiten in einer speziellen Umgebung, der -\Environment{titlepage}-Umgebung, gesetzt. Diese Umgebung startet -immer mit einer neuen Seite -- im zweiseitigen Layout sogar mit -einer neuen rechten Seite -- im einspaltigen Modus. Für eine -Seite wird der Seitenstil mit -\Macro{thispagestyle}\PParameter{empty} geändert, so dass weder -Seitenzahl noch Kolumnentitel ausgegeben werden. Am Ende der -Umgebung wird die Seite automatisch beendet. Sollten Sie nicht -das automatische Layout der Titelei verwenden können, ist zu -empfehlen, eine eigene Titelei mit Hilfe dieser Umgebung zu -entwerfen. - -\begin{Example} - Angenommen, Sie wollen eine Titelseite, auf der lediglich oben links - möglichst groß und fett das Wort »Me« steht -- kein Autor, kein Datum, - nichts weiter. Folgendes Dokument ermöglicht das: -\begin{lstlisting} - \documentclass{scrbook} - \begin{document} - \begin{titlepage} - \textbf{\Huge Me} - \end{titlepage} - \end{document} -\end{lstlisting} - Einfach? Stimmt. -\end{Example} -% -\EndIndex{Env}{titlepage} - - -\begin{Declaration} - \Macro{maketitle}\OParameter{Seitenzahl} -\end{Declaration}% -\BeginIndex{Cmd}{maketitle}% -Während bei den Standardklassen nur maximal eine Titelseite mit den drei -Angaben Titel, Autor und Datum existiert, können bei {\KOMAScript} mit -\Macro{maketitle} bis zu sechs Titelseiten gesetzt werden. Im Gegensatz zu -den Standardklassen kennt \Macro{maketitle} bei {\KOMAScript} außerdem noch -ein optionales nummerisches Argument. Findet es Verwendung, so wird die -Nummer als Seitenzahl der ersten Titelseite benutzt. Diese Seitenzahl wird -jedoch nicht ausgegeben, sondern beeinflusst lediglich die Zählung. Sie -sollten hier unbedingt eine ungerade Zahl wählen, da sonst die gesamte Zählung -durcheinander gerät. Meiner Auf"|fassung nach gibt es nur zwei sinnvolle -Anwendungen für das optionale Argument. Zum einen könnte man dem -Schmutztitel\Index[indexmain]{Schmutztitel} die logische Seitenzahl \(-\)1 -geben, um so die Seitenzählung erst ab der Haupttitelseite mit 1 zu -beginnen. Zum anderen könnte man mit einer höhere Seitenzahl beginnen, -beispielsweise 3, 5 oder 7, um so weitere Titelseiten zu berücksichtigen, die -erst vom Verlag hinzugefügt werden. Wird eine \emph{in-page}-Titelei -verwendet, wird das optionale Argument ignoriert. Dafür kann der Seitenstil -einer solchen Titelei durch Umdefinierung des Makros \Macro{titlepagestyle} -verändert werden. Siehe hierzu \autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.titlepagestyle}. - -Die folgenden Anweisungen führen nicht unmittelbar zum Setzen der Titelei. Das -Setzen der Titelei erfolgt immer mit \Macro{maketitle}. Es sei an dieser -Stelle auch darauf hingewiesen, dass \Macro{maketitle} nicht innerhalb einer -\Environment{titlepage}-Umgebung zu verwenden ist. Wie in den Beispielen -angegeben sollte man nur entweder \Macro{maketitle} oder -\Environment{titlepage} verwenden. - -Mit den nachfolgend erklärten Anweisungen werden lediglich die Inhalte der -Titelei festgelegt. Sie müssen daher auch unbedingt vor \Macro{maketitle} -verwendet werden. Es ist jedoch nicht notwendig und bei Verwendung des -\Package{babel}-Pakets\IndexPackage{babel} (siehe \cite{package:babel}) auch -nicht empfehlenswert, diese Anweisungen in der Dokumentpräambel vor -\Macro{begin}\PParameter{document} zu verwenden. Beispieldokumente finden Sie -am Ende des Abschnitts. - - -\begin{Explain}% -\begin{Declaration} - \Macro{extratitle}\Parameter{Schmutztitel} -\end{Declaration}% -\BeginIndex{Cmd}{extratitle}% - Früher war der Buchblock oftmals nicht durch einen Buchdeckel vor - Verschmutzung geschützt. Diese Aufgabe übernahm dann die erste Seite - des Buches, die meist einen Kurztitel, eben den \emph{Schmutztitel} - trug. Auch heute noch wird diese Extraseite vor dem eigentlichen - Haupttitel gerne verwendet und enthält dann Verlagsangaben, - Buchreihennummer und ähnliche Angaben.\par -\end{Explain} -Bei {\KOMAScript} ist es möglich, vor der eigentlichen Titelseite eine -weitere Seite zu setzen. Als \PName{Schmutztitel} kann dabei -beliebiger Text -- auch mehrere Absätze -- gesetzt werden. Der Inhalt -von \PName{Schmutztitel} wird von {\KOMAScript} ohne zusätzliche -Beeinflussung der Formatierung ausgegeben. Dadurch ist dessen -Gestaltung völlig dem Anwender überlassen. Die Rückseite des -Schmutztitels bleibt leer. Der Schmutztitel ergibt auch -dann eine eigene Titelseite, wenn mit \emph{in-page}-Titeln gearbeitet -wird. Die Ausgabe des mit \Macro{extratitle} definierten Schmutztitels -erfolgt als Bestandteil der Titelei mit \Macro{maketitle}. - -\begin{Example} - Kommen wir auf das Beispiel von oben zurück und gehen davon aus, - dass das spartanische »Me« nur den Schmutztitel darstellt. Nach - dem Schmutztitel soll noch der Haupttitel folgen. Dann kann wie - folgt verfahren werden: -\begin{lstlisting} - \documentclass{scrbook} - \begin{document} - \extratitle{\textbf{\Huge Me}} - \title{It's me} - \maketitle - \end{document} -\end{lstlisting} - Sie können den Schmutztitel aber auch horizontal zentriert und etwas - tiefer setzen: -\begin{lstlisting} - \documentclass{scrbook} - \begin{document} - \extratitle{\vspace*{4\baselineskip} - \begin{center}\textbf{\Huge Me}\end{center}} - \title{It's me} - \maketitle - \end{document} -\end{lstlisting} - Die Anweisung \Macro{title} ist grundsätzlich notwendig, damit die - Beispiele fehlerfrei sind. Sie wird nachfolgend erklärt. -\end{Example} -% -\EndIndex{Cmd}{extratitle} - - -\begin{Declaration} - \Macro{titlehead}\Parameter{Titelkopf}\\ - \Macro{subject}\Parameter{Typisierung}\\ - \Macro{title}\Parameter{Titel}\\ - \Macro{subtitle}\Parameter{Untertitel}\\ - \Macro{author}\Parameter{Autor}\\ - \Macro{date}\Parameter{Datum}\\ - \Macro{publishers}\Parameter{Herausgeber}\\ - \Macro{and}\\ - \Macro{thanks}\Parameter{Fußnote} -\end{Declaration}% -\BeginIndex{Cmd}{titlehead}% -\BeginIndex{Cmd}{subject}% -\BeginIndex{Cmd}{title}% -\BeginIndex{Cmd}{subtitle}% -\BeginIndex{Cmd}{author}% -\BeginIndex{Cmd}{date}% -\BeginIndex{Cmd}{publishers}% -\BeginIndex{Cmd}{and}% -\BeginIndex{Cmd}{thanks}% -Für den Inhalt der Haupttitelseite stehen sieben Elemente zur Verfügung. Die -Ausgabe der Haupttitelseite erfolgt als Bestandteil der Titelei mit -\Macro{maketitle}, während die hier aufgeführten Anweisungen lediglich der -Definition der entspechenden Elemente dienen. - -Der \PName{Titelkopf}\Index[indexmain]{Titel>Kopf} wird -mit der Anweisung \Macro{titlehead} definiert. Er wird über die -gesamte Textbreite in normalem Blocksatz am Anfang der Seite -ausgegeben. Er kann vom Anwender frei gestaltet werden. - -Die \PName{Typisierung}\Index[indexmain]{Typisierung} wird unmittelbar über -dem \PName{Titel} -ausgegeben. Dabei\ChangedAt{v2.95}{\Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} -findet die Schriftumschaltung für das Element -\FontElement{subject}\IndexFontElement{subject} Anwendung. Die Voreinstellung, -die in \autoref{tab:maincls.titlefonts} zu finden ist, kann mit Hilfe der -Anweisungen aus \autoref{sec:maincls.font} verändert werden. - -Der \PName{Titel} wird in einer sehr großen Schrift ausgegeben. -Dabei\ChangedAt{v2.8p}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % -findet abgesehen von der Größe auch die Schriftumschaltung für das Element -\FontElement{title}\IndexFontElement{title} Anwendung. Voreingestellt ist die -gleiche Schrift, die für das Element -\FontElement{disposition}\IndexFontElement{disposition} verwendet wird (siehe -\autoref{tab:maincls.elementsWithoutText}, -\autopageref{tab:maincls.elementsWithoutText}). Die Voreinstellungen können -mit Hilfe der Anweisungen aus \autoref{sec:maincls.font} verändert werden. Die -Größe ist jedoch davon unabhängig (siehe \autoref{tab:maincls.mainTitle}, -\autopageref{tab:maincls.mainTitle}). - -Der -\PName{Untertitel}\ChangedAt{v2.97c}{\Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} -wird in der über das Element \FontElement{subtitle}\IndexFontElement{subtitle} -eingestellten Schrift knapp unter dem Titel ausgegeben. Die Voreinstellung, -die \autoref{tab:maincls.titlefonts} zu entnehmen ist, kann mit Hilfe der -Anweisungen aus \autoref{sec:maincls.font} verändert werden. - -\begin{table} - \centering - \caption{Schriftvoreinstellungen für die Elemente des Titels} - \begin{tabular}{ll} - \toprule - Element-Name & Voreinstellung \\ - \midrule - \FontElement{subject} & - \Macro{normalfont}\Macro{normalcolor}\Macro{bfseries}\Macro{Large} \\ - \FontElement{title} & \Macro{usekomafont}\PParameter{disposition} \\ - \FontElement{subtitle} & - \Macro{usekomafont}\PParameter{title}\Macro{large} \\ - \bottomrule - \end{tabular} - \label{tab:maincls.titlefonts} -\end{table} - -Unter dem \PName{Untertitel} folgt der \PName{Autor}\Index[indexmain]{Autor}. -Es kann auch durchaus mehr als ein Autor innerhalb des Arguments von -\Macro{author} angegeben werden. Die Autoren sind dann mit \Macro{and} -voneinander zu trennen. - -Unter dem Autor oder den Autoren folgt das Datum\Index{Datum}. -Dabei ist das aktuelle Datum, \Macro{today}\IndexCmd{today}, -voreingestellt. Es kann jedoch mit \Macro{date} eine beliebige -Angabe -- auch ein leere -- erreicht werden. - -Als Letztes folgt schließlich der -\PName{Herausgeber}\Index[indexmain]{Herausgeber}. Selbstverständlich -kann diese Anweisung auch für andere Angaben geringer Wichtigkeit -verwendet werden. Notfalls kann durch Verwendung einer \Macro{parbox} -über die gesamte Seitenbreite auch erreicht werden, dass diese Angabe -nicht zentriert, sondern im Blocksatz gesetzt wird. Sie ist dann als -Äquivalent zum Titelkopf zu betrachten. Dabei ist jedoch zu beachten, -dass sie oberhalb von eventuell vorhandenen Fußnoten ausgegeben wird. - -Fußnoten\Index{Fussnoten=Fußnoten} werden auf der Titelseite -nicht mit \Macro{footnote}, sondern mit der Anweisung -\Macro{thanks} erzeugt. Sie dienen in der Regel für Anmerkungen -bei den Autoren. Als Fußnotenzeichen werden dabei Symbole statt -Zahlen verwendet. - -Bis auf den \PName{Titelkopf} und eventuelle Fußnoten werden alle -Ausgaben horinzontal zentriert. Diese Angaben sind noch einmal kurz -zusammengefasst in \autoref{tab:maincls.mainTitle} zu finden. -\begin{table} - \centering - \caption[Der Haupttitel]{Schriftgröße und horizontale - Ausrichtung der Elemente der Haupttitelseite in der Reihenfolge - ihrer vertikalen Position von oben nach unten bei Verwendung von - \Macro{maketitle}} - \begin{tabular}{llll} - \toprule - Element & Anweisung & Schrift & Satz \\ - \midrule - Seitenkopf & \Macro{titlehead} & \Macro{normalsize} & Blocksatz \\ - Typisierung & \Macro{subject} & \Macro{usekomafont}\PParameter{subject} - & zentriert \\ - Titel & \Macro{title} & - \Macro{huge}\Macro{usekomafont}\PParameter{title} & zentriert \\ - Untertitel & \Macro{subtitle} & - \Macro{usekomafont}\PParameter{subtitle} & zentriert \\ - Autoren & \Macro{author} & \Macro{Large} & zentriert \\ - Datum & \Macro{date} & \Macro{Large} & zentriert \\ - Herausgeber & \Macro{publishers} & \Macro{Large} & zentriert \\ - \bottomrule - \end{tabular} - \label{tab:maincls.mainTitle} -\end{table} - -\begin{Example} - Nehmen wir nun einmal an, Sie schreiben eine Diplomarbeit. Dabei sei - vorgegeben, dass die Titelseite oben linksbündig das Institut - einschließlich Adresse und rechtsbündig das Semester wiedergibt. Wie - üblich ist ein Titel einschließlich Autor und Abgabedatum zu setzen. - Außerdem soll der Betreuer angegeben und zu erkennen sein, dass es - sich um eine Diplomarbeit handelt. Sie könnten das wie folgt - erreichen: -\begin{lstlisting} - \documentclass{scrbook} - \usepackage{ngerman} - \begin{document} - \titlehead{{\Large Universit"at Schlauenheim - \hfill SS~2001\\} - Institut f"ur Raumkr"ummung\\ - Hochschulstra"se~12\\ - 34567 Schlauenheim} - \subject{Diplomarbeit} - \title{Digitale Raumsimulation mit dem DSP\,56004} - \subtitle{Klein aber fein?} - \author{cand. stup. Uli Ungenau} - \date{30. Februar 2001} - \publishers{Betreut durch Prof. Dr. rer. stup. - Naseweis} - \maketitle - \end{document} -\end{lstlisting} -\end{Example} - -\begin{Explain} - Ein häufiges Missverständnis betrifft die Bedeutung der - Haupttitelseite. Irrtümlich wird oft angenommen, es handle sich - dabei um den Buchumschlag oder Buchdeckel. Daher wird häufig - erwartet, dass die Titelseite nicht den Randvorgaben für - doppelseitige Satzspiegel gehorcht, sondern rechts und links gleich - große Ränder besitzt. Nimmt man jedoch einmal ein Buch zur Hand und - klappt es auf, trifft man sehr schnell auf mindestens eine - Titelseite unter dem Buchdeckel innerhalb des sogenannten - Buchblocks. Genau diese Titelseiten werden mit \Macro{maketitle} - gesetzt. Wie beim Schmutztitel handelt es sich also auch bei der - Haupttitelseite um eine Seite innerhalb des Buchblocks, die deshalb - dem Satzspiegel des gesamten Dokuments gehorcht. Überhaupt ist ein - Buchdeckel, das \emph{Cover}, etwas, was man in einem getrennten - Dokument erstellt. Schließlich hat er oft eine sehr individuelle - Gestalt. Es spricht auch nichts dagegen, hierfür ein Grafik- oder - DTP-Programm zu Hilfe zu nehmen. Ein getrenntes Dokument sollte auch - deshalb verwendet werden, weil es später auf ein anderes - Druckmedium, etwa Karton, und möglicherweise mit einem anderen - Drucker ausgegeben werden soll.\par -\end{Explain} -% -\EndIndex{Cmd}{titlehead}% -\EndIndex{Cmd}{subject}% -\EndIndex{Cmd}{title}% -\EndIndex{Cmd}{subtitle}% -\EndIndex{Cmd}{author}% -\EndIndex{Cmd}{date}% -\EndIndex{Cmd}{publishers}% -\EndIndex{Cmd}{and}% -\EndIndex{Cmd}{thanks}% - - -\begin{Declaration} - \Macro{uppertitleback}\Parameter{Titelrückseitenkopf}\\ - \Macro{lowertitleback}\Parameter{Titelrückseitenfuß} -\end{Declaration}% -\BeginIndex{Cmd}{uppertitleback}% -\BeginIndex{Cmd}{lowertitleback}% -% -Im doppelseitigen Druck bleibt bei den Standardklassen die Rückseite des -Blatts mit der Titelseite leer. Bei {\KOMAScript} lässt sich die Rückseite der -Haupttitelseite hingegen für weitere Angaben nutzen. Dabei wird zwischen genau -zwei Elementen unterschieden, die der Anwender frei gestalten kann: dem -\PName{Titelrückseitenkopf}\Index{Titel>Rueckseite=Rückseite} und dem -\PName{Titelrückseitenfuß}. Dabei kann der Kopf bis zum Fuß reichen und -umgekehrt. Nimmt man diese Anleitung als Beispiel, so wurde der -Haftungsausschluss mit Hilfe von \Macro{uppertitleback} gesetzt. -\EndIndex{Cmd}{uppertitleback}% -\EndIndex{Cmd}{lowertitleback}% - - -\begin{Declaration} - \Macro{dedication}\Parameter{Widmung} -\end{Declaration}% -\BeginIndex{Cmd}{dedication}% -{\KOMAScript} bietet eine eigene Widmungsseite. Diese -Widmung\Index{Widmung} wird zentriert und in etwas größerer Schrift -gesetzt. Die Rückseite ist wie bei der Seite mit dem Schmutztitel -grundsätzlich leer. Die Widmungsseite wird zusammen mit der restlichen -Titelei mit \Macro{maketitle} ausgegeben und muss daher vor dieser -Anweisung definiert sein. - -\begin{Example} - Nehmen wir dieses Mal an, dass Sie einen Gedichtband schreiben, den - Sie Ihrer Frau widmen wollen. Das könnte wie folgt aussehen: -\begin{lstlisting} - \documentclass{scrbook} - \usepackage{ngerman} - \begin{document} - \extratitle{\textbf{\Huge In Liebe}} - \title{In Liebe} - \author{Prinz Eisenherz} - \date{1412} - \lowertitleback{Dieser Gedichtband wurde mit Hilfe - von {\KOMAScript} und {\LaTeX} gesetzt.} - \uppertitleback{Selbstverlach\par - Auf"|lage: 1 Exemplar} - \dedication{Meinem Schnuckelchen\\ - in ewiger Liebe\\ - von Deinem Hasenboppelchen.} - \maketitle - \end{document} -\end{lstlisting} - Ich bitte die Kosenamen entsprechend Ihren Vorlieben zu ersetzen. -\end{Example} -% -\EndIndex{Cmd}{dedication} -% -\EndIndex{Cmd}{maketitle} - - -\begin{Declaration} - \XMacro{begin}\PParameter{\Environment{abstract}}\\ - \quad\dots\\ - \XMacro{end}\PParameter{abstract} -\end{Declaration}% -\BeginIndex{Env}{abstract}% -\OnlyAt{\Class{scrartcl}\and\Class{scrreprt}}% -Insbesondere bei Artikeln, seltener bei Berichten findet man -unmittelbar unter der Titelei und noch vor dem Inhaltsverzeichnis -eine Zusammenfassung\Index{Zusammenfassung}. Diese wird daher -oftmals als Bestandteil der Titelei betrachtet. Einige -\LaTeX-Klassen bieten eine spezielle Umgebung für diese -Zusammenfassung, die \Environment{abstract}-Umgebung. Diese wird -unmittelbar ausgegeben, ist also nicht Bestandteil der mit -\Macro{maketitle} gesetzten Titelei. Bitte beachten Sie -unbedingt, dass es sich bei \Environment{abstract} um eine -Umgebung und nicht um eine Anweisung handelt. Ob die -Zusammenfassung mit einer Überschrift versehen wird oder nicht, -wird über die Optionen \Option{abstracton} und -\Option{abstractoff} gesteuert (siehe -\autoref{sec:maincls.formattingOptions}, -\autopageref{desc:maincls.option.abstracton}). - -Bei Büchern (\Class{scrbook}) ist die Zusammenfassung häufig -Bestandteil der Einleitung oder eines gesonderten Kapitels am Ende des -Dokuments. Daher gibt es hier keine \Environment{abstract}-Umgebung. -Bei Verwendung der Klasse \Class{scrreprt} ist es sicher eine -Überlegung wert, ob man nicht genauso verfahren sollte. -% -\EndIndex{Env}{abstract} - - -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Das Inhaltsverzeichnis} -\label{sec:maincls.toc} - -Auf die Titelei folgt normalerweise das -Inhaltsverzeichnis\Index{Inhaltsverzeichnis}. Häufig findet man nach -dem Inhaltsverzeichnis auch noch die Verzeichnisse der -Gleitumgebungen, beispielsweise von Tabellen und Abbildungen (siehe -\autoref{sec:maincls.floats}). - -\begin{Declaration} - \Macro{tableofcontents}\\ - \Macro{contentsname} -\end{Declaration}% -\BeginIndex{Cmd}{tableofcontents}% -\BeginIndex{Cmd}{contentsname}% -Die Ausgabe des Inhaltsverzeichnisses erreicht man mit -\Macro{tableofcontents}. Um ein korrektes Inhaltsverzeichnis zu erhalten, sind -nach jeder Änderung mindestens zwei \LaTeX-Läufe notwendig. Mit der Option -\Option{liststotoc} kann erreicht werden, dass das Abbildungs- und das -Tabellenverzeichnis im Inhaltsverzeichnis aufgeführt werden. Mit -\Option{idxtotoc} existiert auch eine entsprechende Option für den Index. Im -klassischen Buchdruck ist dies eher unüblich. Das Literaturverzeichnis findet -man etwas häufiger im Inhaltsverzeichnis aufgeführt. Auch hierfür gibt es mit -\Option{bibtotoc} und \Option{bibtotocnumbered} Optionen. Diese Optionen sind -in \autoref{sec:maincls.tocOptions}, -\autopageref{desc:maincls.option.liststotoc} näher erläutert. - -\begin{Explain} -Das Inhaltsverzeichnis wird als nicht nummeriertes Kapitel gesetzt und -unterliegt damit den Seiteneffekten der \Macro{chapter*}-Anweisung, die in -\autoref{sec:maincls.structure}, \autopageref{desc:maincls.macro.chapter*} -genannt sind. Allerdings werden bei Verwendung automatischer -Kolumnentitel\Index{Kolumnentitel>automatisch} diese sowohl für linke als auch -rechte Seiten korrekt mit der Überschrift des Inhaltsverzeichnisses belegt. - -Der Text der Überschrift ist im Makro \Macro{contentsname} abgelegt. Wenn Sie -ein Sprachpaket wie \Package{babel} verwenden, beachten Sie vor der -Umdefinierung dieses Makros bitte die Anleitung des Sprachpakets. -\end{Explain}% -\EndIndex{Cmd}{tableofcontents}% -\EndIndex{Cmd}{contentsname}% - -Für den Aufbau des Inhaltsverzeichnisses gibt es zwei Varianten. Bei der -Standardvariante werden die Gliederungsebenen so eingerückt, dass die -Gliederungsnummer jeweils linksbündig mit dem Text der nächst höheren Ebene -abschließt. Der Platz für die Gliederungsnummer ist dadurch jedoch limitiert -und reicht für etwas mehr als 1,5 Stellen je Gliederungsebene. Sollte dies zu -einem Problem werden, lässt sich über die Option \Option{tocleft} ein -Verhalten einstellen, bei dem alle Einträge des Inhaltsverzeichnisses -linksbündig untereinander gesetzt werden. Wie in -\autoref{sec:maincls.tocOptions}, \autopageref{desc:maincls.option.tocleft} -erläutert wird, werden dafür mehrere \LaTeX{}-Durchläufe benötigt. - -Der Eintrag für die oberste Gliederungsebene unter \Macro{part}, also -\Macro{chapter} bei \Class{scrbook}\IndexClass{scrbook} und -\Class{scrreprt}\IndexClass{scrreprt} beziehungsweise \Macro{section} bei -\Class{scrartcl}\IndexClass{scrartcl}, sowie der Gliederungsebene \Macro{part} -selbst wird nicht eingerückt. Gleichzeitig befinden sich zwischen dem Text der -Gliederungsebene und der Seitenzahl keine Pünktchen. Die typografischen Gründe -dafür liegen in der normalerweise anderen Schriftart sowie der erwünschten -Hervorhebung. Das Inhaltsverzeichnis dieser Anleitung ist mit den -Voreinstellungen gesetzt und dient als Beispiel. -Die\ChangedAt{v2.97c}{\Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} -Schrift dieser beiden oberen Inhaltsverzeichniseinträge ist außerdem über die -Elemente \FontElement{partentry}\IndexFontElement{partentry} und -\FontElement{chapterentry}\IndexFontElement{chapterentry} -bzw. \FontElement{sectionentry}\IndexFontElement{sectionentry} -einstellbar. Die Schrift der Seitenzahlen kann davon abweichend über die -Elemente -\FontElement{partentrypagenumber}\IndexFontElement{partentrypagenumber} und -\FontElement{chapterentrypagenumber}\IndexFontElement{chapterentrypagenumber} -bzw. -\FontElement{sectionentrypagenumber}\IndexFontElement{sectionentrypagenumber} -eingestellt werden (siehe auch \autoref{sec:maincls.font}, ab -\autopageref{sec:maincls.font}, sowie -\autoref{tab:maincls.elementsWithoutText}). Die Voreinstellungen der Elemente -ist \autoref{tab:maincls.tocelements} zu entnehmen. -\begin{table} - \centering - \caption{Schriftvoreinstellungen für die Elemente des Inhaltsverzeichnisses} - \begin{tabular}{ll} - \toprule - Element & Voreinstellung \\ - \midrule - \FontElement{partentry} & - \Macro{usekomafont}\PParameter{disposition}\Macro{large} \\ - \FontElement{partentrypagenumber} & \\ - \FontElement{chapterentry} & \Macro{usekomafont}\PParameter{disposition} - \\ - \FontElement{chapterentrypagenumber} & \\ - \FontElement{sectionentry} & \Macro{usekomafont}\PParameter{disposition} - \\ - \FontElement{sectionentrypagenumber} & \\ - \bottomrule - \end{tabular} - \label{tab:maincls.tocelements} -\end{table} - -\begin{Declaration} - \Counter{tocdepth} -\end{Declaration}% -\BeginIndex{Counter}{tocdepth}% -Normalerweise werden bei den Klassen \Class{scrbook} und \Class{scrreprt} die -Gliederungsebenen \Macro{part} bis \Macro{subsection} und bei der Klasse -\Class{scrartcl} die Ebenen \Macro{part} bis \Macro{subsubsection} in das -Inhaltsverzeichnis aufgenommen. Gesteuert wird dies über den Zähler -\Counter{tocdepth}. Dabei steht der Wert \(-\)1 für \Macro{part}, 0 für -\Macro{chapter} und so weiter. Durch Setzen oder Erhöhen oder Verringern des -Zählers kann bestimmt werden, bis zu welcher Gliederungsebene Einträge in das -Inhaltsverzeichnis erfolgen sollen. Dies ist übrigens bei den Standardklassen -ganz genauso. - -Bei Verwendung des \Package{scrpage2}-Pakets\IndexPackage{scrpage2} -(siehe \autoref{cha:scrpage}) muss man sich nicht die nummerischen -Werte der einzelnen Gliederungsebenen merken. Dann stehen dafür die -Makros \Macro{chapterlevel}, \Macro{sectionlevel} und so weiter bis -hinunter zu \Macro{subparagraphlevel} zur Verfügung. -\begin{Example} - Angenommen, Sie setzen einen Artikel, bei dem die Gliederungsebene - \Macro{subsubsection} verwendet wird. Gehen wir weiter davon aus, - dass Sie diese Gliederungsebene aber nicht im Inhaltsverzeichnis - haben wollen. Dann könnte die Präambel Ihres Dokuments wie folgt - aussehen: -\begin{lstlisting} - \documentclass{scrartcl} - \setcounter{tocdepth}{2} -\end{lstlisting} - Sie setzen den Zähler \Counter{tocdepth} also auf 2, weil Sie - wissen, dass dies der Wert für \Macro{subsection} ist. Wissen Sie - stattdessen nur, dass normalerweise bei \Class{scrartcl} Einträge in - das Inhaltsverzeichnis bis zur Ebene \Macro{subsubsection} erfolgen, - können Sie auch einfach vom voreingestellten Wert des Zählers - \Counter{tocdepth} eins abziehen: -\begin{lstlisting} - \documentclass{scrartcl} - \addtocounter{tocdepth}{-1} -\end{lstlisting} - Wieviel Sie von \Counter{tocdepth} subtrahieren oder dazu addieren - müssen, kön"-nen Sie natürlich auch einfach nach einem ersten - \LaTeX-Lauf im Inhaltsverzeichnis abzählen. -\end{Example} -\iftrue -Ein kleiner Tipp, damit Sie sich nicht merken müssen, welche Gliederungsebene -welche Nummer hat: Einfach im Inhaltsverzeichnis abzählen wieviele Ebenen mehr -oder weniger Sie benötigen und dann wie in obigem Beispiel mit -\Macro{addtocounter} zu \Counter{tocdepth} addieren oder davon subtrahieren.% -\fi -\iffalse -Ein kleiner Tip am Rande: In obigem Beispiel benötigen Sie immer -irgendein Vorwissen. Es geht aber auch ohne indem Sie zunächst zwei -\LaTeX-Läufe durchführen. Dann zählen Sie am Inhaltsverzeichnis ab, -wieviele Ebenen Sie zu \Counter{tocdepth} hinzuaddieren oder davon -abziehen müssen. Dies erledigen Sie dann wie eben mit Hilfe von -\Macro{addtocounter} in der Präambel Ihres Dokuments.% -\fi - -\KOMAScript{} hat schon immer versucht, im Inhaltsverzeichnis Umbrüche -unmittelbar zwischen einer Gliederungsebene und der zugehörigen Unterebene, -also beispielsweise zwischen einer Kapitel- und der zugehöriger erster -Abschnittsüberschrift, zu vermeiden. Leider funktionierte dieser Mechanismus -bis Version~2.96 sehr schlecht bis gar nicht. In -Version~2.96a\ChangedAt{v2.96a}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} wurde er -erheblich verbessert und sollte nun immer funktionieren. Allerdings kann dies -zu Umbruchänderungen im Inhaltsverzeichnis führen. Daher ist der neue -Mechanismus nur aktiv, wenn die Kompatibilität nicht auf Version~2.96 oder -kleiner eingestellt ist (siehe Option \Option{version}, -\autoref{sec:maincls.compatibilityOptions}, -\autopageref{desc:maincls.option.version}). Der Mechanismus funktioniert auch -nicht mehr, wenn die Befehle zur Erzeugung der Inhaltsverzeichniseinträge -umdefiniert werden, etwa bei Verwendung des Pakets \Package{tocloft}. -% -\EndIndex{Counter}{tocdepth}% - - -\section{Die Verzeichnisse der Gleitumgebungen} - -In der Regel findet man die Verzeichnisse der -Gleitumgebungen\index{Gleitumgebung}, also das -\index{Tabellen>Verzeichnis der}Tabellen- und das -Abbildungsverzeichnis\index{Abbildungen>Verzeichnis der}, unmittelbar nach -dem Inhaltsverzeichnis. In einigen Dokumenten wandern diese auch in -den Anhang. Der Autor bevorzugt jedoch die Platzierung unmittelbar -nach dem Inhaltsverzeichnis. Daher erfolgt die Erklärung auch in diesem -Abschnitt. -\begin{Declaration} - \Macro{listoftables}\\ - \Macro{listoffigures}\\ - \Macro{listtablename}\\ - \Macro{listfigurename} -\end{Declaration} -\BeginIndex{Cmd}{listoftables}% -\BeginIndex{Cmd}{listoffigures}% -\BeginIndex{Cmd}{listtablename}% -\BeginIndex{Cmd}{listfigurename}% -Mit diesen Anweisungen kann ein Verzeichnis der Tabellen beziehungsweise der -Abbildungen ausgegeben werden. Änderungen, die Auswirkungen auf diese -Verzeichnisse haben, werden erst nach zwei \LaTeX{}-Läufen sichtbar. Die Form -der Verzeichnisse kann durch die Optionen \Option{listsindent} und -\Option{listsleft} beeinflusst werden (siehe -\autoref{sec:maincls.listsOptions}, -\autopageref{desc:maincls.option.listsleft}). Darüber hinaus wirken sich -indirekt die Optionen \Option{liststotoc} und \Option{liststotocnumbered} aus -(siehe \autoref{sec:maincls.tocOptions}, -\autopageref{desc:maincls.option.liststotoc}). - -\begin{Explain} -Der Text der Überschriften der beiden Verzeichnisse ist in den Makros -\Macro{listtablename} und \Macro{listfigurename} abgelegt. Wenn Sie -ein Sprachpaket wie \Package{babel} verwenden, beachten Sie vor der -Umdefinierung dieser Makros bitte die Anleitung des Sprachpakets. -\end{Explain} -% -\EndIndex{Cmd}{listoftables}% -\EndIndex{Cmd}{listoffigures}% -\EndIndex{Cmd}{listtablename}% -\EndIndex{Cmd}{listfigurename}% - - - -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Der Text} -\label{sec:maincls.mainText} - -In diesem Abschnitt finden Sie alles, was \KOMAScript{} für die -Erstellung des eigentlichen Textes bereitstellt. Dies ist der Teil, -auf den Sie sich bei einem Dokument zunächst konzentrieren -sollten. Selbstverständlich gehören dazu auch Tabellen, Abbildungen -und vergleichbares Material. - - -\subsection[Abgrenzung]{Abgrenzung\protect\OnlyAt{\Class{scrbook}}} -\label{sec:maincls.separation} - -Bevor wir tatsächlich zum Text kommen, sind noch drei Anweisungen kurz -anzusprechen, die es bei der Standardklasse \Class{book} und der -{\KOMAScript}-Klasse \Class{scrbook} gibt. Sie können bei einem Buch zur -Abgrenzung des \emph{Vorspanns}\Index{Vorspann}, des -\emph{Hauptteils}\Index{Hauptteil} und des \emph{Nachspanns}\Index{Nachspann} -verwendet werden. - -\begin{Declaration} - \Macro{frontmatter}\\ - \Macro{mainmatter}\\ - \Macro{backmatter} -\end{Declaration}% -\BeginIndex{Cmd}{frontmatter}% -\BeginIndex{Cmd}{mainmatter}% -\BeginIndex{Cmd}{backmatter}% -Mit \Macro{frontmatter} wird der Vorspann eingeleitet. Im Vorspann -werden die nummerierten Seiten mit römischen Seitenzahlen versehen. -Kapitelüberschriften sind im Vorspann nicht nummeriert. -Abschnittsüberschriften wären jedoch nummeriert, gingen von -Kapitelnummer 0 aus und wären außerdem über Kapitelgrenzen hinweg -durchgehend nummeriert. Dies spielt jedoch keine Rolle, da der -Vorspann allenfalls für die Titelei, das -Inhalts-\Index{Inhaltsverzeichnis}, -Abbildungs-\Index{Abbildungen>Verzeichnis der} und -Tabellenverzeichnis\Index{Tabellen>Verzeichnis der} und ein -Vorwort\Index{Vorwort} verwendet wird. Das Vorwort kann also als -normales Kapitel gesetzt werden. Ein Vorwort sollte niemals in -Abschnitte unterteilt, sondern möglichst kurz gefasst werden. Im -Vorwort wird also keine tiefere Gliederungsebene als Kapitel benötigt. - -Für den Fall, dass der Anwender dies anders sieht und nummerierte -Abschnitte\Index{Abschnitt>Nummer} in den Kapiteln des Vorspanns haben will, -enthält ab Version~2.97e\ChangedAt{v2.97e}{\Class{scrbook}} die Nummerierung -der Abschnitte keine Kapitelnummer. Diese Änderung gibt es nur, wenn die -Kompatibilität min. auf Version~2.97e eingestellt ist (siehe Option -\Option{version}, \autoref{sec:maincls.compatibilityOptions}, -\autopageref{desc:maincls.option.version}). Es wird ausdrücklich darauf -hingewiesen, dass dadurch bezüglich der Nummern eine Verwechslung mit -Kapitelnummern gegeben ist! Die Verwendung von \Macro{addsec} und -\Macro{section*} (siehe \autoref{sec:maincls.structure}, -\autopageref{desc:maincls.macro.section*} und -\autopageref{desc:maincls.macro.addsec}) sind aus Sicht des Autors im Vorspann -deshalb unbedingt vorzuziehen! - -Ab Version~2.97e\ChangedAt{v2.97e}{\Class{scrbook}} enhalten auch die Nummern -für Gleitumgebungen wie Tabellen\Index{Tabellen>Nummern} und -Abbildungen\Index{Abbildungen>Nummern} und die -Gleichungsnummern\Index{Gleichungen>Nummern} im Vorspann keinen -Kapitelanteil. Auch dies erfordert eine entsprechende -Kompatibilitätseinstellung (siehe Option \Option{version}, -\autoref{sec:maincls.compatibilityOptions}, -\autopageref{desc:maincls.option.version}). - -Mit \Macro{mainmatter} wird der Hauptteil eingeleitet. Existiert kein -Vorspann, so kann diese Anweisung auch entfallen. Im Hauptteil sind -arabische Seitenzahlen voreingestellt. Die Seitenzählung beginnt im -Hauptteil neu mit 1. - -Mit \Macro{backmatter} wird der Nachspann eingeleitet. Was zum -Nachspann gehört, ist unterschiedlich. Manchmal wird im Nachspann nur -das Literaturverzeichnis\Index{Literaturverzeichnis}, manchmal nur -der Index\Index{Index} gesetzt. Manchmal erscheint der gesamte -Anhang im Nachspann. Der Nachspann gleicht bezüglich der -Gliederungsüberschriften dem Vorspann. Eine getrennte Seitennummerierung ist -jedoch nicht vorgesehen. Falls Sie dies ebenfalls benötigen, bedienen Sie sich -bitte der Anweisung \Macro{pagenumbering} aus \autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.pagenumbering}. -% -\EndIndex{Cmd}{frontmatter}% -\EndIndex{Cmd}{mainmatter}% -\EndIndex{Cmd}{backmatter}% - - -\subsection{Gliederung}\Index[indexmain]{Gliederung} -\label{sec:maincls.structure} - -Unter der Gliederung versteht man die Einteilung eines Dokuments in -Teile, Kapitel, Abschnitte und weitere Gliederungsebenen. - -\begin{Declaration} - \Macro{part}\OParameter{Kurzform}\Parameter{Überschrift}\\ - \Macro{chapter}\OParameter{Kurzform}\Parameter{Überschrift}\\ - \Macro{section}\OParameter{Kurzform}\Parameter{Überschrift}\\ - \Macro{subsection}\OParameter{Kurzform}\Parameter{Überschrift}\\ - \Macro{subsubsection}\OParameter{Kurzform}\Parameter{Überschrift}\\ - \Macro{paragraph}\OParameter{Kurzform}\Parameter{Überschrift}\\ - \Macro{subparagraph}\OParameter{Kurzform}\Parameter{Überschrift} -\end{Declaration}% -\BeginIndex{Cmd}{part}\Index[indexmain]{Teil}% -\BeginIndex{Cmd}{chapter}\Index[indexmain]{Kapitel}% -\BeginIndex{Cmd}{section}\Index[indexmain]{Abschnitt}% -\BeginIndex{Cmd}{subsection}% -\BeginIndex{Cmd}{subsubsection}% -\BeginIndex{Cmd}{paragraph}% -\BeginIndex{Cmd}{subparagraph}% -Die Standardgliederungsbefehle funktionieren bei {\KOMAScript} beinahe genau -wie bei den Standardklassen. So kann ganz normal über ein optionales Argument -ein abweichender Text für den Kolumnentitel und das Inhaltsverzeichnis -vorgegeben werden. - -Die Überschrift der Teile-Ebene (\Macro{part}) unterscheidet sich von den -anderen Gliederungsebenen dadurch, dass sie unabhängig von den übrigen Ebenen -nummeriert wird. Das bedeutet, dass die Kapitel-Ebene (bei \Class{scrbook} -oder \Class{scrreprt}) bzw. die Abschnitt-Ebene (bei \Class{scrartcl}) über -alle Teile hinweg durchgehend nummeriert wird. Desweiteren steht bei den -Klassen \Class{scrbook} und \Class{scrreprt} die Überschrift dieser Ebene -zusammen mit ihrer Präambel (siehe \Macro{setpartpreamble}, -\autopageref{desc:maincls.macro.setpartpreamble}) alleine auf einer Seite. - -\Macro{chapter}\OnlyAt{\Class{scrartcl}} existiert nur bei -Buch- und Berichtklassen, also bei \Class{book}, \Class{scrbook}, -\Class{report} und \Class{scrreport}, nicht jedoch bei den Artikelklassen -\Class{article} und \Class{scrartcl}. \Macro{chapter} unterscheidet sich bei -{\KOMAScript} außerdem gravierend von der Version der Standardklassen. Bei den -Standardklassen wird die Kapitelnummer mit dem Präfix »Kapitel« -beziehungsweise dem Kapitelnamen in der gewählten Sprache in einer Zeile vor -dem eigentlichen Text der Überschrift ausgegeben. Diese sehr mächtige Form -wird bei {\KOMAScript} durch eine einfache Nummer vor dem Text abgelöst, lässt -sich aber durch die Option \Option{chapterprefix} wieder einstellen (siehe -\autoref{sec:maincls.layoutOptions}, -\autopageref{desc:maincls.option.chapterprefix}). - -Bitte beachten Sie, dass \Macro{part} und \Macro{chapter} bei \Class{scrbook} -und \Class{scrreprt}\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} den -Seitenstil für eine Seite umschaltet. Der jeweilige Seitenstil ist bei -\KOMAScript{} in den Makros \Macro{partpagestyle} und \Macro{chapterpagestyle} -abgelegt (siehe \autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.titlepagestyle}). - -\BeginIndex[indexother]{}{Schriftart}% -\BeginIndex[indexother]{}{Schriftgroesse=Schriftgröße}% -Die Schriftart aller Gliederungsebenen\ChangedAt{v2.8p}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % -kann mit der in \autoref{sec:maincls.font} beschriebenen Anweisungen -\Macro{setkomafont}\IndexCmd{setkomafont} und -\Macro{addtokomafont}\IndexCmd{addtokomafont} bestimmt werden. Dabei wird -zunächst generell das Element -\FontElement{disposition}\IndexFontElement{disposition} und anschließend -zusätzlich je Gliederungsebene ein spezifisches Element verwendet (siehe -\autoref{tab:maincls.elementsWithoutText}, -\autopageref{tab:maincls.elementsWithoutText}). Die Schriftart für das Element -\FontElement{disposition}\IndexFontElement{disposition} ist als -\Macro{normalcolor}""\Macro{sffamily}""\Macro{bfseries} vordefiniert. Die -Voreinstellungen für die spezifischen Elemente sind mit einer Schriftgröße -vorbelegt und daher von den Klassenoptionen \Option{bigheadings}, -\Option{normalheadings} und \Option{smallheadings} (siehe -\autoref{sec:maincls.fontOptions}, -\autopageref{desc:maincls.option.smallheadings}) abhängig. Sie finden die -Voreinstellungen in \autoref{tab:maincls.structureElementsFont}. -% -\begin{table} - \centering% - \caption[{Schriftvoreinstellungen für die Elemente der Gliederung - bei\newline \Class{scrbook} und \Class{scrreprt}}]{Schriftvoreinstellungen - für die Elemente der Gliederung bei \Class{scrbook} und \Class{scrreprt}} - \begin{tabular}{lll} - \toprule - Klassenoption & Element & Voreinstellung \\ - \midrule - \Option{bigheadings} - & \FontElement{part}\IndexFontElement{part} - & \Macro{Huge} \\ - & \FontElement{partnumber}\IndexFontElement{partnumber} - & \Macro{huge} \\ - & \FontElement{chapter}\IndexFontElement{chapter} - & \Macro{huge} \\ - & \FontElement{section}\IndexFontElement{section} - & \Macro{Large} \\ - & \FontElement{subsection}\IndexFontElement{subsection} - & \Macro{large} \\ - & \FontElement{subsubsection}\IndexFontElement{subsubsection} - & \Macro{normalsize} \\ - & \FontElement{paragraph}\IndexFontElement{paragraph=} - & \Macro{normalsize} \\ - & \FontElement{subparagraph}\IndexFontElement{subparagraph} - & \Macro{normalsize} \\[1ex] - \Option{normalheadings} - & \FontElement{part} & \Macro{huge} \\ - & \FontElement{partnumber} & \Macro{huge} \\ - & \FontElement{chapter} & \Macro{LARGE} \\ - & \FontElement{section} & \Macro{Large} \\ - & \FontElement{subsection} & \Macro{large} \\ - & \FontElement{subsubsection} & \Macro{normalsize} \\ - & \FontElement{paragraph} & \Macro{normalsize} \\ - & \FontElement{subparagraph} & \Macro{normalsize} \\[1ex] - \Option{smallheadings} - & \FontElement{part} & \Macro{LARGE} \\ - & \FontElement{partnumber} & \Macro{LARGE} \\ - & \FontElement{chapter} & \Macro{Large} \\ - & \FontElement{section} & \Macro{large} \\ - & \FontElement{subsection} & \Macro{normalsize} \\ - & \FontElement{subsubsection} & \Macro{normalsize} \\ - & \FontElement{paragraph} & \Macro{normalsize} \\ - & \FontElement{subparagraph} & \Macro{normalsize} \\ - \bottomrule - \end{tabular} - \label{tab:maincls.structureElementsFont} -\end{table} - -\begin{Example} - Angenommen, Sie verwenden die Klassenoption \Option{bigheadings} und - stellen fest, dass die sehr großen Überschriften von Teildokumenten - zu fett wirken. Nun könnten Sie natürlich wie folgt verfahren: -\begin{lstlisting} - \setkomafont{disposition}{\normalcolor\sffamily} - \part{\appendixname} - \addtokomafont{disposition}{\bfseries} -\end{lstlisting} - \looseness=-1 - Auf diese Weise würden Sie nur für die eine Überschrift »Anhang« - das Schriftattribut \textbf{Fett} abschalten. Sehr viel komfortabler - und eleganter ist es aber, stattdessen generell für - \Macro{part}-Überschriften eine entsprechende Änderung vorzunehmen. - Das ist wahlweise mit: -\begin{lstlisting} - \addtokomafont{part}{\normalfont\sffamily} - \addtokomafont{partnumber}{\normalfont\sffamily} -\end{lstlisting} - oder einfach mit: -\begin{lstlisting} - \addtokomafont{part}{\mdseries} - \addtokomafont{partnumber}{\mdseries} -\end{lstlisting} - möglich. Die letzte Version ist vorzuziehen, da diese auch dann noch - zum gewünschten Ergebnis führt, wenn Sie später das - Element \FontElement{disposition}\IndexFontElement{disposition} - wie folgt ändern: -\begin{lstlisting} - \setkomafont{disposition}{\normalcolor\bfseries} -\end{lstlisting} - Mit dieser Änderung verzichten Sie darauf, für alle - Gliederungsebenen serifenlose Schrift voreinzustellen. -\end{Example} - -Ich möchte Sie eindringlich davor warnen, die Möglichkeit zur -Schriftumschaltung zu missbrauchen, um wild Schriften, Schriftgrößen und -Schriftattribute miteinander zu mischen. Die Auswahl der richtigen Schrift für -die richtige Aufgabe ist eine Sache für Experten und hat sehr, sehr wenig mit -dem persönlichem Geschmack eines Laien zu tun. Siehe hierzu auch das Zitat am -Ende von \autoref{sec:typearea.tips}, \autopageref{sec:typearea.tips.cite} und -die folgende Erklärung. - -\begin{Explain} - Unterschiedliche Schriften für unterschiedliche Gliederungsebenen - sind mit {\KOMAScript}-Mitteln möglich. Der Laie sollte sie aber - meiden wie der Teufel das Weihwasser. Dies hat typografische Gründe. - - Eine Regel der Typografie besagt, dass man möglichst wenig Schriften - miteinander mischen soll. Serifenlose für die Überschriften scheinen - bereits ein Verstoß gegen diese Regel zu sein. Allerdings muss man - wissen, dass fette, große, serifenbehaftete Buchstaben oft viel zu - mächtig für eine Überschrift sind. Man müsste dann strenggenommen - zumindest auf eine normale statt eine fette oder halbfette Schrift - ausweichen. In tiefen Gliederungsebenen kann das aber wieder zu - schwach sein. Andererseits haben Serifenlose in Überschriften eine - sehr angenehme Wirkung und fast nur für Überschriften eine - Berechtigung. Daher wurde diese Voreinstellung für {\KOMAScript} mit - gutem Grund gewählt. - - Größere Vielfalt sollte aber vermieden werden. Schriftenmischung ist etwas - für Profis. Aus den genannten Gründen sollten Sie bei Verwendung anderer als - der Standard-\TeX-Fonts -- egal ob CM"~\Index{CM-Fonts}, - EC"~\Index{EC-Fonts} oder LM-Fonts\Index{LM-Fonts} -- bezüglich der - Verträglichkeit der serifenlosen und serifenbehafteten Schrift einen - Experten zu Rate ziehen oder die Schrift für das Element - \FontElement{disposition}\IndexFontElement{disposition} vorsichtshalber wie in - obigem Beispiel umdefinieren. Die häufig anzutreffenden Kombinationen Times - mit Helvetica oder Palatino mit Helvetica werden vom Autor als ungünstig - betrachtet. -\end{Explain} -\EndIndex[indexother]{}{Schriftart}% -\EndIndex[indexother]{}{Schriftgroesse=Schriftgröße}% -% -\EndIndex{Cmd}{part}% -\EndIndex{Cmd}{chapter}% -\EndIndex{Cmd}{section}% -\EndIndex{Cmd}{subsection}% -\EndIndex{Cmd}{subsubsection}% -\EndIndex{Cmd}{paragraph}% -\EndIndex{Cmd}{subparagraph}% - - -\begin{Declaration} - \Macro{part*}\Parameter{Überschrift}\\ - \Macro{chapter*}\Parameter{Überschrift}\\ - \Macro{section*}\Parameter{Überschrift}\\ - \Macro{subsection*}\Parameter{Überschrift}\\ - \Macro{subsubsection*}\Parameter{Überschrift}\\ - \Macro{paragraph*}\Parameter{Überschrift}\\ - \Macro{subparagraph*}\Parameter{Überschrift} -\end{Declaration}% -\BeginIndex{Cmd}{part*}% -\BeginIndex{Cmd}{chapter*}% -\BeginIndex{Cmd}{section*}% -\BeginIndex{Cmd}{subsection*}% -\BeginIndex{Cmd}{subsubsection*}% -\BeginIndex{Cmd}{paragraph*}% -\BeginIndex{Cmd}{subparagraph*}% -Ebenso existieren die Sternvarianten der Gliederungsbefehle, bei denen keine -Nummerierung\Index{Nummerierung} erfolgt, kein -Kolumnentitel\Index{Kolumnentitel>automatisch} gesetzt wird und kein Eintrag -ins Inhaltsverzeichnis\Index{Inhaltsverzeichnis} stattfindet. Der Verzicht -auf den Kolumnentitel hat übrigens einen oftmals unerwünschten Effekt. Geht -beispielsweise ein mit \Macro{chapter*} gesetztes Kapitel über mehrere Seiten, -so taucht plötzlich der Kolumnentitel des letzen Kapitels wieder auf. -{\KOMAScript} bietet dafür aber eine Lösung, die im Folgenden beschrieben -wird. \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}\Macro{chapter*} existiert -selbstverständlich nur bei Buch- und Berichtklassen, also bei \Class{book}, -\Class{scrbook}, \Class{report} und \Class{scrreport}, nicht jedoch bei den -Artikelklassen \Class{article} und \Class{scrartcl}. - -Bitte beachten Sie, dass \Macro{part*} und \Macro{chapter*} den Seitenstil für -eine Seite umschaltet. Der jeweilige Seitenstil ist bei \KOMAScript{} in den -Makros \Macro{partpagestyle} und \Macro{chapterpagestyle} abgelegt (siehe -\autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.titlepagestyle}). - -Bezüglich der Möglichkeiten der Schriftumschaltung\ChangedAt{v2.8p}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % -gilt das Gleiche wie zuvor in der Erklärung zu den sternlosen -Varianten geschrieben. Die Elemente tragen die gleichen Namen, da sie -nicht Varianten, sondern Gliederungsebenen bezeichnen. -% -\EndIndex{Cmd}{part*}% -\EndIndex{Cmd}{chapter*}% -\EndIndex{Cmd}{section*}% -\EndIndex{Cmd}{subsection*}% -\EndIndex{Cmd}{subsubsection*}% -\EndIndex{Cmd}{paragraph*}% -\EndIndex{Cmd}{subparagraph*}% - -\iffalse -Bei den Standardklassen gibt es keine weiteren Gliederungsbefehle. Es -existieren also insbesondere keine Anweisungen, mit denen man nicht -nummerierte Kapitel oder nicht nummerierte Abschnitte erzeugen kann, -die ins Inhaltsverzeichnis aufgenommen werden und bei denen ein -automatischer Kolumentitel erzeugt wird. -\fi -\begin{Declaration} - \Macro{addpart}\OParameter{Kurzform}\Parameter{Überschrift}\\ - \Macro{addpart*}\Parameter{Überschrift}\\ - \Macro{addchap}\OParameter{Kurzform}\Parameter{Überschrift}\\ - \Macro{addchap*}\Parameter{Überschrift}\\ - \Macro{addsec}\OParameter{Kurzform}\Parameter{Überschrift}\\ - \Macro{addsec*}\Parameter{Überschrift} -\end{Declaration}% -\BeginIndex{Cmd}{addpart}% -\BeginIndex{Cmd}{addpart*}% -\BeginIndex{Cmd}{addchap}% -\BeginIndex{Cmd}{addchap*}% -\BeginIndex{Cmd}{addsec}% -\BeginIndex{Cmd}{addsec*}% -{\KOMAScript} bietet über die Gliederungsbefehle der Standardklassen hinaus -die Anweisungen \Macro{addpart}, \Macro{addchap} und \Macro{addsec}. Diese -ähneln bis auf die fehlende Nummerierung sehr den Standardanweisungen -\Macro{part}, \Macro{chapter} und \Macro{section}. Sie erzeugen also sowohl -einen automatischen Kolumnentitel als auch einen Eintrag ins -Inhaltsverzeichnis. - -Die Sternvarianten \Macro{addchap*} und \Macro{addsec*} gleichen hingegen den -Standardanweisungen \Macro{chapter*} und \Macro{section*} mit einem winzigen -aber wichtigen Unterschied: Die Kolumnentitel werden gelöscht. Dadurch wird -der oben erwähnte Effekt veralteter Kolumnentitel ausgeschlossen. Stattdessen -bleibt der Kolumnentitel auf Folgeseiten leer. -\OnlyAt{\Class{scrartcl}}\Macro{addchap} und \Macro{addchap*} existieren -selbstverständlich nur bei Buch- und Berichtklassen, also bei \Class{scrbook} -und \Class{scrreport}, nicht jedoch bei der Artikelklasse \Class{scrartcl}. - -Die Anweisung \Macro{addpart} erstellt entsprechend einen nicht -nummerierten Dokumentteil mit einem Eintrag ins Inhaltsverzeichnis. Da -bereits \Macro{part} und \Macro{part*} den Kolumnentitel löschen, -ergibt sich hier nicht das oben genannte Problem mit veralteten -Kolumnentiteln. Die Sternvariante \Macro{addpart*} ist daher identisch -mit der Sternvariante \Macro{part*} und wurde nur aus -Konsistenzgründen definiert. - -Bitte beachten Sie, dass \Macro{addpart} und \Macro{addchap} und deren -Sternvarianten den Seitenstil für eine Seite umschaltet. Der jeweilige -Seitenstil ist in den Makros \Macro{partpagestyle} und -\Macro{chapterpagestyle} abgelegt (siehe -\autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.titlepagestyle}). - -Bezüglich der Möglichkeiten der Schriftumschaltung\ChangedAt{v2.8p}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % -gilt das gleiche wie zuvor in der Erklärung zu \Macro{part*}, -\Macro{chapter*} und \Macro{section*} geschrieben. Die Elemente -tragen die gleichen Namen, da sie nicht Varianten, sondern -Gliederungsebenen bezeichnen. -% -\EndIndex{Cmd}{addpart}% -\EndIndex{Cmd}{addpart*}% -\EndIndex{Cmd}{addchap}% -\EndIndex{Cmd}{addchap*}% -\EndIndex{Cmd}{addsec}% -\EndIndex{Cmd}{addsec*}% - - -\begin{Declaration} - \Macro{minisec}\Parameter{Überschrift} -\end{Declaration}% -\BeginIndex{Cmd}{minisec}% -Manchmal ist eine Art Überschrift\Index{Ueberschriften=Überschriften} -wünschenswert, die zwar hervorgehoben wird, ansonsten aber eng mit dem -nachfolgenden Text zusammenhängt. Eine solche Überschrift soll dann -ohne große Abstände gesetzt werden. - -Der Befehl \Macro{minisec} bewirkt genau eine derartige Überschrift. -Diese Überschrift ist keiner Gliederungsebene zugeordnet. Eine solche -\emph{Mini-section} wird nicht in das Inhaltsverzeichnis aufgenommen -und erhält auch keine Nummerierung. -\begin{Example} - Sie haben einen Bausatz für eine Mausefalle entwickelt und wollen - diesen getrennt nach den benötigten Materialien und der Anleitung für - die Montage beschreiben. Das könnte so gemacht werden: -\begin{lstlisting} - \minisec{Bauteile} - - \begin{flushleft} - 1 Brett ($100\times 50 \times 12$)\\ - 1 Bierflaschenschnappverschluss\\ - 1 Kugelschreiberfeder\\ - 1 Reißzwecke\\ - 2 Schrauben\\ - 1 Hammer\\ - 1 Messer - \end{flushleft} - - \minisec{Montage} - - Zunächst suche man das Mauseloch. Dann lege man die - Reißzwecke innen unmittelbar hinter das Loch, damit - bei den folgenden Aktionen die Maus nicht - entschlüpfen kann. - Anschließend klopfe man mit dem Hammer den - Bierflaschenschnappverschluss in das Mauseloch. - Sollte der Verschluss nicht groß genug sein, um das - Loch vollständig und dauerhaft zu verschließen, - nehme man stattdessen das Brett und schraube es - unter Zuhilfenahme der beiden Schrauben und des - Messers vor das Loch. Statt des Messers kann - selbstverständlich auch ein Schraubendreher - verwendet werden. - - Die Kugelschreiberfeder ist dem Tierschutz zum - Opfer gefallen. -\end{lstlisting} - Das Ganze sieht anschließend so aus: - \begin{ShowOutput}[\baselineskip]\setlength{\parindent}{1em} - \minisec{Bauteile} - - \begin{flushleft} - 1 Brett ($100\times 50 \times 12$)\\ - 1 Bierflaschenschnappverschluss\\ - 1 Kugelschreiberfeder\\ - 1 Reißzwecke\\ - 2 Schrauben\\ - 1 Hammer\\ - 1 Messer - \end{flushleft} - - \minisec{Montage} - - Zunächst suche man das Mauseloch. Dann lege man die - Reißzwecke innen unmittelbar hinter das Loch, damit - bei den folgenden Aktionen die Maus nicht - entschlüpfen kann. - Anschließend klopfe man mit dem Hammer den - Bierflaschenschnappverschluss in das Mauseloch. - Sollte der Verschluss nicht groß genug sein, um das - Loch vollständig und dauerhaft zu verschließen, - nehme man stattdessen das Brett und schraube es - unter Zuhilfenahme der beiden Schrauben und des - Messers vor das Loch. Statt des Messers kann - selbstverständlich auch ein Schraubendreher - verwendet werden. - - Die Kugelschreiberfeder ist dem Tierschutz zum - Opfer gefallen. -% Mit der Kugelschreiberfeder hat es eine besondere -% Bewandtnis. Sie stammt noch aus dem Selbstbauprojekt -% »Mauseschnappfalle«, das dem Tierschutz zum Opfer gefallen ist. - \end{ShowOutput} -\end{Example} - -Die Schriftart des Gliederungsbefehls \Macro{minisec} kann über die Elemente -\FontElement{disposition}\IndexFontElement{disposition} und -\FontElement{minisec}\IndexFontElement{minisec}\ChangedAt{v2.96a}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} beeinflusst -werden (siehe \autoref{tab:maincls.elementsWithoutText}, -ab \autopageref{tab:maincls.elementsWithoutText}). Die Voreinstellung für das -Element \FontElement{minisec} ist leer, so dass in der Voreinstellung direkt -das Element \FontElement{disposition} wirkt. -% -\EndIndex{Cmd}{minisec}% - - -\begin{Declaration} - \Macro{raggedsection} -\end{Declaration}% -\BeginIndex{Cmd}{raggedsection}% -Bei den Standardklassen werden die Überschriften ganz normal im -Blocksatz ausgegeben. Dadurch können in den Überschriften Trennungen -auf"|treten und mehrzeilige Überschriften werden auf Textbreite gedehnt. -Dieses Vorgehen ist in der Typografie eher unüblich. {\KOMAScript} -setzt Überschriften daher in linksbündigem Flattersatz mit hängendem -Einzug. Verantwortlich ist dafür die Anweisung \Macro{raggedsection}, -die vordefiniert ist als: -\begin{lstlisting} - \newcommand*{\raggedsection}{\raggedright} -\end{lstlisting} -Diese Anweisung kann mit \Macro{renewcommand} umdefiniert werden. -\begin{Example} - Sie wollen auch für Überschriften Blocksatz. Dazu schreiben Sie in - die Präambel Ihres Dokuments: -\begin{lstlisting} - \renewcommand*{\raggedsection}{} -\end{lstlisting} - oder kürzer: -\begin{lstlisting} - \let\raggedsection\relax -\end{lstlisting} - Sie erreichen somit eine ähnliche Formatierung der Überschriften wie - bei den Standardklassen. Noch ähnlicher wird es, wenn sie diese - Änderung mit der oben vorgestellten Änderung für das Element - \FontElement{disposition}\IndexFontElement{disposition} - kombinieren. -\end{Example} -% -\EndIndex{Cmd}{raggedsection}% - - -\begin{Explain}% -\begin{Declaration} - \Macro{partformat}\\ - \Macro{chapterformat}\\ - \Macro{othersectionlevelsformat}\Parameter{Gliederungsname}\\ - \Macro{autodot} -\end{Declaration}% -\BeginIndex{Cmd}{partformat}\Index{Teil>Nummer}% -\BeginIndex{Cmd}{chapterformat}\Index{Kapitel>Nummer}% -\BeginIndex{Cmd}{othersectionlevelsformat}\Index{Abschnitt>Nummer}% -\BeginIndex{Cmd}{autodot}% - Bekanntlich gibt es bei {\LaTeX} zu jedem mit - \Macro{newcounter}\IndexCmd{newcounter} definierten Zähler eine Anweisung - \Macro{the}\PName{Zählername}\IndexCmd{the\PName{Zählername}}, mit welcher - der Zähler ausgegeben werden kann. Die Darstellung der Zähler für die - einzelnen Gliederungsebenen setzt sich dabei je nach Klasse ab - \Macro{section} (\Class{book}, \Class{scrbook}, \Class{report}, - \Class{scrreprt}) oder ab \Macro{subsection} (\Class{article}, - \Class{scrartcl}) aus der Darstellung des Zählers für die übergeordnete - Ebene, gefolgt von einem Punkt und der arabischen Zahl des - \PName{Zählername}ns der jeweiligen Ebene zusammen. -\end{Explain} - -\KOMAScript{} hat der Ausgabe der Gliederungsnummern eine weitere logische -Ebene zugefügt. Die Zähler werden für die jeweilige Überschrift nicht einfach -nur ausgegeben. Sie werden mit Hilfe der Anweisungen \Macro{partformat}, -\Macro{chapterformat} und \Macro{othersectionlevelsformat} formatiert. -\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Die Anweisung -\Macro{chapterformat} existiert wie auch \Macro{thechapter} selbstverständlich -nicht in der Klasse \Class{scrartcl}, sondern nur in den Klassen -\Class{scrbook} und \Class{scrreprt}. - -Wie bereits in \autoref{sec:maincls.formattingOptions}, -\autopageref{desc:maincls.option.pointlessnumbers} erläutert wurde, müssen gemäß -\cite{DUDEN} die Gliederungsnummern je nach Gliederung mit einem nachfolgenden -Punkt versehen werden oder dieser hat zu entfallen. Die Anweisung -\Macro{autodot} ist bei {\KOMAScript} für die Einhaltung dieser Regel -verantwortlich. Auf den Punkt folgt bei allen Gliederungsebenen außer -\Macro{part} noch ein \Macro{enskip}. Dies entspricht einem Leerraum von -0,5\Unit{em}. - -Die Anweisung \Macro{othersectionlevelsformat} erwartet als Parameter -den Namen der Gliederungsebene, also »\PName{section}«, -»\PName{subsection}« \dots{} In der Voreinstellung gibt es also nur -für die Ebenen \Macro{part} und \Macro{chapter} eigene -Formatieranweisungen, während alle anderen Gliederungsebenen mit Hilfe -einer einzigen Formatieranweisung abgedeckt werden. Dies ist allein -historisch begründet. Als Werner Lemberg für sein \Package{CJK}-Paket -eine entsprechende Erweiterung von {\KOMAScript} angeregt hat, wurde -nur diese Unterscheidung benötigt. - -Die Formatierungsanweisungen können mit Hilfe von \Macro{renewcommand} -umdefiniert werden, um sie eigenen Anforderungen anzupassen. -Nachfolgend finden Sie die Originaldefinitionen aus den -{\KOMAScript}-Klassen: -\begin{lstlisting} - \newcommand*{\partformat}{\partname~\thepart\autodot} - \newcommand*{\chapterformat}{% - \chapappifchapterprefix{\ }\thechapter\autodot\enskip} - \newcommand*{\othersectionlevelsformat}[1]{% - \csname the#1\endcsname\autodot\enskip} -\end{lstlisting} - -\begin{Example} - Angenommen, Sie wollen, dass bei \Macro{part} das Wort »Teil« vor - der Nummer nicht ausgegeben wird. Dann können Sie beispielsweise - folgende Anweisung in die Präambel Ihres Dokuments schreiben: -\begin{lstlisting} - \renewcommand*{\partformat}{\thepart\autodot} -\end{lstlisting} - Genau genommen könnten Sie an dieser Stelle auch auf \Macro{autodot} - verzichten und stattdessen einen festen Punkt setzen. Da \Macro{part} mit - römischen Zahlen nummeriert wird, muss der Punkt laut \cite{DUDEN} folgen. - Allerdings bringen Sie sich dann um die Möglichkeit, eine der Optionen - \Option{pointednumbers} und \Option{pointlessnumbers} einzusetzen und so von - der Regel abzuweichen. Näheres zu den Klassenoptionen siehe - \autoref{sec:maincls.formattingOptions}, - \autopageref{desc:maincls.option.pointlessnumbers}. - - Eine weitere Möglichkeit wäre, die Nummerierung der Abschnitte - so in den Rand zu platzieren, dass der Überschriftentext - links mit dem umgebenden Text abschließt. Dies erreicht man - mit: -\begin{lstlisting} - \renewcommand*{\othersectionlevelsformat}[1]{% - \llap{\csname the#1\endcsname\autodot\enskip}} -\end{lstlisting} - Die wenig bekannte \TeX-Anweisung \Macro{llap}\IndexCmd{llap} sorgt - dabei dafür, dass das Argument links von der aktuellen Position - ausgegeben wird, ohne dass dabei die Position verändert wird. Eine - bessere \LaTeX-Lösung für dieses Problem wäre: -\begin{lstlisting} - \renewcommand*{\othersectionlevelsformat}[1]{% - \makebox[0pt][r]{% - \csname the#1\endcsname\autodot\enskip}} -\end{lstlisting} - Näheres zu den optionalen Argument von \Macro{makebox} ist - \cite{latex:usrguide} zu entnehmen. -\end{Example} -% -\EndIndex{Cmd}{partformat}% -\EndIndex{Cmd}{chapterformat}% -\EndIndex{Cmd}{othersectionlevelsformat}% -\EndIndex{Cmd}{autodot}% - -\begin{Declaration} - \Macro{chapappifchapterprefix}\Parameter{Zusatztext}\\ - \Macro{chapapp} -\end{Declaration}% -\BeginIndex{Cmd}{chapappifchapterprefix}% -\BeginIndex{Cmd}{chapapp}% -\OnlyAt{\vskip -1.55\baselineskip\Class{scrbook}\and\Class{scrreprt}}% -\ChangedAt{v2.8o}{\Class{scrbook}\and\Class{scrreprt}}% -Diese beiden Anweisungen werden nicht nur intern von {\KOMAScript} verwendet, -sondern stehen auch dem Anwender zur Verfügung. Nachfolgend werden sie -beispielsweise für die Umdefinierung anderer Anweisungen verwendet. Bei -Verwendung der Layoutoption \Option{chapterprefix} (siehe -\autoref{sec:maincls.layoutOptions}, -\autopageref{desc:maincls.option.chapterprefix}) setzt -\Macro{chapappifchapterprefix} im Hauptteil des Dokuments das Wort -»Kapitel«\Index{Kapitel>Ueberschrift=Überschrift} in der aktuellen Sprache -gefolgt vom \PName{Zusatztext}. Im Anhang\Index{Anhang} wird stattdessen das -Wort »Anhang« in der aktuellen Sprache, ebenfalls gefolgt vom -\PName{Zusatztext}, ausgegeben. Bei der Einstellung \Option{nochapterprefix} -wird hingegen nichts ausgegeben. - -Die Anweisung \Macro{chapapp} setzt immer das Wort »Kapitel« -beziehungsweise »Anhang«. Dabei spielen die beiden Optionen -\Option{chapterprefix} und \Option{nochapterprefix} keine Rolle. - -Da es Kapitel nur bei den Klassen \Class{scrbook} und \Class{scrreprt} -gibt, existieren die beiden Anweisungen auch nur bei diesen Klassen. -% -\EndIndex{Cmd}{chapappifchapterprefix}% -\EndIndex{Cmd}{chapapp}% - - -\begin{Explain} -\begin{Declaration} - \Macro{chaptermark}\Parameter{Kolumnentitel}\\ - \Macro{sectionmark}\Parameter{Kolumnentitel}\\ - \Macro{subsectionmark}\Parameter{Kolumnentitel}\\ - \Macro{chaptermarkformat}\\ - \Macro{sectionmarkformat}\\ - \Macro{subsectionmarkformat} -\end{Declaration}% -\BeginIndex{Cmd}{chaptermark}\Index{Kapitel}% -\BeginIndex{Cmd}{sectionmark}\Index{Abschnitt}% -\BeginIndex{Cmd}{subsectionmark}% -\BeginIndex{Cmd}{chaptermarkformat}% -\BeginIndex{Cmd}{sectionmarkformat}% -\BeginIndex{Cmd}{subsectionmarkformat}% - Wie bereits in \autoref{sec:maincls.pageStyle} erwähnt, arbeitet der - Seitenstil \PValue{headings} mit automatischen - Kolumnentiteln\Index{Kolumnentitel>automatisch}. Dazu werden die - Anweisungen \Macro{chaptermark} und \Macro{sectionmark} beziehungsweise - \Macro{sectionmark} und \Macro{subsectionmark} entsprechend definiert. - Gliederungsbefehle (\Macro{chapter}, \Macro{section}~\dots) führen - automatisch eine entsprechende \Macro{\dots mark}-Anweisung aus. Der - übergebene Parameter beinhaltet dabei den Text der - Gliederungsüberschrift\Index{Ueberschriften=Überschriften}. Die zugehörige - Gliederungsnummer wird automatisch in der \Macro{\dots mark}-Anweisung - hinzugefügt. Die Formatierung erfolgt dabei je nach Gliederungsebene mit - einer der drei Anweisungen \Macro{chaptermarkformat}, - \Macro{sectionmarkformat} und \Macro{subsectionmarkformat}. - - \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Während es bei - \Class{scrartcl} weder \Macro{chaptermark} noch \Macro{chaptermarkformat} - gibt, existieren - \OnlyAt{\Class{scrartcl}} \Macro{subsectionmark} und - \Macro{subsectionmarkformat} nur bei \Class{scrartcl}. Dies - ändert sich allerdings bei Verwendung des \Package{scrpage2}-Pakets (siehe - \autoref{cha:scrpage}). -\end{Explain} -So wie mit \Macro{chapterformat} und \Macro{othersectionlevelsformat} die -Nummern der Gliederungsüberschriften formatiert ausgegeben werden, werden mit -den Anweisungen \Macro{chaptermarkformat}, \Macro{sectionmarkformat} und -\Macro{subsectionmarkformat} die Nummern der Gliederungsebenen in den -automatischen Kolumnentiteln formatiert ausgegeben. Mit -\Macro{renewcommand} können sie eigenen Anforderungen angepasst werden. Die -Originaldefinitionen aus den {\KOMAScript}-Klassen sind: -\begin{lstlisting} - \newcommand*{\chaptermarkformat}{% - \chapappifchapterprefix{\ }\thechapter\autodot\enskip} - \newcommand*{\sectionmarkformat}{\thesection\autodot\enskip} - \newcommand*{\subsectionmarkformat}{% - \thesubsection\autodot\enskip} -\end{lstlisting} -\begin{Example} - Angenommen, Sie wollen, dass der Kapitelnummer in den Kolumnentiteln - das Wort »Kapitel« vorangestellt wird. Dann setzen Sie - beispielsweise folgende Definition in die Präambel Ihres Dokuments: -\begin{lstlisting} - \renewcommand*{\chaptermarkformat}{% - \chapapp~\thechapter\autodot\enskip} -\end{lstlisting} -\end{Example} -Wie Sie sehen, finden hier die Anweisungen \Macro{chapappifchapterprefix} und -\Macro{chapapp} Verwendung, die weiter oben erklärt wurden. -% -\EndIndex{Cmd}{chaptermark}% -\EndIndex{Cmd}{sectionmark}% -\EndIndex{Cmd}{subsectionmark}% -\EndIndex{Cmd}{chaptermarkformat}% -\EndIndex{Cmd}{sectionmarkformat}% -\EndIndex{Cmd}{subsectionmarkformat}% - - -\begin{Declaration} - \Counter{secnumdepth} -\end{Declaration}% -\BeginIndex{Counter}{secnumdepth}\BeginIndex{}{Nummerierung}% -Normalerweise werden bei den Klassen \Class{scrbook}\IndexClass{scrbook} und -\Class{scrreprt}\IndexClass{scrreprt} die Gliederungsebenen -\Macro{part}\IndexCmd{part}\IndexCmd{chapter}\IndexCmd{section} bis -\Macro{subsection}\IndexCmd{subsection} und bei der Klasse -\Class{scrartcl}\IndexClass{scrartcl} die Ebenen \Macro{part} bis -\Macro{subsubsection}\IndexCmd{subsubsection} nummeriert. Gesteuert wird dies -über den \LaTeX-Zähler \Counter{secnumdepth}. Dabei steht der Wert \(-\)1 für -\Macro{part}, 0 für \Macro{chapter} und so weiter. Durch Setzen oder Erhöhen -oder Verringern des Zählers kann bestimmt werden, bis zu welcher -Gliederungsebene eine Nummerierung erfolgen soll. Dies ist übrigens bei den -Standardklassen ganz genauso. Vergleichen Sie hierzu auch die Erklärung zum -Zähler \Counter{tocdepth} in \autoref{sec:maincls.toc}, -\autopageref{desc:maincls.counter.tocdepth}. -% -\EndIndex{Counter}{secnumdepth}\EndIndex{}{Nummerierung} - - -\begin{Declaration} - \Macro{setpartpreamble}% - \OParameter{Position}\OParameter{Breite}\Parameter{Präambel}\\ - \Macro{setchapterpreamble}% - \OParameter{Position}\OParameter{Breite}\Parameter{Präambel} -\end{Declaration}% -\BeginIndex{Cmd}{setpartpreamble}% -\BeginIndex{Cmd}{setchapterpreamble}% -\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Teile\Index{Teil>Praeambel=Präambel} -und Kapitel\Index{Kapitel>Praeambel=Präambel} können bei {\KOMAScript} mit -einer \PName{Präambel} versehen werden. Dies ist insbesondere im zweispaltigen -Layout mit der Klassenoption \Option{twocolumn}\IndexOption{twocolumn} -nützlich, da die \PName{Präambel} zusammen mit der Überschrift einspaltig -gesetzt wird. Die \PName{Präambel} kann auch mehrere Absätze beinhalten. Die -Anweisung zum Setzen der \PName{Präambel} muss vor der jeweiligen -\Macro{part}- oder \Macro{addpart}- bzw. \Macro{chapter}- oder -\Macro{addchap}-Anweisung stehen. -\begin{Example} - Sie schreiben einen Bericht über den Zustand einer Firma. Dabei - organisieren Sie den Bericht so, dass jeder Abteilung ein eigener - Teilbericht spendiert wird. Jedem dieser Teile soll außerdem eine - Zusammenfassung vorangestellt werden. Diese Zusammenfassung soll auf - der Titelseite jedes Teils stehen. Das ist wie folgt möglich: -\begin{lstlisting} - \setpartpreamble{% - \begin{abstract} - Dies ist ein Blindtext. Er dient lediglich zur - Demonstration der Möglichkeiten von \KOMAScript. - \end{abstract} - } - \part{Abteilung Grünschnitt} -\end{lstlisting} - Je nach Einstellung der Optionen für die - Überschriftengröße\Index{Ueberschriften=Überschriften} (siehe - \autoref{sec:maincls.fontOptions}, - \autopageref{desc:maincls.option.smallheadings}) und der Optionen für die - Form der \Environment{abstract}-Umgebung\IndexEnv{abstract} (siehe - \autoref{sec:maincls.formattingOptions}, - \autopageref{desc:maincls.option.abstracton}), sieht das Ergebnis ungefähr - wie folgt aus: - \begin{ShowOutput}\centering - {\LARGE\usekomafont{disposition} Teil III.\par\vspace{20pt}} - {\LARGE\usekomafont{disposition} Abteilung Grünschnitt\strut\par} - \begin{quote}\small - \vspace{6ex} - \begin{center} - \usekomafont{disposition}\abstractname - \end{center} - \vspace{2ex} - Dies ist ein Blindtext. Er dient lediglich zur - Demonstration der Möglichkeiten von \KOMAScript. - \end{quote} - \end{ShowOutput} -\end{Example} -Bitte beachten Sie, dass Sie für die Abstände der Prämbel zur Teilüberschrift -bzw. zum Kapiteltext selbst verantwortlich sind. Bitte beachten Sie auch, dass -die \Environment{abstract}-Umgebung bei der Klasse \Class{scrbook} nicht -existiert (siehe \autoref{sec:maincls.titles}, -\autopageref{desc:maincls.environment.abstract}). - -Das\ChangedAt{v2.8p}{\Class{scrbook}\and\Class{scrreprt}} erste -optionale Argument \PName{Position} bestimmt über ein bis zwei -Buchstaben die Position, an der die Präambel ausgegeben wird. Für die -vertikale Position existieren derzeit zwei Möglichkeiten: -\begin{labeling}[~--]{\PValue{o}} -\item [\PValue{o}] über der Überschrift -\item [\PValue{u}] unter der Überschrift -\end{labeling} -Es kann jeweils eine Präambel unter und eine Präambel über der -Überschrift gesetzt werden. Für die horizontale Position existieren -derzeit drei Möglichkeiten: -\begin{labeling}[~--]{\PValue{o}} -\item [\PValue{l}] linksbündig -\item [\PValue{r}] rechtsbündig -\item [\PValue{c}] zentriert -\end{labeling} -Dabei wird allerdings nicht der Text der \PName{Präambel} entsprechend -angeordnet, sondern eine Box, deren Breite durch das zweite optionale -Argument \PName{Breite} bestimmt wird. Wird auf das zweite optionale -Argument verzichtet, so wird stattdessen die gesamte Textbreite -verwendet. Damit bleibt die Option zur horizontalen Positionierung in -diesem Fall wirkungslos. Es kann jeweils ein Buchstabe für die -vertikale mit einem Buchstaben für die horizontale Anordnung -kombiniert werden. -% -\EndIndex{Cmd}{setpartpreamble}% -\EndIndex{Cmd}{setchapterpreamble}% - - -\begin{Declaration} - \Macro{dictum}\OParameter{Urheber}\Parameter{Spruch}\\ - \Macro{dictumwidth}\\ - \Macro{dictumauthorformat}\Parameter{Urheber}\\ - \Macro{raggeddictum}\\ - \Macro{raggeddictumtext}\\ - \Macro{raggeddictumauthor} -\end{Declaration}% -\BeginIndex{Cmd}{dictum}% -\BeginIndex{Cmd}{dictumwidth}% -\BeginIndex{Cmd}{dictumauthorformat}% -\BeginIndex{Cmd}{raggeddictum}% -\BeginIndex{Cmd}{raggeddictumtext}% -\BeginIndex{Cmd}{raggeddictumauthor}% -Eine\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} -Anwendung\ChangedAt{v2.8q}{\Class{scrbook}\and\Class{scrreprt}} für -\Macro{setpartpreamble} oder \Macro{setchapterpreamble} neben einleitenden -Sätzen ist ein kluger \PName{Spruch}\Index{Spruch}. Ein solcher Spruch kann -mit der Anweisung \Macro{dictum} gesetzt werden. Dabei ist vorgesehen, dass -\Macro{dictum} als obligatorisches Argument einer der Anweisungen -\Macro{setchapterpreamble} oder \Macro{setpartpreamble} verwendet wird. Dies -ist jedoch nicht zwingend. - -Der Spruch wird zusammen mit einem optional anzugebenden -\PName{Urheber} in einer \Macro{parbox}\IndexCmd{parbox} (siehe -\cite{latex:usrguide}) der Breite \Macro{dictumwidth} gesetzt. Dabei -ist \Macro{dictumwidth} keine Länge, die mit \Macro{setlength} gesetzt -wird. Es handelt sich um ein Makro, das mit \Macro{renewcommand} -umdefiniert werden kann. Vordefiniert ist \verb;0.3333\textwidth;, -also ein Drittel der jeweiligen Textbreite. Die Box selbst wird mit -der Anweisung \Macro{raggeddictum} ausgerichtet. Voreingestellt ist -dabei \Macro{raggedleft}\IndexCmd{raggedleft}, also rechtsbündig. -\Macro{raggeddictum} kann mit Hilfe von \Macro{renewcommand} -umdefiniert werden. - -Innerhalb der Box wird der \PName{Spruch} mit \Macro{raggeddictumtext} -angeordnet. Voreingestellt ist hier -\Macro{raggedright}\IndexCmd{raggedright}, also linksbündig. Eine -Umdefinierung ist auch hier mit \Macro{renewcommand} möglich. Die -Ausgabe erfolgt in der für Element \FontElement{dictumtext} eingestellten -Schriftart, die mit den Anweisungen aus -\autoref{sec:maincls.font} geändert werden kann. Die -Voreinstellung entnehmen Sie bitte \autoref{tab:maincls.dictumfont}. - -Ist ein \PName{Urheber} angegeben, so wird dieser mit einer Linie über -die gesamte Breite der \Macro{parbox} vom \PName{Spruch} abgetrennt. -Mit \Macro{raggeddictumauthor} wird die Ausrichtung vorgenommen. -Voreingestellt ist \Macro{raggedleft}. Auch diese Anweisung kann mit -\Macro{renewcommand} umdefiniert werden. Die Ausgabe erfolgt in der -Form, die mit \Macro{dictumauthorformat} festgelegt ist. Das Makro -erwartet schlicht den \Macro{Urheber} als Argument. In der -Voreinstellung ist \Macro{dictumauthorformat} als -\begin{lstlisting}[aboveskip={1ex plus 2ex},belowskip={1ex plus 2ex}] - \newcommand*{\dictumauthorformat}[1]{(#1)} -\end{lstlisting} -definiert. Der \PName{Urheber} wird also in runde Klammern -gesetzt. Für das Element \PName{dictumauthor} kann dabei eine -Abweichung der Schrift von der des Elementes \PName{dictumtext} -definiert werden. Die Voreinstellung entnehmen Sie bitte -\autoref{tab:maincls.dictumfont}. Eine Änderung ist mit Hilfe der -Anweisungen aus \autoref{sec:maincls.font} möglich. -% -\begin{table} - \centering% - \caption{Schriftvoreinstellungen für die Elemente des Spruchs} - \begin{tabular}{ll} - \toprule - Element & Voreinstellung \\ - \midrule - \FontElement{dictumtext} & - \Macro{normalfont}\Macro{normalcolor}\Macro{sffamily}\Macro{small}\\ - \FontElement{dictumauthor} & - \Macro{itshape}\\ - \bottomrule - \end{tabular} - \label{tab:maincls.dictumfont} -\end{table} -% -Wird \Macro{dictum} innerhalb der Anweisung \Macro{setchapterpreamble} -oder \Macro{setpartpreamble} verwendet, so ist Folgendes zu -beachten: Die horizontale Anordnung erfolgt immer mit -\Macro{raggeddictum}. Das optionale Argument zur horizontalen -Anordnung, das die beiden Anweisungen vorsehen, bleibt daher ohne -Wirkung. \Macro{textwidth} ist nicht die Breite des gesamten -Textkörpers, sondern die aktuelle Textbreite. Ist also -\Macro{dictumwidth} auf \verb;.5\textwidth; gesetzt und bei -\Macro{setchapterpreamble} wird als optionales Argument für die Breite -ebenfalls \verb;.5\textwidth; angegeben, so erfolgt die Ausgabe in -einer Box, deren Breite ein Viertel der Breite des Textkörpers ist. Es -wird empfohlen, bei Verwendung von \Macro{dictum} auf die optionale -Angabe einer Breite bei \Macro{setchapterpreamble} oder -\Macro{setpartpreamble} zu verzichten. - -Sollen mehrere schlaue Sprüche untereinander gesetzt werden, so -sollten diese durch einen zusätzlichen Abstand vertikal voneinander -abgesetzt werden. Ein solcher kann leicht mit der Anweisung -\Macro{bigskip}\IndexCmd{bigskip} gesetzt werden. - -\begin{Example} - Sie schreiben ein Kapitel über die moderne Ehe. Dabei wollen sie in - der Präambel zur Kapitelüberschrift einen schlauen Spruch - setzen. Dieser soll unter der Überschrift erscheinen. Also schreiben - Sie: -\begin{lstlisting} - \setchapterpreamble[u]{% - \dictum[Schiller]{Drum prüfe, - wer sich ewig bindet \dots}} - \chapter{Die moderne Ehe} -\end{lstlisting} - Die Ausgabe erfolgt dann in der Form: - \begin{ShowOutput} - {\usekomafont{disposition}\usekomafont{chapter}% - 17\enskip Die moderne Ehe\par} - \vspace{\baselineskip} - \dictum[Schiller]{Drum prüfe, wer sich ewig bindet \dots} - \end{ShowOutput} - - Wenn Sie wollen, dass nicht ein Drittel, sondern nur ein Viertel der - verfügbaren Textbreite für den Spruch verwendet wird, so definieren - Sie \Macro{dictumwidth} wie folgt um: -\begin{lstlisting} - \renewcommand*{\dictumwidth}{.25\textwidth} -\end{lstlisting} -\end{Example} - -An dieser Stelle sei noch auf das Paket~\cite{package:ragged2e} -hingewiesen, mit dem man Flattersatz mit Trennung erreichen -kann. -\EndIndex{Cmd}{dictum}% -\EndIndex{Cmd}{dictumwidth}% -\EndIndex{Cmd}{dictumauthorformat}% -\EndIndex{Cmd}{raggeddictum}% -\EndIndex{Cmd}{raggeddictumtext}% -\EndIndex{Cmd}{raggeddictumauthor}% - - -\subsection{Fußnoten} -\label{sec:maincls.footnotes} - -Eine nicht auf den Text beschränkte Eigenschaft eines Dokuments -ist das Aussehen der Fußnoten. Da Fußnoten\Index{Fussnoten=Fußnoten} -aber hauptsächlich im Text auf"|treten, werden sie in diesem -Abschnitt aufgeführt. - -\begin{Declaration} - \Macro{footnote}\OParameter{Nummer}\Parameter{Text}\\ - \Macro{footnotemark}\OParameter{Nummer}\\ - \Macro{footnotetext}\OParameter{Nummer}\Parameter{Text} -\end{Declaration}% -\BeginIndex{Cmd}{footnote}% -\BeginIndex{Cmd}{footnotemark}% -\BeginIndex{Cmd}{footnotetext}% -Fußnoten werden bei {\KOMAScript} genau wie bei den Standardklassen -mit der Anweisung \Macro{footnote} oder den paarweise zu verwendenden -Anweisungen \Macro{footnotemark} und \Macro{footnotetext} erzeugt. -Genau wie bei den Standardklassen ist es möglich, dass innerhalb einer -Fußnote ein Seitenumbruch erfolgt. Dies geschieht in der Regel dann, -wenn die zugehörige Fußnotenmarkierung so weit unten auf der Seite -gesetzt wird, dass keine andere Wahl bleibt, als die Fußnote auf die -nächste Seite zu umbrechen. -% -\EndIndex{Cmd}{footnote}% -\EndIndex{Cmd}{footnotemark}% -\EndIndex{Cmd}{footnotetext}% - - -\begin{Declaration} - \Macro{deffootnote}\OParameter{Markenbreite}\Parameter{Einzug}% - \Parameter{Absatzeinzug}\Parameter{Markendefinition}\\ - \Macro{deffootnotemark}\Parameter{Markendefinition}\\ - \Macro{thefootnotemark}\\ - \Macro{textsuperscript}\Parameter{Text} -\end{Declaration}% -\BeginIndex{Cmd}{deffootnote}% -\BeginIndex{Cmd}{deffootnotemark}% -\BeginIndex{Cmd}{thefootnotemark}% -\BeginIndex{Cmd}{textsuperscript}% -{\KOMAScript} setzt die Fußnoten etwas anders als die Standardklassen. -Die Fußnotenmarkierung im Text, also die Referenzierung der Fußnote, -erfolgt wie bei den Standardklassen durch kleine hochgestellte Zahlen. -Genauso werden die Markierungen auch in der Fußnote selbst -wiedergegeben. Sie werden dabei rechtsbündig in einem Feld der -Breite \PName{Markenbreite} gesetzt. Die erste Zeile der Fußnote -schließt direkt an das Feld der Markierung an. - -Alle weiteren Zeilen werden um den Betrag von \PName{Einzug} -eingezogen ausgegeben. Wird der optionale Parameter -\PName{Markenbreite} nicht angegeben, dann entspricht er dem -Wert von \PName{Einzug}. -Sollte die Fußnote aus mehreren Absätzen bestehen, dann wird die -erste Zeile eines Absatzes zusätzlich mit dem Einzug der -Größe \PName{Absatzeinzug} versehen. - -\begin{figure} - \centering\setlength{\unitlength}{1mm} - \begin{picture}(100,22) - \thinlines - % frame of following paragraph - \put(5,0){\line(1,0){90}} - \put(5,0){\line(0,1){5}} - \put(10,5){\line(0,1){5}}\put(5,5){\line(1,0){5}} - \put(95,0){\line(0,1){10}} - \put(10,10){\line(1,0){85}} - % frame of first paragraph - \put(5,11){\line(1,0){90}} - \put(5,11){\line(0,1){5}} - \put(15,16){\line(0,1){5}}\put(5,16){\line(1,0){10}} - \put(95,11){\line(0,1){10}} - \put(15,21){\line(1,0){80}} - % box of the footnote mark - \put(0,16.5){\framebox(14.5,4.5){\mbox{}}} - % description of paragraphs - \put(45,16){\makebox(0,0)[l]{\small\textsf{erster Absatz einer Fußnote}}} - \put(45,5){\makebox(0,0)[l]{\small\textsf{folgender Absatz einer Fußnote}}} - % help lines - \thicklines - \multiput(0,0)(0,3){7}{\line(0,1){2}} - \multiput(5,0)(0,3){3}{\line(0,1){2}} - % parameters - \put(2,7){\vector(1,0){3}} - \put(5,7){\line(1,0){5}} - \put(15,7){\vector(-1,0){5}} - \put(15,7){\makebox(0,0)[l]{\small\PName{Absatzeinzug}}} - % - \put(-3,13){\vector(1,0){3}} - \put(0,13){\line(1,0){5}} - \put(10,13){\vector(-1,0){5}} - \put(10,13){\makebox(0,0)[l]{\small\PName{Einzug}}} - % - \put(-3,19){\vector(1,0){3}} - \put(0,19){\line(1,0){14.5}} - \put(19.5,19){\vector(-1,0){5}} - \put(19.5,19){\makebox(0,0)[l]{\small\PName{Markenbreite}}} - \end{picture} - \caption{Parameter für die Darstellung der Fußnoten} - \label{fig:maincls.deffootnote} -\end{figure} - -\autoref{fig:maincls.deffootnote} veranschaulicht die -verschiedenen Parameter nochmals. Die Voreinstellung in -\KOMAScript{} entspricht folgender Definition: -\begin{lstlisting} - \deffootnote[1em]{1.5em}{1em} - {\textsuperscript{\thefootnotemark}} -\end{lstlisting} -Dabei wird mit Hilfe von \Macro{textsuperscript} sowohl die -Hochstellung als auch die Wahl einer kleineren Schrift -erreicht. \Macro{thefootnotemark} ist die aktuelle Fußnotenmarke ohne -jegliche Formatierung. - -Auf\ChangedAt{v2.8q}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} die Fußnote -einschließlich der Markierung findet außerdem die für das Element -\FontElement{footnote}\IndexFontElement{footnote} eingestellte Schriftart -Anwendung. Die Schriftart der Markierung kann jedoch mit Hilfe der Anweisungen -aus \autoref{sec:maincls.font} für das Element -\FontElement{footnotelabel}\IndexFontElement{footnotelabel} davon abweichend -eingestellt werden. Siehe hierzu auch -\autoref{tab:maincls.elementsWithoutText}, -\autopageref{tab:maincls.elementsWithoutText}. Voreingestellt ist jeweils -keine Umschaltung der Schrift. - -Die Fußnotenmarkierung im Text wird getrennt von der -Markierung vor der Fußnote definiert. Dies geschieht mit der Anweisung -\Macro{deffootnotemark}. Voreingestellt ist hier: -\begin{lstlisting} - \deffootnotemark{% - \textsuperscript{\thefootnotemark}} -\end{lstlisting} -Dabei findet\ChangedAt{v2.8q}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} die Schriftart für -das Element -\FontElement{footnotereference}\IndexFontElement{footnotereference} Anwendung -(siehe \autoref{tab:maincls.elementsWithoutText}, -\autopageref{tab:maincls.elementsWithoutText}). Die Markierungen im Text und -in der Fußnote selbst sind also identisch. Die Schriftart kann mit Hilfe der -Anweisungen aus \autoref{sec:maincls.font} jedoch geändert werden. - -\begin{Example} - Relativ häufig wird gewünscht, dass die Markierung in der Fußnote - selbst weder hochgestellt noch kleiner gesetzt wird. Dabei soll sie - aber nicht direkt am Text kleben, sondern geringfügig davor - stehen. Dies kann zum einen wie folgt erreicht werden: -\begin{lstlisting} - \deffootnote{1em}{1em}{\thefootnotemark\ } -\end{lstlisting} - Die Fußnotenmarkierung einschließlich dem folgenden Leerzeichen - wird also rechtsbündig in eine Box der Breite 1\Unit{em} gesetzt. - Die folgenden Zeilen der Fußnote werden gegenüber dem linken Rand - ebenfalls um 1\Unit{em} eingezogen. - - Eine weitere, oft gefragte Formatierung sind linksbündige - Fußnotenmarkierungen in der Fußnote. Diese können mit folgender Definition - erhalten werden: -\begin{lstlisting} - \deffootnote{1.5em}{1em}{% - \makebox[1.5em][l]{\thefootnotemark}} -\end{lstlisting} - - Sollen jedoch die Fußnoten insgesamt lediglich in einer anderen - Schriftart, beispielsweise serifenlos gesetzt werden, so ist dies - ganz einfach mit Hilfe der Anweisungen aus - \autoref{sec:maincls.fontOptions} zu lösen: -\begin{lstlisting} - \setkomafont{footnote}{\sffamily} -\end{lstlisting} -\end{Example} -Wie die Beispiele zeigen, ermöglicht {\KOMAScript} mit dieser -einfachen Benutzerschnittstelle eine große Vielfalt unterschiedlicher -Fußnotenformatierungen. -% -\EndIndex{Cmd}{deffootnote}% -\EndIndex{Cmd}{deffootnotemark}% -\EndIndex{Cmd}{thefootnotemark}% -\EndIndex{Cmd}{textsuperscript}% - - -\subsection{Listen} -\label{sec:maincls.lists} -\BeginIndex[indexother]{}{Listen} - -{\LaTeX} und die Standardklassen bieten verschiedene Umgebungen -für Listen. All diese Umgebungen bietet {\KOMAScript} -selbstverständlich auch, teilweise jedoch mit leichten -Abwandlungen oder Erweiterungen. Grundsätzlich gilt, dass Listen --- auch unterschiedlicher Art -- bis zu einer Tiefe von vier -Listen geschachtelt werden können. Eine tiefere Schachtelung wäre -auch aus typografischen Gründen kaum sinnvoll, da genau genommen -schon mehr als drei Ebenen nicht mehr überblickt werden können. -Ich empfehle in solchen Fällen, die eine große Liste in mehrere -kleinere Listen aufzuteilen. - -\begin{Declaration} - \XMacro{begin}\PParameter{\Environment{itemize}}\\ - \quad\Macro{item}\\ - \quad\dots\\ - \XMacro{end}\PParameter{itemize}\\ - \Macro{labelitemi}\\ - \Macro{labelitemii}\\ - \Macro{labelitemiii}\\ - \Macro{labelitemiv} -\end{Declaration}% -\BeginIndex{Env}{itemize}% -\BeginIndex{Cmd}{item}% -\BeginIndex{Cmd}{labelitemi}% -\BeginIndex{Cmd}{labelitemii}% -\BeginIndex{Cmd}{labelitemiii}% -\BeginIndex{Cmd}{labelitemiv}% -Die einfachste Form einer Liste ist die Stichpunkt- oder -\Environment{itemize}-Liste. Die Benutzer einer unbeliebten -Textverarbeitung nennen diese Form der Liste auch gerne -\emph{Bulletpoints}. Vermutlich können sie sich nicht vorstellen, dass -je nach Ebene auch ein anderes Zeichen als ein fetter Punkt zur -Einleitung eines Stichpunkts verwendet werden kann. Bei {\KOMAScript} -werden je nach Ebene folgende Zeichen verwendet: »{\labelitemi}«, -»{\labelitemii}«, »{\labelitemiii}« und »{\labelitemiv}«. Die -Definition der Zeichen für die einzelnen Ebenen sind in den Makros -\Macro{labelitemi}, \Macro{labelitemii}, \Macro{labelitemiii} und -\Macro{labelitemiv} abgelegt. Sie können mit \Macro{renewcommand} -umdefiniert werden. Die einzelnen Stichpunkte werden mit \Macro{item} -eingeleitet. -\begin{Example} - Sie haben eine einfache Aufzählung, die in mehreren Ebenen - geschachtelt ist. Sie schreiben beispielsweise: -\begin{lstlisting} - \minisec{Die Fahrzeuge im Spiel} - \begin{itemize} - \item Flugzeuge - \begin{itemize} - \item Doppeldecker - \item Jets - \item Transportmaschinen - \begin{itemize} - \item einmotorig - \begin{itemize} - \item{düsengetrieben} - \item{propellergetrieben} - \end{itemize} - \item mehrmotorig - \end{itemize} - \item Drehflügler - \end{itemize} - \item Motorräder - \begin{itemize} - \item historisch korrekt - \item futurisch nicht real - \end{itemize} - \item Automobile - \begin{itemize} - \item Rennwagen - \item Personenwagen - \item Lastwagen - \end{itemize} - \item Fahrräder - \end{itemize} -\end{lstlisting} - Anschließend erhalten Sie: - \begin{ShowOutput}[\baselineskip] - \minisec{Die Fahrzeuge im Spiel} - \begin{itemize} - \item Flugzeuge - \begin{itemize} - \item Doppeldecker - \item Jets - \item Transportmaschinen - \begin{itemize} - \item einmotorig - \begin{itemize} - \item{düsengetrieben} - \item{propellergetrieben} - \end{itemize} - \item mehrmotorig - \end{itemize} - \item Drehflügler - \end{itemize} - \item Motorräder - \begin{itemize} - \item historisch korrekt - \item futurisch nicht real - \end{itemize} - \item Automobile - \begin{itemize} - \item Rennwagen - \item Personenwagen - \item Lastwagen - \end{itemize} - \item Fahrräder - \end{itemize} - \end{ShowOutput} -\end{Example} -% -\EndIndex{Env}{itemize}% -\EndIndex{Cmd}{item}% -\EndIndex{Cmd}{labelitemi}% -\EndIndex{Cmd}{labelitemii}% -\EndIndex{Cmd}{labelitemiii}% -\EndIndex{Cmd}{labelitemiv}% - - -\begin{Declaration} - \XMacro{begin}\PParameter{\Environment{enumerate}}\\ - \quad\XMacro{item}\\ - \quad\dots\\ - \XMacro{end}\PParameter{enumerate}\\ - \Macro{theenumi}\\ - \Macro{theenumii}\\ - \Macro{theenumiii}\\ - \Macro{theenumiv}\\ - \Macro{labelenumi}\\ - \Macro{labelenumii}\\ - \Macro{labelenumiii}\\ - \Macro{labelenumiv} -\end{Declaration}% -\BeginIndex{Env}{enumerate}% -\BeginIndex{Cmd}{item}% -\BeginIndex{Cmd}{theenumi}% -\BeginIndex{Cmd}{theenumii}% -\BeginIndex{Cmd}{theenumiii}% -\BeginIndex{Cmd}{theenumiv}% -\BeginIndex{Cmd}{labelenumi}% -\BeginIndex{Cmd}{labelenumii}% -\BeginIndex{Cmd}{labelenumiii}% -\BeginIndex{Cmd}{labelenumiv}% -Die nummerierte Liste ist ebenfalls sehr häufig zu finden und bereits -vom {\LaTeX}-Kern vorgesehen. Die Nummerierung\Index{Nummerierung} -erfolgt je nach Ebene in unterschiedlicher Art: mit arabischen Zahlen, -mit Kleinbuchstaben, mit kleinen römischen Zahlen und mit -Großbuchstaben. Die Art der Nummerierung wird dabei über die Makros -\Macro{theenumi} bis \Macro{theenumiv} festgelegt. Das Format der -Ausgabe wird von den Makros \Macro{labelenumi} bis \Macro{labelenumiv} -bestimmt. Dabei folgt auf den Wert der zweiten Ebene, der in -Kleinbuchstaben ausgegeben wird, eine runde Klammer, während die Werte -aller anderen Ebenen von einem Punkt gefolgt werden. Die einzelnen -Stichpunkte werden wieder mit \Macro{item} eingeleitet. -\begin{Example} - Verkürzen wir das vorherige Beispiel und verwenden statt der - \Environment{itemize}- eine - \Environment{enumerate}-Umgebung: -% Übernehmen wir das Beispiel der \Environment{itemize}-Umgebung, -% wobei wir jede \Environment{itemize}-Umgebung durch eine -% \Environment{enumerate}-Umgebung ersetzen. Das Ergebnis wäre dann: - \begin{ShowOutput}[\baselineskip] - \minisec{Die Fahrzeuge im Spiel} - \begin{enumerate} - \item Flugzeuge - \begin{enumerate} - \item Doppeldecker -% \item Jets - \item Transportmaschinen - \begin{enumerate} - \item einmotorig - \begin{enumerate} - \item{düsengetrieben}\label{xmp:maincls.jets} - \item{propellergetrieben} - \end{enumerate} - \item mehrmotorig - \end{enumerate} -% \item Drehflügler - \end{enumerate} - \item Motorräder - \begin{enumerate} - \item historisch korrekt - \item futurisch nicht real - \end{enumerate} -% \item Automobile -% \begin{enumerate} -% \item Rennwagen -% \item Personenwagen -% \item Lastwagen -% \end{enumerate} -% \item Fahrräder - \end{enumerate} - \end{ShowOutput} - Innerhalb der Aufzählung können ganz normal mit \Macro{label} Marken - gesetzt werden, auf die dann mit \Macro{ref} zugegriffen werden - kann. So wurde oben hinter den düsengetriebenen, einmotorigen - Flugzeugen mit »\Macro{label}\PParameter{bsp:duesen}« ein Label - gesetzt. Der \Macro{ref}-Wert ist dann »\ref{xmp:maincls.jets}«. -\end{Example} -% -\EndIndex{Env}{enumerate}% -\EndIndex{Cmd}{item}% -\EndIndex{Cmd}{theenumi}% -\EndIndex{Cmd}{theenumii}% -\EndIndex{Cmd}{theenumiii}% -\EndIndex{Cmd}{theenumiv}% -\EndIndex{Cmd}{labelenumi}% -\EndIndex{Cmd}{labelenumii}% -\EndIndex{Cmd}{labelenumiii}% -\EndIndex{Cmd}{labelenumiv}% - - -\begin{Declaration} - \XMacro{begin}\PParameter{\Environment{description}}\\ - \quad\XMacro{item}\OParameter{Stichwort}\\ - \quad\dots\\ - \XMacro{end}\PParameter{description} -\end{Declaration}% -\BeginIndex{Env}{description}% -\BeginIndex{Cmd}{item}% -Eine weitere Listenform ist die Stichwortliste. Sie dient in erster Linie der -Beschreibung einzelner Begriffe. Diese werden als optionale Parameter bei -\Macro{item} angegeben. Die Schriftart\Index{Schriftart}\ChangedAt{v2.8p}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}, % -die für die Hervorhebung des Stichworts verwendet wird, kann mit Hilfe der in -\autoref{sec:maincls.font} beschriebenen Anweisungen für das Element -\FontElement{descriptionlabel}\IndexFontElement{descriptionlabel} (siehe -\autoref{tab:maincls.elementsWithoutText}, -\autopageref{tab:maincls.elementsWithoutText}) geändert werden. In der -Voreinstellung wird \Macro{sffamily}""\Macro{bfseries} verwendet. -\begin{Example} - Sie wollen, dass die Stichworte statt serifenlos und fett lediglich - fett aber in der Standardschriftart ausgegeben werden. Mit -\begin{lstlisting} - \setkomafont{descriptionlabel}{\normalfont\bfseries} -\end{lstlisting} - definieren Sie daher die Schrift entsprechend um. - - Ein Beispiel für die Ausgabe einer Stichwortliste ist die Aufzählung - der Seitenstile in \autoref{sec:maincls.pageStyle}. Der Quelltext - dazu lautet (stark gekürzt): -\begin{lstlisting} - \begin{description} - \item[empty] ist der Seitenstil, bei dem Kopf- und - Fußzeile vollständig leer bleiben. - \item[plain] ist der Seitenstil, bei dem keinerlei - Kolumnentitel verwendet wird. - \item[headings] ist der Seitenstil für - automatische Kolumnentitel. - \item[myheadings] ist der Seitenstil für manuelle - Kolumnentitel. - \end{description} -\end{lstlisting} - Diese gekürzte Version ergibt: - \begin{ShowOutput} - \begin{description} - \item[empty] ist der Seitenstil, bei dem Kopf- und - Fußzeile vollständig leer bleiben. - \item[plain] ist der Seitenstil, bei dem keinerlei - Kolumnentitel verwendet wird. - \item[headings] ist der Seitenstil für automatische - Kolumnentitel. - \item[myheadings] ist der Seitenstil für manuelle - Kolumnentitel. - \end{description} - \end{ShowOutput} -\end{Example} -% -\EndIndex{Env}{description}% -\EndIndex{Cmd}{item}% - - -\begin{Declaration} - \XMacro{begin}\PParameter{\Environment{labeling}}% - \OParameter{Trennzeichen}\Parameter{längstes - Muster}\\ - \quad\XMacro{item}\OParameter{Schlüsselwort}\\ - \quad\dots\\ - \XMacro{end}\PParameter{labeling} -\end{Declaration}% -\BeginIndex{Env}{labeling}% -\BeginIndex{Cmd}{item}% -Eine andere Form der Stichwortliste ist nur bei den {\KOMAScript}-Klassen -vorhanden: die \Environment{labeling}-Umgebung. Im Unterschied zur zurvor -vorgestellten Umgebung \Environment{description} kann bei -\Environment{labeling} ein Muster angegeben werden, dessen Länge die -Einrücktiefe bei allen Stichpunkten ergibt. Darüber hinaus kann zwischen -Stichpunkt und Beschreibungstext ein optionales \PName{Trennzeichen} -festgelegt werden. -\begin{Example} - Wir schreiben das Beispiel der \Environment{description}-Umgebung - etwas um: -\begin{lstlisting} - \begin{labeling}[~--]{% - \usekomafont{descriptionlabel}myheadings} - \item[\usekomafont{descriptionlabel}empty] - Seitenstil für leere Seiten ohne Kopf und Fuß - \item[\usekomafont{descriptionlabel}plain] - Seitenstil für Kapitelanfänge ganz ohne - Kolumnentitel - \item[\usekomafont{descriptionlabel}headings] - Seitenstil für automatische Kolumnentitel - \item[\usekomafont{descriptionlabel}myheadings] - Seitenstil für manuelle Kolumnentitel - \end{labeling} -\end{lstlisting} - Als Ergebnis erhalten wir dann: - \begin{ShowOutput} - \begin{labeling}[~--]{\usekomafont{descriptionlabel}myheadings} - \item[\usekomafont{descriptionlabel}empty] Seitenstil für leere - Seiten ohne Kopf und Fuß - \item[\usekomafont{descriptionlabel}plain] Seitenstil für - Kapitelanfänge ganz ohne Kolumnentitel - \item[\usekomafont{descriptionlabel}headings] Seitenstil für - automatische Kolumnentitel - \item[\usekomafont{descriptionlabel}myheadings] Seitenstil für - manuelle Kolumnentitel - \end{labeling} - \end{ShowOutput} - Wie in diesem Beispiel zu sehen ist, muss eine eventuell geforderte - Schriftumschaltung bei dieser Umgebung sowohl im Muster als auch im - optionalen Parameter jeder \Macro{item}-Anweisung wiederholt - werden. -\end{Example} -Gedacht war die Umgebung ursprünglich für Strukturen wie -»Voraussetzung, Aussage, Beweis« oder »Gegeben, Gesucht, Lösung« -wie man sie in Vorlesungsskripten häufiger findet. Inzwischen findet -die Umgebung aber ganz unterschiedliche Anwendungen. So wurde die -Umgebung für Beispiele in dieser Anleitung mit Hilfe der -\Environment{labeling}-Umgebung definiert. -% -\EndIndex{Env}{labeling}% -\EndIndex{Cmd}{item}% - - -\begin{Declaration} - \XMacro{begin}\PParameter{\Environment{verse}}\\ - \quad\dots\\ - \XMacro{end}\PParameter{verse} -\end{Declaration}% -\BeginIndex{Env}{verse}% -Die \Environment{verse}-Umgebung wird normalerweise nicht als -Listenumgebung wahrgenommen, da hier nicht mit \Macro{item} gearbeitet -wird. Stattdessen wird wie innerhalb der -\Environment{flushleft}-Umgebung mit festen Zeilenumbrüchen -gearbeitet. Intern handelt es sich jedoch sowohl bei den -Standardklassen als auch bei {\KOMAScript} durchaus um eine -Listenumgebung. - -Die \Environment{verse}-Umgebung findet hauptsächlich für -Gedichte\Index{Gedichte} Anwendung. Dabei werden die Zeilen links und -rechts eingezogen. Einzelne Verse werden mit einem festen -Zeilenumbruch, also mit \verb|\\| beendet. Strophen werden ganz normal -als Absatz gesetzt, also durch eine Leerzeile getrennt. Häufig findet -stattdessen auch \Macro{medskip}\IndexCmd{medskip} oder -\Macro{bigskip}\IndexCmd{bigskip} Verwendung. Will man verhindern, -dass am Ende eines Verses ein Seitenumbruch erfolgt, so verwendet man -ganz normal \verb|\\*| an Stelle von \verb|\\|. -\begin{Example} - Als Beispiel ein kurzes Gedicht von Wilhelm Busch: -\begin{lstlisting} - \begin{verse} - Wenn einer, der mit Mühe kaum\\* - Gekrochen ist auf einen Baum,\\* - Schon meint, dass er ein Vogel wär,\\* - So irrt sich der. - \end{verse} -\end{lstlisting} - Mit dem Resultat: - \begin{ShowOutput} - \begin{verse} - Wenn einer, der mit Mühe kaum\\* - Gekrochen ist auf einen Baum,\\* - Schon meint, dass er ein Vogel wär,\\* - So irrt sich der. - \end{verse} - \end{ShowOutput} - Bei einem sehr langen Vers wie: -\begin{lstlisting} - \begin{verse} - Der Philosoph wie der Hausbesitzer hat - immer Reparaturen.\\* - \bigskip - Wer dir sagt, er hätte noch nie gelogen, - dem traue nicht, mein Sohn. - \end{verse} -\end{lstlisting} - bei dem ein Zeilenumbruch innerhalb des Verses erfolgt: - \begin{ShowOutput} - \begin{verse} - Der Philosoph wie der Hausbesitzer hat immer Reparaturen.\\ - \bigskip - Wer dir sagt, er hätte noch nie gelogen, dem traue nicht, mein - Sohn. - \end{verse} - \end{ShowOutput} - kann mit \verb|\\*| allerdings nicht verhindert werden, dass am - Zeilenumbruch auch ein Seitenumbruch erfolgt. Um dies zu erreichen, müsste - innerhalb der ersten Zeile zusätzlich ein - \Macro{nopagebreak}\IndexCmd{nopagebreak} eingefügt werden: -\begin{lstlisting} - \begin{verse} - Der Philosoph wie der Hausbesitzer\nopagebreak - hat immer Reparaturen.\\ - \bigskip - Wer dir sagt, er hätte noch nie\nopagebreak - gelogen, dem traue nicht, mein Sohn. - \end{verse} -\end{lstlisting} - - Hier noch zwei Sprüche, die man immer bedenken sollte, wenn man mit - scheinbar seltsamen Fragen zu {\LaTeX} oder den dazugehörigen Antworten - konfrontiert ist: - \begin{ShowOutput} - \begin{verse} - Wir mögen's keinem gerne gönnen,\\* - Dass er was kann, was wir nicht können.\\ - \bigskip - Wie klein ist das, was einer ist,\\* - Wenn man's mit seinem Dünkel misst. - \end{verse} - \end{ShowOutput} - - In diesen Beispielen wurde übrigens jeweils \Macro{bigskip} verwendet, um - zwei Sprüche voneinander zu trennen. -\end{Example} -% -\EndIndex{Env}{verse}% - - -\begin{Declaration} - \XMacro{begin}\PParameter{\Environment{quote}}\\ - \quad\dots\\ - \XMacro{end}\PParameter{quote}\\ - \XMacro{begin}\PParameter{\Environment{quotation}}\\ - \quad\dots\\ - \XMacro{end}\PParameter{quotation} -\end{Declaration}% -\BeginIndex{Env}{quote}% -\BeginIndex{Env}{quotation}% -Diese beiden Umgebungen sind intern ebenfalls Listenumgebungen und -sowohl bei den Standardklassen als auch bei {\KOMAScript} zu finden. -Beide Umgebungen setzen Blocksatz, der sowohl rechts als auch links -eingezogen ist. Verwendet werden die Umgebungen häufig, um längere -Zitate\Index{Zitate} abzusetzen. Der Unterschied zwischen beiden liegt -in der Art und Weise, wie Absätze abgesetzt werden. Während bei -\Environment{quote} Absätze durch vertikalen Abstand gekennzeichnet -werden, wird bei \Environment{quotation} mit horizontalem Einzug der -ersten Zeile eines Absatzes gearbeitet. Dies gilt auch für den ersten -Absatz einer \Environment{quotation}-Umgebung. Wollen Sie dort den -Einzug verhindern, müssen Sie die -\Macro{noindent}-Anweisung\IndexCmd{noindent} voranstellen. -\begin{Example} - Sie wollen eine kleine Anekdote hervorheben. Also schreiben Sie - folgende \Environment{quotation}-Umgebung: - % -\begin{lstlisting} - Ein kleines Beispiel für eine Anekdote, die sich - einst in Schwaben zugetragen haben soll: - \begin{quotation} - Es klingelt an der Tür eines Pfarrhauses in - Stuttgart. Als die Haushälterin öffnet, steht ein - unrasierter Mann in einem reichlich schäbigen - Mantel vor der Tür und hält seine Strickmütze in - der Hand. - - "`Gute Frau,"' verkündet der Mann in gequältem Ton - doch bestem Hochdeutsch, während er verlegen von - einem Bein auf das andere wechselt, "`ich habe - seit drei Tagen nichts mehr gegessen."' - - Die Frau schüttelt mitleidig den Kopf und - entgegnet im Brustton vollster Überzeugung: - - "`Guda Moh, Sie missat sich halt zwinga!"' - \end{quotation} -\end{lstlisting} - Das Ergebnis ist dann: - \begin{ShowOutput} - Ein kleines Beispiel für eine Anekdote, die sich einst - in Schwaben zugetragen haben soll: - \begin{quotation} - Es klingelt an der Tür eines Pfarrhauses in - Stuttgart. Als die Haushälterin öffnet, steht ein - unrasierter Mann in einem reichlich schäbigen - Mantel vor der Tür und hält seine Strickmütze in - der Hand. - - "`Gute Frau,"' verkündet der Mann in gequältem Ton - doch bestem Hochdeutsch, während er verlegen von - einem Bein auf das andere wechselt, "`ich habe - seit drei Tagen nichts mehr gegessen."' - - Die Frau schüttelt mitleidig den Kopf und entgegnet - im Brustton vollster Überzeugung: - - "`Guda Moh, Sie missat sich halt zwinga!"' - \end{quotation} - \end{ShowOutput} - % - Wenn Sie stattdessen eine \Environment{quote}-Umgebung - verwenden, sieht das Ganze so aus: - % - \begin{ShowOutput} - Ein kleines Beispiel für eine Anekdote, die sich einst - in Schwaben zugetragen haben soll: - \begin{quote}\setlength{\parskip}{4pt plus 2pt minus 2pt} - Es klingelt an der Tür eines Pfarrhauses in Stuttgart. Als die - Haushälterin öffnet, steht ein unrasierter Mann in einem reichlich - schäbigen Mantel vor der Tür und hält seine Strickmütze in der Hand. - - "`Gute Frau,"' verkündet der Mann in gequältem Ton doch bestem - Hochdeutsch, während er verlegen von einem Bein auf das andere wechselt, - "`ich habe seit drei Tagen nichts mehr gegessen."' - - Die Frau schüttelt mitleidig den Kopf und entgegnet im Brustton vollster - Überzeugung: - - "`Guda Moh, Sie missat sich halt zwinga!"' - \end{quote} - \end{ShowOutput} - % -\end{Example} -% -\EndIndex{Env}{quote}% -\EndIndex{Env}{quotation}% - - -\begin{Declaration} - \XMacro{begin}\PParameter{\Environment{addmargin}}% - \OParameter{linker Einzug}\Parameter{Einzug}\\ - \quad\dots\\ - \XMacro{end}\PParameter{addmargin}\\ - \XMacro{begin}\PParameter{\Environment{addmargin*}}% - \OParameter{innerer Einzug}\Parameter{Einzug}\\ - \quad\dots\\ - \XMacro{end}\PParameter{addmargin*} -\end{Declaration} -\BeginIndex{Env}{addmargin}% -Wie die \Environment{quote} und \Environment{quotation} handelt es -sich bei \Environment{addmargin} um eine Umgebung, die den -Rand\Index{Rand} verändert. Im Unterschied zu den beiden -erstgenannten Umgebungen kann der Anwender jedoch bei -\Environment{addmargin} wählen, um welchen Wert der Rand verändert -werden kann. Des Weiteren verändert die Umgebung den Absatzeinzug und -den Absatzabstand nicht. Es wird auch kein zusätzlicher vertikaler Abstand vor -und nach der Umgebung eingefügt. - -Ist nur das obligatorische Argument \PName{Einzug} -angegeben, so wird der Inhalt der Umgebung rechts und links um diesen -Wert eingezogen. Ist das optionale Argument \PName{linker Einzug} -hingegen angegeben, so wird links abweichend von \PName{Einzug} der -Wert \PName{linker Einzug} zum Rand addiert. - -Die Sternvariante \Environment{addmargin*} unterscheidet sich nur im -doppelseitigen Satz von der Variante ohne Stern. Wobei der Unterschied -auch dann nur auf"|tritt, wenn das optionale Argument \PName{innerer - Einzug} verwendet wird. Dabei wird dann der Wert von \PName{innerer - Einzug} zum inneren Randanteil der Seite addiert. Dies ist bei -rechten Seiten der linke Rand der Seite, bei linken Seiten jedoch der -rechte Rand der Seite. \PName{Einzug} gilt dann für den jeweils -anderen Rand. - -Bei beiden Varianten der Umgebung sind für alle Parameter auch -negative Werte erlaubt. Damit kann man erreichen, dass die Umgebung in -den Rand hineinragt. -\begin{Example} - Angenommen, Sie schreiben eine Anleitung, mit kurzen - Quellcode-Beispielen. Um diese sehr stark hervorzuheben, sollen sie mit - horizontalen Linien vom Text abgesetzt und leicht in den äußeren Rand - verschoben werden. Sie definieren sich dafür zunächst eine Umgebung: -\begin{lstlisting} - \newenvironment{QuellcodeRahmen}{% - \begin{addmargin*}[1em]{-1em}% - \begin{minipage}{\linewidth}% - \rule{\linewidth}{2pt}% - }{% - \rule[.25\baselineskip]{\linewidth}{2pt}% - \end{minipage}% - \end{addmargin*}% - } -\end{lstlisting} - Wird obiger Quellcode in einer solchen Umgebung gesetzt, so ergibt - sich: - \begin{ShowOutput} - \newenvironment{QuellcodeRahmen}{% - \begin{addmargin*}[1em]{-1em}% - \begin{minipage}{\linewidth}% - \rule{\linewidth}{2pt}% - }{% - \rule[.25\baselineskip]{\linewidth}{2pt}% - \end{minipage}% - \end{addmargin*}% - } - Sie definieren sich oder überhaupt zunächst die folgende Umgebung: - \begin{QuellcodeRahmen} -\begin{lstlisting} -\newenvironment{\QuellcodeRahmen}{% - \begin{addmargin*}[1em]{-1em}% - \begin{minipage}{\linewidth}% - \rule{\linewidth}{2pt}% -}{% - \rule[.25\baselineskip]{\linewidth}{2pt}% - \end{minipage}% - \end{addmargin*}% -} -\end{lstlisting} - \end{QuellcodeRahmen} - Das mag praktisch sein oder unpraktisch, zumindest jedoch zeigt es, - wie die Umgebung verwendet werden kann. - \end{ShowOutput} - Das optionale Argument der \Environment{addmargin*}-Umgebung sorgt - dafür, dass der innere Rand um den Wert - 1\Unit{em} vergrößert wird. Dafür wird der äußere - Rand um den negativen Wert vergrößert, also in Wirklichkeit um - 1\Unit{em} verkleinert. Dies resultiert in einer - Verschiebung um 1\Unit{em} nach außen. Selbstverständlich kann statt - \PValue{1em} auch eine Länge, beispielsweise - \PValue{2\Macro{parindent}}, verwendet werden. -\end{Example} -Ein Problem mit der \Environment{addmargin*}-Umgebung soll nicht -verschwiegen werden. Tritt ein Seitenumbruch mitten in einer -\Environment{addmargin*}-Umgebung auf, so findet der Einzug auf -der zweiten Seite vertauscht statt. Das heißt, dass der \PName{innere - Einzug} plötzlich außen vorgenommen wird. Es empfiehlt sich -daher, in dieser Umgebung den Seitenumbruch ganz zu verhindern. Das -kann man erreichen, indem man zusätzlich eine \Macro{parbox} oder -wie in obigem Beispiel eine \Environment{minipage} verwendet. Dabei -wird von dem Umstand Gebrauch gemacht, dass weder das Argument einer -\Macro{parbox} noch der Inhalt einer \Environment{minipage} umbrochen -wird. Leider handeln Sie sich damit einen anderen Nachteil ein: Seiten -können unter Umständen nicht mehr korrekt gefüllt werden. Dies führt -dann auch zu entsprechenden Warnungen. - -Ob eine Seite eine linke oder eine rechte Seite ist, kann übrigens zuverlässig -nicht beim ersten \LaTeX-Durchlauf festgestellt werden. Siehe dazu die -Erklärung zur Anweisung \Macro{ifthispageodd} und \Macro{ifthispagewasodd} in -\autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.ifthispageodd}.% -% -\EndIndex{Env}{addmargin}% - - -\begin{Explain} - \looseness=-1 - Eine abschließende Bemerkung zu den Listenumgebungen: Im Internet und - im Support wird häufig gefragt, warum nach einer Listenumgebung ein - Einzug\Index{Einzug} wie bei einem Absatz erfolge. Tatsächlich ist dies gar - nicht der Fall, sondern der Effekt resultiert daraus, dass der Anwender - einen Absatz verlangt. Bei {\LaTeX} werden Leerzeilen als Absatz - interpretiert. Dies gilt auch vor und nach Listenumgebungen. Soll eine - Listenumgebung also innerhalb eines Absatzes gesetzt werden, ist weder - davor noch danach eine Leerzeile zu setzen. Um die Umgebung trotzdem in der - \LaTeX-Datei besser vom Rest abzusetzen, kann man davor und dahinter eine - leere Kommentarzeile setzen, also eine Zeile, die direkt mit einem - Prozentzeichen beginnt und nichts weiter enthält.\par -\end{Explain} -\EndIndex[indexother]{}{Listen} - -\subsection{Randnotizen} -\label{sec:maincls.marginNotes} - -\begin{Declaration} - \Macro{marginpar}\OParameter{Randnotiz links}\Parameter{Randnotiz}\\ - \Macro{marginline}\Parameter{Randnotiz} -\end{Declaration}% -\BeginIndex{Cmd}{marginpar}% -\BeginIndex{Cmd}{marginline}% -Für Randnotizen\Index[indexmain]{Randnotizen} ist bei {\LaTeX} normalweise die -Anweisung \Macro{marginpar} vorgesehen. Die Randnotizen werden dabei im -äußeren Rand gesetzt. Bei einseitigen Dokumenten wird der rechte Rand -verwendet. Zwar kann bei \Macro{marginpar} optional eine abweichende Randnotiz -angegeben werden, falls die Randnotiz im linken Rand landet, jedoch werden -Randnotizen immer im Blocksatz ausgegeben. Die Erfahrung zeigt, dass bei -Randnotizen statt dem Blocksatz oft je nach Rand linksbündiger oder -rechtsbündiger Flattersatz zu bevorzugen ist. {\KOMAScript} bietet hierfür -die Anweisung \Macro{marginline}. -\begin{Example} - In der Einleitung ist an einer Stelle die Klassenangabe - \Class{scrartcl} im Rand zu finden. Diese kann mit: -\begin{lstlisting} - \marginline{\texttt{scrartcl}} -\end{lstlisting} - erreicht werden.\footnote{Tatsächlich wurde nicht \Macro{texttt}, - sondern eine semantische Auszeichnung verwendet. Um nicht unnötig - zu verwirren, wurde diese im Beispiel ersetzt.} - - Statt \Macro{marginline} wäre auch die Verwendung von - \Macro{marginpar} möglich gewesen. Tatsächlich wird bei obiger - Anweisung intern nichts anders gemacht als: -\begin{lstlisting} - \marginpar[\raggedleft\texttt{scrartcl}] - {\raggedright\texttt{scrartcl}} -\end{lstlisting} - Letztlich ist \Macro{marginline} also nur eine abkürzende - Schreibweise. -\end{Example} - -\begin{Explain} - Leider funktioniert \Macro{marginpar} im doppelseitigen\Index{doppelseitig} - Layout nicht immer ganz korrekt. Die Entscheidung, ob eine Randnotiz links - oder rechts landet, wird bereits bei der Auswertung von \Macro{marginpar} - getroffen. Verschiebt nun die Ausgaberoutine eine Randnotiz über einen - Seitenumbruch auf die nächste Seite, so ist die Formatierung nicht mehr - korrekt. Dieses Verhalten ist tief in {\LaTeX} verankert und wurde vom - \LaTeX3-Team deshalb als Feature deklariert. \Macro{marginline} ändert - nichts an diesem unerwünschten Verhalten. Mit dem Paket - \Package{mparhack}\IndexPackage{mparhack} (siehe \cite{package:mparhack}) - existiert aber eine Standardlösung für dieses Problem, von der dann - natürlich auch \Macro{marginline} profitiert. - - Es sei darauf hingewiesen, dass \Macro{marginpar} und \Macro{marginline} - innerhalb von Gleitumgebungen wie Tabellen und Abbildungen nicht verwendet - werden können. Auch in abgesetzten Formeln funktionieren diese Anweisungen - nicht. -\end{Explain} -% -\EndIndex{Cmd}{marginpar}% -\EndIndex{Cmd}{marginline}% - - -\subsection{Tabellen und Abbildungen} -\label{sec:maincls.floats} - -\begin{Explain} - {\LaTeX} bietet mit den Gleitumgebungen einen sehr leistungsfähigen und - komfortablen Mechanismus für die automatische Anordnung von - Abbildungen\Index{Abbildungen} und Tabellen\Index{Tabellen}. Genau genommen - sollte von »Tafeln«\Index{Tafeln} statt von »Tabellen«\Index{Tabellen} - die Rede sein. Dies wäre auch zur Unterscheidung der Umgebungen - \Environment{table}\IndexEnv{table} und - \Environment{tabular}\IndexEnv{tabular} von Vorteil. Es hat sich im - Deutschen aber für beides die Bezeichnung »Tabelle« eingebürgert. Das - kommt vermutlich daher, dass man in \Environment{table}-Umgebungen - üblicherweise \Environment{tabular}-Umgebungen setzt. - - Häufig werden die Gleitumgebungen\Index[indexmain]{Gleitumgebung} von - Anfängern nicht richtig verstanden. So wird oft die Forderung aufgestellt, - eine Tabelle oder Abbildung genau an einer bestimmten Position im Text zu - setzen. Dies ist jedoch nicht erforderlich, da auf Gleitumgebungen im Text - über eine Referenz verwiesen wird. Es ist auch nicht sinnvoll, da ein - solches Objekt an einer Stelle nur dann gesetzt werden kann, wenn auf der - Seite noch genügend Platz für das Objekt vorhanden ist. Ist dies nicht der - Fall, müsste das Objekt auf die nächste Seite umbrochen werden und auf der - aktuellen Seite würde ein möglicherweise sehr großer leerer Raum bleiben. - - Häufig findet sich in einem Dokument auch bei jedem Gleitobjekt das - gleiche optionale Argument zur Platzierung des Objekts. Auch dies - ist nicht sinnvoll. In solchen Fällen sollte man besser den - Standardwert global ändern. Näheres dazu ist \cite{DANTE:FAQ} zu - entnehmen.\par -\end{Explain} - -Ein wichtiger Hinweis sei diesem Abschnitt noch vorangestellt: Die -meisten Mechanismen, die hier vorgestellt werden und über die -Fähigkeiten der Standardklassen hinaus gehen, funktionieren nicht -mehr, wenn Sie ein Paket verwenden, das in die Generierung von -Tabellen- und Abbildungstiteln eingreift und deren Aussehen -verändert. Dies sollte selbstverständlich sein, wird aber leider -häufig nicht bedacht. - -\begin{Declaration} - \Macro{caption}\OParameter{Verzeichniseintrag}\Parameter{Titel}\\ - \Macro{captionbelow}\OParameter{Verzeichniseintrag}\Parameter{Titel}\\ - \Macro{captionabove}\OParameter{Verzeichniseintrag}\Parameter{Titel} -\end{Declaration}% -\BeginIndex{Cmd}{caption}% -\BeginIndex{Cmd}{captionabove}% -\BeginIndex{Cmd}{captionbelow}% -Tabellen und Abbildungen werden bei den Standardklassen mit Hilfe der -Anweisung \Macro{caption} mit einem \PName{Titel} in Form einer -Unterschrift\Index{Tabellen>Unterschrift} versehen. Bei Abbildungen ist dies -grundsätzlich korrekt. Bei Tabellen wird gestritten, ob der \PName{Titel} als -Überschrift über oder konsistent mit der -Bildunterschrift\Index{Bildunterschrift} unter die Tabelle gehört. Daher -bietet \KOMAScript{} im Gegensatz zu den Standardklassen die Anweisungen -\Macro{captionbelow} für \PName{Titel} in Form von Unterschriften und -\Macro{captionabove} für \PName{Titel} in Form von Überschriften. -\Macro{caption} verhält sich bei Abbildungen immer wie \Macro{captionbelow}. -Bei Tabellen lässt sich das Verhalten von \Macro{caption} hingegen mit den -beiden Optionen \Option{tablecaptionabove}\IndexOption{tablecaptionabove} und -\Option{tablecaptionbelow}\IndexOption{tablecaptionbelow} steuern (siehe -\autoref{sec:maincls.formattingOptions}, -\autopageref{desc:maincls.option.tablecaptionabove}). Aus Gründen der -Kompatibilität ist voreingestellt, dass sich \Macro{caption} auch bei Tabellen -wie \Macro{captionbelow} verhält. -% -\begin{Example} - Sie wollen mit - Tabellenüberschriften\Index{Tabellen>Ueberschrift=Überschrift} - statt mit Tabellenunterschriften arbeiten, weil Sie teilweise - Tabellen haben, die über mehr als eine Seite gehen. Mit den - Standardklassen bliebe Ihnen nur die Möglichkeit: -\begin{lstlisting} - \begin{table} - \caption{Dies ist nur eine Beispieltabelle} - \begin{tabular}{llll} - Dies & ist & ein & Beispiel.\\\hline - Bitte & lassen & Sie & den \\ - Inhalt & dieser & Tabelle & unbeachtet. - \end{tabular} - \end{table} -\end{lstlisting} - Damit hätten Sie das unschöne Ergebnis: - \begin{ShowOutput}\centering - {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:} - Dies ist nur eine - Beispieltabelle}\\ - \begin{tabular}{llll} - Dies & ist & ein & Beispiel.\\\hline - Bitte & lassen & Sie & den \\ - Inhalt & dieser & Tabelle & unbeachtet. - \end{tabular} - \end{ShowOutput} - Bei \KOMAScript{} schreiben Sie hingegen: -\begin{lstlisting} - \begin{table} - \captionabove{Dies ist nur eine Beispieltabelle} - \begin{tabular}{llll} - Dies & ist & ein & Beispiel.\\\hline - Bitte & lassen & Sie & den \\ - Inhalt & dieser & Tabelle & unbeachtet. - \end{tabular} - \end{table} -\end{lstlisting} - Sie erhalten dann das gewünschte Ergebnis: - \begin{ShowOutput}\centering - {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:} - Dies ist nur eine - Beispieltabelle}\\\vskip\abovecaptionskip - \begin{tabular}{llll} - Dies & ist & ein & Beispiel.\\\hline - Bitte & lassen & Sie & den \\ - Inhalt & dieser & Tabelle & unbeachtet. - \end{tabular} - \end{ShowOutput} - Da Sie konsistent alle Tabellen mit Überschriften versehen, können Sie - stattdessen natürlich auch die Option \Option{tablecaptionabove} setzen - (siehe \autoref{sec:maincls.formattingOptions}, - \autopageref{desc:maincls.option.tablecaptionabove}). Dann genügt es, wenn - Sie wie bei den Standardklassen \Macro{caption} verwenden. Sie erhalten - trotzdem das Ergebnis von \Macro{captionabove}. -\end{Example} - -\begin{Explain} - Einige werden nun einwenden, dass man das Gleiche auch mit dem - \Package{topcapt}-Paket\IndexPackage{topcapt} und der dort - definierten Anweisung \Macro{topcaption} erreichen kann (siehe - \cite{package:topcapt}). - Dies ist jedoch nicht der Fall. \Macro{topcaption} bleibt von - Paketen, die direkt das \Macro{caption}-Makro umdefinieren, - unberücksichtigt. Ein Beispiel dafür ist das - \Package{hyperref}-Paket (siehe \cite{package:hyperref}). - Demgegenüber sind \Macro{captionabove} und \Macro{captionbelow} so - implementiert, dass sich die Änderungen auch auf diese beiden - Anweisungen auswirken. - - \phantomsection\label{desc:maincls.macro.caption.longtable}% - Bei Verwendung des \Package{longtable}-Pakets\IndexPackage{longtable} wird - dafür gesorgt, dass auch die Tabellenüberschriften, die innerhalb einer - \Environment{longtable}-Umgebung gesetzt werden, in Aussehen und Form denen - einer normalen \Environment{table}-Umgebung entsprechen. Es gelten damit - auch dieselben Einstellmöglichkeiten. Bitte beachten Sie, dass beim - \Package{longtable}-Paket normalerweise die maximale Breite einer - Tabellenüberschrift begrenzt werden kann und per Voreinstellung auf - 4\Unit{in} begrenzt ist (siehe \cite{package:longtable}). Bei Verwendung von - \KOMAScript{} funktioniert der entsprechende Mechanismus aus - \Package{longtable} jedoch nur, wenn die Klassenoption - \Option{origlongtable} (siehe \autoref{sec:maincls.formattingOptions}, - \autopageref{desc:maincls.option.origlongtable}) gesetzt wird. Ist das Paket - \Package{caption2}\IndexPackage{caption2} - oder \Package{caption}\IndexPackage{caption} (siehe \cite{package:caption}) - geladen, so werden die Tabellenüberschriften von jenem Paket behandelt. - - Bitte beachten Sie, dass sich \Macro{captionabove} und \Macro{captionbelow} - innerhalb einer \Environment{float}-Umgebung, die mit Hilfe des - \Package{float}-Pakets\IndexPackage{float} definiert wurde, genau wie in - \cite{package:float} für die \Macro{caption}-Anweisung beschrieben - verhalten. In diesem Fall kontrolliert allein der float-Stil, ob es sich um - eine Überschrift oder um eine Unterschrift handelt. -\end{Explain} - - -\begin{Declaration} - \XMacro{begin}\PParameter{\Environment{captionbeside}}% - \OParameter{Verzeichnistitel}\Parameter{Titel}\texttt{\%}\\ - \hphantom{\XMacro{begin}\PParameter{captionbeside}}% - \OParameter{Anordnung}\OParameter{Breite}% - \OParameter{Offset}\\% - \quad\dots\\ - \XMacro{end}\PParameter{captionbeside}\\ - \XMacro{begin}\PParameter{captionbeside}\OParameter{Verzeichnistitel}% - \Parameter{Titel}\texttt{\%}\\ - \hphantom{\XMacro{begin}\PParameter{captionbeside}}% - \OParameter{Anordnung}\OParameter{Breite}% - \OParameter{Offset}\PValue{*}\\ - \quad\dots\\ - \XMacro{end}\PParameter{captionbeside} -\end{Declaration} -\BeginIndex{Env}{captionbeside}% -Neben \ChangedAt{v2.8q}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}% -den Unter- und Überschriften findet man insbesondere bei kleineren -Abbildungen häufiger Beschreibungen, die neben der Abbildung gesetzt -werden. Dabei schließt normalerweise die Unterkante der Beschreibung -mit der Unterkante der Abbildung ab. Natürlich kann man mit etwas -Geschick und beispielsweise zwei \Macro{parbox}-Anweisungen -dergleichen auch in den Standardklassen erreichen. \KOMAScript{} -bietet jedoch eine spezielle Umgebung. Diese Umgebung kann innerhalb -der Gleitumgebungen verwendet werden. Der erste optionale Parameter -\PName{Verzeichnistitel} und der obligatorische Parameter -\PName{Titel} entsprechen dabei genau den gleichnamigen Parametern von -\Macro{caption}, \Macro{captionabove} oder \Macro{captionbelow}. Der -\PName{Titel} wird dabei neben den Inhalt der Umgebung gesetzt. - -Ob der \PName{Titel} rechts oder links daneben gesetzt wird, kann mit -dem optionalen Parameter \PName{Anordnung} bestimmt werden. Es darf -genau einer der folgenden Buchstaben angegeben werden: -\begin{labeling}[~--]{\PValue{o}} -\item[\PValue{l}] links -\item[\PValue{r}] rechts -\item[\PValue{i}] innen, also auf rechten Seiten links und auf - linken Seiten rechts -\item[\PValue{o}] außen, also auf rechten Seiten rechts und auf - linken Seiten links -\end{labeling} -Voreingestellt ist rechts neben dem Inhalt der Umgebung. Bei -Verwendung von \PValue{o} oder \PValue{i} für \emph{Anordnung} außen -oder innen werden unter Umständen zwei \LaTeX-Durchläufe benötigt, -um die korrekte Anordnung zu erreichen. - -Normalerweise nehmen der Inhalt der Umgebung und der \PName{Titel} die -gesamte verfügbare Breite ein. Es besteht jedoch die Möglichkeit, mit -dem optionalen Parameter \PName{Breite} eine andere Breite -anzugeben. Diese kann auch größer als die Breite des Textkörpers -sein. - -Bei Angabe einer \PName{Breite} wird die genutzte Breite -normalerweise bezüglich der Breite des Textkörpers zentriert. Mit dem -optionalen Argument \PName{Offset} kann stattdessen eine Verschiebung -relativ zum linken Rand angegeben werden. Ein positiver Wert -entspricht einer Verschiebung nach rechts, ein negativer Wert einer -Verschiebung nach links. Mit einem \PName{Offset} von 0\Unit{pt} -erfolgt die Ausgabe linksbündig. - -Wird hinter den optionalen Parameter \PName{Offset} noch ein Stern -gesetzt, so stellt der \PName{Offset} im doppelseitigen Druck auf -linken Seiten eine Verschiebung relativ zum rechten Rand dar. Ein -positiver Wert entspricht dann einer Verschiebung nach außen, während -ein negativer Wert für eine Verschiebung nach innen steht. Ein -\PName{Offset} von 0\Unit{pt} wäre dann also bündig zum inneren -Rand. Diese Variante benötigt unter Umständen zwei \LaTeX-Durchläufe, -um die korrekte Verschiebung zu erreichen. - -\begin{Example} - Ein Beispiel für die Verwendung der - \Environment{captionbeside}-Umgebung ist in - \autoref{fig:maincls.captionbeside} zu finden. Gesetzt wurde - diese Abbildung mit: -\begin{lstlisting} - \begin{figure} - \begin{captionbeside}[Beispiel für - Bildbeschreibung]% - {Eine Bildbeschreibung weder über noch unter der - Abbildung, sondern daneben}[i][\linewidth]% - [2em]* - \fbox{% - \parbox[b][5\baselineskip][c]{.25\textwidth}{% - \hspace*{\fill}\KOMAScript\hspace*{\fill}% - \par}} - \end{captionbeside} - \label{fig:maincls.captionbeside} - \end{figure} -\end{lstlisting} - \begin{figure} - \begin{captionbeside}[Beispiel f"ur Bildbeschreibung]% - {Eine Bildbeschreibung weder über noch unter der Abbildung, - sondern daneben}[i][\linewidth][2em]* - \fbox{% - \parbox[b][5\baselineskip][c]{.25\textwidth}{% - \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}} - \end{captionbeside} - \label{fig:maincls.captionbeside} - \end{figure} - Die Gesamtbreite ist also die aktuell verfügbare Breite - \PValue{\Macro{linewidth}}. Diese wird jedoch um \PValue{2em} nach - außen verschoben. Der Titel oder die Beschreibung steht innen neben - der Abbildung. Damit erscheint die Abbildung selbst um 2\Unit{em} in - den Rand gerückt. -\end{Example} -% -\EndIndex{Env}{captionbeside} - - -\BeginIndex[indexother]{}{Schriftart}% -Die Schriftart\ChangedAt{v2.8p}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} für die -Beschreibung und das Label~-- »Abbildung« oder »Tabelle« gefolgt von der -Nummer und einem Trennzeichen -- kann über die in \autoref{sec:maincls.font} -beschriebenen Anweisungen verändert werden. Zuständig sind hier die Elemente -\FontElement{caption}\IndexFontElement{caption} und -\FontElement{captionlabel}\IndexFontElement{captionlabel} (siehe -\autoref{tab:maincls.elementsWithoutText}, -\autopageref{tab:maincls.elementsWithoutText}). Dabei wird die Schriftart für -das Element \FontElement{caption} zunächst auch auf das Element -\FontElement{captionlabel} angewandt, bevor dessen spezifische Schriftart -Anwendung findet. Die Vorbelegungen sind \autoref{tab:maincls.captionFont} zu -entnehmen. -% -\begin{table} - \centering% - \caption[{Schriftvoreinstellungen für die Elemente der Tabellen- - oder\newline Abbildungsunterschrift - bzw. "~überschrift}]{Schriftvoreinstellungen für die Elemente der Tabellen- - oder Abbildungsunterschrift bzw. "~überschrift} - \begin{tabular}{ll} - \toprule - Element & Voreinstellung \\ - \midrule - \FontElement{caption} & \Macro{normalfont} \\ - \FontElement{captionlabel} & \Macro{normalfont} \\ - \bottomrule - \end{tabular} - \label{tab:maincls.captionFont} -\end{table} -% -\begin{Example} - Sie wollen, dass Tabellen- und Abbildungsbeschreibungen in einer - kleineren Schriftart gesetzt werden. Also setzen Sie - beispielsweise in der Präambel Ihres Dokuments: -\begin{lstlisting} - \addtokomafont{caption}{\small} -\end{lstlisting} - Außerdem hätten Sie gerne, dass das Label serifenlos und fett - gedruckt wird. Sie setzen also außerdem: -\begin{lstlisting} - \setkomafont{captionlabel}{\sffamily\bfseries} -\end{lstlisting} - Wie Sie sehen, kann auch hier einfach eine Erweiterung der - Vorbelegung verwendet werden. -\end{Example} -% -\EndIndex[indexother]{}{Schriftart} -% -\EndIndex{Cmd}{caption}% -\EndIndex{Cmd}{captionabove}% -\EndIndex{Cmd}{captionbelow}% - - -\begin{Explain} -\begin{Declaration} - \FloatStyle{komaabove}\\ - \FloatStyle{komabelow} -\end{Declaration}% -\BeginIndex{Floatstyle}{komaabove}% -\BeginIndex{Floatstyle}{komabelow}% -\OnlyAt{\Package{float}}Bei Verwendung des -\Package{float}-Pakets\IndexPackage{float} wird das Aussehen der damit -definierten Gleitumgebungen allein vom \emph{float}-Stil bestimmt. Dies -schließt auch die Frage ein, ob mit Überschriften oder Unterschriften -gearbeitet wird. Im \Package{float}-Paket gibt es keinen vordefinierten Stil, -der im Aussehen dem von \KOMAScript{} entspricht und dieselben -Einstellmöglichkeiten (siehe unten) bietet. \KOMAScript{} definiert deshalb -zusätzlich die beiden Stile \PValue{komaabove} und \PValue{komabelow}. Diese -können bei Verwendung des \Package{float}-Pakets wie die dort definierten -Stile \PValue{plain}\IndexFloatstyle{plain}, -\PValue{boxed}\IndexFloatstyle{boxed} oder -\PValue{ruled}\IndexFloatstyle{ruled} aktiviert werden. Siehe dazu -\cite{package:float}. Beim Stil \PValue{komaabove} werden \Macro{caption}, -\Macro{captionabove} und \Macro{captionbelow} als Überschrift, beim Stil -\PValue{komabelow} als Unterschrift gesetzt. -% -\EndIndex{Floatstyle}{komaabove}% -\EndIndex{Floatstyle}{komabelow}% -\end{Explain} - - -\begin{Declaration} - \Macro{captionformat} -\end{Declaration}% -\BeginIndex{Cmd}{captionformat}% -Bei {\KOMAScript} gibt es verschiedene Eingriffsmöglichkeiten, um die -Formatierung der Beschreibung zu ändern. Die Änderung der Schriftart -wurde bereits erläutert. Das oder die Trennzeichen zwischen dem Label -und dem eigentlichen Beschreibungstext sind im Makro -\Macro{captionformat} abgelegt. Abweichend von allen anderen -\Macro{\dots}format-Anweisungen ist hier also nicht der Zähler, -sondern nur die auf den Zähler folgenden Angaben enthalten. Die -Originaldefinition lautet: -\begin{lstlisting} - \newcommand*{\captionformat}{:\ } -\end{lstlisting} -Auch diese kann mit \Macro{renewcommand} geändert werden. -\begin{Example} - Aus mir unerfindlichen Gründen wollen Sie als Trennzeichen - keinen Doppelpunkt gefolgt von einem Leerzeichen, sondern einen - Gedankenstrich einschließlich der notwendigen Leerzeichen. - Daher definieren Sie: -\begin{lstlisting} - \renewcommand*{\captionformat}{~--~} -\end{lstlisting} - Diese Definition sollten Sie beispielsweise in die Präambel Ihres - Dokuments stellen. -\end{Example} -% -\EndIndex{Cmd}{captionformat}% - - -\begin{Declaration} - \Macro{figureformat}\\ - \Macro{tableformat} -\end{Declaration}% -\BeginIndex{Cmd}{figureformat}% -\BeginIndex{Cmd}{tableformat}% -Es wurde schon darauf hingewiesen, dass \Macro{captionformat} keine -Formatierung für das Label selbst enthält. Dieses sollte nun -keineswegs über Umdefinierung der Anweisungen für die Zählerausgabe, -\Macro{thefigure} oder \Macro{thetable}, verändert werden. Eine solche -Umdefinierung hätte nämlich auch Auswirkungen auf die Ausgabe von -\Macro{ref} oder der Verzeichnisse. Stattdessen bietet {\KOMAScript} -auch hier zwei \Macro{\dots format}-Anweisungen. Diese sind wie folgt -vordefiniert: -\begin{lstlisting} - \newcommand*{\figureformat}{\figurename~\thefigure\autodot} - \newcommand*{\tableformat}{\tablename~\thetable\autodot} -\end{lstlisting} -Sie können ebenfalls mit \Macro{renewcommand} eigenen Anforderungen -angepasst werden. -\begin{Example} - Hin und wieder wird gewünscht, dass die Beschreibungstexte ganz ohne - Label und natürlich auch ohne Trennzeichen ausgegeben werden. Bei - {\KOMAScript} genügen folgende Definitionen, um dies zu erreichen: -\begin{lstlisting} - \renewcommand*{\figureformat}{} - \renewcommand*{\tableformat}{} - \renewcommand*{\captionformat}{} -\end{lstlisting} - Dabei ist jedoch zu beachten, dass die Nummerierung damit zwar nicht - ausgegeben aber dennoch fortgezählt wird. Dies ist insbesondere dann - von Bedeutung, wenn die Umdefinierungen nur auf einzelne - \Environment{figure}- oder \Environment{table}-Umgebungen angewendet - werden. -\end{Example} -% -\EndIndex{Cmd}{figureformat}% -\EndIndex{Cmd}{tableformat}% - -\begin{Declaration} - \Macro{setcapindent}\Parameter{Einzug}\\ - \Macro{setcapindent*}\Parameter{XEinzug}\\ - \Macro{setcaphanging} -\end{Declaration}% -\BeginIndex{Cmd}{setcapindent}% -\BeginIndex{Cmd}{setcapindent*}% -\BeginIndex{Cmd}{setcaphanging}% -Wie bereits erwähnt wurde, werden in den Standardklassen die -Beschreibungen nicht hängend gesetzt. Das heißt: In mehrzeiligen -Beschreibungen beginnt die zweite Zeile direkt unter dem Labeltext. -Es gibt bei den Standardklassen auch keinen Mechanismus, dies direkt -zu beeinflussen. Bei {\KOMAScript} werden hingegen alle Zeilen ab der -zweiten so weit eingerückt, dass diese nicht mehr unter dem Label, -»Abbildung~\dots:« oder »Tabelle~\dots:«, sondern unter dem -eigentlichen Text der ersten Zeile beginnen. - -Dieses Verhalten, das der Verwendung der Anweisung -\Macro{setcaphanging} entspricht, kann bei {\KOMAScript} jederzeit -durch Verwendung der Anweisung \Macro{setcapindent} oder -\Macro{setcapindent*} geändert werden. Dabei gibt der Parameter -\PName{Einzug} an, wie weit ab der zweiten Zeile eingerückt werden -soll. - -Soll nach dem Label und vor dem Beschreibungstext noch ein -Zeilenumbruch erfolgen, so definieren Sie die Einrücktiefe -\PName{XEinzug} der Beschreibung stattdessen mit der Sternvariante der -Anweisung: \Macro{setcapindent*}. - -Mit einem negativen \PName{Einzug} erreicht man hingegen, dass vor der -Beschreibung ebenfalls ein Umbruch erfolgt und nur die erste Zeile der -Beschreibung, nicht jedoch die folgenden, um den Betrag von \PName{Einzug} -eingerückt werden. - -Ob einzeilige Beschreibungen wie mehrzeilige Beschreibungen gesetzt werden -oder eine Sonderbehandlung erfahren, wird über die Klassenoptionen -\Option{onelinecaption} und \Option{noonelinecaption} gewählt. Siehe hierzu -die Erklärung zu diesen Optionen in \autoref{sec:maincls.layoutOptions}, -\autopageref{desc:maincls.option.noonelinecaption}. - -\begin{Example} - Die Beispiele entnehmen Sie bitte den - Abbildungen~\ref{fig:maincls.caption.first} bis - \ref{fig:maincls.caption.last}. Dabei zeigt sich auch, dass bei geringer - Spaltenbreite der komplett hängende Einzug unvorteilhaft ist. Der - Quelltext der zweiten Abbildung sei hier mit abgewandelter - Unterschrift beispielhaft wiedergegeben: -\begin{lstlisting} - \begin{figure} - \setcapindent{1em} - \fbox{\parbox{.95\linewidth}{% - \centering\KOMAScript}} - \caption{Beispiel mit teilweise hängendem Einzug - ab der zweiten Zeile} - \end{figure} -\end{lstlisting} - Wie zu sehen ist, kann die Formatierung also auch lokal innerhalb - der \Environment{figure}-Umgebung\IndexEnv{figure} geändert werden. Die - Änderung gilt dann nur für die eine Abildung. Nachfolgende Abbildungen - werden wieder mit den Grundeinstellungen oder den globalen Einstellungen, - die Sie beispielsweise in der Dokumentpräambel vorgenommen haben, - gesetzt. Das gilt für Tabellen natürlich genauso. - \begin{figure} - \typeout{^^J--- Ignore underfull and overfull \string\hbox:} - \addtokomafont{caption}{\small} - \addtokomafont{captionlabel}{\bfseries} - \centering% - \begin{minipage}{.9\linewidth} - \begin{minipage}[t]{.48\linewidth}\sloppy - \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} - \caption[Beispiel f"ur Bildunterschrift]% - {Mit der Stan\-dard\-ein\-stell\-ung, also wie bei - Verwendung von \Macro{setcaphanging}} - \label{fig:maincls.caption.first} - \end{minipage} - \hspace{.02\linewidth} - \begin{minipage}[t]{.48\linewidth}\sloppy - \setcapindent{1em} - \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} - \caption[Beispiel f"ur Bildunterschrift]% - {Mit teilweise h"ang"-endem Einzug ab der zweiten Zeile durch - Verwendung von \Macro{setcapindent}\PParameter{1em}} - \end{minipage} - \end{minipage} - - \vspace*{2ex}\noindent% - \begin{minipage}{.9\linewidth} - \begin{minipage}[t]{.48\linewidth}\sloppy - \setcapindent*{1em} - \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} - \caption[Beispiel f"ur Bildunterschrift]% - {Mit h"angendem Einzug ab der zweiten Zeile und Umbruch vor - der Beschreibung durch Verwendung von - \Macro{setcapindent*}\PParameter{1em}} - \end{minipage} - \hspace{.02\linewidth} - \begin{minipage}[t]{.48\linewidth}\sloppy - \setcapindent{-1em} - \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} - \caption[Beispiel f"ur Bildunterschrift]% - {Mit Einzug lediglich in der zweiten Zeile und einem Umbruch - vor der Beschreibung durch Verwendung von - \Macro{setcapindent}\PParameter{-1em}} - \label{fig:maincls.caption.last} - \end{minipage} - \end{minipage} - \typeout{^^J--- Don't ignore underfull and overfull - \string\hbox:^^J} - \end{figure} -\end{Example} -% -\EndIndex{Cmd}{setcapindent}% -\EndIndex{Cmd}{setcapindent*}% -\EndIndex{Cmd}{setcaphanging}% - - -\begin{Declaration} - \Macro{setcapwidth}\OParameter{Ausrichtung}\Parameter{Breite}\\ - \Macro{setcapmargin}\OParameter{Rand links}\Parameter{Rand}\\ - \Macro{setcapmargin*}\OParameter{Rand innen}\Parameter{Rand} -\end{Declaration} -\BeginIndex{Cmd}{setcapwidth}% -\BeginIndex{Cmd}{setcapmargin}% -\BeginIndex{Cmd}{setcapmargin*}% -Mit% -\ChangedAt{v2.8q}{% - \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} Hilfe -dieser drei Befehle kann die Breite und Anordnung der Beschreibung -beeinflusst werden. Normalerweise steht die gesamte Text- oder -Spaltenbreite für den Text der Beschreibung zur Verfügung. - -Mit der Anweisung \Macro{setcapwidth} kann diese \PName{Breite} -reduziert werden. Dabei gibt das obligatorische Argument die maximale -\PName{Breite} der Beschreibung an. Als optionales Argument kann genau -ein Buchstabe übergeben werden, der die horizontale Ausrichtung der -Beschreibung angibt. Die möglichen Ausrichtungen finden Sie in der -folgenden Liste. -\begin{labeling}[~--]{\PValue{o}} -\item[\PValue{l}] linksbündig -\item[\PValue{c}] zentriert -\item[\PValue{r}] rechtsbündig -\item[\PValue{i}] innen, also auf rechten Seiten linksbündig und auf - linken Seiten rechtsbündig -\item[\PValue{o}] außen, also auf rechten Seiten rechtsbündig und auf - linken Seiten linksbündig -\end{labeling} -Die Ausrichtung innen und außen entspricht im einseitigen Satz -linksbündig und rechtsbündig. Innerhalb von -\Package{longtable}\IndexPackage{longtable}-Tabellen funktioniert die -Ausrichtung innen und außen nicht korrekt. Insbesondere werden -Beschreibungen von Folgeseiten bei diesen Tabellen immer nach den -Beschreibungen der ersten Teiltabelle ausgerichtet. Dies ist ein -konzeptionelles Problem des Paketes \Package{longtable}. - -Mit der Anweisung \Macro{setcapmargin} kann statt der Breite der Beschreibung -ein \PName{Rand} angegeben werden, der neben der Beschreibung zusätzlich zum -normalen Textrand eingehalten werden soll. Sollen der Rand rechts und links -nicht identisch gewählt werden, kann mit dem optionalen Argument ein von -\PName{Rand} abweichender \PName{Rand links} von der Beschreibung eingestellt -werden. Bei der Sternvariante \Macro{setcapmargin*} wird statt dem \PName{Rand - links} im doppelseitigen Satz der \PName{Rand innen} abweichend definiert. -Hier ergibt sich bei \Package{longtable}\IndexPackage{longtable}-Tabellen das -gleiche Problem wie bei der Ausrichtung außen oder innen bei der Anweisung -\Macro{setcapwidth}. Die Verwendung von \Macro{setcapmargin} oder -\Macro{setcapmargin*} schaltet außerdem die Option \Option{noonelinecaption} -(siehe \autoref{sec:maincls.layoutOptions}, -\autopageref{desc:maincls.option.noonelinecaption}) für die Beschreibungen -ein, die mit dieser Randeinstellung gesetzt werden. - -\begin{Explain} - \Package{longtable} packt die Beschreibung in eine Box, die auf - Folgeseiten nach Bedarf erneut ausgegeben wird. Bei der Ausgabe - einer Box werden die Makros, die bei der Erzeugung der Box - durchlaufen wurden, nicht erneut ausgewertet. Damit ist es - \KOMAScript{} unmöglich, die Randeinstellung im doppelseitigen Satz - auf geraden Seiten zu vertauschen. Dies wäre aber notwendig, um eine - Ausrichtung, die nach außen oder innen verschoben ist, zu - ermöglichen. - - Man kann übrigens auch negative Werte für \PName{Rand} und - \PName{Rand rechts} oder \PName{Rand außen} angeben. Dadurch - erreicht man, dass die Beschreibung in den entsprechenden Rand - hineinragt. -\end{Explain} - -\begin{Example} - Ein etwas ausgefallenes Problem ist, wenn die Bildunterschrift - zentriert unter einer Abbildung stehen und dabei genauso breit wie - die Abbildung selbst sein soll. Ist die Breite der Abbildung - bekannt, ist die Lösung mit \KOMAScript{} sehr einfach. Angenommen, - die Abbildung ist 8\Unit{cm} breit, so genügt: -\begin{lstlisting} - \setcapwidth[c]{8cm} -\end{lstlisting} - unmittelbar vor \Macro{caption} oder \Macro{captionbelow}. Ist die - Breite nicht bekannt, so muss zunächst in der Präambel des Dokuments - eine Länge definiert werden: -\begin{lstlisting} - \newlength{\Abbildungsbreite} -\end{lstlisting} - Nun kann in vielen Fällen die Breite direkt mit Hilfe der - \LaTeX-Anweisung \Macro{settowidth} (siehe \cite{latex:usrguide}) - ermittelt werden. Eine Lösung kann dann wie folgt aussehen: -\begin{lstlisting} - \begin{figure} - \centering% - \settowidth{\Abbildungsbreite}{% - \fbox{\quad\KOMAScript\quad}% - }% - \fbox{\quad\KOMAScript\quad}% - \setcapwidth[c]{\Abbildungsbreite} - \caption{Beispiel einer unter der Abbildung - zentrierten Bildunterschrift} - \end{figure} -\end{lstlisting} - Allerdings ist es unpraktisch den Inhalt zweimal zu schreiben. Ebenso - ist es unpraktisch, \Macro{setcapwidth} jedesmal neu aufzurufen. Aber - nichts ist einfacher, als in der Präambel einen Befehl zu - definieren, der die drei Schritte: - \begin{enumerate} - \item Bestimmung der Breite des Arguments - \item Festlegung der Breite der Bildunterschrift - \item Ausgabe des Arguments - \end{enumerate} - verbirgt: -\begin{lstlisting} - \newcommand{\Abbildung}[1]{% - \settowidth{\Abbildungsbreite}{#1}% - \setcapwidth[c]{\Abbildungsbreite}% - #1% - } -\end{lstlisting} - Mit diesem Befehl verkürzt sich das Beispiel zu: -\begin{lstlisting} - \begin{figure} - \centering% - \Abbildung{\fbox{\quad\KOMAScript\quad}}% - \caption{Beispiel einer unter der Abbildung - zentrierten Bildunterschrift} - \end{figure} -\end{lstlisting} - - Nun hat ein Befehl jedoch den Nachteil, dass Fehler in den Makros - des Arguments bei mehrzeiligen Argumenten von \LaTeX{} nicht mit - einer sehr genauen Zeilenzahl gemeldet werden. Deshalb ist in - manchen Fällen eine Umgebung praktischer. Es stellt sich dann aber - die Frage, wie die Breite des Inhalts der Umgebung bestimmt werden - kann. Die Lösung besteht in der \Environment{lrbox}-Umgebung, die in - \cite{latex:usrguide} beschrieben ist: -\begin{lstlisting} - \newsavebox{\Abbildungsbox} - \newenvironment{AbbildungSetztCaptionBreite}{% - \begin{lrbox}{\Abbildungsbox}% - }{% - \end{lrbox}% - \global\setbox\Abbildungsbox=\box\Abbildungsbox% - \aftergroup\SetzeAbbildungsbox% - } - \newcommand{\SetzeAbbildungsbox}{% - \Abbildung{\usebox{\Abbildungsbox}}} -\end{lstlisting} - Dabei wird der oben definierte Befehl \Macro{Abbildung} eingesetzt. - In der Anwendung ergibt sich dann: -\begin{lstlisting} - \begin{figure} - \centering% - \begin{AbbildungSetztCaptionBreite} - \fbox{\hspace{1em}\KOMAScript\hspace{1em}} - \end{AbbildungSetztCaptionBreite} - \caption{Beispiel einer unter der Abbildung - zentrierten Bildunterschrift} - \end{figure} -\end{lstlisting} - Zugegeben, in diesem Beispiel ist die Umgebung überflüssig. Aber - ihre Definition mit Verwendung von \Macro{global} ist gleichzeitig - recht trickreich. Es ist deshalb davon auszugehen, dass viele - Anwender mit der Forderung, die Umgebung selbst zu erstellen, - überfordert wären. Da sie aber sehr nützlich sein kann, wurde sie - hier als Beispiel vorgestellt. - - Gäbe es die \Environment{captionbeside}-Umgebung nicht, so könnte - man die Bildunterschrift trotzdem recht einfach rechts neben der - Abbildung setzen. Dazu müsste \Macro{SetzeAbbildungsbox} aus obigem - Beispiel zunächst umdefiniert werden: -\begin{lstlisting} - \renewcommand{\SetzeAbbildungsbox}{% - \settowidth{\Abbildungsbreite}{% - \usebox{\Abbildungsbox}% - }% - \parbox[b]{\Abbildungsbreite}{% - \usebox{\Abbildungsbox}% - }% - \hfill% - \addtolength{\Abbildungsbreite}{1em}% - \addtolength{\Abbildungsbreite}{-\hsize}% - \setlength{\Abbildungsbreite}{-\Abbildungsbreite}% - \setcapwidth[c]{\Abbildungsbreite}% - } -\end{lstlisting} - Anschließend müsste lediglich noch die \Macro{caption}-Anweisung - in eine \Macro{parbox} gepackt werden: -\begin{lstlisting} - \begin{figure} - \centering% - \begin{AbbildungSetztCaptionBreite} - \fbox{\rule{0pt}{5\baselineskip}% - \hspace{1em}\KOMAScript\hspace{1em}} - \end{AbbildungSetztCaptionBreite} - \parbox[b]{\Abbildungsbreite}{% - \caption{Beispiel einer neben die Abbildung - gesetzten mehrzeiligen Bildinformation} - } - \end{figure} -\end{lstlisting} - Die \Macro{rule}-Anweisung in diesem Beispiel dient lediglich als - unsichtbare Stütze, um eine Beispielabbildung mit größerer - vertikaler Ausdehnung zu erreichen. -\end{Example} -% -\EndIndex{Cmd}{setcapwidth}% -\EndIndex{Cmd}{setcapmargin}% -\EndIndex{Cmd}{setcapmargin*}% - - -\subsection{Textauszeichnung} -\label{sec:maincls.emphasis} - -\begin{Explain} - \LaTeX{} bietet verschiedene Möglichkeiten der - Textauszeichnung\Index{Textauszeichnung}. Streng genommen stellt - eine Überschrift ebenfalls eine Auszeichnung dar. In diesem - Abschnitt beschäftigen wir uns aber ausschließlich mit unmittelbaren - Auszeichnungen, also solchen, die keine zusätzliche Bedeutungen in - sich besitzen, sondern die für verschiedene Zwecke verwendet werden - können. Näheres zu den normalerweise definierten Möglichkeiten sind - \cite{l2kurz}, \cite{latex:usrguide} und \cite{latex:fntguide} zu - entnehmen. -\end{Explain} - -\begin{Declaration} - \Macro{textsubscript}\Parameter{Text} -\end{Declaration} -\BeginIndex{Cmd}{textsubscript}% -In \autoref{sec:maincls.footnotes}, -\autopageref{desc:maincls.macro.textsuperscript} wurde bereits -\Macro{textsuperscript}\IndexCmd{textsuperscript} als Bestandteil -des \LaTeX-Kerns vorgestellt. Leider bietet \LaTeX{} selbst keine entsprechende -Anweisung, um Text tief\Index{Tiefstellung} statt hoch\Index{Hochstellung} zu -stellen. \KOMAScript{} definiert dafür \Macro{textsubscript}. -% -\begin{Example} - Sie schreiben einen Text über den menschlichen Stoffwechsel. Darin - kommen hin und wieder einfache chemische Summenformeln vor. Dabei - sind einzelne Ziffern tief zu stellen. Im Sinne des logischen Markup - definieren Sie zunächst in der Dokumentpräambel oder einem eigenen - Paket: -\begin{lstlisting} - \newcommand*{\Molek}[2]{#1\textsubscript{#2}} -\end{lstlisting} - \newcommand*{\Molek}[2]{#1\textsubscript{#2}} - Damit schreiben Sie dann: -\begin{lstlisting} - Die Zelle bezieht ihr Energie unter anderem aus der - Reaktion von \Molek C6\Molek H{12}\Molek O6 und - \Molek O2 zu \Molek H2\Molek O{} und - \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich - allerdings auf den Stoffwechsel sehr nachteilig aus. -\end{lstlisting} - Das Ergebnis sieht daraufhin so aus: - \begin{ShowOutput} - Die Zelle bezieht ihr Energie unter anderem aus der Reaktion von - \Molek C6\Molek H{12}\Molek O6 und \Molek O2 zu \Molek H2\Molek - O{} und \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich - allerdings auf den Stoffwechsel sehr nachteilig aus. - \end{ShowOutput} - Etwas später entscheiden Sie, dass Summenformeln grundsätzlich - serifenlos geschrieben werden sollen. Nun zeigt sich, wie gut die - Entscheidung für konsequentes logisches Markup war. Sie müssen nur - die \Macro{Molek}-Anweisung umdefinieren: -\begin{lstlisting} - \newcommand*{\Molek}[2]{% - \textsf{#1\textsubscript{#2}}% - } -\end{lstlisting} - \renewcommand*{\Molek}[2]{\textsf{#1\textsubscript{#2}}} - Schon ändert sich die Ausgabe im gesamten Dokument: - \begin{ShowOutput} - Die Zelle bezieht ihr Energie unter anderem aus der Reaktion von - \Molek C6\Molek H{12}\Molek O6 und \Molek O2 zu \Molek H2\Molek - O{} und \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich - allerdings auf den Stoffwechsel sehr nachteilig aus. - \end{ShowOutput} -\end{Example} -\begin{Explain} - Im Beispiel wird die Schreibweise »\verb|\Molek C6|« - verwendet. Dabei wird Nutzen aus der Tatsache gezogen, - dass Argumente, die nur aus einem Zeichen bestehen, nicht geklammert - werden müssen. Damit ist »\verb|\Molek C6|« gleichbedeutend mit - »\verb|\Molek{C}{6}|«. Bekannt ist dieser Umstand hauptsächlich - von Indizes und Potenzen in mathematischen Umgebungen, etwa - »\verb|$x^2$|« statt »\verb|$x^{2}$|« für »$x^2$«. -\end{Explain} -% -\EndIndex{Cmd}{textsubscript}% - - -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Der Schlussteil} -\label{sec:maincls.appendix} - -Im Schlussteil eines Dokuments finden sich üblicherweise die -Anhänge\Index{Anhang}, das -Literaturverzeichnis\Index{Literaturverzeichnis} und gegebenenfalls -ein Stichwortverzeichnis\Index{Stichwortverzeichnis}. - -\begin{Declaration} - \Macro{appendix} -\end{Declaration}% -\BeginIndex{Cmd}{appendix}% -Der Anhang wird in den Standardklassen und den {\KOMAScript}-Klassen mit der -Anweisung \Macro{appendix} eingeleitet. Diese Anweisung schaltet unter anderem -die Kapitelnummerierung auf Großbuchstaben um und sorgt gleichzeitig dafür, -dass die Regeln für die Nummerierung der Gliederungsebenen nach \cite{DUDEN} -eingehalten werden. Diese Regeln sind in der Beschreibung der Klassenoptionen -\Option{pointednumbers} und \Option{pointlessnumbers} in -\autoref{sec:maincls.formattingOptions}, -\autopageref{desc:maincls.option.pointlessnumbers} näher erläutert. - -Bitte beachten Sie, dass es sich bei \Macro{appendix} um eine -Anweisung und \emph{nicht} um eine Umgebung handelt! Die Anweisung -erwartet auch nicht etwa ein Argument. Die Kapitel beziehungsweise -Abschnitte des Anhangs werden ganz normal mit \Macro{chapter} und -\Macro{section} gesetzt. -% -\EndIndex{Cmd}{appendix} - - -\begin{Declaration} - \Macro{appendixmore} -\end{Declaration}% -\BeginIndex{Cmd}{appendixmore}% -Bei den {\KOMAScript}-Klassen gibt es innerhalb der Anweisung \Macro{appendix} -eine Besonderheit. Ist nämlich die Anweisung \Macro{appendixmore} definiert, -so wird sie von der \Macro{appendix}-Anweisung ebenfalls ausgeführt. Intern -wird dies von den {\KOMAScript}-Klassen \Class{scrbook} und \Class{scrreprt} -für die Realisierung der Layoutoptionen \Option{appendixprefix} und -\Option{noappendixprefix} genutzt (siehe \autoref{sec:maincls.layoutOptions}, -\autopageref{desc:maincls.option.appendixprefix}). Dies sollten Sie unbedingt -beachten, falls Sie selbst das Makro \Macro{appendixmore} definieren oder -umdefinieren wollen. Ist eine dieser beiden Optionen gesetzt, so erhalten Sie -bei \verb|\newcommand{\appendixmore}{|\dots\verb|}| eine Fehlermeldung. -Dadurch soll verhindert werden, dass Sie die Optionen außer Kraft setzen, ohne -es zu merken. - -\begin{Example} - Sie wollen nicht, dass bei Verwendung der Klasse \Class{scrbook} oder - \Class{scrreprt} im Hauptteil die Kapitel mit einer Präfixzeile versehen - werden (siehe Layoutoptionen \Option{chapterprefix} und - \Option{nochapterprefix} in \autoref{sec:maincls.layoutOptions}, - \autopageref{desc:maincls.option.chapterprefix}). Damit die Konsistenz - gewahrt bleibt, wollen Sie auch nicht, dass eine solche Zeile im Anhang - verwendet wird. Stattdessen sollen in den Anhängen direkt vor dem - Kapitelbuchstaben das Wort »Anhang« in der jeweiligen Sprache stehen. Dies - soll auch für die Kolumnentitel gelten. Also verwenden Sie weder die - Layoutoption \Option{appendixprefix} noch \Option{noappendixprefix}, sondern - definieren in der Dokumentpräambel: -\begin{lstlisting} - \newcommand*{\appendixmore}{% - \renewcommand*{\chapterformat}{% - \appendixname~\thechapter\autodot\enskip} - \renewcommand*{\chaptermarkformat}{% - \appendixname~\thechapter\autodot\enskip} - } -\end{lstlisting} - \looseness=1 - Sollten Sie später dann doch noch entscheiden, dass Sie die Option - \Option{appendixprefix} verwenden wollen, so erhalten Sie aufgrund - der dann bereits definierten Anweisung \Macro{appendixmore} eine - Fehlermeldung. Damit wird verhindert, dass obige Definition - unbemerkt die Einstellungen überschreibt, die Sie per Option - getroffen haben. - - Wenn Sie ein vergleichbares Verhalten des Anhangs für die Klasse - \Class{scrartcl} erreichen wollen, so ist dies ebenfalls - möglich. Dazu schreiben Sie in die Präambel Ihres Dokuments: -\begin{lstlisting} - \newcommand*{\appendixmore}{% - \renewcommand*{\othersectionlevelsformat}[1]{% - \ifthenelse{\equal{##1}{section}}{% - \appendixname~}{}% - \csname the##1\endcsname\autodot\enskip} - \renewcommand*{\sectionmarkformat}{% - \appendixname~\thesection\autodot\enskip} - } -\end{lstlisting} - Sie benötigen dafür außerdem das - \Package{ifthen}-Paket\IndexPackage{ifthen} (siehe - \cite{package:ifthen}). - - Die Erklärungen zu den umdefinierten Anweisungen finden Sie in - \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.macro.chapterformat} und - \autopageref{desc:maincls.macro.chaptermarkformat}. -\end{Example}% -% -\EndIndex{Cmd}{appendixmore}% - - -\begin{Declaration} - \Macro{setbibpreamble}\Parameter{Präambel} -\end{Declaration}% -\BeginIndex{Cmd}{setbibpreamble}% -Mit der Anweisung \Macro{setbibpreamble} kann eine Präambel für -das Literaturverzeichnis\Index{Literaturverzeichnis} gesetzt -werden. Bedingung dafür ist, dass die Präambel vor der Anweisung -zum Setzen des Literaturverzeichnisses gesetzt wird. Dies muss -nicht unmittelbar davor sein. Es kann also beispielsweise am -Anfang des Dokuments erfolgen. Ebenso wie die Klassenoptionen -\Option{bibtotoc} und \Option{bibtotocnumbered} kann die -Anweisung aber nur erfolgreich sein, wenn nicht ein Paket geladen -wird, das dies durch Umdefinierung der -\Environment{thebibliography}-Umgebung verhindert. Obwohl das -\Package{natbib}-Paket\IndexPackage{natbib} unautorisiert interne -Makros von {\KOMAScript} verwendet, konnte erreicht werden, dass -\Macro{setbibpreamble} auch mit der aktuellen Version von -\Package{natbib} funktioniert (siehe \cite{package:natbib}). -\begin{Example} - Sie wollen darauf hinweisen, dass das Literaturverzeichnis nicht in - der Reihenfolge der Zitierung im Dokument, sondern alphabetisch - sortiert ist. Daher setzen Sie folgende Anweisung: -\begin{lstlisting} - \setbibpreamble{Die Literaturangaben sind - alphabetisch nach den Namen der Autoren sortiert. - Bei mehreren Autoren wird nach dem ersten Autor - sortiert.\par\bigskip} -\end{lstlisting} - Die Anweisung \Macro{bigskip}\IndexCmd{bigskip} sorgt dafür, dass - zwischen der Präambel und der ersten Literaturangabe ein großer - Zwischenraum gesetzt wird.% -\end{Example} -% -\EndIndex{Cmd}{setbibpreamble} - - -\begin{Declaration} - \Macro{setindexpreamble}\Parameter{Präambel} -\end{Declaration}% -\BeginIndex{Cmd}{setindexpreamble}% -Analog zur Präambel des Literaturverzeichnisses können Sie auch das -Stichwortverzeichnis mit einer Präambel versehen. Dies findet häufig -dann Anwendung, wenn es mehr als einen Index gibt oder im Index -unterschiedliche Arten der Referenzierung durch unterschiedliche -Hervorhebung der Seitenzahlen markiert werden. -\begin{Example} - Sie haben ein Dokument, in dem Begriffe sowohl definiert als auch - verwendet werden. Die Seitenzahlen der Begriffsdefinitionen sind - fett dargestellt. Natürlich möchten Sie gerne auf diesen Umstand - hinweisen. Also setzen Sie eine entsprechende Präambel für den - Index: -\begin{lstlisting} - \setindexpreamble{Alle \textbf{fett} gedruckten - Seitenzahlen sind Referenzen auf die Definition - des jeweiligen Begriffs. Demgegenüber geben normal - gedruckte Seitenzahlen die Seiten der Verwendung - des jeweiligen Begriffs wieder.\par\bigskip} -\end{lstlisting} -\end{Example} - -Bitte beachten Sie, dass für die erste Seite des Index der Seitenstil -umgeschaltet wird. Welcher Seitenstil hierbei Verwendung findet, ist im Makro -\Macro{indexpagestyle} abgelegt (siehe \autoref{sec:maincls.pageStyle}, -\autopageref{desc:maincls.macro.titlepagestyle}). - -Für die Erstellung, Sortierung und Ausgabe des Stichwortverzeichnisses -sind die üblichen Standard-\LaTeX-Pakete und Zusatzprogramme -zuständig. Von {\KOMAScript} werden genau wie von den Standardklassen -lediglich die grundlegenden Makros und Umgebungen dafür zur Verfügung -gestellt. -% -\EndIndex{Cmd}{setindexpreamble}% - - -\section{Obsoletes} -\label{sec:maincls.obsolete} - -\begin{Explain} - In diesem Abschnitt finden Sie Anweisungen, die der Anwender nicht - mehr verwenden sollte. Diese Anweisungen waren in früheren Versionen - von \KOMAScript{} zu finden und ihre Benutzung war dokumentiert. In - der aktuellen Version von \KOMAScript{} können sie aus Gründen der - Kompatibilität noch immer in gleicher Weise verwendet werden. Es - existieren jedoch neue Mechanismen oder Benutzerschnittstellen, die - stattdessen benutzt werden sollten. Dokumentiert sind die - veralteten Anweisungen hier nur, damit es dem Anwender leichter - fällt, alte Dokumente zu verstehen. Darüber hinaus steht es - Paketautoren frei, weiterhin diese Makros zu verwenden. - - \begin{Declaration} - \Macro{sectfont} - \end{Declaration} - \BeginIndex{Cmd}{sectfont}% - Dieses Makro beinhaltet die Schriftart, die für alle Überschriften - der Gliederung und der Zusammenfassung, den Haupttitel und die - oberste Ebene unter \Macro{part} im Inhaltsverzeichnis verwendet - wird. Verwenden Sie stattdessen die in - \autoref{sec:maincls.font} vorgestellten Anweisungen für das - Element \FontElement{disposition}.% -% - \EndIndex{Cmd}{sectfont}% - - \begin{Declaration} - \Macro{capfont} \\ - \Macro{caplabelfont} - \end{Declaration} - \BeginIndex{Cmd}{capfont}% - \BeginIndex{Cmd}{caplabelfont}% - Das Makro \Macro{capfont} beinhaltet die Schriftart, die für Tabellenunter"~ - oder "~überschriften und Abbildungunterschriften verwendet wird. Das Makro - \Macro{caplabelfont} beinhaltet die Schriftart, die davon abweichend für die - Bezeichnung und Nummer verwendet wird. Verwenden Sie stattdessen die in - \autoref{sec:maincls.font} vorgestellten Anweisungen für die Elemente - \FontElement{caption} und \FontElement{captionlabel}.% -% - \EndIndex{Cmd}{capfont}% - \EndIndex{Cmd}{caplabelfont}% - - \begin{Declaration} - \Macro{descfont} - \end{Declaration} - \BeginIndex{Cmd}{descfont}% - Dieses Makro beinhaltet die Schriftart, die für die Stichworte, also - die optionalen \Macro{item}-Argumente, einer - \Environment{description}-Umgebung verwendet wird. Verwenden Sie - stattdessen die in \autoref{sec:maincls.font} vorgestellten - Anweisungen für das Element \FontElement{descriptionlabel}. -% - \EndIndex{Cmd}{descfont}% - -\end{Explain} - -\index{Ueberschriften=Überschriften|seealso{Abschnitt, Gliederung, Kapitel}}% -\index{Gliederung|seealso{Abschnitt, Kapitel, Überschriften}}% - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: "../guide" -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/scrlfile.tex b/Master/texmf-dist/source/latex/koma-script/doc/german/scrlfile.tex deleted file mode 100644 index 59f5453c536..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/doc/german/scrlfile.tex +++ /dev/null @@ -1,317 +0,0 @@ -% ====================================================================== -% scrlfile.tex -% Copyright (c) Markus Kohm, 2001-2007 -% -% 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.3b of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3b 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. -% ---------------------------------------------------------------------- -% scrlfile.tex -% Copyright (c) Markus Kohm, 2001-2007 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3b, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3b 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. -% ====================================================================== -% -% Chapter about scrlfile of the KOMA-Script guide -% Maintained by Markus Kohm -% -% ---------------------------------------------------------------------------- -% -% Kapitel über scrlfile in der KOMA-Script-Anleitung -% Verwaltet von Markus Kohm -% -% ============================================================================ - -\ProvidesFile{scrlfile.tex}[2007/08/07 KOMA-Script guide (chapter: scrlfile)] - -\chapter{Paketabhängigkeiten mit \Package{scrlfile} - beherrschen} -\labelbase{scrlfile} - -\BeginIndex{Package}{scrlfile} - -\begin{Explain} - Die Einführung von \LaTeXe{} brachte 1994 eine Menge Neuerungen im - Umgang mit \LaTeX-Erweiterungen. So stehen dem Paketautor heute eine - ganze Reihe von Befehlen zur Verfügung, um festzustellen, ob ein - anderes Paket oder eine bestimmte Klasse verwendet wird und ob dabei - bestimmte Optionen zur Anwendung kommen. Der Paketautor kann selbst - andere Pakete laden oder diesen Optionen mit auf den Weg geben für - den Fall, dass sie später noch geladen werden. Es bestand daher die - Hoffnung, dass es künftig unerheblich wäre, in welcher Reihenfolge - Pakete geladen werden. Diese Hoffnung hat sich leider nicht erfüllt. -\end{Explain} - -\section{Die Sache mit den Paketabhängigkeiten} -\label{sec:scrlfile.dependency} -\begin{Explain} - Immer häufiger definieren unterschiedliche Pakete den gleichen - Befehl neu oder um. Dabei ist es dann sehr entscheidend, in welcher - Reihenfolge die Pakete geladen werden. Manchmal ist das für den - Anwender kaum zu überschauen. In manchen Fällen ist es auch - notwendig, einfach nur in irgendeiner Form auf das Laden eines - anderen Paketes zu reagieren. Auch das ist nicht immer ganz einfach. - - Nehmen wir als einfaches Beispiel das Laden des - \Package{longtable}-Paketes bei Verwendung von \KOMAScript{}. Das - \Package{longtable}-Paket definiert seine eigene Form von - Tabellenüberschriften. Diese passen perfekt zu den - Tabellenüberschriften der Standardklassen. Sie passen aber überhaupt - nicht zu den Voreinstellungen für die Tabellenüberschriften von - \KOMAScript{} und reagieren auch nicht auf die entsprechenden - Möglichkeiten der Konfiguration. Um dieses Problem zu lösen, müssen - die Befehle von \Package{longtable}, die für die - Tabellenüberschriften zuständig sind, von \KOMAScript{} umdefiniert - werden. Allerdings sind die \KOMAScript{}-Klassen bereits - abgearbeitet, wenn das Paket geladen wird. - - Bisher bestand die einzige Möglichkeit, dieses Problem zu lösen - darin, die Umdefinierung mit Hilfe von \Macro{AtBeginDocument} auf - einen späteren Zeitpunkt zu verschieben. Will der Anwender die - entsprechende Anweisung jedoch selbst umdefinieren, so sollte er - dies eigentlich ebenfalls in der Präambel tun. Das kann er jedoch - nicht, weil \KOMAScript{} ihm dabei in die Quere kommt. Er müsste - die Umdefinierung also ebenfalls mit Hilfe von - \Macro{AtBeginDocument} durchführen. - - Aber eigentlich müsste \KOMAScript{} die Abarbeitung gar nicht auf - den Zeitpunkt von \Macro{begin}\PParameter{document} verschieben. Es - würde genügen, wenn sie bis unmittelbar nach dem Laden von - \Package{longtable} verzögert werden könnte. Leider fehlen - entsprechende Anweisungen im \LaTeX-Kern. Das Paket - \Package{scrlfile} bringt hier Abhilfe. - - Ebenso wäre es denkbar, dass man vor dem Laden eines bestimmten - Paketes gerne die Bedeutung eines Makros in einem Hilfsmakro retten - und nach dem Laden des Paketes wieder restaurieren will. Auch das - geht mit \Package{scrlfile}. - - Die Anwendung von \Package{scrlfile} ist nicht auf die Abhängigkeit - von Paketen beschränkt. Auch Abhängigkeiten von anderen Dateien - können berücksichtigt werden. So kann beispielsweise dafür gesorgt - werden, dass das nicht unkritische Laden einer Datei wie - \File{french.ldf} automatisch zu einer Warnung führt. - - Obwohl das Paket in erster Linie für andere Paketautoren interessant - sein dürfte, gibt es durchaus auch Anwendungen für normale - \LaTeX-Benutzer. Deshalb sind in diesem Kapitel auch für beide - Gruppen Beispiele aufgeführt. -\end{Explain} - - -\section{Aktionen vor und nach dem Laden} -\label{sec:scrlfile.macros} - -Mit \Package{scrlfile} können vor und nach dem Laden von Dateien Aktionen -ausgelöst werden. Bei den dazu verwendeten Befehlen wird zwischen allgemeinen -Dateien, Klassen und Paketen unterschieden. - -\begin{Declaration} - \Macro{BeforeFile}\Parameter{Datei}\Parameter{Anweisungen}\\ - \Macro{AfterFile}\Parameter{Datei}\Parameter{Anweisungen} -\end{Declaration}% -\BeginIndex{Cmd}{BeforeFile}% -\BeginIndex{Cmd}{AfterFile}% -Mit Hilfe von \Macro{BeforeFile} kann dafür gesorgt werden, dass -\PName{Anweisungen} erst vor dem nächsten Laden einer bestimmten -\PName{Datei} ausgeführt werden. Vergleichbar arbeitet -\Macro{AfterFile}. Nur werden die \PName{Anweisungen} hier erst nach -dem Laden der \PName{Datei} ausgeführt. Wird die Datei nie geladen, so -werden die \PName{Anweisungen} auch nie ausgeführt. - -\begin{Explain} - Um die Funktionalität bereitstellen zu können, bedient sich - \Package{scrlfile} der bekannten \LaTeX-Anweisung - \Macro{InputIfFileExists}. Diese wird hierzu umdefiniert. Falls die - Anweisung nicht die erwartete Definition hat, gibt - \Package{scrlfile} eine Warnung aus. Dies geschieht für den Fall, - dass die Anweisung in späteren \LaTeX-Versionen geändert wird oder - bereits von einem anderen Paket umdefiniert wurde. - - Die Anweisung \Macro{InputIfFileExists} wird von \LaTeX{} immer - verwendet, wenn eine Datei geladen werden soll. Dies geschieht - unabhängig davon, ob die Datei mit \Macro{include}, \Macro{LoadClass}, - \Macro{documentclass}, \Macro{usepackage}, \Macro{RequirePackage}, - oder vergleichbaren Anweisungen geladen wird. Lediglich -\begin{lstlisting} - \input foo -\end{lstlisting} - lädt die Datei \texttt{foo} ohne Verwendung von - \Macro{InputIfFileExists}. Sie sollten daher stattdessen immer -\begin{lstlisting} - \input{foo} -\end{lstlisting} - verwenden. Beachten Sie die Klammern um den Dateinamen! -\end{Explain} -% -\EndIndex{Cmd}{BeforeFile}% -\EndIndex{Cmd}{AfterFile}% - -\begin{Declaration} - \Macro{BeforeClass}\Parameter{Klasse}\Parameter{Anweisungen}\\ - \Macro{BeforePackage}\Parameter{Paket}\Parameter{Anweisungen} -\end{Declaration}% -\BeginIndex{Cmd}{BeforeClass}% -\BeginIndex{Cmd}{BeforePackage}% -Diese beiden Befehle arbeiten vergleichbar zu \Macro{BeforeFile} mit dem einen -Unterschied, dass die \PName{Klasse} beziehungsweise das \PName{Paket} mit -seinem Namen und nicht mit seinem Dateinamen angegeben wird. Die Endungen -\File{.cls} und \File{.sty} entfallen hier also. -% -\EndIndex{Cmd}{BeforeClass}% -\EndIndex{Cmd}{BeforePackage}% - -\begin{Declaration} - \Macro{AfterClass}\Parameter{Klasse}\Parameter{Anweisungen}\\ - \Macro{AfterClass*}\Parameter{Klasse}\Parameter{Anweisungen}\\ - \Macro{AfterPackage}\Parameter{Paket}\Parameter{Anweisungen}\\ - \Macro{AfterPackage*}\Parameter{Paket}\Parameter{Anweisungen} -\end{Declaration}% -\BeginIndex{Cmd}{AfterClass}% -\BeginIndex{Cmd}{AfterClass*}% -\BeginIndex{Cmd}{AfterPackage}% -\BeginIndex{Cmd}{AfterPackage*}% -Die Anweisungen \Macro{AfterClass} und \Macro{AfterPackage} arbeiten -weitgehend wie \Macro{AfterFile} mit dem winzigen Unterschied, dass die -\PName{Klasse} beziehungsweise das \PName{Paket} mit seinem Namen und -nicht mit seinem Dateinamen angegeben wird. Die Endungen \File{.cls} -und \File{.sty} entfallen hier also. Bei den Sternvarianten gibt es -eine zusätzliche Funktionalität. Ist die entsprechende Klasse oder das -entsprechende Paket bereits geladen, so werden die \PName{Anweisungen} -nicht nach dem nächsten Laden, sondern unmittelbar ausgeführt. -% -\EndIndex{Cmd}{AfterClass}% -\EndIndex{Cmd}{AfterClass*}% -\EndIndex{Cmd}{AfterPackage}% -\EndIndex{Cmd}{AfterPackage*}% - -\begin{Example} - Als Beispiel für Paket- oder Klassenautoren will ich zunächst - erklären, wie \KOMAScript{} selbst Gebrauch von den neuen - Anweisungen macht. Dazu findet sich in \Class{scrbook} - beispielsweise Folgendes: -\begin{lstlisting} - \AfterPackage{hyperref}{% - \@ifpackagelater{hyperref}{2001/02/19}{}{% - \ClassWarningNoLine{scrbook}{% - You are using an old version of hyperref - package!\MessageBreak% - This version has a buggy hack at many drivers% - \MessageBreak% - causing \string\addchap\space to behave - strange.\MessageBreak% - Please update hyperref to at least version - 6.71b}}} -\end{lstlisting} - Alte Versionen von \Package{hyperref} definierten ein Makro von - \Class{scrbook} in einer Weise um, so dass es mit neueren Versionen - von \KOMAScript{} nicht mehr funktioniert. Neuere Versionen von - \Package{hyperref} unterlassen dies, wenn sie eine neuere Version - von \KOMAScript{} erkennen. Für den Fall, dass \Package{hyperref} - zu einem späteren Zeitpunkt geladen wird, sorgt also \Class{scrbook} - dafür, dass unmittelbar nach dem Laden des Paketes überprüft wird, ob - es sich um eine verträgliche Version handelt. Falls dies nicht der - Fall ist, wird eine Warnung ausgegeben. - - An anderer Stelle findet sich in drei \KOMAScript-Klassen Folgendes: -\begin{lstlisting} - \AfterPackage{caption2}{% - \renewcommand*{\setcapindent}{% -\end{lstlisting} - Nach dem Laden von \Package{caption2} und nur falls das Paket - geladen wird, wird hier die \KOMAScript-Anweisung - \Macro{setcapindent} umdefiniert. Der Inhalt der Umdefinierung ist - für dieses Beispiel unerheblich. Es sei nur erwähnt, dass - \Package{caption2} die Kontrolle über die \Macro{caption}-Anweisung - übernimmt und daher die normale Definition von \Macro{setcapindent} - keinerlei Wirkung mehr hätte. Die Umdefinierung verbessert dann die - Zusammenarbeit mit \Package{caption2}. - - Es gibt aber auch Beispiele für den sinnvollen Einsatz der neuen - Anweisungen durch normale Anwender. Angenommen, Sie erstellen ein - Dokument, aus dem sowohl eine PS-Datei mit \LaTeX{} und dvips als auch - eine PDF-Datei mit pdf\LaTeX{} erstellt werden soll. Das Dokument soll - außerdem Hyperlinks aufweisen. Im Tabellenverzeichnis haben Sie - Einträge, die über mehrere Zeilen gehen. Nun gibt es zwar mit - pdf\LaTeX{} bei der PDF-Ausgabe keine Probleme, da dort Links - umbrochen werden können. Bei Verwendung des - \Package{hyperref}-Treibers für dvips oder - hyper\TeX{} ist dies jedoch nicht - möglich. In diesem Fall hätten Sie gerne, dass bei - \Package{hyperref} die Einstellung \Option{linktocpage} verwendet - wird. Die Entscheidung, welcher Treiber geladen wird, wird bei Ihnen - automatisch von \File{hyperref.cfg} erledigt. Dazu sieht die Datei - beispielsweise wie folgt aus: -\begin{lstlisting} - \ProvidesFile{hyperref.cfg} - \@ifundefined{pdfoutput}{\ExecuteOptions{dvips}} - {\ExecuteOptions{pdftex}} - \endinput -\end{lstlisting} - - Alles weitere kann nun \Macro{AfterFile} überlassen werden: -\begin{lstlisting} - \documentclass{article} - \usepackage{scrlfile,ngerman} - \AfterFile{hdvips.def}{\hypersetup{linktocpage}} - \AfterFile{hypertex.def}{\hypersetup{linktocpage}} - \usepackage{hyperref} - \begin{document} - \listoffigures - \clearpage - \begin{figure} - \caption{Dies ist ein Beispiel mit einer - Abbildungsunterschrift, die etwas länglich ist - und bei der trotzdem auf die Verwendung des - optionalen Arguments verzichtet wurde} - \end{figure} - \end{document} -\end{lstlisting} - Egal, ob nun der \Package{hyperref}-Treiber \Option{hypertex} oder - \Option{dvips} zu Anwendung kommt, wird die dann nützliche - Einstellung \Option{linktocpage} verwendet. Wenn Sie jedoch mit - pdf\LaTeX{} eine PDF-Datei erstellen, wird darauf verzichtet, da in diesem - Fall der \Package{hyperref}-Treiber \File{hpdftex.def} verwendet wird. Das - bedeutet, dass weder \File{hdvips.def} noch \File{hypertex.def} geladen - wird. -\end{Example} - -\begin{Explain} - Übrigens können Sie das Laden von \Package{scrlfile} und die obigen - \Macro{AfterFile}-Anweisungen auch in Ihre private - \File{hyperref.cfg} einfügen. Verwenden Sie dabei jedoch zum Laden - des Paketes besser \Macro{RequirePackage} an Stelle von - \Macro{usepackage} (siehe \cite{latex:clsguide}). Die neuen Zeilen - müssen in obigem Beispiel unmittelbar nach der - \Macro{ProvidesFile}-Zeile, also unbedingt vor der Ausführung der - Optionen \Option{dvips} oder \Option{pdftex}, eingefügt werden.% -\end{Explain}% -\EndIndex{Package}{scrlfile} - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: "../guide" -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/scrlttr2.tex b/Master/texmf-dist/source/latex/koma-script/doc/german/scrlttr2.tex deleted file mode 100644 index 896751046c0..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/doc/german/scrlttr2.tex +++ /dev/null @@ -1,4502 +0,0 @@ -% ====================================================================== -% scrlttr2.tex -% Copyright (c) Markus Kohm, 2002-2007 -% -% 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.3b of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3b 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. -% ---------------------------------------------------------------------- -% scrlttr2.tex -% Copyright (c) Markus Kohm, 2002-2007 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3b, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3b 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. -% ====================================================================== -% -% Chapter about scrlttr2 of the KOMA-Script guide -% Maintained by Markus Kohm -% -% ---------------------------------------------------------------------- -% -% Kapitel über scrlttr2 in der KOMA-Script-Anleitung -% Verwaltet von Markus Kohm -% -% ============================================================================ - -\ProvidesFile{scrlttr2.tex}[2007/12/15 KOMA-Script guide (chapter: scrlttr2)] - -\chapter{Die neue Briefklasse \Class{scrlttr2}} -\labelbase{scrlttr2} - -\BeginIndex{Class}{scrlttr2}\BeginIndex{}{Briefe}% -\begin{Explain} -Seit der Ausgabe vom Juni 2002 beinhaltet \KOMAScript{} eine komplett -neue Briefklasse\ChangedAt{v2.8q}{\Class{scrlttr2}}. Obwohl einige -Teile davon mit den Klassen aus \autoref{cha:maincls} -übereinstimmen, sind Briefe doch etwas ganz anderes als Artikel, -Berichte, Bücher oder Ähnliches. Schon allein deshalb gibt es für die -Briefklasse ein eigenes Kapitel. Aber auch aus einem anderen Grund ist -ein eigenes Kapitel für \Class{scrlttr2} gerechtfertigt. Die Klasse -wurde von Grund auf neu entwickelt. Sie hat daher auch ein komplett -anderes Bedienkonzept als alle anderen mir bekannten Klassen. Die neue -Art der Bedienung ist möglicherweise etwas ungewohnt, bietet jedoch -nicht nur dem geübten Anwender einige Vorteile. - - -\section{Rückblick auf die alte Briefklasse} -\label{sec:scrlttr2.scrlettr} - -Die alte Briefklasse \Class{scrlettr}\IndexClass{scrlettr} -ist obsolet. Sie sollte für neue Briefe besser nicht mehr verwendet -werden. Sie wird nicht mehr weiterentwickelt und es findet daher auch -nur noch sehr eingeschränkter Support dafür statt. Wer dennoch -unbedingt die Anleitung zur alten Briefklasse benötigt, kann diese in -\File{scrlettr.dtx} finden. Am besten führt man dazu einige -\LaTeX-Läufe mit jener Datei durch, also beispielsweise: -\begin{lstlisting} - latex scrlettr.dtx - latex scrlettr.dtx - latex scrlettr.dtx -\end{lstlisting} -Man erhält so die Datei \File{scrlettr.dvi} mit der Anleitung. - -Um den Umstieg von der alten auf die neue Klasse zu erleichtern, existiert -außerdem eine Kompatibilitätsoption. Grundsätzlich ist in der neuen Klasse die -gesamte alte Funktionalität enthalten. Ohne die Kompatibilitätsoption ist -jedoch die Benutzerschnittstelle eine andere und auch die Voreinstellungen -stimmen nicht überein. Näheres zu besagter Option ist -\autoref{sec:scrlttr2.lcoFile}, \autoref{tab:lcoFiles} und -\autoref{sec:scrlttr2.fromscrlettr} zu entnehmen. -\end{Explain} - - -\section{Die Optionen} -\label{sec:scrlttr2.options} - -Die Briefklasse \Class{scrlttr2} bedient sich für die Optionen des -\Package{keyval}\IndexPackage{keyval}-Paketes. Dieses ist Bestandteil -des \Package{graphics}-Paketes (siehe \cite{package:graphics}). Da -jenes Paket zur \emph{required}-Sektion von \LaTeX{} gehört, sollte es -Bestandteil jeder \LaTeX-Verteilung sein. Sollte Ihre -\TeX-Distribution zwar \LaTeX{}, nicht jedoch das \Package{graphics}- -und \Package{keyval}-Paket enthalten, beschweren Sie sich bitte beim -zuständigen \TeX-Distributor. Wenn Sie \Class{scrlttr2} verwenden -wollen, wird Ihnen in einem solchen Fall nichts anderes übrig bleiben, -als das \Package{graphics}-Paket zu installieren. - -\begin{Explain} - Das Besondere am \Package{keyval}-Paket ist, dass Optionen Werte erhalten - können. Dadurch werden nicht nur wesentlich weniger Optionen benötigt, - sondern gegebenfalls auch weniger optionale Argumente. Sie werden dies bei - der Beschreibung der \Environment{letter}-Umgebung in - \autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.environment.letter} feststellen. Das - \Package{keyval}-Paket wird von der Klasse automatisch geladen. Sollten Sie - Optionen an das Paket übergeben müssen, so verwenden Sie hierfür bitte die - Anweisung \Macro{PassOptionsToPackage} vor \Macro{documentclass}. -\end{Explain} - - -\subsection{Spätere Optionenwahl} -\label{sec:scrlttr2.options.late} -\BeginIndex{}{Optionen}% - -In diesem Abschnitt wird auf eine Besonderheit der neuen Briefklasse -vorgegriffen. Der Sinn dieser Besonderheit wird eigentlich erst klar, -wenn der Aufbau einer Briefdatei mit mehreren Briefen und eine weitere -Besonderheit von \Class{scrlttr2} verstanden ist. Um jedoch die Anzahl -der Vorwärtsverweise überschaubar zu halten, erschien es sinnvoll, -diese bereits hier zu beschreiben. - -\begin{Declaration} - \Macro{KOMAoptions}\Parameter{Optionenliste} -\end{Declaration} -\BeginIndex{Cmd}{KOMAoptions}% -Eine Besonderheit der \Class{scrlttr2}-Klasse besteht darin, dass -viele Optionen auch noch nach dem Laden der Klasse geändert werden -können. Dazu dient diese Anweisung, der die gewünschten Optionen und -deren Werte als Argument übergeben werden. Mehrere Optionen können -dabei genau wie beim optionalen Argument von \Macro{documentclass} mit -Komma voneinander getrennt aufgelistet werden. Sollte eine Option nur -beim Laden der Klasse, also als optionales Argument von -\Macro{documentclass} erlaubt sein, so wird in der Beschreibung der -jeweiligen Option explizit darauf hingewiesen. - -\begin{Explain} -Falls man in der \PName{Optionenliste} eine Option auf einen -unzulässigen Wert setzt, so stoppt \LaTeX{} mit einer -Fehlermeldung. Durch Eingabe von "`\texttt{h}"' erhält man dann eine -Hilfe, in der auch die möglichen Werte für die entsprechende Option -angegeben sind. -\end{Explain} -% -\EndIndex{Cmd}{KOMAoptions}% -\EndIndex{}{Optionen}% - - -\subsection{Optionen für die Kompatibilität} -\label{sec:scrlttr2.compatibilityOptions} -\BeginIndex{}{Kompatibilität} - -Wer seine Briefe im Quellcode archiviert, legt in der Regel allergrößten Wert -darauf, dass bei zukünftigen \LaTeX{}-Läufen immer wieder exakt dasselbe -Ergebnis erzielt wird. In einigen Fällen ist es aber so, dass Verbesserungen -und Korrekturen an der Klasse zu Änderungen im Verhalten, inbesondere beim -Umbruch, führen. - -\begin{Declaration} - \Option{version}=\PName{Wert} -\end{Declaration} -\BeginIndex{Option}{version}% -Bei\ChangedAt{v2.9t}{\Class{scrlttr2}} \Class{scrlttr2} besteht die Wahl, ob -eine Quelldatei so weit irgend möglich auch zukünftig bei einem \LaTeX{}-Lauf -zu exakt demselben Ergebnis führen soll oder ob jeweils entsprechend der -Anpassungen der neusten Version der Klasse zu setzen ist. Zu welcher Version -Kompatibilität herzustellen ist, wird dabei über die Option -\Option{version} festgelegt. Voreingestellt ist Version 2.9t. Dasselbe -Ergebnis kann mit -\begin{lstlisting} - version=first -\end{lstlisting} -oder -\begin{lstlisting} - version=2.9 -\end{lstlisting} -oder -\begin{lstlisting} - version=2.9t -\end{lstlisting} -erreicht werden. Bei Angabe einer unbekannten Version als \PName{Wert} wird -eine Warnung ausgegeben und sicherheitshalber \Option{version=}\PValue{first} -angenommen. Mit -\begin{lstlisting} - version=last -\end{lstlisting} -kann die jeweils neuste Version ausgewählt werden. In diesem Fall wird also -auf zukünftige Kompatibilität verzichtet. Wird die Option ohne Wertangabe -verwendet, so wird ebenfalls \PValue{last} angenommen. - -Die Frage der Kompatiblität betrifft in erster Linie Fragen des Umbruchs. Neue -Möglichkeiten, die sich nicht auf den Umbruch auswirken, sind auch dann -verfügbar, wenn man per Option die Kompatibilität zu einer älteren Version -ausgewählt hat. Die Option hat keine Auswirkungen auf Umbruchänderungen, die -bei Verwendung einer neueren Version durch Beseitigung eindeutiger Fehler -entstehen. Wer auch im Fehlerfall unbedingte Umbruchkompatibitlität benötigt, -sollte stattdessen mit dem Dokument auch die verwendete \KOMAScript-Version -archivieren. - -Es ist zu beachten, dass die Option \Option{version} nach dem Laden der Klasse -nicht mehr verändert werden kann.% -% -\EndIndex{Option}{version}% -% -\EndIndex{}{Kompatibilität} - -\subsection{Optionen für den Satzspiegel} -\label{sec:scrlttr2.typeareaOptions} -\BeginIndex{}{Satzspiegel} - -Die \Class{scrlttr2}-Klasse stützt sich im Gegensatz zur alten -\Class{scrlettr}-Klasse und in Übereinstimmung mit den übrigen -\KOMAScript-Klassen zur Festlegung des Satzspiegels auf das -\Package{typearea}-Paket\IndexPackage{typearea} (siehe -\autoref{cha:typearea}). Das Paket wird von der Klasse automatisch -geladen. Die Steuerung des Paketes übernimmt die Klasse. Die dazu -benötigten Optionen werden in diesem Abschnitt erwähnt. - -\begin{Declaration} - \Option{paper}=\PName{Format} -\end{Declaration} -\BeginIndex{Option}{paper}% -\BeginIndex{}{Papierformat}% -Mit dieser Option wird das Papierformat angegeben. Es werden theoretisch -alle Papierformate unterstützt, die das \Package{typearea}-Paket -kennt. Dabei ist jedoch das Postfix \PValue{paper} bei der Angabe des -Wertes \PName{Format} wegzulassen. Für das Letterformat verwenden Sie -also beispielsweise den Wert \PValue{letter}. Die Formate der ISO A-, -B-, C- und D-Reihe sind mit Kleinbuchstaben zu übergeben, -beispielsweise \PValue{a4} für ISO A4. Siehe hierzu auch -\autoref{sec:typearea.paperTypes}. - -\begin{Explain} - Obwohl jedes von \Package{typearea} einstellbare Format verwendbar - ist, kann es bei der Ausgabe der ersten Briefseite mit manchen - Formaten zu unerwünschten Ergebnissen kommen. Das liegt aber nicht - am Konzept der Klasse, sondern daran, dass derzeit nur - Parametersätze für ISO A4 existieren. Leider gibt es keine - allgemeingültigen Regeln, um die Position von Anschriftfeldern und - Ähnlichem für beliebige Papierformate zu berechnen. Es ist jedoch - möglich, auch für andere Papierformate Parametersätze zu erstellen. - Näheres dazu ist \autoref{sec:scrlttr2.lcoFile} zu entnehmen. -\end{Explain} -% -\EndIndex{Option}{paper}% -\EndIndex{}{Papierformat}% - - -\begin{Declaration} - \Option{BCOR}=\PName{Länge}\\ - \Option{DIV}=\PName{Wert}\\ - \Option{headlines}=\PName{Anzahl} -\end{Declaration} -\BeginIndex{Option}{BCOR}% -\BeginIndex{Option}{DIV}% -\BeginIndex{Option}{headlines}% -Die Optionen für den Divisor, die Bindekorrektur\Index{Bindekorrektur} und die -Anzahl der Kopfzeilen wird direkt in die entsprechenden Optionen für das -\Package{typearea} Paket übersetzt und an dieses Paket weitergeleitet. Werden -die Optionen nicht als Klassenoptionen sondern mit \Macro{KOMAoptions} -gesetzt, so wird die Anweisung \Macro{typearea} aus dem -\Package{typearea}-Paket verwendet. Siehe dazu auch -\autoref{sec:typearea.options}, \autopageref{desc:typearea.macro.typearea}. -% -\EndIndex{Option}{BCOR}% -\EndIndex{Option}{DIV}% -\EndIndex{Option}{headlines}% - - -\begin{Declaration} - \Option{enlargefirstpage} -\end{Declaration} -\BeginIndex{Option}{enlargefirstpage}% -Wie später erklärt wird, fällt die erste Seite eines Briefes immer aus dem -normalen Satzspiegel. \Class{scrlttr2} stellt Mechanismen bereit, um die Höhe -und vertikale Ausrichtung von Kopf und Fuß der ersten Seite unabhängig von den -Folgeseiten bestimmen zu können. Würde dadurch der Fuß der ersten Seite in den -Textbereich\Index{Textbereich} ragen, so wird der Textbereich der ersten Seite -automatisch mit Hilfe von \Macro{enlargethispage}\IndexCmd{enlargethispage} -verkleinert. Soll der Textbereich umgekehrt auch vergrößert werden, falls der -Fuß der ersten Seite dies erlaubt, so kann das mit dieser Option erreicht -werden. Es passt dann bestenfalls etwas mehr Text auf die erste Seite. Siehe -hierzu auch die Erklärung zur Pseudolänge \PLength{firstfootvpos} in -\autoref{sec:scrlttr2.firstFoot}, -\autopageref{desc:scrlttr2.plength.firstfootvpos}. Die Option versteht die -Standardwerte für einfache Schalter, die in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt -ist \PValue{false}. -% -\EndIndex{Option}{enlargefirstpage}% - -\begin{table} - \centering - \caption{Standardwerte für einfache Schalter in der Klasse - \Class{scrlttr2}} - \begin{tabular}{ll} - \toprule - Wert & Bedeutung \\ - \midrule - \PValue{true} & aktiviert die Option \\ - \PValue{on} & aktiviert die Option \\ - \PValue{false}& deaktiviert die Option \\ - \PValue{off} & deaktiviert die Option \\ - \bottomrule - \end{tabular} - \label{tab:scrlttr2.simpleSwitchValues} -\end{table} - -% -\EndIndex{}{Satzspiegel}% - - -\subsection{Optionen für das Layout} -\label{sec:scrlttr2.layout} - -In diesem Unterabschnitt werden alle Optionen zusammengefasst, die -sich im weiter gefassten Sinne auf das Layout und nicht auf den -Satzspiegel auswirken. Genau genommen sind natürlich alle -Satzspiegeloptionen (siehe \autoref{sec:scrlttr2.typeareaOptions}) -Layoutoptionen. Teilweise gilt dies auch umgekehrt. - - -\begin{Declaration} - \Option{mpinclude}\\ - \Option{mpexclude} -\end{Declaration} -\BeginIndex{Option}{mpinclude}% -\BeginIndex{Option}{mpexclude}% -Diese beiden Optionen des \Package{typearea}-Paketes sollten nicht -zusammen mit der \Class{scrlttr2}-Klasse verwendet werden, da -insbesondere die erste Briefseite diese Option nicht -berücksichtigt. Um Beschwerden vorzugreifen, wird daher bei Verwendung -dieser Option eine Warnung ausgegeben. Wenn Sie experimentierfreudig -sind, können Sie aber gerne ausprobieren, wie sich insbesondere -\Option{mpinclude} zusammen mit anderen Optionen auf die Klasse -auswirkt. -% -\EndIndex{Option}{mpinclude}% -\EndIndex{Option}{mpexclude}% - - -\begin{Declaration} - \Option{twoside} -\end{Declaration}% -\BeginIndex{Option}{oneside}% -Doppelseitige\Index{doppelseitig} Briefe ergeben in den Augen des -Autors wenig Sinn. Deshalb schaltet die Option \Option{twoside} auch -nur teilweise auf ein doppelseitiges Layout. So wird zwar die -Möglichkeit geschaffen, auf linken und rechten Seiten mit einem -unterschiedlichen Rand\Index{Rand} zu arbeiten, diese Möglichkeit wird -jedoch nicht genutzt. Die Option hat also mehr die Bedeutung: -\emph{Aktiviere die Möglichkeiten eines zweiseitigen Dokuments aber - behalte bis auf weiteres und so weit wie - möglich das einseitige Layout bei.} % -Die Option versteht die Standardwerte für einfache Schalter, die in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} angegeben -sind. Voreingestellt ist \PValue{false}.% -% -\EndIndex{Option}{twoside}% - -Übrigens werden zweispaltige Briefe nicht unterstützt, da absolut kein -Sinn darin gesehen wird. - - -\begin{Declaration} - \Option{cleardoublepage}=\PName{Stil} -\end{Declaration} -\BeginIndex{Option}{cleardoublepage}% -Will man, dass mit der \Macro{cleardoublepage}-Anweisung eingefügte Leerseiten -im Kopf- und Fuß nur eine Seitenzahl oder gar nichts aufweisen, so kann das -mit Hilfe dieser Option eingestellt werden. Es stehen drei verschiedene Stile -zur Verfügung, die in \autoref{tab:scrlttr2.cleardoublepage} aufgeführt sind. -Die Seitenstile werden in \autoref{sec:scrlttr2.pageStyle} näher erläutert. -Voreingestellt ist \PValue{standard}. - -\begin{table} - \caption[{Mögliche Werte für Option \Option{cleardoublepage} bei - \Class{scrlttr2}}]{Mögliche Werte für Option \Option{cleardoublepage} zur - Wahl des Seitenstils von leeren Schaltseiten bei \Class{scrlttr2}} - \label{tab:scrlttr2.cleardoublepage} - \begin{desctabular} - \pventry{empty}{schaltet für die Leerseite auf den - Seitenstil\Index{Seitenstil} \PValue{empty}\IndexPagestyle{empty}}% - \pventry{plain}{schaltet für die Leerseite auf den Seitenstil - \PValue{plain}\IndexPagestyle{plain}} - \pventry{standard}{behält für die Leerseite den aktuellen - Seitenstil bei.} - \end{desctabular} -\end{table} -% -\EndIndex{Option}{cleardoublepage}% - - -\begin{Declaration} - \Option{headsepline}\\ - \Option{footsepline} -\end{Declaration} -\BeginIndex{Option}{headsepline}% -\BeginIndex{Option}{footsepline}% -Mit Hilfe dieser beiden Optionen kann eine -Trennlinie\Index{Trennlinie}\Index{Linie} unter dem Kopf\Index{Seitenkopf} -oder über dem Fuß\Index{Seitenfuß} von Folgeseiten eingeschaltet werden. -Folgeseiten im Sprachgebrauch dieser Anleitung sind alle Briefseiten, -abgesehen von der ersten. Die Optionen \Option{headsepline} und -\Option{footsepline} verstehen die Standardwerte für einfache Schalter, die in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt -ist \PValue{false}. Wird eine Option wie in der Deklaration ohne Wert -verwendet, so entspricht dies dem Wert \PValue{true}, die Trennlinie wird also -aktiviert. Bei Verwendung als Option in \Macro{documentclass} wird zusätzlich -die Option \Option{headinclude} beziehungsweise \Option{footinclude} an das -Paket \Package{typearea} übergeben (siehe \autoref{sec:typearea.options}, -\autopageref{desc:typearea.option.headinclude}). -% -\EndIndex{Option}{headsepline}% -\EndIndex{Option}{footsepline}% - - -\begin{Declaration} - \Option{pagenumber}=\PName{Position} -\end{Declaration} -\BeginIndex{Option}{pagenumber}% -Mit Hilfe dieser Option kann bestimmt werden, ob und wo eine -Seitenzahl auf Folgeseiten gesetzt werden soll. -Folgeseiten\Index{Folgeseite} sind alle Briefseiten ohne -Briefkopf\Index{Briefkopf}. Die Option wirkt sich auf die -Seitenstile\Index{Seitenstil} \PValue{headings} und \PValue{plain} -aus. Sie beeinflusst außerdem die Voreinstellung der Seitenstile des -\Package{scrpage2}-Paketes, soweit sie vor dem Laden dieses Paketes -gesetzt wird (siehe \autoref{cha:scrpage}). Es gibt Werte, die sich -nur auf die horizontale Position auswirken, Werte, die nur die -vertikale Position beeinflussen, und Werte, die zugleich die vertikale -und die horizontale Position festlegen. Mögliche Werte sind -\autoref{tab:scrlttr2.pagenumber} zu entnehmen. Voreingestellt ist -\PValue{botcenter}. - -\begin{table} - \caption[{Mögliche Werte für Option \Option{pagenumber} bei - \Class{scrlttr2}}]{Mögliche Werte für Option \Option{pagenumber} zur - Positionierung der Paginierung bei den Seitenstilen \PValue{headings} - und \PValue{plain} von \Class{scrlttr2}} - \label{tab:scrlttr2.pagenumber} - \begin{desctabular} - \entry{\PValue{bot}, \PValue{foot}}{% - Seitenzahl im Fuß ohne Änderung der horizontalen Position}% - \entry{\PValue{botcenter}, \PValue{botcentered}, \PValue{botmittle}, - \PValue{footcenter}, \PValue{footcentered}, \PValue{footmiddle}}{% - Seitenzahl zentriert im Fuß}% - \entry{\PValue{botleft}, \PValue{footleft}}{% - Seitenzahl links im Fuß}% - \entry{\PValue{botright}, \PValue{footright}}{ Seitenzahl rechts im Fuß}% - \entry{\PValue{center}, \PValue{centered}, \PValue{middle}}{% - Seitenzahl zentriert ohne Änderung der vertikalen Position}% - \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% - keine Seitenzahl}% - \entry{\PValue{head}, \PValue{top}}{% - Seitenzahl im Kopf ohne Änderung der horizontalen Position}% - \entry{\PValue{headcenter}, \PValue{headcentered}, \PValue{headmiddle}, - \PValue{topcenter}, \PValue{topcentered}, \PValue{topmiddle}}{% - Seitenzahl zentriert im Kopf}% - \entry{\PValue{headleft}, \PValue{topleft}}{% - Seitenzahl links im Kopf}% - \entry{\PValue{headright}, \PValue{topright}}{% - Seitenzahl rechts im Kopf}% - \entry{\PValue{left}}{% - Seitenzahl links ohne Änderung der vertikalen Position}% - \entry{\PValue{right}}{% - Seitenzahl rechts ohne Änderung der vertikalen Position}% - \end{desctabular} -\end{table} -% -\EndIndex{Option}{pagenumber}% - - -\begin{Explain}% -\begin{Declaration} - \Option{parskip}=\PName{Wert} -\end{Declaration}% -\BeginIndex{Option}{parskip}% - Gerade bei Briefen erlebt man häufig, dass diese nicht mit Einrückung der - ersten Zeile eines Absatzes\Index{Absatz}\Index{Absatzeinzug}, sondern mit - Abstand\Index{Absatzabstand} zwischen den Absätzen gesetzt werden. Hier - spielt die Tradition eine große Rolle. Offenbar fiel es früher der - durchschnittlichen Sekretärin leichter, auf der Schreibmaschine zweimal den - Hebel zur Zeilenschaltung zu betätigen als eine Einrückung mittels gut - gesetztem Tabulator oder Leertaste zu setzen. Da korrekter - Blocksatz\Index{Blocksatz} mit einer Schreibmaschine kaum möglich war, - wurden und werden Briefe auch heute noch häufig im Flattersatz gesetzt. - - Typografen wie Jan Tschichold vertreten jedoch die Auf"|fassung, dass für - Briefe, die mit den Mitteln des modernen Schriftsatzes erstellt werden, - diese Mittel auch ebenso gut genutzt werden sollten wie für andere - Dokumente. So gesehen sollten also auch Briefe mit Absatzeinrückung und im - Blocksatz erstellt werden. -\end{Explain} -\Class{scrlttr2} bietet nicht nur die Möglichkeit, Absätze durch Einrückung -der ersten Zeile zu kennzeichnen, sondern alternativ einen Abstand zwischen -den Absätzen zu verwenden. Dabei kann zwischen einer halben und einer ganzen -Zeile Abstand gewählt werden. Zur Erleichterung der Erkennung des Absatzendes -kann bei der Wahl von Absatzabstand die erlaubte Füllung der letzten Zeile -eines Absatzes eingestellt werden. All diese Möglichkeiten werden über die -Werte der Option \Option{parskip} gesteuert, deren mögliche Werte in -\autoref{tab:scrlttr2.parskip} zu finden sind. Voreingestellt ist -\PValue{false}. - -\begin{table} - \caption[{Mögliche Werte für Option \Option{parskip} bei - \Class{scrlttr2}}]{Mögliche Werte für Option \Option{parskip} zur Wahl der - Absatzauszeichnung bei \Class{scrlttr2}} - \label{tab:scrlttr2.parskip} - \begin{desctabular} - \entry{\PValue{false}, \PValue{off}}{% - Absatzeinzug statt Absatzabstand; die letzte Zeile eines Absatzes darf - beliebig gefüllt sein}% - \entry{\PValue{full}, \PValue{on}, \PValue{true}}{% - eine Zeile Abstand zwischen Absätzen; in der letzten Zeile eines - Absatzes muss mindestens 1\Unit{em} Platz frei bleiben}% - \pventry{full*}{eine Zeile Abstand zwischen Absätzen; in der letzten Zeile - eines Absatzes muss mindestens ein Viertel frei bleiben}% - \pventry{full+}{eine Zeile Abstand zwischen Absätzen; in der letzten Zeile - eines Absatzes muss mindestens ein Drittel frei bleiben}% - \pventry{full-}{eine Zeile Abstand zwischen Absätzen; die letzte Zeile - eines Absatzes darf beliebig gefüllt sein}% - \pventry{half}{eine halbe Zeile Abstand zwischen Absätzen; in der letzten - Zeile eines Absatzes muss mindestens 1\Unit{em} Platz frei bleiben}% - \pventry{half*}{eine halbe Zeile Abstand zwischen Absätzen; in der letzten - Zeile eines Absatzes muss mindestens ein Viertel frei bleiben}% - \pventry{half+}{eine halbe Zeile Abstand zwischen Absätzen; in der letzten - Zeile eines Absatzes muss mindestens ein Drittel frei bleiben}% - \pventry{half-}{eine halbe Zeile Abstand zwischen Absätzen; die letzte - Zeile eines Absatzes darf beliebig gefüllt sein}% - \end{desctabular} -\end{table} -% -\EndIndex{Option}{parskip}% - - - -\subsection{Optionen für die Schriftwahl} -\label{sec:scrlttr2.fontOptions} - -Optionen für die Schriftwahl sind Optionen, die sich auf die Größe der -Grundschrift oder der Schrift einzelner Teile auswirken. - - -\begin{Declaration} - \Option{fontsize}=\PName{Größe} -\end{Declaration} -\BeginIndex{Option}{fontsize}% -Während bei den Hauptklassen die -Schriftgröße\Index{Schriftgroesse=Schriftgröße} des Dokuments mit -\Option{10pt}, \Option{11pt} usw. gewählt wird, gibt man bei -\Class{scrlttr2} die gewünschte \PName{Größe} als Wert dieser Option -an. Die Funktionalität ist aber ansonsten gleich. Diese Option kann -nur bei \Macro{documentclass}, nicht jedoch bei \Macro{KOMAoptions} -angegeben werden. Voreingestellt ist \PValue{12pt}. -% -\EndIndex{Option}{fontsize}% - - -\subsection{Optionen für Briefkopf und Anschrift} -\label{sec:scrlttr2.headoptions} -\BeginIndex{}{Briefkopf}\BeginIndex{}{Anschrift}% - -Die \Class{scrlttr2}-Klasse bietet eine ganze Reihe von Erweiterungen -für die Gestaltung des Briefkopfes. Dadurch wird das Paket -\Package{briefkopf}, das immer ohne Support war, obsolet. Darüber -hinaus existieren gegenüber der Standardbriefklasse Erweiterungen zur -Gestaltung der Anschrift. -% -\iftrue -% Umbruchfülltext -Diese Fähigkeiten waren jedoch weitgehend -schon in der obsoleten Klasse \Class{scrlettr} zu finden. -% -\fi - -\begin{Declaration} - \Option{firsthead} -\end{Declaration} -\BeginIndex{Option}{firsthead}% -Diese\ChangedAt{v2.97e}{\Class{scrlttr2}} Option bestimmt, ob der Briefkopf -auf dem Briefbogen überhaupt gesetzt wird. Die Option versteht die -Standardwerte für einfache Schalter, die in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt -ist das Setzen des Briefkopfes. -\EndIndex{Option}{firsthead}% - -\begin{Declaration} - \Option{fromalign} -\end{Declaration} -\BeginIndex{Option}{fromalign}% -Diese Option bestimmt, wo der Absender\Index{Absender} auf der ersten Seite -platziert werden soll. Neben verschiedenen Platzierungen im Briefkopf gibt es -auch\ChangedAt{v2.97e}{\Class{scrlttr2}} die Möglichkeit den Absender in der -Absenderergänzung\Index{Absenderergaenzung=Absenderergänzung} -unterzubringen. Gleichzeitig dient diese Option als zentraler Schalter, um die -Erweiterungen der Briefkopfgestaltung überhaupt zu aktivieren oder zu -deaktivieren. Sind die Erweiterungen deaktiviert, so bleiben diverse andere -Optionen ohne Wirkung. Dies ist bei den jeweiligen Optionen -angegeben. Mögliche Werte für \Option{fromalign} sind -\autoref{tab:scrlttr2.fromalign} zu entnehmen. Voreingestellt ist der Wert -\PValue{left}. - -\begin{table} - \caption[{Mögliche Werte für Option \Option{fromalign} bei - \Class{scrlttr2}}]{Mögliche Werte für Option \Option{fromalign} zur - Platzierung des Absenders auf dem Briefbogen von \Class{scrlttr2}} - \label{tab:scrlttr2.fromalign} - \begin{desctabular} - \entry{\PValue{center}, \PValue{centered}, \PValue{middle}}{% - Absender wird zentriert im Briefkopf; ein Logo wird gegebenenfalls am - Anfang der erweiterten Absenderangabe platziert; die Erweiterungen der - Briefkopfgestaltung werden aktiviert.}% - \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% - die Standardgestalt für den Absender wird verwendet; die Erweiterungen - der Briefkopfgestaltung werden deaktiviert.}% - \entry{\PValue{left}}{% - Absender steht linksbündig im Briefkopf; ein Logo wird gegebenenfalls - rechtsbündig platziert; die Erweiterungen der Briefkopfgestaltung werden - aktiviert.}% - \entry{\PValue{locationleft}, \PValue{leftlocation}}{% - Absender steht linksbündig in der Absenderergänzung; ein Logo wird - gegebenenfalls darüber platziert; der Briefkopf wird automatisch - deaktiviert, kann aber über Option \Option{firsthead} wieder aktiviert - werden.}% - \entry{\PValue{locationright}, \PValue{rightlocation}, - \PValue{location}}{% - Absender steht rechtssbündig in der Absenderergänzung; ein Logo wird - gegebenenfalls darüber platziert; der Briefkopf wird automatisch - deaktiviert, kann aber über Option \Option{firsthead} wieder aktiviert - werden.}% - \entry{\PValue{right}}{% - Absender steht rechtsbündig im Briefkopf; ein Logo wird gegebenenfalls - linksbündig platziert; die Erweiterungen der Briefkopfgestaltung werden - aktiviert.}% - \end{desctabular} -\end{table} -% -\EndIndex{Option}{fromalign}% - - -\begin{Declaration} - \Option{fromrule} -\end{Declaration} -\BeginIndex{Option}{fromrule}% -Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung (siehe Option -\Option{fromalign} am Anfang dieses Abschnitts). Mit ihrer Hilfe kann eine -Linie\Index{Linie}\Index{Absender} innerhalb des Absenders platziert werden. -Die Option versteht die Werte aus \autoref{tab:scrlttr2.fromrule}. -Voreingestellt ist der Wert \PValue{false}. Es können nicht gleichzeitig -mehrere Linien aktiviert werden. Bezüglich der Länge der Linie siehe -\autoref{sec:scrlttr2.other}, -\autopageref{desc:scrlttr2.plength.fromrulewidth}. - -\begin{table} - \caption[{Mögliche Werte für Option \Option{fromrule} bei - \Class{scrlttr2}}]{Mögliche Werte für Option \Option{fromrule} zur - Platzierung einer Linie im Absender von \Class{scrlttr2}} - \label{tab:scrlttr2.fromrule} - \begin{desctabular} - \entry{\PValue{afteraddress}, \PValue{below}, \PValue{on}, \PValue{true}, - \PValue{yes}}{% - Linie unterhalb des kompletten Absenders}% - \entry{\PValue{aftername}}{% - Linie direkt unter dem Namen des Absenders}% - \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% - keine Linie}% - \end{desctabular} -\end{table} -% -\EndIndex{Option}{fromrule}% - - -\begin{Declaration} - \Option{fromphone} -\end{Declaration} -\BeginIndex{Option}{fromphone}% -Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung -(siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit -ihrer Hilfe kann bestimmt werden, ob die Telefonnummer\Index{Telefon} -im Absender\Index{Absender} gesetzt werden soll. Die Option versteht -die Standardwerte für einfache Schalter, die in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. -Voreingestellt ist \PValue{false}. -% -\EndIndex{Option}{fromphone}% - - -\begin{Declaration} - \Option{fromfax} -\end{Declaration} -\BeginIndex{Option}{fromfax}% -Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung -(siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit -ihrer Hilfe kann bestimmt werden, ob die Telefaxnummer\Index{Fax} im -Absender\Index{Absender} gesetzt werden soll. Die Option versteht die -Standardwerte für einfache Schalter, die in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. -Voreingestellt ist \PValue{false}. -% -\EndIndex{Option}{fromfax}% - - -\begin{Declaration} - \Option{fromemail} -\end{Declaration} -\BeginIndex{Option}{fromemail}% -Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung -(siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit -ihrer Hilfe kann bestimmt werden, ob die E-Mail-Adresse\Index{E-Mail} -im Absender\Index{Absender} gesetzt werden soll. Die Option versteht -die Standardwerte für einfache Schalter, die in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. -Voreingestellt ist \PValue{false}. -% -\EndIndex{Option}{fromemail}% - - -\begin{Declaration} - \Option{fromurl} -\end{Declaration} -\BeginIndex{Option}{fromurl}% -Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung -(siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit -ihrer Hilfe kann bestimmt werden, ob die -URL\Index{URL}\Index{WWW}\Index{Homepage} im Absender\Index{Absender} -gesetzt werden soll. Die Option versteht die Standardwerte für -einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} -angegeben sind. Voreingestellt ist \PValue{false}. -% -\EndIndex{Option}{fromurl}% - - -\begin{Declaration} - \Option{fromlogo} -\end{Declaration} -\BeginIndex{Option}{fromlogo}% -Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung -(siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit -ihrer Hilfe kann bestimmt werden, ob das Logo\Index{Logo} im Briefkopf -gesetzt werden soll. Die Option versteht die Standardwerte für -einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} -angegeben sind. Bezüglich der Platzierung des Logos siehe ebenfalls -die Erklärung zu Option \Option{fromalign} am Anfang dieses -Abschnitts. Voreingestellt ist \PValue{false}. -% -\EndIndex{Option}{fromlogo}% - - -\begin{Declaration} - \Option{addrfield} -\end{Declaration} -\BeginIndex{Option}{addrfield}% -Mit dieser Option kann gewählt werden, ob ein Anschriftfeld gesetzt -werden soll oder nicht. Voreingestellt ist die Verwendung eines -Anschriftfeldes. Die Option versteht die Standardwerte für einfache -Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} -angegeben sind. Voreingestellt ist \PValue{true}. -% -\EndIndex{Option}{addrfield}% - - -\begin{Declaration} - \Option{backaddress} -\end{Declaration} -\BeginIndex{Option}{backaddress}% -Mit dieser Option kann gewählt werden, ob und in welcher Form die -Rücksendeadresse\Index{Rücksendeadresse} für Fensterbriefumschläge im -Anschriftfeld gesetzt werden soll. Die Option versteht dazu einerseits die -Standardwerte für einfache Schalter, die in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Dabei bleibt der -Stil der Rücksendeadresse unverändert. Beim Einschalten der Rücksendeadresse -kann andererseits\ChangedAt{v2.96}{\Class{scrlttr2}} gleichzeitig auch der Stil -der Rücksendeadresse gewählt werden. So aktiviert der Wert \PValue{underlined} -die unterstrichene Rücksendeadresse, während \PValue{plain} den Stil ohne -Unterstreichung auswählt. Voreingestellt ist \PValue{underlined}, also das -Setzen der unterstrichenden Rücksendeadresse. -% -\EndIndex{Option}{backaddress}% - - -\begin{Declaration} - \Option{subject} -\end{Declaration} -\BeginIndex{Option}{subject}% -Mit dieser Option kann zum einen gewählt werden, ob der Betreff\Index{Betreff} -mit einem Titel versehen werden soll oder nicht. Der Titel stimmt mit der -Bezeichnung der Variablen \PName{subject} überein (siehe -\autoref{tab:scrlttr2.subjectTerm}, \autopageref{tab:scrlttr2.subjectTerm}). -Zum anderen kann über diese Option gewählt werden, ob der Betreff vor oder -nach der Anrede gesetzt werden soll. Desweiteren kann die -Formatierung\ChangedAt{v2.97c}{\Class{scrlttr2}} des Betreffs eingestellt -werden. Mögliche Werte für diese Option sind \autoref{tab:scrlttr2.subject} zu -entnehmen. Es wird ausdrücklich darauf hingewiesen, dass bei der Einstellung -\PValue{underlined} der Betreff komplett in eine Zeile passen muss! -Voreingestellt sind \PValue{beforeopening} und \PValue{untitled}. -\begin{table} - \caption[{Mögliche Werte für Option \Option{subject} bei - \Class{scrlttr2}}]{Mögliche Werte für Option \Option{subject} zur - Platzierung eines Betreffs bei \Class{scrlttr2}} - \label{tab:scrlttr2.subject} - \begin{desctabular} - \pventry{afteropening}{Betreff nach der Anrede setzen}% - \pventry{beforeopening}{Betreff vor der Anrede setzen}% - \pventry{centered}{Betreff zentrieren}% - \pventry{left}{Betreff linksbündig setzen}% - \pventry{right}{Betreff rechtsbündig setzen}% - \pventry{titled}{Betreff mit Titel versehen}% - \pventry{underlined}{Betreff unterstreichen (siehe auch den Hinweis im - Text)}% - \pventry{untitled}{Betreff nicht mit Titel versehen}% - \end{desctabular} -\end{table} - -% -\EndIndex{Option}{subject}% - - -\begin{Declaration} - \Option{locfield} -\end{Declaration} -\BeginIndex{Option}{locfield}% -Neben dem Anschriftfeld setzt \Class{scrlttr2} noch ein Feld mit -erweiterter Absenderangabe. Dieses Feld kann beispielsweise für -Bankverbindungen und Ähnliches verwendet werden. Je nach Einstellung -der Option \Option{fromalign} wird es außerdem für das Logo des -Absenders mit verwendet. Die Breite dieses Feldes kann beispielsweise -in einer \File{lco}-Datei (siehe \autoref{sec:scrlttr2.lcoFile}) gesetzt -werden. Wird dort die Breite 0 gesetzt, so kann über die Option -\Option{locfield} zwischen zwei unterschiedlichen Voreinstellungen für -die Breite dieses Feldes gewählt werden. Siehe hierzu auch die -Erklärungen zur Pseudolänge \Variable{locwidth} in -\autoref{sec:scrlttr2.locationField}, -\autopageref{desc:scrlttr2.plength.locwidth}. Mögliche Werte für die Option -sind \autoref{tab:scrlttr2.locfield} zu entnehmen. Voreingestellt ist -\PValue{narrow}. - -\begin{table} - \caption[{Mögliche Werte für Option \Option{locfield} bei - \Class{scrlttr2}}]{Mögliche Werte für Option \Option{locfield} zur - Wahl der Breite des Feldes für die Absenderergänzung bei \Class{scrlttr2}} - \label{tab:scrlttr2.locfield} - \begin{desctabular} - \pventry{narrow}{schmales Feld für Absenderergänzungen}% - \pventry{wide}{breites Feld für Absenderergänzungen}% - \end{desctabular} -\end{table} -% -\EndIndex{Option}{locfield}% - - -\begin{Declaration} - \Option{foldmarks} -\end{Declaration} -\BeginIndex{Option}{foldmarks}% -Mit dieser Option können Faltmarken\Index{Faltmarke} für eine vertikale Zwei-, -Drei- oder Vierteilung und eine horizontale Zweiteilung aktiviert oder -deaktiviert werden. Die einzelnen Teile müssen dabei nicht äquidistant -sein. Die Positionen von drei der vier horizontalen und der vertikalen Marke -sind über Pseudolängen konfigurierbar (siehe -\autoref{sec:scrlttr2.foldmarks} ab \autopageref{sec:scrlttr2.foldmarks}). - -Über die Option \Option{foldmarks} können entweder mit den Standardwerten für -einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind, alle -konfigurierten Faltmarken am linken und oberen Rand ein- und ausgeschaltet -werden, oder\ChangedAt{v2.97e}{\Class{scrlttr2}} es kann durch die Angabe -eines oder mehrerer Buchstaben aus \autoref{tab:scrlttr2.foldmark} die -Verwendung der einzelnen Faltmarken gezielt konfiguriert werden. Auch in -diesem Fall werden die Faltmarken nur dann angezeigt, wenn die Faltmarken -nicht mit \PValue{false}, \PValue{off} oder \PValue{no} generell abgeschaltet -wurden. Die genaue Position der Faltmarken ist von den Einstellungen des -Anwenders beziehungsweise der \File{lco}-Dateien (siehe -\autoref{sec:scrlttr2.lcoFile}) abhängig. Voreingestellt sind \PValue{true} -und \PValue{TBMPL}. -\begin{table} - \centering - \caption{Kombinierbare Werte für die Konfiguration der Faltmarken mit der - Option \Option{foldmarks}} - \label{tab:scrlttr2.foldmark} - \begin{desctabular} - \pventry{B}{obere, horizontale Faltmarke am linken Rand aktivieren}% - \pventry{b}{obere, horizontale Faltmarke am linken Rand deaktivieren}% - \pventry{H}{alle horizontalen Faltmarken am linken Rand aktivieren}% - \pventry{h}{alle horizontalen Faltmarken am linken Rand deaktivieren}% - \pventry{L}{linke, vertikale Faltmarke am oberen Rand aktivieren}% - \pventry{l}{linke, vertikale Faltmarke am oberen Rand deaktivieren}% - \pventry{M}{mittlere, horizontale Faltmarke am linken Rand aktivieren}% - \pventry{m}{mittlere, horizontale Faltmarke am linken Rand deaktivieren}% - \pventry{P}{Locher- bzw. Seitenmittenmarke am linken Rand aktivieren}% - \pventry{p}{Locher- bzw. Seitenmittenmarke am linken Rand deaktivieren}% - \pventry{T}{untere, horizontale Faltmarke am linken Rand aktivieren}% - \pventry{t}{untere, horizontale Faltmarke am linken Rand deaktivieren}% - \pventry{V}{alle vertikalen Faltmarken am oberen Rand aktivieren}% - \pventry{v}{alle vertikalen Faltmarken am oberen Rand deaktivieren}% - \end{desctabular} -\end{table} -\begin{Example} - Angenommen, Sie wollen alle Faltmarken außer der Lochermarke - abschalten. Dann können Sie dies beispielsweise mit - \begin{lstlisting} - \KOMAoption{foldmarks=blmt} - \end{lstlisting} - erreichen, wenn die Voreinstellung zuvor noch nicht geändert wurde. Besteht - hingegen die Möglichkeit, dass die Voreinstellung bereits geändert wurde, so - sollten Sie zur Sicherheit lieber - \begin{lstlisting} - \KOMAoption{foldmarks=true,foldmarks=blmtP} - \end{lstlisting} - verwenden. -\end{Example} -% -\EndIndex{Option}{foldmarks}% - - -\begin{Declaration} - \Option{numericaldate} -\end{Declaration} -\BeginIndex{Option}{numericaldate}% -Mit dieser Option kann zwischen der sprachabhängigen -Standarddarstellung des Datums\Index{Datum}\Index{Geschäftszeile} und -einem kurzen, rein nummerischen Datum umgeschaltet werden. Die -Standarddarstellung wird nicht von \KOMAScript{} bereitgestellt. Sie -kann wahlweise von einem Paket wie -\Package{german}\IndexPackage{german}, -\Package{babel}\IndexPackage{babel} oder auch -\Package{isodate}\IndexPackage{isodate} stammen. Das kurze -nummerische Datum wird hingegen von \Class{scrlttr2} selbst erzeugt. -Die Option versteht die Standardwerte für einfache Schalter, die in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. -Voreingestellt ist mit \PValue{false} die Verwendung der -Standarddarstellung. Dies ist übrigens eine Änderung gegenüber der -obsoleten Klasse \Class{scrlettr}, bei der es die nun nicht mehr -unterstützte Option \Option{orgdate} mit gegenteiliger Bedeutung gab. -% -\EndIndex{Option}{numericaldate}% - - -\begin{Declaration} - \Option{refline} -\end{Declaration} -\BeginIndex{Option}{refline}% -Bei \Class{scrlttr2} können Kopf, Fuß, Anschrift und das Feld mit der -Absenderergänzung links und rechts aus dem normalen Satzspiegel herausragen. -Über diese Option kann nun gewählt werden, ob dies auch für die -Geschäftszeile\Index{Geschäftszeile} gelten soll. Die Geschäftszeile enthält -normalerweise zumindest das Datum, kann aber auch weitere Angaben aufnehmen. -Mögliche Werte für diese Option sind \autoref{tab:scrlttr2.refline} zu -entnehmen. Voreingestellt ist \PValue{narrow}. - -\begin{table} - \caption[{Mögliche Werte für Option \Option{refline} bei - \Class{scrlttr2}}]{Mögliche Werte für Option \Option{refline} zur Wahl - der Breite der Geschäftszeile bei \Class{scrlttr2}} - \label{tab:scrlttr2.refline} - \begin{desctabular} - \pventry{narrow}{Geschäftszeile hält den Satzspiegel ein}% - \pventry{wide}{Geschäftszeile richtet sich nach Anschrift und - Absenderergänzung}% - \end{desctabular} -\end{table} -% -\EndIndex{Option}{refline}% - -% -\EndIndex{}{Briefkopf}\EndIndex{}{Anschrift} - - -\subsection{Optionen für den Briefbogenfuß} -\label{sec:scrlttr2.footoptions} -\BeginIndex{}{Briefbogenfuss=Briefbogenfuß} - -Der Briefbogenfuß ist der Seitenfuß des Briefbogens, also der Seitenfuß der -ersten Seite eines Briefes. Für seine Platzierung gelten besondere Regeln, die -der Beschreibung zu Option -\Option{enlargefirstpage}\IndexOption{enlargefirstpage} (siehe -\autoref{sec:scrlttr2.typeareaOptions}, -\autopageref{desc:scrlttr2.option.enlargefirstpage}) und zu der Pseudolänge -\PLength{firstfootvpos}\IndexPLength{firstfootvpos} (siehe -\autoref{sec:scrlttr2.firstFoot}, -\autopageref{desc:scrlttr2.plength.firstfootvpos}) zu entnehmen sind. - -\begin{Declaration} - \Option{firstfoot} -\end{Declaration} -\BeginIndex{Option}{firstfoot}% -Diese\ChangedAt{v2.97e}{\Class{scrlttr2}} Option bestimmt, ob der -Briefbogenfuß überhaupt gesetzt wird. Wird der Briefbogenfuß nicht gesetzt, so -wird außerdem die Einstellung der Pseudolänge \PLength{firstfootvpos} -ignorriert und stattdessen von \Class{scrlttr2} angenommen, dass deren Wert -\Length{paperheight} ist. Dies hat Auswirkungen, wenn gleichzeigit die Option -\Option{enlargefirstpage} (siehe \autoref{sec:scrlttr2.firstFoot}, -\autopageref{desc:scrlttr2.plength.firstfootvpos}) verwendet wird. - -Die Option versteht die Standardwerte für einfache Schalter, die in -\autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} angegeben sind. Voreingestellt -ist das Setzen des Briefbogenfußes. -\EndIndex{Option}{firstfoot}% - -\EndIndex{}{Briefbogenfuss=Briefbogenfuß} - -\subsection{Optionen für die Formatierung} -\label{sec:scrlttr2.formatingOptions} - -Optionen für die Formatierung sind solche, die Form oder Formatierung einer -Ausgabe beeinflussen und nicht in einen anderen Abschnitt eingeordnet werden -können. Es sind also sozusagen die \emph{sonstigen Optionen}. - - -\begin{Declaration} - \Option{draft} -\end{Declaration} -\BeginIndex{Option}{draft}% -Diese Option schaltet zwischen einem fertigen -Dokument\Index{Endfassung} und einem Dokument im -Entwurfsstadium\Index{Entwurf} um. Insbesondere werden beim -Einschalten der Option \Option{draft} kleine schwarze Kästchen -aktiviert, die im Falle von überlangen Zeilen am Zeilenende ausgegeben -werden. Diese Kästchen erleichtern dem ungeübten Auge, Absätze -ausfindig zu machen, die manueller Nachbearbeitung bedürfen. -Demgegenüber erscheinen bei abgeschalteter \Option{draft}-Option keine -solche Kästchen. Die Option versteht die Standardwerte für einfache -Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues}, -\autopageref{tab:scrlttr2.simpleSwitchValues} -angegeben sind. Voreingestellt ist wie üblich \PValue{false}. -% -\iffalse -% Umbruchbedarfstext -Ich empfehle jedoch dringend, beim Entwurf eines Briefes wie beim Entwurf -jedes Dokuments den Draft-Modus zu wählen, die Option \Option{draft} also zu -setzen. -% -\fi -% -\EndIndex{Option}{draft}% - - -\subsection{Die \emph{Letter-Class-Option}-Dateien} -\label{sec:scrlttr2.lcoFile} - -\BeginIndex{}{lco=\File{lco}}\BeginIndex{}{Letter-Class-Option}% -Normalerweise wird man Einstellungen wie den Abstand des Adressfeldes -von der oberen Papierkante nicht in jedem Brief neu wählen. -Stattdessen wird man einen ganzen Satz von Parametern für bestimmte -Gelegenheiten immer wieder verwenden. Ganz Ähnliches gilt für die -verwendeten Briefköpfe und den Fußbereich der ersten Seite. Es ist -deshalb sicher sinnvoll, diese Einstellungen in einer eigenen Datei zu -speichern. Die Briefklasse \Class{scrlttr2} bietet hierfür die -\File{lco}-Dateien an. Die Endung \File{lco} ist eine Abkürzung für -\emph{\emph{l}etter \emph{c}lass \emph{o}ption}, also -Briefklassenoption. - -In \File{lco}-Dateien können alle Anweisungen verwendet werden, die -auch an der Stelle im Dokument verwendet werden könnten, an der die -\File{lco}-Datei geladen wird. Außerdem könnten interne Anweisungen -verwendet werden, die für Paketautoren freigegeben sind. Bei -\Class{scrlttr2} sind dies inbesondere die Anweisungen -\Macro{@newplength}\IndexCmd{@newplength}, -\Macro{@setplength}\IndexCmd{@setplength} und -\Macro{@addtoplength}\IndexCmd{@addtoplength} (siehe -\autoref{sec:scrlttr2.pseudoLength}). - -\KOMAScript{} liegen bereits einige \File{lco}-Dateien bei. Die -Dateien \File{DIN.lco}, \File{DINmtext.lco}, \File{SNleft.lco} und -\File{SN.lco} dienen dazu \Class{scrlttr2} an verschiedene -Normen\Index{Norm} anzupassen. Sie können sehr gut als Vorlage für -eigene Parametersätze verwendet werden. Die Datei \File{KOMAold.lco} -dient hingegen dazu, die Kompatibilität zu \Class{scrlettr}, der alten -Briefklasse, zu verbessern. Da hierbei auch auf Anweisungen -zurückgegriffen wird, die nicht für Paketautoren freigegeben sind, -sollte man sie nicht als Vorlage für eigene \File{lco}-Dateien -verwenden. Eine Liste aller vordefinierten \File{lco}-Dateien ist in -\autoref{tab:lcoFiles}, \autopageref{tab:lcoFiles} zu finden. - -\begin{Explain} - Wenn Sie einen Parametersatz für eine Briefnorm, die bisher nicht von - \KOMAScript{} unterstützt wird, erstellt haben, so sind Sie ausdrücklich - gebeten, diesen Parametersatz an die Supportaddresse von \KOMAScript{} zu - schicken. Bitte geben Sie dabei auch die Erlaubnis zur Weiterverbreitung - unter den Lizenzbedingungen von \KOMAScript{} (siehe dazu die Datei - \File{LEGALDE.TXT} im \KOMAScript-Paket). Wenn Sie zwar über die notwendigen - Maße aus einer bisher nicht unterstützen Briefnorm verfügen, sich jedoch - nicht in der Lage sehen, selbst eine passende \File{lco}-Datei zu erstellen, - so können Sie sich ebenfalls mit dem \KOMAScript-Autor, Markus Kohm, in - Verbindung setzen. Beispiele für teilweise sehr komplexe \File{lco}-Dateien - finden sich unter anderem unter \cite{homepage} und in - \cite{DANTE:TK0203:MJK}. -\end{Explain} - -\begin{Declaration} - \Macro{LoadLetterOption}\Parameter{Name} -\end{Declaration} -\BeginIndex{Cmd}{LoadLetterOption}% -Normalerweise werden \File{lco}-Dateien direkt über -\Macro{documentclass} geladen. Dazu gibt man den Namen der -\File{lco}-Datei ohne die Endung als Option\Index{Optionen} an. Das Laden der -\File{lco}-Datei erfolgt dann direkt nach der Klasse. - -Es ist jedoch auch möglich, eine \File{lco}-Datei zu einem späteren -Zeitpunkt und sogar innerhalb einer anderen \File{lco}-Datei zu laden. -Dazu dient die Anweisung \Macro{LoadLetterOption}. Der \PName{Name} -der \File{lco}-Datei wird dieser ebenfalls ohne Endung als Parameter -übergeben. -\begin{Example} - Sie erstellen ein Dokument, in dem mehrere Briefe enthalten - sind. Die Mehrzahl der Briefe soll nach DIN erstellt werden. Also - beginnen Sie: -\begin{lstlisting} - \documentclass{scrlttr2} -\end{lstlisting} - Allerdings soll bei einem Brief stattdessen die Variante - \File{DINmtext} verwendet werden. Bei dieser steht das Adressfeld - weiter oben, damit mehr Text auf die erste Seite passt. Dafür ist - die Faltung so angepasst, dass das Adressfeld bei - DIN~C6/5-Umschlägen trotzdem in das Adressfenster passt. Sie - erreichen das so: -\begin{lstlisting} - \begin{letter}{Markus Kohm\\ - Freiherr-von-Drais-Straße 66\\68535 Edingen-Neckarhausen} - \LoadLetterOption{DINmtext} - \opening{Hallo,} -\end{lstlisting} - Da der Aufbau der ersten Seite erst mit \Macro{opening}\IndexCmd{opening} - wirklich beginnt, genügt es, wenn die \File{lco}-Datei vor \Macro{opening} - geladen wird. Dies muss also inbesondere nicht vor - \Macro{begin}\PParameter{letter} erfolgen. Die Änderungen durch das Laden - der \File{lco}-Datei sind dann auch lokal zu dem entsprechenden Brief. -\end{Example} - -\begin{Explain} - Wird\ChangedAt{v2.97}{\Class{scrlttr2}} eine \File{lco}-Datei über - \Macro{documentclass} geladen, so darf sie nicht den Namen einer Option - haben. -\end{Explain} - -\begin{Example} - Sie wollen nicht immer wieder ihre Absenderangaben neu - eingeben. Deshalb erstellen Sie eine \File{lco}-Datei, die alle - Angaben enthält, beispielsweise: -\begin{lstlisting} - \ProvidesFile{mkohm.lco} - [2002/02/25 letter class option] - \setkomavar{fromname}{Markus Kohm} - \setkomavar{fromaddress}{Freiherr-von-Drais-Stra\ss e 66\\ - 68535 Edingen-Neckarhausen} -\end{lstlisting} - Die dabei verwendete Anweisung \Macro{setkomavar} und das Prinzip der - Variablen wird in \autoref{sec:scrlttr2.variables}, - \autopageref{desc:scrlttr2.macro.setkomavar} genauer erläutert werden. Für - das Beispiel hier ist die genaue Funktion der Anweisung unerheblich. Von - Bedeutung ist lediglich, was man mit \File{lco}-Dateien machen kann, - weniger, wie dies konkret zu erreichen ist. Beachten Sie jedoch, dass hier - für "`ß"' die \TeX-Schreibweise \Macro{ss} verwendet wurde. Dies hat seinen - Grund darin, dass unmittelbar nach \Macro{documentclass} weder ein Paket für - die Eingabecodierung, beispielsweise für Unix mit - \Macro{usepackage}\PValue{[latin1]}\PParameter{inputenc} oder für Windows - mit \Macro{usepackage}\PValue{[ansinew]}\PParameter{inputenc}, noch ein - Paket zur Sprachumschaltung, beispielsweise für die neue deutsche - Rechtschreibung mit \Macro{usepackage}\PParameter{ngerman}, geladen ist. - - Wenn Sie allerdings immer mit derselben Eingabecodierung arbeiten, - können Sie auch diese in Ihre Datei mit aufnehmen. Das Ganze sähe - dann beispielsweise so aus: -\begin{lstlisting} - \ProvidesFile{mkohm.lco} - [2002/02/25 letter class option] - \RequirePackage[latin1]{inputenc} - \setkomavar{fromname}{Markus Kohm} - \setkomavar{fromaddress}{Freiherr-von-Drais-Straße 66\\ - 68535 Edingen-Neckarhausen} -\end{lstlisting} - Dieses Vorgehen hat aber den entscheidenden Nachteil, dass die - \File{lco}-Datei \File{mkohm} dann nicht mehr innerhalb des Dokuments - geladen werden kann. Wenn Sie also auch Briefe verschiedener Absender in - einer Datei haben wollen, sollten Sie davon absehen, in den entsprechenden - \File{lco}-Dateien Pakete zu laden. - - Nehmen wir weiter an, dass ich Briefe grundsätzlich mit der Vorgabe - \File{KOMAold} schreibe. Dann erweitere ich die Datei - \File{mkohm.lco} noch um die Zeile: -\begin{lstlisting} - \LoadLetterOption{KOMAold} -\end{lstlisting} - - Wie dem auch sei, stellen Sie zukünftig meine Absenderdaten mit -\begin{lstlisting} - \documentclass[mkohm]{scrlttr2} -\end{lstlisting} - ein. -\end{Example} - -In \autoref{tab:lcoFiles}, \autopageref{tab:lcoFiles} finden Sie übrigens eine -Liste aller vordefinierten \File{lco}-Dateien. Falls Sie einen Drucker -verwenden, der einen sehr großen unbedruckbaren Rand links oder rechts -besitzt, werden Sie mit der Option \Option{SN}\IndexOption{SN} möglicherweise -Probleme bekommen. Da die Schweizer Norm SN~101\,130 vorsieht, dass das -Adressfeld 8\Unit{mm} vom rechten Papierrand gesetzt wird, werden bei Schweizer -Briefen auch die Kopfzeile und die Absenderergänzung mit einem entsprechend -geringen Abstand zum Papierrand gesetzt. Dies betrifft ebenfalls die -Geschäftszeile bei der Einstellung \Option{refline}\PValue{=wide} (siehe -\autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.refline}). Sollten Sie damit ein Problem -haben, erstellen Sie sich eine eigene \File{lco}-Datei, die zunächst -\Option{SN} lädt und in der \PLength{toaddrhpos} (siehe -\autoref{sec:scrlttr2.addressee}, -\autopageref{desc:scrlttr2.plength.toaddrvpos}) dann auf einen kleineren Wert -gesetzt wird. Verringern Sie dann außerdem \PLength{toaddrwidth} -entsprechend. -% -\EndIndex{Cmd}{LoadLetterOption}% - -\begin{desctable} - \caption{Vordefinierte \File{lco}-Dateien\label{tab:lcoFiles}}\\ - \Endfirsthead% - \caption[]{Vordefinierte \File{lco}-Dateien (\emph{Fortsetzung})}\\ - \Endhead% - \standardfoot% - \oentry{DIN}{% - Parametersatz für Briefe im Format A4 nach DIN~676; geeignet für - Fensterbriefumschläge in den Formaten C4, C5, C6 und C6/5 (C6 lang)% - }% - \oentry{DINmtext}{% - Parametersatz für Briefe im Format A4 nach DIN~676, wobei die Alternative - für mehr Text auf der ersten Briefseite verwendet wird; nur geeignet für - Fensterbriefumschläge in den Formaten C6 und C6/5 (C6 lang)}% - \oentry{KOMAold}{% - Parametersatz für Briefe im Format A4 mit Annäherung an das Aussehen von - Briefen der obsoleten Briefklasse \Class{scrlettr}; geeignet für - Fensterbriefumschläge in den Formaten C4, C5, C6 und C6/5 (C6 lang); es - werden einige zusätzliche Anweisungen zur Verbesserung der Kompatibilität - mit der obsoleten Briefklasse \Class{scrlettr}\IndexClass{scrlettr} - definiert; \Class{scrlttr2} verhält sich mit dieser \File{lco}-Datei - möglicherweise nicht genau wie bei Verwendung der übrigen - \File{lco}-Dateien}% - \oentry{NipponEL}{% - Parametersatz für Japanische Briefe im Format A4; geeignet für Japanische - Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das - Fenster in etwa 90\Unit{mm} breit, 45\Unit{mm} hoch, 22\Unit{mm} - vom linken und 12\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch - den Anhang der englischen \KOMAScript-Anleitung)}% - \oentry{NipponEH}{% - Parametersatz für Japanische Briefe im Format A4; geeignet für Japanische - Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das - Fenster in etwa 90\Unit{mm} breit, 55\Unit{mm} hoch, 22\Unit{mm} - vom linken und 12\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch - den Anhang der englischen \KOMAScript-Anleitung)}% - \oentry{NipponLL}{% - Parametersatz für Japanische Briefe im Format A4; geeignet für Japanische - Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das - Fenster in etwa 90\Unit{mm} breit, 45\Unit{mm} hoch, 25\Unit{mm} - vom linken und 12\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch - den Anhang der englischen \KOMAScript-Anleitung)}% - \oentry{NipponLH}{% - Parametersatz für Japanische Briefe im Format A4; geeignet für Japanische - Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das - Fenster in etwa 90\Unit{mm} breit, 55\Unit{mm} hoch, 25\Unit{mm} - vom linken und 12\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch - den Anhang der englischen \KOMAScript-Anleitung)}% - \oentry{NipponRL}{% - Parametersatz für Japanische Briefe im Format A4; geeignet für Japanische - Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das - Fenster in etwa 90\Unit{mm} breit, 45\Unit{mm} hoch, 22\Unit{mm} - vom rechten und 28\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch - den Anhang der englischen \KOMAScript-Anleitung)}% - \oentry{KakuLL}{% - Parametersatz für Japanische Briefe im Format A4; geeignet für Japanische - Fensterbriefumschläge des Typs Kaku A4, bei denen das Fenster in etwa - 90\Unit{mm} breit, 45\Unit{mm} hoch, 25\Unit{mm} vom linken und - 24\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch den Anhang der - englischen \KOMAScript-Anleitung)}% - \oentry{SN}{% - Parametersatz für Schweizer Briefe nach SN~010\,130 mit Anschrift rechts; - geeignet für Schweizer Fensterbriefumschläge in den Formaten C4, C5, C6 - und C6/5 (C6 lang)}% - \oentry{SNleft}{% - Parametersatz für Schweizer Briefe mit Anschrift links; geeignet für - Schweizer Fensterbriefumschläge mit dem Fenster links in den Formaten C4, - C5, C6 und C6/5 (C6 lang)}% -\end{desctable} - -\begin{Explain} -\begin{Declaration} - \Macro{LetterOptionNeedsPapersize}% - \Parameter{Optionsname}\Parameter{Papiergröße} -\end{Declaration} -\BeginIndex{Cmd}{LetterOptionNeedsPapersize}% -Wie bereits in \autoref{sec:scrlttr2.typeareaOptions} erwähnt wurde, -existieren derzeit nur Parametersätze und \File{lco}-Dateien für -A4-Papier. Damit man bei Verwendung einer anderen -\PName{Papiergröße}\Index{Papierformat} zumindest gewarnt wird, ist in -jeder mit \KOMAScript{} ausgelieferten \File{lco}-Datei eine Anweisung -\Macro{LetterOptionNeedsPapersize} zu finden. Als erstes Argument wird -dabei der Name der \File{lco}-Datei ohne die Endung "`\File{.lco}"' -übergeben. Als zweites Argument wird die Papiergröße übergeben, für -die diese \File{lco}-Datei gedacht ist. - -Werden nacheinander mehrere \File{lco}-Dateien geladen, so kann jede dieser -\File{lco}-Dateien eine Anweisung \Macro{LetterOptionNeedsPapersize} -enthalten. Innerhalb von \Macro{opening}\IndexCmd{opening} wird jedoch nur auf -die jeweils letzte angegebene \PName{Papiergröße} geprüft. Wie das -nachfolgende Beispiel zeigt, ist es daher für den versierten Anwender leicht -möglich, \File{lco}-Dateien mit Parametersätzen für andere Papierformate zu -schreiben. Wer allerdings nicht vor hat, selbst solche \File{lco}-Dateien zu -schreiben, der kann die Erklärung zu dieser Anweisung gleich wieder vergessen -und auch das Beispiel überspringen. - -\begin{Example} - Nehmen wir einmal an, dass Sie A5-Papier in normaler Ausrichtung, - also hochkant oder portrait, für Ihre Briefe verwenden. Nehmen wir - weiter an, dass Sie diese in normale Fensterbriefumschläge im Format - C6 stecken. Damit wäre prinzipiell die Position des Adressfeldes die - gleiche wie bei einem normalen Brief in A4 nach DIN. Der Unterschied - besteht im Wesentlichen darin, dass das A5-Papier nur einmal - gefaltet werden muss. Sie wollen deshalb verhindern, dass die obere - und die untere Faltmarke gesetzt wird. Dies erreichen Sie am - einfachsten, indem sie die Marken außerhalb des Papiers platzieren. -\begin{lstlisting} - \ProvidesFile{paper=a5.lco} - [2002/05/02 letter class option] - \LetterOptionNeedsPapersize{paper=a5}{a5} - \@setplength{tfoldmarkvpos}{\paperheight} - \@setplength{bfoldmarkvpos}{\paperheight} -\end{lstlisting} - Außerdem muss natürlich die Position des Seitenfußes, also die Pseudolänge - \PLength{firstfootvpos}, angepasst werden. Ich überlasse es dem Leser, dafür - einen geeigneten Wert zu ermitteln. Mit einer solchen \File{lco}-Datei ist - es lediglich wichtig, dass andere \File{lco}-Dateioptionen wie \File{SN} vor - dem Setzen der Papiergröße, also vor dem Laden von "`\File{paper=a5.lco}"', - angegeben werden. Das erscheint Ihnen kompliziert? Nur bis Sie es zum ersten - Mal gemacht haben. Außerdem: Wie oft schreiben Sie Briefe in einem anderen - Format als A4? -\end{Example} -% -\EndIndex{Cmd}{LetterOptionNeedsPapersize} -\end{Explain} - -Die \File{lco}-Datei \File{DIN} wird übrigens immer als erste -\File{lco}-Datei geladen. Dies wird getan, damit alle Pseudolängen -mehr oder weniger sinnvoll vordefiniert sind. - -Beachten Sie bitte noch, dass es nicht möglich ist, innerhalb einer -\File{lco}-Datei mittels \Macro{PassOptionsToPackage} Optionen an -Pakete zu übergeben, die von der Klasse bereits geladen -sind. Normalerweise betrifft dies nur die Pakete \Package{typearea}, -\Package{scrlfile} und \Package{keyval}. -% -\EndIndex{}{lco=\File{lco}}\EndIndex{}{Letter-Class-Option}% - - -\section{Generelle Dokumenteigenschaften} -\label{sec:scrlttr2.general} - -Einige Dokumenteigenschaften sind keinem speziellen Abschnitt des -Dokuments wie dem Briefkopf oder dem Brief"|text zugeordnet. Ein Teil -dieser Eigenschaften wurde bereits im -\autoref{sec:scrlttr2.options} erläutert oder erwähnt. - - -\subsection{Änderung der verwendeten Schriftart} -\label{sec:scrlttr2.font} - -\BeginIndex{}{Schriftart}\BeginIndex{}{Schriftgroesse=Schriftgröße}% -\begin{Explain} -Bezüglich der Anweisungen zum Setzen, Erweitern und Abfragen der -Schrift eines bestimmten Elements verweise ich hier auf die -Anweisungen aus \autoref{sec:maincls.font}. Diese Anweisungen -funktionieren in \Class{scrlttr2} ganz genauso. Die Elemente, die auf -diese Weise beeinflusst werden können, entnehmen Sie bitte -\autoref{tab:scrlttr2.elementsWithoutText}. -% -\begin{desctable} - \caption{Elemente, deren Schrift bei der Klasse - \Class{scrlttr2} mit \Macro{setkomafont} und \Macro{addtokomafont} - verändert werden kann\label{tab:scrlttr2.elementsWithoutText}}\\ - \Endfirsthead - \caption[]{Elemente, deren Schrift verändert werden kann - (\emph{Fortsetzung})}\\ - \Endhead% - \standardfoot% - \feentry{addressee}{Name und Anschrift im Anschriftfenster}% - \feentry{backaddress}{Rücksendeadresse für einen Fensterbriefumschlag}% - \feentry{descriptionlabel}{Labels, also das optionale Argument von - \Macro{item}, in einer \Environment{description}-Umgebung}% - \feentry{foldmark}{Faltmarke auf dem Briefpapier; gedacht für - Farbänderungen}% - \feentry{fromaddress}{Absenderadresse im Briefkopf}% - \feentry{fromname}{Name des Absenders im Briefkopf abweichend von - \PValue{fromaddress}}% - \feentry{fromrule}{Linie im Absender im Briefkopf; gedacht für - Farbänderungen}% - \feentry{pagefoot}{Eigentlich der Fuß einer Seite, jedoch auch der - Kopf der Seite}% - \feentry{pagehead}{Eigentlich der Kopf einer Seite, jedoch auch der - Fuß der Seite}% - \feentry{pagenumber}{Seitenangabe im Kopf oder Fuß, die mit - \Macro{pagemark} gesetzt wird}% - \feentry{specialmail}{Versandart im Anschriftfenster}% - \feentry{subject}{Betreff in der Brieferöffnung}% - \feentry{title}{Titel in der Brieferöffnung}% - \feentry{toaddress}{Abweichung vom Element \FontElement{addressee} für die - Anschrift (ohne Name) des Empfängers im Anschriftfeld}% - \feentry{toname}{Abweichung vom Element \FontElement{addressee} für den - Namen des Empfängers im Anschriftfeld}% -\end{desctable} -\end{Explain} -% -\EndIndex{}{Schriftart}\EndIndex{}{Schriftgroesse=Schriftgröße}% - - -\subsection{Seitenstil} -\label{sec:scrlttr2.pageStyle} -Eine der allgemeinen Eigenschaften eines Dokuments ist der Seitenstil. -Siehe hierzu auch \autoref{sec:maincls.pageStyle} und -\autoref{cha:scrpage}. - -\begin{Declaration} - \Macro{pagestyle}\PParameter{empty}\\ - \XMacro{pagestyle}\PParameter{plain}\\ - \XMacro{pagestyle}\PParameter{headings}\\ - \XMacro{pagestyle}\PParameter{myheadings}\\ - \Macro{thispagestyle}\Parameter{lokaler Seitenstil} -\end{Declaration} -\BeginIndex{Cmd}{pagestyle}% -\BeginIndex{Cmd}{thispagestyle}% -\BeginIndex{Pagestyle}{empty}% -\BeginIndex{Pagestyle}{plain}% -\BeginIndex{Pagestyle}{headings}% -\BeginIndex{Pagestyle}{myheadings}% -\BeginIndex{}{Seitenstil}% -Bei Briefen mit \Class{scrlttr2} wird zwischen vier verschiedenen -Seitenstilen unterschieden. -\begin{description} -\item[empty] ist der Seitenstil, bei dem Kopf- und Fußzeile von Folgeseiten - vollständig leer bleiben. Dieser Seitenstil wird auch automatisch für die - erste Briefseite verwendet, da auf dieser Seite Kopf und Fuß über - \Macro{opening}\IndexCmd{opening} (siehe \autoref{sec:scrlttr2.firstHead}, - \autoref{sec:scrlttr2.firstFoot}, sowie \autoref{sec:scrlttr2.opening}, - \autopageref{desc:scrlttr2.macro.opening}) mit anderen Mitteln gesetzt - werden. -\item[plain] ist der Seitenstil, bei dem auf Folgeseiten keinerlei - Kolumnentitel verwendet, sondern nur eine Seitenangabe ausgegeben wird. Wo - diese gesetzt wird, hängt von der Option \Option{pagenumber} ab (siehe - \autoref{sec:scrlttr2.layout}, - \autopageref{desc:scrlttr2.option.pagenumber}). -\item[headings] ist der Seitenstil für automatische Kolumnentitel auf - Folgeseiten. Dabei werden als automatisch gesetzte Marken der Absendername - aus der Variablen \PValue{fromname} und der Betreff aus der Variablen - \PValue{subject} verwendet (siehe \autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.variable.fromname} und - \autoref{sec:scrlttr2.titleSubject}, - \autopageref{desc:scrlttr2.variable.subject}). Wo genau diese Marken und die - Seitenangabe ausgegeben werden, hängt von der Option \Option{pagenumber} ab - (siehe \autoref{sec:scrlttr2.layout}, - \autopageref{desc:scrlttr2.option.pagenumber}). Der Autor kann die Marken - aber auch noch nach \Macro{opening} manuell beeinflussen. Hierzu stehen wie - üblich die Anweisungen \Macro{markboth} und \Macro{markright}, bei - Verwendung von \Package{scrpage2} auch \Macro{markleft} (siehe - \autoref{sec:scrpage.basics.mark}, - \autopageref{desc:scrpage.macro.automark}), zur Verfügung. -\item[myheadings] ist der Seitenstil für manuelle Kolumnentitel auf - Folgeseiten. Dies entspricht weitgehend \PValue{headings}, - allerdings müssen hier die Marken vom Anwender gesetzt werden. Er - verwendet dazu die Anweisungen \Macro{markboth}\IndexCmd{markboth} - und \Macro{markright}\IndexCmd{markright}. Bei Verwendung von - \Package{scrpage2} kann außerdem \Macro{markleft}\IndexCmd{markleft} - verwendet werden. -\end{description} -Folgeseiten im Sprachgebrauch dieser Anleitung sind alle Briefseiten -abgesehen von der ersten. - -Die Form der Seitenstile wird außerdem durch die Optionen -\Option{headsepline}\IndexOption{headsepline} und -\Option{footsepline}\IndexOption{footsepline} beeinflusst (siehe -\autoref{sec:scrlttr2.layout}, -\autopageref{desc:scrlttr2.option.headsepline}). Der Seitenstil ab der -aktuellen Seite wird mit \Macro{pagestyle} umgeschaltet. Demgegenüber -verändert \Macro{thispagestyle} nur den Seitenstil der aktuellen Seite. Die -Briefklasse verwendet \Macro{thispagestyle}\PParameter{empty} selbst innerhalb -von \Macro{opening}\IndexCmd{opening} für die erste Briefseite.% -% -\EndIndex{Cmd}{pagestyle}% -\EndIndex{Cmd}{thispagestyle}% -\EndIndex{Pagestyle}{empty}% -\EndIndex{Pagestyle}{plain}% -\EndIndex{Pagestyle}{headings}% -\EndIndex{Pagestyle}{myheadings}% -\EndIndex{}{Seitenstil}% - -\BeginIndex[indexother]{}{Schriftart}% -Um die Schriftart von Kopf und Fuß der Seite oder der Seitenangabe zu ändern, -verwenden Sie die Benutzerschnittstelle, die in \autoref{sec:maincls.font} -beschrieben ist. Für den Kopf und den Fuß ist dabei das gleiche Element -zuständig, das Sie wahlweise mit \PValue{pagehead} oder \PValue{pagefoot} -benennen können. Das Element für die Seitenzahl innerhalb des Kopfes oder -Fußes heißt \PValue{pagenumber}. Die Voreinstellungen sind in -\autoref{tab:maincls.defaultFontsHeadFoot}, -\autopageref{tab:maincls.defaultFontsHeadFoot} zu finden. Beachten Sie dazu -auch das Beispiel aus \autoref{sec:maincls.pageStyle}, -\autopageref{sec:maincls.pageStyle.example}. -% -\EndIndex[indexother]{}{Schriftart}% - -\begin{Declaration} - \Macro{clearpage}\\ - \Macro{cleardoublepage}\\ - \Macro{cleardoublestandardpage}\\ - \Macro{cleardoubleplainpage}\\ - \Macro{cleardoubleemptypage} -\end{Declaration}% -\BeginIndex{Cmd}{clearpage}% -\BeginIndex{Cmd}{cleardoublepage}% -\BeginIndex{Cmd}{cleardoublestandardpage}% -\BeginIndex{Cmd}{cleardoubleplainpage}% -\BeginIndex{Cmd}{cleardoubleemptypage}% -Siehe hierzu die Erklärung in -\autoref{sec:maincls.pageStyle}\Index{Seitenstil}, -\autopageref{desc:maincls.macro.clearpage}, wobei die Arbeitsweise von -\Macro{cleardoublepage} bei \Class{scrlttr2} von der Option -\Option{cleardoublepage} abhängt, die in \autoref{sec:scrlttr2.layout}, -\autopageref{desc:scrlttr2.option.cleardoublepage} näher beschrieben ist. -% -\EndIndex{Cmd}{clearpage}% -\EndIndex{Cmd}{cleardoublepage}% -\EndIndex{Cmd}{cleardoublestandardpage}% -\EndIndex{Cmd}{cleardoubleplainpage}% -\EndIndex{Cmd}{cleardoubleemptypage}% - - - -\subsection{Variablen} -\label{sec:scrlttr2.variables} - -\BeginIndex{}{Variablen}% -Neben Optionen, Anweisungen (oder Befehlen), Umgebungen, Zählern und -Längen wurden in \KOMAScript{} bereits zusätzlich Elemente eingeführt. -Eine typische Eigenschaft eines Elements ist eine Schriftart und die -Möglichkeit, diese zu ändern (siehe \autoref{sec:maincls.font}). An -dieser Stelle werden nun zusätzlich Variablen eingeführt. Variablen -haben einen Namen, über den sie angesprochen werden und einen Inhalt. -Der Inhalt einer Variablen kann zeitlich bzw. räumlich getrennt von -ihrer Verwendung gesetzt werden, so wie der Inhalt einer Anweisung -getrennt von ihrer Ausführung definiert werden kann. Ein -Hauptunterschied einer Variablen zu einer Anweisung besteht darin, -dass eine Anweisung normalerweise eine Aktion auslöst, während der -Inhalt einer Variablen normalerweise aus einem Text besteht, der dann -von einer Anweisung ausgegeben wird. Außerdem kann eine Variable -zusätzlich eine Bezeichnung besitzen, die ebenfalls gesetzt und -ausgegeben werden kann. - -Dieser Abschnitt beschränkt sich bewusst auf die Einführung des Begriffs der -Variablen. Die zur Verdeutlichung verwendeten Beispiele sind ohne tiefere -Bedeutung. Konkretere Anwendungsbeispiele gibt es bei der Erläuterung der in -der Briefklasse bereits definierten und von ihr verwendeten Variablen in den -nachfolgenden Abschnitten. \autoref{tab:scrlttr2.variables} gibt eine -Übersicht über alle in \Class{scrlttr2} definierten Variablen. - -\begin{desctable} - \caption{Von der Klasse \Class{scrlttr2} unterstützte - Variablen\label{tab:scrlttr2.variables}}\\ - \Endfirsthead - \caption[]{Von der Klasse \Class{scrlttr2} unterstützte Variablen - (\emph{Fortsetzung})}\\ - \Endhead% - \standardfoot% - \ventry{backaddress}{Rücksendeadresse für Fensterbriefumschläge - (\autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.variable.backaddress})}% - \ventry{backaddressseparator}{Trennzeichen innerhalb der Rücksendeadresse - (\autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.variable.backaddressseparator})}% - \ventry{ccseparator}{Trennzeichen zwischen Verteilertitel und Verteiler - (\autoref{sec:scrlttr2.afterClosing}, - \autopageref{desc:scrlttr2.variable.ccseparator})}% - \ventry{customer}{Geschäftszeilenfeld "`Kundennummer"' - (\autoref{sec:scrlttr2.refLine}, - \autopageref{desc:scrlttr2.variable.customer})}% - \ventry{date}{Datum - (\autoref{sec:scrlttr2.refLine}, - \autopageref{desc:scrlttr2.variable.date})}% - \ventry{emailseparator}{Trennzeichen zwischen E-Mail-Bezeichner und - E-Mail-Adresse - (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.variable.emailseparator})}% - \ventry{enclseparator}{Trennzeichen zwischen Anlagetitel und Anlagen - (\autoref{sec:scrlttr2.afterClosing}, - \autopageref{desc:scrlttr2.variable.enclseparator})}% - \ventry{faxseparator}{Trennzeichen zwischen Faxbezeichner und Faxnummer - (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.variable.faxseparator})}% - \ventry{fromaddress}{Absenderadresse ohne Absendername - (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.variable.fromaddress})}% - \ventry{frombank}{Bankverbindung des Absenders - (\autoref{sec:scrlttr2.other}, - \autopageref{desc:scrlttr2.variable.frombank})}% - \ventry{fromemail}{E-Mail-Adresse des Absenders - (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.variable.fromemail})}% - \ventry{fromfax}{Faxnummer des Absenders - (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.variable.fromfax})}% - \ventry{fromlogo}{Anweisungen zum Setzen des Absenderlogos - (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.variable.fromlogo})}% - \ventry{fromname}{vollständiger Absendername - (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.variable.fromname})}% - \ventry{fromphone}{Telefonnummer des Absenders - (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.variable.fromphone})}% - \ventry{fromurl}{eine URL des Absenders - (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.variable.fromurl})}% - \ventry{invoice}{Geschäftszeilenfeld "`Rechnungsnummer"' - (\autoref{sec:scrlttr2.refLine}, - \autopageref{desc:scrlttr2.variable.invoice})}% - \ventry{location}{erweiterte Absenderangabe - (\autoref{sec:scrlttr2.locationField}, - \autopageref{desc:scrlttr2.variable.location})}% - \ventry{myref}{Geschäftszeilenfeld "`Mein Zeichen"' - (\autoref{sec:scrlttr2.refLine}, - \autopageref{desc:scrlttr2.variable.myref})}% - \ventry{place}{Ort - (\autoref{sec:scrlttr2.refLine}, - \autopageref{desc:scrlttr2.variable.place})}% - \ventry{placeseparator}{Trennzeichen zwischen Ort und Datum - (\autoref{sec:scrlttr2.refLine}, - \autopageref{desc:scrlttr2.variable.placeseparator})}% - \ventry{phoneseparator}{Trennzeichen zwischen Telefonbezeichner und - Telefonnummer - (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.variable.phoneseparator})}% - \ventry{signature}{Signatur unter Unterschrift und Grußformel - (\autoref{sec:scrlttr2.closing}, - \autopageref{desc:scrlttr2.variable.signature})}% - \ventry{specialmail}{Versandart - (\autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.variable.specialmail})}% - \ventry{subject}{Betreff - (\autoref{sec:scrlttr2.titleSubject}, - \autopageref{desc:scrlttr2.variable.subject})}% - \ventry{subjectseparator}{Trennzeichen zwischen Betreff"|titel und Betreff - (\autoref{sec:scrlttr2.titleSubject}, - \autopageref{desc:scrlttr2.variable.subjectseparator})}% - \ventry{title}{Brief"|titel - (\autoref{sec:scrlttr2.titleSubject}, - \autopageref{desc:scrlttr2.variable.title})}% - \ventry{toname}{vollständiger Empfängername - (\autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.variable.toname})}% - \ventry{toaddress}{Empfängeradresse ohne Empfängername - (\autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.variable.toaddress})}% - \ventry{yourmail}{Geschäftszeilenfeld "`Ihr Schreiben"' - (\autoref{sec:scrlttr2.refLine}, - \autopageref{desc:scrlttr2.variable.yourmail})}% - \ventry{yourref}{Geschäftszeilenfeld "`Ihr Zeichen"' - (\autoref{sec:scrlttr2.refLine}, - \autopageref{desc:scrlttr2.variable.yourref})}% -\end{desctable} - - -\begin{Declaration} - \Macro{newkomavar}\OParameter{Bezeichnung}\Parameter{Name}\\ - \Macro{newkomavar*}\OParameter{Bezeichnung}\Parameter{Name}\\ - \Macro{removereffields}\\ - \Macro{defaultreffields}\\ - \Macro{addtoreffields}\Parameter{Name} -\end{Declaration} -\BeginIndex{Cmd}{newkomavar}\BeginIndex{Cmd}{newkomavar*}% -\BeginIndex{Cmd}{addtoreffields}\BeginIndex{Cmd}{removereffields}% -\BeginIndex{Cmd}{defaultreffields}% -Mit \Macro{newkomavar} wird eine neue Variable definiert. Diese Variable wird -über \PName{Name} angesprochen. Optional kann eine \PName{Bezeichnung} für die -Variable \PName{Name} angegeben werden. Mit der Anweisung -\Macro{addtoreffields} kann die Variable \PName{Name} der Geschäftszeile -(siehe \autoref{sec:scrlttr2.refLine}) hinzugefügt werden. Dabei -wird die \PName{Bezeichnung} und der Inhalt der Variablen an das Ende der -Geschäftszeile angehängt, falls ihr Inhalt nicht leer ist. Die Sternvariante -\Macro{newkomavar*} entspricht der Variante ohne Stern mit anschließendem -Aufruf der Anweisung \Macro{addtoreffields}. Bei der Sternvariante wird die -Variable also automatisch zur Geschäftszeile hinzugefügt. -\begin{Example} - Angenommen, Sie benötigen in der Geschäftszeile ein zusätzliches Feld - für eine Durchwahl. Sie können das Feld dann wahlweise mit -\begin{lstlisting} - \newkomavar[Durchwahl]{myphone} - \addtoreffields{myphone} -\end{lstlisting} - oder kürzer mit -\begin{lstlisting} - \newkomavar*[Durchwahl]{myphone} -\end{lstlisting} - definieren. -\end{Example} -Im Fall, dass eine Variable für die Geschäftszeile definiert wird, -sollten Sie immer eine Bezeichnung dafür angeben.% - -Mit der Anweisung \Macro{removereffields} können alle Variablen aus der -Geschäftszeile entfernt werden. Dies betrifft auch die in der Klasse -vordefinierten Variablen. Die Geschäftszeile ist dann bis auf das Datum, -das immer hinten angehängt wird, leer. Sie können dies beispielsweise nutzen, -wenn Sie die Reihenfolge der Variablen in der Geschäftszeile ändern -wollen. - -Zur Wiederherstellung der Reihenfolge der vordefinierten Variablen in der -Geschäftszeile dient \Macro{defaultreffields}. Dabei werden auch alle -selbstdefinierten Variablen aus der Geschäftszeile entfernt.% -% -\EndIndex{Cmd}{defaultreffields}% -\EndIndex{Cmd}{newkomavar}\EndIndex{Cmd}{newkomavar*}% -\EndIndex{Cmd}{addtoreffields}\EndIndex{Cmd}{removereffields}% - - -\begin{Declaration} - \Macro{setkomavar}% - \Parameter{Name}\OParameter{Bezeichnung}\Parameter{Inhalt}\\ - \Macro{setkomavar*}\Parameter{Name}\Parameter{Bezeichnung} -\end{Declaration} -\BeginIndex{Cmd}{setkomavar}\BeginIndex{Cmd}{setkomavar*}% -Mit der Anweisung \Macro{setkomavar} wird der \PName{Inhalt} der -Variablen \PName{Name} gesetzt. Dabei kann per optionalem Argument -gleichzeitig auch die \PName{Bezeichnung} der Variablen geändert -werden. Demgegenüber kann mit der Sternvariante \Macro{setkomavar*} -auch nur die \PName{Bezeichnung} der Variablen \PName{Name} gesetzt -werden. -\begin{Example} - Angenommen, Sie haben wie oben eine Variable für die Durchwahl - definiert und wollen nun die Durchwahl setzen. Dies geschieht - einfach mit: -\begin{lstlisting} - \setkomavar{myphone}{-11} -\end{lstlisting} - Sie wollen außerdem, dass statt "`Durchwahl"' der Begriff - "`Apparat"' ausgegeben wird. Also setzen Sie zusätzlich die - Bezeichnung mit: -\begin{lstlisting} - \setkomavar*{myphone}{Apparat} -\end{lstlisting} - oder fassen beide Angaben zu einer Anweisung zusammen: -\begin{lstlisting} - \setkomavar{myphone}[Apparat]{-11} -\end{lstlisting} - Damit schlagen Sie sozusagen zwei Fliegen mit einer Klappe. -\end{Example} -Übrigens kann mit einem leeren obligatorischen Argument \PName{Inhalt} -der Inhalt der Variable gelöscht werden. Selbstverständlich kann in -gleicher Weise mit einem leeren Argument \PName{Bezeichnung} die -Bezeichnung der Variablen gelöscht werden. -\begin{Example} - Angenommen, Sie haben wie oben eine Variable für die Durchwahl - definiert, wollen nun aber nicht, dass eine Bezeichnung ausgegeben - wird. Dann können Sie diese entweder für sich mit: -\begin{lstlisting} - \setkomavar*{myphone}{} -\end{lstlisting} - löschen. Sie können aber auch wieder zwei Fliegen mit einer Klappe - schlagen und verwenden: -\begin{lstlisting} - \setkomavar{myphone}[]{-11} -\end{lstlisting} - Dadurch wird gleichzeitig der Inhalt der Variablen gesetzt und ihre - Bezeichnung gel"oscht. -\end{Example} -% -\EndIndex{Cmd}{setkomavar}\EndIndex{Cmd}{setkomavar*}% - - -\begin{Declaration} - \Macro{usekomavar}\OParameter{Anweisung}\Parameter{Name}\\ - \Macro{usekomavar*}\OParameter{Anweisung}\Parameter{Name} -\end{Declaration} -\BeginIndex{Cmd}{usekomavar}\BeginIndex{Cmd}{usekomavar*}% -In\ChangedAt{v2.9i}{\Class{scrlttr2}} manchen Fällen wird es notwendig -sein, selbst auf den Inhalt oder die Bezeichnung einer Variablen -zuzugreifen, dies also nicht allein der Klasse zu überlassen. Dies -gilt insbesondere dann, wenn Sie eigene Variablen definiert haben, die -jedoch nicht zur Geschäftszeile hinzugefügt werden. Mit der Anweisung -\Macro{usekomavar} können Sie auf den Inhalt der Variablen -\PName{Name} zugreifen, während Sie mit der Sternvariante -\Macro{usekomavar*} ihre Bezeichnung erhalten. - -\begin{Explain} - Die Anweisungen \Macro{usekomavar} und \Macro{usekomavar*} sind - übrigens wie alle Anweisungen, von denen es eine Sternvariante gibt - oder die ein optionales Argument besitzen, nicht voll expandierbar. - Bei Verwendung innerhalb von \Macro{markboth}\IndexCmd{markboth}, - \Macro{markright}\IndexCmd{markright} oder ähnlichen Anweisungen - muss dennoch kein \Macro{protect}\IndexCmd{protect} vorangestellt - werden. Selbstverständlich gilt dies bei Verwendung von - \Package{scrpage2} auch für \Macro{markleft}\IndexCmd{markleft}. - Allerdings können die Anweisungen nicht innerhalb von - \Macro{MakeUppercase} und ähnlichen Anweisungen verwendet werden, - die direkten Einfluss auf ihr Argument haben. Diese Anweisungen - können jedoch als optionales Argument angegeben werden. So erhält - man beispielsweise den Inhalt einer Variable in Großbuchstaben mit - \Macro{usekomavar}\PValue{[\Macro{MakeUppercase}]}\Parameter{Name}. -\end{Explain} -% -\EndIndex{Cmd}{usekomavar}\EndIndex{Cmd}{usekomavar*}% - -\begin{Declaration} - \Macro{ifkomavarempty}\Parameter{Name}\Parameter{Wahr}\Parameter{Falsch}\\ - \Macro{ifkomavarempty*}\Parameter{Name}\Parameter{Wahr}\Parameter{Falsch} -\end{Declaration} -\BeginIndex{Cmd}{ifkomavarempty}% -Mit\ChangedAt{v2.9i}{\Class{scrlttr2}} Hilfe diesen Anweisung kann man -feststellen, ob der Inhalt oder die Bezeichnung einer Variablen leer -ist oder nicht. Das \PName{Wahr}-Argument wird nur dann ausgeführt, -wenn der expandierte Inhalt oder die expandierte Bezeichnung der -Variablen \PName{Name} leer ist. Anderenfalls wird das -\PName{Falsch}-Argument ausgeführt. Die Sternvariante der Anweisung -bezieht sich dabei auf die Bezeichnung der Variablen, während die -normale Variante den Inhalt behandelt. - -\begin{Explain} - In diesem Zusammenhang ist wichtig, dass der Inhalt der Variablen - soweit expandiert wird, wie dies mit \Macro{edef} möglich - ist. Bleiben dabei Leerzeichen oder unexpandierbare Makros wie - \Macro{relax} übrig, so gilt der Inhalt auch dann als nicht leer, - wenn die Verwendung der Variablen zu keiner Ausgabe führen würde. - - Auch diese Anweisung kann nicht innerhalb von \Macro{MakeUppercase} - oder ähnlichen Anweisungen verwendet werden. Sie ist jedoch robust - genug, um beispielsweise als Argument von \Macro{markboth} oder - \Macro{footnote} zu funktionieren. -\end{Explain} -% -\EndIndex{Cmd}{ifkomavarempty}% -% -\EndIndex{}{Variablen} - - - -\subsection{Die Pseudolängen} -\label{sec:scrlttr2.pseudoLength} -\BeginIndex{}{Pseudolängen} - -\begin{Explain} - \TeX{} arbeitet mit einem festen Satz an Registern. Es gibt Register - für Tokens, für Boxen, für Zähler, für Abstände (englisch: - \emph{skip}) und für Größen (englisch: \emph{dimension}). Von all - diesen Registern gibt es jeweils 256 Stück. Für \LaTeX{}-Längen, die - mit \Macro{newlength} angefordert werden, werden Abstandsregister - belegt. Sind alle diese Register verbraucht, kann man keine weiteren - Längen definieren. Die Briefklasse \Class{scrlttr2} würde - normalerweise allein für die erste Seite mehr als 20 solche Register - verbrauchen. \LaTeX{} selbst belegt bereits 40 dieser Register. Das - \Package{typearea}-Paket benötigt ebenfalls einige, so dass ein - Viertel der kostbaren Register verbraucht wäre. Aus diesem Grund - werden briefspezifische Längen in \Class{scrlttr2} eben nicht in - Längen, sondern in Makros abgelegt, den Pseudolängen. Der Nachteil - dieses Vorgehens besteht darin, dass man mit diesen Makros nicht so - einfach rechnen kann wie mit echten Längen. - - Wer nun einwenden will, dass \LaTeX{} in der empfohlenen Installation mit - \eTeX{} inzwischen das oben genannte Beschränkungsproblem nicht mehr - besitzt, hat Recht. Allerdings kam diese Entscheidung für \Class{scrlttr2} - ein wenig zu spät. -\end{Explain} - -Eine Liste aller in \Class{scrlttr2} definierten Pseudolängen findet sich in -\autoref{tab:scrlttr2.pseudoLength} ab -\autopageref{tab:scrlttr2.pseudoLength}. Eine grafische Darstellung der -Bedeutungen ist \autoref{fig:scrlttr2.pseudoLength} zu entnehmen. Die -verwendeten Maße sind dabei an die Voreinstellungen von \Class{scrlttr2} -angelehnt. Nähere Beschreibungen zu den einzelnen Pseudolängen finden sich in -den einzelnen Abschnitten dieses Kapitels. - -\begin{figure} - \centering - \includegraphics{plenDIN} - \caption{Schematische Darstellung der wichtigsten Pseudolängen für den - Briefbogen} - \label{fig:scrlttr2.pseudoLength} -\end{figure} - -\begin{desctable} - \caption{Von der Klasse \Class{scrlttr2} verwendete Pseudolängen% - \label{tab:scrlttr2.pseudoLength}}\\ - \Endfirsthead % - \caption[]{Von der Klasse \Class{scrlttr2} verwendete Pseudolängen - (\emph{Fortsetzung})}\\% - \Endhead% - \standardfoot% - \pentry{backaddrheight}{% - Höhe der Rücksendeadresse am oberen Rand des Anschriftfeldes - (\autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.plength.backaddrheight})}% - \pentry{bfoldmarkvpos}{% - Abstand der unteren Faltmarke von der oberen Kante des Papiers - (\autoref{sec:scrlttr2.other}, - \autopageref{desc:scrlttr2.plength.bfoldmarkvpos})}% - \pentry{firstfootvpos}{% - Abstand des Brief"|fußes von der oberen Kante des Papiers - (\autoref{sec:scrlttr2.firstFoot}, - \autopageref{desc:scrlttr2.plength.firstfootvpos})}% - \pentry{firstfootwidth}{% - Breite des Brief"|fußes, der automatisch innerhalb der Papierbreite - zentriert wird - (\autoref{sec:scrlttr2.firstFoot}, - \autopageref{desc:scrlttr2.plength.firstfootwidth})}% - \pentry{firstheadvpos}{% - Abstand des Briefkopfes von der oberen Kante des Papiers - (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.plength.firstheadvpos})}% - \pentry{firstheadwidth}{% - Breite des Briefkopfes, wobei dieser relativ zur Papierbreite zentriert - wird (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.plength.firstheadwidth})}% - \pentry{foldmarkhpos}{% - Abstand der Faltmarken von der linken Kante des Papiers - (\autoref{sec:scrlttr2.other}, - \autopageref{desc:scrlttr2.plength.foldmarkhpos})}% - \pentry{fromrulethickness}{% - Dicke einer optionalen horizontalen Linie im Briefkopf - (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.plength.fromrulethickness})}% - \pentry{fromrulewidth}{% - Länge einer optionalen horizontalen Linie im Briefkopf - (\autoref{sec:scrlttr2.firstHead}, - \autopageref{desc:scrlttr2.plength.fromrulewidth})}% - \pentry{locwidth}{% - Breite des Feldes für die Absenderergänzung, wobei bei einem Wert von 0 - die Breite automatisch aufgrund der in \autoref{sec:scrlttr2.headoptions} - beschriebenen Option \Option{locfield} berechnet wird - (\autoref{sec:scrlttr2.locationField}, - \autopageref{desc:scrlttr2.plength.locwidth})}% - \pentry{refaftervskip}{% - vertikaler Abstand nach der Geschäftszeile - (\autoref{sec:scrlttr2.refLine}, - \autopageref{desc:scrlttr2.plength.refaftervskip})}% - \pentry{refhpos}{% - Abstand der Geschäftszeile von der linken Papierkante, wobei bei einem - Wert von 0 automatisch relativ zur Papierbreite zentriert wird - (\autoref{sec:scrlttr2.refLine}, - \autopageref{desc:scrlttr2.plength.refhpos})}% - \pentry{refvpos}{% - Abstand der Geschäftszeile von der oberen Kante des Papiers - (\autoref{sec:scrlttr2.refLine}, - \autopageref{desc:scrlttr2.plength.refvpos})}% - \pentry{refwidth}{% - Breite der Geschäftszeile - (\autoref{sec:scrlttr2.refLine}, - \autopageref{desc:scrlttr2.plength.refwidth})}% - \pentry{sigbeforevskip}{% - vertikaler Abstand zwischen Gruß und Signatur - (\autoref{sec:scrlttr2.closing}, - \autopageref{desc:scrlttr2.plength.sigbeforevskip})}% - \pentry{sigindent}{% - Einzug der Signatur gegenüber dem Textkörper - (\autoref{sec:scrlttr2.closing}, - \autopageref{desc:scrlttr2.plength.sigindent})}% - \pentry{specialmailindent}{% - linker Einzug der Versandart innerhalb des Anschriftfeldes - (\autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.plength.specialmailindent})}% - \pentry{specialmailrightindent}{% - rechter Einzug der Versandart innerhalb des Anschriftfeldes - (\autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.plength.specialmailrightindent})}% - \pentry{tfoldmarkvpos}{% - Abstand der oberen Faltmarke von der oberen Kande des Papiers - (\autoref{sec:scrlttr2.other}, - \autopageref{desc:scrlttr2.plength.tfoldmarkvpos})}% - \pentry{toaddrheight}{% - Höhe des Anschriftfeldes (\autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.plength.toaddrheight})}% - \pentry{toaddrhpos}{% - Abstand des Anschriftfeldes von der linken Papierkante, falls der Wert - positiv ist, oder negativer Abstand des Anschriftfeldes von der rechten - Papierkante, falls der Wert negativ ist (\autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.plength.toaddrhpos})}% - \pentry{toaddrindent}{% - linker und rechter Einzug der Anschrift innerhalb des Anschriftfeldes - (\autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.plength.toaddrindent})}% - \pentry{toaddrvpos}{% - Abstand des Anschriftfeldes von der oberen Kante des Papiers - (\autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.plength.toaddrvpos})}% - \pentry{toaddrwidth}{% - Breite des Anschriftfeldes (\autoref{sec:scrlttr2.addressee}, - \autopageref{desc:scrlttr2.plength.toaddrwidth})}% -\end{desctable} - -\begin{Declaration} - \Macro{@newplength}\Parameter{Name} -\end{Declaration} -\BeginIndex{Cmd}{@newplength}% -Mit Hilfe dieser Anweisung wird eine neue Pseudolänge definiert. Die -neue Pseudolänge ist dann über ihren \PName{Namen} eindeutig -identifiziert. -% -\iffalse -% Umbruchoptimierungstext -Es wird sichergestellt, dass jeder \PName{Name} nur -einmal vergeben wird.% -\else -Wird versucht, eine bereits vorhandene Pseudolänge erneut -zu definieren, so wird dies mit einer Fehlermeldung quitiert.% -% -\fi - -Da der Anwender selbst normalerweise keine eigenen Pseudolängen -definieren muss, handelt es sich bei diesem Befehl um keine -Benutzeranweisung. Sie kann innerhalb des Dokuments nicht, wohl aber -beispielsweise innerhalb einer \File{lco}-Datei verwendet werden. -% -\EndIndex{Cmd}{@newplength}% - -\begin{Declaration} - \Macro{@setplength}% - \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Wert}\\ - \Macro{@addtoplength}% - \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Wert} -\end{Declaration} -\BeginIndex{Cmd}{@setplength}% -\BeginIndex{Cmd}{@addtoplength}% -Mit Hilfe der Anweisung \Macro{@setplength} kann einer -\PName{Pseudolänge} das Vielfache eines \PName{Wertes} zugewiesen -werden. Der \PName{Faktor} wird dabei als optionales Argument -übergeben (siehe auch \Macro{setlengthtoplength}). Mit der Anweisung -\Macro{@addtoplength} kann man zu einer \PName{Pseudolänge} einen -\PName{Wert} addieren. Um einer \PName{Pseudolänge} das Vielfache -einer anderen Pseudolänge zuzuweisen oder hinzuzuaddieren, verwendet -man innerhalb von \PName{Wert} die Anweisung \Macro{useplength}. Um -von einer \PName{Pseudolänge} den Wert einer anderen -\PName{Pseudolänge} zu subtrahieren, verwendet man gleichzeitig als -\PName{Faktor} ein Minuszeichen oder \PValue{-1}. - -Da der Anwender selbst normalerweise keine Pseudolängen ändern muss, -handelt es sich bei diesen Befehlen um keine Benutzeranweisungen. Sie -können innerhalb des Dokuments nicht, wohl aber beispielsweise -innerhalb einer \File{lco}-Datei verwendet werden. -% -\EndIndex{Cmd}{@setplength}% -\EndIndex{Cmd}{@addtoplength}% - -\begin{Declaration} - \Macro{useplength}\Parameter{Name} -\end{Declaration} -\BeginIndex{Cmd}{useplength}% -Mit Hilfe dieser Anweisung wird auf den Wert der Pseudolänge mit dem -angegebenen \PName{Namen} zugegriffen. Dies ist eine der wenigen -Benutzeranweisung rund um Pseudolängen. Natürlich kann diese Anweisung -dennoch auch innerhalb einer \File{lco}-Datei verwendet werden. -% -\EndIndex{Cmd}{useplength}% - -\begin{Explain}% -\begin{Declaration} - \Macro{setlengthtoplength}% - \OParameter{Faktor}\Parameter{Länge}\Parameter{Pseudolänge}\\ - \Macro{addtolengthplength}% - \OParameter{Faktor}\Parameter{Länge}\Parameter{Pseudolänge} -\end{Declaration} -\BeginIndex{Cmd}{setlengthtoplength}% -\BeginIndex{Cmd}{addtolengthplength}% - Während man einer Länge einfach einen Faktor voranstellen kann, ist - dies bei Pseudolängen nicht möglich. Angenommen, eine Länge - \Macro{Test} hat den Wert 2\Unit{pt}, dann ergibt - \texttt{3\Macro{Test}} den Wert 6\Unit{pt}. Verwendet man - stattdessen eine Pseudolänge, so würde aus - \texttt{3\Macro{useplength}\PParameter{Test}} der Wert 32\Unit{pt}. - Dies ist insbesondere dann lästig, wenn man einer echten - \PName{Länge} den Wert einer \PName{Pseudolänge} zuweisen will. -\end{Explain} -Mit der Anweisung \Macro{setlengthtoplength} kann man einer echten -\PName{Länge} das Vielfache einer \PName{Pseudolänge} zuweisen. -Allerdings wird hier der \PName{Faktor} nicht direkt der -\PName{Pseudolänge} vorangestellt, sondern als optionales Argument -übergeben. Man sollte diese Anweisung auch verwenden, wenn man einer -\PName{Länge} den negativen Wert einer \PName{Pseudolänge} zuweisen -will. Als \PName{Faktor} kann dann wahlweise ein Minuszeichen oder -\PValue{-1} verwendet werden. Die Anweisung -\Macro{addtolengthplength} arbeitet ganz ähnlich. Allerdings wird -hier zur \PName{Länge} das Vielfache der \PName{Pseudolänge} -addiert. -% -\EndIndex{Cmd}{setlengthtoplength}% -\EndIndex{Cmd}{addtolengthplength}% -% -\EndIndex{}{Pseudolängen}% - -\subsection{Der generelle Aufbau eines Briefdokuments} -\label{sec:scrlttr2.document} - -Der generelle Aufbau\Index{Aufbau} eines Briefdokuments weicht etwas vom -Aufbau eines normalen Dokuments ab. Während ein Buchdokument normalerweise nur -ein Buch enthält, kann ein einzelnes Briefdokument mehrere Briefe enthalten. -Wie in \autoref{fig:scrlttr2.document} veranschaulicht wird, besteht ein -Briefdokument aus einem Vorspann, den einzelnen Briefen und dem Abschluss. - -\begin{figure} - \centering\small\setlength{\fboxsep}{1.5ex} - \fbox{\parbox{.667\linewidth}{\raggedright% - \Macro{documentclass}\OParameter{\dots}\PParameter{scrlttr2}\\ - \dots\\ - {\centering\emph{Einstellungen für alle Briefe}\\} - \dots\\ - \Macro{begin}\PParameter{document}\\ - \dots\\ - {\centering\emph{Einstellungen für alle Briefe}\\} - \dots\\ - }}\\ - \fbox{\parbox{.667\linewidth}{\raggedright% - \Macro{begin}\PParameter{letter}\Parameter{Empfänger}\\ - \dots\\ - {\centering\emph{Inhalt eines einzelnen Briefs}\\} - \dots\\ - \Macro{end}\PParameter{letter}\\ - }}\\[2pt] - \parbox{.667\linewidth}{\raggedright\vspace{-.5ex}\vdots\vspace{1ex}}\\ - \fbox{\parbox{.667\linewidth}{\raggedright% - \Macro{end}\PParameter{document}\\ - }}\\[\dp\strutbox] - \caption[Genereller Aufbau eines Briefdokuments mit beliebig vielen - einzelnen Briefen]{Genereller Aufbau eines Briefdokuments mit - beliebig vielen einzelnen Briefen (den Aufbau eines einzelnen - Briefes zeigt \autoref{fig:scrlttr2.letter})} - \label{fig:scrlttr2.document} -\end{figure} - -Der Vorspann beinhaltet dabei alle Einstellungen, die generell alle Briefe -betreffen. Diese können in den Einstellungen der einzelnen Briefe jedoch -zumindest teilweise überschrieben werden. Die einzige Einstellung, die derzeit -nicht innerhalb eines einzelnen Briefes überschrieben werden kann, ist die -Größe der Grundschrift (siehe Option \Option{fontsize} in -\autoref{sec:scrlttr2.fontOptions}, -\autopageref{desc:scrlttr2.option.fontsize}). Ich empfehle, vor -\Macro{begin}\PParameter{document} nur allgemeine Einstellungen wie das Laden -von Paketen und das Setzen von Optionen vorzunehmen. Alle Einstellungen, die -das Setzen einer Variablen oder sonstige Textangaben beinhalten, sollten nach -\Macro{begin}\PParameter{document} vorgenommen werden. Dies empfiehlt sich -umso mehr, wenn das Babel-Paket\IndexPackage{babel} (siehe -\cite{package:babel}) verwendet wird oder sprachabhängige Variablen von -\Class{scrlttr2} verändert werden sollen. - -Der Abschluss besteht in der Regel nur aus -\Macro{end}\PParameter{document}. Natürlich können Sie dort aber auch -zusätzliche Kommentare einfügen. - -\begin{figure} - \centering - \fbox{\parbox{.667\linewidth}{\raggedright% - \Macro{begin}\PParameter{letter}% - \OParameter{Optionen}\Parameter{Empfänger}\\ - \dots\\[\dp\strutbox] - {\centering\emph{Einstellungen für diesen Brief}\\} - \dots\\ - \Macro{opening}\Parameter{Anrede}\\ - }}\\[1pt] - \fbox{\parbox{.667\linewidth}{\raggedright% - \dots\\[\dp\strutbox] - {\centering\emph{Brief"|text}\\} - \dots\\ - }}\\[1pt] - \fbox{\parbox{.667\linewidth}{\raggedright% - \Macro{closing}\Parameter{Grußformel}\\ - \Macro{ps}\\ - \dots\\[\dp\strutbox] - {\centering\emph{Postscriptum}\\} - \dots\\ - \Macro{encl}\Parameter{Anlagen}\\ - \Macro{cc}\Parameter{Verteiler}\\ - \Macro{end}\PParameter{letter}\\ - }}\\[\dp\strutbox] - \caption[Genereller Aufbau eines einzelnen Briefes innerhalb eines - Briefdokuments]{Genereller Aufbau eines einzelnen Briefes - innerhalb eines Briefdokuments (siehe - \autoref{fig:scrlttr2.document})} - \label{fig:scrlttr2.letter} -\end{figure} - -Wie in \autoref{fig:scrlttr2.letter} verdeutlicht wird, bestehen die einzelnen -Briefe wiederum aus einer Einleitung, dem eigentlichen Brief"|text und einem -Schlussteil. In der Einleitung werden alle Einstellungen vorgenommen, die nur -für diesen einen Brief gelten sollen. Entscheidend ist hierbei, dass diese -Einleitung immer mit \Macro{opening}\IndexCmd{opening} endet. Ebenso beginnt -der Schlussteil immer mit \Macro{closing}\IndexCmd{closing}. Gegebenenfalls -können die Argumente \PName{Anrede} und \PName{Grußformel} der beiden -Anweisungen leer bleiben, die Anweisungen müssen jedoch gesetzt werden und -haben immer ein Argument. - -\begin{Explain} -Es soll an dieser Stelle nicht verschwiegen werden, dass zwischen den -einzelnen Briefen weitere Einstellungen getroffen werden können. Diese -gelten dann für alle nachfolgenden Briefe. Um Briefdokumente -übersichtlich und wartbar zu halten, sollte man sich jedoch gut -überlegen, ob man zwischen die Briefe tatsächlich weitere generelle -Einstellungen mit beschränkter Gültigkeit setzen will. Ich kann dies -nicht empfehlen% -\iftrue -% Umbruchergänzungstext -, da die Suche nach Einstellungen dadurch erschwert wird% -\fi -% -. -%\end{Explain} - -Wie bereits erwähnt, können mit Ausnahme der Schriftgröße alle -generellen Einstellungen aus dem Dokumentvorspann auch im Vorspann -einzelner Briefe gesetzt werden. Daher finden sich in diesem Abschnitt -keine weiteren Erklärungen zu den möglichen Einstellungen. Bitte -entnehmen Sie diese dem \autoref{sec:scrlttr2.startLetter}. -\end{Explain} - - -\section{Die Briefeinleitung} -\label{sec:scrlttr2.startLetter} - -In der Briefeinleitung\Index{Einleitung} finden sich alle -Einstellungen für einen Brief sowie alle Angaben zum Aufbau der ersten -Briefseite. Die erste Briefseite übernimmt innerhalb eines Briefes -nicht nur die Rolle der Titelei, sondern besteht aus vielen -unterschiedlichen Teilen. - - -\subsection{Faltmarken} -\label{sec:scrlttr2.foldmarks} -\BeginIndex{}{Faltmarke}% - -Falt- oder Falzmarken\Index{Falzmarke|see{Faltmarke}} sind kleine horizontale -Striche am linken und kleine vertikale Striche am oberen Rand. \KOMAScript{} -unterstützt für den Briefbogen derzeit drei konfigurierbare horizontale und -eine konfigurierbare vertikale Faltmarke. Dazu wird noch eine horizontale -Loch- oder Seitenmittenmarke unterstützt, die nicht in der Vertikalen -verschoben werden kann. - -\begin{Declaration} - \PLength{tfoldmarkvpos}\\ - \PLength{mfoldmarkvpos}\\ - \PLength{bfoldmarkvpos} -\end{Declaration} -\BeginIndex{PLength}{tfoldmarkvpos}% -\BeginIndex{PLength}{bfoldmarkvpos}% -\BeginIndex{PLength}{mfoldmarkvpos}% -Die Briefklasse \Class{scrlttr2} kennt insgesamt drei in der vertikalen -Platzierung konfigurierbaren Faltmarken. Die Position der oberen Faltmarke vom -oberen Papierrand wird von der Pseudolänge \PLength{tfoldmarkvpos} bestimmt, -die der mittleren Faltmarke von der Pseudolänge -\PLength{mfoldmarkvpos}\ChangedAt{v2.97e}{\Class{scrlttr2}}, die der unteren -Faltmarke von der Pseudolänge \PLength{bfoldmarkvpos}. Mit der -Locher-\Index{Lochermarke} oder -Seitenmittenmarke\Index{Seitenmittenmarke|see{Lochermarke}} kommt noch eine -weitere horizontale Marke dazu. Diese wird jedoch immer in der vertikalen -Seitenmitte platziert. - -Die obere und untere Faltmarke dienen nicht der exakten Drittelung des -Papiers beim Falten. Stattdessen soll das Papier mit ihrer Hilfe so geknickt -werden können, dass das Feld für die Anschrift in einem Fensterbriefumschlag -zu sehen ist. Die Einstellungen sind daher in den vordefinierten -\File{lco}-Dateien unterschiedlich gewählt. Eine Besonderheit stellt -\Option{DINmtext} dar. Hier wird zwingend von einem Briefumschlag im Format -C6/5 (auch "`C6 lang"' genannt) ausgegangen. Briefe, die mit dieser Option -erstellt wurden, sind weder für Umschläge im Format C5 noch für Umschläge im -Format C4 geeignet. - -Die mittlere Faltmarke wird für abendländische Briefe normalerweise nicht -benötigt. Beispielsweise in Japan gibt es jedoch so unterschiedliche -Briefumschläge, dass eine weitere Faltmarke benötigt wurde (siehe die -Japanischen \File{lco}-Dateien). An dieser Stelle sei darauf hingewiesen, dass -die Bezeichnungen "`obere"', "`mittlere"' und "`untere"' Faltmarke lediglich -eine Sprachkonvention darstellen. Tatsächlich ist nicht festgelegt, dass -\PLength{tfoldmarkvpos} kleiner als \PLength{mfoldmarkvpos} und dieses kleiner -als \PLength{bfoldmarkvpos} sein muss. Ist eine der Pseudolängen hingegen -Null, so wird die entsprechende Faltmarke auch dann nicht gesetzt, wenn sie -per Option \Option{foldmarks} (siehe \autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.foldmarks}) explizit aktiviert wurde. -% -\EndIndex{PLength}{tfoldmarkvpos}% -\EndIndex{PLength}{mfoldmarkvpos}% -\EndIndex{PLength}{bfoldmarkvpos}% - - -\begin{Declaration} - \PLength{tfoldmarklength}\\ - \PLength{mfoldmarklength}\\ - \PLength{bfoldmarklength}\\ - \PLength{pfoldmarklength} -\end{Declaration} -\BeginIndex{PLength}{tfoldmarklength}% -\BeginIndex{PLength}{mfoldmarklength}% -\BeginIndex{PLength}{bfoldmarklength}% -\BeginIndex{PLength}{pfoldmarklength}% -Diese\ChangedAt{v2.97e}{\Class{scrlttr2}} vier Pseudolängen bestimmen die -Länge der vier horizontalen Marken. Dabei gilt eine Besonderheit. Ist die -Länge nämlich mit Null angegeben, so werden bei den Pseudolängen -\PLength{tfoldmarklength}, \PLength{mfoldmarklength} und -\PLength{bfoldmarklength} für die drei in der vertikalen Position -konfigurierbaren Faltmarken stattdessen 2\Unit{mm} als Länge verwendet. Die -Länge der Lochermarke, \PLength{pfoldmarklength}, wird hingegen auf 4\Unit{mm} -gesetzt. -\EndIndex{PLength}{tfoldmarklength}% -\EndIndex{PLength}{mfoldmarklength}% -\EndIndex{PLength}{bfoldmarklength}% -\EndIndex{PLength}{pfoldmarklength}% - - -\begin{Declaration} - \PLength{foldmarkhpos} -\end{Declaration} -\BeginIndex{PLength}{foldmarkhpos}% -Diese Pseudolänge gibt den Abstand aller horizontalen Faltmarken vom linken -Papier\-rand an. Normalerweise sind das 3{,}5\Unit{mm}. Sie können den Wert -aber auch in Ihrer eigenen \File{lco}-Datei ändern, falls Sie einen Drucker -verwenden, der einen breiteren unbedruckbaren linken Rand hat. Ob die -Faltmarken überhaupt gesetzt werden, hängt außerdem von der Option -\Option{foldmarks} ab (siehe \autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.foldmarks}). -% -\EndIndex{PLength}{foldmarkhpos}% -\EndIndex{}{Faltmarke}% - - -\begin{Declaration} - \PLength{lfoldmarkhpos} -\end{Declaration} -\BeginIndex{PLength}{lfoldmarkhpos}% -Neben\ChangedAt{v2.97e}{\Class{scrlttr2}} den horizontalen Faltmarken gibt es -auch noch eine vertikale Faltmarke. Deren Abstand von der linken Papierkante -wird über die Pseudolänge \PLength{lfoldmarkhpos} bestimmt. Diese Faltmarke -wird beispielsweise bei Briefen für einige Japanische Chou- oder You-Umschläge -benötigt, wenn man diese für A4-Papier verwenden will. Auch für Umschläge im -C6-Format kann sie nützlich sein. -\EndIndex{PLength}{lfoldmarkhpos}% - - -\begin{Declaration} - \PLength{lfoldmarklength} -\end{Declaration} -\BeginIndex{PLength}{lfoldmarklength}% -Die\ChangedAt{v2.97e}{\Class{scrlttr2}} Länge der vertikalen Faltmarke wird -über die Pseudolänge \PLength{lfoldmarklength} bestimmt. Auch hier gibt es die -Besonderheit, dass bei einer angegebenen Länge von Null, stattdessen -4\Unit{mm} verwendet werden. -\EndIndex{PLength}{lfoldmarklength}% - - -\begin{Declaration} - \PLength{foldmarkvpos} -\end{Declaration} -\BeginIndex{PLength}{foldmarkvpos}% -Diese\ChangedAt{v2.97e}{\Class{scrlttr2}} Pseudolänge gibt den Abstand aller -vertikalen Faltmarken vom oberen Papier\-rand an. Normalerweise sind das -3{,}5\Unit{mm}. Sie können den Wert aber auch in Ihrer eigenen -\File{lco}-Datei ändern, falls Sie einen Drucker verwenden, der einen -breiteren unbedruckbaren oberen Rand hat. Ob die Faltmarken überhaupt gesetzt -werden, hängt außerdem von der Option \Option{foldmarks} ab (siehe -\autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.foldmarks}). Derzeit gibt es nur eine -einzige vertikale Faltmarke, die als linke vertikale Faltmarke bezeichnet -wird. -% -\EndIndex{PLength}{foldmarkvpos}% -\EndIndex{}{Faltmarke}% - - -\begin{Declaration} - \PLength{foldmarkthickness} -\end{Declaration} -\BeginIndex{PLength}{foldmarkthickness}% -Diese\ChangedAt{v2.97c}{\Class{scrlttr2}} Pseudolänge gibt die Dicke aller -Faltmarken an. Voreingestellt sind 0,2\Unit{pt}, also eine sehr dünne -Haarlinie. Insbesondere, wenn die Farbe der Faltmarken geändert wird, kann -dies zu wenig sein! -\EndIndex{PLength}{foldmarkthickness}% - - -\begin{Declaration} - \FontElement{foldmark} -\end{Declaration} -\BeginIndex{FontElement}{foldmark}% -Über\ChangedAt{v2.97c}{\Class{scrlttr2}} dieses Element kann die Farbe der -Faltmarken geändert werden. Dazu werden die Anweisungen zur Änderung der -Schriftart eines Elements verwendet, wie sie in \autoref{sec:scrlttr2.font}, -\autopageref{sec:scrlttr2.font}, angegeben sind. Voreingestellt ist keine -Änderung. -\EndIndex{FontElement}{foldmark}% - - -\subsection{Briefkopf} -\label{sec:scrlttr2.firstHead} -\BeginIndex{}{Briefkopf}% - -Unter dem Briefkopf verstehen wir alle Angaben, die den Absender -betreffen und die über der Anschrift stehen. Normalerweise würde man -erwarten, dass diese über den Seitenstil gesetzt werden. Bei der alten -Briefklasse \Class{scrlettr} war dies auch so. Bei \Class{scrlttr2} -wird der Briefkopf jedoch unabhängig vom Seitenstil von der Anweisung -\Macro{opening}\IndexCmd{opening} ausgegeben. -% Fuellmaterial -\iftrue% -Dabei wird der Briefkopf absolut positioniert, ist also vom -Satzspiegel unabhängig. Die erste Seite eines Briefes, also die Seite -mit dem Briefkopf, wird tatsächlich mit dem Seitenstil \PValue{empty} -gesetzt.% -\fi -% Ende des Fuellmaterials - -\begin{Declaration} - \PLength{firstheadvpos} -\end{Declaration} -\BeginIndex{PLength}{firstheadvpos}% -Die Pseudolänge \PLength{firstheadvpos} gibt den Abstand des -Briefkopfes von der oberen Papierkante an. Der Wert wird in den -vordefinierten \File{lco}-Dateien unterschiedlich gesetzt. Ein -typischer Wert ist 8\Unit{mm}. -% -\EndIndex{PLength}{firstheadvpos} - -\begin{Declaration} - \PLength{firstheadwidth} -\end{Declaration} -\BeginIndex{PLength}{firstheadwidth}% -Die Pseudolänge \PLength{firstheadwidth} gibt die Breite des -Briefkopfes an. Der Wert wird in den vordefinierten \File{lco}-Dateien -unterschiedlich gesetzt. Während er normalerweise von der -Papierbreite und dem horizontalen Abstand der Empfängeradresse vom -linken Papierrand abhängt, entspricht er bei \Option{KOMAold} der -Breite des Satzspiegels. -% -\EndIndex{PLength}{firstheadwidth}% - - -\begin{Declaration} - \Variable{fromname}\\ - \Variable{fromaddress}\\ - \Variable{fromphone}\\ - \Variable{fromfax}\\ - \Variable{fromemail}\\ - \Variable{fromurl}\\ - \Variable{fromlogo} -\end{Declaration} -\BeginIndex{Variable}{fromname}% -\BeginIndex{Variable}{fromaddress}% -\BeginIndex{Variable}{fromphone}% -\BeginIndex{Variable}{fromfax}% -\BeginIndex{Variable}{fromemail}% -\BeginIndex{Variable}{fromurl}% -\BeginIndex{Variable}{fromlogo}% -Diese Variablen stellen die Absenderangaben\Index{Absender} für den Briefkopf, -also den Kopf der ersten Seite eines Briefes dar. Welche dieser Variablen -tatsächlich für den Briefkopf verwendet werden, kann bei Verwendung der -Briefkopferweiterungen (siehe Option \Option{fromalign} in -\autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.fromalign}) über die entsprechenden Optionen -eingestellt werden. Die Variablen \Variable{fromname} und -\Variable{fromaddress} werden im Briefkopf ebenso wie -\Variable{fromlogo}\Index{Logo} ohne Bezeichnung, die Variablen -\Variable{fromphone}\Index{Telefon}, \Variable{fromfax}\Index{Fax}, -\Variable{fromemail}\Index{E-Mail} und -\Variable{fromurl}\Index{URL}\Index{WWW}\Index{Homepage} hingegen mit ihrer -Bezeichnung gesetzt. Die Bezeichnungen sind \autoref{tab:scrlttr2.fromTerm}, -\autopageref{tab:scrlttr2.fromTerm} zu entnehmen. -% -\begin{table} - \centering - \caption[{Vordefinierte Bezeichnungen der Variablen für die\newline - Absenderangaben im Briefkopf}]{Vordefinierte Bezeichnungen der Variablen - für die Absenderangaben im Briefkopf} - \begin{desctabular}[1.8em] - \ventry{fromemail}{\Macro{usekomavar*}\PParameter{emailseparator}% - \Macro{usekomavar}\PParameter{emailseparator}}% - \ventry{fromfax}{\Macro{usekomavar*}\PParameter{faxseparator}% - \Macro{usekomavar}\PParameter{faxseparator}}% - \ventry{fromname}{\Macro{headfromname}}% - \ventry{fromphone}{\Macro{usekomavar*}\PParameter{phoneseparator}% - \Macro{usekomavar}\PParameter{phoneseparator}}% - \ventry{fromurl}{\Macro{usekomavar*}\PParameter{urlseparator}% - \Macro{usekomavar}\PParameter{urlseparator}}% - \end{desctabular} - \label{tab:scrlttr2.fromTerm} -\end{table} - -Ein wichtiger Hinweis betrifft noch die Absenderadresse: Innerhalb der -Absenderadresse werden einzelne Teilangaben durch doppelten Backslash -voneinander getrennt. Solche Teilangaben sind beispielsweise Straße und -Hausnummer, Postleitzahl und Ort oder eine Länderangabe. Dieser doppelte -Backslash wird je nach Verwendung der Absenderadresse unterschiedlich -interpretiert und ist nicht zwangsläufig als Zeilenumbruch zu verstehen. -Absätze, vertikale Abstände und Ähnliches sind innerhalb der Absenderangaben -normalerweise nicht gestattet. Man muss \Class{scrlttr2} schon sehr genau -kennen, um sie gegebenenfalls sinnvoll einsetzen zu können. Außerdem sollte -man unbedingt die Variablen für Rücksendeadresse (siehe -\autoref{sec:scrlttr2.addressee}, -\autopageref{desc:scrlttr2.variable.backaddress}) und Signatur (siehe -\autoref{sec:scrlttr2.closing}, -\autopageref{desc:scrlttr2.variable.signature}) selbst setzen. - -Für das Logo kann übrigens auch eine externe Abbildung geladen werden. -Dazu setzt man als Inhalt der Variablen \Variable{fromlogo} -beispielsweise eine \Macro{includegraphics}-Anweisung. -Selbstverständlich muss dann im Vorspann des Briefdokuments (siehe -\autoref{sec:scrlttr2.document}) auch das \Package{graphics}- oder -\Package{graphicx}-Paket geladen werden (siehe -\cite{package:graphics}). -% -\EndIndex{Variable}{fromname}% -\EndIndex{Variable}{fromaddress}% -\EndIndex{Variable}{fromphone}% -\EndIndex{Variable}{fromfax}% -\EndIndex{Variable}{fromemail}% -\EndIndex{Variable}{fromurl}% -\EndIndex{Variable}{fromlogo}% - - -\begin{Declaration} - \PLength{fromrulethickness}\\ - \PLength{fromrulewidth} -\end{Declaration} -\BeginIndex{PLength}{fromrulethickness}% -\BeginIndex{PLength}{fromrulewidth}% -Wie bereits bei Option \Option{fromrule}\IndexOption{fromrule} in -\autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.fromrule} erwähnt wurde, kann in den -vordefinierten Briefköpfen eine Linie im oder unter dem Absender gesetzt -werden. Hat die Pseudolänge \PLength{fromrulewidth} die Länge 0, so wird dabei -die Länge dieser Linie automatisch bestimmt. Dies ist die Voreinstellung bei -den vordefinierten \File{lco}-Dateien. Der Wert kann mit \Macro{\@setplength} -(siehe \autoref{sec:scrlttr2.pseudoLength}, -\autopageref{desc:scrlttr2.macro.@setplength}) in eigenen \File{lco}-Dateien -aber auch abweichend gesetzt werden. Die voreingestellte -Dicke\ChangedAt{v2.97c}{\Class{scrlttr2}}, \PLength{fromrulethickness}, der -Linie beträgt 0,4\Unit{pt}. -% -\EndIndex{PLength}{fromrulethickness}% -\EndIndex{PLength}{fromrulewidth} - - -\begin{Declaration} - \FontElement{fromrule} -\end{Declaration} -\BeginIndex{FontElement}{fromrule}% -Die\ChangedAt{v2.97c}{\Class{scrlttr2}} Farbe der Linie im Absender, die über -die Option \Option{fromrule}\IndexOption{fromrule} (siehe -\autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.fromrule}) aktiviert werden kann, kann -ebenfalls verändert werden. Dazu wendet man die Anweisungen aus -\autoref{sec:scrlttr2.font}, \autopageref{sec:scrlttr2.font}, auf das -Element \FontElement{fromrule} an. Es wird empfohlen hier ausschließlich die -Farbe zu ändern. -\EndIndex{FontElement}{fromrule}% - - -\begin{Declaration} - \Variable{phoneseparator}\\ - \Variable{faxseparator}\\ - \Variable{emailseparator}\\ - \Variable{urlseparator} -\end{Declaration} -\BeginIndex{Variable}{phoneseparator}% -\BeginIndex{Variable}{faxseparator}% -\BeginIndex{Variable}{emailseparator}% -\BeginIndex{Variable}{urlseparator}% -\Index{Telefon}\Index{Fax}\Index{E-Mail}% -\Index{URL}\Index{WWW}\Index{Homepage}% -In diesen Variablen sind Trennzeichen\Index{Trennzeichen} definiert. -Sie werden gegebenenfalls in den Absenderangaben des Briefkopfes -verwendet (siehe \autoref{tab:scrlttr2.fromTerm}). Als Besonderheit -haben sie außerdem eine Bezeichnung. Die Bezeichnungen werden -ebenfalls in den Absenderangaben des Briefkopfes verwendet. Der -vordefinierte Inhalt und die Bezeichnung der Trennzeichen sind -\autoref{tab:scrlttr2.fromSeperator} zu entnehmen. -\begin{table} - \centering - \caption{Vordefinierte Bezeichnungen und Inhalte der Trennzeichen - für die Absenderangaben im Briefkopf} - \begin{tabular}{lll} - \toprule - Name & Bezeichnung & Inhalt \\ - \midrule - \Variable{emailseparator} & \Macro{emailname} & \texttt{:\~} \\ - \Variable{faxseparator} & \Macro{faxname} & \texttt{:\~} \\ - \Variable{phoneseparator} & \Macro{phonename} & \texttt{:\~} \\ - \Variable{urlseparator} & \Macro{wwwname} & \texttt{:\~} \\ - \bottomrule - \end{tabular} - \label{tab:scrlttr2.fromSeperator} -\end{table} -% -\EndIndex{Variable}{phoneseparator}% -\EndIndex{Variable}{faxseparator}% -\EndIndex{Variable}{emailseparator}% -\EndIndex{Variable}{urlseparator}% - - -\begin{Declaration} - \Macro{firsthead}\Parameter{Aufbau} -\end{Declaration} -\BeginIndex{Cmd}{firsthead}% -In vielen Fällen reichen die Möglichkeiten aus, die \Class{scrlttr2} über -Optionen und obige Variablen für die Gestaltung des Briefkopfes bietet. In -einigen Fällen will man jedoch den Briefkopf freier gestalten können. In -diesen Fällen muss man auf die Möglichkeiten der vordefinierten Briefköpfe, -die per Option ausgewählt werden können, verzichten. Stattdessen gestaltet man -sich seinen Briefkopf frei. Dazu definiert man den gewünschten \PName{Aufbau} -mit der Anweisung \Macro{firsthead}. Innerhalb von \Macro{firsthead} können -beispielsweise mit Hilfe der \Macro{parbox}-Anweisung (siehe -\cite{latex:usrguide}) mehrere Boxen neben- und untereinander gesetzt werden. -Einem versierten Anwender sollte es so möglich sein, seinen eigenen Briefkopf -zu gestalten. Natürlich kann \PName{Aufbau} auch Zugriffe auf Variablen mit -Hilfe von \Macro{usekomavar} nehmen. -% -\EndIndex{Cmd}{firsthead}% -% -\EndIndex{}{Briefkopf}% - - -\subsection{Briefbogenfuß} -\label{sec:scrlttr2.firstFoot}% -\BeginIndex{}{Briefbogenfuss=Briefbogenfuß}% - -Die erste Seite eines Briefes, der Briefbogen, enthält nicht nur einen eigenen -Kopf, den Briefkopf. Diese Seite enthält auch einen eigenen -Fuß\Index{Fuss=Fuß}. Auch dieser wird nicht über den Seitenstil, -sondern direkt von \Macro{opening}\IndexCmd{opening} ausgegeben. - - -\begin{Declaration} - \PLength{firstfootvpos} -\end{Declaration} -\BeginIndex{PLength}{firstfootvpos}% -Diese Pseudolänge gibt den Abstand des Fußes der ersten Briefseite von der -Oberkante des Papiers an. Es wird außerdem dafür gesorgt, dass der Textbereich -nicht in den Fuß hineinragt. Hierzu wird auf der ersten Seite gegebenenfalls -die Höhe des Textbereiches mit Hilfe von \Macro{enlargethispage} -verkleinert. Mit Hilfe der Option \Option{enlargefirstpage} kann dafür gesorgt -werden, dass die Höhe des Textbereiches umgekehrt gegebenenfalls auch -vergrößert wird. Damit kann dann der Abstand zwischen Textbereich und Fuß der -ersten Seite auf den Wert der Länge \Length{footskip}\IndexLength{footskip} -verringert werden. Siehe hierzu auch \autoref{sec:scrlttr2.typeareaOptions}, -\autopageref{desc:scrlttr2.option.enlargefirstpage}. - -Bei einer Kompatibilitätseinstellung\ChangedAt{v2.9t}{\Class{scrlttr2}} bis -Version 2.9t (siehe \Option{version} in -\autoref{sec:scrlttr2.compatibilityOptions}, -\autopageref{desc:scrlttr2.option.version}) wird außer bei \Option{KOMAold} in -allen vordefinierten \File{lco}-Dateien (siehe -\autoref{sec:scrlttr2.lcoFile}) der Fuß abhängig vom Satzspiegel gesetzt. -Damit hat dann auch \Option{enlargefirstpage} keine Wirkung. Ab Version 2.9u -bekommt der Fuß eine Position am unteren Ende des Papiers. Damit ist dann die -Höhe des Satzspiegels des Briefbogens eventuell auch von der Option -\Option{enlargefirstpage} abhängig. - -Sollte der Briefbogenfuß mittels Option -\Option{firstfoot}\IndexOption{firstfoot}\ChangedAt{v2.97e}{\Class{scrlttr2}} -(siehe \autoref{sec:scrlttr2.footoptions}, -\autopageref{desc:scrlttr2.option.firstfoot}) abgeschaltet sein, so wird die -Einstellung von \PLength{firstfootvpos} ignorriert und stattdessen -\Length{paperheight}\IndexLength{paperheight} angenommen. Es bleibt damit dann -ein minimaler unterer Rand von \Length{footskip}\IndexLength{footskip}. -% -\EndIndex{PLength}{firstfootvpos}% - - -\begin{Declaration} - \PLength{firstfootwidth} -\end{Declaration} -\BeginIndex{PLength}{firstfootwidth}% -Diese Pseudolänge gibt die Breite des Fußes der ersten Briefseite -an. Der Wert stimmt in den vordefinierten \File{lco}-Dateien mit -\PLength{firstheadwidth} überein.% -% -\EndIndex{PLength}{firstfootwidth}% - - -\begin{Declaration} - \Macro{firstfoot}\Parameter{Aufbau} -\end{Declaration} -\BeginIndex{Cmd}{firstfoot}% -Der Fuß der ersten Seite ist in der Voreinstellung leer. Es besteht -jedoch die Möglichkeit einen \PName{Aufbau} mit Hilfe der Anweisung -\Macro{firstfoot} zu definieren. Dies geschieht genau wie die -Definition des Kopfes mit Hilfe von \Macro{firsthead}. -\begin{Example} - Sie wollen den Inhalt der Variablen \Variable{frombank}, also die - Bankverbindung im Fuß der ersten Seite ausgeben. Der doppelte - Backslash soll dabei durch ein Komma ersetzt werden: -\begin{lstlisting} - \firstfoot{% - \parbox[b]{\linewidth}{% - \centering\def\\{, }\usekomavar{frombank}% - }% - } -\end{lstlisting} - Natürlich können Sie für das Trennzeichen auch eine eigene Variable - definieren. Ich überlasse dem Leser dies als Übung. - - Heutzutage hat man recht häufig, dass eine Art Brief"|fuß als - Gegengewicht zum Briefkopf verwendet wird. So etwas kann - beispielsweise wie folgt definiert werden: -\begin{lstlisting} - \firstfoot{% - \parbox[t]{\textwidth}{\footnotesize - \begin{tabular}[t]{l@{}}% - \multicolumn{1}{@{}l@{}}{Gesellschafter:}\\ - Hugo Mayer\\ - Bernd Müller - \end{tabular}% - \hfill - \begin{tabular}[t]{l@{}}% - \multicolumn{1}{@{}l@{}}{Geschäftsführerin:}\\ - Liselotte Mayer\\[1ex] - \multicolumn{1}{@{}l@{}}{Gerichtsstand:}\\ - Hinterdupfeldingen - \end{tabular}% - \ifkomavarempty{frombank}{}{% - \hfill - \begin{tabular}[t]{l@{}}% - \multicolumn{1}{@{}l@{}}{% - \usekomavar*{frombank}:}\\ - \usekomavar{frombank} - \end{tabular}% - }% - }% - } -\end{lstlisting} - Das Beispiel stammt übrigens ursprünglich von Torsten Krüger. Mit -\begin{lstlisting} - \setkomavar{frombank}{Konto 12\,345\,678\\ - bei der HansWurstBank\\ - BLZ 876\,543\,21} -\end{lstlisting} -kann die Bankverbindung passend dazu gesetzt werden. Abhängig von den -Voreinstellungen ist ein solch hoher Fuß nicht vorgesehen und wird deshalb -möglicherweise zu tief platziert. In einem solchen Fall kann die vertikale -Position über die Pseudolänge -\PLength{firstfootvpos}\IndexPLength{firstfootvpos}, die weiter oben in diesem -Abschnitt beschrieben ist, angepasst werden. -% Möglicherweise -% muss für einen solch hohen Fuß noch die Position des Fußes nach -% oben verschoben werden. Dies können Sie gegebenenfalls über die -% Pseudolänge \PLength{firstfootvpos}\IndexPLength{firstfootvpos} -% erreichen, die weiter oben in diesem Abschnitt beschrieben ist. -\end{Example} - -Im letzten Beispiel wurde ein mehrzeiliger Fuß gesetzt. Bei einer -Kompatibilitätseinstellung ab Version 2.9u (siehe \Option{version} in -\autoref{sec:scrlttr2.compatibilityOptions}, -\autopageref{desc:scrlttr2.option.version}) reicht der Platz dafür in der -Regel nicht aus. Sie sollten dann \PLength{firstfootvpos} (siehe -\autopageref{desc:scrlttr2.plength.firstfootvpos}) entsprechend verringern.% -% -\EndIndex{Cmd}{firstfoot}% -% -\EndIndex{}{Briefbogenfuss=Briefbogenfuß}% - - -\subsection{Anschrift} -\label{sec:scrlttr2.addressee}% -\BeginIndex{}{Anschrift}% - -Unter der Anschrift versteht man normalerweise nur den Namen und die -Adresse des Empfängers. Als erste Erweiterung zur Anschrift kann die -Versandart betrachtet werden, die etwa bei Einschreiben oder -Infobriefen zur Anwendung kommt. Bei Fensterbriefumschlägen wird auch -die sogenannte Rücksendeadresse zur Anschrift gezählt, da sie im -Anschriftfenster zu sehen sein wird. Die Anschrift folgt unmittelbar -auf den Briefkopf. - - -\begin{Declaration} - \PLength{toaddrvpos}\\ - \PLength{toaddrhpos} -\end{Declaration} -\BeginIndex{PLength}{toaddrvpos}% -\BeginIndex{PLength}{toaddrhpos}% -Diese Pseudolängen geben den Abstand des Anschriftfensters eines -Fensterbriefumschlags vom oberen und vom linken Rand des Papiers an. Sie -werden in den vordefinierten \File{lco}-Dateien unterschiedlich eingestellt. -Für \PLength{toaddrhpos} gilt außerdem eine Besonderheit. Ist der Wert -negativ, so ist sein Betrag der Abstand des Anschriftfeldes vom rechten Rand -des Papiers. Sie finden dies beispielsweise bei \Option{SN}. Am kleinsten ist -der Wert \PLength{toaddrvpos} bei \Option{DINmtext}. Hier kann es schnell -passieren, dass der Briefkopf in das Anschriftfenster ragt. Ob das -Anschriftfenster überhaupt gesetzt wird, hängt von der Option -\Option{addrfield} ab (siehe \autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.addrfield}). -% -\EndIndex{PLength}{toaddrhpos}% -\EndIndex{PLength}{toaddrvpos}% - -\begin{Declaration} - \PLength{toaddrheight} -\end{Declaration} -\BeginIndex{PLength}{toaddrheight}% -Diese Pseudolänge gibt die Höhe des Anschriftenfeldes einschließlich der -Versandart an. Ist keine Versandart angegeben, so wird die Anschrift vertikal -innerhalb dieses Feldes zentriert. Ist eine Versandart angegeben, so wird die -Anschrift unterhalb der Versandart vertikal im Rest des Anschriftenfeldes -zentriert.% -\EndIndex{PLength}{toaddrheight} - -\begin{Declaration} - \PLength{toaddrwidth} -\end{Declaration} -\BeginIndex{PLength}{toaddrwidth}% -Diese Pseudolänge gibt die Breite des Anschriftfensters an. Diese wird -in den vordefinierten \File{lco}-Dateien entsprechend der -unterschiedlichen Normen unterschiedlich eingestellt. Typische Werte -liegen zwischen 70\Unit{mm} und 100\Unit{mm}. -\begin{Example} - Angenommen, Sie haben das Problem, dass Ihr Drucker einen sehr - breiten unbedruckbaren rechten oder linken Rand von 15\Unit{mm} - besitzt. Dadurch kann bei Option \Option{SN} der Briefkopf, die - Absenderergänzung und die Anschrift nicht komplett gedruckt - werden. Sie erstellen daher eine neue \File{lco}-Datei mit folgendem - Inhalt: -\begin{lstlisting} - \ProvidesFile{SNmmarg.lco} - [2002/06/04 v0.1 my own lco] - \LoadLetterOption{SN} - \@addtoplength{toaddrwidth}{% - -\useplength{toaddrhpos}} - \@setplength{toaddrhpos}{-15mm} - \@addtoplength{toaddrwidth}{% - \useplength{toaddrhpos}} - \endinput -\end{lstlisting} - Bis Sie sich einen Drucker mit kleineren Rändern zugelegt haben, - verwenden Sie dann \Option{SNmmarg} an Stelle von \Option{SN}. -\end{Example} -% -\EndIndex{PLength}{toaddrwidth}% - - -\begin{Declaration} - \PLength{toaddrindent} -\end{Declaration} -\BeginIndex{PLength}{toaddrindent}% -Manchmal will man, dass die Anschrift nicht am linken Rand des -Anschriftfensters beginnt und bis zum rechten Rand des Fensters reicht, -sondern ein wenig eingezogen wird. Der Wert dieses Einzugs kann über die -Pseudolänge \PLength{toaddrindent} festgelegt werden. Typischerweise ist -dieser Wert jedoch 0\Unit{pt}. -% -\EndIndex{PLength}{toaddrindent}% - - -\begin{Declaration} - \Variable{backaddress}\\ - \Variable{backaddressseparator}\\ - \PLength{backaddrheight} -\end{Declaration} -\BeginIndex{FontElement}{backaddress}% -\BeginIndex{Variable}{backaddress}% -\BeginIndex{Variable}{backaddressseparator}% -\BeginIndex{PLength}{backaddrheight}% -Bei Fensterbriefumschlägen wird der Absender häufig in einer kleinen Schrift -einzeilig über der Empfängeradresse ausgegeben. Diese Absenderangabe nennt man -Rücksendeadresse. Die Rücksendeadresse wird mit einer horizontalen Linie -abgetrennt. Der Inhalt der Rücksendeadresse\Index{Rücksendeadresse} wird -normalerweise automatisch aus den Variablen \Variable{fromname} und -\Variable{fromaddress} gebildet. Innerhalb der Rücksendeadresse wird der -doppelte Backslash durch den Inhalt der Variablen -\Variable{backaddressseparator} ersetzt. Vordefiniert ist hierbei ein Komma, -gefolgt von einem nicht umbrechbaren Leerzeichen. - -Die Höhe, die innerhalb des Anschriftfensters für die Rücksendeadresse zur -Verfügung steht, ist in der Pseudolänge \PLength{backaddrheight} abgelegt. Der -Wert wird in den vordefinierten \File{lco}-Dateien typischerweise auf -5\Unit{mm} eingestellt. Ob die Rücksendeadresse überhaupt gesetzt wird, -bestimmt der Anwender mit den Optionen \Option{addrfield} (siehe -\autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.addrfield}) und \Option{backaddress} (siehe -\autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.backaddress}). Die Schriftart der -Rücksendeadresse kann über das Element\ChangedAt{v2.95}{\Class{scrlttr2}} -\FontElement{backaddress} geändert werden (siehe \autoref{sec:scrlttr2.font}, -\autopageref{sec:scrlttr2.font}). Für das Element ist \Macro{sffamily} -voreingestellt (siehe \autoref{tab:scrlttr2.AddresseeElements}), wobei zuvor -noch auf \Macro{scriptsize} umgeschaltet wird. -% -\EndIndex{FontElement}{backaddress}% -\EndIndex{PLength}{backaddrheight}% -\EndIndex{Variable}{backaddress}% -\EndIndex{Variable}{backaddressseparator}% - - -\begin{Declaration} - \Variable{specialmail}\\ - \PLength{specialmailindent}\\ - \PLength{specialmailrightindent} -\end{Declaration} -\BeginIndex{Variable}{specialmail}% -\BeginIndex{PLength}{specialmailindent}% -\BeginIndex{PLength}{specialmailrightindent}% -Zwischen Rücksendeadresse und Empfängeradresse kann noch eine optionale -Versandart\Index{Versandart} gesetzt werden. Diese wird genau dann gesetzt, -wenn die Variable \Variable{specialmail} einen Inhalt hat. Die Ausrichtung -wird mit Hilfe der Pseudolängen \PLength{specialmailindent} und -\PLength{specialmailrightindent} festgelegt. Diese geben den linken und -rechten Einzug der Zeile an. In den vordefinierten \File{lco}-Dateien ist -\PLength{specialmailindent} auf den dehnbaren Wert \Macro{fill} gesetzt, -während \PLength{specialmailrightindent} auf 1\Unit{em} eingestellt ist. Damit -wird die Versandart 1\Unit{em} vom rechten Rand des Anschriftfensters -gesetzt. Die voreingestellte Schriftart des -Elements\ChangedAt{v2.97c}{\Class{scrlttr2}} -\FontElement{specialmail}\IndexFontElement{specialmail}, die Sie -\autoref{tab:scrlttr2.AddresseeElements} entnehmen können, kann mit Hilfe der -Anweisungen aus \autoref{sec:scrlttr2.font}, ab -\autopageref{sec:scrlttr2.font}, verändert werden. -% -\EndIndex{PLength}{specialmailindent}% -\EndIndex{PLength}{specialmailrightindent}% -\EndIndex{Variable}{specialmail}% - -\begin{table} - \centering - \begin{tabular}{ll} - \toprule - Element & Voreinstellung \\ - \midrule - \FontElement{addressee}\IndexFontElement{addressee} & \\ - \FontElement{backaddress}\IndexFontElement{backaddress} & \Macro{sffamily} - \\ - \FontElement{specialmail}\IndexFontElement{specialmail} & \\ - \FontElement{toaddress}\IndexFontElement{toaddress} & \\ - \FontElement{toname}\IndexFontElement{toname} & \\ - \bottomrule - \end{tabular} - \caption{Schriftvoreinstellungen für die Elemente des Anschriftfensters} - \label{tab:scrlttr2.AddresseeElements} -\end{table} - -\begin{Declaration} - \Variable{toname}\\ - \Variable{toaddress} -\end{Declaration} -\BeginIndex{Variable}{toname}% -\BeginIndex{Variable}{toaddress}% -Diese beiden Variablen, die den Namen und die Adresse des Empfängers -beinhalten, werden normalerweise nicht direkt vom Anwender gesetzt. Vielmehr -gewinnt sie \Class{scrlttr2} direkt aus dem \PName{Empfänger}-Argument der -\Environment{letter}-Umgebung\IndexEnv{letter}. Beachten Sie auch hier den -wichtigen Hinweis zur Absenderadresse aus \autoref{sec:scrlttr2.firstHead}, -\autopageref{desc:scrlttr2.variable.fromname}. Die voreingestellte -Schriftarten können\ChangedAt{v2.97c}{\Class{scrlttr2}} über die Anweisungen -aus \autoref{sec:scrlttr2.font}, ab \autopageref{sec:scrlttr2.font}, verändert -werden. Dabei existieren drei Elemente. Zunächst gibt es das Element -\FontElement{addressee}\IndexFontElement{addressee}, das generell für die -Anschrift zuständig ist. Dazu gibt es die Elemente -\FontElement{toname}\IndexFontElement{toname} und -\FontElement{toaddress}\IndexFontElement{toaddress}, die sich nur auf den -Namen bzw. die Adresse des Empfängers beziehen. Für \FontElement{toname} und -\FontElement{toaddress} können also Abweichungen von der Einstellung für -\FontElement{addressee} definiert werden. -% -\EndIndex{Variable}{toname}% -\EndIndex{Variable}{toaddress}% - - -\begin{Declaration} - \XMacro{begin}\PParameter{\Environment{letter}}% - \OParameter{Optionen}\Parameter{Anschrift}\\ - \quad\dots\\ - \XMacro{end}\PParameter{letter} -\end{Declaration} -\BeginIndex{Env}{letter}% -Die Briefumgebung, \Environment{letter}, ist nur einer der zentralen Dreh- und -Angelpunkte der Briefklasse. Als Besonderheit kann man bei \Class{scrlttr2} -der Briefumgebung zusätzliche \PName{Optionen} mit auf den Weg geben. Diese -werden dann intern per \Macro{KOMAoptions}-Anweisung ausgeführt. - -Die \PName{Anschrift} wird als obligatorischer Parameter an die Umgebung -übergeben. Dabei dient der doppelte Backslash als Trennzeichen zwischen -einzelnen Teilen der \PName{Anschrift}. Diese einzelnen Teile werden im -Anschriftfeld als einzelne Zeilen ausgegeben. Dennoch sollte der doppelte -Backslash hier nicht als fester Zeilenumbruch verstanden werden. Absätze, -vertikaler Leerraum und Ähnliches sind in der Anschrift nicht erlaubt. Sie -können zu unerwarteten Effekten und Fehlermeldungen führen. Dies ist übrigens -bei der Standardbriefklasse genauso. - -Die \Environment{letter}-Umgebung beginnt den Brief selbst noch nicht. Dies -geschieht erst mit der \Macro{opening}-Anweisung\IndexCmd{opening}.% -\EndIndex{Env}{letter}% - - -\begin{Declaration} - \Macro{AtBeginLetter}\Parameter{Anweisungen} -\end{Declaration} -\BeginIndex{Cmd}{AtBeginLetter}% -Wie in \cite{latex:clsguide} erwähnt, gibt es bei \LaTeX{} die Möglichkeit, an -bestimmten Stellen während des \LaTeX-Laufs eines Dokuments zusätzliche -\PName{Anweisungen} ausführen zu lassen. Diesem Zweck dienen beispielsweise -die Anweisungen \Macro{AtBeginDocument} und \Macro{AtEndOfClass}. Man nennt -solche Eingriffspunkte auch \emph{hooks}\Index{hook=\emph{hook}}, also -Haken\Index{Haken}. Die Klasse \Class{scrlttr2} fügt einen weiteren Haken -hinzu, der mit \Macro{AtBeginLetter} mit Fleisch versehen werden kann. Wie man -schon daran erkennt, dass Anweisungen für die Haken nicht in -\cite{latex:usrguide} sondern in \cite{latex:clsguide} dokumentiert sind, sind -diese Anweisungen eigentlich eher für Paket- und Klassenautoren gedacht. Bei -der Briefklasse kann es jedoch eine sinnvolle Anwendung für -\Macro{AtBeginLetter} auch auf Benutzerebene geben. Das folgende Beispiel -zeigt dies. -% -\begin{Example} - Angenommen, Sie haben mehrere Briefe in einem Dokument. Sie verwenden - außerdem eine eigene Anweisung, um in den Briefen einen Fragebogen - zu setzen. Dabei werden die Fragen automatisch mit Hilfe eines - Zählers nummeriert. Da \Class{scrlttr2} dieser Zähler nicht bekannt - ist, würde er auch im Gegensatz etwa zur Seitenzahl am Anfang eines - neuen Briefes nicht zurückgesetzt. Wenn jeder Brief zehn Fragen - beinhaltet, hätte damit die erste Frage im fünften Brief die Nummer - 41 statt der Nummer 1. Sie lösen das, indem Sie \Class{scrlttr2} - mitteilen, dass am Anfang jeden Briefes der Zähler zurückgesetzt - werden soll: -\begin{lstlisting} - \newcounter{Frage} - \newcommand{\Frage}[1]{% - \refstepcounter{Frage}\par - \@hangfrom{\makebox[2em][r]{\theFrage:~}}{#1}} - \AtBeginLetter{\setcounter{Frage}{0}} -\end{lstlisting} - Damit hat dann auch die erste Frage im 1001. Brief wieder die Nummer 1. - Selbstverständlich gehören die entsprechenden Definitionen und Anweisungen - entweder mit \Macro{makeatletter} und \Macro{makeatother} geklammert (siehe - \cite{DANTE:FAQ}) in den Vorspann des Briefdokuments (siehe - \autoref{sec:scrlttr2.document} sowie \autoref{fig:scrlttr2.document}, - \autopageref{fig:scrlttr2.document}) oder in ein eigenes Paket oder eine - \File{lco}-Datei (siehe \autoref{sec:scrlttr2.lcoFile}). -\end{Example} -% -\EndIndex{Cmd}{AtBeginLetter}% -% -\EndIndex{}{Anschrift}% - -\subsection{Absenderergänzungen} -\label{sec:scrlttr2.locationField} -\BeginIndex{}{Absenderergaenzung=Absenderergänzung}% - -Insbesondere bei Geschäftsbriefen reicht der Platz im Briefkopf und im -Seitenfuß oftmals nicht aus, um alle Angaben des Absenders -unterzubringen. Für die zusätzlichen Informationen wird oft der Platz -neben der Anschrift genutzt. In dieser Anleitung wird dieses Feld -\emph{Absenderergänzung} genannt. - - -\begin{Declaration} - \PLength{locheight}\\ - \PLength{lochpos}\\ - \PLength{locvpos}\\ - \PLength{locwidth} -\end{Declaration} -\BeginIndex{PLength}{locwidth}% -\BeginIndex{PLength}{locheight}% -\BeginIndex{PLength}{lochpos}% -\BeginIndex{PLength}{locvpos}% -Die Pseudolängen \PLength{locwidth} und -\PLength{locheight}\ChangedAt{v2.97d}{\Class{scrlttr2}} geben die Breite und -Höhe der Absenderergänzung an. Die Pseudolängen \PLength{lochpos} und -\PLength{locvpos} geben die Abstände von der rechten und der oberen -Papierkante an. Diese Werte werden in den vordefinierten \File{lco}-Dateien -typischerweise auf 0\Unit{pt} gesetzt. Dieser Wert nimmt eine Sonderstellung -ein. Er bedeutet, dass die Werte erst bei \Macro{opening}\IndexCmd{opening} an -Hand der Breite des Papiers, der Breite des Anschriftfensters und dem Abstand -des Anschriftfensters von der linken und oberen Papierkante gesetzt -werden. Dabei findet auch die Option \Option{locfield} (siehe -\autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.locfield}) Berücksichtigung. Wie auch bei -\PLength{toaddrhpos} nehmen negative Werte für \PLength{lochpos} eine -Sonderstellung ein. Es wird dann statt des Abstandes vom rechten Papierrand -der Betrag von \PLength{lochpos} als Abstand vom linken Papierrand -verwendet. Die Bedeutung ist also genau umgekehrt zu der bei -\PLength{toaddrhpos} (siehe \autoref{sec:scrlttr2.addressee}, -\autopageref{desc:scrlttr2.plength.toaddrhpos}). -% -\EndIndex{PLength}{locwidth} -\EndIndex{PLength}{locheight}% -\EndIndex{PLength}{lochpos}% -\EndIndex{PLength}{locvpos}% - - -\begin{Declaration} - \Variable{location} -\end{Declaration} -\BeginIndex{Variable}{location}% -Der Inhalt der Absenderergänzung wird mit der Variablen \Variable{location} -festgelegt. Für den Inhalt dieser Variablen dürfen auch Formatieranweisungen -wie \Macro{raggedright} verwendet werden. Es ist zu beachten, dass je nach -Einstellung der Optionen \Option{fromalign} und \Option{fromlogo} ein Teil der -Absenderergänzung bereits durch das Logo oder den Absender belegt wird (siehe -\autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.fromalign} und -\autopageref{desc:scrlttr2.option.fromlogo}). -% -\begin{Example} - Angenommen, Sie wollen in der Absenderergänzung die Gesellschafter, - den Geschäftsführer und den Gerichtsstand Ihrer Firma angeben. Dies - kann beispielsweise wie folgt geschehen: -\begin{lstlisting} - \KOMAoptions{locfield=wide} - \setkomavar{location}{\raggedright - \textbf{Gesellschafter:}\\ - \quad Hugo Mayer\\ - \quad Bernd Müller\\[1ex] - \textbf{Geschäftsführerin:}\\ - \quad Liselotte Mayer\\[1ex] - \textbf{Gerichtsstand:}\\ - \quad Hinterdupfeldingen - } -\end{lstlisting} - Die Option \Option{locfield=wide} setzen Sie, damit die ganzen - Angaben horizontal auch wirklich passen. Solche Angaben können Sie - übrigens auch zusammen mit den allgemeinen Absenderangaben in Ihre - eigene \File{lco}-Datei packen. -\end{Example} -% -\EndIndex{Variable}{location}% - -\EndIndex{}{Absenderergaenzung=Absenderergänzung}% - - -\subsection{Geschäftszeile} -\label{sec:scrlttr2.refLine}% -\BeginIndex{}{Geschäftszeile}% - -Insbesondere bei Geschäftsbriefen findet sich häufig eine Zeile mit Angaben -wie Namenskürzeln\Index{Kürzel}, Durchwahl\Index{Durchwahl}, -Kunden-\Index{Kundennummer} und Rechnungsnummer\Index{Rechnungsnummer} oder -zur Bezugnahme auf ein früheres Schreiben. Diese Zeile wird in dieser -Anleitung \emph{Geschäftszeile} genannt. Die Geschäftszeile kann auch länger -als eine Zeile sein und wird nur gesetzt, wenn mindestens eine der Variablen -für die Geschäftszeile nicht leer ist. Es werden nur die Felder gesetzt, -die nicht leer sind. Um ein scheinbar leeres Feld zu setzen, muss man der -entsprechenden Variablen einen scheinbar leeren Inhalt, beispielsweise ein -festes Leerzeichen oder \Macro{null}, geben. Wird auf die Geschäftszeile -verzichtet, so werden an ihrer Stelle Bezeichnung und Inhalt der Variablen -\Variable{date} ausgegeben. Informationen, wie Variablen zur Geschäftszeile -hinzugefügt oder entfernt werden, sind in \autoref{sec:scrlttr2.variables}, -\autopageref{desc:scrlttr2.macro.removereffields} zu finden. - - -\begin{Declaration} - \PLength{refvpos} -\end{Declaration} -\BeginIndex{PLength}{refvpos}% -Diese Pseudolänge gibt den Abstand der Geschäftszeile von der Oberkante -des Papiers an. Ihr Wert wird in den vordefinierten \File{lco}-Dateien -unterschiedlich eingestellt. Typische Werte liegen zwischen -80{,}5\Unit{mm} und 98{,}5\Unit{mm}. -% -\EndIndex{PLength}{refvpos}% - - -\begin{Declaration} - \PLength{refwidth}\\ - \PLength{refhpos} -\end{Declaration} -\BeginIndex{PLength}{refwidth}% -\BeginIndex{PLength}{refhpos}% -Die Pseudolänge \PLength{refwidth} gibt die Breite an, die für die -Geschäftszeile zur Verfügung steht. Ihr Wert wird in den vordefinierten -\File{lco}-Dateien typischerweise auf 0\Unit{pt} gesetzt. Dieser Wert hat eine -besondere Bedeutung. Es wird damit keineswegs festgelegt, dass für die -Geschäftszeile keine Breite zur Verfügung steht. Vielmehr bedeutet der Wert, -dass die verfügbare Breite erst innerhalb von -\Macro{opening}\IndexCmd{opening} ermittelt wird. Die dort ermittelte Breite -richtet sich dann nach der Einstellung der Option \Option{refline} (siehe -\autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.refline}). Gleichzeitig wird dann auch -\PLength{refhpos} entsprechend der Option gesetzt. Bei -\Option{refline=}\PValue{wide} wird die Geschäftszeile zentriert, wohingegen -sie bei \Option{refline=}\PValue{narrow} am Satzspiegel links ausgerichtet -wird. - -Ist \PLength{refwidth} von Null verschieden, wird die Breite der -Geschäftszeile also nicht von der Option \Option{refline} bestimmt, so gibt -\PLength{refhpos} den Abstand der Geschäftszeile von der linken Papierkante -an. Ist dieser Abstand Null, so wird die Geschäftszeile so ausgerichtet, dass -das Verhältnis zwischen ihrem Abstand von der linken Papierkante zu ihrem -Abstand von der rechten Papierkante dem Verhältnis zwischen dem Abstand des -Satzspiegels von der linken Papierkante zu seinem Abstand von der rechten -Papierkante entspricht. Bei auf dem Papier horizontal zentriertem Satzspiegel -wird also auch die Geschäftszeile zentriert. - -In der Regel werden diese Sonderfälle für den normalen Anwender von geringem -Interesse sein. Die einfachste Regel lautet hier: Entweder wird -\PLength{refwidth} auf Null belassen und die Breite und Ausrichtung der -Geschäftszeile über die Option \Option{refline} überlassen, oder sowohl -\PLength{refwidth} als auch \PLength{refhpos} werden vom Anwender vorgegeben. -% -\EndIndex{PLength}{refwidth}% -\EndIndex{PLength}{refhpos}% - - -\begin{Declaration} - \PLength{refaftervskip} -\end{Declaration} -\BeginIndex{PLength}{refaftervskip}% -Diese Pseudolänge gibt den vertikalen Abstand an, der nach der -Geschäftszeile eingefügt werden soll. Der Wert wird in den -vordefinierten \File{lco}-Dateien eingestellt. Er wirkt sich -unmittelbar auf die Höhe des Textbereiches der ersten Seite aus. Der -typische Wert liegt zwischen einer und zwei Zeilen. -% -\EndIndex{PLength}{refaftervskip}% - - -\begin{Declaration} - \Variable{yourref}\\ - \Variable{yourmail}\\ - \Variable{myref}\\ - \Variable{customer}\\ - \Variable{invoice} \\ - \Variable{date} -\end{Declaration} -\BeginIndex{Variable}{yourref}% -\BeginIndex{Variable}{yourmail}% -\BeginIndex{Variable}{myref}% -\BeginIndex{Variable}{customer}% -\BeginIndex{Variable}{invoice}% -\BeginIndex{Variable}{date}% -\looseness=-1 Bei diesen Variablen handelt es sich um typische Felder der -Geschäftszeile. Ihre Bedeutung entnehmen Sie bitte -\autoref{tab:scrlttr2.variables} auf -\autopageref{tab:scrlttr2.variables}. Jede dieser Variablen hat -außerdem eine vordefinierte Bezeichnung, die in -\autoref{tab:scrlttr2.reflineTerm} zu finden ist. Die Breite des -Feldes, das zu jeder Variablen in der Geschäftszeile gehört, passt -sich automatisch der Bezeichnung und dem Inhalt an.% - - -\EndIndex{Variable}{yourref}% -\EndIndex{Variable}{yourmail}% -\EndIndex{Variable}{myref}% -\EndIndex{Variable}{customer}% -\EndIndex{Variable}{invoice}% -\EndIndex{Variable}{date}% -% -\begin{Declaration} - \Variable{place}\\ - \Variable{placeseparator} -\end{Declaration} -\BeginIndex{Variable}{place}% -\BeginIndex{Variable}{placeseparator}% -Wie bereits in der Einleitung dieses Abschnitts erwähnt wurde, kann die -Geschäftszeile auch entfallen. Dies geschieht, wenn alle Variablen der -Geschäftszeile bis auf das Datum leer sind. In diesem Fall wird statt des -Datums\Index{Datum} der Inhalt der Variablen für den Ort\Index{Ort}, -\Variable{place}, und der Inhalt der Variablen für das -Trennzeichens\Index{Trennzeichen}, \Variable{placeseparator}, gefolgt vom -Inhalt der Variablen für das Datum, \Variable{date}, gesetzt. Der -vordefinierte Inhalt des Trennzeichens ist dabei ein Komma gefolgt von einem -nicht umbrechbaren Leerzeichen. Ist der Ort leer, so wird auch das -Trennzeichen nicht gesetzt. Der vordefinierte Inhalt der Variablen -\Variable{date} ist \Macro{today}\IndexCmd{today} und hängt von der -Einstellung der Option \Option{numericaldate} ab (siehe -\autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.numericaldate}). -% -\EndIndex{Variable}{place}% -\EndIndex{Variable}{placeseparator}% -% -\EndIndex{}{Geschäftszeile}% - -\begin{table} - \centering - \caption[{Vordefinierte Bezeichnungen der Variablen der - Geschäftszeile}]{Vordefinierte Bezeichnungen der typischen Variablen der - Geschäftszeile unter Verwendung sprachabhängiger Anweisungen} - \begin{tabular}{lll} - \toprule - Name & Bezeichnung & bei deutscher Sprache \\ - \midrule - \Variable{yourref} & \Macro{yourrefname} & Ihr Zeichen \\ - \Variable{yourmail} & \Macro{yourmailname} & Ihr Schreiben vom \\ - \Variable{myref} & \Macro{myrefname} & Unser Zeichen \\ - \Variable{customer} & \Macro{customername} & Kundennummer \\ - \Variable{invoice} & \Macro{invoicename} & Rechnungsnummer \\ - \Variable{date} & \Macro{datename} & Datum \\ - \bottomrule - \end{tabular} - \label{tab:scrlttr2.reflineTerm} -\end{table} - - -\subsection{Titel und Betreff} -\label{sec:scrlttr2.titleSubject} -\begin{samepage} -Geschäftsbriefe werden häufig mit einem Betreff versehen. Dieser -Betreff beschreibt kurz den Vorgang oder den Aspekt, um den es sich -handelt. In der Regel sollte ein Betreff möglichst kurz und prägnant -sein und nicht über mehrere Zeilen gehen. Neben dem Betreff kann ein -Brief auch noch mit einem Titel versehen werden. Von einem Titel wird -normalerweise nur bei Mahnungen, Rechnungen und Ähnlichem Gebrauch -gemacht. -\end{samepage} - - -\begin{Declaration} - \Variable{title} -\end{Declaration} -\BeginIndex{Variable}{title}% -Bei \Class{scrlttr2} kann ein Brief zusätzlich mit einem -Titel\Index{Titel} versehen werden. Der Titel wird zentriert in -der Schriftgröße \Macro{LARGE} nach der Geschäftszeile ausgegeben. Die -für das Element \PValue{title} als -\Macro{normalcolor}\Macro{sffamily}\Macro{bfseries} voreingestellte -Schriftart kann mit Hilfe der Schnittstelle, die in -\autoref{sec:maincls.font} beschrieben ist, geändert werden. Dabei -sind auch Größenangaben erlaubt. -\begin{Example} - Angenommen, Sie schreiben eine Mahnung. Sie setzen einen - entsprechenden Titel: -\begin{lstlisting} - \setkomavar{title}{Mahnung} -\end{lstlisting} - Damit sollte der Empfänger die Mahnung auch als solche erkennen. -\end{Example} -% -\EndIndex{Variable}{title} - - -\begin{Declaration} - \Variable{subject}\\ - \Variable{subjectseparator} -\end{Declaration} -\BeginIndex{Variable}{subject}% -\BeginIndex{Variable}{subjectseparator}% -Soll ein Betreff\Index{Betreff} gesetzt werden, so geschieht dies, indem man -den Inhalt der Variablen \Variable{subject} entsprechend festlegt. Je nach -Einstellung der Option \Option{subject} kann dem Betreff eine Bezeichnung -vorangestellt werden und die vertikale Position des Betreffs verändert werden -(siehe \autoref{sec:scrlttr2.headoptions}, -\autopageref{desc:scrlttr2.option.subject}). Die vordefinierte Bezeichnung -ist \autoref{tab:scrlttr2.subjectTerm} zu entnehmen. Der vordefinierte Inhalt -des Trennzeichens\Index{Trennzeichen} \Variable{subjectseparator} besteht aus -einem Doppelpunkt, gefolgt von einem Leerzeichen. -% -\begin{table} - \centering - \caption{Vordefinierte Bezeichnungen der Variablen für den Betreff} - \begin{tabular}{lll} - \toprule - Name & Bezeichnung \\ - \midrule - \Variable{subject} & \Macro{usekomavar*}\PParameter{subjectseparator}% - \texttt{\%} \\ - & \texttt{\quad}% - \Macro{usekomavar}\PParameter{subjectseparator} \\ - \Variable{subjectseparator} & \Macro{subjectname} \\ - \bottomrule - \end{tabular} - \label{tab:scrlttr2.subjectTerm} -\end{table} - -Der Betreff wird in einer eigenen Schriftart\Index{Schriftart} -gesetzt. Um diese zu ändern, verwenden Sie die Benutzerschnittstelle, -die in \autoref{sec:maincls.font} beschrieben ist. Für das Element -\PValue{subject} ist -\Macro{normalfont}\Macro{normalcolor}\Macro{bfseries} die in der -Klasse \Class{scrlttr2} voreingestellte Schrift. -\begin{Example} - Angenommen, Sie schreiben als Vereinsvorstand einen Brief an ein - anderes Mitglied des Vorstands, in dem es um vereinsinterne - Angelegenheiten geht. Sie wollen dabei im Betreff deutlich machen, - dass es sich um einen Betreff handelt, ohne dass Sie eine - Bezeichnung mit Trennzeichen voranstellen. Sie könnten das wie folgt - lösen: -\begin{lstlisting} - \setkomavar{subject}[Betrifft ]{% - vereinsinterne Angelegenheiten} -\end{lstlisting} - Sie können es sich aber auch einfach machen: -\begin{lstlisting} - \setkomavar{subject}[]{% - Betrifft vereinsinterne Angelegenheiten} -\end{lstlisting} - Außerdem wollen Sie, dass der Betreff nicht nur fett sondern - auch in einer serifenlosen Schriftart erscheint: -\begin{lstlisting} - \addtokomafont{subject}{\sffamily} -\end{lstlisting} - Wie Sie sehen, ist das alles ganz einfach zu lösen. -\end{Example} -% -\EndIndex{Variable}{subject}% -\EndIndex{Variable}{subjectseparator}% - - -\subsection{Andere Angaben} -\label{sec:scrlttr2.other} -Sie finden hier Variablen und Einstellungen, die keinem anderen -Bereich der Briefeinleitung zugeordnet werden konnten, die jedoch in -diesen Abschnitt gehören. - - -\begin{Declaration} - \Variable{frombank} -\end{Declaration} -\BeginIndex{Variable}{frombank}% -Diese Variable nimmt derzeit eine Sonderstellung ein. Sie wird intern -bisher nicht verwendet. Sie kann jedoch beispielsweise vom Anwender -verwendet werden, um die Bankverbindung\Index{Bankverbindung} in das -Absenderergänzungsfeld oder den Fuß zu setzen. -% -\EndIndex{Variable}{frombank}% - - -\begin{Declaration} - \Macro{nexthead}\Parameter{Aufbau}\\ - \Macro{nextfoot}\Parameter{Aufbau} -\end{Declaration} -\BeginIndex{Cmd}{nexthead}% -\BeginIndex{Cmd}{nextfoot}% -In den meisten Fällen werden die Möglichkeiten, die \Class{scrlttr2} -über Optionen und Variablen für die Gestaltung des -Seitenkopfes\Index{Kopf} und -fußes\Index{Fuß} auf -Folgeseiten\Index{Folgeseite} zur Verfügung stellt, vollkommen -ausreichen. Dies umso mehr, als man zusätzlich mit \Macro{markboth} -und \Macro{markright} die Möglichkeit hat, die Angaben zu ändern, die -\Class{scrlttr2} in den Kopf setzt. Folgeseiten im Sprachgebrauch -dieser Anleitung sind alle Briefseiten abgesehen von der ersten. Die -Anweisungen \Macro{markboth}\IndexCmd{markboth} und -\Macro{markright}\IndexCmd{markright} können insbesondere mit dem -Seitenstil\Index{Seitenstil} -\PValue{myheadings}\IndexPagestyle{myheadings} verwendet werden. Bei -Verwendung des Paketes \Package{scrpage2}\IndexPackage{scrpage2} gilt -dies natürlich auch für den Seitenstil -\PValue{scrheadings}\IndexPagestyle{scrheadings}. Dort steht außerdem -die Anweisung \Macro{markleft}\IndexCmd{markleft} zur Verfügung. - -In einigen wenigen Fällen will man jedoch den Kopf oder Fuß der Folgeseiten -ähnlich dem Briefbogen freier gestalten. In diesen Fällen muss auf -die vordefinierten Möglichkeiten, die per Option -\Option{pagenumber}\IndexOption{pagenumber} (siehe -\autoref{sec:scrlttr2.layout}, \autopageref{desc:scrlttr2.option.pagenumber}) -auswählbar sind, verzichtet werden. Stattdessen gestaltet man sich den Kopf -und Fuß der Folgeseiten frei. Dazu definiert man den gewünschten -\PName{Aufbau} mit der Anweisung \Macro{nexthead} beziehungsweise -\Macro{nextfoot}. Innerhalb von \Macro{nexthead} und \Macro{nextfoot} können -beispielsweise mit Hilfe der \Macro{parbox}-Anweisung (siehe -\cite{latex:usrguide}) mehrere Boxen neben- und untereinander gesetzt werden. -Einem versierten Anwender sollte es so möglich sein, eigene Seitenköpfe und --füße zu gestalten. Natürlich kann im Argument \PName{Aufbau} mit Hilfe von -\Macro{usekomavar} auch auf Variablen zugegriffen werden. -% -\EndIndex{Cmd}{nexthead}% -\EndIndex{Cmd}{nextfoot}% - - -\section{Der Text} -\label{sec:scrlttr2.text} - -Im Gegensatz zu einem Artikel, einem Bericht oder einem Buch besitzt -ein Brief normalerweise keine Kapitel- oder Abschnittseinteilung, -keine Gleitumgebungen mit Tabellen und Abbildungen, -weder Inhaltsverzeichnis noch Verzeichnisse für Gleitumgebung, -Literatur, Index, Glossary oder Ähnliches. Der Brief"|text besteht im -wesentlichen aus einer Anrede und dem eigentlichen Text. Er wird -gefolgt von einem Schlussgruß und eventuell einem Nachsatz und -verschiedenen Auf"|listungen nach dem Gruß. - - -\subsection{Anrede} -\label{sec:scrlttr2.opening} - -\begin{Explain} - Bei maschinell erstellten Briefen wurde früher häufig auf eine Anrede - verzichtet. Das lag daran, dass die Möglichkeiten für individualisierte - Serienbriefe noch kaum vorhanden waren. Heute sind persönliche Anreden auch - bei massenhaft erzeugten Werbebriefen üblich. -\end{Explain} - -\begin{Declaration} - \Macro{opening}\Parameter{Anrede} -\end{Declaration} -\BeginIndex{Cmd}{opening}% -Dies ist eine der wichtigsten Anweisungen in \Class{scrlttr2}. Vordergründig -wird damit die \PName{Anrede}\Index{Anrede} des Briefes, beispielsweise "`Sehr -geehrte Frau \dots"', gesetzt. Tatsächlich setzt diese Anweisung aber auch die -Faltmarken\Index{Faltmarke}, den Briefkopf\Index{Briefkopf}, die -Anschrift\Index{Anschrift}, die Absenderergänzung, die -Geschäftszeile\Index{Geschäftszeile}, den Titel\Index{Titel}, den -Betreff\Index{Betreff} und den Seitenfuß\Index{Kopf}\Index{Fuß}, also die -Mehrzahl der Felder, die mit Optionen und Variablen eingestellt werden. Kurz -gesagt: ohne Anrede kein Brief. -% -\EndIndex{Cmd}{opening}% - - -\subsection{Fußnoten} -\label{sec:scrlttr2.footnotes} - -Fußnoten\Index{Fussnoten=Fußnoten} sollte man in Briefen noch sehr -viel sparsamer verwenden als in anderen Dokumenten. Dennoch verfügt -\Class{scrlttr2} bezüglich der Fußnoten über alle Mechanismen, die in -\autoref{sec:maincls.footnotes} auch für die Hauptklassen beschrieben -sind. Diese werden daher hier nicht erneut aufgeführt. - - -\subsection{Listen} -\label{sec:scrlttr2.lists} - -Listen\Index{Listen} haben in Briefen die gleiche Berechtigung wie in -anderen Dokumenten auch. Deshalb verfügt \Class{scrlttr2} -diesbezüglich über dieselben Möglichkeiten, die in -\autoref{sec:maincls.lists} auch für die Hauptklassen beschrieben -sind. Diese werden daher hier nicht erneut aufgeführt. - - -\subsection{Randnotizen} -\label{sec:scrlttr2.marginNotes} - -Randnotizen\Index{Randnotizen} sind in Briefen eher unüblich. Daher -wird in \Class{scrlttr2} die Option \Option{mpinclude} auch nicht -aktiv unterstützt. Dennoch verfügt die Klasse bezüglich der -Randnotizen über alle Mechanismen, die in -\autoref{sec:maincls.marginNotes} auch für die Hauptklassen -beschrieben sind. Diese werden daher hier nicht erneut aufgeführt. - - -\subsection{Textauszeichnung} -\label{sec:scrlttr2.emphasis} - -Textauszeichnungen\Index{Schriftart} haben in Briefen denselben Stellenwert -wie in anderen Dokumenten. Obwohl leider immer wieder das Gegenteil zu -beobachten ist, empfehle ich daher auch in Briefen insbesondere mit aktiven -Auszeichnungen eher sparsam umzugehen. Auch Briefe sollen gelesen werden. Ein -Brief in dem jedes Wort in einer anderen Schrift erscheint, kann nicht gelesen -werden. - -Die Briefklasse \Class{scrlttr2} verfügt über dieselben Möglichkeiten -der Textauszeichnung, die in \autoref{sec:maincls.emphasis} für -die Hauptklassen beschrieben sind. Diese werden daher hier nicht -erneut aufgeführt. - - -\section{Der Schlussteil} -\label{sec:scrlttr2.backend} - -Der Schlussteil eines Briefes besteht immer aus einer -Grußfloskel\Index{Gruß}\Index{Schlussgruß}. Selbst bei maschinell erstellten -Briefen ohne Unterschrift\Index{Unterschrift} findet sich diese in der Regel. -Manchmal besteht sie dann aus einem Satz wie "`Dieser Brief wurde maschinell -erstellt und ist ohne Unterschrift gültig"'. Manchmal wird ein solcher Satz -als Signatur\Index{Signatur} verwendet. Auf die Grußformel können noch ein -Nachsatz und verschiedene Auf"|listungen folgen. - - -\subsection{Schlussgruß} -\label{sec:scrlttr2.closing} - -Der Schlussgruß\Index{Gruß}\Index{Schlussgruß} eines Briefes besteht aus -mehreren Teilen. Neben der Grußformel selbst gibt es noch die Unterschrift -und die Signatur, eine Art Erläuterung zur Unterschrift. - -\begin{Declaration} - \Variable{signature} -\end{Declaration} -\BeginIndex{Variable}{signature}% -Die Variable \Variable{signature}\Index{Signatur} nimmt eine Art -Erläuterung zur Unterschrift\Index{Unterschrift} auf. Ihr Inhalt ist -mit \Macro{usekomavar}\PParameter{fromname} vordefiniert. Eine solche -Erläuterung kann auch mehrzeilig sein. Die einzelnen Zeilen sollten -dann mit doppeltem Backslash voneinander getrennt werden. Absätze -innerhalb der Erläuterung sind jedoch nicht gestattet. -% -\EndIndex{Variable}{signature}% - -\begin{Declaration} - \Macro{closing}\Parameter{Grußfloskel} -\end{Declaration} -\BeginIndex{Cmd}{closing}% -Mit der Anweisung \Macro{closing} wird nicht nur die -\PName{Grußfloskel}\Index{Gruß}\Index{Schlussgruß}, sondern auch der Inhalt -der Variablen \Variable{signature} unter den Brief gesetzt. Die -\PName{Grußfloskel} kann auch mehrzeilig sein. Die einzelnen Zeilen sollten -dann mit doppeltem Backslash voneinander getrennt werden. Absätze innerhalb -der \PName{Grußfloskel} sind jedoch nicht gestattet. -% -\EndIndex{Cmd}{closing}% - - -\begin{Declaration} - \PLength{sigindent}\\ - \PLength{sigbeforevskip}\\ - \Macro{raggedsignature} -\end{Declaration} -\BeginIndex{PLength}{sigindent}% -\BeginIndex{PLength}{sigbeforevskip}% -\BeginIndex{Cmd}{raggedsignature}% -Grußfloskel\Index{Gruß}\Index{Signatur}\Index{Schlussgruß} und Erläuterung der -Unterschrift\Index{Unterschrift} werden innerhalb einer Box gesetzt. Die -Breite dieser Box wird durch die längste Zeile innerhalb von Grußfloskel und -Erläuterung bestimmt. - -Die Box wird mit dem durch die Pseudolänge \PLength{sigindent} bestimmen -Einzug gesetzt. In den vordefinierten \File{lco}-Dateien ist der Einzug auf -0\Unit{mm} gesetzt. - -Durch den Befehl \Macro{raggedsignature} wird die Ausrichtung innerhalb der -Box bestimmt. In den vordefinierten \File{lco}-Dateien ist die Anweisung -entweder auf \Macro{centering} (alle außer \Option{KOMAold}) oder auf -\Macro{raggedright} (\Option{KOMAold}) gesetzt. Um innerhalb der Box -beispielsweise eine linksbündige oder rechtsbündige Ausrichtung zu erhalten, -kann der Befehl in gleicher Weise umdefiniert werden wie \Macro{raggedsection} -(siehe das entprechende Beispiel in \autoref{sec:maincls.structure}, -\autopageref{desc:maincls.macro.raggedsection}). - -Zwischen Grußfloskel und Erläuterung wird ein vertikaler Abstand -eingefügt, der mit der Pseudolänge \PLength{sigbeforevskip} festgelegt -ist. In den vordefinierten \File{lco}-Dateien ist der Wert auf zwei -Zeilen eingestellt. In diese Lücke setzen Sie dann Ihre Unterschrift. -\begin{Example} - Sie schreiben als Vorstand des Vereins "`Rotkehlchen e.\,V."' einen - Brief an die Mitglieder. Dabei wollen Sie einerseits nochmals - verdeutlichen, dass Sie im Namen des Vorstands schreiben, zum - anderen wollen sie ihre Position im Vorstand mit angeben. Dies ist - beispielsweise wie folgt möglich: -\begin{lstlisting} - \setkomavar{signature}{Karl-Heinz zu Krähenfeld\\ - {\small (2. Vorsitzender "`Rotkehlchen e.\,V."')}} - \closing{Mit freundlichen Grüßen\\ - (für den Vorstand)} -\end{lstlisting} - Natürlich können Sie das Setzen der Variablen \Variable{signature} - auch in eine Ihrer privaten \File{lco}-Dateien aufnehmen. Ansonsten - empfiehlt es sich, auch diese Variable in der Briefeinleitung (siehe - \autoref{sec:scrlttr2.startLetter}) zu setzen. -\end{Example} -% -\EndIndex{PLength}{sigindent}% -\EndIndex{PLength}{sigbeforevskip}% -\EndIndex{Cmd}{raggedsignature}% - - - -\subsection{Nachsatz, Verteiler und Anlagen} -\label{sec:scrlttr2.afterClosing} - -Nach dem Gruß können bei Briefen noch eine ganze Reihe von Angaben -folgen. Neben dem Postskriptum gehören dazu vor allem Verteiler und -ein Hinweis auf Anlagen. - -\begin{Explain}% -\begin{Declaration} - \Macro{ps} -\end{Declaration}% -\BeginIndex{Cmd}{ps}% - Als Briefe noch von Hand geschrieben wurden, war das Postskriptum - sehr beliebt. Es handelte sich bei diesen Nachsätzen ursprünglich um - Angaben, die im eigentlichen Brief vergessen wurden. Bei Briefen, - die mit \LaTeX{} geschrieben werden, ist es natürlich einfach, - Vergessenes nachträglich in den Brief einzuarbeiten. Trotzdem ist - das Postskriptum noch immer sehr beliebt, kann man damit doch sehr - schön noch einmal auf ganz andere äußerst wichtige oder eigentlich - ganz unwichtige Dinge hinweisen. -\end{Explain} -Diese Anweisung schaltet lediglich auf das -Postskriptum\Index{Postskriptum} um. Dazu wird ein neuer Absatz -begonnen und ein vertikaler Abstand -- in der Regel zur Signatur -- -eingefügt. Auf die Anweisung \Macro{ps} kann beliebiger Text folgen. -Dabei muss der Anwender auch selbst entscheiden, ob er den Nachsatz -etwa mit der Abkürzung "`PS:"', die übrigens ohne Punkt gesetzt wird, -beginnen will. Die Klasse \Class{scrlttr2} setzt diese Abkürzung weder -automatisch noch optional. -% -\EndIndex{Cmd}{ps} - - -\begin{Declaration} - \Macro{cc}\Parameter{Verteiler}\\ - \Variable{ccseparator} -\end{Declaration} -\BeginIndex{Cmd}{cc}% -\BeginIndex{Variable}{ccseparator}% -Ein \PName{Verteiler}\Index{Verteiler} kann mit der Anweisung -\Macro{cc} gesetzt werden. Der \PName{Verteiler} wird der Anweisung -dabei als Argument übergeben. Wenn der Inhalt der Variablen -\Variable{ccseparator}\Index{Trennzeichen} nicht leer ist, wird dem -\PName{Verteiler} die Bezeichnung und der Inhalt dieser Variablen -vorangestellt. Der \PName{Verteiler} selbst wird dann um die -entsprechende Breite eingerückt ausgegeben. Es empfiehlt sich, den -\PName{Verteiler} \Macro{raggedright} zu setzen und die einzelnen -Angaben durch doppelten Backslash voneinander zu trennen. -\begin{Example} - Sie wollen angeben, dass Ihr Brief an alle Vereinsmitglieder und den - Vorstand geht: -\begin{lstlisting} - \cc{% - der Vorstand\\ - alle Vereinsmitglieder} -\end{lstlisting} - Diese Anweisung schreiben Sie unter die \Macro{closing}-Anweisung - aus dem vorherigen Beispiel oder unter ein eventuelles Postskriptum. -\end{Example} -Vor dem Verteiler wird automatisch ein Abstand eingefügt. -% -\EndIndex{Cmd}{cc}% -\EndIndex{Variable}{ccseparator}% - - -\begin{Declaration} - \Macro{encl}\Parameter{Anlagen}\\ - \Variable{enclseparator} -\end{Declaration} -\BeginIndex{Cmd}{encl}% -\BeginIndex{Variable}{enclseparator}% -Die \PName{Anlagen}\Index{Anlagen} sind genauso aufgebaut wie der -Verteiler. Der einzige Unterschied besteht darin, dass die Einleitung -hier von der Bezeichnung und dem Inhalt der Variablen -\Variable{enclseparator}\Index{Trennzeichen} bestimmt wird. -% -\EndIndex{Cmd}{encl}% -\EndIndex{Variable}{enclseparator}% - - - -\section{Unterstützung verschiedener Sprachen} -\label{sec:scrlttr2.languages}% -\BeginIndex{}{Sprachen}% - -Die Klasse \Class{scrlttr2} unterstützt viele Sprachen. Dazu zählen -Deutsch (\PValue{german} für alte deutsche Rechtschreibung, -\PValue{ngerman} für neue deutsche Rechtschreibung und -\PValue{austrian} für Österreichisch), Englisch (\PValue{english} ohne -Angabe ob amerikanisches oder britisches Englisch, \PValue{american} und -\PValue{USenglish} für Amerikanisch, \PValue{british} und -\PValue{UKenglish} für Britisch), Französisch, Italienisch, Spanisch, -Holländisch, Kroatisch und Finnisch. - -\subsection{Sprachauswahl und -umschaltung} -\label{sec:scrlttr2.switchLanguage} -\Index[indexmain]{Sprachumschaltung}\Index[indexmain]{Sprachauswahl} - -Zwischen den Sprachen wird bei Verwendung des -\Package{babel}-Paketes\IndexPackage{babel} (siehe \cite{package:babel}) mit -der Anweisung \Macro{selectlanguage}\Parameter{Sprache} gewechselt. Andere -Pakete wie \Package{german}\IndexPackage{german} (siehe \cite{package:german}) -und \Package{ngerman}\IndexPackage{ngerman} (siehe \cite{package:ngerman}) -besitzen diese Anweisung ebenfalls. In der Regel erfolgt eine -Sprachumschaltung jedoch bereits aufgrund des Ladens eines solchen Paketes. -\iftrue -Näheres entnehmen Sie bitte der jeweiligen Anleitung. -\fi - -\begin{Explain} - Erlauben Sie mir noch einen Hinweis zu den Sprachumschaltpaketen. Das Paket - \Package{french}\IndexPackage{french} (siehe \cite{package:french}) nimmt - neben der Umdefinierung der Begriffe aus - \autoref{sec:scrlttr2.languageTerms} weitere Änderungen vor. So definiert es - etwa die Anweisung \Macro{opening} um. Dabei geht es einfach davon aus, dass - \Macro{opening} immer wie in der Standardbriefklasse \Class{letter} - definiert ist. Dies ist bei \Class{scrlttr2} jedoch nicht der Fall. Das - Paket \Package{french} zerstört deshalb die Definition aus \Class{scrlttr2} - und arbeitet nicht korrekt mir \KOMAScript{} zusammen. Ich betrachte dies - als Fehler des Paketes \Package{french}. - - \looseness=1 - Wird das Paket \Package{babel}\IndexPackage{babel} für die Umschaltung auf - die Sprache \PValue{french} verwendet und ist gleichzeitig das Paket - \Package{french} installiert, so ergeben sich eventuell genau dieselben - Probleme, weil in diesem Fall Teile des Paketes \Package{french} verwendet - werden. - % - \iftrue - % Umbruchergänzungstext - Ist das Paket \Package{french} nicht installiert, ergibt sich das - Problem mit \Package{babel} nicht. Ebenfalls existiert das Problem - normalerweise nicht, wenn man bei \Package{babel} an Stelle der Sprache - \PValue{french} eine der Sprachen \PValue{acadian}, \PValue{canadien}, - \PValue{francais} oder \PValue{frenchb} verwendet. - \fi - - Mit Babel ab Version 3.7j tritt dieses Problem jedoch nur noch auf, wenn per - Option explizit angegeben wird, dass \Package{babel} das - \Package{french}-Paket verwenden soll. - % - \iftrue - % Umbruchoptimierungstext - Kann nicht sicher gestellt werden, dass nicht eine alte Version von - \Package{babel} verwendet wird, so empfehle ich% - \iftrue - % Umbruchoptimierungstext - , mit - \begin{lstlisting} - \usepackage[...,frenchb,...]{babel} - \end{lstlisting} - französische Sprache auszuwählen. Gegebenenfalls ist dann aber trotzdem mit - \Macro{selectlanguage}\PParameter{french} auf Französisch umzuschalten.% - \else - \space bei \Package{babel} die Option \Option{frenchb}.% - \fi - \fi - - \iftrue - \looseness=1 - Es ist nicht auszuschließen, dass mit anderen Sprachen und Paketen ähnliche - Probleme auf"|treten. Für Deutsch sind solche Probleme jedoch nicht bekannt - und treten weder mit den Paketen \Package{german}\IndexPackage{german} oder - \Package{ngerman}\IndexPackage{ngerman} noch mit \Package{babel} auf. - \fi -\end{Explain} - -\begin{Declaration} - \Macro{captionsenglish}\\ - \Macro{captionsUSenglish}\\ - \Macro{captionsamerican}\\ - \Macro{captionsbritish}\\ - \Macro{captionsUKenglish}\\ - \Macro{captionsgerman}\\ - \Macro{captionsngerman}\\ - \Macro{captionsaustrian}\\ - \Macro{captionsfrench}\\ - \Macro{captionsitalian}\\ - \Macro{captionsspanish}\\ - \Macro{captionsdutch}\\ - \Macro{captionscroatian}\\ - \Macro{captionsfinnish} -\end{Declaration} -\BeginIndex{Cmd}{captionsenglish}\BeginIndex{Cmd}{captionsUSenglish}% -\BeginIndex{Cmd}{captionsamerican}\BeginIndex{Cmd}{captionsbritish}% -\BeginIndex{Cmd}{captionsUKenglish}\BeginIndex{Cmd}{captionsgerman}% -\BeginIndex{Cmd}{captionsngerman}% -\BeginIndex{Cmd}{captionsaustrian}\BeginIndex{Cmd}{captionsfrench}% -\BeginIndex{Cmd}{captionsitalian}\BeginIndex{Cmd}{captionsspanish}% -\BeginIndex{Cmd}{captionsdutch}\BeginIndex{Cmd}{captionscroatian}% -\BeginIndex{Cmd}{captionsfinnish}% -Wird die Sprache eines Briefes gewechselt, so werden über diese Anweisungen -die Begriffe aus \autoref{sec:scrlttr2.languageTerms} umdefiniert. Sollte das -verwendete Sprachumschaltpaket dies nicht unterstützen, so können obige -Anweisungen notfalls auch direkt verwendet werden.% -% -\EndIndex{Cmd}{captionsenglish}\EndIndex{Cmd}{captionsUSenglish} -\EndIndex{Cmd}{captionsamerican}\EndIndex{Cmd}{captionsbritish} -\EndIndex{Cmd}{captionsUKenglish}\EndIndex{Cmd}{captionsgerman} -\EndIndex{Cmd}{captionsngerman} -\EndIndex{Cmd}{captionsaustrian}\EndIndex{Cmd}{captionsfrench} -\EndIndex{Cmd}{captionsitalian}\EndIndex{Cmd}{captionsspanish} -\EndIndex{Cmd}{captionsdutch}\EndIndex{Cmd}{captionscroatian} -\EndIndex{Cmd}{captionsfinnish}% - -\begin{Declaration} - \Macro{dateenglish}\\ - \Macro{dateUSenglish}\\ - \Macro{dateamerican}\\ - \Macro{datebritish}\\ - \Macro{dateUKenglish}\\ - \Macro{dategerman}\\ - \Macro{datengerman}\\ - \Macro{dateaustrian}\\ - \Macro{datefrench}\\ - \Macro{dateitalian}\\ - \Macro{datespanish}\\ - \Macro{datedutch}\\ - \Macro{datecroatian}\\ - \Macro{datefinnish} -\end{Declaration} -\BeginIndex{Cmd}{dateenglish}\BeginIndex{Cmd}{dateUSenglish} -\BeginIndex{Cmd}{dateamerican}\BeginIndex{Cmd}{datebritish} -\BeginIndex{Cmd}{dateUKenglish}\BeginIndex{Cmd}{dategerman} -\BeginIndex{Cmd}{datengerman} -\BeginIndex{Cmd}{dateaustrian}\BeginIndex{Cmd}{datefrench} -\BeginIndex{Cmd}{dateitalian}\BeginIndex{Cmd}{datespanish} -\BeginIndex{Cmd}{datedutch}\BeginIndex{Cmd}{datecroatian}% -\BeginIndex{Cmd}{datefinnish}% -Je nach verwendeter Sprache werden auch die Datumsangaben\Index{Datum} -des nummerischen Datums (siehe Option \Option{numericaldate} in -\autoref{sec:scrlttr2.headoptions}) in unterschiedlicher Form -umgesetzt. Die genauen Angaben können der \autoref{tab:date} -entnommen werden. -% -\begin{table} - \centering - \caption{Sprachabhängige Ausgabeformate für das Datum} - \begin{tabular}{ll} - \toprule - Anweisung & Ausgabebeispiel \\ - \midrule - \Macro{dateenglish} & 1/12/1993\\ - \Macro{dateUSenglish} & 12/1/1993\\ - \Macro{dateamerican} & 12/1/1993\\ - \Macro{datebritish} & 1/12/1993\\ - \Macro{dateUKenglish} & 1/12/1993\\ - \Macro{dategerman} & 1.\,12.\,1993\\ - \Macro{datengerman} & 1.\,12.\,1993\\ - \Macro{dateaustrian} & 1.\,12.\,1993\\ - \Macro{datefrench} & 1.\,12.\,1993\\ - \Macro{dateitalian} & 1.\,12.\,1993\\ - \Macro{datespanish} & 1.\,12.\,1993\\ - \Macro{datedutch} & 1.\,12.\,1993\\ - \Macro{datecroatian} & 1.\,12.\,1993.\\ - \Macro{datefinnish } & 1.12.1993.\\ - \bottomrule - \end{tabular} - \label{tab:date} -\end{table} -% -\EndIndex{Cmd}{dateenglish}\EndIndex{Cmd}{dateUSenglish} -\EndIndex{Cmd}{dateamerican}\EndIndex{Cmd}{datebritish} -\EndIndex{Cmd}{dateUKenglish}\EndIndex{Cmd}{dategerman} -\EndIndex{Cmd}{datengerman} -\EndIndex{Cmd}{dateaustrian}\EndIndex{Cmd}{datefrench} -\EndIndex{Cmd}{dateitalian}\EndIndex{Cmd}{datespanish} -\EndIndex{Cmd}{datedutch}\EndIndex{Cmd}{datecroatian}% -\EndIndex{Cmd}{datefinnish}% - - -\subsection{Sprachabhängige Begriffe} -\label{sec:scrlttr2.languageTerms} -\Index[indexmain]{sprachabhaengige Begriffe=sprachabhängige Begriffe} -Bei \Class{scrlttr2} sind, wie bei \LaTeX{} üblich, sprachabhängige -Begriffe in Anweisungen abgelegt, die bei der Sprachumschaltung -umdefiniert werden. - -\begin{Declaration} - \Macro{yourrefname}\\ - \Macro{yourmailname}\\ - \Macro{myrefname}\\ - \Macro{customername}\\ - \Macro{invoicename}\\ - \Macro{subjectname}\\ - \Macro{ccname}\\ - \Macro{enclname}\\ - \Macro{headtoname}\\ - \Macro{headfromname}\\ - \Macro{datename}\\ - \Macro{pagename}\\ - \Macro{phonename}\\ - \Macro{faxname}\\ - \Macro{emailname}\\ - \Macro{wwwname}\\ - \Macro{bankname} -\end{Declaration} -\BeginIndex{Cmd}{yourrefname}\BeginIndex{Cmd}{yourmailname} -\BeginIndex{Cmd}{myrefname} -\BeginIndex{Cmd}{customername}\BeginIndex{Cmd}{invoicename} -\BeginIndex{Cmd}{subjectname} -\BeginIndex{Cmd}{ccname}\BeginIndex{Cmd}{enclname} -\BeginIndex{Cmd}{headtoname}\BeginIndex{Cmd}{headfromname} -\BeginIndex{Cmd}{datename}\BeginIndex{Cmd}{pagename} -\BeginIndex{Cmd}{phonename}\BeginIndex{Cmd}{faxname} -\BeginIndex{Cmd}{emailname}\BeginIndex{Cmd}{wwwname} -\BeginIndex{Cmd}{bankname}% -Die aufgeführten Anweisungen enthalten die jeweiligen sprachtypischen -Begriffe. Diese können für die Realisierung einer weiteren Sprache -oder aber auch zur eigenen freien Gestaltung angepasst werden. Wie -dies geht, wird in \mbox{\autoref{sec:scrlttr2.defLanguageTerms}} -erklärt. Von \Class{scrlttr2} werden die Begriffe erst nach der -Präambel, also bei \Macro{begin}\PParameter{document} gesetzt. Sie -sind daher vorher nicht verfügbar und können vorher auch nicht -geändert werden. In \autoref{tab:scrlttr2.languageTerms} sind die -Voreinstellungen für \Option{english} und \Option{ngerman} zu finden. -% -\begin{table} - \begin{minipage}{\textwidth} - \centering - \caption[Voreinstellungen für die sprachabhängigen - Begriffe]{Voreinstellungen für die sprachabhängigen Begriffe bei - Verwendung der Sprachen \Option{english} und \Option{ngerman} - soweit nicht durch die Pakete zur Sprachumschaltung bereits - definiert} - \label{tab:scrlttr2.languageTerms} - \begin{tabular}{lll} - \toprule - Anweisung & \Option{english} & \Option{ngerman} \\ - \midrule - \Macro{bankname} & Bank account & Bankverbindung \\ - \Macro{ccname}\footnotemark[1] & cc & Kopien an \\ - \Macro{customername} & Customer no. & Kundennummer \\ - \Macro{datename} & Date & Datum \\ - \Macro{emailname} & Email & E-Mail \\ - \Macro{enclname}\footnotemark[1] & encl & Anlagen \\ - \Macro{faxname} & Fax & Fax \\ - \Macro{headfromname} & From & Von \\ - \Macro{headtoname}\footnotemark[1] & To & An \\ - \Macro{invoicename} & Invoice no. & Rechnungsnummer \\ - \Macro{myrefname} & Our ref. & Unser Zeichen \\ - \Macro{pagename}\footnotemark[1] & Page & Seite \\ - \Macro{phonename} & Phone & Telefon \\ - \Macro{subjectname} & Subject & Betrifft \\ - \Macro{wwwname} & Url & URL \\ - \Macro{yourmailname} & Your letter of & Ihr Schreiben vom\\ - \Macro{yourrefname} & Your ref. & Ihr Zeichen \\ - \bottomrule - \end{tabular} - \deffootnote{1em}{1em}{\textsuperscript{1}}% brutal aber effektiv - \footnotetext[1000]{Diese Begriffe werden normalerweise bereits von - Sprachpaketen wie \Package{babel} definiert und dann von \Class{scrlttr2} - nicht überschrieben. Abweichungen im Wortlaut sind daher möglich und der - Anleitung des verwendeten Sprachpakets zu entnehmen.} - \end{minipage} -\end{table} -% -\EndIndex{Cmd}{yourrefname}\EndIndex{Cmd}{yourmailname} -\EndIndex{Cmd}{myrefname} -\EndIndex{Cmd}{customername}\EndIndex{Cmd}{invoicename} -\EndIndex{Cmd}{subjectname} -\EndIndex{Cmd}{ccname}\EndIndex{Cmd}{enclname} -\EndIndex{Cmd}{headtoname}\EndIndex{Cmd}{headfromname} -\EndIndex{Cmd}{datename}\EndIndex{Cmd}{pagename} -\EndIndex{Cmd}{phonename}\EndIndex{Cmd}{faxname} -\EndIndex{Cmd}{emailname}\EndIndex{Cmd}{wwwname} -\EndIndex{Cmd}{bankname} - - -\subsection{Definieren und Ändern sprachabhängiger Begriffe} -\label{sec:scrlttr2.defLanguageTerms} -\Index[indexmain]{Sprachdefinition} -\begin{Explain} - Normalerweise muss man zur Definition oder zur Änderung - sprachabhängier Begriffe die Anweisungen aus - \autoref{sec:scrlttr2.switchLanguage} so umdefinieren, dass - zusätzlich zu den bisherigen Begriffen auch die neuen oder - geänderten definiert werden. Erschwert wird dieses Vorhaben dadurch, - dass beim Laden eines Paketes wie - \Package{german}\IndexPackage{german} oder - \Package{ngerman}\IndexPackage{ngerman} diese Anweisungen von den - Paketen erneut definiert werden. Bei den genannten Paketen geschieht - dies leider in einer Form, die alle zuvor gemachten Änderungen - zunichte macht. Dies ist auch der Grund, warum \Class{scrlttr2} - seine eigenen Änderungen mit Hilfe von \Macro{AtBeginDocument} bis - \Macro{begin}\PParameter{document}, also bis nach dem Laden aller - Pakete, verzögert. Auch der Anwender muss entweder von - \Macro{AtBeginDocument} Gebrauch machen oder aber seine Änderungen - nicht in die Dokumentpräambel, sondern hinter - \Macro{begin}\PParameter{document} einfügen. Die Klasse - \Class{scrlttr2} bietet ihm für die Definition selbst einige - zusätzliche Anweisungen. -\end{Explain} - -\begin{Declaration} - \Macro{providecaptionname}% - \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt}\\ - \Macro{newcaptionname}% - \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt}\\ - \Macro{renewcaptionname}% - \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt} -\end{Declaration} -\BeginIndex{Cmd}{providecaptionname}% -\BeginIndex{Cmd}{newcaptionname}% -\BeginIndex{Cmd}{renewcaptionname}% -Mit Hilfe dieser drei Anweisungen ist es möglich, einem -\PName{Begriff} in Abhängigkeit der \PName{Sprache} einen -\PName{Inhalt} zuzuweisen. Der \PName{Begriff} ist dabei immer ein -Makro. Die Arbeitsweise der drei Anweisungen unterscheidet sich je -nachdem, ob eine \PName{Sprache} und ein \PName{Begriff} innerhalb der -\PName{Sprache} zum Zeitpunkt des Aufrufs bereits definiert ist. - -Ist eine \PName{Sprache} nicht definiert, so tut -\Macro{providecaptionname} nichts weiter, als dies in der -\File{log}-Datei zu vermerken. Dabei wird für jede Sprache nur einmal -eine entsprechende Information in die \File{log}-Datei -geschrieben. Ist die Sprache definiert, enthält aber bisher keinen -entsprechenden \PName{Begriff}, so wird er mit dem angegebenen -\PName{Inhalt} definiert. Ist der \PName{Begriff} hingegen in der -\PName{Sprache} bereits definiert, so wird er nicht umdefiniert, -sondern ein entsprechender Hinweis in die \File{log}-Datei -geschrieben. - -Die Anweisung \Macro{newcaptionname} verhält sich etwas anders. Ist bei ihr -die \PName{Sprache} nicht definiert, dann wird diese neu definiert, indem -eine entsprechende Anweisung (siehe -\autoref{sec:scrlttr2.switchLanguage}) definiert wird. Außerdem -wird darüber auch in der \File{log}-Datei informiert. Ist die -\PName{Sprache} definiert, der \PName{Begriff} in dieser -\PName{Sprache} aber noch nicht vorhanden, so wird er mit dem -gewünschten \PName{Inhalt} definiert. Ist der \PName{Begriff} in der -\PName{Sprache} bereits vorhanden, so wird eine Fehlermeldung -ausgegeben. - -Noch einmal anders verhält sich die Anweisung -\Macro{renewcaptionname}. Ist die \PName{Sprache} nicht definiert, so -wird eine Fehlermeldung ausgegeben. Ist die \PName{Sprache} definiert, -der \PName{Begriff} in dieser \PName{Sprache} jedoch nicht, so wird -ebenfalls eine Fehlermeldung ausgegeben. Ist der \PName{Begriff} in -der \PName{Sprache} definiert, so wird er auf den gewünschten -\PName{Inhalt} umdefiniert. - -Die Klasse \Class{scrlttr2} selbst verwendet -\Macro{providecaptionname} um die Begriffe aus -\autoref{sec:scrlttr2.languageTerms} zu definieren. - -\begin{Example} - Möchten Sie statt des Eintrags "`Ihr Schreiben vom"' lieber "`Ihre - Nachricht vom"' in der Geschäftszeile stehen haben, müssen Sie den - Begriff \Macro{yourmailname} wie folgt umdefinieren. -\begin{lstlisting} - \renewcaptionname{ngerman}{\yourmailname}{% - Ihre Nachricht vom} -\end{lstlisting} - Da mit \Macro{renewcaptionname} nur bereits vorhandene Begriffe in - vorhandenen Sprachen umdefiniert werden können, müssen Sie diese - Anweisung nach \Macro{begin}\PParameter{document} setzen oder mit - Hilfe von \Macro{AtBeginDocument} verzögern. Außerdem werden Sie - eine Fehlermeldung erhalten, wenn Sie kein Paket zur - Sprachumschaltung auf \PValue{ngerman} verwenden. -\end{Example} -% -\EndIndex{Cmd}{providecaptionname}% -\EndIndex{Cmd}{newcaptionname}% -\EndIndex{Cmd}{renewcaptionname}% -% -\EndIndex{}{Sprachen}% - - -\section{Adressdateien und Serienbriefe} -\label{sec:scrlttr2.addressFile}% -\BeginIndex{}{Adressdatei}\BeginIndex{}{Serienbriefe}% - -Als besonders lästig wird bei Briefen immer das Eintippen der -Adressen und das Erstellen von Serienbriefen betrachtet. Die Klasse -\Class{scrlttr2} bietet hierfür wie schon die obsolete Klasse -\Class{scrlettr} eine gewisse Unterstützung. Eine stark verbesserte -Serienbrief"|funktion ist derzeit in Planung. - -\begin{Declaration} - \Macro{adrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}% - \Parameter{Tel.}\Parameter{F1}\Parameter{F2}% - \Parameter{Kommentar}\Parameter{Kürzel} -\end{Declaration} -\BeginIndex{Cmd}{adrentry}% -Mit der \Class{scrlttr2}-Klasse können -Adressdateien\Index[indexmain]{Adressdatei} ausgewertet werden. Dies ist -beispielsweise für Serienbriefe sehr nützlich. Eine Adressdatei muss -die Endung \File{.adr} haben und besteht aus einer Reihe von -\Macro{adrentry}-Einträgen. Ein solcher Eintrag besteht aus acht -Elementen und kann beispielsweise wie folgt aussehen: -\begin{lstlisting} - \adrentry{Maier} - {Herbert} - {Wiesenweg 37\\ 09091 Blumental} - {0\,23\,34 / 91\,12\,74} - {Bauunternehmer} - {} - {kauft alles} - {MAIER} -\end{lstlisting} -Die Elemente fünf und sechs, \PValue{F1} und \PValue{F2}, können frei -bestimmt werden. Denkbar wären neben Hinweisen auf das Geschlecht oder -akademische Grade auch der Geburtstag oder das Eintrittsdatum in einen -Verein. Um das Überschreiben von \TeX- oder \LaTeX-Anweisungen zu -vermeiden, ist es empfehlenswert, für \PName{Kürzel} ausschließlich -Großbuchstaben zu verwenden. - -\begin{Example} - Herr Maier gehört zu Ihren engeren Geschäftspartnern. Da Sie eine - rege Korrespondenz mit ihm pflegen, ist es Ihnen auf Dauer zu - mühsam, jedesmal alle Empfängerdaten aufs Neue einzugeben. - \Class{scrlttr2} nimmt Ihnen diese Arbeit ab. Angenommen, Sie haben - Ihre Kundenkontakte in der Datei \File{partner.adr} gespeichert und - Sie möchten Herrn Maier einen Brief schreiben, dann sparen Sie sich - viel Tipparbeit, wenn Sie folgendes eingeben: -\begin{lstlisting} - \input{partner.adr} - \begin{letter}{\MAIER} - Der Brief ... - \end{letter} -\end{lstlisting} - Achten Sie bitte darauf, dass Ihr \TeX-System auch auf die - \File{.adr}-Dateien zugreifen kann, da sonst eine Fehlermeldung - von \Macro{input} verursacht wird. Entweder Sie legen die Brief- - und Adressdateien im selben Verzeichnis an, oder Sie binden ein - Adressverzeichnis fest in Ihr \TeX-System ein. -\end{Example} -% -\EndIndex{Cmd}{adrentry} - - -\begin{Declaration} - \Macro{addrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}% - \Parameter{Telefon}\Parameter{F1}\Parameter{F2}\Parameter{F3}% - \Parameter{F4}\Parameter{Kürzel} -\end{Declaration} -\BeginIndex{Cmd}{addrentry}% -Da über die Jahre hinweg immer wieder Klagen aufkamen, dass insgesamt -nur zwei freie Felder zu wenig seien, verfügt \Class{scrlttr2} nun -alternativ über die Anweisung \Macro{addrentry}. Mit dem zusätzlichen -"`\texttt{d}"' im Namen sind hier auch zwei weitere freie Felder -hinzugekommen, dafür ist jedoch der Kommentar entfallen. Ansonsten -kann die Anweisung genau wie \Macro{adrentry} verwendet werden. - -In einer \File{adr}-Datei können \Macro{adrentry}"~ und -\Macro{addrentry}-Anweisungen nebeneinander verwendet werden. Ich weise jedoch -darauf hin, dass Zusatzpakete wie das \Package{adrconv}-Paket von Axel -Kielhorn eventuell nicht auf die Verwendung von \Macro{addrentry} ausgelegt -sind. Hier muss der Anwender gegebenenfalls selbst entsprechende -Erweiterungen vornehmen.% -% -\EndIndex{Cmd}{addrentry} - - -Neben dem vereinfachten Zugriff auf Kundendaten können die -\File{.adr}-Dateien auch für Serienbriefe\Index[indexmain]{Serienbriefe} -genutzt werden. So ist es ohne die komplizierte Anbindung an -Datenbanksysteme möglich, solche Massenpostsendungen zu erstellen. -% -\begin{Example} - Sie wollen einen Serienbrief an alle Mitglieder Ihres - Anglervereins schicken, um zur nächsten Mitgliederversammlung - einzuladen. -\begin{lstlisting} - \documentclass{scrlttr2} - \usepackage{ngerman} - \usepackage[utf8]{inputenc} - - \begin{document} - \renewcommand*{\adrentry}[8]{% - \begin{letter}{#2 #1\\#3} - \opening{Liebe Vereinsmitglieder,} - unsere nächste Mitgliederversammlung findet am - Montag, dem 12.~August 2002, statt. - - Folgende Punkte müssen besprochen werden... - \closing{Petri Heil,} - \end{letter} - } - - \input{mitglieder.adr} - \end{document} -\end{lstlisting} - Sind in Ihrer \File{adr}-Datei auch \Macro{addrentry}-Anweisungen - enthalten, müssen Sie dafür eine entsprechende Definition vor dem - Einladen der Adressdatei ergänzen: -\begin{lstlisting} - \renewcommand*{\addrentry}[9]{% - \adrentry{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#9}% - } -\end{lstlisting} - Bei diesem Beispiel wird kein Gebrauch von dem zusätzlichen freien - Feld gemacht und deshalb \Macro{addrentry} mit Hilfe von \Macro{adrentry} - definiert. -\end{Example} - -Natürlich kann der Brief"|inhalt auch von den Adressatenmerkmalen -abhängig gemacht werden. Als Bedingungsfelder können die frei -bestimmbaren Elemente fünf oder sechs eines \Macro{adrentry}-Eintrages oder -die frei bestimmbaren Elemente fünf bis acht eines \Macro{addrentry}-Eintrags -genutzt werden. -\begin{Example} - Angenommen, Sie verwenden das Element fünf, um das Geschlecht eines - Vereinsmitgliedes zu hinterlegen (\PValue{m/w}) und das sechste - Element weist auf einen Rückstand der Mitgliedsbeiträge hin. Wollen - Sie nun alle säumigen Mitglieder anschreiben und persönlich anreden, - so hilft Ihnen folgendes Beispiel weiter: -\begin{lstlisting} - \renewcommand*{\adrentry}[8]{ - \ifdim #6pt>0pt\relax - % #6 ist ein Betrag (Gleitkommazahl) größer 0. - % Es werden also die Säumigen erfasst. - \begin{letter}{#2 #1\\#3} - \if #5m \opening{Lieber #2,} \fi - \if #5w \opening{Liebe #2,} \fi - - Leider mussten wir feststellen, dass du mit - der Zahlung deiner Mitgliedsbeiträge im - Rückstand bist. - - Wir möchten Dich bitten, den offenen Betrag - von #6~EUR auf das Vereinskonto einzuzahlen. - \closing{Petri Heil,} - \end{letter} - \fi - } -\end{lstlisting} -\end{Example} -Es ist also möglich, den Brieftext auf bestimmte Empfängermerkmale -gezielt abzustimmen und so den Eindruck eines persönlichen -Schreibens zu erwecken. Die Anwendungsbreite ist lediglich durch -die maximale Anzahl von zwei freien \Macro{adrentry}-Elementen -beziehungsweise vier freien \Macro{addrentry}-Elementen begrenzt. - - -\begin{Declaration} - \Macro{adrchar}\Parameter{Anfangsbuchstaben}\\ - \Macro{addrchar}\Parameter{Anfangsbuchstaben} -\end{Declaration} -\BeginIndex{Cmd}{adrchar}% -\BeginIndex{Cmd}{addrchar}% -\Index[indexmain]{Adressverzeichnis}\Index[indexmain]{Telefonliste}% -Es ist auch möglich, die Informationen einer \File{.adr}-Datei in -Adressverzeichnisse oder Telefonlisten umzuwandeln. Sie benötigen dazu -zusätzlich das \Package{adrconv}-Paket von Axel Kielhorn (siehe -\cite{package:adrconv}). In diesem Paket sind interaktive -\LaTeX-Dokumente enthalten, mit deren Hilfe sehr einfach entsprechende -Listen erstellt werden können. - -Damit die Listen alphabetisch sortiert ausgegeben werden, muss bereits -die Adressdatei sortiert gewesen sein. Es empfiehlt sich dabei, vor -jedem neuen Anfangsbuchstaben eine Anweisung \Macro{adrchar} mit -diesem Buchstaben als Argument einzufügen. \Class{scrlttr2} selbst -ignoriert diese Anweisung ebenso wie \Macro{addrchar}. -% -\begin{Example} - Sie haben folgende, winzige Adressdatei: -% In der folgenden lstlisting-Umgebung je nach Umbruchbedarf einzelne -% Elemente löschen oder hinzufügen. MICHAEL und GABRIEL sollten jedoch -% erhalten bleiben. -\begin{lstlisting} - \adrchar{E} - \adrentry{Engel}{Gabriel} - {Wolke 3\\12345 Himmelreich} - {000\,01\,02\,03}{}{}{Erzengel} - {GABRIEL} - \adrentry{Engel}{Michael} - {Wolke 3a\\12345 Himmelreich} - {000\,01\,02\,04}{}{}{Erzengel} - {MICHAEL} - \adrentry{Engel}{Raphael} - {Wolke 3b\\12345 Himmelreich} - {000\,01\,02\,05}{}{}{Erzengel} - {RAPHAEL} - \adrchar{K} - \adrentry{Kohm}{Markus} - {Freiherr-von-Drais-Stra\ss e 66\\ - 68535 Edingen-Neckarhausen} - {+49~62\,03~1\,??\,??}{}{} - {\"Uberhaupt kein Engel} - {KOMA} - \adrchar{T} - \adrentry{Teufel}{Luzifer} - {Hinter der Flamme 1\\ - 66666 H\"ollenschlund} - {}{}{}{Gefallener Engel ohne Telefon} - {LUZIFER} -\end{lstlisting} - Diese bearbeiten Sie nun unter Verwendung von \File{adrdir.tex} aus - \cite{package:adrconv}. Seite~3 des Ergebnisses sieht dann etwa so - aus: - \begin{center} - \setlength{\unitlength}{1mm} - \begin{picture}(80,58) - \put(0,58){\line(1,0){80}} - \put(0,3){\line(0,1){55}} - \put(80,3){\line(0,1){55}} - \thicklines - \put(10,43){\line(1,0){60}} - \put(70,46){\makebox(0,0)[r]{\textsf{\textbf{E}}}} - \put(10,23){\makebox(0,20)[l]{\parbox{5cm}{\raggedright - \textbf{Engel}, Gabriel\\\quad\small Wolke 3\\ - \quad 12345 Himmelreich\\ - \quad (Erzengel)}}} - \put(70,23){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\ - \small~\\{\footnotesize GABRIEL}\\000\,01\,02\,03}}} - \put(10,4){\makebox(0,20)[l]{\parbox{5cm}{\raggedright - \textbf{Engel}, Michael\\\quad\small Wolke 3a\\ - \quad 12345 Himmelreich\\ - \quad (Erzengel)}}} - \put(70,4){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\ - \small~\\{\footnotesize MICHAEL}\\000\,01\,02\,04}}} - \qbezier(0,3)(10,6)(40,3)\qbezier(40,3)(60,0)(80,3) - \end{picture} - \end{center} - Dabei wird der Buchstabe in der Kopfzeile von \Macro{adrchar} - erzeugt. Siehe dazu die Definition in \File{adrdir.tex}. -\end{Example} -Näheres zum \Package{adrconv}-Paket ist der zugehörigen Anleitung zu -entnehmen. Dort finden Sie auch Angaben darüber, ob die aktuelle -Version von \Package{adrconv} bereits mit \Macro{addrentry} und -\Macro{addrchar} umgehen kann. Frühere Versionen kannten nur -\Macro{adrentry} und \Macro{adrchar}. -% -\EndIndex{Cmd}{adrchar}\EndIndex{Cmd}{addrchar}% -% -\EndIndex{}{Adressdatei}\EndIndex{}{Serienbriefe}% - - -\section{Von \Class{scrlettr} nach \Class{scrlttr2}} -\label{sec:scrlttr2.fromscrlettr} - -Bei der Umwandlung eines alten Briefes, der ursprünglich mit -\Class{scrlettr}\IndexClass{scrlettr} gesetzt wurde, besteht der erste -Schritt darin, die \File{lco}-Datei \Option{KOMAold} als Option bei -\Macro{documentclass} anzugeben. Damit sollte die Mehrzahl der -Anweisungen der alten Klasse bereits funktionieren. An einigen Stellen -wird sich die Ausgabe mit der neuen Klasse trotzdem unterscheiden, -weil nun einmal der Satzspiegel der alten Klasse nicht vollständig -nachgebildet wird. Dies hat seine Ursache nicht zuletzt darin, dass in -der Satzspiegelerstellung von \Class{scrlettr} noch diverse Fehler -enthalten waren. So war die Position der Faltmarken beispielsweise von -der Höhe der Kopfzeile abhängig, die wiederum von der Größe der -Grundschrift abhängig war. Eindeutig ein Designfehler der Klasse -\Class{scrlettr}. - -Keine Kompatibilität wird bezüglich der von \Class{scrlettr} -verwendeten Längen erreicht. Wer also in seinem Dokument den -Satzspiegel von \Class{scrlettr} verändert hatte, der sollte diese -Änderungen entfernen oder auskommentieren. In einigen Fällen führt die -Änderung einer Länge oder einer internen Anweisung von -\Class{scrlettr} auch zu einer Fehlermeldung, da die entsprechenden -Längen oder Anweisungen in \Class{scrlttr2} nicht mehr definiert -sind. Versuchen Sie in dem Fall ebenfalls diese Änderungen zu -entfernen oder auszukommentieren. - -Nach dem Wechsel von \Class{scrlettr} zu \Class{scrlttr2} wird der -alte Beispielbrief allein schon durch Setzen der Option -\Option{KOMAold} verarbeitbar: -\begin{lstlisting} - \documentclass[10pt,KOMAold]{scrlttr2} - \usepackage{ngerman} - - \name{\KOMAScript{}-Gruppe} - \address{Klassengasse 1\\ - 12345 \LaTeX{}hausen} - \signature{Euer \KOMAScript{}-Team} - - \begin{document} - \begin{letter}{Die \KOMAScript{}-Nutzer\\ - Irgendwo\\ - weltweit} - \opening{Liebe \KOMAScript{}-Nutzer,} - das \KOMAScript{}-Team m"ochte Euch mit ein paar - Informationen ... - \closing{Viel Spa"s} - \end{letter} - \end{document} -\end{lstlisting} - -Der nächste Schritt kann dann darin bestehen, dass man trotz Verwendung der -alten Anweisungen nicht mehr das Layout der alten Klasse nachbilden will. Soll -beispielsweise das Layout der Letter-Class-Option \Option{DIN} verwendet -werden, so gibt man einfach diese Option zusätzlich und \emph{nach} der Option -\Option{KOMAold} an: -\begin{lstlisting} - \documentclass[10pt,KOMAold,DIN]{scrlttr2} - \usepackage{ngerman} - - \name{\KOMAScript{}-Gruppe} - \address{Klassengasse 1\\ - 12345 \LaTeX{}hausen} - \signature{Euer \KOMAScript{}-Team} - - \begin{document} - \begin{letter}{Die \KOMAScript{}-Nutzer\\ - Irgendwo\\ - weltweit} - \opening{Liebe \KOMAScript{}-Nutzer,} - das \KOMAScript{}-Team m"ochte Euch mit ein paar - Informationen ... - \closing{Viel Spa"s} - \end{letter} - \end{document} -\end{lstlisting} -Durch weitere Optionen kann das Aussehen auch weiter beeinflusst werden. Ich -empfehle, gleich noch einen Schritt weiter zu gehen. - -Der letzte Schritt besteht dann darin, alle alten Anweisungen durch -die neuen Entsprechungen zu ersetzen und die Option \Option{KOMAold} -zu entfernen. Bei der Ersetzung kann es nützlich sein, einen Blick in -die Datei \File{KOMAold.lco} zu werfen. In dieser sind die alten -Befehle mit Hilfe der neuen Variablen und Anweisungen nachgebildet. -\begin{lstlisting} - \documentclass{scrlttr2} - \usepackage{ngerman} - - \setkomavar{fromname}{\KOMAScript{}-Gruppe} - \setkomavar{fromaddress}{Klassengasse 1\\ - 12345 \LaTeX hausen} - \setkomavar{signature}{Euer \KOMAScript{}-Team} - \let\raggedsignature=\raggedright - - \begin{document} - \begin{letter}{Die \KOMAScript-Nutzer\\ - Irgendwo\\ - weltweit} - \opening{Liebe \KOMAScript-Nutzer,} - das \KOMAScript-Team m"ochte Euch mit ein paar - Informationen ... - \closing{Viel Spa"s} - \end{letter} - \end{document} -\end{lstlisting} -In diesem Beispiel wurde außerdem von der Möglichkeit Gebrauch -gemacht, die Anordnung des Schlussgrußes und der Signatur durch -Änderung der Anweisung \Macro{raggedsignature} zu beeinflussen. Dies ist -immer dann empfehlenswert, wenn die Signatur erheblich breiter als die -Grußfloskel ist.% -% -\EndIndex{Class}{scrlttr2}\EndIndex{}{Briefe} - -%%% Local Variables: -%%% mode: latex -%%% coding: iso-latin-1 -%%% TeX-master: "../guide.tex" -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/typearea.tex b/Master/texmf-dist/source/latex/koma-script/doc/german/typearea.tex deleted file mode 100644 index 94282dd92ca..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/doc/german/typearea.tex +++ /dev/null @@ -1,1394 +0,0 @@ -% ====================================================================== -% typearea.tex -% Copyright (c) Markus Kohm, 2001-2007 -% -% 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.3b of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3b 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. -% ---------------------------------------------------------------------- -% typearea.tex -% Copyright (c) Markus Kohm, 2001-2007 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3b, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3b 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. -% ====================================================================== -% -% Chapter about typearea of the KOMA-Script guide -% Maintained by Markus Kohm -% -% ---------------------------------------------------------------------- -% -% Kapitel über typearea in der KOMA-Script-Anleitung -% Verwaltet von Markus Kohm -% -% ====================================================================== - -\ProvidesFile{typearea.tex}[2006/11/29 KOMA-Script guide (chapter: typearea)] -\chapter{Satzspiegelberechnung mit \Package{typearea.sty}} -\labelbase{typearea} - -\section{Grundlagen der Satzspiegelkonstruktion} - -\begin{Explain} - Betrachtet man eine einzelne Seite eines Buches oder eines anderen - Druckwerkes, so besteht diese auf den ersten Blick aus den - Rändern\footnote{Der Autor und der Lektor haben an dieser Stelle überlegt, - ob eine Seite nicht nur einen umlaufenden Rand hat und daher von »dem - Rand« die Rede sein müsste. Da jedoch \LaTeX{} diesen einen Rand logisch - in mehrere Ränder unterteilt, die getrennt bestimmt werden, ist hier auch - von »den Rändern« die Rede.}, einem Kopfbereich, einem Textkörper und - einem Fußbereich. Genauer betrachtet kommt noch ein Abstand zwischen - Kopfbereich und Textkörper sowie zwischen Textkörper und Fußbereich hinzu. - Der Textkörper heißt in der Fachsprache der Typografen und Setzer - \emph{Satzspiegel}. Die Auf"|teilung dieser Bereiche, sowie ihre Anordnung - zueinander und auf dem Papier nennen wir \emph{Satzspiegeldefinition} oder - \emph{Satzspiegelkonstruktion}.\Index[indexmain]{Satzspiegel} - - In der Literatur werden verschiedene Algorithmen und heuristische Verfahren - zur Konstruktion eines guten Satzspiegels vorgeschlagen und diskutiert - \ifx\BUCH\undefined\cite{DANTE:TK0402:MJK}\else(siehe - \autoref{cha:typeareaconstruction})\fi. Häufig findet man dabei ein - Verfahren, das mit verschiedenen Diagonalen und Schnittpunkten arbeitet. Das - gewünschte Ergebnis dabei ist, dass das Seitenverhältnis des Satzspiegels - dem Seitenverhältnis \emph{der Seite} entspricht. Bei einem - einseitigen\Index{einseitig} Dokument sollen außerdem der linke und rechte - Rand gleich breit sein, während der obere zum unteren Rand im Verhältnis 1:2 - stehen sollte. Bei einem doppelseitigen\Index{doppelseitig} Dokument, - beispielsweise einem Buch, ist hingegen zu beachten, dass der gesamte innere - Rand genauso groß sein sollte wie jeder der beiden äußeren Ränder. Eine - einzelne Seite steuert dabei jeweils nur die Hälfte des inneren Randes bei. - - Im vorherigen Abschnitt wurde \emph{die Seite} erwähnt und - hervorgehoben. Irrtümlich wird oftmals angenommen, das Format der - Seite wäre mit dem Format des Papiers - gleichzusetzen.\Index[indexmain]{Seitenformat} - \Index[indexmain]{Papierformat} Betrachtet man jedoch ein gebundenes - Druckerzeugnis, so ist zu erkennen, dass ein Teil des Papiers in der - Bindung\Index[indexmain]{Bindung} verschwindet und nicht mehr als - Seite zu sehen ist. Für den Satzspiegel ist jedoch nicht - entscheidend, welches Format das Papier hat, sondern, was der Leser - für einen Eindruck vom Format der Seite bekommt. Damit ist klar, - dass bei der Berechnung des Satzspiegels der Teil, der durch die - Bindung versteckt wird, aus dem Papierformat herausgerechnet und - dann zum inneren Rand hinzugefügt werden muss. Wir nennen diesen - Teil \emph{Bindekorrektur}.\Index[indexmain]{Bindekorrektur} Die - Bindekorrektur ist also rechnerischer Bestandteil des - \emph{Bundstegs}\Index[indexmain]{Bundsteg} nicht jedoch des sichtbaren - inneren Randes. - - Die Bindekorrektur ist vom jeweiligen Produktionsvorgang abhängig - und kann nicht allgemein festgelegt werden. Es handelt sich dabei - also um einen Parameter, der für jeden Produktionsvorgang neu - festzulegen ist. Im professionellen Bereich spielt dieser Wert nur - eine geringe Rolle, da ohnehin auf größere Papierbögen gedruckt und - entsprechend geschnitten wird. Beim Schneiden wird dann wiederum - sichergestellt, dass obige Verhältnisse für die sichtbare - Doppelseite eingehalten sind. - - Wir wissen nun also, wie die einzelnen Teile zueinander stehen. - Wir wissen aber noch nicht, wie breit und hoch der Satzspiegel ist. - Kennen wir eines dieser beiden Maße, so ergeben sich zusammen mit - dem Papierformat und dem Seitenformat oder der Bindekorrektur alle - anderen Maße durch Lösung mehrerer mathematischer Gleichungen. - \begin{align*} - \Var{Satzspiegelhöhe}\index{Satzspiegel} : \Var{Satzspiegelbreite} &= - \Var{Seitenhöhe}\index{Seite} : \Var{Seitenbreite} \\ - \Var{oberer~Rand}\index{Rand} : \Var{unterer~Rand} &= \text{1} : \text{2} \\ -% - \Var{linker~Rand} : \Var{rechter~Rand} &= \text{1} : \text{1} \\ -% - \Var{innerer~Randanteil} : \Var{äußerer~Rand} &= \text{1} : \text{2} \\ -% - \Var{Seitenbreite} &= \Var{Papierbreite}\index{Papier} - \Var{Bindekorrektur}\index{Bindekorrektur}\index{Bindeanteil}\index{Bindung}\\ -% - \Var{oberer~Rand} + \Var{unterer~Rand} &= - \Var{Seitenhöhe} - \Var{Satzspiegelhöhe} \\ -% - \Var{linker~Rand} + \Var{rechter Rand} &= - \Var{Seitenbreite} - \Var{Satzspiegelbreite} \\ -% - \Var{innerer Randanteil} + \Var{äußerer Rand} &= - \Var{Seitenbreite} - \Var{Satzspiegelbreite} \\ -% - \Var{innerer~Randanteil} + \Var{Bindekorrektur} &= - \Var{Bundsteg}\index{Bundsteg} - \end{align*} - \Index[indexmain]{Rand}% - Dabei gibt es \Var{linker~Rand} und \Var{rechter~Rand} nur im einseitigen - Druck. Entsprechend gibt es \Var{innerer~Randanteil} und - \Var{äußerer~Rand} nur im doppelseitigen Druck. In den Gleichungen - wird mit \Var{innerer~Randanteil} gearbeitet, weil der ganze innere Rand zur - Doppelseite gehört. Zu einer Seite gehört also nur die Hälfte des inneren - Randes, der \Var{innerer~Randanteil}. - - Die Frage nach der Breite des Satzspiegels wird in der Literatur - ebenfalls diskutiert. Die optimale Satzspiegelbreite ist von - verschiedenen Faktoren abhängig: - \begin{itemize} - \item Größe, Laufweite und Art der verwendeten Schrift - \item Verwendeter Durchschuss - \item Länge der Worte - \item Verfügbarer Platz - \end{itemize} - Der Einfluss der Schrift wird deutlich, wenn man sich bewusst macht, - wozu Serifen dienen. Serifen\Index[indexmain]{Serifen} sind kleine - Striche an den Linienenden der Buchstaben. Buchstaben, die mit - vertikalen Linien auf die Grundlinie der Textzeile treffen, - lösen diese eher auf, als dass sie das Auge auf der Linie halten. - Genau bei diesen Buchstaben liegen die Serifen horizontal auf - der Grundlinie und verstärken damit die Zeilenwirkung der Schrift. - Das Auge kann der Textzeile nicht nur beim Lesen der Worte, sondern - insbesondere auch beim schnellen Zurückspringen an den Anfang der - nächsten Zeile besser folgen. Damit darf die Zeile bei einer Schrift - mit Serifen genau genommen länger sein als bei einer Schrift ohne Serifen. - - Unter dem Durchschuss\Index[indexmain]{Durchschuss} versteht man den - Abstand zwischen Textzeilen. Bei \LaTeX{} ist ein Durchschuss von - etwa 20\,\% der Schriftgröße voreingestellt. Mit Befehlen wie - \Macro{linespread}\IndexCmd{linespread} oder besser mit Hilfe von - Paketen wie \Package{setspace}\IndexPackage{setspace} (siehe - \cite{package:setspace}) kann der Durchschuss verändert werden. Ein - großer Durchschuss erleichtert dem Auge die Verfolgung einer Zeile. - Bei sehr großem Durchschuss wird das Lesen aber dadurch gestört, - dass das Auge zwischen den Zeilen weite Wege zurücklegen muss. - Daneben wird sich der Leser des entstehenden Streifeneffekts sehr - deutlich und unangenehm bewusst. Der Graueindruck der Seite ist in - diesem Fall gestört. Dennoch dürfen bei großem Durchschuss die - Zeilen länger sein. - - Auf der Suche nach konkreten Werten für gute - Zeilenlängen\Index[indexmain]{Zeilenlaenge=Zeilenlänge} findet man in - der Literatur je nach Autor unterschiedliche Angaben. Teilweise ist - dies auch in der Muttersprache des Autors begründet. Das Auge - springt nämlich üblicherweise von Wort zu Wort, wobei kurze Worte - diese Aufgabe erleichtern. Über alle Sprachen und Schriftarten - hinweg kann man sagen, dass eine Zeilenlänge von 60 bis 70 Zeichen, - einschließlich Leer- und Satzzeichen, einen brauchbaren Kompromiss - darstellen. Ein gut gewählter Durchschuss\Index{Durchschuss} wird - dabei vorausgesetzt. Bei den Voreinstellungen von \LaTeX{} braucht - man sich über letzteres normalerweise keine Sorgen zu machen. Größere - Zeilenlängen darf man nur Gewohnheitslesern zumuten, die täglich viele - Stunden lesend zubringen. Aber auch dann sind Zeilenlängen jenseits von 80 - Zeichen unzumutbar. In jedem Fall ist dann der Durchschuss anzupassen. 5\,\% - bis 10\,\% zusätzlich sind als Faustregel dann anzuraten. Bei Schriften wie - Palatino, die bereits bei einer normalen Zeilenlänge nach 5\,\% mehr - Durchschuss verlangt, können es auch mehr sein. - - Bevor wir uns an die konkrete Konstruktion machen, fehlen jetzt nur noch - Kleinigkeiten, die man wissen sollte. \LaTeX{} beginnt die erste Zeile des - Textbereichs einer Seite nicht am oberen Rand des Textbereichs, sondern - setzt die Zeile mit einem definierten Abstand zum oberen Rand des - Textbereichs. Desweiteren verfügt \LaTeX{} über die beiden Befehle - \Macro{raggedbottom}\IndexCmd{raggedbottom} und - \Macro{flushbottom}\IndexCmd{flushbottom}. Der erste dieser Befehle legt - fest, dass die letzte Zeile einer jeden Seite dort liegen soll, wo sie eben - zu liegen kommt. Das kann dazu führen, dass sich die Position der letzten - Zeile von Seite zu Seite vertikal um nahezu eine Zeile verändern kann -- bei - Zusammentreffen des Seitenendes mit Überschriften, Abbildungen, Tabellen oder - ähnlichem auch mehr. Im doppelseitigen Druck ist das in der Regel - unerwünscht. Mit dem zweiten Befehl, \Macro{flushbottom}, wird hingegen - festgelegt, dass die letzte Zeile immer am unteren Rand des Textbereichs zu - liegen kommt. Um diesen vertikalen Ausgleich zu erreichen, muss \LaTeX{} - gegebenenfalls dehnbare vertikale Abstände über das erlaubte Maß hinaus - strecken. Ein solcher Abstand ist beispielsweise der Absatzabstand. Dies - gilt in der Regel auch, wenn man gar keinen Absatzabstand verwendet. Um - nicht bereits auf normalen Seiten, auf denen der Absatzabstand das einzige - dehnbare vertikale Maß darstellt, eine Dehnung zu erzwingen, sollte die Höhe - des Textbereichs ein Vielfaches der Textzeilenhöhe zuzüglich des Abstands - der ersten Zeile vom oberen Rand des Textbereichs sein. - - Damit sind nun alle Grundlagen der Satzspiegelberechnung, die bei - {\KOMAScript} eine Rolle spielen, zusammengetragen. Wir können also - mit der konkreten Konstruktion beginnen. In den folgenden beiden Abschnitten - werden die zwei von {\KOMAScript} angebotenen Konstruktionen vorgestellt. -\end{Explain} - - -\section{Satzspiegelkonstruktion durch Teilung} -\label{sec:typearea.divConstruction} - -\begin{Explain} - Der einfachste Weg, um zu erreichen, dass der Textbereich dasselbe - Verhältnis aufweist wie die Seite, ist folgender. Zunächst zieht man - an der Innenseite des Papiers den Teil \Var{BCOR}, der für die - Bindekorrektur\Index{Bindekorrektur} benötigt wird, ab und teilt die - restliche Seite vertikal in eine Anzahl \Var{DIV} gleich hoher - Streifen. Dann teilt man die Seite horizontal in die gleiche Anzahl - \Var{DIV} gleich breiter Streifen. Nun verwendet man den obersten - horizontalen Streifen als oberen und die beiden untersten - horizontalen Streifen als unteren Rand. Im doppelseitigen Druck - verwendet man außerdem den innersten vertikalen Streifen als inneren - und die beiden äußersten vertikalen Streifen als äußeren Rand. Zum - inneren Rand gibt man dann noch \Var{BCOR} hinzu. Was nun innerhalb - der Seite noch übrig bleibt, ist der Textbereich.\Index{Textbereich} - Die Breite bzw. Höhe der Ränder und des Textbereichs resultiert - damit automatisch aus der Anzahl \Var{DIV} der Streifen. Da für die - Ränder insgesamt jeweils drei Streifen benötigt werden, muss - \Var{DIV} zwingend größer als drei sein. Damit der Satzspiegel mindestens - doppelt so viel Platz wie die Ränder einnimmt, sollte \Var{DIV} sogar - mindestens 9 betragen. Mit diesem Wert ist die Konstruktion auch als - \emph{klassische Neunteilung} bekannt. - - Bei {\KOMAScript} ist diese Art der Konstruktion im Paket - \Package{typearea} realisiert. Dabei sind für A4-Papier je nach - Schriftgröße unterschiedliche Werte voreingestellt, die - \autoref{tab:typearea.div} zu entnehmen sind. Bei Verzicht auf - Bindekorrektur, wenn also \Var{BCOR} = 0\Unit{pt} gilt, ergeben - sich in etwa die Satzspiegelmaße aus \autoref{tab:typearea.typearea}. - - Neben den voreingestellten Werten kann man \Var{BCOR} und \Var{DIV} - direkt beim Laden des Pakets als Option angeben (siehe - \autoref{sec:typearea.options}). Zusätzlich existiert ein - Befehl, mit dem man einen Satzspiegel explizit berechnen kann und - dem man die beiden Werte als Parameter übergibt (siehe ebenfalls - \autoref{sec:typearea.options}). - - Das \Package{typearea}-Paket bietet außerdem die Möglichkeit, den optimalen - \Var{DIV}-Wert automatisch zu bestimmen. Dieser ist von der Schrift und dem - Durchschuss abhängig, der zum Zeitpunkt der Satzspiegelberechnung - eingestellt ist. Siehe hierzu ebenfalls \autoref{sec:typearea.options}. -\end{Explain} - - -\section{Satzspiegelkonstruktion durch Kreisschlagen} -\label{sec:typearea.circleConstruction} - -\begin{Explain} - Neben der zuvor beschriebenen Satzspiegelkonstruktion\Index{Satzspiegel} - gibt es in der Literatur noch eine eher klassische oder sogar - mittelalterliche Methode. Bei diesem Verfahren will man die gleichen Werte - nicht nur in Form des Seitenverhältnisses wiederfinden; man geht außerdem - davon aus, dass das Optimum dann erreicht wird, wenn die Höhe des - Textbereichs der Breite der Seite entspricht. Das genaue Verfahren ist - beispielsweise in \cite{JTsch87} nachzulesen. - - Als Nachteil dieses spätmittelalterlichen Buchseitenkanons ergibt - sich, dass die Breite des Textbereichs nicht mehr von der Schriftart - abhängt. Es wird also nicht mehr der zur Schrift passende - Textbereich gewählt, stattdessen muss der Autor oder Setzer die zum - Textbereich passende Schrift wählen. Dies ist als zwingend zu - betrachten. - - Im \Package{typearea}-Paket wird diese Konstruktion dahingehend - abgewandelt, dass durch Auswahl eines ausgezeichneten -- normalerweise - unsinnigen -- \Var{DIV}-Wertes oder eine spezielle Paket-Option - derjenige \Var{DIV}-Wert ermittelt wird, bei dem der resultierende - Satzspiegel dem spätmittelalterlichen Buchseitenkanon am nächsten - kommt. -\iffalse -% Umbruchkorrekturtext - Bei Wahl einer guten Schrift stimmt dieses Ergebnis nicht selten mit der - Suche nach dem optimalen \Var{DIV}-Wert überein. Siehe hierzu ebenfalls - \autoref{sec:typearea.options}. -% -\fi -\end{Explain} - - -\section{Optionen und Makros zur Beeinflussung des Satzspiegels} -\label{sec:typearea.options} -% DIV, DIVcalc, DIVclassic, BCOR -% headinclude, headexclude, footinclude, footexclude, mpinclude, mpexclude -% \typearea, \areaset - -Das Paket \Package{typearea} bietet zwei unterschiedliche -Benutzerschnittstellen, um auf die Satzspiegelkonstruktion Einfluss zu -nehmen. Die erste Möglichkeit ist, beim Laden des Pakets entsprechende -Optionen anzugeben. Wie man Pakete lädt und Paketoptionen übergibt, -entnehmen Sie bitte der Literatur zu \LaTeX{}, beispielsweise -\cite{l2kurz} und \cite{latex:usrguide}, oder den auf den folgenden -Seiten aufgeführten -Beispielen. Da bei der Verwendung der \KOMAScript-Hauptklassen das -Paket \Package{typearea} automatisch geladen wird, müssen die -entsprechenden Paket-Optionen bei diesen Klassen auch direkt als -Klassen-Optionen übergeben werden (siehe -\autoref{sec:maincls.options}). - -\begin{Declaration} - \Option{BCOR}\PName{Korrektur} -\end{Declaration}% -\BeginIndex{Option}{BCOR}% -Mit Hilfe der Option \Option{BCOR}\PName{Korrektur} geben Sie den -absoluten Wert der Bindekorrektur\Index{Bindekorrektur} an, also -die Breite des Bereichs der durch die Bindung von der Papierbreite -verloren geht. Dieser Wert wird in der Satzspiegelkonstruktion -automatisch berücksichtigt und bei der Ausgabe wieder dem inneren -beziehungsweise linken Rand zugeschlagen. Als \PName{Korrektur} -können Sie jede von \TeX{} verstandene Maßeinheit angeben. - -\begin{Example} - Angenommen, Sie erstellen einen Finanzbericht. Das Ganze soll - einseitig in A4 gedruckt und anschließend in eine Klemmmappe - geheftet werden. Die Klemme der Mappe verdeckt 7,5\Unit{mm}. - Der Papierstapel ist sehr dünn, deshalb gehen beim Knicken und - Blättern durchschnittlich höchstens weitere 0,75\Unit{mm} - verloren. Sie schreiben dann also: -\begin{lstlisting} - \documentclass[a4paper]{report} - \usepackage[BCOR8.25mm]{typearea} -\end{lstlisting} - oder bei Verwendung einer \KOMAScript-Klasse: -\begin{lstlisting} - \documentclass[a4paper,BCOR8.25mm]{scrreprt} -\end{lstlisting} -\end{Example} - -Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer -der \KOMAScript-Klassen als Klassenoption übergeben werden muss. -Demgegenüber funktioniert dies bei Verwendung einer anderen Klasse -nur, wenn diese Klasse \Package{typearea} explizit unterstützt. Bei -den Standardklassen ist die Option also direkt beim Laden von -\Package{typearea} zu übergeben. Die Verwendung von -\Macro{PassOptionsToPackage} (siehe \cite{latex:clsguide}) vor dem -Laden von \Package{typearea} funktioniert hingegen immer. -% -\EndIndex{Option}{BCOR} - -\begin{Declaration} - \Option{DIV}\PName{Faktor} -\end{Declaration}% -\BeginIndex{Option}{DIV}% -Mit Hilfe der Option \Option{DIV}\PName{Faktor} wird festgelegt, in -wieviele Streifen die Seite horizontal und vertikal bei der -Satzspiegelkonstruktion eingeteilt wird. Die genaue Konstruktion ist -\autoref{sec:typearea.divConstruction} zu entnehmen. Wichtig zu -wissen ist, dass gilt: Je größer der \PName{Faktor} desto größer wird -der Textbereich und desto kleiner die Ränder. Als \PName{Faktor} kann -jeder ganzzahlige Wert ab 4 verwendet werden. Bitte beachten Sie -jedoch, dass sehr große Werte dazu führen können, dass Randbedingungen -der Satzspiegelkonstruktion, je nach Wahl der weiteren Optionen, -verletzt werden. So kann die Kopfzeile im Extremfall auch außerhalb -der Seite liegen. Bei Verwendung der Option \Option{DIV}\PName{Faktor} -sind Sie für die Einhaltung der Randbedingungen sowie eine nach -typografischen Gesichtspunkten günstige Zeilenlänge selbst -verantwortlich. - -In \autoref{tab:typearea.typearea} finden Sie für das Seitenformat A4 -ohne Bindekorrektur die aus einigen DIV-Faktoren -resultierenden Satzspiegelgrößen. Dabei werden die weiteren von der -Schriftgröße abhängigen Nebenbedingungen nicht berücksichtigt. - -\begin{table} - \centering - \caption{Satzspiegelma"se in Abh"angigkeit von \Var{DIV} bei A4} - \begin{tabular}{ccccc} - \toprule - & - \multicolumn{2}{c}{Satzspiegel} & \multicolumn{2}{c}{R"ander}\\ - %\raisebox{1.5ex}[0pt]{ - \Var{DIV} - %} - & - Breite [mm] & H"ohe [mm] & oben [mm] & innen [mm] \\ - \midrule - 6 & 105,00 & 148,50 & 49,50 & 35,00 \\ - 7 & 120,00 & 169,71 & 42,43 & 30,00 \\ - 8 & 131,25 & 185,63 & 37,13 & 26,25 \\ - 9 & 140,00 & 198,00 & 33,00 & 23,33 \\ - 10 & 147,00 & 207,90 & 29,70 & 21,00 \\ - 11 & 152,73 & 216,00 & 27,00 & 19,09 \\ - 12 & 157,50 & 222,75 & 24,75 & 17,50 \\ - 13 & 161,54 & 228,46 & 22,85 & 16,15 \\ - 14 & 165,00 & 233,36 & 21,21 & 15,00 \\ - 15 & 168,00 & 237,60 & 19,80 & 14,00 \\ - \bottomrule - \end{tabular} - \label{tab:typearea.typearea} -\end{table} - -\begin{Example} - Angenommen, Sie schreiben ein Sitzungsprotokoll. Sie verwenden dafür - die Klasse \Class{protokol}\footnote{Die Klasse \Class{protokol} ist - eine hypothetische Klasse. Diese Anleitung geht von dem Idealfall - aus, dass für jede Aufgabe eine dafür passende Klasse vorhanden - ist.}. Das Ganze soll doppelseitig werden. In Ihrer Firma wird die - Schriftart Bookman in 12\Unit{pt} verwendet. Diese Schriftart, die - zu den Standard-PostScript-Schriften gehört, wird in {\LaTeX} mit - der Anweisung \verb|\usepackage{bookman}| aktiviert. Die Schriftart - Bookman läuft sehr weit, das heißt, die einzelnen Zeichen sind im - Verhältnis zur Höhe relativ breit. Deshalb ist Ihnen die - Voreinstellung für den \Var{DIV}-Wert in \Package{typearea} zu - gering. Statt einem Wert von 12 sind Sie nach gründlichem Studium - dieses Kapitels einschließlich der weiterführenden Abschnitte - überzeugt, dass ein Wert 15 angebracht ist. Das Protokoll wird nicht - gebunden, sondern gelocht und in einen Ordner abgeheftet. Eine - Bindekorrektur ist deshalb nicht notwendig. Sie schreiben also: -\begin{lstlisting} - \documentclass[a4paper,twoside]{protokol} - \usepackage{bookman} - \usepackage[DIV15]{typearea} -\end{lstlisting} - Als Sie fertig sind, macht man Sie darauf aufmerksam, dass die - Protokolle neuerdings gesammelt und am Quartalsende alle zusammen - als Buch gebunden werden. Die Bindung erfolgt als - einfache Leimbindung, weil den Band ohnehin nie wieder jemand - anschaut und nur wegen ISO\,9000 angefertigt wird. Für die Bindung - einschließlich Biegefalz werden durchschnittlich 12\Unit{mm} - benötigt. Sie ändern die Optionen von \Package{typearea} also - entsprechend ab und verwenden die Klasse für Protokolle nach - ISO\,9000: -\begin{lstlisting} - \documentclass[a4paper,twoside]{iso9000p} - \usepackage{bookman} - \usepackage[DIV15,BCOR12mm]{typearea} -\end{lstlisting} - Natürlich können Sie auch hier wieder eine \KOMAScript-Klasse - verwenden: -\begin{lstlisting} - \documentclass[twoside,DIV15,BCOR12mm]{scrartcl} - \usepackage{bookman} -\end{lstlisting} - Die Option \Option{a4paper} konnte bei der Klasse \Class{scrartcl} entfallen, - da diese der Voreinstellung bei allen \KOMAScript-Klassen entspricht. -\end{Example} - -Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer der -\KOMAScript-Klassen als Klassenoption übergeben werden muss. Demgegenüber -funktioniert die Angabe als Klassenoption bei Verwendung einer anderen Klasse -nur, wenn diese Klasse \Package{typearea} explizit unterstützt. Bei den -Standardklassen ist die Option also direkt beim Laden von \Package{typearea} -zu übergeben. -\iftrue -% Umbruchoptimierungstext -Die Verwendung von \Macro{PassOptionsToPackage} (siehe \cite{latex:clsguide}) -vor dem Laden von \Package{typearea} und gegebenenfalls auch vor dem Laden der -Klasse funktioniert hingegen immer. -% -\fi -% -\EndIndex{Option}{DIV} - -\begin{Declaration} - \Option{DIVcalc}\\ - \Option{DIVclassic} -\end{Declaration}% -\BeginIndex{Option}{DIVcalc}% -\BeginIndex{Option}{DIVclassic}% -Wie bereits in \autoref{sec:typearea.divConstruction} erwähnt, gibt -es nur für das Papierformat A4 feste Voreinstellungen für den -\Var{DIV}-Wert. Diese sind \autoref{tab:typearea.div} zu entnehmen. Wird -ein anderes Papierformat gewählt, so berechnet \Package{typearea} -selbst einen guten \Var{DIV}-Wert. Natürlich können Sie diese -Berechnung auch für A4 wählen. Hierzu verwenden Sie einfach die Option -\Option{DIVcalc} an Stelle von \Option{DIV}\PName{Faktor}. -Selbstverständlich können Sie diese Option auch explizit bei allen -anderen Papierformaten angeben. Wenn Sie die automatische Berechnung -wünschen, ist diese Angabe sogar sinnvoll, da die Möglichkeit besteht, -in einer Konfigurationsdatei andere Voreinstellungen zu setzen (siehe -\autoref{sec:typearea.cfg}). Eine explizit angegebene Option \Option{DIVcalc} -überschreibt diese Vorkonfiguration aber. - -\begin{table} - \centering - \caption{\label{tab:typearea.div}\PName{DIV}-Voreinstellungen f"ur A4} - \begin{tabular}{lccc} - \toprule - Grundschriftgr"o"se: & 10\Unit{pt} & 11\Unit{pt} & 12\Unit{pt} \\ - \Var{DIV}: & 8 & 10 & 12 \\ - \bottomrule - \end{tabular} -\end{table} - -Die in \autoref{sec:typearea.circleConstruction} erwähnte klassische -Konstruktion, der mittelalterliche Buchseitenkanon, ist ebenfalls auswählbar. -Verwenden Sie in diesem Fall an Stelle von \Option{DIV}\PName{Faktor} oder -\Option{DIVcalc} einfach die Option \Option{DIVclassic}. Es wird dann ein -\Var{DIV}-Wert ermittelt, der dem mitterlalterlichen Buchseitenkanon möglichst -nahe kommt. - -\begin{Example} - In dem bei der Option \Option{DIV}\PName{Faktor} aufgeführten - Beispiel mit der Schriftart Bookman gab es ja genau das Problem, - dass man einen zur Schriftart besser passenden \Var{DIV}-Wert haben - wollte. Man könnte also in Abwandlung des ersten Beispiels auch - einfach die Ermittlung dieses Wertes \Package{typearea} überlassen: -\begin{lstlisting} - \documentclass[a4paper,twoside]{protokol} - \usepackage{bookman} - \usepackage[DIVcalc]{typearea} -\end{lstlisting} -\end{Example} - -\begin{Declaration} - \Macro{typearea}\OParameter{BCOR}\Parameter{DIV} -\end{Declaration}% -\BeginIndex{Cmd}{typearea}% -Wenn Sie bis hier die Beispiele aufmerksam verfolgt haben, werden Sie -sich fragen, wie man die Berechnung eines \Var{DIV}-Wertes in -Abhängigkeit von der gewählten Schrift erreicht, wenn eine -\KOMAScript-Klasse verwendet wird, also die Optionen für -\Package{typearea} vor dem Laden beispielsweise des -\Package{bookman}-Pakets erfolgen müsste. In diesem Fall könnte -\Package{typearea} nur einen Satzspiegel für die Standardschrift, nicht -jedoch für die dann tatsächlich verwendete Schrift Bookman berechnen. -Nach der Auswertung der Optionen berechnet das -\Package{typearea}-Paket den Satzspiegel mit Hilfe des Befehls -\Macro{typearea}\OParameter{BCOR}\Parameter{DIV}. Dabei werden der -gewählte \Var{BCOR}-Wert als optionaler Parameter und der -\Var{DIV}-Wert als Parameter übergeben. Bei der Option -\Option{DIVcalc} werden -dabei als \PName{DIV} der eigentlich ungültige Wert~1 und bei der -Option \Option{DIVclassic} der eigentlich ungültige -Wert~3 übergeben. Den Befehl \Macro{typearea} kann man auch -explizit in der Präambel aufrufen. - -\begin{Example} - Gehen wir wieder davon aus, dass für die Schriftart Bookman ein - Satzspiegel mit guter Zeilenlänge berechnet werden soll. - Gleichzeitig wird eine \KOMAScript-Klasse verwendet. Dies ist unter - Verwendung des \Macro{typearea}-Befehls mit dem - \Option{DIVcalc}-Wert 1 als \PName{DIV}-Parameter möglich: -\begin{lstlisting} - \documentclass[BCOR12mm,DIVcalc,twoside]{scrartcl} - \usepackage{bookman} - \typearea[12mm]{1}% entspricht obigen Optionen -\end{lstlisting} - Wiederum wurde darauf verzichtet, mit der Option \Option{a4paper} die - Voreinstellung der \KOMAScript-Klasse \Class{scrartcl} explizit zu - wiederholen. -\end{Example} - -Nun ist es möglicherweise etwas unpraktisch, wenn man bei der -\Option{DIV}-Option die Möglichkeit hat, \Option{DIVcalc} und -\Option{DIVclassic} anzuwenden, beim \Macro{typearea}-Befehl aber mit -irgendwelchen Pseudowerten jonglieren soll. Deshalb versteht \Macro{typearea} -für den Parameter \PName{DIV} auch die symbolischen Angaben aus -\autoref{tab:symbolicDIV}. - -\begin{table} - \caption[{Symbolische \PName{DIV}-Argumente für - \Macro{typearea}}]{Mögliche symbolische \PName{DIV}-Argumente für - \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}} - \label{tab:symbolicDIV} - \begin{desctabular} - \pventry{calc}{Satzspiegelberechnung einschließlich Ermittlung eines guten - \Var{DIV}-Wertes erneut durchführen.} - \pventry{classic}{Satzspiegelberechnung nach dem mittelalterlichen - Buchseitenkanon (Kreisberechnung) erneut durchführen.} - \pventry{current}{Satzspiegelberechnung mit dem aktuell gültigen - \Var{DIV}-Wert erneut durchführen.} - \pventry{default}{Satzspiegelberechnung mit dem Standardwert für das - aktuelle Seitenformat und die aktuelle Schriftgröße erneut durchführen. - Falls kein Standardwert existiert \PValue{calc} anwenden.} - \pventry{last}{Satzspiegelberechnung mit demselben \PName{DIV}-Argument, - das beim letzten Aufruf angegeben wurde, erneut durchführen} - \end{desctabular} -\end{table} - -Jetzt wäre es natürlich äußerst unpraktisch, wenn man zwar eine -Satzspiegelberechnung mit dem aktuellen \Var{DIV}-Wert erneut -durchführen könnte, jedoch dabei den \Var{BCOR}-Wert neu angeben -müsste. Deshalb versteht \Macro{typearea} für den Parameter \PName{BCOR} auch -die symbolische Angabe aus \autoref{tab:symbolicBCOR} - -\begin{table} - \caption[{Symbolische \PName{BCOR}-Argumente für - \Macro{typearea}}]{Mögliche symbolische \PName{BCOR}-Argumente für - \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}} - \label{tab:symbolicBCOR} - \begin{desctabular} - \pventry{current}{Satzspiegelberechnung mit dem aktuell gültigen - \Var{BCOR}-Wert erneut durchführen.} - \end{desctabular} -\end{table} - -\begin{Example} - Gehen wir wieder davon aus, dass für die Schriftart Bookman - ein Satzspiegel mit guter Zeilenlänge berechnet werden - soll. Gleichzeitig wird eine \KOMAScript-Klasse verwendet. Unter - Verwendung der symbolischen Parameterwerte für \PName{BCOR} und - \PName{DIV} ist dies mit dem \Macro{typearea}-Befehl einfach - möglich: -\begin{lstlisting} - \documentclass[BCOR12mm,DIVcalc,twoside]{scrartcl} - \usepackage{bookman} - \typearea[current]{calc} -\end{lstlisting} - Soll hingegen die neuerliche Berechnung mit einem festen - \Var{DIV}-Wert durchgeführt werden, so gibt es neben der - Möglichkeit: -\begin{lstlisting} - \documentclass[BCOR12mm,DIV11,twoside]{scrartcl} - \usepackage{bookman} - \typearea[current]{last} -\end{lstlisting} - natürlich auch noch die naheliegende Methode: -\begin{lstlisting} - \documentclass[twoside]{scrartcl} - \usepackage{bookman} - \typearea[12mm]{11} -\end{lstlisting} - Letztlich ist es eine Frage des Geschmacks, welche Lösung man lieber - verwendet. -\end{Example} - -Häufig wird die Satzspiegelneuberechnung im Zusammenhang mit der -Ver"-änderung des Zeilenabstandes -(\emph{Durchschuss})\Index{Durchschuss} benötigt. Da der -Satzspiegel unbedingt so berechnet werden sollte, dass eine ganze -Anzahl an Zeilen in den Textbereich passt, muss bei Verwendung -eines anderen Durchschusses als dem normalen der Satzspiegel für -diesen Zeilenabstand neu berechnet werden. - -\begin{Example} - Angenommen, für eine Diplomarbeit wird die Schriftgröße - 10\Unit{pt} bei eineinhalbzeiligem Satz zwingend gefordert. {\LaTeX} - setzt normalwerweise bei 10\Unit{pt} mit 2\Unit{pt} Durchschuss, - also 1,2-zeilig. Deshalb muss als zusätzlicher Dehnfaktor der Wert - 1,25 verwendet werden. Gehen wir außerdem davon aus, dass eine - Bindekorrektur von 12\Unit{mm} benötigt wird. Dann könnte die Lösung - dies Problems wie folgt aussehen: -\begin{lstlisting} - \documentclass[10pt,twoside,% - BCOR12mm,DIVcalc]{scrreprt} - \linespread{1.25} - \typearea[current]{last} -\end{lstlisting}\IndexCmd{linespread} - Da \Macro{typearea} selbst immer die Anweisung \Macro{normalsize} ausführt, - ist es nicht notwendig nach \Macro{linespread} den gewählten Durchschuss mit - \Macro{selectfont} zu aktiveren, damit dieser auch tatsächlich für die - Neuberechnung verwendet wird. - - Das gleiche Beispiel sähe unter Verwendung des - \Package{setspace}-Pakets (siehe \cite{package:setspace}) wie folgt - aus: -\begin{lstlisting} - \documentclass[10pt,twoside,% - BCOR12mm,DIVcalc]{scrreprt} - \usepackage{setspace} - \onehalfspacing - \typearea[current]{last} -\end{lstlisting} - Wie man sieht, spart man sich mit dem \Package{setspace}-Paket - das Wissen um den korrekten Dehnungswert. - - An dieser Stelle erscheint es mir angebracht, darauf hinzuweisen, - dass der Zeilenabstand für die Titelseite wieder auf den normalen - Wert zurückgesetzt werden sollte. Ein vollständiges Beispiel wäre - also: -\begin{lstlisting} - \documentclass[10pt,twoside,% - BCOR12mm,DIVcalc]{scrreprt} - \usepackage{setspace} - \onehalfspacing - \typearea[current]{last} - \begin{document} - \title{Title} - \author{Markus Kohm} - \begin{spacing}{1} - \maketitle - \tableofcontents - \end{spacing} - \chapter{Ok} - \end{document} -\end{lstlisting} - Siehe hierzu auch die Anmerkungen in \autoref{sec:typearea.tips}. -\end{Example} - -\begin{Explain} - Der Befehl \Macro{typearea} ist derzeit so definiert, dass es - theoretisch auch möglich wäre, mitten in einem Dokument den - Satzspiegel zu wechseln. Dabei werden allerdings Annahmen über den - Aufbau des \LaTeX-Kerns gemacht und interne Definitionen und Größen - des \LaTeX-Kerns verändert. Es gibt zwar eine gewisse - Wahrscheinlichkeit, aber keine Garantie, dass dies in zukünftigen - Versionen von \LaTeXe{} noch funktionieren wird. Es ist anzunehmen, - dass es bei \LaTeX3 nicht mehr zu einem korrekten Ergebnis führt. - Aber als Autor von {\KOMAScript} gehe ich derzeit davon aus, dass - der Umstieg zu \LaTeX3 mit sehr viel mehr Inkompatiblilitäten - einhergehen wird.\par -\end{Explain} -% -\EndIndex{Cmd}{typearea} -\EndIndex{Option}{DIVclassic}% -\EndIndex{Option}{DIVcalc} - -\begin{Explain}% -\begin{Declaration} - \Option{headinclude}\\ - \Option{headexclude}\\ - \Option{footinclude}\\ - \Option{footexclude} -\end{Declaration}% -\BeginIndex{Option}{headinclude}% -\BeginIndex{Option}{headexclude}% -\BeginIndex{Option}{footinclude}% -\BeginIndex{Option}{footexclude}% - Bisher wurde zwar erklärt, wie die - Satzspiegelkonstruktion\Index{Satzspiegel} - funktioniert und in welchem Verhältnis die Ränder\Index{Rand} zueinander und der - Textkörper zur Seite steht, aber eine entscheidende Frage blieb - ausgeklammert. Es handelt sich dabei um die Frage, was denn - eigentlich unter dem Rand zu verstehen ist. Auf den ersten Blick - wirkt diese Frage trivial: Der Rand ist der Teil der Seite, der - oben, unten, links und rechts frei bleibt. Doch das ist nur die - halbe Wahrheit. Der äußere Rand ist keineswegs immer leer. Teilweise - findet man darin noch gesetzte Randnotizen (siehe den Befehl - \Macro{marginpar} beispielsweise in \cite{l2kurz} bzw. - \autoref{sec:maincls.marginNotes}). - - Beim oberen und unteren Rand stellt sich die Frage, wie Kopf- und - Fußzeile\Index{Seitenkopf} \Index{Seitenfuß} zu behandeln sind. - Gehören diese beiden zum Textkörper oder - zum jeweiligen Rand? Die Frage ist nicht einfach zu beantworten. - Eindeutig ist, dass ein leerer Fuß und ein leerer Kopf zum Rand zu - rechnen sind. Schließlich können sie nicht vom restlichen Rand - unterschieden werden. Ein Fuß, der nur die - Paginierung\Index[indexmain]{Paginierung}\footnote{Unter der - Paginierung versteht man die Angabe - der Seitenzahl.} enthält, wirkt optisch ebenfalls eher wie Rand und - sollte deshalb zu diesem gerechnet werden. Für die optische Wirkung - ist dabei unwesentlich, ob der Fuß beim Lesen oder Überfliegen - leicht als Fuß erkannt werden kann oder nicht. Entscheidend ist, wie - eine wohlgefüllte Seite bei \emph{unscharfer Betrachtung} - wirkt. Dazu bedient man sich beispielsweise seiner - altersweitsichtigen Großeltern, denen man die Brille stibitzt und - dann die Seite etwa einen halben Meter von der Nasenspitze entfernt - hält. In Ermangelung erreichbarer Großeltern kann man sich auch - damit behelfen, dass man die eigenen Augen auf Fernsicht stellt, die - Seite aber nur mit ausgestreckten Armen hält. Brillenträger sind - hier deutlich im Vorteil. Hat man eine Fußzeile, die neben der - Paginierung weitere, weitschweifige Angaben enthält, beispielsweise - einen Copyright-Hinweis, so wirkt die Fußzeile eher wie ein etwas - abgesetzter Teil des Textkörpers. Bei der Berechnung des - Satzspiegels sollte das berücksichtigt werden. - - Bei der Kopfzeile sieht es noch schwieriger aus. In der Kopfzeile - wird häufig der - Kolumnentitel\Index[indexmain]{Kolumnentitel}\footnote{Unter dem - Kolumnentitel versteht man in der Regel die Wiederholung einer - Überschrift mit Titelcharakter. Er steht häufig im Seitenkopf, - seltener im Seitenfuß.} gesetzt. Arbeitet man mit einem - lebenden Kolumnentitel, also der Wiederholung der ersten bzw. - zweiten Gliederungsebene in der Kopfzeile, und hat gleichzeitig sehr - lange Überschriften, so erhält man automatisch sehr lange - Kopfzeilen. In diesem Fall wirkt der Kopf wiederum wie ein - abgesetzter Teil des Textkörpers und weniger wie leerer Rand. - Verstärkt wird dieser Effekt noch, wenn neben dem Kolumnentitel auch - die Paginierung im Kopf erfolgt. Dadurch erhält man einen links und - rechts abgeschlossenen Bereich, der kaum noch als leerer Rand wirkt. - Schwieriger ist es bei Paginierung im Fuß und Überschriften, deren - Länge sehr stark schwankt. Hier kann der Kopf der einen Seite wie - Textkörper wirken, der Kopf der anderen Seite jedoch eher wie Rand. - Keinesfalls sollte man die Seiten jedoch unterschiedlich behandeln. - Das würde zu vertikal springenden Köpfen führen und ist nicht einmal - für ein Daumenkino geeignet. Ich rate in diesem Fall dazu, den Kopf - zum Textkörper zu rechnen. - - Ganz einfach fällt die Entscheidung, wenn der Kopf oder Fuß durch - eine Linie vom eigentlichen Textkörper abgetrennt ist. Dadurch - erhält man eine geschlossene Wirkung und der Kopf bzw. Fuß sollte - unbedingt zum Textkörper gerechnet werden. Wie gesagt, die durch die - Trennlinie verbesserte Erkennung des Kopfes oder Fußes ist hier - unerheblich. Entscheidend ist die unscharfe Betrachtung.\par -\end{Explain} - -Das \Package{typearea}-Paket trifft die Entscheidung, ob ein Kopf oder -Fuß zum Textkörper gehört oder davon getrennt zum Rand gerechnet -werden muss, nicht selbst. Stattdessen kann mit der Option -\Option{headinclude} der Kopf und mit der Option \Option{footinclude} der Fuß -explizit zum Textkörper gezählt werden, während mit den Optionen -\Option{headexclude} und \Option{footexclude} der Kopf bzw. Fuß zum -Rand gerechnet wird. Wenn Sie unsicher sind, was die richtige -Einstellung ist, lesen Sie bitte obige Erläuterungen. Voreingestellt -sind normalerweise \Option{headexclude} und \Option{footexclude}. Dies -kann sich jedoch bei den \KOMAScript-Klassen je nach Klassenoption -oder bei Verwendung anderer \KOMAScript-Pakete generell ändern (siehe -\autoref{sec:maincls.options} und \autoref{cha:scrpage}). -% -\EndIndex{Option}{headinclude}% -\EndIndex{Option}{headexclude}% -\EndIndex{Option}{footinclude}% -\EndIndex{Option}{footexclude}% - - -\begin{Declaration} - \Option{mpinclude}\\ - \Option{mpexclude} -\end{Declaration} -\BeginIndex{Option}{mpinclude}% -\BeginIndex{Option}{mpexclude}% -Neben\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and - \Class{scrartcl}} Dokumenten, bei denen der Kopf und der Fuß der -Seite eher zum Textbereich als zum Rand gehört, gibt es auch -Dokumente, bei denen dies für Randnotizen zutrifft. Mit der Option -\Option{mpinclude} kann genau dies erreicht werden. Der Effekt dabei -ist, dass eine Breiteneinheit vom Textbereich weggenommen und als -Bereich für die Randnotizen verwendet wird. Mit der Option -\Option{mpexclude}, die der Voreinstellung entspricht, wird -hingegen ein Teil des Randes für Randnotizen verwendet. Dies ist, je -nachdem, ob einseitig oder doppelseitig gearbeitet wird, ebenfalls -eine Breiteneinheit oder auch eineinhalb Breiteneinheiten. In der -Regel ist die Verwendung von \Option{mpinclude} nicht anzuraten -beziehungsweise sollte Experten vorbehalten bleiben. - -\begin{Explain} -In den meisten Fällen, in denen die Option \Option{mpinclude} sinnvoll -ist, werden außerdem breitere Randnotizen benötigt. In sehr vielen -Fällen sollte dabei aber nicht die gesamte Breite, sondern nur ein -Teil davon, dem Textbereich zugeordnet werden. Dies ist beispielsweise -der Fall, wenn der Rand für Zitate verwendet wird. Solche Zitate -werden üblicherweise im Flattersatz gesetzt, wobei die bündige Kante -an den Textbereich anschließt. Da sich kein geschlossener optischer -Eindruck ergibt, dürfen die flatternden Enden also durchaus teilweise -in den Rand ragen. Man kann das einfach erreichen, indem man zum einen -die Option \Option{mpinclude} verwendet. Zum anderen vergrößert man -die Länge \Length{marginparwidth} nach der Berechnung des Satzspiegels -noch mit Hilfe der \Macro{addtolength}-Anweisung. Um welchen Wert man -vergrößern sollte, hängt vom Einzelfall ab und erfordert einiges -Fingerspitzengefühl. Auch deshalb ist die Option \Option{mpinclude} -eher etwas für Experten. Natürlich kann man auch festlegen, dass die -Randnotizen beispielsweise zu einem Drittel in den Rand hineinragen -sollen. Im Beispiel würde man das mit -\begin{lstlisting} - \setlength{\marginparwidth}{1.5\marginparwidth} -\end{lstlisting} -erreichen. - -Da es derzeit keine Option gibt, um mehr Platz für die Randnotizen -innerhalb des Textbereichs vorzusehen, gibt es nur eine -Möglichkeit dies zu erreichen. Man verzichtet auf die Option -\Option{mpinclude}, verringert nach der Satzspiegelberechnung die -Breite des Textbereichs \Macro{textwidth} und setzt die Breite des -Bereichs der Randnotizen auf den Wert, um den man die Breite des -Textbereichs verringert hat. Leider lässt sich dieses Vorgehen nicht -mit der automatischen Berechnung des \PName{DIV}-Wertes verbinden. -Demgegenüber wird \Option{mpinclude} bei -\Option{DIVcalc}\IndexOption{DIVcalc} berücksichtigt. -\end{Explain} -% -\EndIndex{Option}{mpinclude}% -\EndIndex{Option}{mpexclude}% - - -\begin{Declaration} - \PName{Wert}\Option{headlines} -\end{Declaration}% -\BeginIndex{Option}{headlines}% -Es ist nun also bekannt, wie man Satzspiegel mit dem -\Package{typearea}-Paket berechnet und wie man dabei angibt, ob der -Kopf oder Fuß zum Textkörper oder zum Rand gehört. Insbesondere für -den Kopf fehlt aber noch die Angabe, wie hoch er denn eigentlich sein -soll. Hierzu dient die Option \Option{headlines}, der man die Anzahl -der Kopfzeilen voranstellt. Normalerweise arbeitet das -\Package{typearea}-Paket mit 1,25 Kopfzeilen. Dieser Wert stellt einen -Kompromiss dar. Zum einen ist er groß genug, um auch für eine -unterstrichene Kopfzeile (siehe \autoref{sec:maincls.options}) -Platz zu bieten, zum anderen ist er klein genug, um das Randgewicht -nicht zu stark zu verändern, wenn mit einer einfachen, nicht -unterstrichenen Kopfzeile gearbeitet wird. Damit ist der -voreingestellte Wert in den meisten Standardfällen ein guter Wert. -In einigen Fällen will oder muss man aber die Kopfhöhe genauer den -tatsächlichen Erfordernissen anpassen. - -\begin{Example} - Angenommen, es soll ein Text mit einem zweizeiligen Kopf erstellt - werden. Normalerweise würde dies dazu führen, dass auf jeder Seite - eine Warnung »\texttt{overfull} \Macro{vbox}« von {\LaTeX} - ausgegeben würde. Um dies zu verhindern, wird das - \Package{typearea}-Paket angewiesen, einen entsprechenden Satzspiegel - zu berechnen: -\begin{lstlisting} - \documentclass[a4paper]{article} - \usepackage[2.1headlines]{typearea} -\end{lstlisting} - Bei Verwendung einer \KOMAScript-Klasse muss die Option auch wieder - direkt an die Klasse übergeben werden: -\begin{lstlisting} - \documentclass[a4paper,2.1headlines]{scrartcl} -\end{lstlisting} - Befehle, mit denen dann der Inhalt der zweizeiligen Kopfzeile - definiert werden kann, sind in \autoref{cha:scrpage} zu finden. -\end{Example} - -Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer -der \KOMAScript-Klassen als Klassenoption übergeben werden muss. -Demgegenüber funktioniert dies bei Verwendung einer anderen Klasse -nur, wenn diese Klasse \Package{typearea} explizit unterstützt. Bei -den Standardklassen ist die Option also direkt beim Laden von -\Package{typearea} zu übergeben. Die Verwendung von -\Macro{PassOptionsToPackage} (siehe \cite{latex:clsguide}) vor dem -Laden von \Package{typearea} funktioniert hingegen immer. -% -\EndIndex{Option}{headlines} - - -\begin{Declaration} - \Macro{areaset}\OParameter{BCOR}\Parameter{Breite}\Parameter{Höhe} -\end{Declaration}% -\BeginIndex{Cmd}{areaset}% -Bis hier wurde nun eine Menge darüber erzählt, wie man einen guten -oder sogar sehr guten Satzspiegel\Index{Satzspiegel} für -Standardanwendungen erstellt bzw. wie das -\Package{typearea}-Paket dem Anwender diese Arbeit weitgehend -abnimmt, ihm aber gleichzeitig Möglichkeiten der Einflussnahme -bietet. Es gibt jedoch auch Fälle, in denen der Textkörper eine -bestimmte Größe exakt einhalten soll, ohne dass dabei auf gute -Satzspiegelkonstruktion oder auf weitere Nebenbedingungen zu -achten ist. Trotzdem sollen die Ränder so gut wie möglich -verteilt und dabei gegebenenfalls auch eine Bindekorrektur -berücksichtigt werden. Das \Package{typearea}-Paket bietet -hierfür den Befehl \Macro{areaset}, dem man neben der optionalen -Bindekorrektur als Parameter die Breite und Höhe des Textbereichs -übergibt. Die Ränder und deren Verteilung werden dann automatisch -berechnet, wobei gegebenenfalls auch die Paketoptionen -\Option{headinclude}, \Option{headexclude}, sowie -\Option{footinclude} und \Option{footexclude} berücksichtigt -werden. - -\begin{Example} - Angenommen, ein Text auf A4-Papier soll genau die Breite von 60 - Zeichen in der Typewriter-Schrift haben und exakt 30 Zeilen je Seite - besitzen. Dann könnte mit folgender Präambel gearbeitet werden: -\begin{lstlisting} - \documentclass[a4paper,11pt]{article} - \usepackage{typearea} - \newlength{\CharsLX}% Breite von 60 Zeichen - \newlength{\LinesXXX}% Hoehe von 30 Zeilen - \settowidth{\CharsLX}{\texttt{1234567890}} - \setlength{\CharsLX}{6\CharsLX} - \setlength{\LinesXXX}{\topskip} - \addtolength{\LinesXXX}{29\baselineskip} - \areaset{\CharsLX}{\LinesXXX} -\end{lstlisting} - Der Faktor von 29 statt 30 ist damit begründet, dass die Grundlinie der - obersten Zeile bereits am obersten Rand des um \Macro{topskip} verringerten - Satzspiegels liegt, solange die Höhe der obersten Zeile kleiner als - \Macro{topskip} ist. Die oberste Zeile benötigt damit keine Höhe. Die - Unterlängen der untersten Zeile ragen dafür unter den Satzspiegel. - -\item Soll stattdessen ein Gedichtband gesetzt werden, bei dem es nur - darauf ankommt, dass der Textbereich genau quadratisch mit einer - Seitenlänge von 15\Unit{cm} ist, wobei ein Binderand von - 1\Unit{cm} zu berücksichtigen ist, so kann dies wie folgt - erreicht werden: -\begin{lstlisting} - \documentclass{gedichte} - \usepackage{typearea} - \areaset[1cm]{15cm}{15cm} -\end{lstlisting} -\end{Example} -\EndIndex{Cmd}{areaset} - -Wenn Sie konkrete Vorgaben bezüglich der Ränder zu erfüllen haben, ist -\Package{typearea} nicht geeignet. In diesem Fall ist die Verwendung des -Paketes \Package{geometry} (siehe \cite{package:geometry}) empfehlenswert. - - -\section{Optionen und Makros zur Auswahl des Papierformats} -\label{sec:typearea.paperTypes} - -\Index{Papierformat}% -Die \LaTeX-Standardklassen unterstützen mit -den Klassenoptionen \Option{a4paper}, \Option{a5paper}, \Option{b5paper}, -\Option{letterpaper}, \Option{legalpaper} und -\Option{executivepaper} die Papierformate A4 und A5 aus der -ISO-A-Reihe, B5 aus der ISO-B-Reihe, sowie die amerikanischen Formate -letter, legal und executive. -\begin{Declaration} - \Option{letterpaper} \\ - \Option{legalpaper} \\ - \Option{executivepaper} \\ - \Option{a\Var{X}paper} \\ - \Option{b\Var{X}paper} \\ - \Option{c\Var{X}paper} \\ - \Option{d\Var{X}paper} \\ - \Option{landscape} \\ - \Macro{isopaper}\OParameter{Reihe}\Parameter{Formatnummer} -\end{Declaration}% -\BeginIndex{Option}{letterpaper} -\BeginIndex{Option}{legalpaper} -\BeginIndex{Option}{executivepaper} -\BeginIndex{Option}{a0paper} -\BeginIndex{Option}{b0paper} -\BeginIndex{Option}{c0paper} -\BeginIndex{Option}{d0paper} -\BeginIndex{Option}{landscape} -\BeginIndex{Cmd}{isopaper}% -Die drei amerikanischen Formate werden vom \Package{typearea}-Paket in -gleicher Weise unterstützt. Darüber hinaus werden jedoch alle Formate -der ISO-A-, ISO-B-, ISO-C- und ISO-D-Reihe durch Ableitung aus den -jeweiligen Grundgrößen A0, B0, C0 und D0 unterstützt. Diese können -ebenfalls direkt durch entsprechende Optionen \Option{a0paper}, -\Option{a1paper} usw. ausgewählt werden. Genau wie bei den -Standardklassen ist es mit dem \Package{typearea}-Paket möglich, durch -zusätzliche Verwendung der Paketoption \Option{landscape} das -jeweilige Querformat zu wählen. - -Alternativ kann beim \Package{typearea}-Paket die Papiergröße mit -Hilfe des Befehls \Macro{isopaper} eingestellt werden. Danach muss -allerdings der Satzspiegel mit Hilfe des Befehls \Macro{typearea} oder -\Macro{areaset} neu berechnet werden. Ich rate deshalb von der -Verwendung des Befehls \Macro{isopaper} ab. - -\begin{Example} - Angenommen, es soll eine Karteikarte im Format ISO-A8 quer bedruckt - werden. Dabei sollen die Ränder sehr klein gewählt werden. Außerdem - wird auf eine Kopf- und eine Fußzeile verzichtet. -\begin{lstlisting} - \documentclass{article} - \usepackage[headexclude,footexclude,% - a8paper,landscape]{typearea} - \areaset{7cm}{5cm} - \pagestyle{empty} - \begin{document} - \section*{Papieroptionen} - letterpaper, legalpaper, executivepaper, a0paper, - a1paper \dots\ b0paper, b1paper \dots\ c0paper, - c1paper \dots\ d0paper, d1paper \dots - \end{document} -\end{lstlisting} -\end{Example} - -Bitte beachten Sie unbedingt, dass alle \Option{a\Var{X}paper}-, -\Option{b\Var{X}paper}-, \Option{c\Var{X}paper}- und -\Option{d\Var{X}paper}-Optionen mit Ausnahme von \Option{a4paper} und -\Option{a5paper} bei Verwendung einer der \KOMAScript-Klassen als -Klassenoption übergeben werden müssen. Demgegenüber funktioniert dies -bei Verwendung einer anderen Klasse nur, wenn diese Klasse -\Package{typearea} explizit unterstützt. Bei den Standardklassen sind -die Optionen also direkt beim Laden von \Package{typearea} zu -übergeben. Die Verwendung von \Macro{PassOptionsToPackage} (siehe -\cite{latex:clsguide}) vor dem Laden von \Package{typearea} -funktioniert hingegen immer. -% -\EndIndex{Option}{letterpaper} -\EndIndex{Option}{legalpaper} -\EndIndex{Option}{executivepaper} -\EndIndex{Option}{a0paper} -\EndIndex{Option}{b0paper} -\EndIndex{Option}{c0paper} -\EndIndex{Option}{d0paper} -\EndIndex{Option}{landscape} -\EndIndex{Cmd}{isopaper} - -\begin{Declaration} - \Macro{paperwidth}\\ - \Macro{paperheight} -\end{Declaration}% -\BeginIndex{Cmd}{paperwidth}% -\BeginIndex{Cmd}{paperheight}% -Für besonders exotische Papierformate, die weder durch die oben -angegebenen amerikanischen Formate noch durch eines der Formate der vier -ISO-Reihen abgedeckt sind, können direkt die Längen \Macro{paperwidth} -und \Macro{paperheight} gesetzt werden. Danach muss allerdings der -Satzspiegel für dieses Format mit einem der Befehle \Macro{typearea} -oder \Macro{areaset} neu berechnet werden. -\begin{Example} - Angenommen, es soll auf Endlospapier mit den Maßen - \(8\frac{1}{4}\Unit{inch} \times 12\Unit{inch}\) gedruckt werden. - Dieses Papierformat wird von \Package{typearea} nicht direkt - unterstützt. Das Papierformat muss daher vor der Berechnung des - Satzspiegels definiert werden: -\begin{lstlisting} - \documentclass{article} - \usepackage{typearea} - \setlength{\paperwidth}{8.25in} - \setlength{\paperheight}{12in} - \typearea{1} -\end{lstlisting} -\end{Example} -\EndIndex{Cmd}{paperheight} -\EndIndex{Cmd}{paperwidth} - -\begin{Explain}% -\begin{Declaration} - \Option{dvips}\\ - \Option{pdftex}\\ - \Option{pagesize} -\end{Declaration}% -\BeginIndex{Option}{dvips}% -\BeginIndex{Option}{pdftex}% -\BeginIndex{Option}{pagesize}% - Die oben genannten Mechanismen zur Auswahl des Papierformats haben - genau genommen nur insofern einen Einfluss auf die Ausgabe, dass - gewisse interne {\LaTeX}-Maße so gesetzt werden, dass bestimmte - Bereiche der Seite, wie Kopf, Textkörper und Fuß so angeordnet und - von \Package{typearea} so berechnet werden, dass sie auf - entsprechendes Papier ausgedruckt werden können. Die Spezifikation - des DVI-Formats\Index{DVI} sieht aber an keiner Stelle - Angaben zum Papierformat - vor. Wird direkt aus dem DVI-Format in eine Low-Level-Druckersprache - wie PCL\footnote{PCL ist die Druckersprache, die HP für seine - Tinten- und Laserdrucker verwendet.} oder ESC/P2\footnote{ESC/P2 - ist die Druckersprache, die EPSON für seine Nadel-, Tinten- und - Laserdrucker benutzt.} ausgegeben, spielt dies - normalerweiser keine Rolle, da auch bei diesen Ausgaben der - 0-Bezugspunkt wie bei DVI links oben liegt. Wird aber in Sprachen - wie PostScript\Index{PostScript} oder PDF\Index{PDF} übersetzt, - bei denen der 0-Bezugspunkt an - anderer Stelle liegt und außerdem das Papierformat in der - Ausgabedatei angegeben werden kann, so fehlt diese Information in - der DVI-Datei. Als Lösung des Problems verwendet der entsprechende - Treiber eine voreingestellte Papiergröße, die der Anwender entweder - per Option oder durch entsprechende Angabe in der {\TeX}-Quelldatei - verändern kann. Bei Verwendung des DVI-Treibers \File{dvips} kann - diese Angabe in Form einer \Macro{special}-Anweisung erfolgen. Bei - {pdf\TeX} werden stattdessen zwei Längen entsprechend gesetzt.\par -\end{Explain} -Mit der Option \Option{dvips} wird erreicht, dass die Papiergröße als -\Macro{special} in die DVI-Datei geschrieben wird. Dieses -\Macro{special} wird beispielsweise von \File{dvips} -ausgewertet. Demgegenüber schreibt die Option \Option{pdftex} die -Papiergröße am Anfang des Dokuments in die {pdf\TeX}-Seitenregister, -so dass später beim Betrachten der erzeugten PDF-Datei das korrekte -Format angegeben wird. Die Option \Option{pagesize} verhält sich -flexibler und verwendet je nachdem, ob eine PDF- oder eine DVI-Datei -ausgegeben wird, den Mechanismus der Option \Option{dvips} oder der -Option \Option{pdftex}. -\begin{Example} - Angenommen, es soll ein Dokument sowohl als DVI-Datei verwendet - werden, als auch eine Online-Version im PDF-Format erstellt - werden. Dann könnte die Präambel beispielsweise so beginnen: -\begin{lstlisting} - \documentclass{article} - \usepackage[a4paper,pagesize]{typearea} -\end{lstlisting} - Wird nun für die Bearbeitung {pdf\TeX} verwendet \emph{und} die - PDF-Ausgabe aktiviert, so werden die beiden Größen - \Macro{pdfpagewidth} und \Macro{pdfpageheight} entsprechend gesetzt. - Wird jedoch eine DVI-Datei erzeugt -- egal ob mit {\LaTeX} oder - {pdf\LaTeX} --, so wird ein \Macro{special} an den Anfang dieser - Datei geschrieben. -\end{Example}\IndexCmd{pdfpagewidth}\IndexCmd{pdfpageheight} -\EndIndex{Option}{dvips}% -\EndIndex{Option}{pdftex}% -\EndIndex{Option}{pagesize}% - - -\section{Kleinigkeiten ohne direkten Bezug zum Satzspiegel} -\label{sec:typearea.else} - -Manchmal ist es wünschenswert, in einem Dokument abhängig vom -Ausgabeformat bestimmte Dinge anders zu machen. Normalerweise -verwendet {\TeX} das Ausgabeformat DVI. Mit {pdf\TeX} ist aber die -Wahlmöglichkeit hinzugekommen, statt einer DVI-Datei eine PDF-Datei -direkt zu erzeugen. - -\begin{Declaration} - \Macro{ifpdfoutput}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} -\end{Declaration}% -\BeginIndex{Cmd}{ifpdfoutput}% -Der Befehl \Macro{ifpdfoutput} stellt eine Verzweigung dar. Wurde die -PDF-Ausgabe aktiviert, so wird der \PName{Dann-Teil} ausgeführt. Wurde die -PDF-Ausgabe nicht aktiviert oder wird überhaupt kein {pdf\TeX} verwendet, so -wird der \PName{Sonst-Teil} ausgeführt. -\begin{Example} - Bekanntlich gibt {pdf\LaTeX} ebenfalls eine DVI-Datei an Stelle - einer PDF-Datei aus, wenn der Zähler \Macro{pdfoutput} auf 0 gesetzt - ist. Nur bei einem von 0 verschiedenen Wert wird eine PDF-Datei - ausgegeben. Da andererseits \Macro{pdfoutput} unbekannt ist, wenn - {\LaTeX} statt {pdf\LaTeX} verwendet wird, kann man - \Macro{pdfoutput} auch nicht einfach generell auf 0 setzen, um - DVI-Ausgabe zu erhalten. Eine einfache Lösung ist folgende Zeile: -\begin{lstlisting} - \ifpdfoutput{\pdfoutput=0}{} -\end{lstlisting} - Übrigens setzten manche Pakete \Macro{pdfoutput} einfach auf 1, - sobald der Zähler existiert. In einigen Fällen ist das aber gar - nicht erwünscht. Auch dann kann obige Zeile nach dem Laden des - entsprechenden Pakets hilfreich sein. Selbstverständlich muss dafür - das \Package{typearea}-Paket geladen sein. Eine Kombination mit der - Anweisung \Macro{AfterPackage}\IndexCmd{AfterPackage} des - \Package{scrlfile}-Paketes ist ebenfalls möglich (siehe dazu - \autoref{cha:scrlfile}). -\end{Example}\IndexCmd{pdfoutput} -\EndIndex{Cmd}{ifpdfoutput} - -\section{Lokale Einstellungen durch die Datei \File{typearea.cfg}} -\label{sec:typearea.cfg} -\BeginIndex{File}{typearea.cfg}% -Noch vor der Abarbeitung der Paketoptionen prüft \Package{typearea}, -ob eine Datei \File{typearea.cfg} existiert und lädt diese -gegebenenfalls. Es ist daher möglich, in dieser Konfigurationsdatei -beispielsweise zusätzliche Optionen für weitere Papierformate zu -definieren. - -\begin{Explain}% -\begin{Declaration} - \Macro{SetDIVList}\Parameter{Liste} -\end{Declaration}% -\BeginIndex{Cmd}{SetDIVList}% -Ebenfalls zur Verwendung in dieser Konfigurationsdatei war -ursprünglich der Befehl \Macro{SetDIVList} vorgesehen. Bevor die -Option \Option{DIVcalc} existierte, war dies die einzige Möglichkeit, -für unterschiedliche Schriftgrößen und Papierformate unterschiedliche -Voreinstellungen für den \Var{DIV}-Wert zu definieren. Die Liste -besteht dabei aus einer Reihe von Werten in geschweiften Klammern. Der -Wert ganz links ist für die Schriftgröße 10\Unit{pt}, der nächste -für 11\Unit{pt}, der dritte für 12\Unit{pt} usw. vorgesehen. -Wird keine Liste mit \Macro{SetDIVList} gesetzt, so entspricht dies -\Macro{SetDIVList}% -\PParameter{\PParameter{8}\PParameter{10}\PParameter{12}}. -Ist für eine Schriftgröße kein Standardwert gesetzt, so wird -stattdessen 10 verwendet.\par -\end{Explain} - -Dieser Befehl sollte nicht mehr verwendet werden. Stattdessen wird -empfohlen, einen günstigen Satzspiegel automatisch berechnen zu lassen -(siehe \autoref{sec:typearea.options}). -% -\EndIndex{Cmd}{SetDIVList} - -% -\EndIndex{File}{typearea.cfg} - - -\section{Tipps} -\label{sec:typearea.tips} -\begin{Explain} - Insbesondere für die Erstellung von schriftlichen Arbeiten während - des Studiums findet man häufig Vorschriften, die einer - typografischen Begutachtung nicht nur in keinster Weise standhalten, - sondern massiv gegen alle Regeln der Typografie verstoßen. Ursache - für solche Regeln ist oft typografische Inkompetenz - derjenigen, die sie herausgeben. Manchmal ist die Ursache auch im - Ausgangspunkt begründet, nämlich der Schreibmaschine. Mit einer - Schreibmaschine oder einer Textverarbeitung von 1980 ist es ohne - erheblichen Aufwand kaum möglich, typografisch perfekte Ergebnisse - zu erzielen. Also wurden einst Vorschriften erlassen, die leicht - erfüllbar schienen und dem Korrektor trotzdem entgegen kommen. Dazu - zählen dann Randeinstellungen, die für einseitigen Druck mit einer - Schreibmaschine zu brauchbaren Zeilenlängen führen. Um nicht extrem - kurze Zeilen zu erhalten, die durch Flattersatz zudem verschlimmert - werden, werden die Ränder schmal gehalten und für Korrekturen - stattdessen ein großer Durchschuss in Form von eineinhalbzeiligem - Satz vorgeschrieben. Bevor moderne Textverarbeitungssysteme - verfügbar wurden, wäre -- außer mit {\TeX} -- einzeiliger Satz die - einzige Alternative gewesen. Dabei wäre dann selbst das Anbringen - von Korrekturzeichen schwierig geworden. Als die Verwendung von - Computern für die Erstellung schriftlicher Arbeiten üblicher wurde, - hat sich manches Mal auch der Spieltrieb des einen oder anderen - Studenten gezeigt, der durch Verwendung einer Schmuckschrift seine - Arbeit aufpeppen und so eine bessere Note mit weniger Einsatz - herausschinden wollte. Nicht bedacht hat er dabei, dass solche - Schriften schlechter zu lesen und deshalb für den Zweck ungeeignet - sind. Damit hielten zwei Brotschriften Einzug in die Vorschriften, - die weder zusammenpassen noch im Falle von Times wirklich gut - geeignet sind. Times ist eine relativ enge Schrift, die Anfang des - 20.~Jahrhunderts speziell für schmale Spalten im englischen - Zeitungssatz entworfen wurde. In modernen Schnitten ist dies etwas - entschärft. Dennoch passt die häufig vorgeschriebene Times meist - nicht zu den gleichzeitig gegebenen Randvorgaben. - - {\LaTeX} setzt bereits von sich aus mit ausreichendem Durchschuss. - Gleichzeitig sind die Ränder bei sinnvollen Zeilenlängen groß - genug, um Platz für Korrekturen zu bieten. Dabei wirkt die Seite - trotz einer Fülle von Text großzügig angelegt. -% Bedarfsteil um den Seitenumbruch zu verbessern: -% Bei Verwendung von -% \Package{typearea} wird dies eher noch verstärkt. Dies gilt -% insbesondere dann, wenn die Berechnung der Zeilenlänge ebenfalls -% \Package{typearea} überlassen oder nur geringfügig davon abgewichen -% wird. Für Schriftarten, die empfindlich auf lange Zeilen reagieren, -% kann der Textkörper außerdem sehr leicht schmaler gewählt werden. - - Oft sind die typografisch mehr als fragwürdigen - Satzvorschriften mit {\LaTeX} auch außerodentlich schwierig - umzusetzen. So kann eine feste Anzahl von »Anschlägen« nur dann - eingehalten werden, wenn keine proportionale Schrift verwendet wird. - Es gibt nur wenige gute nichtproportionale Schriften. Kaum ein Text, - der mit einer derartigen Schrift gesetzt ist, wirkt wirklich gut. So - wird häufig versucht, durch ausladende Serifen beispielsweise beim - kleinen »i« oder »l« die unterschiedliche Breite der Zeichen - auszugleichen. Dies kann nicht funktionieren. Im Ergebnis wirkt der - Text unruhig und zerrissen. Außerdem verträgt sich eine solche - Schrift kaum mit dem im deutschen Sprachraum üblichen und allgemein - vorzuziehenden Blocksatz. Gewisse Vorgaben können daher bei - Verwendung von {\LaTeX} nur ignoriert oder großzügig ausgelegt - werden, etwa indem man »60~Anschläge pro Zeile« nicht als feste, - sondern als durchschnittliche oder maximale Angabe interpretiert. - \par -\end{Explain} - -Wie ausgeführt, sind Satzvorschriften meist dazu gedacht, ein -brauchbares Ergebnis zu erhalten, auch wenn der Ausführende selbst -nicht weiß, was dabei zu beachten ist. Brauchbar bedeutet häufig: -lesbar und korrigierbar. Nach meiner Auf"|fassung wird ein mit -{\LaTeX} und dem \Package{typearea}-Paket gesetzter Text bezüglich -des Satzspiegels diesen Anforderungen von vornherein gerecht. Wenn Sie -also mit Vorschriften konfrontiert sind, die offensichtlich erheblich -davon abweichen, so empfehle ich, dem Betreuer einen Textauszug -vorzulegen und nachzufragen, ob es gestattet ist, die Arbeit trotz der -Abweichungen in dieser Form zu liefern. Gegebenenfalls kann durch -Veränderung der Option \Option{DIV} der Satzspiegel moderat angepasst -werden. Von der Verwendung von \Macro{areaset} zu diesem Zweck rate -ich jedoch ab. Schlimmstenfalls verwenden Sie das nicht zu -{\KOMAScript} gehörende \Package{geometry}-Paket (siehe -\cite{package:geometry}) oder verändern Sie die Satzspiegelparameter -von {\LaTeX} selbst. Die von \Package{typearea} ermittelten Werte -finden Sie in der \File{log}-Datei Ihres Dokuments. Damit sollten -moderate Anpassungen möglich sein. Achten Sie jedoch unbedingt darauf, -dass die Proportionen des Textbereichs mit denen der Seite unter -Berücksichtigung der Bindekorrektur annähernd übereinstimmen. - -Sollte es unbedingt erforderlich sein, den Text eineinhalbzeilig -zu setzen, so definieren Sie keinesfalls \Macro{baselinestretch} -um. Dieses Vorgehen wird zwar allzu häufig empfohlen, ist aber -seit der Einführung von {\LaTeXe} im Jahre 1994 obsolet. -Verwenden Sie schlimmstenfalls den Befehl \Macro{linespread}. Ich -empfehle das Paket \Package{setspace},\IndexPackage{setspace} das -nicht zu {\KOMAScript} gehört (siehe \cite{package:setspace}). -Auch sollten Sie \Package{typearea} nach der Umstellung des -Zeilenabstandes den Satzspiegel für diesen Abstand berechnen -lassen, jedoch für den Titel, besser auch für die Verzeichnisse -- -sowie das Literaturverzeichnis und den Index -- wieder auf -normalen Satz umschalten. Das \Package{setspace}-Paket bietet -dafür eine spezielle Umgebung und eigene Befehle. - -Das \Package{typearea}-Paket berechnet auch bei der Option -\Option{DIVcalc} einen sehr großzügigen Textbereich. Viele -konservative Typografen werden feststellen, dass die resultierende -Zeilenlänge noch zu groß ist. Der berechnete \Var{DIV}-Wert ist -ebenfalls in der \File{log}-Datei zum jeweiligen Dokument zu -finden. Sie können also leicht nach dem ersten \LaTeX-Lauf einen -kleineren Wert wählen. - -Nicht selten wird mir die Frage gestellt, warum ich eigentlich -kapitelweise auf einer Satzspiegelberechnung herumreite, während es -sehr viel einfacher wäre, nur ein Paket zur Verfügung zu stellen, mit -dem man die Ränder wie bei einer Textverarbeitung einstellen kann. -Oft wird auch behauptet, ein solches Paket wäre ohnehin die bessere -Lösung, da jeder selbst wisse, wie gute Ränder zu wählen seien, und -die Ränder von {\KOMAScript} wären ohnehin nicht gut. Ich erlaube mir -zum Abschluss dieses Kapitels ein passendes Zitat aus -\cite{TYPO:ErsteHilfe}: -\begin{quote} - \phantomsection\label{sec:typearea.tips.cite}% - \textit{Das Selbermachen ist längst üblich, die Ergebnisse oft - fragwürdig, weil Laien-Typografen nicht sehen, was nicht stimmt - und nicht wissen können, worauf es ankommt. So gewöhnt man sich an - falsche und schlechte Typografie.} [\dots] \textit{Jetzt könnte der - Einwand kommen, Typografie sei doch Geschmackssache. Wenn es um - Dekoration ginge, könnte man das Argument vielleicht gelten - lassen, da es aber bei Typografie in erster Linie um Information - geht, können Fehler nicht nur stören, sondern sogar Schaden - anrichten.} -\end{quote} - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: "../guide" -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/guide.bib b/Master/texmf-dist/source/latex/koma-script/doc/guide.bib index d035be1f38b..10761b93606 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/guide.bib +++ b/Master/texmf-dist/source/latex/koma-script/doc/guide.bib @@ -3,10 +3,11 @@ % @Article{ DANTE:TK0297:MJK1, + language= {ngerman}, author = {Markus Kohm}, title = {{\KOMAScript} -- Eine Alternative zu den Standardklassen?}, - journal = {Die {\TeX}nische Kom\"odie}, + journal = {Die {\TeX}nische Komödie}, year = 1996, volume = {2}, pages = {14--33}, @@ -14,9 +15,10 @@ } @Article{ DANTE:TK0402:MJK, + language= {ngerman}, author = {Markus Kohm}, title = {Satzspiegelkonstruktionen im Vergleich}, - journal = {Die {\TeX}nische Kom\"odie}, + journal = {Die {\TeX}nische Komödie}, volume = {4}, year = 2002, pages = {28--48}, @@ -24,16 +26,31 @@ } @Article{ DANTE:TK0203:MJK, + language= {ngerman}, author = {Markus Kohm}, title = {Moderne Briefe mit {\KOMAScript}}, - journal = {Die {\TeX}nische Kom\"odie}, + journal = {Die {\TeX}nische Komödie}, volume = {2}, year = 2003, pages = {32--51}, note = {{DANTE} e.\,V.} } +@Book{ book:komascript, + language= {ngerman}, + author = {Kohm, Markus and Morawski, Jens-Uwe}, + title = {{\KOMAScript}}, + subtitle= {Eine Sammlung von Klassen und Paketen für {\LaTeXe}}, + year = 2008, + edition = 3, + publisher={Lehmanns Media}, + address = {Berlin}, + series = {Edition DANTE}, + isbn = {978-3-86541-291-1} +} + @Book{ DUDEN, + language= {ngerman}, author = {DUDEN}, title = {Die deutsche Rechtschreibung}, publisher = {DUDENVERLAG}, @@ -43,6 +60,7 @@ } @Book{ knuth:mfbook, + language= {english}, author = {Donald E. Knuth}, title = {The {\MF book}}, publisher = {Addison-Wesley Publishing Company}, @@ -54,6 +72,7 @@ } @Book{ knuth:texbook, + language= {english}, author = {Donald E. Knuth}, title = {The {\TeX book}}, publisher = {Addison-Wesley Publishing Company}, @@ -65,35 +84,49 @@ } @Book{ JTsch87, + language= {ngerman}, author = {Jan Tschichold}, - title = {Ausgew{\"a}hlte Aufs{\"a}tze {\"u}ber Fragen der Gestalt des Buches und der Typographie}, - publisher = {Birkh{\"a}user Verlag}, + title = {Ausgewählte Aufsätze über Fragen der Gestalt des Buches und der Typographie}, + publisher = {Birkhäuser Verlag}, year = 1987, address = {Basel}, edition = 2 } +@Book{ JTschErfreulich, + language = {ngerman}, + author = {Jan Tschichold}, + title = {Erfreuliche Drucksachen durch gute Typographie}, + publisher = {Ravensburger Buchverlag Otto Maier GmbH}, + year = 1960, + note = {Nachdruck bei: MaroVerlag, Augsburg, 2001}, + isbn = {3-87512-413-8} +} + @Book{ TYPO:ErsteHilfe, + language= {ngerman}, author = {Hans Peter Willberg and Friedrich Forssman}, title = {Erste Hilfe in Typografie}, - subtitle = {Ratgeber f{\"u}r Gestaltung mit Schrift}, + subtitle = {Ratgeber für Gestaltung mit Schrift}, publisher = {Verlag Hermann Schmidt}, year = 2000, address = {Mainz} } @Book{ TYPO:Werkstattbuch, + language = {ngerman}, author = {Indra Kupferschmid}, editor = {}, title = {Buchstaben kommen selten allein: Ein typografisches Werkstattbuch}, - publisher = {Universit\"atsverlag Weimar}, + publisher = {Universitätsverlag Weimar}, year = {2000}, note = {{ISBN} 3-86068-140-0} } @InCollection{ JTschMass, + language= {ngerman}, author = {Jan Tschichold}, - title = {Willk{\"u}rfreie Ma{\ss}verh{\"a}ltnisse der Buchseite und des Satzspiegels}, + title = {Willkürfreie Maßverhältnisse der Buchseite und des Satzspiegels}, booktitle = {Schriften 1925-1974}, year = 1992, publisher = {Brinkmann \& Bose}, @@ -101,11 +134,12 @@ } @Misc{ www:blaettery, - author = {J{\"u}rgen F. Schopp}, + language = {ngerman}, + author = {Jürgen F. Schopp}, address = {mailto: \url{jurgen.schapp@uta.fi}}, - title = {Bl{\"a}tter (und Tipps) zur Typografie}, - institution = {Institut f{\"u}r Sprach- und Translationswissenschaften}, - organization = {Universit{\"a}t Tampere, Finnland}, + title = {Blätter (und Tipps) zur Typografie}, + institution = {Institut für Sprach- und Translationswissenschaften}, + organization = {Universität Tampere, Finnland}, year = 2002, month = sep, edition = {2}, @@ -113,7 +147,8 @@ } @Misc{ zeitung, - author = {Martin Z. Schr{\"o}der}, + language = {ngerman}, + author = {Martin Z. Schröder}, title = {Die Anmut des Unscheinbaren}, howpublished = {Berliner Zeitung}, year = 1998, @@ -122,20 +157,52 @@ } @Misc{ www:gutetypo, + language = {ngerman}, author = {Hermann Rotermund}, title = {Gute Typographie auf Papier und im Web}, url = {http://www.weisses-rauschen.de/hero/Typographie.htm} } @Misc{ www:typoclass, + language = {ngerman}, author = {Axel Reichert}, title = {Typografie -- Gestaltung einer Beispielklasse}, howpublished = {Tutorium auf der Tagung DANTE'99}, + year = 1999, + month = feb, url = {CTAN://info/german/typografie/} } +@Manual{ latex:source2e, + language = {english}, + author = {Johannes Bramms and David Carlisle and Alan Jeffrey and Leslie Lamport and Frank Mittelbach and Chris Rowley and Rainer Schöpf}, + title = {The {\LaTeX2e} Source}, + year = 2005, + month = 12 +} + +@Manual{ makeindex, + language= {english}, + author = {Leslie Lamport}, + title = {{\Package{MakeIndex}}: An Index Processor For {\LaTeX}}, + year = 1987, + month = feb, + url = {CTAN://indexing/makeindex/doc/makeindex.pdf} +} + +@Manual{ xindy, + language= {english}, + author = {Roger Kehr}, + title = {XINDY, A Flexible Indexing System}, + year = 1997}, + month = mar, + edition = {1.1}, + url = {http://www.xindy.org/doc/tutorial.html} +} + @Manual{ l2kurz, - author = {Walter Schmidt and J{\"o}rg Knappen and Hubert Partl and Irene + language = {ngerman}, + author = {Walter Schmidt and Jörg Knappen and Hubert Partl and Irene Hyna}, title = {{\LaTeXe}-Kurzbeschreibung}, year = 1999, @@ -144,6 +211,7 @@ Hyna}, } @Manual{ lshort, + language= {english}, author = {Tobias Oetker and Hubert Partl and Irene Hyna and Elisabeth Schlegl}, title = {The Not So Short Introduction to {\LaTeXe}}, @@ -154,6 +222,7 @@ Schlegl}, } @Book{ latexbook, + language = {ngerman}, author = {Leslie Lamport}, title = {Das {\LaTeX}-Handbuch}, publisher = {Addison-Wesley Publishing Company}, @@ -162,6 +231,7 @@ Schlegl}, } @Manual{ btxdoc, + language= {english}, author = {Oren Patashnik}, title = {{Bib\TeX ing}}, year = 1988, @@ -170,6 +240,7 @@ Schlegl}, } @Manual{ btxhak, + language= {english}, author = {Oren Patashnik}, title = {Designing {Bib\TeX} Styles}, year = 1988, @@ -178,25 +249,28 @@ Schlegl}, } @Misc{ DANTE:FAQ, - author = {Bernd Raichle and Rolf Niepraschk and Thomas Hafner}, - title = {DE-{\TeX}-/DANTE-FAQ}, - year = 2002, - month = may, - edition = {71}, - url = {http://www.dante.de/faq/de-tex-faq/} + language = {ngerman}, + author = {Bernd Raichle and Rolf Niepraschk and Thomas Hafner}, + title = {DE-{\TeX}-/DANTE-FAQ}, + year = 2002, + month = may, + edition = {71}, + url = {http://www.dante.de/faq/de-tex-faq/} } @Misc{ UK:FAQ, + language= {english}, key = {FAQ}, editor = {Robin Fairbairns}, title = {TeX Frequently Asked Questions on the Web}, - edition = {3.16}, + edition = {3.18}, url = {http://www.tex.ac.uk/faq/} } % year = 2006, % month = jun, @Misc{ latex:classes, + language= {english}, author = {Leslie Lamport and Frank Mittelbach and Johannes Braams}, title = {Standard Document Classes for {\LaTeX} version 2e}, year = 2000, @@ -205,7 +279,28 @@ Schlegl}, url = {CTAN://macros/latex/base/classes.dtx} } +@Misc{ package:CJK, + language= {english}, + author = {Werner Lemberg}, + title = {{\Package{CJK}}}, + year = 2008, + month = may, + edition = {4.8.0}, + url = {CTAN://languages/chinese/CJK/4.8.0/} +} + +@Misc{ package:tabularx, + language= {english}, + author = {David Carlisle}, + title = {The {\Package{tabularx}} package}, + year = 1999, + month = jan, + edition = {2.07}, + url = {CTAN://macros/latex/tools} +} + @Misc{ package:adrconv, + language= {ngerman}, author = {Axel Kielhorn}, title = {adrconv}, year = 1999, @@ -221,6 +316,7 @@ Schlegl}, } @Misc{ latex:clsguide, + language= {english}, author = {{\LaTeX3} Project Team}, title = {{\LaTeXe} for class and package writers}, year = 1999, @@ -229,6 +325,7 @@ Schlegl}, } @Misc{ latex:usrguide, + language= {english}, author = {{\LaTeX3} Project Team}, title = {{\LaTeXe} for authors}, year = 2001, @@ -237,6 +334,7 @@ Schlegl}, } @Misc{ latex:fntguide, + language= {english}, author = {{\LaTeX3} Project Team}, title = {{\LaTeXe} font selection}, year = 2000, @@ -245,6 +343,7 @@ Schlegl}, } @Misc{ latex:cfgguide, + language= {english}, author = {{\LaTeX3} Project Team}, title = {Configuration options for {\LaTeXe}}, year = 2001, @@ -252,7 +351,47 @@ Schlegl}, url = {CTAN://macros/latex/doc/cfgguide.pdf} } +@Misc{ package:footmisc, + language= {english}, + author = {Robin Fairbairns}, + title = {{\Package{footmisc}} --- a portmanteau package for customising footnotes in {\LaTeX}}, + year = 2005, + month = mar, + url = {CTAN://macros/latex/contrib/footmisc} +} + +@Misc{ package:marginnote, + language= {english}, + author = {Markus Kohm}, + title = {Non-Floating Margin Notes with {\Package{marginnote}}}, + year = 2006, + month = oct, + edition = {1,1}, + url = {CTAN://macros/latex/contrib/marginnote} +} + +@Misc{ package:tocstyle, + language= {english}, + author = {Markus Kohm}, + title = {The {\KOMAScript} package {\Package{tocstyle}}}, + year = 2008, + month = jan, + edition = {0.2a}, + note = {\KOMAScript} +} + +@Misc{ package:splitindex, + language= {english}, + author = {Markus Kohm}, + title = {Creating More Than One Index Using {\Package{splitidx}} And {\Package{SplitIndex}}}, + year = 2006, + month = jun, + edition = {1.0}, + url = {CTAN://macros/latex/contrib/splitindex} +} + @Misc{ package:setspace, + language= {english}, author = {Geoffrey Tobin}, title = {{\Package{setspace}} {\LaTeX} package}, year = 2000, @@ -262,6 +401,7 @@ Schlegl}, } @Misc{ package:geometry, + language= {english}, author = {Hideo Umeki}, title = {The {\Package{geometry}} package}, year = 2000, @@ -271,6 +411,7 @@ Schlegl}, } @Misc{ package:german, + language = {english}, author = {Bernd Raichle}, title = {{\Package{german}} package}, year = 1998, @@ -280,6 +421,7 @@ Schlegl}, } @Misc{ package:ngerman, + language = {english}, author = {Bernd Raichle}, title = {{\Package{ngerman}} package}, year = 1998, @@ -288,7 +430,18 @@ Schlegl}, url = {CTAN://language/german/} } +@Misc{ package:xcolor, + language = {english}, + author = {Dr. Uwe Kern}, + title = {Extending {\LaTeX}'s color facilities: the {\Package{xcolor}} package}, + year = 2007, + month = jan, + edition = {2.11}, + url = {CTAN://macros/latex/contrib/xcolor/} +} + @Misc{ package:graphics, + language= {english}, author = {David P. Carlisle}, title = {Packages in the `graphics' bundle}, year = 1999, @@ -296,7 +449,18 @@ Schlegl}, url = {CTAN://macros/latex/required/graphics/} } +@Misc{ package:keyval, + language = {english}, + author = {David Carlisle}, + title = {The {\Package{keyval}} package}, + year = 1999, + month = mar, + edition = {1.13}, + url = {CTAN://macros/latex/required/graphics/} +} + @Misc{ package:multicol, + language= {english}, author = {Frank Mittelbach}, title = {An environment for multicolumn output}, year = 2000, @@ -306,15 +470,28 @@ Schlegl}, } @Misc{ package:ifthen, + language= {english}, author = {David Carlisle}, - title = {The \textsf{ifthen} package}, + title = {The {\Package{ifthen}} package}, year = 1999, month = sep, edition = {1.1b}, url = {CTAN://macros/latex/base/} } +@Misc{ package:amsmath, + language = {english}, + author = {{American Mathematical Society}}, + title = {User's Guide for the {\Package{amsmath}} Package}, + year = 2002, + month = feb, + edition = {2.0}, + url = {CTAN://macros/latex/required/amslatex/math/} +} + +% I don't want the french changes! @Misc{ package:french, + language= {english}, author = {Bernard Gaulle}, title = {Les distributions de fichiers de francisation pour LaTeX}, year = 2003, @@ -324,6 +501,7 @@ Schlegl}, } @Misc{ package:babel, + language= {english}, author = {Johannes Braams}, title = {Babel, a multilangual package for use with {\LaTeX}'s standard document classes}, @@ -334,6 +512,7 @@ document classes}, } @Misc{ package:extsizes, + language= {english}, author = {James Kilfiger}, title = {{\Package{extsizes}}, a non standard {\LaTeX}-package}, year = 1999, @@ -343,8 +522,9 @@ document classes}, } @Misc{ package:natbib, + language= {english}, author = {Patrick W. Daly}, - title = {Natural Sciences Citations an References}, + title = {Natural Sciences Citations and References}, year = 1999, month = may, edition = {7.0}, @@ -352,6 +532,7 @@ document classes}, } @Misc{ package:fancyhdr, + language= {english}, author = {Piet van Oostrum}, title = {Page layout in {\LaTeX}}, year = 2000, @@ -361,6 +542,7 @@ document classes}, } @Misc{ package:topcapt, + language= {english}, author = {Robin Fairbairns}, title = {topcapt.sty}, year = 1999, @@ -370,17 +552,29 @@ document classes}, } @Misc{ package:caption, - author = {Harald Axel Sommerfeldt}, - title = {caption package}, - year = 2004, - month = jul, - edition = {3.0c}, + language = {ngerman}, + author = {Axel Sommerfeldt}, + title = {Anpassen der Abbildungs- und Tabellenbeschriftungen mit Hilfe des {\Package{caption}}-Paketes}, + year = 2008, + month = apr, + edition = {3.1b}, + url = {CTAN://macros/latex/contrib/caption/} +} + +@Misc{ package:caption.engl, + language = {english}, + author = {Axel Sommerfeldt}, + title = {Customizing captions of floating environments using the {\Package{caption}} package}, + year = 2008, + month = apr, + edition = {3.1b}, url = {CTAN://macros/latex/contrib/caption/} } @Misc{ package:hyperref, + language= {english}, author = {Sebastian Rahtz}, - title = {Hypertext marks in {\LaTeX}: the \textsf{hyperref} package}, + title = {Hypertext marks in {\LaTeX}: the {\Package{hyperref}} package}, year = 2001, month = feb, edition = {6.71c}, @@ -388,6 +582,7 @@ document classes}, } @Misc{ package:float, + language= {english}, author = {Anselm Lingnau}, title = {An Improved Environment for Floats}, year = 2001, @@ -396,9 +591,20 @@ document classes}, url = {CTAN://macros/latex/contrib/float/} } +@Misc{ package:floatrow, + language = {english}, + author = {Olga Lapko}, + title = {The {\Package{floatrow}} package}, + year = 2006, + month = jul, + edition = {0.1j}, + url = {CTAN://macros/latex/contrib/floatrow/} +} + @Misc{ package:longtable, + language = {english}, author = {David Carlise}, - title = {The \textsf{longtable} package}, + title = {The {\Package{longtable}} package}, year = 1998, month = may, edition = {4.09}, @@ -406,36 +612,40 @@ document classes}, } @Misc{ package:ragged2e, - author = {Martin Schr{\"o}der}, - title = {The \textsf{Ragged2e} package}, - year = 2003, - month = jan, - edition = {2.00}, - url = {CTAN://macros/latex/contrib/ms/} + language = {english}, + author = {Martin Schröder}, + title = {The {\Package{Ragged2e}} package}, + year = 2003, + month = jan, + edition = {2.00}, + url = {CTAN://macros/latex/contrib/ms/} } @Misc{ package:mparhack, + language= {english}, author = {Tom Sgouros and Stefan Ulrich}, - title = {The \textsf{mparhack} package}, + title = {The {\Package{mparhack}} package}, year = 2003, month = may, edition = {1.3a}, url = {CTAN://macros/latex/contrib/mparhack/} } -@Misc{ package:eso-pic, - author = {Rolf Niepraschk}, - title = {The \textsf{eso-pic} package}, - month = nov, - year = 2002, - edition = {1.1b}, - url = {CTAN://macros/latex/contrib/eso-pic/}} +@Misc{ package:eso-pic, + language = {english}, + author = {Rolf Niepraschk}, + title = {The {\Package{eso-pic}} package}, + month = nov, + year = 2002, + edition = {1.1b}, + url = {CTAN://macros/latex/contrib/eso-pic/} } @Misc{ homepage, - key = {KDP}, - title = {{\KOMAScript{}} Homepage}, - url = {http://www.komascript.de} + language = {ngerman}, + key = {KDP}, + title = {{\KOMAScript{}} Homepage}, + url = {http://www.komascript.de} } % end of file `scrguide.bib' diff --git a/Master/texmf-dist/source/latex/koma-script/doc/guide.tex b/Master/texmf-dist/source/latex/koma-script/doc/guide.tex index 5bb5c6815da..8612379e2a0 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/guide.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/guide.tex @@ -1,6 +1,6 @@ % ====================================================================== % guide.tex -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % guide.tex -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -45,11 +45,12 @@ % % ====================================================================== -\ProvidesFile{guide.tex}[2007/12/13 KOMA-Script guide main file] +\ProvidesFile{guide.tex}[2008/07/10 KOMA-Script guide main file] \documentclass[\languagename]{scrguide} \begin{document} +\expandafter\selectlanguage\expandafter{\uselanguage} \extratitle{\sffamily{\bfseries\Huge\GuideTitle\strut\\} \large\GuideSubTitle\strut\\} \title{\GuideTitle} @@ -80,10 +81,11 @@ \include{scraddr} \include{adrconvnote} \include{scrlfile} +\include{tocbasic} \include{japanlco}% appendix at the english manual only -\printchangelog +%\printchangelog \bibliography{\jobname} \printindex diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/Makefile b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/Makefile index 5c22f7fa56b..369ebee60af 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/german/Makefile +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/Makefile @@ -1,6 +1,6 @@ # ====================================================================== # Makefile -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # Makefile -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3b, verteilt und/oder veraendert werden. @@ -40,11 +40,11 @@ BASEDIR ?= $(PWD)/../../ DOCDIR = $(BASEDIR)doc/ # language -LANGUAGE = german +LANGUAGE = ngerman LANGUAGESHORTCUT = de LANGUAGELONG = ngerman -include $(DOCDIR)Makefile.guide +include $(DOCDIR)$(LANGUAGE)/Makefile.guide # # end of file `Makefile' diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/Makefile.guide b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/Makefile.guide new file mode 100644 index 00000000000..1e31786bbbf --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/Makefile.guide @@ -0,0 +1,291 @@ +# ====================================================================== +# Makefile.guide +# Copyright (c) Markus Kohm, 2002-2008 +# +# 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.3b of the license. +# The latest version of this license is in +# http://www.latex-project.org/lppl.txt +# and version 1.3b 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. +# ---------------------------------------------------------------------- +# Makefile.guide +# Copyright (c) Markus Kohm, 2002-2008 +# +# Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +# Version 1.3b, verteilt und/oder veraendert werden. +# Die neuste Version dieser Lizenz ist +# http://www.latex-project.org/lppl.txt +# und Version 1.3b 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. +# ====================================================================== + +# ---------------------------------------------------------------------- +# Load common rules +include $(BASEDIR)Makefile.baserules +# Load variable definitions +include $(BASEDIR)Makefile.baseinit +include $(DOCDIR)Makefile.latexinit +# ---------------------------------------------------------------------- +# Temporary folder, used to create distribution. +# Same folder with postfix "-maintain" will be used to create maintain- +# distribution. +ifdef DISTDIR +export DISTDIR := $(DISTDIR)/$(LANGUAGE) +endif +ifdef MAINTAINDIR +export MAINTAINDIR := $(MAINTAINDIR)/$(LANGUAGE) +endif +ifdef INSTALLSRCDIR +export INSTALLSRCDIR := $(INSTALLSRCDIR)/$(LANGUAGE) +endif + +# ---------------------------------------------------------------------- +# List of all Makefiles +MAKE_FILES = Makefile Makefile.guide + +# ---------------------------------------------------------------------- +GUIDENAME = scrgui$(LANGUAGESHORTCUT) + +ifeq ($(LANGUAGE),english) +TEX_APPENDICES = japanlco.tex +else +TEX_APPENDICES = +endif + +TEX_CHAPTERS = preface.tex introduction.tex \ + authorpart.tex typearea.tex scrbookreportarticle.tex \ + scrlttr2.tex scrpage2.tex scrdatetime.tex scraddr.tex \ + adrconvnote.tex scrextend.tex \ + expertpart.tex scrbase.tex scrlfile.tex tocbasic.tex \ + typearea-experts.tex scrbookreportarticle-experts.tex \ + scrlttr2-experts.tex \ + $(TEX_APPENDICES) + +TEX_MISC = guide.tex common.tex linkalias.tex + +EXAMPLE_LETTER_DTX = scrlttr2examples.dtx + +EXAMPLE_LETTER_LETTERS = $(foreach num,\ + 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 \ + 20 21 22 23 label nipponA nipponB,\ + letter-$(num).tex) + +EXAMPLE_LETTER_DTX_RESULT = $(EXAMPLE_LETTER_LETTERS) musterlogo.eps ich.lco + +PLENGTH_DTX = $(DOCDIR)plength.dtx + +PLENGTH_DTX_RESULT = plength.drv plenDIN.mp varDIN.mp plinc.mp \ + pltex-vars.mp pltex-terms.mp pllcoDIN.mp + +PLENGTH_PDF = plenDIN.pdf varDIN.pdf + +PDF_EPS_SRC = musterlogo.eps + +PDF_EPS = $(addsuffix .pdf,$(basename $(PDF_EPS_SRC))) + +EXAMPLE_LETTER_SRC = $(EXAMPLE_LETTER_LETTERS) $(PDF_EPS) ich.lco \ + labelbasic.lco settleford600label.lco + +EXAMPLE_LETTER_PDF = $(addsuffix .pdf,$(basename $(EXAMPLE_LETTER_LETTERS))) + +GENERATED_SRC = $(EXAMPLE_LETTER_PDF) $(PLENGTH_PDF) + +GENERATED_CLEAN = $(GENERATED_SRC) \ + $(EXAMPLE_LETTER_DTX_RESULT) $(PDF_EPS) \ + $(PLENGTH_DTX_RESULT) + +TEX_SRC = guide-$(LANGUAGELONG).tex $(TEX_CHAPTERS) $(TEX_MISC) + +MISC_SRC = $(MAKE_FILES) htmlsetup \ + labelbasic.lco settleford600label.lco + +DIST_SRC = $(MISC_SRC) $(TEX_SRC) $(EXAMPLE_LETTER_DTX) + +GUIDE_FILES = $(GUIDENAME).pdf $(GUIDENAME).html + +DIST_FILES = $(DIST_SRC) $(GUIDE_FILES) + +MAINTAIN_SRC = $(DIST_SRC) + +MAINTAIN_FILES = $(MAINTAIN_SRC) + +# ---------------------------------------------------------------------- +# local rules +default_local: $(GUIDE_FILES) + +prepare_local: # nothing to do + $(ECHO) $(GENERATED_SRC) + +clean_local: + $(RM) *.aux *.bbl *.blg *.glo *.idx *.ilg *.ind *.lof *.log *.lot \ + *.dvi *.tmp mpxerr.tex *.1 *.mp.keep *.mpo \ + *.md5 *.out *.toc *.mpx *.drv *.chn *.xref + +distclean_local: clean_local + $(RM) $(GENERATED_CLEAN) + +maintainclean_local: distclean_local + $(RM) guide.pdf $(GUIDENAME).pdf $(GUIDENAME).html + +ifdef DISTDIR + +install_local: $(DIST_FILES) + @if ! $(MKDIR) $(INSTALLSRCDIR) || \ + ! [ -d $(INSTALLDOCDIR) ]; then \ + echo '--------------------------------------------------'; \ + echo '| Cannot install to' $(INSTALLSRCDIR) or $(INSTALLDOCDIR)!; \ + echo '| You should try:'; \ + echo '| sudo "make install"'; \ + echo '--------------------------------------------------'; \ + exit 1; \ + fi + $(INSTALL) $(DIST_SRC) $(INSTALLSRCDIR) + $(INSTALL) $(GUIDE_FILES) $(INSTALLDOCDIR) + $(foreach file,$(GUIDE_FILES),$(SYMLINK) ../../../../doc/latex/koma-script/$(file) $(INSTALLSRCDIR)/../$(file);) + $(SECHO) ------------------------------------------------------------ + $(SECHO) Installed files at $(INSTALLSRCDIR): + $(SECHO) $(DIST_SRC) + $(SECHO) ------------------------------------------------------------ + $(SECHO) Installed files at $(INSTALLDOCDIR): + $(SECHO) $(GUIDE_FILES) + $(SECHO) ------------------------------------------------------------ + $(SECHO) Links at $(INSTALLSRCDIR)/..: + $(SECHO) $(GUIDE_FILES) + $(SECHO) ------------------------------------------------------------ + +uninstall_local: + @if [ -d $(INSTALLSRCDIR) ]; then \ + $(RM) -v $(foreach file,$(DIST_SRC),$(INSTALLSRCDIR)/$(file)); \ + if [ ls $(INSTALLSRCDIR) > /dev/null 2>&1; then \ + $(RMDIR) -v $(INSTALLSRCDIR); \ + else \ + echo "$(INSTALLSRCDIR) not empty!"; \ + fi; \ + else \ + echo "$(INSTALLSRCDIR) not found --> nothing to uninstall!"; \ + fi + @if [ -d $(INSTALLDOCDIR) ]; then \ + $(RM) -v $(foreach file,$(GUIDE_FILES),$(INSTALLDOCDIR)/$(file)); \ + else \ + echo "$(INSTALLDOCDIR) not found --> nothing to uninstall!"; \ + fi + +dist_local: + -$(RMDIR) $(DISTDIR) + $(MKDIR) $(DISTDIR) + $(CP) $(DIST_FILES) $(DISTDIR) + +maintain_local: + -$(RMDIR) $(MAINTAINDIR) + $(MKDIR) $(MAINTAINDIR) + $(CP) $(MAINTAIN_FILES) $(MAINTAINDIR) + +else + +install_local: + $(error install not supported at local make) + +uninstall_local: + $(error uninstall not supported at local make) + +dist_local: + $(error dist not supported at local make) + +maintain_prior: + $(error maintain not supported at local make) + +endif + +# ---------------------------------------------------------------------- +# usefull addons + +edit: + $(EDITOR) $(TEX_SRC) + +# ---------------------------------------------------------------------- +# file rules + +CKSUMFILES = $(BIBTEX_SRC) $(MAKEINDEXSTYLE) $(MAKECHANGESTYLE) \ + guide.aux guide.ind guide.idx guide.bbl guide.toc guide.lot \ + guide.out guide.chn guide.glo \ + $(foreach file,$(TEX_CHAPTERS) $(TEX_NONFREECHAPTERS),$(basename $(file)).aux) + +define latex + $(SMV) $@ guide.pdf || exit 0 + @while ! $(CKSUM) -c guide.md5; do \ + $(CKSUM) $(CKSUMFILES) > guide.md5 \ + && $(PDFLATEX) guide.tex \ + && ( $(BIBTEX) guide || [ $$? -le $(BIBTEXNOERROR) ] || exit 1 ) \ + && $(BIBTEXFIX) guide.bbl \ + && $(MAKEINDEX) guide.ind guide.idx \ + && $(INDEXPOSTOP) guide \ + && $(MAKECHANGE) guide.chn guide.glo \ + || exit 1;\ + done + $(SMV) guide.pdf $@ +endef + +$(GUIDENAME).html: htmlsetup guide.aux \ + $(foreach file,$(TEX_CHAPTERS) $(TEX_NONFREECHAPTERS),\ + $(basename $(file)).aux) + $(GENHTMLINDEX) $(addsuffix .aux,\ + $(basename $(TEX_CHAPTERS) $(TEX_NONFREECHAPTERS)))\ + >$@ + +$(GUIDENAME).pdf: $(DOCDIR)scrguide.cls guide.tex $(GENERATED_SRC)\ + guide.aux guide.bbl $(BIBTEX_SRC) \ + $(MAKEINDEXSTYLE) guide.ind guide.idx \ + $(MAKECHANGESTYLE) guide.chn guide.glo \ + $(TEX_SRC) $(TEX_NONFREECHAPTERS) $(TEX_NONFREEMISC) + $(SRM) guide.md5 + $(latex) + +$(PLENGTH_DTX_RESULT): $(PLENGTH_DTX) + $(PDFLATEX) $< + +$(PLENGTH_PDF): $(PLENGTH_DTX_RESULT) + $(MPOST) $(addsuffix .mp,$(basename $@)) + $(MPTOPDF) $(addsuffix .mp,$(basename $@)) + $(MV) $(addsuffix .pdf,$(basename $@)-1) $@ + +$(PDF_EPS): $(PDF_EPS_SRC) + $(EPSTOPDF) $(addsuffix .eps,$(basename $@)) + +$(EXAMPLE_LETTER_PDF): $(EXAMPLE_LETTER_SRC) + $(PDFLATEX) $(addsuffix .tex,$(basename $@)) + +$(EXAMPLE_LETTER_DTX_RESULT): $(EXAMPLE_LETTER_DTX) + $(PDFLATEX) $< + +guide.ind: guide.idx + $(MAKEINDEX) $@ $< + $(INDEXPOSTOP) guide + +guide.chn: guide.glo + $(MAKECHANGE) $@ $< + +guide.bbl: $(BIBTEX_SRC) guide.aux + $(BIBTEX) guide || test $$? -le $(BIBTEXNOERROR) + $(BIBTEXFIX) guide.bbl + +guide.glo guide.idx guide.aux: guide.tex $(TEX_SRC) \ + $(TEX_NONFREECHAPTERS) $(TEX_NONFREEMISC) + $(PDFLATEX) guide.tex + +# ---------------------------------------------------------------------- diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/adrconvnote.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/adrconvnote.tex index ae13b689e7a..ceb87f30272 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/german/adrconvnote.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/adrconvnote.tex @@ -1,6 +1,6 @@ % ====================================================================== % adrconvnote.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % adrconvnote.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ====================================================================== -\ProvidesFile{adrconvnote.tex}[{2005/08/10 KOMA-Script guide (chapter: +\ProvidesFile{adrconvnote.tex}[{2008/07/31 KOMA-Script guide (chapter: adrconv)}] \chapter{Adressdateien aus Adressdatenbanken}% @@ -63,7 +63,7 @@ Adressdatenbanken im \BibTeX-Format Adressdateien für die \KOMAScript-Briefklasse oder für das \Package{scraddr}-Paket erstellt werden konnten. -\begin{lstlisting} +\begin{lstlisting}[belowskip=\dp\strutbox,morekeywords={@address}] @address{HMUS, name = {Hans Mustermann}, title = {Mag. art.}, @@ -77,7 +77,7 @@ für die \KOMAScript-Briefklasse oder für das } \end{lstlisting} -Aus Einträgen wie dem obenstehenden können mit Hilfe +Aus Einträgen wie dem oben stehenden können mit Hilfe von \BibTeX{} und verschiedenen \BibTeX-Stilen die Adressdateien erstellt werden. Weiterhin gibt es spezielle \LaTeX-Dateien, die es ermöglichen, @@ -87,7 +87,7 @@ zu erstellen. Das Paket \Package{addrconv} war aber eigentlich ein eigenständiger Teil, der auch noch über die Belange von \KOMAScript{} hinaus Möglichkeiten bietet. Deshalb ist \Package{addrconv} bereits seit einiger Zeit nicht mehr in -\KOMAScript{} enthalten. Das Paket \Package{adrconv}, nur ein "`\Package{d}"', +\KOMAScript{} enthalten. Das Paket \Package{adrconv}, nur ein »\Package{d}«, ersetzt \Package{addrconv} vollständig. Es muss, falls nicht bereits in Ihrer \TeX-Distribution enthalten, von \cite{package:adrconv} separat bezogen und installiert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/authorpart.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/authorpart.tex new file mode 100644 index 00000000000..3eea0b2f387 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/authorpart.tex @@ -0,0 +1,84 @@ +% ====================================================================== +% authorpart.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% authorpart.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% First part: KOMA-Script for Authors +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Erster Teil: KOMA-Script für Autoren +% Verwaltet von Markus Kohm +% +% ====================================================================== + +\ProvidesFile{authorpart.tex}[2008/05/06 Part KOMA-Script for Authors] + +\setpartpreamble{% + \vspace*{2\baselineskip}% + \setlength{\parindent}{1em}% + + \noindent In diesem Teil sind die Informationen für die Autoren von + Artikeln, Berichten, Büchern und Briefen zu finden. Dabei wird davon + ausgegangen, dass der normale Anwender sich weniger dafür interessiert, wie + in \KOMAScript{} die Dinge implementiert sind und wo die Schwierigkeiten + dabei liegen. Auch ist es für den normalen Anwender wenig interessant, + welche obsoleten Optionen und Anweisungen noch enthalten sind. Er will + wissen, wie er aktuell etwas erreichen kann. Eventuell ist er noch an + typografischen Hintergrundinformationen interessiert. + + Die wenigen Passagen, die weiterführende Informationen und Begründungen + enthalten und deshalb für ungeduldige Leser weniger von Interesse sind, + wurden in diesem Teil in serifenloser Schrift gesetzt und können bei Bedarf + übersprungen werden. Wer hingegen noch mehr Informationen zu Hintergründen + der Implementierung, Nebenwirkungen bei Verwendung anderer Pakete und + zu obsoleten Optionen oder Anweisungen sucht, sei auf + \autoref{part:forExperts} ab \autopageref{part:forExperts} + verwiesen. Darüber hinaus beschäftigt sich jener Teil von \KOMAScript{} auch + mit all den Möglichkeiten, die speziell für Autoren von Paketen und Klassen + geschaffen wurden. +} + +\part{\KOMAScript{} für Autoren} +\label{part:forAuthors} + +\endinput + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "guide.tex" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common.tex new file mode 100644 index 00000000000..72fb08568d9 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common.tex @@ -0,0 +1,3022 @@ +% ====================================================================== +% common.tex +% Copyright (c) Markus Kohm, 2001-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% common.tex +% Copyright (c) Markus Kohm, 2001-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Paragraphs that are common for several chapters of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind +% Verwaltet von Markus Kohm +% +% ====================================================================== + +\ProvidesFile{common.tex}[2008/10/31 KOMA-Script guide (common paragraphs)] + +\makeatletter +\@ifundefined{ifCommonmaincls}{\newif\ifCommonmaincls}{}% +\@ifundefined{ifCommonscrextend}{\newif\ifCommonscrextend}{}% +\@ifundefined{ifCommonscrlttr}{\newif\ifCommonscrlttr}{}% +\@ifundefined{ifIgnoreThis}{\newif\ifIgnoreThis}{}% +\makeatother + +\ifcase \value{commonpar} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<0>> + +\section{Frühe oder späte Optionenwahl} +\label{sec:\csname label@base\endcsname.options} +\ifshortversion\IgnoreThisfalse\IfNotCommon{typearea}{\IgnoreThistrue}\fi +\ifIgnoreThis +Es gilt sinngemäß, was in \autoref{sec:typearea.options} geschrieben wurde. +\else + +\BeginIndex{}{Optionen}% + +In diesem Abschnitt wird eine Besonderheit von \KOMAScript{} vorgestellt, die +neben % +\IfCommon{typearea}{\Package{typearea} auch andere \KOMAScript-Pakete und + "~Klassen }% +\IfCommon{maincls}{den Klassen \Class{scrbook}, \Class{scrreprt} und + \Class{scrartcl} auch andere \KOMAScript-Klassen und "~Pakete }% +\IfCommon{scrlttr2}{der Klasse \Class{scrlttr2} auch andere + \KOMAScript-Klassen und "~Pakete }% +\IfCommon{scrextend}{den Klassen und \Package{scrextend} auch einige andere + \KOMAScript-Pakete }% +betrifft. Damit die Anwender alle Informationen zu einem Paket oder einer +Klasse im jeweiligen Kapitel finden, ist dieser Abschnitt nahezu gleichlautend +in mehreren Kapiteln zu finden. Anwender, die nicht nur an der Anleitung zu +einem Paket oder einer Klasse interessiert sind, sondern sich einen +Gesamtüberblick über \KOMAScript{} verschaffen wollen, brauchen diesen +Abschnitt nur in einem der Kapitel zu lesen und können ihn beim weiteren +Studium der Anleitung dann überspringen. + +\begin{Declaration} + \Macro{documentclass}\OParameter{Optionenliste}% + \Parameter{\KOMAScript-Klasse}\\ + \Macro{usepackage}\OParameter{Optionenliste}% + \Parameter{Paket-Liste} +\end{Declaration} +\BeginIndex{Cmd}{documentclass}% +\BeginIndex{Cmd}{usepackage}% +Bei \LaTeX{} ist vorgesehen, dass Anwender Klassenoptionen in Form einer durch +Komma getrennten Liste einfacher Schlüsselwörter als optionales Argument von +\Macro{documentclass} angeben. Außer an die Klasse werden diese Optionen auch +an alle Pakete weitergereicht, die diese Optionen verstehen. Ebenso ist +vorgesehen, dass Anwender Paketoptionen in Form einer durch Komma getrennten +Liste einfacher Schlüsselwörter als optionales Argument von \Macro{usepackage} +angeben. \KOMAScript{} erweitert\ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}\and \Package{scrextend}\and + \Package{typearea}} den Mechanismus der Optionen für die \KOMAScript-Klassen +und einige Pakete um weitere Möglichkeiten. So haben die meisten Optionen bei +\KOMAScript{} zusätzlich einen Wert. Eine Option hat also nicht unbedingt nur +die Form \PName{Option}, sondern kann auch die Form +\PName{Option}\texttt{=}\PName{Wert} haben. Bis auf diesen Unterschied +arbeiten \Macro{documentclass} und \Macro{usepackage} bei \KOMAScript{} wie in +\cite{latex:usrguide} oder jeder \LaTeX-Einführung, beispielsweise +\cite{l2kurz}, beschrieben.% +% +\IfNotCommon{scrextend}{\par% + Bei Verwendung einer \KOMAScript-Klasse sollten im Übrigen beim +% Die Alternativen an dieser Stelle dienen der Verbesserung des Umbruchs +\IfCommon{typearea}{überflüssigen, expliziten }% +Laden des Pakets \Package{typearea} oder \Package{scrbase} keine Optionen +angegeben werden. Das ist darin begründet, dass die Klasse diese Pakete +bereits ohne Optionen lädt und \LaTeX{} das mehrmalige Laden eines Pakets mit +unterschiedlicher Angabe von Optionen verweigert.% +\IfCommon{maincls}{\ Überhaupt ist es bei Verwendung einer \KOMAScript-Klasse + nicht notwendig, eines dieser Pakete auch noch explizit zu laden.}% +\IfCommon{scrlttr2}{\ Überhaupt ist es bei Verwendung einer \KOMAScript-Klasse + nicht notwendig, eines dieser Pakete auch noch explizit zu laden.}}% +% +\EndIndex{Cmd}{usepackage}% +\EndIndex{Cmd}{documentclass}% + + +\BeginIndex{Cmd}{KOMAoptions}% +\BeginIndex{Cmd}{KOMAoption}% +\begin{Declaration} + \Macro{KOMAoptions}\Parameter{Optionenliste}\\ + \Macro{KOMAoption}\Parameter{Option}\Parameter{Werteliste} +\end{Declaration} +\KOMAScript{}\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}\and \Package{typearea}} bietet bei +den meisten Klassen- und Paketoptionen auch die Möglichkeit, den Wert der +Optionen noch nach dem Laden der Klasse beziehungsweise des Pakets zu +ändern. Man kann dann wahlweise mit der Anweisung \Macro{KOMAoptions} die +Werte einer Reihe von Optionen ändern. Jede Option der \PName{Optionenliste} +hat dabei die Form \PName{Option}\texttt{=}\PName{Wert}. + +Einige Optionen besitzen auch einen Säumniswert (engl. \emph{default + value}). Versäumt man die Angabe eines Wertes, verwendet man die Option also +einfach in der Form \PName{Option}, so wird automatisch dieser Säumniswert +angenommen. + +Manche Optionen können % +\IfCommon{maincls}{auch }% Umbruchkorrektur +\IfCommon{scrlttr2}{auch }% Umbruchkorrektur +gleichzeitig mehrere Werte besitzen. Für solche Optionen besteht die +Möglichkeit, mit Hilfe von \Macro{KOMAoption} der einen \PName{Option} +nacheinander eine Reihe von Werten zuzuweisen. Die einzelnen Werte sind dabei +in der \PName{Werteliste} durch Komma voneinander getrennt. + +\begin{Explain} + Falls man in der \PName{Optionenliste} eine Option auf einen unzulässigen + Wert setzt oder die \PName{Werteliste} einen unzulässigen Wert enthält, so + wird ein Fehler gemeldet. Wird \LaTeX{} in einem Modus verwendet, in dem im + Fehlerfall Interaktionen möglich sind, so stoppt \LaTeX{} in diesem + Fall. Durch Eingabe von »\texttt{h}« erhält man dann eine Hilfe, in der + auch die möglichen Werte für die entsprechende Option angegeben sind. + + Soll in einem \PName{Wert} ein Gleichheitszeichen oder ein Komma vorkommen, + so ist der \PName{Wert} in geschweifte Klammern zu setzen. + + \KOMAScript{} bedient sich für die Realisierung dieser Möglichkeit der + Anweisungen \Macro{FamilyOptions} und \Macro{FamilyOption} mit der Familie + »\PValue{KOMA}«. Näheres zu diesen Anweisungen ist % + \IfCommon{maincls}{für Experten }% + \IfCommon{scrlttr2}{für Experten }% + in \autoref{sec:scrbase.keyvalue}, + \autopageref{desc:scrbase.cmd.FamilyOptions} zu finden. +\end{Explain} +% +\EndIndex{Cmd}{KOMAoption}% +\EndIndex{Cmd}{KOMAoptions}% +% +\EndIndex{}{Optionen}% + +\fi % IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<1>> + +\section{Kompatibilität zu früheren Versionen von \KOMAScript} +\label{sec:\csname label@base\endcsname.compatibilityOptions} +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis% +Es gilt sinngemäß, was in \autoref{sec:maincls.compatibilityOptions} +geschrieben wurde. \IfCommon{scrlttr2}{Allerdings existiert diese Möglichkeit + bei \Class{scrlttr2} bereits seit Version~2.9t}. +\else +\BeginIndex{}{Kompatibilität} + +\IfCommon{maincls}{Wer seine Dokumente im Quellcode archiviert, legt in der + Regel allergrößten Wert darauf, dass bei zukünftigen \LaTeX{}-Läufen immer + wieder exakt dasselbe Ergebnis erzielt wird. In einigen Fällen ist es aber + so, dass Verbesserungen und Korrekturen an der Klasse zu Änderungen im + Verhalten, inbesondere beim Umbruch, führen.}% +\IfCommon{scrextend}{Wer seine Dokumente im Quellcode archiviert, legt in der + Regel allergrößten Wert darauf, dass bei zukünftigen \LaTeX{}-Läufen immer + wieder exakt dasselbe Ergebnis erzielt wird. In einigen Fällen ist es aber + so, dass Verbesserungen und Korrekturen an der Klasse zu Änderungen im + Verhalten, inbesondere beim Umbruch, führen.}% +\IfCommon{scrlttr2}{In einigen Fällen ist es so, dass Verbesserungen und + Korrekturen an der Klasse zu Änderungen im Verhalten, inbesondere beim + Umbruch, führen. Dies ist jedoch nicht immer erwünscht.}% + + +\begin{Declaration} + \KOption{version}\PName{Wert}\\ + \OptionValue{version}{first}\\ + \OptionValue{version}{last} +\end{Declaration} +\BeginIndex{Option}{version}% +\BeginIndex{Option}{version~=\PName{Wert}}% +\BeginIndex{Option}{version~=last}% +\BeginIndex{Option}{version~=first}% +\IfCommon{maincls}{\ChangedAt{v2.96a}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}}Seit Version~2.96a besteht bei \KOMAScript\ }% +\IfCommon{scrlttr2}{\ChangedAt{v2.9t}{Seit \Class{scrlttr2}} Version~2.9t + besteht bei \Class{scrlttr2} }% +\IfCommon{scrextend}{Bei \Package{scrextend} besteht }% +die Wahl, ob eine Quelldatei soweit irgend möglich auch zukünftig bei einem +\LaTeX{}-Lauf zu exakt demselben Ergebnis führen soll oder ob jeweils +entsprechend der Anpassungen der neusten Version der Klasse zu setzen ist. Zu +welcher Version Kompatibilität herzustellen ist, wird dabei über die Option +\Option{version} festgelegt. Voreingestellt ist Version~2.9t. Dasselbe +Ergebnis kann mit +% Umbruchkorrektur: Unterlängenproblem in listings! +\begin{lstcode}[belowskip=\dp\strutbox] + version=first +\end{lstcode} +oder +\begin{lstcode}[belowskip=\dp\strutbox] + version=2.9 +\end{lstcode} +oder +\begin{lstcode}[belowskip=\dp\strutbox] + version=2.9t +\end{lstcode} +erreicht werden. Bei Angabe einer unbekannten Version als \PName{Wert} wird +eine Warnung ausgegeben und sicherheitshalber \Option{version=}\PValue{first} +angenommen. Mit +\begin{lstcode}[belowskip=\dp\strutbox] + version=last +\end{lstcode} +kann die jeweils neuste Version ausgewählt werden. In diesem Fall wird also +auf zukünftige Kompatibilität verzichtet. Wird die Option ohne Wertangabe +verwendet, so wird ebenfalls \PValue{last} angenommen. + +Die Frage der Kompatibilität betrifft in erster Linie Fragen des Umbruchs. Neue +Möglichkeiten, die sich nicht auf den Umbruch auswirken, sind auch dann +verfügbar, wenn man per Option die Kompatibilität zu einer älteren Version +ausgewählt hat. Die Option hat keine Auswirkungen auf Umbruchänderungen, die +bei Verwendung einer neueren Version durch Beseitigung eindeutiger Fehler +entstehen. Wer auch im Fehlerfall unbedingte Umbruchkompatibilität benötigt, +sollte stattdessen mit dem Dokument auch die verwendete \KOMAScript-Version +archivieren. + +\IfCommon{scrlttr2}{\begin{Example} + Die Beispielbriefe dieses Kapitels sollen alle Möglichkeiten nutzen, die in + der neusten Version von \KOMAScript{} zur Verfügung stehen. Dazu muss beim + Laden der Klasse die Kompatibilität entsprechend gesetzt werden:% + \lstinputcode[xleftmargin=1em,lastline=1]{letter-0.tex}% + \iftrue% Umbruchkorrektur + Hier wurde einfach mit dem symbolischen Wert \PValue{last} die neuste + Version gewählt.% + \else% + Um nicht bei jeder neuen Version eine neue Versionsnummer angeben zu + müssen, wurde hier die Möglichkeit des symbolischen Wertes \PValue{last} + gewählt.% + \fi +\end{Example}} + +Es ist zu beachten, dass die Option \Option{version} nach dem Laden % +\IfCommon{maincls}{der Klasse }% +\IfCommon{scrlttr2}{der Klasse }% +\IfCommon{scrextend}{des Pakets \Package{scrextend} }% +nicht mehr verändert werden kann.% +% +\EndIndex{Option}{version~=\PName{Wert}}% +\EndIndex{Option}{version~=first}% +\EndIndex{Option}{version~=last}% +\EndIndex{Option}{version}% +% +\EndIndex{}{Kompatibilität} + +\fi % IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<2>> + +\section{Entwurfsmodus} +\label{sec:\csname label@base\endcsname.draft}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis% +Es gilt sinngemäß, was in \autoref{sec:maincls.draft} geschrieben wurde. +\else +\BeginIndex{}{Entwurf}% + +Viele Klassen und viele Pakete kennen neben dem normalen Satzmodus auch einen +Entwurfsmodus. Die Unterschiede zwischen diesen beiden sind so vielfältig wie +die Klassen und Pakete, die diese Unterscheidung anbieten. + +\begin{Declaration} + \KOption{draft}\PName{Ein-Aus-Wert} +\end{Declaration}% +\BeginIndex{Option}{draft~=\PName{Ein-Aus-Wert}}% +Mit dieser Option\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Class{scrlttr2}} wird zwischen Dokumenten im +Entwurfsstadium und fertigen Dokumenten\Index{Endfassung} unterschieden. Als +\PName{Ein-Aus-Wert} kann einer der Standardwerte für einfache Schalter aus +\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} verwendet +werden. Bei Aktivierung der Option werden im Falle überlanger Zeilen am +Zeilenende kleine, schwarze Kästchen ausgegeben. Diese Kästchen erleichtern +dem ungeübten Auge, Absätze ausfindig zu machen, die manueller Nachbearbeitung +bedürfen. Demgegenüber erscheinen in der Standardeinstellung +\OptionValue{draft}{false} keine solchen Kästchen.% +% +\EndIndex{Option}{draft~=\PName{Ein-Aus-Wert}}% +% +\EndIndex{}{Entwurf} + +\fi % IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<3>> + +\section{\texorpdfstring{Seitenauf"|teilung}{Seitenaufteilung}} +\label{sec:\csname label@base\endcsname.typearea} +\BeginIndex{}{Seitenaufteilung=Seitenauf~"~|teilung} + +Eine Dokumentseite besteht aus unterschiedlichen Teilen, wie den Rändern, dem +Kopf, dem Fuß, dem Textbereich, einer Marginalienspalte und den Abständen +zwischen diesen Elementen. \KOMAScript{} unterscheidet dabei auch noch +zwischen der Gesamtseite oder dem Papier und der sichtbaren Seite. Ohne +Zweifel gehört die Auf"|teilung der Seite in diese unterschiedlichen Teile zu +den Grundfähigkeiten einer Klasse. Bei \KOMAScript{} wird diese Arbeit an das +Paket \Package{typearea} delegiert. Dieses Paket kann auch zusammen mit +anderen Klassen verwendet werden. Die \KOMAScript-Klassen laden +\Package{typearea} jedoch selbständig. Es ist daher weder notwendig noch +sinnvoll, das Paket bei Verwendung einer \KOMAScript-Klasse auch noch explizit +per \Macro{usepackage} zu laden. Siehe hierzu auch +\autoref{sec:\csname label@base\endcsname.options}. + +Einige Einstellungen der \KOMAScript{}-Klassen haben auch Auswirkungen auf die +Seitenauf"|teilung und umgekehrt. Diese Auswirkungen werden bei den +entsprechenden Einstellungen dokumentiert. + +Für die weitere Erklärung zur Wahl des Papierformats, der Auf"|teilung der Seite +in Ränder und Satzspiegel und die Wahl von ein- oder zweispaltigem Satz sei +auf die Anleitung des Pakets \Package{typearea} verwiesen. Diese ist in +\autoref{cha:typearea} ab \autopageref{cha:typearea} zu finden. + + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<4>> + +\label{sec:\csname label@base\endcsname.fontOptions} +\ifshortversion\IgnoreThisfalse\IfCommon{scrextend}{\IgnoreThistrue}\fi% +\ifIgnoreThis% +Es gilt sinngemäß, was in \autoref{sec:maincls.fontOptions} geschrieben +wurde. +\else +\BeginIndex{}{Schrift>Groesse=Größe} + +Die Grundschrift und deren Größe sind zentrale Elemente der Gestaltung eines +Dokuments. Wie in \autoref{cha:typearea} ausgeführt wurde, hängt die +Auf"|teilung zwischen Satzspiegel und Rändern wesentlich davon ab. Die +Grundschrift ist dabei die Schrift, die für die Masse des Textes eines +Dokuments verwendet wird. Alle davon abweichenden Einstellungen, sei es in der +Form, der Dicke, der Neigung oder der Größe, stehen in einer Beziehung zur +Grundschrift. + + +\begin{Declaration} + \KOption{fontsize}\PName{Größe} +\end{Declaration} +\BeginIndex{Option}{fontsize~=\PName{Größe}}% +Während von den Standardklassen und den meisten anderen Klassen nur eine sehr +beschränkte Anzahl an Schriftgrößen unterstützt wird, bietet \KOMAScript{} die +Möglichkeit, jede beliebige \PName{Größe} für die Grundschrift +anzugeben. Dabei kann als Einheit für die \PName{Größe} auch jede bekannte +\TeX-Einheit verwendet werden. Wird die \PName{Größe} ohne Einheit angegeben, +so wird \PValue{pt} als Einheit angenommen. \iffree{}{Das genaue Verfahren, + nach dem die Schriftgröße dann eingestellt wird, ist für Experten und + interessierte Anwender in \autoref{sec:maincls-experts.addInfos}, + \autopageref{desc:maincls-experts.option.fontsize} dokumentiert.} + +Wird die Option innerhalb des Dokuments gesetzt, so werden ab diesem Punkt die +Grundschriftgröße und alle davon abhängigen Größen geändert. Das kann +beispielsweise dann nützlich sein, wenn % +\IfCommon{maincls}{der Anhang }% +\IfCommon{scrlttr2}{ein weiterer Brief }% +\IfCommon{scrextend}{der Anhang }% +insgesamt in einer kleineren Schriftgröße gesetzt werden soll. Es wird darauf +hingewiesen, dass bei Verwendung nach dem Laden der Klasse die Auf"|teilung +zwischen Satzspiegel und Rändern nicht automatisch neu berechnet wird (siehe +\Macro{recalctypearea}\IndexCmd{recalctypearea}, +\autoref{sec:typearea.options}, +\autopageref{desc:typearea.cmd.recalctypearea}). Wird diese Neuberechnung +jedoch vorgenommen, so erfolgt sie auf Basis der jeweils gültigen +Grundschriftgröße. Die Auswirkungen des Wechsels der Grundschriftgröße auf +zusätzlich geladene Pakete % +\IfCommon{scrextend}{oder die verwendete Klasse }% +sind von diesen Paketen % +\IfCommon{scrextend}{und der Klasse }% +abhängig. % +\IfCommon{maincls}{Es können also Fehler auf"|treten, die nicht als Fehler von + \KOMAScript{} angesehen werden.}% +\IfCommon{scrlttr2}{Dabei sind Fehler möglich, die nicht als Fehler von + \KOMAScript{} betrachtet werden.}% +\IfCommon{scrextend}{Es können also Fehler auf"|treten, die nicht als Fehler von + \KOMAScript{} angesehen werden.}% + +Die Option sollte keinesfalls als Ersatz für \Macro{fontsize} (siehe +\cite{latex:fntguide}) missverstanden werden. Sie sollte auch nicht an Stelle +einer der von der Grundschrift abhängigen Schriftgrößenanweisungen, +\Macro{tiny} bis \Macro{Huge}, verwendet werden!% +\IfCommon{scrlttr2}{\ Voreingestellt ist bei \Class{scrlttr2} + \OptionValue{fontsize}{12pt}.} + +\fi % IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<5>> + +\section{Textauszeichnungen} +\label{sec:\csname label@base\endcsname.textmarkup}% +\ifshortversion\IgnoreThisfalse\IfCommon{scrlttr2}{\IgnoreThistrue}\fi% +\ifIgnoreThis% +Es gilt sinngemäß, was in \autoref{sec:maincls.textmarkup} geschrieben +wurde. Dabei sind Namen und Bedeutung der einzelnen Elemente in +\else +\BeginIndex{}{Text>Auszeichnung}% +\BeginIndex{}{Schriftart}% + +\LaTeX{} verfügt über eine ganze Reihe von Anweisungen zur +Textauszeichnung. Neben der Wahl der Schriftart gehören dazu auch Befehle zur +Wahl einer Textgröße oder der Textausrichtung. Näheres zu den normalerweise +definierten Möglichkeiten ist \cite{l2kurz}, \cite{latex:usrguide} und +\cite{latex:fntguide} zu entnehmen. + + +\begin{Declaration} + \Macro{textsuperscript}\Parameter{Text}\\ + \Macro{textsubscript}\Parameter{Text} +\end{Declaration} +\BeginIndex{Cmd}{textsubscript}% +\BeginIndex{Cmd}{textsuperscript}% +Im \LaTeX-Kern ist bereits die Anweisung +\Macro{textsuperscript}\IndexCmd{textsuperscript} definiert, mit der +\PName{Text} höher gestellt werden kann. Leider bietet \LaTeX{} selbst keine +entsprechende Anweisung, um Text tief\Index{Tiefstellung} statt +hoch\Index{Hochstellung} zu stellen. \KOMAScript{} definiert dafür +\Macro{textsubscript}. % +\IfCommon{scrlttr2}{Ein Anwendungsbeispiel finden Sie in + \autoref{sec:maincls.textmarkup}, + \autopageref{desc:maincls.textsubscript.example}.} +\IfCommon{scrextend}{Ein Anwendungsbeispiel finden Sie in + \autoref{sec:maincls.textmarkup}, + \autopageref{desc:maincls.textsubscript.example}.} +% +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.textsubscript.example}% + Sie schreiben einen Text über den menschlichen Stoffwechsel. Darin kommen + hin und wieder einfache chemische Summenformeln vor. Dabei sind einzelne + Ziffern tief zu stellen. Im Sinne des logischen Markups definieren Sie + zunächst in der Dokumentpräambel oder einem eigenen Paket: + \begin{lstcode} + \newcommand*{\Molek}[2]{#1\textsubscript{#2}} + \end{lstcode} + \newcommand*{\Molek}[2]{#1\textsubscript{#2}}% + Damit schreiben Sie dann: + \begin{lstcode} + Die Zelle bezieht ihre Energie unter anderem aus der + Reaktion von \Molek C6\Molek H{12}\Molek O6 und + \Molek O2 zu \Molek H2\Molek O{} und + \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich + allerdings auf den Stoffwechsel sehr nachteilig aus. + \end{lstcode} + Das Ergebnis sieht daraufhin so aus: + \begin{ShowOutput} + Die Zelle bezieht ihre Energie unter anderem aus der Reaktion von + \Molek C6\Molek H{12}\Molek O6 und \Molek O2 zu \Molek H2\Molek + O{} und \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich + allerdings auf den Stoffwechsel sehr nachteilig aus. + \end{ShowOutput} + Etwas später entscheiden Sie, dass Summenformeln grundsätzlich serifenlos + geschrieben werden sollen. Nun zeigt sich, wie gut die Entscheidung für + konsequentes logisches Markup war. Sie müssen nur die + \Macro{Molek}-Anweisung umdefinieren: + \begin{lstcode} + \newcommand*{\Molek}[2]{% + \textsf{#1\textsubscript{#2}}% + } + \end{lstcode} + \renewcommand*{\Molek}[2]{\textsf{#1\textsubscript{#2}}}% + Schon ändert sich die Ausgabe im gesamten Dokument: + \begin{ShowOutput} + Die Zelle bezieht ihr Energie unter anderem aus der Reaktion von + \Molek C6\Molek H{12}\Molek O6 und \Molek O2 zu \Molek H2\Molek + O{} und \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich + allerdings auf den Stoffwechsel sehr nachteilig aus. + \end{ShowOutput} +\end{Example} +\iffalse % vielleicht in einer späteren Auf-lage +Für Experten ist in \autoref{sec:experts.knowhow}, +\autopageref{desc:experts.macroargs} dokumentiert, warum das Beispiel +funktioniert, obwohl teilweise die Argumente von \Macro{Molek} nicht in +geschweifte Klammern gesetzt wurden.% +\fi +\fi% \ifCommonmaincls +% +\EndIndex{Cmd}{textsuperscript}% +\EndIndex{Cmd}{textsubscript}% + + +\begin{Declaration} + \Macro{setkomafont}\Parameter{Element}\Parameter{Befehle}\\ + \Macro{addtokomafont}\Parameter{Element}\Parameter{Befehle}\\ + \Macro{usekomafont}\Parameter{Element} +\end{Declaration}% +\BeginIndex{Cmd}{setkomafont}% +\BeginIndex{Cmd}{addtokomafont}% +\BeginIndex{Cmd}{usekomafont}% +Mit\ChangedAt{v2.8p}{% + \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} Hilfe der beiden +Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} ist es möglich, die +\PName{Befehle} festzulegen, mit denen die Schrift eines bestimmten +\PName{Element}s umgeschaltet wird. Theoretisch könnten als \PName{Befehle} +alle möglichen Anweisungen einschließlich Textausgaben verwendet werden. Sie +sollten sich jedoch unbedingt auf solche Anweisungen beschränken, mit denen +wirklich nur ein Schriftattribut umgeschaltet wird. In der Regel werden dies +die Befehle \Macro{normalfont}, \Macro{rmfamily}, \Macro{sffamily}, +\Macro{ttfamily}, \Macro{mdseries}, \Macro{bfseries}, \Macro{upshape}, +\Macro{itshape}, \Macro{slshape}, \Macro{scshape} sowie die Größenbefehle +\Macro{Huge}, \Macro{huge}, \Macro{LARGE}, \Macro{Large}, \Macro{large}, +\Macro{normalsize}, \Macro{small}, \Macro{footnotesize} und \Macro{tiny} +sein. Die Erklärung zu diesen Befehlen entnehmen Sie bitte \cite{l2kurz}, +\cite{latex:usrguide} oder \cite{latex:fntguide}. Auch Farbumschaltungen wie +\Macro{normalcolor} sind möglich (siehe \cite{package:graphics} und +\cite{package:xcolor}). +\iffalse % Umbruchkorrekturtext +Das Verhalten bei Verwendung anderer Anweisungen, +inbesondere solcher, die zu Umdefinierungen führen oder Ausgaben tätigen, ist +nicht definiert. Seltsames Verhalten ist möglich und stellt keinen Fehler dar. +\else +Die Verwendung anderer Anweisungen, inbesondere +solcher, die Umdefinierungen vornehmen oder zu Ausgaben führen, ist nicht +vorgesehen. Seltsames Verhalten ist in diesen Fällen möglich und stellt +keinen Fehler dar. +\fi + +Mit \Macro{setkomafont} wird die Schriftumschaltung eines Elements mit einer +völlig neuen Definition versehen. Demgegenüber wird mit \Macro{addtokomafont} +die existierende Definition lediglich erweitert. Es wird empfohlen, beide +Anweisungen nicht innerhalb des Dokuments, sondern nur in der Dokumentpräambel +zu verwenden. Beispiele für die Verwendung entnehmen Sie bitte den Abschnitten +zu den jeweiligen Elementen. Namen und Bedeutung der einzelnen Elemente sind +in % +\fi % IgnoreThis +\IfNotCommon{scrextend}{\autoref{tab:\csname + label@base\endcsname.elementsWithoutText} }% +\IfCommon{scrextend}{\autoref{tab:maincls.elementsWithoutText}, + \autopageref{tab:maincls.elementsWithoutText} }% +aufgelistet. % +\IfCommon{scrextend}{Allerdings werden davon in \Package{scrextend} nur die + Elemente für den Dokumenttitel, den schlauen Spruch und die Fußnoten + behandelt. Das Element \FontElement{disposition} ist zwar auch verfügbar, + wird jedoch von \Package{scrextend} ebenfalls nur für den Dokumenttitel + verwendet. }% +Die Voreinstellungen sind den jeweiligen Abschnitten zu entnehmen. + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<6>> + +\section{Absatzauszeichnung} +\label{sec:\csname label@base\endcsname.parmarkup}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis\else +\BeginIndex{}{Absatz>Auszeichnung}% + +\IfCommon{maincls}{% + Die Standardklassen setzen Absätze\Index[indexmain]{Absatz} normalerweise + mit Absatzeinzug und ohne Absatzabstand. Bei Verwendung eines normalen + Satzspiegels, wie ihn \Package{typearea} bietet, ist dies die + vorteilhafteste Absatzauszeichnung. Würde man ohne Einzug und Abstand + arbeiten, hätte der Leser als Anhaltspunkt nur die Länge der letzten Zeile. + Im Extremfall kann es sehr schwer sein, zu erkennen, ob eine Zeile voll ist + oder nicht. Des Weiteren stellt der Typograf fest, dass die Auszeichnung des + Absatzendes am Anfang der nächsten Zeile leicht vergessen ist. Demgegenüber + ist eine Auszeichnung am Absatzanfang einprägsamer. Der Absatzabstand hat + den Nachteil, dass er in verschiedenem Zusammenhang leicht verloren geht. So + wäre nach einer abgesetzten Formel nicht mehr festzustellen, ob der Absatz + fortgesetzt wird oder ein neuer beginnt. Auch am Seitenanfang müsste + zurückgeblättert werden, um feststellen zu können, ob mit der Seite auch ein + neuer Absatz beginnt. All diese Probleme sind beim Absatzeinzug nicht + gegeben. Eine Kombination von Absatzeinzug und Absatzabstand ist wegen der + übertriebenen Redundanz abzulehnen. Der Einzug\Index[indexmain]{Einzug} + alleine ist deutlich genug. Der einzige Nachteil des Absatzeinzugs liegt in + der Verkürzung der Zeile. Damit gewinnt der + Absatzabstand\Index{Absatz>Abstand} bei ohnehin kurzen Zeilen, etwa im + Zeitungssatz, seine Berechtigung.}% +\fi% IgnoreThis +\IfCommon{scrlttr2}{% + In der Einleitung zu \autoref{sec:maincls.parmarkup} ab + \autopageref{sec:maincls.parmarkup} wird dargelegt, warum der Absatzeinzug + gegenüber dem Absatzabstand vorzuziehen ist. Die Elemente, auf die sich + diese Argumente beziehen, beispielsweise Abbildungen, Tabellen, Listen, + abgesetzte Formeln und auch neue Seiten, sind in Standardbriefen eher + selten. Auch sind Briefe normalerweise nicht so umfänglich, dass ein nicht + erkannter Absatz sich schwerwiegend auf die Lesbarkeit auswirkt. Die + Argumente sind daher bei Standardbriefen eher schwach. Dies dürfte ein Grund + dafür sein, dass der Absatzabstand bei Briefen eher gebräuchlich ist. Es + bleiben damit für Standardbriefe im Wesentlichen zwei Vorteile des + Absatzeinzugs. Zum einen hebt sich ein solcher Brief aus der Masse hervor + und zum anderen durchbricht man damit nicht nur für Briefe das einheitliche + Erscheinungsbild aller Dokumente aus einer Quelle, die so genannte + \emph{Corporate Identity}.}% +\ifIgnoreThis% +\IfCommon{scrlttr2}{\ Von dieser Unterscheidung gegenüber den anderen + \KOMAScript-Klassen abgesehen gilt, was in \autoref{sec:maincls.parmarkup} + geschrieben wurde.} +\else + +\begin{Declaration} + \KOption{parskip}\PName{Abstandsart} +\end{Declaration} +\BeginIndex{Option}{parskip~=\PName{Methode}}% +\IfCommon{maincls}{% + Hin und wieder wird ein Layout mit Absatzabstand an Stelle des + voreingestellten Absatzeinzugs gefordert. Die \KOMAScript-Klassen bietet mit + der Option \Option{parskip}\ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}} }% +\IfCommon{scrlttr2}{Bei Briefen findet man häufiger ein Layout mit + Absatzabstand an Stelle des voreingestellten Absatzeinzugs. Die + \KOMAScript-Klasse \Class{scrlttr2} bietet mit der Option \Option{parskip} +}% +eine Reihe von Möglichkeiten, um dies +zu erreichen. Die \PName{Methode} setzt sich dabei aus zwei Teilen +zusammen. Der erste Teil ist entweder \PValue{full} oder \PValue{half}, wobei +\PValue{full} für einen Absatzabstand von einer Zeile und \PValue{half} für +einen Absatzabstand von einer halben Zeile steht. Der zweite Teil ist eines +der Zeichen »\PValue{*}«, »\PValue{+}«, »\PValue{-}« und kann auch +entfallen. Lässt man das Zeichen weg, so wird in der letzten Zeile des +Absatzes am Ende mindestens ein Geviert, das ist 1\Unit{em}, frei gelassen. +Mit dem Pluszeichen wird am Zeilenende mindestens ein Drittel und mit dem +Stern mindestens ein Viertel einer normalen Zeile frei gelassen. Mit der +Minus-Variante werden keine Vorkehrungen für die letzte Zeile eines Absatzes +getroffen. + +Neben den sich so ergebenden acht Kombinationen ist es noch möglich, als +\PName{Methode} die Werte für einfache Schalter aus +\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} zu +verwenden. Das Einschalten der Option entspricht dabei \PValue{full} ohne +angehängtes Zeichen für den Freiraum der letzten Absatzzeile, also mit +mindestens einem Geviert Freiraum am Ende des Absatzes. Das Ausschalten der +Option schaltet hingegen wieder auf Absatzeinzug von einem Geviert um. Dabei +darf die letzte Zeile eines Absatzes auch bis zum rechten Rand reichen. Einen +Überblick über alle möglichen Werte für \PName{Methode} bietet +\autoref{tab:maincls.parskip}% +\IfCommon{scrlttr2}{auf \autopageref{tab:maincls.parskip}}% +. + +\IfCommon{maincls}{% +\begin{desctable} + \caption[{Mögliche Werte für Option \Option{parskip}}]{Mögliche Werte für + Option \Option{parskip} zur Auswahl der Kennzeichnung von + Absätzen\label{tab:maincls.parskip}}\\ + \Endfirsthead% + \caption[]{Mögliche Werte für Option \Option{parskip} + (\emph{Fortsetzung})}\\ + \Endhead% + \standardfoot% + \entry{\PValue{false}, \PValue{off}, \PValue{no}% + \IndexOption{parskip~=false}}{% + Absätze werden durch einen Einzug der ersten Zeilen von einem Geviert + (1\Unit{em}) gekennzeichnet. Der erste Absatz eines Abschnitts wird nicht + eingezogen.}% + \entry{\PValue{full}, \PValue{true}, \PValue{on}, \PValue{yes}% + \IndexOption{parskip~=full}% + }{% + Absätze werden durch einen vertikalen Abstand von einer Zeile + gekennzeichnet, Absatzenden durch einen Leerraum von mind. ein + Geviert (1\Unit{em}) der Grundschrift am Ende der letzten Zeile.}% + \pventry{full-}{% + Absätze werden durch einen vertikalen Abstand von einer Zeile + gekennzeichnet. Absatzenden werden nicht + gekennzeichnet.\IndexOption{parskip~=full-}}% + \pventry{full+}{% + \looseness=-1 + Absätze werden durch einen vertikalen Abstand von einer Zeile + gekennzeichnet. Absatzenden werden durch einen Leerraum von mind. einem + Viertel einer normalen Zeile gekennzeichnet.\IndexOption{parskip~=full+}}% + \pventry{full*}{% + Absätze werden durch einen vertikalen Abstand von einer Zeile + gekennzeichnet. Absatzenden werden durch einen Leerraum von mind. einem + Drittel einer normalen Zeile gekennzeichnet.\IndexOption{parskip~=full*}}% + \pventry{half}{% + Absätze werden durch einen vertikalen Abstand von einer halben Zeile + gekennzeichnet. Absatzenden durch einen Leerraum von mind. ein Geviert + (1\Unit{em}) der normalen Schrift am Ende + gekennzeichnet.\IndexOption{parskip~=half}}% + \pventry{half-}{% + Absätze werden durch einen vertikalen Abstand von einer halben Zeile + gekennzeichnet. Absatzenden werden nicht + gekennzeichnet.\IndexOption{parskip~=half-}}% + \pventry{half+}{% + Absätze werden durch einen vertikalen Abstand von einer halben Zeile + gekennzeichnet. Absatzenden werden durch einen Leerraum von mind. einem + Viertel einer normalen Zeile gekennzeichnet.\IndexOption{parskip~=half+}}% + \pventry{half*}{% + Absätze werden durch einen vertikalen Abstand von einer Zeile + gekennzeichnet. Absatzenden werden durch einen Leerraum von mind. einem + Drittel einer normalen Zeile gekennzeichnet.\IndexOption{parskip~=half*}}% +\end{desctable}} + +Wird ein Absatzabstand verwendet, so verändert sich auch der Abstand vor, nach +und innerhalb von Listenumgebungen. Dadurch wird verhindert, dass diese +Umgebungen oder Absätze innerhalb dieser Umgebungen stärker vom Text abgesetzt +werden als die Absätze des normalen Textes voneinander.% +\IfCommon{maincls}{ Inhalts"~, Abbildungs"~ und Tabellenverzeichnis werden + immer ohne zusätzlichen Absatzabstand gesetzt.}% +\IfCommon{scrlttr2}{% Umbruchkorrekturtext + \iffalse% + \ Verschiedene Elemente des Briefbogens werden immer ohne Absatzabstand + gesetzt.% + \fi}% + +Voreingestellt ist bei \KOMAScript{} das Verhalten +\OptionValue{parskip}{false}. Hierbei gibt es keinen Absatzabstand, sondern +einen Absatzeinzug von 1\Unit{em}.% +% +\EndIndex{Option}{parskip~=\PName{Methode}}% +% +\EndIndex{}{Absatz>Auszeichnung} +\fi % IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<7>> + +\section{Erkennung von rechten und linken Seiten} +\label{sec:\csname label@base\endcsname.oddOrEven}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis% +Es gilt sinngemäß, was in \autoref{sec:maincls.oddOrEven} geschrieben +wurde. +\else +\BeginIndex{}{Seite>gerade}% +\BeginIndex{}{Seite>ungerade}% + +Bei doppelseitigen Dokumenten wird zwischen linken und rechten Seiten +unterschieden. Dabei hat eine linke Seite immer eine gerade Nummer und eine +rechte Seite immer eine ungerade Nummer. % +\IfCommon{maincls}{Die Erkennung von rechten und linken Seiten ist damit + gleichbedeutend mit der Erkennung von Seiten mit gerader oder ungerader + Nummer. In \iffree{dieser Anleitung}{diesem Buch} ist vereinfachend von + ungeraden und geraden Seiten die Rede.% + +% Umbruchkorrekturtext + \iftrue% + Bei einseitigen Dokumenten existiert die Unterscheidung zwischen linken und + rechten Seiten nicht. Dennoch gibt es natürlich auch bei einseitigen + Dokumenten sowohl Seiten mit gerader als auch Seiten mit ungerader Nummer.% + \fi}% +\IfCommon{scrlttr2}{In der Regel werden Briefe einseitig +gesetzt. Sollen Briefe mit einseitigem Layout jedoch auf Vorder- und Rückseite +gedruckt, oder ausnahmsweise tatsächlich doppelseitige Briefe erstellt werden, +kann unter Umständen das Wissen, ob man sich auf einer Vorder- oder einer +Rückseite befindet, nützlich sein.}% + +\begin{Declaration} + \Macro{ifthispageodd}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration}% +\BeginIndex{Cmd}{ifthispageodd}% +Will man bei \KOMAScript{} feststellen, ob ein Text auf einer geraden oder +einer ungeraden Seite ausgegeben wird, so verwendet man die Anweisung +\Macro{ifthispageodd}. Dabei wird das Argument \PName{Dann-Teil} nur dann +ausgeführt, wenn man sich gerade auf einer ungeraden Seite +befindet. Anderenfalls kommt das Argument \PName{Sonst-Teil} zur Anwendung. + +\begin{Example} + Angenommen, Sie wollen einfach nur ausgeben, ob ein Text auf einer geraden + oder ungeraden Seite ausgegeben wird. Sie könnten dann beispielsweise mit + der Eingabe + \begin{lstcode} + Dies ist eine Seite mit \ifthispageodd{un}{}gerader + Seitenzahl. + \end{lstcode} + die Ausgabe + \begin{quote} + Dies ist eine Seite mit \ifthispageodd{un}{}gerader Seitenzahl. + \end{quote} + erhalten. Beachten Sie, dass in diesem Beispiel das Argument + \PName{Sonst-Teil} leer geblieben ist. +\end{Example} + +Da die Anweisung \Macro{ifthispageodd} mit einem Mechanismus arbeitet, der +einem Label und einer Referenz darauf sehr ähnlich ist, werden nach jeder +Textänderung mindestens zwei \LaTeX-Durchläufe benötigt. Erst dann ist die +Entscheidung korrekt. Im ersten Durchlauf wird eine Heuristik für die +Entscheidung verwendet. + +Näheres zur Problematik der Erkennung von linken und rechten Seiten oder +geraden und ungeraden Seitennummern ist für Experten in +\autoref{sec:maincls-experts.addInfos}, +\autopageref{desc:maincls-experts.cmd.ifthispageodd} zu finden.% +% +\EndIndex{Cmd}{ifthispageodd}% +% +\EndIndex{}{Seite>ungerade}% +\EndIndex{}{Seite>gerade} +\fi % IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<8>> + +\section{Vakatseiten} +\label{sec:\csname label@base\endcsname.emptypage}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis +Es gilt sinngemäß, was in \autoref{sec:maincls.emptypage} geschrieben +wurde. +\else +\BeginIndex{}{Vakatseite}%% +\BeginIndex{}{Seitenstil}% + +\IfNotCommon{scrlttr2}{Vakatseiten sind Seiten, die beim Satz eines Dokuments + absichtlich leer bleiben. Ursprünglich sind diese Seiten wirklich komplett + leer. Bei \LaTeX{} werden sie jedoch in der Voreinstellung mit dem aktuell + gültigen Seitenstil gesetzt. \KOMAScript{} bietet hier diverse + Erweiterungen. + + Vakatseiten findet man hauptsächlich in Büchern. Da es bei Büchern üblich + ist, dass Kapitel auf einer rechten Seite beginnen, muss in dem Fall, dass + das vorherigen Kapitel ebenfalls auf einer rechten Seite endet, eine leere + linke Seite eingefügt werden. Aus dieser Erklärung ergibt sich auch, dass + Vakatseiten normalerweise nur im doppelseitigen Satz existieren. Die leeren + Rückseiten im einseitigen Druck werden eher nicht als Vakatseiten + bezeichnet, obwohl sie auf Druckbögen im Ergebnis als solche erscheinen.}% +\fi +\ifIgnoreThis +\IfCommon{scrlttr2}{Aber} +\fi +\IfCommon{scrlttr2}{Vakatseiten sind bei Briefen eher unüblich. Das liegt + nicht zuletzt daran, dass wahrhaft doppelseitige Briefe recht selten sind, + da Briefe normalerweise nicht gebunden werden. Trotzdem unterstützt auch + \Class{scrlttr2} für den Fall von doppelseitigen Briefen Einstellungen für + Vakatseiten. Da die hier vorgestellten Anweisungen aber in Briefen kaum + Verwendung finden, finden Sie hier keine Beispiele. Bei Bedarf orientieren + Sie sich bitte an den Beispielen in \autoref{sec:maincls.emptypage} ab + \autopageref{sec:maincls.emptypage}.}% +\ifIgnoreThis\else + +\begin{Declaration} + \KOption{cleardoublepage}\PName{Seitenstil}\\ + \OptionValue{cleardoublepage}{current} +\end{Declaration}% +\BeginIndex{Option}{cleardoublepage~=\PName{Seitenstil}}% +\BeginIndex{Option}{cleardoublepage~=current}% +Mit Hilfe dieser Option\ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}} kann man den +\PName{Seitenstil} der Vakatseite bestimmen, die gegebenenfalls von der +Anweisung \Macro{cleardoublepage} eingefügt wird, um bis zur gewünschten Seite +zu umbrechen. Als \PName{Seitenstil} sind alle bereits definierten Seitenstile +(siehe \autoref{sec:\csname label@base\endcsname.pagestyle} ab +\autopageref{sec:\csname label@base\endcsname.pagestyle} und +\autoref{cha:scrpage} ab \autopageref{cha:scrpage}) verwendbar. Daneben ist +auch \OptionValue{cleardoublepage}{current} möglich. Dieser Fall entspricht +der Voreinstellung von \KOMAScript{} bis Version~2.98c und führt dazu, dass +die Vakatseite mit dem Seitenstil erzeugt wird, der beim Einfügen gerade +aktuell ist. Ab Version~3.00\ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}} werden in der +Voreinstellung entsprechend der typografischen Gepflogenheiten Vakatseiten mit +dem Seitenstil \Pagestyle{empty} erzeugt, wenn man nicht Kompatibilität zu +früheren \KOMAScript-Versionen eingestellt hat (siehe Option \Option{version}, +\autoref{sec:\csname label@base\endcsname.compatibilityOptions}, +\autopageref{desc:\csname label@base\endcsname.option.version}). +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.option.cleardoublepage.example} + Angenommen Sie wollen, dass die Vakatseiten bis auf die Paginierung leer + sind, also mit Seitenstil \Pagestyle{plain} erzeugt werden. Dies erreichen + Sie beispielsweise mit + \begin{lstcode} + \KOMAoption{cleardoublepage=plain} + \end{lstcode} + Näheres zum Seitenstil \Pagestyle{plain} ist in + \autoref{sec:maincls.pagestyle}, \autopageref{desc:maincls.pagestyle.plain} + zu finden. +\end{Example} +\fi +\ifCommonscrextend +\begin{Example} + \phantomsection\label{desc:scrextend.option.cleardoublepage.example} + Angenommen Sie wollen, dass die Vakatseiten bis auf die Paginierung leer + sind, also mit Seitenstil \Pagestyle{plain} erzeugt werden. Dies erreichen + Sie beispielsweise mit + \begin{lstcode} + \KOMAoption{cleardoublepage=plain} + \end{lstcode} + Näheres zum Seitenstil \Pagestyle{plain} ist in + \autoref{sec:maincls.pagestyle}, \autopageref{desc:maincls.pagestyle.plain} + zu finden. +\end{Example} +\fi +\EndIndex{Option}{cleardoublepage~=current}% +\EndIndex{Option}{cleardoublepage~=\PName{Seitenstil}} + + +\begin{Declaration} + \Macro{clearpage}\\ + \Macro{cleardoublepage}\\ + \Macro{cleardoublepageusingstyle}\Parameter{Seitenstil}\\ + \Macro{cleardoubleemptypage}\\ + \Macro{cleardoubleplainpage}\\ + \Macro{cleardoublestandardpage}\\ + \Macro{cleardoubleoddusingstyle}\Parameter{Seitenstil}\\ + \Macro{cleardoubleoddemptypage}\\ + \Macro{cleardoubleoddplainpage}\\ + \Macro{cleardoubleoddstandardpage}\\ + \Macro{cleardoubleevenusingstyle}\Parameter{Seitenstil}\\ + \Macro{cleardoubleevenemptypage}\\ + \Macro{cleardoubleevenplainpage}\\ + \Macro{cleardoubleevenstandardpage} +\end{Declaration}% +\BeginIndex{Cmd}{clearpage}% +\BeginIndex{Cmd}{cleardoublepage}% +\BeginIndex{Cmd}{cleardoublepageusingstyle}% +\BeginIndex{Cmd}{cleardoublestandardpage}% +\BeginIndex{Cmd}{cleardoubleplainpage}% +\BeginIndex{Cmd}{cleardoubleemptypage}% +\BeginIndex{Cmd}{cleardoubleoddusingstyle}% +\BeginIndex{Cmd}{cleardoubleoddstandardpage}% +\BeginIndex{Cmd}{cleardoubleoddplainpage}% +\BeginIndex{Cmd}{cleardoubleoddemptypage}% +\BeginIndex{Cmd}{cleardoubleevenusingstyle}% +\BeginIndex{Cmd}{cleardoubleevenstandardpage}% +\BeginIndex{Cmd}{cleardoubleevenplainpage}% +\BeginIndex{Cmd}{cleardoubleevenemptypage}% +Im \LaTeX-Kern existiert die Anweisung \Macro{clearpage}, die dafür sorgt, +dass alle noch nicht ausgegebenen Gleitumgebungen ausgegeben werden und +anschließend eine neue Seite begonnen wird. Außerdem existiert die Anweisung +\Macro{cleardoublepage}, die wie \Macro{clearpage} arbeitet, durch die aber im +doppelseitigen Layout (siehe Option \Option{twoside} in +\autoref{sec:typearea.options}, \autopageref{desc:typearea.option.twoside}) +eine neue rechte Seite begonnen wird. Dazu wird gegebenenfalls eine linke +Vakatseite im aktuellen Seitenstil ausgegeben. + +Bei {\KOMAScript} arbeitet +\Macro{cleardoubleoddstandardpage}\ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}} genau in der +soeben für die Standardklassen beschriebenen Art und Weise. Die Anweisung +\Macro{cleardoubleoddplainpage} ändert demgegenüber den Seitenstil der leeren +linken Seite zusätzlich auf \Pagestyle{plain}\IndexPagestyle{plain}, um den % +\IfCommon{maincls}{Kolumnentitel}% +\IfCommon{scrlttr2}{Seitenkopf}% +\ zu unterdrücken. Analog dazu wird bei der Anweisung +\Macro{cleardoubleoddemptypage} der Seitenstil +\Pagestyle{empty}\IndexPagestyle{empty} verwendet, um sowohl % +\IfCommon{maincls}{Kolumnentitel als auch Seitenzahl}% +\IfCommon{scrlttr2}{Seitenkopf als auch Seitenfuß}% +\ auf der leeren linken Seite zu unterdrücken. Die Seite ist damit vollständig +leer. Will man für die Vakatseite einen eigenen \PName{Seitenstil} vorgeben, +so ist dieser als Argument von \Macro{cleardoubleoddusingstyle} +anzugeben. Dabei kann jeder bereits definierte Seitenstil (siehe auch +\autoref{cha:scrpage}) verwendet werden. + +\IfNotCommon{scrlttr2}{% + Manchmal möchte man nicht, dass Kapitel mit neuen rechten Seiten, sondern + links auf einer Doppelseite beginnen. Dies widerspricht zwar dem klassischen + Buchdruck, kann jedoch seine Berechtigung haben, wenn die Doppelseite am + Kapitelanfang einen ganz speziellen Inhalt hat. Bei \KOMAScript{} ist + deshalb die Anweisung \Macro{cleardoubleevenstandardpage} als Äquivalent zu + \Macro{cleardoubleoddstandardpage} definiert, jedoch mit dem Unterschied, + dass die nächste Seite eine linke Seite ist. Entsprechendes gilt für die + Anweisungen \Macro{cleardoubleevenplainpage}, + \Macro{cleardoubleevenemptypage} und \Macro{cleardoubleevenusingstyle}.} + +Die Arbeitsweise der neuen Anweisungen \Macro{cleardoublestandardpage}, +\Macro{cleardoubleemptypage}, \Macro{cleardoubleplainpage} und der ein +Argument erwartenden Anweisung \Macro{cleardoublepageusingstyle} ist % +\IfCommon{scrlttr2}{bei \Class{scrlttr2} }% +\IfCommon{scrextend}{bei \Package{scrextend} }% +ebenso wie die Standard-Anweisung \Macro{cleardoublepage} von der zuvor +erklärten Option \Option{cleardoublepage} abhängig und entspricht je nach +Einstellung einer der in den vorherigen Absätzen erläuterten Anweisungen. + +\IfCommon{scrlttr2}{% + Die übrigen Anweisungen sind bei \Class{scrlttr2} nur aus Gründen der + Vollständigkeit definiert. Näheres zu diesen Anweisungen ist bei Bedarf + \autoref{sec:maincls.emptypage}, + \autopageref{desc:maincls.cmd.cleardoublepage} zu entnehmen.}% +\ifCommonscrlttr2\else +\begin{Example} + \label{desc:maincls.cmd.cleardoublepage.example}% + Angenommen Sie wollen innerhalb eines Dokuments als nächstes eine + Doppelseite setzen, bei der auf der linken Seite eine Abbildung in Größe des + Satzspiegels platziert wird und rechts ein neues Kapitel beginnt. Falls das + vorherige Kapitel mit einer linken Seite endet, muss also eine Vakatseite + eingefügt werden. Diese soll komplett leer sein. Ebenso soll die linke + Bildseite weder Kopf noch Fußzeile besitzen. Zunächst wird mit + \begin{lstcode} + \KOMAoptions{cleardoublepage=empty} + \end{lstcode} + dafür gesorgt, dass Vakatseiten mit dem Seitenstil \Pagestyle{empty}, also + ohne Kopf- und Fußzeile gesetzt werden. Diese Einstellung können Sie bereits + in der Dokumentpräambel vornehmen. Die Optionen können alternativ auch als + optionale Argumente von \Macro{documentclass} angegeben werden. + + An der gewünschten Stelle im Dokument schreiben Sie nun: + \begin{lstcode} + \cleardoubleevenemptypage + \thispagestyle{empty} + \includegraphics[width=\textwidth,% + height=\textheight,% + keepaspectratio]% + {bild} + \chapter{Kapitelüberschrift} + \end{lstcode} + Die erste Zeile wechselt auf die nächste linke Seite und fügt zu diesem + Zweck bei Bedarf eine komplett leere rechte Seite ein. Die zweite Zeile + sorgt dafür, dass diese linke Seite ebenfalls mit dem Seitenstil + \Pagestyle{empty} gesetzt wird. Die dritte bis sechste Zeile lädt die + Bilddatei mit dem Namen \File{bild} und bringt sie auf die gewünschte Größe, + ohne sie dabei zu verzerren. Hierfür wird das Paket + \Package{graphicx}\IndexPackage{graphicx} benötigt (siehe + \cite{package:graphics}). Die letzte Zeile beginnt auf der nächsten -- dann + rechten -- Seite ein neues Kapitel. +\end{Example}% +\fi +% +\EndIndex{Cmd}{clearpage}% +\EndIndex{Cmd}{cleardoublepage}% +\EndIndex{Cmd}{cleardoublepageusingstyle}% +\EndIndex{Cmd}{cleardoublestandardpage}% +\EndIndex{Cmd}{cleardoubleplainpage}% +\EndIndex{Cmd}{cleardoubleemptypage}% +\EndIndex{Cmd}{cleardoubleoddusingstyle}% +\EndIndex{Cmd}{cleardoubleoddstandardpage}% +\EndIndex{Cmd}{cleardoubleoddplainpage}% +\EndIndex{Cmd}{cleardoubleoddemptypage}% +\EndIndex{Cmd}{cleardoubleevenusingstyle}% +\EndIndex{Cmd}{cleardoubleevenstandardpage}% +\EndIndex{Cmd}{cleardoubleevenplainpage}% +\EndIndex{Cmd}{cleardoubleevenemptypage}% +% +\EndIndex{}{Seitenstil}% +\EndIndex{}{Vakatseite}% +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<9>> + +\section{Fußnoten} +\label{sec:\csname label@base\endcsname.footnotes}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis +\IfNotCommon{scrextend}{Es gilt sinngemäß, was in + \autoref{sec:maincls.footnotes} geschrieben wurde.} +\else +\BeginIndex{}{Fussnoten=Fußnoten}% + +\iffalse% Umbruchkorrekturtext +Selbstverständlich beherrscht \LaTeX{} auch Fußnoten. % +\fi% +\IfCommon{maincls}{Im Unterschied zu den Standardklassen bietet \KOMAScript{} + die Möglichkeit, die Form von Fußnoten zu konfigurieren.}% +\IfCommon{scrlttr2}{Die Anweisungen zum Setzen von Fußnoten sind in jeder + \LaTeX-Einführung, beispielsweise \cite{l2kurz}, zu finden. \KOMAScript{} + bietet darüber hinaus aber auch noch die Möglichkeit, die Form der Fußnoten + zu verändern.}% +\fi +\IfCommon{scrextend}{Die Fußnoten-Möglichkeiten der \KOMAScript-Klassen% +\ifIgnoreThis + , die in \autoref{sec:maincls.footnotes} beschrieben sind,% +\fi + \ werden + von \Package{scrextend} ebenfalls bereitgestellt. In der Voreinstellung wird + die Formatierung der Fußnoten jedoch der verwendeten Klasse überlassen. Dies + ändert sich, sobald die Anweisung \Macro{deffootnote} verwendet wird, die + auf + \autopageref{desc:\ifIgnoreThis maincls\else scrextend\fi.cmd.deffootnote} + näher erläutert wird.}% +\ifIgnoreThis\else + +\begin{Declaration} + \KOption{footnotes}\PName{Einstellung} +\end{Declaration} +\BeginIndex{Option}{footnotes~=\PName{Einstellung}}% +\IfCommon{scrextend}{Bei vielen Klassen werden Fußnoten }% +\IfNotCommon{scrextend}{ \ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}}Fußnoten werden +}% +im Text in der Voreinstellung mit kleinen, hochgestellten Ziffern +markiert. Werden zu einer Textstelle mehrere Fußnoten hintereinander gesetzt, +so entsteht der Eindruck, dass es sich nicht um zwei einzelne Fußnoten, +sondern um eine einzige Fußnote mit hoher Nummer handelt. Mit der Einstellung +\OptionValue{footnotes}{multiple}\IndexOption{footnotes=~multiple} werden +Fußnoten, die unmittelbar aufeinander folgen, stattdessen mit Trennzeichen +aneinander gereiht. Das in \Macro{multfootsep}\IndexCmd{multfootsep} +definierte Trennzeichen ist mit einem Komma vorbelegt. Der gesamte Mechanismus +ist kompatibel zu \Package{footmisc}\IndexPackage{footmisc}, Version~5.3d +(siehe \cite{package:footmisc}) implementiert. Er wirkt sich sowohl auf +Fußnotenmarkierungen aus, die mit \Macro{footnote}\IndexCmd{footnote} gesetzt +wurden, als auch auf solche, die direkt mit +\Macro{footnotemark}\IndexCmd{footnotemark} ausgegeben werden. + +Es ist jederzeit möglich, auf die Voreinstellung +\OptionValue{footnotes}{nomultiple} zurückzuschalten. Bei Problemen mit +anderen Paketen, die Einfluss auf die Fußnoten nehmen, sollte die Option +jedoch nicht verwendet und die Einstellung auch nicht innerhalb des Dokuments +umgeschaltet werden. + +Eine Zusammenfassung der möglichen Werte für die \PName{Einstellung} von +\Option{footnotes} bietet \autoref{tab:maincls.footnotes}% +\IfNotCommon{maincl}{, \autopageref{tab:maincls.footnotes}}% +.% +\IfCommon{maincls}{% +\begin{table} + \caption[{Mögliche Werte für Option \Option{footnotes}}]{Mögliche Werte für + Option \Option{footnotes} zur Einstellung der Fußnoten} + \label{tab:maincls.footnotes} + \begin{desctabular} + \pventry{multiple}{% + Unmittelbar aufeinander folgende Fußnotenmarkierungen werden durch + \Macro{multfootsep}\IndexCmd{multfootsep} voneinander getrennt + ausgegeben.% + \IndexOption{footnotes~=multiple}}% + \pventry{nomultiple}{% + Unmittelbar aufeinander folgende Fußnotenmarkierungen werden auch + unmittelbar aufeinander folgend ausgegeben.% + \IndexOption{footnotes~=nomultiple}}% + \end{desctabular} +\end{table}}% +% +\EndIndex{Option}{footnotes~=\PName{Einstellung}} + + +\begin{Declaration} + \Macro{footnote}\OParameter{Nummer}\Parameter{Text}\\ + \Macro{footnotemark}\OParameter{Nummer}\\ + \Macro{footnotetext}\OParameter{Nummer}\Parameter{Text}\\ + \Macro{multiplefootnoteseparator}\\ + \Macro{multfootsep} +\end{Declaration}% +\BeginIndex{Cmd}{footnote}% +\BeginIndex{Cmd}{footnotemark}% +\BeginIndex{Cmd}{footnotetext}% +\BeginIndex{Cmd}{multiplefootnoteseparator}% +\BeginIndex{Cmd}{multfootsep}% +Fußnoten werden bei {\KOMAScript} genau wie bei den Standardklassen mit der +Anweisung \Macro{footnote} oder den paarweise zu verwendenden Anweisungen +\Macro{footnotemark} und \Macro{footnotetext} erzeugt. Genau wie bei den +Standardklassen ist es möglich, dass innerhalb einer Fußnote ein +Seiten"-umbruch erfolgt. Dies geschieht in der Regel dann, wenn die zugehörige +Fußnotenmarkierung so weit unten auf der Seite gesetzt wird, dass keine andere +Wahl bleibt, als die Fußnote auf die nächste Seite zu umbrechen. Im +Unterschied\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Class{scrlttr2}} zu den Standardklassen bietet +\KOMAScript{} aber zusätzlich die Möglichkeit, Fußnoten, die unmittelbar +aufeinander folgen, automatisch zu erkennen und durch ein Trennzeichen +auseinander zu rücken. Siehe hierzu die zuvor dokumentierte Option +\Option{footnotes}. + +Will man dieses Trennzeichen stattdessen von Hand setzen, so erhält man es +durch Aufruf von \Macro{multiplefootnoteseparator}. Diese Anweisung sollten +Anwender jedoch nicht umdefinieren, da sie neben dem Trennzeichen auch die +Formatierung des Trennzeichen, beispielsweise die Wahl der Schriftgröße und +das Hochstellen, enthält. Das Trennzeichen selbst ist in der Anweisung +\Macro{multfootsep} gespeichert. In der Voreinstellung ist dieses als +% Umbruchkorrektur: listings korrigieren! +\begin{lstcode}[belowskip=\dp\strutbox] + \newcommand*{\multfootsep}{,} +\end{lstcode} +definiert. Dieses kann umdefiniert werden. + +\ifCommonscrlttr\else +\begin{Example} + \phantomsection\label{desc:maincls.cmd.footnote.example}% + Angenommen, Sie wollen zu einem Wort zwei Fußnoten setzen. Im ersten Ansatz + schreiben Sie dafür + \begin{lstcode} + Wort\footnote{erste Fußnote}\footnote{zweite Fußnote}. + \end{lstcode} + Nehmen wir weiter an, dass die Fußnoten mit 1 und 2 nummeriert werden. Da + die beiden Fußnotennummern direkt aufeinander folgen, entsteht jedoch der + Eindruck, dass das Wort nur eine Fußnote mit der Nummer 12 besitzt. Sie + könnten dies nun dadurch ändern, dass Sie mit + \begin{lstcode} + \KOMAoptions{footnotes=multiple} + \end{lstcode} + die automatische Erkennung von Fußnotenhäufungen aktivieren. Stattdessen + können Sie aber auch + \begin{lstcode} + Wort\footnote{erste Fußnote}\multiplefootnoteseparator + \footnote{zweite Fußnote} + \end{lstcode} + verwenden. Das sollte auch dann noch funktionieren, wenn die automatische + Erkennung aus irgendwelchen Gründen versagt oder nicht verwendet werden + kann. + + Nehmen wir nun an, dass Sie außerdem wollen, dass die Fußnotennummern + nicht nur durch ein Komma, sondern durch ein Komma gefolgt von einem + Leerzeichen getrennt werden sollen. In diesem Fall schreiben Sie + \begin{lstcode} + \renewcommand*{\multfootsep}{,\nobreakspace} + \end{lstcode} + in Ihre Dokumentpräambel. \Macro{nobreakspace}\IndexCmd{nobreakspace} wurde + hier an Stelle eines normalen Leerzeichens gewählt, damit innerhalb der + Reihung der Fußnotenzeichen kein Absatz- oder Seitenumbruch erfolgen kann. +\end{Example}% +\fi% +\IfCommon{scrlttr2}{Beispiele und ergänzende Hinweise sind + \autoref{sec:maincls.footnotes} ab + \autopageref{desc:maincls.cmd.footnote.example} zu entnehmen.}% +\EndIndex{Cmd}{footnote}% +\EndIndex{Cmd}{footnotemark}% +\EndIndex{Cmd}{footnotetext}% +\EndIndex{Cmd}{multiplefootnoteseparator}% +\EndIndex{Cmd}{multfootsep}% +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<10>> + +\ifIgnoreThis\else +\begin{Declaration} + \Macro{footref}\Parameter{Referenz} +\end{Declaration} +\BeginIndex{Cmd}{footref}% +Manchmal\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Class{scrlttr2}} hat man in einem Dokument eine +Fußnote, zu der es im Text mehrere Verweise geben soll. Die ungünstige Lösung +dafür wäre die Verwendung von \Macro{footnotemark} unter Angabe der +gewünschten Nummer. Ungünstig an dieser Lösung ist, dass man die Nummer kennen +muss und sich diese jederzeit ändern kann. \KOMAScript{} bietet deshalb die +Möglichkeit, den \Macro{label}-Mechanismus auch für Verweise auf Fußnoten zu +verwenden. Man setzt dabei in der entsprechenden Fußnote eine +\Macro{label}-Anweisung und kann dann mit \Macro{footref} alle weiteren +Fußnotenmarken für diese Fußnote im Text setzen. +\begin{Example} + Sie schreiben einen Text, in dem sie bei jedem Auf"|treten eines Markennamens + eine Fußnote setzen müssen, die darauf hinweist, dass es sich um einen + geschützten Markennamen handelt. Sie schreiben beispielsweise: +\ifCommonmaincls + \begin{lstcode} + Die Firma SplischSplasch\footnote{Bei diesem Namen + handelt es sich um eine registrierte Marke. Alle + Rechte daran sind dem Markeninhaber + vorbehalten.\label{refnote}} stellt neben + SplischPlumps\footref{refnote} auch noch die + verbesserte Version SplischPlatsch\footref{refnote} + her. + \end{lstcode} + Es wird dann dreimal eine Marke auf dieselbe Fußnote gesetzt, einmal mit + \Macro{footnote} direkt und zweimal mit \Macro{footref}. +\else + \begin{lstcode} + Die Firma SplischSplasch\footnote{Bei diesem Namen + handelt es sich um eine registrierte Marke. Alle + Rechte daran sind dem Markeninhaber, der Firma + SplischSplasch, vorbehalten.\label{refnote}} + stellt neben SplischPlumps\footref{refnote} auch noch + die verbesserte Version SplischPlatsch\footref{refnote} + und das sehr beliebte + SplischSplaschPlumps\footref{refnote} her. + \end{lstcode} + Es wird dann vier Mal eine Marke auf dieselbe Fußnote gesetzt, einmal mit + \Macro{footnote} direkt und drei Mal mit \Macro{footref}. +\fi +\end{Example} +Da die Fußnotenmarken mit Hilfe des \Macro{label}-Mechanismus gesetzt werden, +werden nach Änderungen, die sich auf die Fußnotennummerierung auswirken, +gegebenenfalls zwei \LaTeX-Durchläufe benötigt, bis die mit \Macro{footref} +gesetzten Marken korrekt sind.% +% +\EndIndex{Cmd}{footref}% +\IfCommon{scrlttr2}{\EndIndex{}{Fussnoten=Fußnoten}} +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<11>> + +\ifIgnoreThis\else +\begin{Declaration} + \Macro{deffootnote}\OParameter{Markenbreite}\Parameter{Einzug}% + \Parameter{Absatzeinzug}\Parameter{Markendefinition}\\ + \Macro{deffootnotemark}\Parameter{Markendefinition}\\ + \Macro{thefootnotemark} +\end{Declaration}% +\BeginIndex{Cmd}{deffootnote}% +\BeginIndex{Cmd}{deffootnotemark}% +\BeginIndex{Cmd}{thefootnotemark}% +Die \KOMAScript-Klassen setzen Fußnoten etwas anders als die Standardklassen. +Die Fußnotenmarkierung im Text, also die Referenzierung der Fußnote, erfolgt +wie bei den Standardklassen durch kleine hochgestellte Zahlen. Genauso werden +die Markierungen auch in der Fußnote selbst wiedergegeben. Sie werden dabei +rechtsbündig in einem Feld der Breite \PName{Markenbreite} gesetzt. Die erste +Zeile der Fußnote schließt direkt an das Feld der Markierung an. + +Alle weiteren Zeilen werden um den Betrag von \PName{Einzug} eingezogen +ausgegeben. Wird der optionale Parameter \PName{Markenbreite} nicht angegeben, +dann entspricht er dem Wert von \PName{Einzug}. Sollte die Fußnote aus +mehreren Absätzen bestehen, dann wird die erste Zeile eines Absatzes +zusätzlich mit dem Einzug der Größe \PName{Absatzeinzug} versehen. + +\IfCommon{maincls}{% +\begin{figure} + \centering\setlength{\unitlength}{1mm} + \begin{picture}(100,22) + \thinlines + % frame of following paragraph + \put(5,0){\line(1,0){90}} + \put(5,0){\line(0,1){5}} + \put(10,5){\line(0,1){5}}\put(5,5){\line(1,0){5}} + \put(95,0){\line(0,1){10}} + \put(10,10){\line(1,0){85}} + % frame of first paragraph + \put(5,11){\line(1,0){90}} + \put(5,11){\line(0,1){5}} + \put(15,16){\line(0,1){5}}\put(5,16){\line(1,0){10}} + \put(95,11){\line(0,1){10}} + \put(15,21){\line(1,0){80}} + % box of the footnote mark + \put(0,16.5){\framebox(14.5,4.5){\mbox{}}} + % description of paragraphs + \put(45,16){\makebox(0,0)[l]{\small\textsf{erster Absatz einer Fußnote}}} + \put(45,5){\makebox(0,0)[l]{\small\textsf{folgender Absatz einer Fußnote}}} + % help lines + \thicklines + \multiput(0,0)(0,3){7}{\line(0,1){2}} + \multiput(5,0)(0,3){3}{\line(0,1){2}} + % parameters + \put(2,7){\vector(1,0){3}} + \put(5,7){\line(1,0){5}} + \put(15,7){\vector(-1,0){5}} + \put(15,7){\makebox(0,0)[l]{\small\PName{Absatzeinzug}}} + % + \put(-3,13){\vector(1,0){3}} + \put(0,13){\line(1,0){5}} + \put(10,13){\vector(-1,0){5}} + \put(10,13){\makebox(0,0)[l]{\small\PName{Einzug}}} + % + \put(-3,19){\vector(1,0){3}} + \put(0,19){\line(1,0){14.5}} + \put(19.5,19){\vector(-1,0){5}} + \put(19.5,19){\makebox(0,0)[l]{\small\PName{Markenbreite}}} + \end{picture} + \caption{Parameter für die Darstellung der Fußnoten} + \label{fig:maincls.deffootnote} +\end{figure}} + +\autoref{fig:maincls.deffootnote} % +\IfCommon{scrlttr2}{auf \autopageref{fig:maincls.deffootnote} }% +veranschaulicht die verschiedenen Parameter% +\IfCommon{maincls}{nochmals}% +. Die Voreinstellung in den \KOMAScript-Klassen entspricht folgender +Definition: +% Umbruchkorrektur: listings korrigieren! +\begin{lstcode}[belowskip=\dp\strutbox] + \deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}} +\end{lstcode} +Dabei wird mit Hilfe von \Macro{textsuperscript} sowohl die Hochstellung als +auch die Wahl einer kleineren Schrift erreicht. \Macro{thefootnotemark} ist +die aktuelle Fußnotenmarke ohne jegliche Formatierung.% +\IfCommon{scrextend}{ Das Paket \Package{scrextend} überlässt hingegen in der + Voreinstellung das Setzen der Fußnoten der verwendeten Klasse. Das Laden des + Pakets allein sollte daher noch zu keinerlei Änderungen bei der Formatierung + der Fußnoten oder der Fußnotenmarken führen. Zur Übernahme der + Voreinstellungen der \KOMAScript-Klassen muss man vielmehr obige Einstellung + selbst vornehmen. Dazu kann obige Code-Zeile beispielsweise unmittelbar nach + dem Laden von \Package{scrextend} eingefügt werden.}% + +\BeginIndex{FontElement}{footnote}% +\BeginIndex{FontElement}{footnotelabel}% +Auf\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Class{scrlttr2}} die Fußnote einschließlich der +Markierung findet außerdem die für das Element \FontElement{footnote} +eingestellte Schriftart Anwendung. Die % Umbruchkorrekturvarianten +\IfCommon{maincls}{davon abweichende }% +Schriftart der Markierung kann % +\IfNotCommon{maincls}{jedoch }% +mit Hilfe der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:\csname label@base\endcsname.textmarkup}, +\autopageref{desc:\csname label@base\endcsname.cmd.setkomafont}) für das +Element \FontElement{footnotelabel} % +\IfCommon{scrlttr2}{davon abweichend }% +eingestellt werden. Siehe hierzu auch % +\IfNotCommon{scrextend}{\autoref{tab:\csname + label@base\endcsname.elementsWithoutText}, \autopageref{tab:\csname + label@base\endcsname.elementsWithoutText}}% +\IfCommon{scrextend}{\autoref{tab:maincls.elementsWithoutText}, + \autopageref{tab:maincls.elementsWithoutText}}% +. Voreingestellt ist jeweils keine Umschaltung der Schrift.% +\IfCommon{scrextend}{ Die Elemente finden bei scrextend jedoch nur dann + Anwendung, wenn die Fußnoten mit diesem Paket gesetzt werden, also + \Macro{deffootnote} verwendet wurde.}% +\EndIndex{FontElement}{footnotelabel}% +\EndIndex{FontElement}{footnote}% + +Die Fußnotenmarkierung im Text wird getrennt von der Markierung vor der +Fußnote definiert. Dies geschieht mit der Anweisung +\Macro{deffootnotemark}. Voreingestellt ist hier: +% Umbruchkorrektur: listings korrigieren! +\begin{lstcode}[belowskip=\dp\strutbox] + \deffootnotemark{\textsuperscript{\thefootnotemark}} +\end{lstcode} +Dabei findet\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} die Schriftart für das Element +\FontElement{footnotereference}\IndexFontElement{footnotereference} Anwendung +(siehe % +\IfNotCommon{scrextend}{\autoref{tab:\csname + label@base\endcsname.elementsWithoutText}, \autopageref{tab:\csname + label@base\endcsname.elementsWithoutText}}% +\IfCommon{scrextend}{\autoref{tab:maincls.elementsWithoutText}, + \autopageref{tab:maincls.elementsWithoutText}}% +). Die Markierungen im Text und in der Fußnote selbst sind also identisch. Die +Schriftart kann mit Hilfe der Anweisungen \Macro{setkomafont} und +\Macro{addtokomafont} (siehe \autoref{sec:\csname + label@base\endcsname.textmarkup}, \autopageref{desc:\csname + label@base\endcsname.cmd.setkomafont}) jedoch geändert werden% +\IfCommon{scrextend}{, sobald die Anweisung \Macro{deffootnotemark} verwendet + wird}% +. + +\ifCommonscrlttr\else +\begin{Example} + \phantomsection\label{desc:maincls.cmd.deffootnote.example}% + Relativ häufig wird gewünscht, dass die Markierung in der Fußnote selbst + weder hochgestellt noch kleiner gesetzt wird. Dabei soll sie aber nicht + direkt am Text kleben, sondern geringfügig davor stehen. Dies kann zum einen + wie folgt erreicht werden: + \begin{lstcode} + \deffootnote{1em}{1em}{\thefootnotemark\ } + \end{lstcode} + Die Fußnotenmarkierung einschließlich dem folgenden Leerzeichen wird also + rechtsbündig in eine Box der Breite 1\Unit{em} gesetzt. Die folgenden + Zeilen der Fußnote werden gegenüber dem linken Rand ebenfalls um 1\Unit{em} + eingezogen. + + Eine weitere, oft gefragte Formatierung sind linksbündige + Fußnotenmarkierungen in der Fußnote. Diese können mit folgender Definition + erhalten werden: + \begin{lstcode} + \deffootnote{1.5em}{1em}{% + \makebox[1.5em][l]{\thefootnotemark}} + \end{lstcode} + + Sollen jedoch die Fußnoten insgesamt lediglich in einer anderen Schriftart, + beispielsweise serifenlos gesetzt werden, so ist dies ganz einfach mit Hilfe + der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe + \autoref{sec:maincls.textmarkup}, + \autopageref{desc:maincls.cmd.setkomafont}) zu lösen: + \begin{lstcode} + \setkomafont{footnote}{\sffamily} + \end{lstcode} +\end{Example} +Wie die Beispiele zeigen, ermöglicht {\KOMAScript} mit dieser einfachen +Benutzerschnittstelle eine große Vielfalt unterschiedlicher +Fußnotenformatierungen.% +\fi% +\IfCommon{scrlttr2}{Beispiele finden Sie in \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.deffootnote}.}% +% +\EndIndex{Cmd}{deffootnote}% +\EndIndex{Cmd}{deffootnotemark}% +\EndIndex{Cmd}{thefootnotemark}% +\IfNotCommon{scrlttr2}{\EndIndex{}{Fussnoten=Fußnoten}} +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<12>> + +\section{Listen} +\label{sec:\csname label@base\endcsname.lists}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis +Es gilt sinngemäß, was in \autoref{sec:maincls.footnotes} geschrieben +wurde. \IfCommon{scrextend}{Allerdings werden vom Paket \Package{scrextend} + nur die Umgebungen \Environment{labeling}, \Environment{addmargin} und + \Environment{addmargin*} definiert. Alle anderen Listenumgebungen bleiben + der Verantwortung und Kontrolle der verwendeten Klasse überlassen.} +\else +\BeginIndex{}{Listen}% + +{\LaTeX} und die Standardklassen bieten verschiedene Umgebungen für +Listen. All diese Umgebungen bietet {\KOMAScript} selbstverständlich auch, +teilweise jedoch mit leichten Abwandlungen oder Erweiterungen. Grundsätzlich +gilt, dass Listen -- auch unterschiedlicher Art -- bis zu einer Tiefe von vier +Listen geschachtelt werden können. Eine tiefere Schachtelung wäre auch aus +typografischen Gründen kaum sinnvoll, da genau genommen schon mehr als drei +Ebenen nicht mehr überblickt werden können. Ich empfehle in solchen Fällen, +die eine große Liste in mehrere kleinere Listen aufzuteilen. + +\IfCommon{scrlttr2}{Da Listen zu den Standardelementen von \LaTeX{} gehören, + wurde in diesem Abschnitt auf Beispiele verzichtet. Sie finden solche in + \autoref{sec:maincls.lists} ab \autopageref{sec:maincls.lists} oder in jeder + \LaTeX-Einführung.} + +\ifCommonscrextend\else +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{itemize}}\\ + \quad\Macro{item}\\ + \quad\dots\\ + \XMacro{end}\PParameter{itemize}\\ + \Macro{labelitemi}\\ + \Macro{labelitemii}\\ + \Macro{labelitemiii}\\ + \Macro{labelitemiv} +\end{Declaration}% +\BeginIndex{Env}{itemize}% +\BeginIndex{Cmd}{item}% +\BeginIndex{Cmd}{labelitemi}% +\BeginIndex{Cmd}{labelitemii}% +\BeginIndex{Cmd}{labelitemiii}% +\BeginIndex{Cmd}{labelitemiv}% +Die einfachste Form einer Liste ist die Stichpunkt- oder +\Environment{itemize}-Liste. Die Benutzer einer unbeliebten Textverarbeitung +nennen diese Form der Liste auch gerne \emph{Bulletpoints}. Vermutlich können +sie sich nicht vorstellen, dass je nach Ebene auch ein anderes Zeichen als ein +fetter Punkt zur Einleitung eines Stichpunkts verwendet werden kann. Bei den +\KOMAScript-Klassen werden je nach Ebene folgende Zeichen verwendet: +»{\labelitemi}«, »{\labelitemii}«, »{\labelitemiii}« und »{\labelitemiv}«. Die +Definition der Zeichen für die einzelnen Ebenen sind in den Makros +\Macro{labelitemi}, \Macro{labelitemii}, \Macro{labelitemiii} und +\Macro{labelitemiv} abgelegt. Sie können mit \Macro{renewcommand} umdefiniert +werden. Die einzelnen Stichpunkte werden mit \Macro{item} eingeleitet.% +% +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.env.itemize.example}% + Sie haben eine einfache Aufzählung, die in mehreren Ebenen geschachtelt + ist. Sie schreiben beispielsweise: + \begin{lstcode} + \minisec{Die Fahrzeuge im Spiel} + \begin{itemize} + \item Flugzeuge + \begin{itemize} + \item Doppeldecker + \item Jets + \item Transportmaschinen + \begin{itemize} + \item einmotorig + \begin{itemize} + \item{düsengetrieben} + \item{propellergetrieben} + \end{itemize} + \item mehrmotorig + \end{itemize} + \item Drehflügler + \end{itemize} + \item Motorräder + \begin{itemize} + \item historisch korrekt + \item futurisch nicht real + \end{itemize} + \item Automobile + \end{itemize} + \end{lstcode} + Anschließend erhalten Sie: + \begin{ShowOutput}[\baselineskip] + \minisec{Die Fahrzeuge im Spiel} + \begin{itemize} + \item Flugzeuge + \begin{itemize} + \item Doppeldecker + \item Jets + \item Transportmaschinen + \begin{itemize} + \item einmotorig + \begin{itemize} + \item{düsengetrieben} + \item{propellergetrieben} + \end{itemize} + \item mehrmotorig + \end{itemize} + \item Drehflügler + \end{itemize} + \item Motorräder + \begin{itemize} + \item historisch korrekt + \item futurisch nicht real + \end{itemize} + \item Automobile +% \begin{itemize} +% \item Rennwagen +% \item Personenwagen +% \item Lastwagen +% \end{itemize} +% \item Fahrräder + \end{itemize} + \end{ShowOutput} +\end{Example}% +\fi +% +\EndIndex{Env}{itemize}% +\EndIndex{Cmd}{item}% +\EndIndex{Cmd}{labelitemi}% +\EndIndex{Cmd}{labelitemii}% +\EndIndex{Cmd}{labelitemiii}% +\EndIndex{Cmd}{labelitemiv}% + + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{enumerate}}\\ + \quad\XMacro{item}\\ + \quad\dots\\ + \XMacro{end}\PParameter{enumerate}\\ + \Macro{theenumi}\\ + \Macro{theenumii}\\ + \Macro{theenumiii}\\ + \Macro{theenumiv}\\ + \Macro{labelenumi}\\ + \Macro{labelenumii}\\ + \Macro{labelenumiii}\\ + \Macro{labelenumiv} +\end{Declaration}% +\BeginIndex{Env}{enumerate}% +\BeginIndex{Cmd}{item}% +\BeginIndex{Cmd}{theenumi}% +\BeginIndex{Cmd}{theenumii}% +\BeginIndex{Cmd}{theenumiii}% +\BeginIndex{Cmd}{theenumiv}% +\BeginIndex{Cmd}{labelenumi}% +\BeginIndex{Cmd}{labelenumii}% +\BeginIndex{Cmd}{labelenumiii}% +\BeginIndex{Cmd}{labelenumiv}% +Die nummerierte Liste ist ebenfalls sehr häufig zu finden und bereits vom +{\LaTeX}-Kern vorgesehen. Die Nummerierung\Index{Nummerierung} erfolgt je nach +Ebene in unterschiedlicher Art: mit arabischen Zahlen, mit Kleinbuchstaben, +mit kleinen römischen Zahlen und mit Großbuchstaben. Die Art der Nummerierung +wird dabei über die Makros \Macro{theenumi} bis \Macro{theenumiv} +festgelegt. Das Format der Ausgabe wird von den Makros \Macro{labelenumi} bis +\Macro{labelenumiv} bestimmt. Dabei folgt auf den Wert der zweiten Ebene, der +in Kleinbuchstaben ausgegeben wird, eine runde Klammer, während die Werte +aller anderen Ebenen von einem Punkt gefolgt werden. Die einzelnen +Stichpunkte werden wieder mit \Macro{item} eingeleitet.% +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.env.enumerate.example}% + Verkürzen wir das vorherige Beispiel und verwenden statt der + \Environment{itemize}- eine + \Environment{enumerate}-Umgebung: +% Übernehmen wir das Beispiel der \Environment{itemize}-Umgebung, +% wobei wir jede \Environment{itemize}-Umgebung durch eine +% \Environment{enumerate}-Umgebung ersetzen. Das Ergebnis wäre dann: + \begin{ShowOutput}[\baselineskip] + \minisec{Die Fahrzeuge im Spiel} + \begin{enumerate} + \item Flugzeuge + \begin{enumerate} + \item Doppeldecker +% \item Jets + \item Transportmaschinen + \begin{enumerate} + \item einmotorig + \begin{enumerate} + \item{düsengetrieben}\label{xmp:maincls.jets} + \item{propellergetrieben} + \end{enumerate} + \item mehrmotorig + \end{enumerate} +% \item Drehflügler + \end{enumerate} + \item Motorräder + \begin{enumerate} + \item historisch korrekt + \item futurisch nicht real + \end{enumerate} +% \item Automobile +% \begin{enumerate} +% \item Rennwagen +% \item Personenwagen +% \item Lastwagen +% \end{enumerate} +% \item Fahrräder + \end{enumerate} + \end{ShowOutput} + Innerhalb der Aufzählung können ganz normal mit \Macro{label} Marken + gesetzt werden, auf die dann mit \Macro{ref} zugegriffen werden + kann. So wurde oben hinter den düsengetriebenen, einmotorigen + Flugzeugen mit »\Macro{label}\PParameter{bsp:duesen}« ein Label + gesetzt. Der \Macro{ref}-Wert ist dann »\ref{xmp:maincls.jets}«. +\end{Example}% +\fi +% +\EndIndex{Env}{enumerate}% +\EndIndex{Cmd}{item}% +\EndIndex{Cmd}{theenumi}% +\EndIndex{Cmd}{theenumii}% +\EndIndex{Cmd}{theenumiii}% +\EndIndex{Cmd}{theenumiv}% +\EndIndex{Cmd}{labelenumi}% +\EndIndex{Cmd}{labelenumii}% +\EndIndex{Cmd}{labelenumiii}% +\EndIndex{Cmd}{labelenumiv}% + + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{description}}\\ + \quad\XMacro{item}\OParameter{Stichwort}\\ + \quad\dots\\ + \XMacro{end}\PParameter{description} +\end{Declaration}% +\BeginIndex{Env}{description}% +\BeginIndex{Cmd}{item}% +Eine weitere Listenform ist die Stichwortliste. Sie dient in erster Linie der +Beschreibung einzelner Begriffe. Diese werden als optionale Parameter bei +\Macro{item} angegeben. Die +Schriftart\Index{Schriftart}\ChangedAt{v2.8p}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}}, die für die Hervorhebung des +Stichworts verwendet wird, kann außerdem bei den \KOMAScript-Klassen mit Hilfe +der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:\csname label@base\endcsname.textmarkup}, +\autopageref{desc:\csname label@base\endcsname.cmd.setkomafont}) für das +Element \FontElement{descriptionlabel}\IndexFontElement{descriptionlabel} +(siehe \autoref{tab:\csname label@base\endcsname.elementsWithoutText}, +\autopageref{tab:\csname label@base\endcsname.elementsWithoutText}) geändert +werden. In der Voreinstellung wird \Macro{sffamily}""\Macro{bfseries} +verwendet.% +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.env.description.example}% + Sie wollen, dass die Stichworte statt serifenlos und fett lediglich + fett, aber in der Standardschriftart ausgegeben werden. Mit +\begin{lstcode} + \setkomafont{descriptionlabel}{\normalfont\bfseries} +\end{lstcode} + definieren Sie daher die Schrift entsprechend um. + + Ein Beispiel für die Ausgabe einer Stichwortliste ist eine Aufzählung der + Seitenstile. Der Quelltext dazu lautet beispielsweise: +\begin{lstcode} + \begin{description} + \item[empty] ist der Seitenstil, bei dem Kopf- und + Fußzeile vollständig leer bleiben. + \item[plain] ist der Seitenstil, bei dem keinerlei + Kolumnentitel verwendet wird. + \item[headings] ist der Seitenstil für + automatische Kolumnentitel. + \item[myheadings] ist der Seitenstil für manuelle + Kolumnentitel. + \end{description} +\end{lstcode} + Diese ergibt: + \begin{ShowOutput} + \begin{description} + \item[empty] ist der Seitenstil, bei dem Kopf- und + Fußzeile vollständig leer bleiben. + \item[plain] ist der Seitenstil, bei dem keinerlei + Kolumnentitel verwendet wird. + \item[headings] ist der Seitenstil für automatische + Kolumnentitel. + \item[myheadings] ist der Seitenstil für manuelle + Kolumnentitel. + \end{description} + \end{ShowOutput} +\end{Example}% +\fi +% +\EndIndex{Env}{description}% +\EndIndex{Cmd}{item}% +\fi % \ifCommonscrextend\else + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{labeling}}% + \OParameter{Trennzeichen}\Parameter{längstes + Muster}\\ + \quad\XMacro{item}\OParameter{Schlüsselwort}\\ + \quad\dots\\ + \XMacro{end}\PParameter{labeling} +\end{Declaration}% +\BeginIndex{Env}{labeling}% +\BeginIndex{Cmd}{item}% +Eine andere Form der % +\IfCommon{scrextend}{in vielen Klassen als \Environment{description}-Umgebung +vorhandenen }% +Stichwortliste ist nur bei den {\KOMAScript}-Klassen % +\IfCommon{scrextend}{und \Package{scrextend} }% +vorhanden: die \Environment{labeling}-Umgebung. Im Unterschied zur zuvor +vorgestellten Umgebung \Environment{description} kann bei +\Environment{labeling} ein Muster angegeben werden, dessen Länge die +Einrücktiefe bei allen Stichpunkten ergibt. Darüber hinaus kann zwischen +Stichpunkt und Beschreibungstext ein optionales \PName{Trennzeichen} +festgelegt werden.% +\ifCommonscrlttr\else +\begin{Example} + \phantomsection\label{desc:\csname + label@base\endcsname.env.labeling.example}% + \IfCommon{maincls}{Wir schreiben das Beispiel der + \Environment{description}-Umgebung etwas um:}% + \IfCommon{scrextend}{Eine einfache Liste könnte beispielsweise wie folgt + definiert werden:}% + \begin{lstcode} + \begin{labeling}[~--]{% + \usekomafont{descriptionlabel}myheadings} + \item[\usekomafont{descriptionlabel}empty] + Seitenstil für leere Seiten ohne Kopf und Fuß + \item[\usekomafont{descriptionlabel}plain] + Seitenstil für Kapitelanfänge ganz ohne + Kolumnentitel + \item[\usekomafont{descriptionlabel}headings] + Seitenstil für automatische Kolumnentitel + \item[\usekomafont{descriptionlabel}myheadings] + Seitenstil für manuelle Kolumnentitel + \end{labeling} + \end{lstcode} + Als Ergebnis erhalten wir dann: + \begin{ShowOutput} + \begin{labeling}[~--]{\usekomafont{descriptionlabel}myheadings} + \item[\usekomafont{descriptionlabel}empty] Seitenstil für leere + Seiten ohne Kopf und Fuß + \item[\usekomafont{descriptionlabel}plain] Seitenstil für + Kapitelanfänge ganz ohne Kolumnentitel + \item[\usekomafont{descriptionlabel}headings] Seitenstil für + automatische Kolumnentitel + \item[\usekomafont{descriptionlabel}myheadings] Seitenstil für + manuelle Kolumnentitel + \end{labeling} + \end{ShowOutput} + Wie in diesem Beispiel zu sehen ist, muss eine eventuell geforderte + Schriftumschaltung bei dieser Umgebung sowohl im Muster als auch im + optionalen Parameter jeder \Macro{item}-Anweisung wiederholt werden. +\end{Example} +Gedacht war die Umgebung ursprünglich für Strukturen wie »Voraussetzung, +Aussage, Beweis« oder »Gegeben, Gesucht, Lösung«, wie man sie in +Vorlesungsskripten häufiger findet. Inzwischen findet die Umgebung aber ganz +unterschiedliche Anwendungen. So wurde die Umgebung für Beispiele in dieser +Anleitung mit Hilfe der \Environment{labeling}-Umgebung definiert.% +\fi +% +\EndIndex{Env}{labeling}% +\EndIndex{Cmd}{item}% + + +\ifCommonscrextend\else +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{verse}}\\ + \quad\dots\\ + \XMacro{end}\PParameter{verse} +\end{Declaration}% +\BeginIndex{Env}{verse}% +Die \Environment{verse}-Umgebung wird normalerweise nicht als Listenumgebung +wahrgenommen, da hier nicht mit \Macro{item} gearbeitet wird. Stattdessen wird +wie innerhalb der \Environment{flushleft}-Umgebung mit festen Zeilenumbrüchen +gearbeitet. Intern handelt es sich jedoch sowohl bei den Standardklassen als +auch bei {\KOMAScript} durchaus um eine Listenumgebung. + +Die \Environment{verse}-Umgebung findet hauptsächlich für +Gedichte\Index{Gedichte} Anwendung. Dabei werden die Zeilen links und rechts +eingezogen. Einzelne Verse werden mit einem festen Zeilenumbruch, also mit +\verb|\\| beendet. Strophen werden ganz normal als Absatz gesetzt, also durch +eine Leerzeile getrennt. Häufig findet stattdessen auch +\Macro{medskip}\IndexCmd{medskip} oder \Macro{bigskip}\IndexCmd{bigskip} +Verwendung. Will man verhindern, dass am Ende eines Verses ein Seitenumbruch +erfolgt, so verwendet man ganz normal \verb|\\*| an Stelle von \verb|\\|.% +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.env.verse.example}% + Als Beispiel ein kurzes Gedicht von Wilhelm Busch: + \begin{lstcode} + \begin{verse} + Wenn einer, der mit Mühe kaum\\* + Gekrochen ist auf einen Baum,\\* + Schon meint, dass er ein Vogel wär,\\* + So irrt sich der. + \end{verse} + \end{lstcode} + Mit dem Resultat: + \begin{ShowOutput} + \vskip-.8\baselineskip% Umbruchkorrektur + \begin{verse} + Wenn einer, der mit Mühe kaum\\* + Gekrochen ist auf einen Baum,\\* + Schon meint, dass er ein Vogel wär,\\* + So irrt sich der. + \end{verse} + \end{ShowOutput} + Bei einem sehr langen Vers wie: + \begin{lstcode} + \begin{verse} + Der Philosoph wie der Hausbesitzer hat + immer Reparaturen.\\* + \bigskip + Wer dir sagt, er hätte noch nie gelogen, + dem traue nicht, mein Sohn. + \end{verse} + \end{lstcode} + bei dem ein Zeilenumbruch innerhalb des Verses erfolgt: + \begin{ShowOutput} + \vskip-.8\baselineskip% Umbruchkorrektur + \begin{verse} + Der Philosoph wie der Hausbesitzer hat immer Reparaturen.\\ + \bigskip + Wer dir sagt, er hätte noch nie gelogen, dem traue nicht, mein + Sohn. + \end{verse} + \end{ShowOutput} + kann mit \verb|\\*| allerdings nicht verhindert werden, dass am + Zeilenumbruch auch ein Seitenumbruch erfolgt. Um dies zu erreichen, müsste + innerhalb der ersten Zeile zusätzlich ein + \Macro{nopagebreak}\IndexCmd{nopagebreak} eingefügt werden: + \begin{lstcode} + \begin{verse} + Der Philosoph wie der Hausbesitzer\nopagebreak + hat immer Reparaturen.\\ + \bigskip + Wer dir sagt, er hätte noch nie\nopagebreak + gelogen, dem traue nicht, mein Sohn. + \end{verse} + \end{lstcode} +\iftrue% Umbruchkorrekturtext + Hier noch zwei Sprüche, die man immer bedenken sollte, wenn man mit + scheinbar seltsamen Fragen zu {\LaTeX} oder den dazugehörigen Antworten + konfrontiert ist: + \begin{ShowOutput} + \vskip-.8\baselineskip% Umbruchkorrektur + \begin{verse} + Wir mögen's keinem gerne gönnen,\\* + Dass er was kann, was wir nicht können.\\ + \bigskip + Wie klein ist das, was einer ist,\\* + Wenn man's mit seinem Dünkel misst. + \end{verse} + \end{ShowOutput} +\fi + In diesen Beispielen wurde übrigens jeweils \Macro{bigskip} verwendet, um + zwei Sprüche voneinander zu trennen. +\end{Example}% +\fi +% +\EndIndex{Env}{verse}% + + +\iffalse% Umbruchkorrekturvarianten +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{quote}}\\ + \quad\dots\\ + \XMacro{end}\PParameter{quote} +\end{Declaration}% +\BeginIndex{Env}{quote}% +Dies ist intern ebenfalls eine Listenumgebung und sowohl bei den +Standardklassen als auch bei {\KOMAScript} zu finden. Der Inhalt der Umgebung +wird im Blocksatz mit beidseitigem Einzug gesetzt. Die Umgebung wird häufig +verwendet, um längere Zitate\Index{Zitat} abzusetzen. Dabei werden Absätze +innerhalb der Umgebung durch einen vertikalen Abstand gekennzeichnet.% +\EndIndex{Env}{quote}% + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{quotation}}\\ + \quad\dots\\ + \XMacro{end}\PParameter{quotation} +\end{Declaration}% +\BeginIndex{Env}{quotation}% +Diese Umgebung ist mit \Environment{quote} vergleichbar. Während bei +\Environment{quote} Absätze durch vertikalen Abstand gekennzeichnet werden, +wird bei \Environment{quotation} mit horizontalem Einzug der ersten Zeile +eines Absatzes gearbeitet. Dies gilt auch für den ersten Absatz einer +\Environment{quotation}-Umgebung. Wollen Sie dort den Einzug verhindern, +müssen Sie die \Macro{noindent}-Anweisung\IndexCmd{noindent} voranstellen.% +\EndIndex{Env}{quotation}% + +\else + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{quote}}\\ + \quad\dots\\ + \XMacro{end}\PParameter{quote}\\ + \XMacro{begin}\PParameter{\Environment{quotation}}\\ + \quad\dots\\ + \XMacro{end}\PParameter{quotation} +\end{Declaration}% +\BeginIndex{Env}{quote}% +\BeginIndex{Env}{quotation}% +Diese beiden Umgebungen sind intern ebenfalls Listenumgebungen und sowohl bei +den Standardklassen als auch bei {\KOMAScript} zu finden. Beide Umgebungen +setzen Blocksatz, der rechts und links eingezogen ist. Verwendet werden die +Umgebungen häufig, um längere Zitate\Index{Zitat} abzusetzen. Der Unterschied +zwischen beiden liegt in der Art und Weise, wie Absätze abgesetzt +werden. Während bei \Environment{quote} Absätze durch vertikalen Abstand +gekennzeichnet werden, wird bei \Environment{quotation} mit horizontalem +Einzug der ersten Zeile eines Absatzes gearbeitet. Dies gilt auch für den +ersten Absatz einer \Environment{quotation}-Umgebung% Umbruchkorrektur +\IfCommon{maincls}{, außer es wird \Macro{noindent}\IndexCmd{noindent} + vorangestellt.}% +\IfCommon{scrlttr2}{. Wollen Sie dort den Einzug verhindern, müssen Sie die + \Macro{noindent}-Anweisung\IndexCmd{noindent} voranstellen.}% +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.env.quote.example}% + Sie wollen eine kleine Anekdote hervorheben. Also schreiben Sie + folgende \Environment{quotation}-Umgebung: + % +\begin{lstcode} + \begin{quotation} + Es klingelt an der Tür eines Pfarrhauses in Stuttgart. + Als die Haushälterin öffnet, steht ein unrasierter + Mann in einem reichlich schäbigen Mantel vor der Tür + und hält seine Strickmütze in der Hand. + + "`Gute Frau,"' verkündet der Mann in gequältem Ton, + doch bestem Hochdeutsch, während er verlegen von einem + Bein auf das andere wechselt, "`ich habe seit drei + Tagen nichts mehr gegessen."' + + Die Frau schüttelt mitleidig den Kopf und + entgegnet im Brustton vollster Überzeugung: + + "`Guda Moh, Sie missat sich halt zwinga!"' + \end{quotation} +\end{lstcode} + Das Ergebnis ist dann: + \begin{ShowOutput} +\iffalse% Umbruchkorrekturtext + Ein kleines Beispiel für eine Anekdote, die sich einst + in Schwaben zugetragen haben soll: +\fi + \begin{quotation} + Es klingelt an der Tür eines Pfarrhauses in + Stuttgart. Als die Haushälterin öffnet, steht ein + unrasierter Mann in einem reichlich schäbigen + Mantel vor der Tür und hält seine Strickmütze in + der Hand. + + "`Gute Frau,"' verkündet der Mann in gequältem Ton, + doch bestem Hochdeutsch, +\iftrue% Umbruchkorrekturtext + während er verlegen von einem Bein auf das andere wechselt, +\fi + "`ich habe + seit drei Tagen nichts mehr gegessen."' + + Die Frau schüttelt mitleidig den Kopf und entgegnet + im Brustton vollster Überzeugung: + + "`Guda Moh, Sie missat sich halt zwinga!"' + \end{quotation} + \end{ShowOutput} + % + Wenn Sie stattdessen eine \Environment{quote}-Umgebung + verwenden, sieht das Ganze so aus: + % + \begin{ShowOutput} +\iffalse% Umbruchkorrekturtext + Ein kleines Beispiel für eine Anekdote, die sich einst + in Schwaben zugetragen haben soll: +\fi + \begin{quote}\setlength{\parskip}{4pt plus 2pt minus 2pt} + Es klingelt an der Tür eines Pfarrhauses in Stuttgart. Als die + Haushälterin öffnet, steht ein unrasierter Mann in einem reichlich + schäbigen Mantel vor der Tür und hält seine Strickmütze in der Hand. + + "`Gute Frau,"' verkündet der Mann in gequältem Ton, doch bestem + Hochdeutsch, +\iftrue% Umbruchkorrekturtext + während er verlegen von einem Bein auf das andere wechselt, +\fi + "`ich habe seit drei Tagen nichts mehr gegessen."' + + Die Frau schüttelt mitleidig den Kopf und entgegnet im Brustton vollster + Überzeugung: + + "`Guda Moh, Sie missat sich halt zwinga!"' + \end{quote} + \end{ShowOutput} + % +\end{Example}% +\fi +% +\EndIndex{Env}{quote}% +\EndIndex{Env}{quotation}% +\fi % Umbruchkorrekturvarianten +\fi % \ifCommonscrextend\else + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{addmargin}}% + \OParameter{linker Einzug}\Parameter{Einzug}\\ + \quad\dots\\ + \XMacro{end}\PParameter{addmargin}\\ + \XMacro{begin}\PParameter{\Environment{addmargin*}}% + \OParameter{innerer Einzug}\Parameter{Einzug}\\ + \quad\dots\\ + \XMacro{end}\PParameter{addmargin*} +\end{Declaration} +\BeginIndex{Env}{addmargin}% +\BeginIndex{Env}{addmargin*}% +Wie bei % +\IfCommon{scrextend}{den in den Standardklassen und den \KOMAScript-Klassen + vorhandenen Umgebungen }% +\Environment{quote} und \Environment{quotation} handelt es sich bei +\Environment{addmargin} um eine Umgebung, die den Rand\Index{Rand} +verändert. Im Unterschied zu den beiden erstgenannten Umgebungen kann der +Anwender jedoch bei \Environment{addmargin} wählen, um welchen Wert der Rand +verändert werden kann. Des Weiteren verändert die Umgebung den Absatzeinzug +und den Absatzabstand nicht. Es wird auch kein zusätzlicher vertikaler Abstand +vor und nach der Umgebung eingefügt. + +Ist nur das obligatorische Argument \PName{Einzug} angegeben, so wird der +Inhalt der Umgebung rechts und links um diesen Wert eingezogen. Ist das +optionale Argument \PName{linker Einzug} hingegen angegeben, so wird links +abweichend von \PName{Einzug} der Wert \PName{linker Einzug} zum Rand addiert. + +Die Sternvariante \Environment{addmargin*} unterscheidet sich nur im +doppelseitigen Satz von der Variante ohne Stern, wobei der Unterschied auch +nur dann auf"|tritt, wenn das optionale Argument \PName{innerer Einzug} +verwendet wird. Dabei wird dann der Wert von \PName{innerer Einzug} zum +inneren Randanteil der Seite addiert. Dies ist bei rechten Seiten der linke +Rand der Seite, bei linken Seiten jedoch der rechte Rand der +Seite. \PName{Einzug} gilt dann für den jeweils anderen Rand. + +Bei beiden Varianten der Umgebung sind für alle Parameter auch negative Werte +erlaubt. % Umbruchkorrektur +\IfNotCommon{scrextend}{Damit kann man erreichen, dass die Umgebung in den + Rand hineinragt.}% +\IfCommon{scrextend}{Die Umgebung ragt dann entsprechend in den Rand hinein.}% +\ifCommonscrlttr\else +\begin{Example} + \phantomsection\label{desc:maincls.env.addmargin.example}% + Angenommen, Sie schreiben eine Anleitung mit kurzen + Quellcode-Beispielen. Um diese sehr stark hervorzuheben, sollen sie mit + horizontalen Linien vom Text abgesetzt und leicht in den äußeren Rand + verschoben werden. Sie definieren sich dafür zunächst eine Umgebung: + \begin{lstcode} + \newenvironment{QuellcodeRahmen}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% + }{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% + } + \end{lstcode} + \begin{ShowOutput} + \newenvironment{QuellcodeRahmen}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% + }{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% + } + Die Umgebung in sich selbst gesetzt ergibt: + \begin{QuellcodeRahmen} +\begin{lstcode} +\newenvironment{\QuellcodeRahmen}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% +}{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% +} +\end{lstcode} + \end{QuellcodeRahmen} + Das mag praktisch sein oder unpraktisch, zumindest jedoch zeigt es, + wie die Umgebung verwendet werden kann. + \end{ShowOutput} + Das optionale Argument der \Environment{addmargin*}-Umgebung sorgt + dafür, dass der innere Rand um den Wert + 1\Unit{em} vergrößert wird. Dafür wird der äußere + Rand um den negativen Wert vergrößert, also in Wirklichkeit um + 1\Unit{em} verkleinert. Dies resultiert in einer + Verschiebung um 1\Unit{em} nach außen. Selbstverständlich kann statt + \PValue{1em} auch eine Länge, beispielsweise + \PValue{2\Macro{parindent}}, verwendet werden. +\end{Example} + +Ob eine Seite eine linke oder eine rechte Seite ist, kann übrigens beim ersten +\LaTeX-Durchlauf nicht zuverlässig festgestellt werden. Siehe dazu die +Erklärungen zu den Anweisungen \Macro{ifthispageodd} (\autoref{sec:\csname + label@base\endcsname.oddOrEven}, \autopageref{desc:\csname + label@base\endcsname.cmd.ifthispageodd}) und \Macro{ifthispagewasodd} +(\autoref{sec:maincls-experts.addInfos}, +\autopageref{desc:maincls-experts.cmd.ifthispageodd}). + +\begin{Explain} + Im Zusammenspiel von Umgebungen wie Listen mit Absätzen ergeben sich für + Laien häufiger Fragen. Daher widmet sich die weiterführende Erklärung zu + Option \Option{parskip} in \autoref{sec:maincls-experts.addInfos}, + \autopageref{desc:maincls-experts.option.parskip} auch diesem + Thema. Ebenfalls im Expertenteil in \autoref{sec:maincls-experts.addInfos}, + \autopageref{desc:maincls-experts.env.addmargin*} wird die + Problematik von mehrseitigen \Environment{addmargin*}-Umgebungen behandelt. +\end{Explain}% +\fi% \ifCommonmaincls +% +\EndIndex{Env}{addmargin}% +\EndIndex{Env}{addmargin*}% +% +\EndIndex{}{Listen} +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<13>> + +\section{Randnotizen} +\label{sec:\csname label@base\endcsname.marginNotes}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis +Es gilt sinngemäß, was in \autoref{sec:maincls.marginNotes} geschrieben +wurde. +\else +\BeginIndex{}{Randnotizen}% + +Außer dem eigentlichen Textbereich, der normalerweise den Satzspiegel +ausfüllt, existiert in Dokumenten noch die so genannte Marginalienspalte. In +dieser können Randnotizen gesetzt werden. % Umbruchkorrekturtext +\IfNotCommon{scrlttr2}{In diesem \iffree{Dokument}{Buch} wird davon ebenfalls + Gebrauch gemacht.}% +\fi +\IfCommon{scrlttr2}{Bei Briefen sind Randnotizen allerdings eher unüblich und + sollten äußerst sparsam eingesetzt werden.}% +\ifIgnoreThis\else + + +\begin{Declaration} + \Macro{marginpar}\OParameter{Randnotiz links}\Parameter{Randnotiz}\\ + \Macro{marginline}\Parameter{Randnotiz} +\end{Declaration}% +\BeginIndex{Cmd}{marginpar}% +\BeginIndex{Cmd}{marginline}% +Für Randnotizen\Index[indexmain]{Randnotizen} ist bei {\LaTeX} normalerweise die +Anweisung \Macro{marginpar} vorgesehen. Die Randnotizen werden dabei im +äußeren Rand gesetzt. Bei einseitigen Dokumenten wird der rechte Rand +verwendet. Zwar kann bei \Macro{marginpar} optional eine abweichende Randnotiz +angegeben werden, falls die Randnotiz im linken Rand landet, jedoch werden +Randnotizen immer im Blocksatz ausgegeben. Die Erfahrung zeigt, dass bei +Randnotizen statt des Blocksatzes oft je nach Rand linksbündiger oder +rechtsbündiger Flattersatz zu bevorzugen ist. {\KOMAScript} bietet hierfür +die Anweisung \Macro{marginline}. + +\ifCommonscrlttr\else +\begin{Example} + \phantomsection\label{desc:\csname + label@base\endcsname.cmd.marginline.example}% + In diesem Kapitel ist an einigen Stellen die % + \IfCommon{maincls}{Klassenangabe \Class{scrartcl} }% + \IfCommon{scrextend}{Paketangabe \Package{scrextend} }% + im Rand zu finden. Diese kann mit: +\ifCommonmaincls + \begin{lstcode} + \marginline{\texttt{scrartcl}} + \end{lstcode} +\else + \begin{lstcode} + \marginline{\texttt{scrextend}} + \end{lstcode} +\fi + erreicht werden.% +\iftrue % Umbruchkorrekturtext + \footnote{Tatsächlich wurde nicht \Macro{texttt}, + sondern eine semantische Auszeichnung verwendet. Um nicht unnötig + zu verwirren, wurde diese im Beispiel ersetzt.}% +\fi + + Statt \Macro{marginline} wäre auch die Verwendung von \Macro{marginpar} + möglich gewesen. Tatsächlich wird bei obiger Anweisung intern nichts anders + gemacht als: +\ifCommonmaincls + \begin{lstcode} + \marginpar[\raggedleft\texttt{scrartcl}] + {\raggedright\texttt{scrartcl}} + \end{lstcode} +\else + \begin{lstcode} + \marginpar[\raggedleft\texttt{scrextend}] + {\raggedright\texttt{scrextend}} + \end{lstcode} +\fi + Letztlich ist \Macro{marginline} also nur eine abkürzende Schreibweise. +\end{Example} + +Für Experten sind in \autoref{sec:maincls-experts.addInfos}, +\autopageref{desc:maincls-experts.cmd.marginpar} Probleme bei der Verwendung +von \Macro{marginpar} dokumentiert. Diese gelten ebenso für +\Macro{marginline}.% +\fi% +\IfCommon{scrlttr2}{Ein ausführliches Beispiel hierzu finden Sie in + \autoref{sec:maincls.marginNotes}, + \autopageref{desc:maincls.cmd.marginline.example}.}% +% +\EndIndex{Cmd}{marginpar}% +\EndIndex{Cmd}{marginline}% +% +\EndIndex{}{Randnotizen}% +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<14>> + +\section{Dokumenttitel} +\label{sec:\csname label@base\endcsname.titlepage}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis +Es gilt sinngemäß, was in \autoref{sec:maincls.titlepage} geschrieben +wurde. \IfCommon{scrextend}{Es gibt jedoch einen Unterschied:} +\else +\BeginIndex{}{Titel}% + +Bei Dokumenten wird zwischen zwei verschiedenen Arten von Titeln für das +gesamte Dokument unterschieden. Zum einen gibt es die Titelseiten. Hierbei +steht der Dokumenttitel zusammen mit einigen zusätzlichen Informationen wie +dem Autor auf einer eigenen Seite. Neben der Haupttitelseite kann es dabei +weitere Titelseiten, etwa Schmutztitel, Verlagsinformationen, Widmung oder +ähnliche, geben. Zum anderen gibt es den Titelkopf. Dabei erscheint der Titel +lediglich am Anfang einer neuen -- in der Regel der ersten -- Seite. Unterhalb +dieser Titelzeilen\Index{Titel>-Zeilen} wird das Dokument beispielsweise mit +der Zusammenfassung, einem Vorwort oder dem Inhaltsverzeichnis fortgesetzt. +\fi + +\IfCommon{scrextend}{% + Die Möglichkeiten von \Package{scrextend} zum Dokumenttitel gehören zu den + optionalen, erweiterten Möglichkeiten und stehen daher nur zur Verfügung, + wenn zuvor beim Laden des Pakets \OptionValue{extendedfeature}{title} + gewählt wurde (siehe \autoref{sec:scrextend.optionalFeatures}, + \autopageref{desc:scrextend.option.extendedfeature}). Dies gilt auch für die + Paketoptionen aus diesem Abschnitt.} +\ifIgnoreThis +Darüber hinaus kann \Package{scrextend} nicht mit einer \KOMAScript-Klasse +zusammen verwendet werden. In allen Beispielen aus +\autoref{sec:maincls.titlepage} muss daher bei Verwendung von +\Package{scrextend} + \begin{lstcode} + \documentclass{scrbook} + \end{lstcode} +durch + \begin{lstcode} + \documentclass{book} + \usepackage[extendedfeature=title]{scrextend} + \end{lstcode} +ersetzt werden. +\else + +\begin{Declaration} + \KOption{titlepage}\PName{Ein-Aus-Wert} +\end{Declaration}% +\BeginIndex{Option}{titlepage~=\PName{Ein-Aus-Wert}}% +Mit dieser Option\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} wird ausgewählt, ob für die gesamte mit \Macro{maketitle} +(siehe \autopageref{desc:\csname label@base\endcsname.cmd.maketitle}) gesetzte +Titelei eigene Seiten\Index{Titel>-Seite} verwendet werden, oder stattdessen +die Titelei von \Macro{maketitle} als Titelkopf\Index{Titel>-Kopf} gesetzt +wird. Als \PName{Ein-Aus-Wert} kann einer der Standardwerte für einfache +Schalter aus \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} +verwendet werden. + +Mit \OptionValue{titlepage}{true} oder \Option{titlepage} wird die Titelei in +Form von Titelseiten ausgewählt. Die Anweisung \Macro{maketitle} verwendet +\Environment{titlepage}-Umgebungen zum Setzen dieser Seiten, die somit +normalerweise weder Seitenkopf noch Seitenfuß erhalten. Bei {\KOMAScript} +wurde die Titelei gegenüber den Standardklassen stark erweitert. + +Demgegenüber wird mit \OptionValue{titlepage}{false} erreicht, dass ein +Titelkopf (engl.: \emph{in-page title}) gesetzt wird. Das heißt, die Titelei +wird lediglich speziell hervorgehoben, auf der Seite mit dem Titel kann aber +nachfolgend weiteres Material, beispielsweise eine Zusammenfassung oder ein +Abschnitt gesetzt werden. + +\IfCommon{maincls}{Bei den Klassen \Class{scrbook} und \Class{scrreprt} sind + Titelseiten voreingestellt. Demgegenüber verwendet \Class{scrartcl} in der + Voreinstellung einen Titelkopf.}% +\IfCommon{scrextend}{Die Voreinstellung ist von der verwendeten Klasse + abhängig und wird von \Package{scrextend} kompatibel zu den Standardklassen + erkannt. Setzt eine Klasse keine entsprechende Voreinstellung, so ist der + Titelkopf voreingestellt.}% +% +\EndIndex{Option}{titlepage~=\PName{Ein-Aus-Wert}} + + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{titlepage}}\\ + \quad\dots\\ + \XMacro{end}\PParameter{titlepage} +\end{Declaration}% +\BeginIndex{Env}{titlepage}% +Grundsätzlich werden bei den Standardklassen und bei {\KOMAScript} alle +Titelseiten in einer speziellen Umgebung, der +\Environment{titlepage}-Umgebung, gesetzt. Diese Umgebung startet immer mit +einer neuen Seite -- im zweiseitigen Layout sogar mit einer neuen rechten +Seite -- im einspaltigen Modus. Für eine Seite wird der Seitenstil mit +\Macro{thispagestyle}\PParameter{empty} geändert, so dass weder Seitenzahl +noch Kolumnentitel ausgegeben werden. Am Ende der Umgebung wird die Seite +automatisch beendet. Sollten Sie nicht das automatische Layout der Titelei, +wie es das nachfolgend beschriebene \Macro{maketitle} bietet, verwenden +können, ist zu empfehlen, eine eigene Titelei mit Hilfe dieser Umgebung zu +entwerfen. + +\begin{Example} + Angenommen, Sie wollen eine Titelseite, auf der lediglich oben links + möglichst groß und fett das Wort »Me« steht -- kein Autor, kein Datum, + nichts weiter. Folgendes Dokument ermöglicht das: +\ifCommonmaincls +\begin{lstcode} + \documentclass{scrbook} + \begin{document} + \begin{titlepage} + \textbf{\Huge Me} + \end{titlepage} + \end{document} +\end{lstcode} +\else +\begin{lstcode} + \documentclass{book} + \usepackage[extendedfeature=title]{scrextend} + \begin{document} + \begin{titlepage} + \textbf{\Huge Me} + \end{titlepage} + \end{document} +\end{lstcode} +\fi + Einfach? Stimmt. +\end{Example} +% +\EndIndex{Env}{titlepage} + + +\begin{Declaration} + \Macro{maketitle}\OParameter{Seitenzahl} +\end{Declaration}% +\BeginIndex{Cmd}{maketitle}% +Während bei den Standardklassen nur maximal eine Titelseite mit den drei +Angaben Titel, Autor und Datum existiert, können bei {\KOMAScript} mit +\Macro{maketitle} bis zu sechs Titelseiten gesetzt werden. Im Gegensatz zu +den Standardklassen kennt \Macro{maketitle} bei {\KOMAScript} außerdem noch +ein optionales nummerisches Argument. Findet es Verwendung, so wird die +Nummer als Seitenzahl der ersten Titelseite benutzt. Diese Seitenzahl wird +jedoch nicht ausgegeben, sondern beeinflusst lediglich die Zählung. Sie +sollten hier unbedingt eine ungerade Zahl wählen, da sonst die gesamte Zählung +durcheinander gerät. Meiner Auf"|fassung nach gibt es nur zwei sinnvolle +Anwendungen für das optionale Argument. Zum einen könnte man dem +Schmutztitel\Index[indexmain]{Schmutztitel} die logische Seitenzahl \(-\)1 +geben, um so die Seitenzählung erst ab der Haupttitelseite mit 1 zu +beginnen. Zum anderen könnte man mit einer höheren Seitenzahl beginnen, +beispielsweise 3, 5 oder 7, um so weitere Titelseiten zu berücksichtigen, die +erst vom Verlag hinzugefügt werden. Wird ein Titelkopf verwendet, wird das +optionale Argument ignoriert. Dafür kann der Seitenstil einer solchen Titelei +durch Umdefinierung des Makros \Macro{titlepagestyle} (siehe +\autoref{sec:maincls.pagestyle}, +\autopageref{desc:maincls.cmd.titlepagestyle}) verändert werden. + +Die folgenden Anweisungen führen nicht unmittelbar zum Setzen der Titelei. Das +Setzen der Titelei erfolgt immer mit \Macro{maketitle}. Es sei an dieser +Stelle auch darauf hingewiesen, dass \Macro{maketitle} nicht innerhalb einer +\Environment{titlepage}-Umgebung zu verwenden ist. Wie in den Beispielen +angegeben, sollte man nur entweder \Macro{maketitle} oder +\Environment{titlepage} verwenden. + +Mit den nachfolgend erklärten Anweisungen werden lediglich die Inhalte der +Titelei festgelegt. Sie müssen daher auch unbedingt vor \Macro{maketitle} +verwendet werden. Es ist jedoch nicht notwendig und bei Verwendung des +\Package{babel}-Pakets\IndexPackage{babel} (siehe \cite{package:babel}) auch +nicht empfehlenswert, diese Anweisungen in der Dokumentpräambel vor +\Macro{begin}\PParameter{document} zu verwenden. Beispieldokumente finden Sie +am Ende des Abschnitts. + + +\begin{Declaration} + \Macro{extratitle}\Parameter{Schmutztitel} +\end{Declaration}% +\BeginIndex{Cmd}{extratitle}% +\begin{Explain}% + Früher war der Buchblock oftmals nicht durch einen Buchdeckel vor + Verschmutzung geschützt. Diese Aufgabe übernahm dann die erste Seite des + Buches, die meist einen Kurztitel, eben den \emph{Schmutztitel} trug. Auch + heute noch wird diese Extraseite vor dem eigentlichen Haupttitel gerne + verwendet und enthält dann Verlagsangaben, Buchreihennummer und ähnliche + Angaben. +\end{Explain} +Bei {\KOMAScript} ist es möglich, vor der eigentlichen Titelseite eine weitere +Seite zu setzen. Als \PName{Schmutztitel}\Index{Schmutztitel} kann dabei +beliebiger Text -- auch mehrere Absätze -- gesetzt werden. Der Inhalt von +\PName{Schmutztitel} wird von {\KOMAScript} ohne zusätzliche Beeinflussung der +Formatierung ausgegeben. Dadurch ist dessen Gestaltung völlig dem Anwender +überlassen. Die Rückseite des Schmutztitels bleibt leer. Der Schmutztitel +ergibt auch dann eine eigene Titelseite, wenn mit Titelköpfen gearbeitet +wird. Die Ausgabe des mit \Macro{extratitle} definierten Schmutztitels erfolgt +als Bestandteil der Titelei mit \Macro{maketitle}. + +\begin{Example} + Kommen wir auf das Beispiel von oben zurück und gehen davon aus, dass das + spartanische »Me« nur den Schmutztitel darstellt. Nach dem Schmutztitel soll + noch der Haupttitel folgen. Dann kann wie folgt verfahren werden: +\ifCommonmaincls + \begin{lstcode} + \documentclass{scrbook} + \begin{document} + \extratitle{\textbf{\Huge Me}} + \title{It's me} + \maketitle + \end{document} + \end{lstcode} +\else + \begin{lstcode} + \documentclass{book} + \usepackage[extendedfeature=title]{scrextend} + \begin{document} + \extratitle{% + \textbf{\Huge Me}% + } + \title{It's me} + \maketitle + \end{document} + \end{lstcode} +\fi + Sie können den Schmutztitel aber auch horizontal zentriert und etwas + tiefer setzen: +\ifCommonmaincls + \begin{lstcode} + \documentclass{scrbook} + \begin{document} + \extratitle{\vspace*{4\baselineskip} + \begin{center}\textbf{\Huge Me}\end{center}} + \title{It's me} + \maketitle + \end{document} + \end{lstcode} +\else + \begin{lstcode} + \documentclass{book} + \usepackage[extendedfeature=title]{scrextend} + \begin{document} + \extratitle{% + \vspace*{4\baselineskip} + \begin{center} + \textbf{\Huge Me} + \end{center}% + } + \title{It's me} + \maketitle + \end{document} + \end{lstcode} +\fi + Die Anweisung \Macro{title} ist grundsätzlich notwendig, damit die Beispiele + fehlerfrei sind. Sie wird nachfolgend erklärt. +\end{Example} +% +\EndIndex{Cmd}{extratitle} + + +\begin{Declaration} + \Macro{titlehead}\Parameter{Kopf}\\ + \Macro{subject}\Parameter{Typisierung}\\ + \Macro{title}\Parameter{Titel}\\ + \Macro{subtitle}\Parameter{Untertitel}\\ + \Macro{author}\Parameter{Autor}\\ + \Macro{date}\Parameter{Datum}\\ + \Macro{publishers}\Parameter{Herausgeber}\\ + \Macro{and}\\ + \Macro{thanks}\Parameter{Fußnote} +\end{Declaration}% +\BeginIndex{Cmd}{titlehead}% +\BeginIndex{Cmd}{subject}% +\BeginIndex{Cmd}{title}% +\BeginIndex{Cmd}{subtitle}% +\BeginIndex{Cmd}{author}% +\BeginIndex{Cmd}{date}% +\BeginIndex{Cmd}{publishers}% +\BeginIndex{Cmd}{and}% +\BeginIndex{Cmd}{thanks}% +Für den Inhalt der Haupttitelseite stehen sieben Elemente zur Verfügung. Die +Ausgabe der Haupttitelseite erfolgt als Bestandteil der Titelei mit +\Macro{maketitle}, während die hier aufgeführten Anweisungen lediglich der +Definition der entsprechenden Elemente dienen. + +Der \PName{Kopf}\Index[indexmain]{Titel>Seitenkopf} des Haupttitels wird mit +der Anweisung \Macro{titlehead} definiert. Er wird über die gesamte Textbreite +in normalem Blocksatz am Anfang der Seite ausgegeben. Er kann vom Anwender +frei gestaltet werden. + +Die \PName{Typisierung}\Index[indexmain]{Typisierung} wird unmittelbar über +dem \PName{Titel} ausgegeben. Dabei\ChangedAt{v2.95}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}} findet die Schriftumschaltung für das +Element \FontElement{subject}\IndexFontElement{subject} Anwendung. Die +Voreinstellung, die in \autoref{tab:maincls.titlefonts}% +\IfNotCommon{maincls}{, \autopageref{tab:maincls.titlefonts} }% +\ zu finden ist, kann mit Hilfe der Anweisungen \Macro{setkomafont} und +\Macro{addtokomafont} (siehe \autoref{sec:\csname + label@base\endcsname.textmarkup}, \autopageref{desc:\csname + label@base\endcsname.cmd.setkomafont}) verändert werden. + +Der \PName{Titel} wird in einer sehr großen Schrift ausgegeben. +Dabei\ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} findet abgesehen von der Größe auch die Schriftumschaltung +für das Element \FontElement{title}\IndexFontElement{title} Anwendung. +Voreingestellt ist die gleiche Schrift, die für das Element +\FontElement{disposition}\IndexFontElement{disposition} verwendet wird (siehe +\autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}). Die Voreinstellungen können +mit Hilfe der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:\csname label@base\endcsname.textmarkup}, +\autopageref{desc:\csname label@base\endcsname.cmd.setkomafont}) verändert +werden. Die Größe ist jedoch davon unabhängig (siehe +\autoref{tab:maincls.mainTitle}, \autopageref{tab:maincls.mainTitle}). + +Der \PName{Untertitel}\ChangedAt{v2.97c}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}} wird in der über das Element +\FontElement{subtitle}\IndexFontElement{subtitle} eingestellten Schrift knapp +unter dem Titel ausgegeben. Die Voreinstellung, die +\autoref{tab:maincls.titlefonts}% +\IfNotCommon{maincls}{, \autopageref{tab:maincls.titlefonts}}% +\ zu entnehmen ist, kann mit Hilfe der Anweisungen \Macro{setkomafont} und +\Macro{addtokomafont} (siehe \autoref{sec:\csname + label@base\endcsname.textmarkup}, \autopageref{desc:\csname + label@base\endcsname.cmd.setkomafont}) verändert werden. + +\IfCommon{maincls}{% +\begin{table} + \centering + \caption{Schriftvoreinstellungen für die Elemente des Titels} + \begin{tabular}{ll} + \toprule + Element-Name & Voreinstellung \\ + \midrule + \FontElement{subject} & + \Macro{normalfont}\Macro{normalcolor}\Macro{bfseries}\Macro{Large} \\ + \FontElement{title} & \Macro{usekomafont}\PParameter{disposition} \\ + \FontElement{subtitle} & + \Macro{usekomafont}\PParameter{title}\Macro{large} \\ + \bottomrule + \end{tabular} + \label{tab:maincls.titlefonts} +\end{table}} + +Unter dem \PName{Untertitel} folgt der \PName{Autor}\Index[indexmain]{Autor}. +Es kann auch durchaus mehr als ein Autor innerhalb des Arguments von +\Macro{author} angegeben werden. Die Autoren sind dann mit \Macro{and} +voneinander zu trennen. + +Unter dem Autor oder den Autoren folgt das Datum\Index{Datum}. +Dabei ist das aktuelle Datum, \Macro{today}\IndexCmd{today}, +voreingestellt. Es kann jedoch mit \Macro{date} eine beliebige +Angabe -- auch ein leere -- erreicht werden. + +Als Letztes folgt schließlich der +\PName{Herausgeber}\Index[indexmain]{Herausgeber}. Selbstverständlich +kann diese Anweisung auch für andere Angaben geringer Wichtigkeit +verwendet werden. Notfalls kann durch Verwendung einer \Macro{parbox} +über die gesamte Seitenbreite auch erreicht werden, dass diese Angabe +nicht zentriert, sondern im Blocksatz gesetzt wird. Sie ist dann als +Äquivalent zum Kopf zu betrachten. Dabei ist jedoch zu beachten, +dass sie oberhalb von eventuell vorhandenen Fußnoten ausgegeben wird. + +Fußnoten\Index{Fussnoten=Fußnoten} werden auf der Titelseite nicht mit +\Macro{footnote}, sondern mit der Anweisung \Macro{thanks} erzeugt. Sie dienen +in der Regel für Anmerkungen bei den Autoren. Als Fußnotenzeichen werden dabei +Symbole statt Zahlen verwendet. Es ist zu beachten, dass \Macro{thanks} +innerhalb des Arguments einer der übrigen Anweisungen, beispielsweise im +Argument \PName{Autor} der Anweisung \Macro{author} zu verwenden ist. + +Bis auf den \PName{Kopf} und eventuelle Fußnoten werden alle Ausgaben +horizontal zentriert. Diese Angaben sind noch einmal kurz zusammengefasst in +\autoref{tab:maincls.mainTitle}% +\IfNotCommon{maincls}{, \autopageref{tab:maincls.mainTitle} }% +\ zu finden. + +\IfCommon{maincls}{\begin{table} + \centering + \caption[Der Haupttitel]{Schriftgröße und horizontale + Ausrichtung der Elemente der Haupttitelseite in der Reihenfolge + ihrer vertikalen Position von oben nach unten bei Verwendung von + \Macro{maketitle}} + \begin{tabular}{llll} + \toprule + Element & Anweisung & Schrift & Satz \\ + \midrule + Seitenkopf & \Macro{titlehead} & \Macro{normalsize} & Blocksatz \\ + Typisierung & \Macro{subject} & \Macro{usekomafont}\PParameter{subject} + & zentriert \\ + Titel & \Macro{title} & + \Macro{huge}\Macro{usekomafont}\PParameter{title} & zentriert \\ + Untertitel & \Macro{subtitle} & + \Macro{usekomafont}\PParameter{subtitle} & zentriert \\ + Autoren & \Macro{author} & \Macro{Large} & zentriert \\ + Datum & \Macro{date} & \Macro{Large} & zentriert \\ + Herausgeber & \Macro{publishers} & \Macro{Large} & zentriert \\ + \bottomrule + \end{tabular} + \label{tab:maincls.mainTitle} +\end{table}} + +\begin{Example} + Nehmen wir nun einmal an, Sie schreiben eine Diplomarbeit. Dabei sei + vorgegeben, dass die Titelseite oben linksbündig das Institut + einschließlich Adresse und rechtsbündig das Semester wiedergibt. Wie + üblich ist ein Titel einschließlich Autor und Abgabedatum zu setzen. + Außerdem soll der Betreuer angegeben und zu erkennen sein, dass es + sich um eine Diplomarbeit handelt. Sie könnten das wie folgt + erreichen: +\ifCommonmaincls + \iffree{}{\newpage}% Umbruchkorrektur +\begin{lstcode} + \documentclass{scrbook} + \usepackage{ngerman} + \begin{document} + \titlehead{{\Large Universit"at Schlauenheim + \hfill SS~2001\\} + Institut f"ur Raumkr"ummung\\ + Hochschulstra"se~12\\ + 34567 Schlauenheim} + \subject{Diplomarbeit} + \title{Digitale Raumsimulation mit dem DSP\,56004} + \subtitle{Klein aber fein?} + \author{cand. stup. Uli Ungenau} + \date{30. Februar 2001} + \publishers{Betreut durch Prof. Dr. rer. stup. Naseweis} + \maketitle + \end{document} +\end{lstcode} +\else +\begin{lstcode} + \documentclass{book} + \usepackage[extendedfeature=title]{scrextend} + \usepackage{ngerman} + \begin{document} + \titlehead{{\Large Universit"at Schlauenheim + \hfill SS~2001\\} + Institut f"ur Raumkr"ummung\\ + Hochschulstra"se~12\\ + 34567 Schlauenheim} + \subject{Diplomarbeit} + \title{Digitale Raumsimulation mit dem DSP\,56004} + \subtitle{Klein aber fein?} + \author{cand. stup. Uli Ungenau} + \date{30. Februar 2001} + \publishers{Betreut durch Prof. Dr. rer. stup. + Naseweis} + \maketitle + \end{document} +\end{lstcode} +\fi +\end{Example} + +\begin{Explain} + Ein häufiges Missverständnis betrifft die Bedeutung der + Haupttitelseite. Irrtümlich wird oft angenommen, es handle sich dabei um den + Buchumschlag oder Buchdeckel. Daher wird häufig erwartet, dass die + Titelseite nicht den Randvorgaben für doppelseitige Satzspiegel gehorcht, + sondern rechts und links gleich große Ränder besitzt. Nimmt man jedoch + einmal ein Buch zur Hand und klappt es auf, trifft man sehr schnell auf + mindestens eine Titelseite unter dem Buchdeckel innerhalb des so genannten + Buchblocks. Genau diese Titelseiten werden mit \Macro{maketitle} + gesetzt. Wie beim Schmutztitel handelt es sich also auch bei der + Haupttitelseite um eine Seite innerhalb des Buchblocks, die deshalb dem + Satzspiegel des gesamten Dokuments gehorcht. Überhaupt ist ein Buchdeckel, + das \emph{Cover}, etwas, was man in einem getrennten Dokument + erstellt. Schließlich hat er oft eine sehr individuelle Gestalt. Es spricht + auch nichts dagegen, hierfür ein Grafik- oder DTP-Programm zu Hilfe zu + nehmen. Ein getrenntes Dokument sollte auch deshalb verwendet werden, weil + es später auf ein anderes Druckmedium, etwa Karton, und möglicherweise mit + einem anderen Drucker ausgegeben werden soll. +\end{Explain} +% +\EndIndex{Cmd}{titlehead}% +\EndIndex{Cmd}{subject}% +\EndIndex{Cmd}{title}% +\EndIndex{Cmd}{subtitle}% +\EndIndex{Cmd}{author}% +\EndIndex{Cmd}{date}% +\EndIndex{Cmd}{publishers}% +\EndIndex{Cmd}{and}% +\EndIndex{Cmd}{thanks}% + + +\begin{Declaration} + \Macro{uppertitleback}\Parameter{Titelrückseitenkopf}\\ + \Macro{lowertitleback}\Parameter{Titelrückseitenfuß} +\end{Declaration}% +\BeginIndex{Cmd}{uppertitleback}% +\BeginIndex{Cmd}{lowertitleback}% +Im doppelseitigen Druck bleibt bei den Standardklassen die Rückseite des +Blatts mit der Titelseite leer. Bei {\KOMAScript} lässt sich die Rückseite der +Haupttitelseite hingegen für weitere Angaben nutzen. Dabei wird zwischen genau +zwei Elementen unterschieden, die der Anwender frei gestalten kann: dem +\PName{Titelrückseitenkopf}\Index{Titel>Rueckseite=Rückseite} und dem +\PName{Titelrückseitenfuß}. Dabei kann der Kopf bis zum Fuß reichen und +umgekehrt. \iffree{Nimmt man diese Anleitung als Beispiel, so wurde der + Haftungsausschluss mit Hilfe von \Macro{uppertitleback} + gesetzt.}{Beispielsweise hätte man die Verlagsinformationen zu diesem Buch + wahlweise mit \Macro{uppertitleback} oder \Macro{lowertitleback} setzen + können.}% +% +\EndIndex{Cmd}{uppertitleback}% +\EndIndex{Cmd}{lowertitleback}% + + +\begin{Declaration} + \Macro{dedication}\Parameter{Widmung} +\end{Declaration}% +\BeginIndex{Cmd}{dedication}% +{\KOMAScript} bietet eine eigene Widmungsseite. Diese +Widmung\Index{Widmung} wird zentriert und in etwas größerer Schrift +gesetzt. Die Rückseite ist wie bei der Seite mit dem Schmutztitel +grundsätzlich leer. Die Widmungsseite wird zusammen mit der restlichen +Titelei mit \Macro{maketitle} ausgegeben und muss daher vor dieser +Anweisung definiert sein. + +\begin{Example} + Nehmen wir dieses Mal an, dass Sie einen Gedichtband schreiben, den + Sie Ihrer Frau widmen wollen. Das könnte wie folgt aussehen: +\ifCommonmaincls +\begin{lstcode} + \documentclass{scrbook} + \usepackage{ngerman} + \begin{document} + \extratitle{\textbf{\Huge In Liebe}} + \title{In Liebe} + \author{Prinz Eisenherz} + \date{1412} + \lowertitleback{Dieser Gedichtband wurde mit Hilfe + von {\KOMAScript} und {\LaTeX} gesetzt.} + \uppertitleback{Selbstverlach\par + Auf"|lage: 1 Exemplar} + \dedication{Meinem Schnuckelchen\\ + in ewiger Liebe\\ + von Deinem Hasenboppelchen.} + \maketitle + \end{document} +\end{lstcode} +\else +\begin{lstcode} + \documentclass{book} + \usepackage[extendedfeature=title]{scrextend} + \usepackage{ngerman} + \begin{document} + \extratitle{% + \textbf{\Huge In Liebe}} + \title{In Liebe} + \author{Prinz Eisenherz} + \date{1412} + \lowertitleback{% + Dieser Gedichtband wurde mit Hilfe von + {\KOMAScript} und {\LaTeX} gesetzt.} + \uppertitleback{% + Selbstverlach\par + Auf"|lage: 1 Exemplar} + \dedication{% + Meinem Schnuckelchen\\ + in ewiger Liebe\\ + von Deinem Hasenboppelchen.} + \maketitle + \end{document} +\end{lstcode} +\fi + Ich bitte, die Kosenamen entsprechend Ihren Vorlieben zu ersetzen. +\end{Example} +% +\EndIndex{Cmd}{dedication}% +% +\EndIndex{Cmd}{maketitle}% +% +\EndIndex{}{Titel} +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<15>> + +\section{Schlauer Spruch} +\label{sec:\csname label@base\endcsname.dictum}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis +Es gilt sinngemäß, was in \autoref{sec:maincls.dictum} geschrieben +wurde. \IfCommon{scrextend}{Allerdings werden von \Package{scrextend} die + Anweisungen \Macro{setchapterpreamble} und \Macro{setpartpreamble} nicht + definiert. Ob die verwendete Klasse eine entsprechende Anweisung bietet, ist + der Anleitung zur jeweiligen Klasse zu entnehmen.} +\else +\BeginIndex{}{Spruch}% +\BeginIndex{}{Zitat}% +\BeginIndex{}{Redewendung}% + +Ein häufiger anzutreffendes Element ist ein Zitat oder eine Redewendung, die +rechtsbündig unter oder über einer Überschrift gesetzt wird. Dabei werden der +Spruch selbst und der Quellennachweis in der Regel speziell formatiert. + + +\begin{Declaration} + \Macro{dictum}\OParameter{Urheber}\Parameter{Spruch}\\ + \Macro{dictumwidth}\\ + \Macro{dictumauthorformat}\Parameter{Urheber}\\ + \Macro{raggeddictum}\\ + \Macro{raggeddictumtext}\\ + \Macro{raggeddictumauthor} +\end{Declaration}% +\BeginIndex{Cmd}{dictum}% +\BeginIndex{Cmd}{dictumwidth}% +\BeginIndex{Cmd}{dictumauthorformat}% +\BeginIndex{Cmd}{raggeddictum}% +\BeginIndex{Cmd}{raggeddictumtext}% +\BeginIndex{Cmd}{raggeddictumauthor}% +Ein solcher Spruch kann mit der Anweisung \Macro{dictum} gesetzt werden. % +\IfCommon{maincls}{Bei \KOMAScript-Klassen wird für Kapitel oder die Teile + empfohlen, \Macro{dictum} als obligatorisches Argument einer der Anweisungen + \Macro{setchapterpreamble} oder \Macro{setpartpreamble} (siehe + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.setchapterpreamble}) zu verwenden. Dies ist + jedoch nicht zwingend.\par}% +Der Spruch wird zusammen mit einem optional anzugebenden \PName{Urheber} in +einer \Macro{parbox}\IndexCmd{parbox} (siehe \cite{latex:usrguide}) der Breite +\Macro{dictumwidth} gesetzt. Dabei ist \Macro{dictumwidth} keine Länge, die +mit \Macro{setlength} gesetzt wird. Es handelt sich um ein Makro, das mit +\Macro{renewcommand} umdefiniert werden kann. Vordefiniert ist +\lstinline;0.3333\textwidth;, also ein Drittel der jeweiligen Textbreite. Die +Box selbst wird mit der Anweisung \Macro{raggeddictum} +ausgerichtet. Voreingestellt ist dabei +\Macro{raggedleft}\IndexCmd{raggedleft}, also rechtsbündig. +\Macro{raggeddictum} kann mit Hilfe von \Macro{renewcommand} umdefiniert +werden. + +Innerhalb der Box wird der \PName{Spruch} mit \Macro{raggeddictumtext} +angeordnet. Voreingestellt ist hier \Macro{raggedright}\IndexCmd{raggedright}, +also linksbündig. Eine Umdefinierung ist auch hier mit \Macro{renewcommand} +möglich. Die Ausgabe erfolgt in der für Element \FontElement{dictumtext} +eingestellten Schriftart, die mit den Anweisungen \Macro{setkomafont} und +\Macro{addtokomafont} (siehe \autoref{sec:\csname + label@base\endcsname.textmarkup}, \autopageref{desc:\csname + label@base\endcsname.cmd.setkomafont}) geändert werden kann. Die +Voreinstellung entnehmen Sie bitte \autoref{tab:maincls.dictumfont}% +\IfNotCommon{maincls}{, \autopageref{tab:maincls.dictumfont}}% +. + +Ist ein \PName{Urheber} angegeben, so wird dieser mit einer Linie über die +gesamte Breite der \Macro{parbox} vom \PName{Spruch} abgetrennt. Mit +\Macro{raggeddictumauthor} wird die Ausrichtung vorgenommen. Voreingestellt +ist \Macro{raggedleft}. Auch diese Anweisung kann mit \Macro{renewcommand} +umdefiniert werden. Die Ausgabe erfolgt in der Form, die mit +\Macro{dictumauthorformat} festgelegt ist. Das Makro erwartet schlicht den +\Macro{Urheber} als Argument. In der Voreinstellung ist +\Macro{dictumauthorformat} als +\begin{lstcode}[aboveskip={1ex plus 2ex},belowskip={1ex plus 2ex}] + \newcommand*{\dictumauthorformat}[1]{(#1)} +\end{lstcode} +definiert. Der \PName{Urheber} wird also in runde Klammern gesetzt. Für das +Element \PName{dictumauthor} kann dabei eine Abweichung der Schrift von der +des Elementes \PName{dictumtext} definiert werden. Die Voreinstellung +entnehmen Sie bitte \autoref{tab:maincls.dictumfont}. Eine Änderung ist mit +Hilfe der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:\csname label@base\endcsname.textmarkup}, +\autopageref{desc:\csname label@base\endcsname.cmd.setkomafont}) möglich.% +% +\ifCommonmaincls +\begin{table} + \centering% + \caption{Schriftvoreinstellungen für die Elemente des Spruchs} + \begin{tabular}{ll} + \toprule + Element & Voreinstellung \\ + \midrule + \FontElement{dictumtext} & + \Macro{normalfont}\Macro{normalcolor}\Macro{sffamily}\Macro{small}\\ + \FontElement{dictumauthor} & + \Macro{itshape}\\ + \bottomrule + \end{tabular} + \label{tab:maincls.dictumfont} +\end{table} + +Wird \Macro{dictum} innerhalb der Anweisung \Macro{setchapterpreamble} oder +\Macro{setpartpreamble} (siehe \autoref{sec:maincls.structure}, +\autopageref{desc:maincls.cmd.setchapterpreamble}) verwendet, so ist +Folgendes zu beachten: Die horizontale Anordnung erfolgt immer mit +\Macro{raggeddictum}. Das optionale Argument zur horizontalen Anordnung, das +die beiden Anweisungen vorsehen, bleibt daher ohne Wirkung. \Macro{textwidth} +ist nicht die Breite des gesamten Textkörpers, sondern die aktuelle +Textbreite. Ist also die Breite \Macro{dictumwidth} als +\lstinline;.5\textwidth; definiert und bei \Macro{setchapterpreamble} wird als +optionales Argument für die Breite ebenfalls \lstinline;.5\textwidth; +angegeben, so erfolgt die Ausgabe in einer Box, deren Breite ein Viertel der +Breite des Textkörpers ist. Es wird empfohlen, bei Verwendung von +\Macro{dictum} auf die optionale Angabe einer Breite bei +\Macro{setchapterpreamble} oder \Macro{setpartpreamble} zu verzichten. + +Sollen mehrere schlaue Sprüche untereinander gesetzt werden, so sollten diese +durch einen zusätzlichen Abstand vertikal voneinander abgesetzt werden. Ein +solcher kann leicht mit der Anweisung \Macro{bigskip}\IndexCmd{bigskip} +gesetzt werden. + +\begin{Example} + Sie schreiben ein Kapitel über die moderne Ehe. Dabei wollen sie in der + Präambel zur Kapitelüberschrift einen schlauen Spruch setzen. Dieser soll + unter der Überschrift erscheinen. Also schreiben Sie: + \begin{lstcode} + \setchapterpreamble[u]{% + \dictum[Schiller]{Drum prüfe, + wer sich ewig bindet \dots}} + \chapter{Die moderne Ehe} + \end{lstcode} + Die Ausgabe erfolgt dann in der Form: + \begin{ShowOutput} + {\usekomafont{disposition}\usekomafont{chapter}% + 17\enskip Die moderne Ehe\par} + \vspace{\baselineskip} + \dictum[Schiller]{Drum prüfe, wer sich ewig bindet \dots} + \end{ShowOutput} + + Wenn Sie wollen, dass nicht ein Drittel, sondern nur ein Viertel der + verfügbaren Textbreite für den Spruch verwendet wird, so definieren Sie + \Macro{dictumwidth} wie folgt um: + \begin{lstcode} + \renewcommand*{\dictumwidth}{.25\textwidth} + \end{lstcode} +\end{Example} + +An dieser Stelle sei noch auf das Paket~\cite{package:ragged2e} hingewiesen, +mit dem man Flattersatz mit Trennung erreichen kann.% +\fi +% +\EndIndex{Cmd}{dictum}% +\EndIndex{Cmd}{dictumwidth}% +\EndIndex{Cmd}{dictumauthorformat}% +\EndIndex{Cmd}{raggeddictum}% +\EndIndex{Cmd}{raggeddictumtext}% +\EndIndex{Cmd}{raggeddictumauthor}% +% +\EndIndex{}{Redewendung}% +\EndIndex{}{Zitat}% +\EndIndex{}{Spruch}% +\fi % IgnoreThis + +\else %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<Error>> + +\ClassError{scrguide}{No commen part \the\value{commonpar}\space known}{} + +\fi + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "../guide" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/expertpart.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/expertpart.tex new file mode 100644 index 00000000000..9a0dd285d6a --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/expertpart.tex @@ -0,0 +1,78 @@ +% ====================================================================== +% expertpart.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% expertpart.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% First part: KOMA-Script for Authors +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Erster Teil: KOMA-Script für Autoren +% Verwaltet von Markus Kohm +% +% ====================================================================== + +\ProvidesFile{expertpart.tex}[2008/07/22 Part KOMA-Script for Experts] + +\setpartpreamble{% + \vspace*{2\baselineskip}% + \setlength{\parindent}{1em}% + + \noindent In diesem Teil sind die Informationen für die Autoren von + \LaTeX-Paketen und "~Klassen zu finden. Dies betrifft nicht nur + Anweisungen, die bei der Implementierung neuer Pakete und Klassen nützlich + sind, sondern auch Schnittstellen, die weitere Eingriffe in \KOMAScript{} + erlauben. Darüber hinaus sind in diesem Teil auch obsolete Optionen und + Anweisungen ebenso wie Hintergründe zur Implementierung von \KOMAScript{} zu + finden. + + Dieser Teil ist als Ergänzung zu den Informationen für Autoren von + Artikeln, Berichten, Büchern und Briefen in \autoref{part:forAuthors} + gedacht. Nähere Informationen und Beispiele für diese Anwender sind + jenem Teil zu entnehmen. +} + +\part{\KOMAScript{} für fortgeschrittene Anwender + und Experten} +\label{part:forExperts} + +\endinput + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "guide.tex" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/guide-ngerman.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/guide-ngerman.tex index 290fae9b95e..b7953b7feb4 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/german/guide-ngerman.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/guide-ngerman.tex @@ -1,6 +1,6 @@ % ====================================================================== % guide-ngerman.tex -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % guide-ngerman.tex -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ====================================================================== % -\ProvidesFile{guide-ngerman.tex}[{2007/09/18 +\ProvidesFile{guide-ngerman.tex}[{2008/07/19 KOMA-Script guide language dependencies}] % % \section{Title} @@ -80,8 +80,8 @@ dankbar.\par\medskip% In dieser Anleitung werden Warennamen ohne der Gewährleistung der freien Verwendbarkeit und ohne besondere Kennzeichnung benutzt. Es ist jedoch davon - auszugehen, dass viele der Warennamen gleichzeitig eingetrage Warenzeichnen - oder als solche zu betrachten sind.}% + auszugehen, dass viele der Warennamen gleichzeitig eingetragene + Warenzeichnen oder als solche zu betrachten sind.}% \newcommand*{\GuideCopyright}{Freie Bildschirm-Version ohne Optimierung des Umbruchs\par\medskip% Diese Anleitung ist als Bestandteil von \KOMAScript{} frei im Sinne der @@ -93,8 +93,8 @@ \KOMAScript{} bedarf der ausdrücklichen Genehmigung der Autoren.\par\medskip% Eine umbruchoptimierte und erweiterte Ausgabe der \KOMAScript-Anleitung ist - in der dante-Edition des Verlags von Lehmanns Fachbuchhandlung GmbH - erschienen.}% + in der dante-Edition von Lehmanns Media erschienen (siehe + \cite{book:komascript}).}% \newcommand*{\GuideDedication}{Den Freunden der Typografie!}% % \end{macrocode} % \end{macro} @@ -122,25 +122,43 @@ % Some terms, e.g. used at index notes. % % \begin{macro}{\GuideClass} +% \begin{macro}{\GuideClassIndexCategory} +% \begin{macro}{\GuideClassIndexCategoryExpanded} % The term »class«. % \begin{macrocode} \newcommand*{\GuideClass}{Klasse} +\newcommand*{\GuideClassIndexCategory}{Klassen} +\let\GuideClassIndexCategoryExpanded\GuideClassIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideCounter} +% \begin{macro}{\GuideCounterIndexCategory} +% \begin{macro}{\GuideCounterIndexCategoryExpanded} % The term »counter«. % \begin{macrocode} \newcommand*{\GuideCounter}{Zähler} +\newcommand*{\GuideCounterIndexCategory}{Zähler} +\let\GuideCounterIndexCategoryExpanded\GuideCounterIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideEnvironment} +% \begin{macro}{\GuideEnvIndexCategory} +% \begin{macro}{\GuideEnvIndexCategoryExpanded} % The term »environment«. % \begin{macrocode} \newcommand*{\GuideEnvironment}{Umgebung} +\newcommand*{\GuideEnvIndexCategory}{Umgebungen} +\let\GuideEnvIndexCategoryExpanded\GuideEnvIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideExample} % The term »Example« used at a kind of heading, so it should be upper case. @@ -150,80 +168,146 @@ % \end{macro} % % \begin{macro}{\GuideFile} +% \begin{macro}{\GuideFileIndexCategory} +% \begin{macro}{\GuideFileIndexCategoryExpanded} % The term »file«. % \begin{macrocode} \newcommand*{\GuideFile}{Datei} +\newcommand*{\GuideFileIndexCategory}{Dateien} +\let\GuideFileIndexCategoryExpanded\GuideFileIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideFloatstyle} +% \begin{macro}{\GuideFloatstyleIndexCategory} +% \begin{macro}{\GuideFloatstyleIndexCategoryExpanded} % The term »\Package{float} style«. % \begin{macrocode} \newcommand*{\GuideFloatstyle}{\Package{float}-Stil} +\newcommand*{\GuideFloatstyleIndexCategory}{\Package{float}-Stile} +\newcommand*{\GuideFloatstyleIndexCategoryExpanded}{float-Stile} % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideFontElement} +% \begin{macro}{\GuideFontElementIndexCategory} +% \begin{macro}{\GuideFontElementIndexCategoryExpanded} % The term »element«. % \begin{macrocode} \newcommand*{\GuideFontElement}{Element} +\newcommand*{\GuideFontElementIndexCategory}{Elemente} +\let\GuideFontElementIndexCategoryExpanded\GuideFontElementIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideLength} +% \begin{macro}{\GuideLengthIndexCategory} +% \begin{macro}{\GuideLengthIndexCategoryExpanded} % The term »length«. % \begin{macrocode} \newcommand*{\GuideLength}{Länge} +\newcommand*{\GuideLengthIndexCategory}{Längen} +\let\GuideLengthIndexCategoryExpanded\GuideLengthIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideMacro} +% \begin{macro}{\GuideMacroIndexCategory} +% \begin{macro}{\GuideMacroIndexCategoryExpanded} % \begin{macro}{\GuideCommand} +% \begin{macro}{\GuideCommandIndexCategory} +% \begin{macro}{\GuideCommandIndexCategoryExpanded} % The term »command«. % \begin{macrocode} \newcommand*{\GuideMacro}{Befehl} \let\GuideCommand\GuideMacro +\newcommand*{\GuideMacroIndexCategory}{Befehle} +\let\GuideCommandIndexCategory\GuideMacroIndexCategory +\let\GuideMacroIndexCategoryExpanded\GuideMacroIndexCategory +\let\GuideCommandIndexCategoryExpanded\GuideCommandIndexCategory % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideOption} +% \begin{macro}{\GuideOptionIndexCategory} +% \begin{macro}{\GuideOptionIndexCategoryExpanded} % The term »option«. % \begin{macrocode} \newcommand*{\GuideOption}{Option} +\newcommand*{\GuideOptionIndexCategory}{Optionen} +\let\GuideOptionIndexCategoryExpanded\GuideOptionIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuidePackage} +% \begin{macro}{\GuidePackageIndexCategory} +% \begin{macro}{\GuidePackageIndexCategoryExpanded} % The term »package«. % \begin{macrocode} \newcommand*{\GuidePackage}{Paket} +\newcommand*{\GuidePackageIndexCategory}{Pakete} +\let\GuidePackageIndexCategoryExpanded\GuidePackageIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuidePagestyle} +% \begin{macro}{\GuidePagestyleIndexCategory} +% \begin{macro}{\GuidePagestyleIndexCategoryExpanded} % The term »page style«. % \begin{macrocode} \newcommand*{\GuidePagestyle}{Seitenstil} +\newcommand*{\GuidePagestyleIndexCategory}{Seitenstile} +\let\GuidePagestyleIndexCategoryExpanded\GuidePagestyleIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuidePLength} +% \begin{macro}{\GuidePLengthIndexCategory} +% \begin{macro}{\GuidePLengthIndexCategoryExpanded} % \begin{macro}{\GuidePseudoPrefix} % The prefix »pseudo« at the term »pseudo length« and the term itself. % \begin{macrocode} \newcommand*{\GuidePseudoPrefix}{Pseudo-} -\newcommand*{\GuidePLength}{\GuidePseudoPrefix\GuideLength} +\newcommand*{\GuidePLength}{Pseudolänge} +\newcommand*{\GuidePLengthIndexCategory}{Pseudolängen} +\let\GuidePLengthIndexCategoryExpanded\GuidePLengthIndexCategory % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideVariable} +% \begin{macro}{\GuideVariableIndexCategory} +% \begin{macro}{\GuideVariableIndexCategoryExpanded} % The term »variable«. % \begin{macrocode} \newcommand*{\GuideVariable}{Variable} +\newcommand*{\GuideVariableIndexCategory}{Variablen} +\let\GuideVariableIndexCategoryExpanded\GuideVariableIndexCategory % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\GuideAnd} % The ``and'' at a list of two. @@ -289,6 +373,27 @@ } % \end{macro} % +% \begin{macro}{\GuideIndexSees} +% These are all see index entries. +\newcommand*{\GuideIndexSees}{% + \Index{Seitenmittenmarke|see{Lochermarke}}% + \Index{Falzmarke|see{Faltmarke}}% + \Index{in-page-Titel=\emph{in-page}-Titel|see{Titelkopf}}% + \Index{Index|see{Stichwortverzeichnis}}% + \Index{Register|see{Stichwortverzeichnis}}% +} +% \end{macro} +% +% \begin{macro}{\GuideIndexSeeAlsos} +% These are all see also index entries. +\newcommand*{\GuideIndexSeeAlsos}{% + \Index{Ueberschriften=Überschriften|seealso{Abschnitt, Gliederung, Kapitel}}% + \Index{Gliederung|seealso{Abschnitt, Kapitel, Überschriften}}% + \Index{Bindeanteil|seealso{Bindekorrektur}}% + \Index{Bindung|seealso{Bindekorrektur}}% +} +% \end{macro} +% % % \section{Bibliography} % @@ -326,13 +431,11 @@ % The preamble of the change log index. % \begin{macrocode} \newcommand*{\GuideChangeLogPreamble}{% - Sie finden im folgenden eine Auf\/listung aller wesentlichen - \"Anderungen der Benutzerschnittstelle im \KOMAScript-Paket der - neueren Zeit. Die Liste ist sortiert nach Klassen beziehungsweise - Paketen und Versionen. Zu jeder Version ist dann jeweils angegeben, - auf welchen Seiten dieser Dokumentation die \"Anderungen zu finden - sind. Auf den entsprechenden Seiten finden Sie dazu passende - Randmarkierungen.% + Sie finden im folgenden eine Auf\/listung aller wesentlichen \"Anderungen + der Benutzerschnittstelle im \KOMAScript-Paket der neueren Zeit. Die Liste + ist sortiert nach Versionen. Zu jeder Version ist dann jeweils angegeben, + auf welchen Seiten dieser Dokumentation die \"Anderungen zu finden sind. Auf + den entsprechenden Seiten finden Sie dazu passende Randmarkierungen.% } % \end{macrocode} % \end{macro} @@ -429,7 +532,7 @@ % \begin{macro}{\changelogname} % The name of the change log index. % \begin{macrocode} - \def\changelogname{\"Anderungliste} + \def\changelogname{\"Anderungliste}% % \end{macrocode} % \end{macro} % \begin{macrocode} @@ -443,10 +546,12 @@ % This is not realy a good place to put them~-- but better late than never: % \begin{macrocode} \hyphenation{% + Ab-schnitts-ebe-ne Back-slash Brief-um-ge-bung Brief-um-ge-bun-gen Da-tei-na-me Da-tei-na-men Da-tei-na-mens Pa-pier-rand Pa-pier-ran-des + Sei-ten-um-bruch Stan-dard-an-wei-sung Stan-dard-an-wei-sun-gen Unix Zei-len-um-bruch Zei-len-um-bruchs diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/guide.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/guide.tex new file mode 100644 index 00000000000..fe466f2a212 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/guide.tex @@ -0,0 +1,118 @@ +% ====================================================================== +% guide.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% guide.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Main TeX file of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Hauptdatei der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ====================================================================== + +\ProvidesFile{guide.tex}[2008/06/20 KOMA-Script guide main file] + +\documentclass{scrguide} + +\begin{document} +\extratitle{\sffamily{\bfseries\Huge\GuideTitle\strut\\} + \large\GuideSubTitle\strut\\} +\title{\GuideTitle} +\subject{\GuideSubject} +\author{Markus Kohm\and Jens-Uwe-Morawski} +\publishers{\small\GuideAuthorHeadline: + Frank Neukam, Markus Kohm, Axel Kielhorn} +\uppertitleback{% + \GuideWarrantyHeadline\\[.5\baselineskip] + \GuideWarranty} +\lowertitleback{% + \settranslator{\GuideTranslatorHeadline}{.\par\bigskip}% + \GuideCopyright} +\dedication{\GuideDedication} + +\pdfbookmark{\KOMAScript}{title}\maketitle + +\include{preface} + +\cleardoublepage\pdfbookmark{\contentsname}{toc}\tableofcontents + +\cleardoublepage\pdfbookmark{\listfigurename}{lof}\listoffigures + +\cleardoublepage\pdfbookmark{\listtablename}{lot}\listoftables + +\include{introduction} + +\include{authorpart} +\include{typearea} +\include{scrbookreportarticle} +\include{scrlttr2} +\include{scrpage2} +\include{scrdatetime} +\include{scraddr} +\include{adrconvnote} +\include{scrextend} + + +\include{expertpart} +\include{scrbase} +\include{scrlfile} +\include{tocbasic} +\include{typearea-experts} +\include{scrbookreportarticle-experts} +\include{scrlttr2-experts} + +% \include{japanlco}% appendix at the english manual only + +\makeatletter +\let\toclevel@section\toclevel@chapter +\let\toclevel@chapter\toclevel@part +\makeatother +\printchangelog +\bibliography{\jobname} + +\GuideIndexSeeAlsos + +\printindex + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/htmlsetup b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/htmlsetup index 033c4575b8e..18878660c5c 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/german/htmlsetup +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/htmlsetup @@ -1,6 +1,6 @@ # ====================================================================== # htmlsetup -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # htmlsetup -# Copyright (c) Markus Kohm, 2002-2007 +# Copyright (c) Markus Kohm, 2002-2008 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3b, verteilt und/oder veraendert werden. @@ -58,6 +58,7 @@ alt=\"Valid HTML 4.0 Strict\" height=\"31\" width=\"88\"></a> "variable" => "Variablen", "pagestyle" => "Seitenstile", "counter" => "Zähler", - "floatstyle" => "Stile für das float-Paket" ); + "floatstyle" => "Stile für das float-Paket", + "fontelement" => "Elemente deren Schrift geändert werden kann" ); # end of file diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/introduction.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/introduction.tex index e009f15d138..1732a4f2ec3 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/german/introduction.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/introduction.tex @@ -1,6 +1,6 @@ % ====================================================================== % introduction.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % introduction.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -45,11 +45,18 @@ % % ====================================================================== -\ProvidesFile{introduction.tex}[2006/07/05 KOMA-Script guide introduction] +\ProvidesFile{introduction.tex}[2008/07/31 KOMA-Script guide introduction] \chapter{Einleitung} \labelbase{introduction} +Dieses Kapitel enthält \iffree{unter anderem }{}wichtige Informationen über +den Aufbau \iffree{der Anleitung}{des Buches} und die Geschichte von +\KOMAScript, die Jahre vor der ersten Version beginnt. Darüber hinaus finden +Sie Informationen für den Fall, dass Sie \KOMAScript{} noch nicht installiert +haben, oder auf Fehler stoßen. + +\iffree{% \section{Vorwort} \label{sec:introduction.preface} @@ -89,36 +96,56 @@ sei auf den mehrteiligen Index am Ende des \iffree{Dokuments}{Buches} hingewiesen. \iffree{Zur Dokumentation gehören neben dieser Anleitung auch alle Text-Dokumente, die Bestandteil des Pakets sind. Sie sind in \File{manifest.txt} vollständig aufgeführt}{} - +}{} \section{Dokumentaufbau} \label{sec:introduction.structure} -Diese Anleitung enthält sehr wenige Informationen, die speziell für den -\LaTeX-Neuling geschrieben wurden. Es wird als zwingend vorausgesetzt, -dass Dokumente wie \cite{l2kurz} und \cite{latex:usrguide} gelesen und -verstanden sind. Auch das Studium des einen oder anderen Buches zu -\LaTeX{} wird empfohlen. Literaturempfehlungen finden sich -beispielsweise in \cite{DANTE:FAQ}. Der Umfang von \cite{DANTE:FAQ} -ist ebenfalls erheblich. Dennoch wird darum gebeten, das Dokument -nicht nur irgendwo vorliegen zu haben, sondern es mindestens einmal zu -lesen und bei Problemen zu konsultieren. - -\begin{Explain} - Im Gegensatz zu tiefgehender Anfängerinformation sind weiterführende - Informationen und Begründungen in dieser Dokumentation reichlich - vorhanden. Um solche Dokumentteile leichter erkennbar zu machen, - sind sie in einer besonderen Schrift hervorgehoben. Damit ist es - besonders ungeduldigen und uninteressierten Zeitgenossen möglich, - solche Teile zu überspringen. Empfohlen wird dies aber ausdrücklich - nicht. Gleichwohl ist es gut zu wissen, dass diese Teile nicht - zwingend verstanden werden müssen, um {\KOMAScript} anzuwenden. Vor - der Änderung und Kritisierung der Voreinstellungen von - {\KOMAScript}, ist das Studium und Verständnis dieser Teile jedoch - von erheblichem Vorteil. -\end{Explain} - -Die Einteilung der Anleitung in Kapitel und Abschnitte soll ebenfalls dabei +Diese Anleitung ist in mehrere Teile untergliedert. Es gibt einen Teil für +Anwender, einen für fortgeschrittene Anwender und Experten und einen Anhang +mit weiterführenden Informationen und Beispielen für diejenigen, die es ganz +genau wissen wollen. + +\autoref{part:forAuthors} richtet sich dabei an alle \KOMAScript-Anwender. Das +bedeutet, dass hier auch einige Informationen für \LaTeX-Neulinge zu finden +sind. Insbesondere ist dieser Teil mit vielen Beispielen angereichert, die dem +reinen Anwender zur Verdeutlichung der Erklärungen dienen sollen. Scheuen Sie +sich nicht, diese Beispiele selbst auszuprobieren und durch Abwandlung +herauszufinden, wie \KOMAScript{} funktioniert. Trotz allem ist diese +Anleitung jedoch keine Einführung in \LaTeX. \LaTeX-Neulingen seien daher +Dokumente wie \cite{l2kurz} nahe gelegt. Wiedereinsteiger aus der Zeit von +\LaTeX~2.09 sei zumindest \cite{latex:usrguide} empfohlen. Auch das Studium des +einen oder anderen Buches zu \LaTeX{} wird empfohlen. Literaturempfehlungen +finden sich beispielsweise in \cite{DANTE:FAQ}. Der Umfang von +\cite{DANTE:FAQ} ist ebenfalls erheblich. Dennoch wird darum gebeten, das +Dokument nicht nur irgendwo vorliegen zu haben, sondern es mindestens einmal +zu lesen und bei Problemen zu konsultieren. + +\autoref{part:forExperts} richtet sich an fortgeschrittene +\KOMAScript-Anwender. Das sind all diejenigen, die sich bereits mit \LaTeX{} +auskennen oder schon einige Zeit mit \KOMAScript{} gearbeitet haben und jetzt +etwas besser verstehen wollen, wie \KOMAScript{} funktioniert, wie es mit +anderen Paketen interagiert und wie man speziellere Aufgaben mit \KOMAScript{} +lösen kann. Dazu werden die Klassenbeschreibungen aus +\autoref{part:forAuthors} in einigen Aspekten nochmals aufgegriffen und näher +erläutert. Dazu kommt die Dokumentation von Anweisungen, die speziell für +fortgeschrittene Anwender und Experten vorgesehen sind. Ergänzt wird dies +durch die Dokumentation von Paketen, die für den Anwender normalerweise insofern +verborgen sind, als sie unter der Oberfläche der Klassen und Anwenderpakete +ihre Arbeit verrichten. Diese Pakete sind ausdrücklich auch für die Verwendung +durch andere Klassen- und Paketautoren vorgesehen. + +Der Anhang\iffree{, der nur in der Buchfassung zu finden ist,}{} richtet sich +an diejenigen, denen all diese Informationen nicht genügen. Es gibt dort zum +einen Hintergrundwissen zu Fragen der Typografie, mit denen dem +fortgeschrittenen Anwender eine Grundlage für fundierte eigene Entscheidungen +vermittelt werden soll. Darüber hinaus sind dort Beispiele für angehende +Paketautoren zu finden. Diese Beispiele sind weniger dazu gedacht, einfach +übernommen zu werden. Vielmehr sollen sie Wissen um Planung und Durchführung +von \LaTeX-Projekten sowie einiger grundlegender \LaTeX-Anweisungen für +Paketautoren vermitteln. + +Die Kapitel-Einteilung der Anleitung soll ebenfalls dabei helfen, nur die Teile lesen zu müssen, die tatsächlich von Interesse sind. Um dies zu erreichen, sind die Informationen zu den einzelnen Klassen und Paketen nicht über das gesamte Dokument verteilt, sondern jeweils in einem Kapitel @@ -128,31 +155,37 @@ weiten Teilen übereinstimmen, sind sie in einem gemeinsamen Kapitel zusammengefasst. Die Unterschiede werden deutlich hervorgehoben, soweit sinnvoll auch durch eine entsprechende Randnotiz. Dies geschieht beispielsweise wie hier, wenn etwas nur die Klasse -\Class{scrartcl}\OnlyAt{\Class{scrartcl}} betrifft. +\Class{scrartcl}\OnlyAt{\Class{scrartcl}} betrifft. Nachteil dieses Vorgehens +ist, dass diejenigen, die \KOMAScript{} insgesamt kennenlernen wollen, in +einigen Kapiteln auf bereits Bekanntes stoßen werden. Vielleicht nutzen Sie +die Gelegenheit, um Ihr Wissen zu vertiefen. Unterschiedliche Schriftarten werden auch zur Hervorhebung unterschiedlicher Dinge verwendet. So werden die Namen von \Package{Paketen} und \Class{Klassen} anders angezeigt als \File{Dateinamen}. \Macro{Anweisungen}, \Environment{Umgebungen}, \Option{Optionen}, \Variable{Variablen} und \PLength{Pseudolängen} werden einheitlich hervorgehoben. Jedoch wird der -\PValue{Platzhalter} für einen Parameter anders dargestellt als ein +\PName{Platzhalter} für einen Parameter anders dargestellt als ein konkreter \PValue{Wert eines Parameters}. So zeigt etwa -\Macro{begin}\Parameter{Umgebungsname} ganz allgemein wie eine Umgebung +\Macro{begin}\Parameter{Umgebungsname} ganz allgemein, wie eine Umgebung eingeleitet wird, während \Macro{begin}\PParameter{document} angibt, wie die konkrete Umgebung \Environment{document} beginnt. Dabei ist gleichzeitig \PValue{document} ein konkreter Wert für den Parameter \PName{Umgebungsname} der Anweisung \Macro{begin}. +\iffalse% Umbruchkorrekturtext Damit sollten Sie nun alles wissen, um diese Anleitung lesen und verstehen zu können. Trotzdem könnte es sich lohnen, den Rest dieses Kapitels gelegentlich auch zu lesen. +\fi + \section{Die Geschichte von \KOMAScript} \label{sec:introduction.history} -\begin{Explain} +%\begin{Explain} Anfang der 90er~Jahre wurde Frank Neukam damit beauf"|tragt, ein - Vorlesungsskript zu setzen. Damals war noch \LaTeX2.09 aktuell und + Vorlesungsskript zu setzen. Damals war noch \LaTeX~2.09 aktuell und es gab keine Unterscheidung nach Klassen und Paketen, sondern alles waren Stile (engl. \emph{styles}). Die Standarddokumentstile erschienen ihm für ein Vorlesungsskript nicht optimal und boten auch @@ -164,67 +197,61 @@ auch zu lesen. sondern allgemein eine Stilfamilie, die den Regeln der europäischen Typografie folgt. {\Script} war geboren. - Ich, Markus Kohm, traf auf {\Script} ungefähr zum Jahreswechsel - 1992/""1993. Im Gegensatz zu Frank Neukam hatte ich häufig mit - Dokumenten zu tun, für die ich das A5-Format bevorzuge. Zu jenem - Zeitpunkt wurde A5 weder von den Standardklassen noch von {\Script} - unterstützt. Daher dauerte es nicht lange, bis ich erste - Veränderungen an {\Script} vornahm. Diese fanden sich auch in - {\ScriptII} wieder, das im Dezember~1993 von Frank veröffentlicht - wurde. + Der \KOMAScript-Autor traf auf {\Script} ungefähr zum Jahreswechsel + 1992/""1993. Im Gegensatz zu Frank Neukam hatte er häufig mit Dokumenten im + A5-Format zu tun. Zu jenem Zeitpunkt wurde A5 weder von den Standardstilen + noch von {\Script} unterstützt. Daher dauerte es nicht lange, bis er erste + Veränderungen an {\Script} vornahm. Diese fanden sich auch in {\ScriptII} + wieder, das im Dezember~1993 von Frank veröffentlicht wurde. - Mitte 1994 erschien dann \LaTeXe. Die damit einhergehenden - Änderungen waren tiefgreifend. Daher blieb dem Anwender von - {\ScriptII} nur die Entscheidung, sich entweder auf den - Kompatibilitätsmodus von \LaTeX{} zu beschränken, oder auf {\Script} - zu verzichten. Wie viele andere wollte ich beides nicht. Also machte - ich mich daran, einen \Script-Nachfolger für {\LaTeXe} zu - entwickeln, der am 7.~Juli~1994 unter dem Namen {\KOMAScript} - erschienen ist. Ich will hier nicht näher auf die Wirren eingehen, - die es um die offizielle Nachfolge von {\Script} gab und warum mein - Paket einen neuen Namen hat. Tatsache ist, dass auch aus Franks - Sicht {\KOMAScript} der Nachfolger von {\ScriptII} ist. Zu erwähnen - ist noch, dass {\KOMAScript} ursprünglich ohne Briefklasse - erschienen war. Diese wurde im Dezember~1994 von Axel Kielhorn - beigesteuert. Noch etwas später erstellte Axel Sommerfeldt den - ersten richtigen scrguide zu {\KOMAScript}. + Mitte 1994 erschien dann \LaTeXe. Die damit einhergehenden Änderungen waren + tiefgreifend. Daher blieb dem Anwender von {\ScriptII} nur die Entscheidung, + sich entweder auf den Kompatibilitätsmodus von \LaTeX{} zu beschränken, oder + auf {\Script} zu verzichten. Wie viele andere wollte ich beides nicht. Also + machte der \KOMAScript-Autor sich daran, einen \Script-Nachfolger für + {\LaTeXe} zu entwickeln, der am 7.~Juli~1994 unter dem Namen {\KOMAScript} + erschienen ist. Ich will hier nicht näher auf die Wirren eingehen, die es um + die offizielle Nachfolge von {\Script} gab und warum dieser neue Name + gewählt wurde. Tatsache ist, dass auch aus Franks Sicht {\KOMAScript} der + Nachfolger von {\ScriptII} ist. Zu erwähnen ist noch, dass {\KOMAScript} + ursprünglich ohne Briefklasse erschienen war. Diese wurde im Dezember~1994 + von Axel Kielhorn beigesteuert. Noch etwas später erstellte Axel Sommerfeldt + den ersten richtigen scrguide zu {\KOMAScript}. - Seither ist einiges an Zeit vergangen. {\LaTeX} hat sich ein wenig - verändert, die \LaTeX-Landschaft erheblich. {\KOMAScript} hat sich - weiterentwickelt. Es findet nicht mehr allein im deutschsprachigen - Raum Anwender, sondern in ganz Europa, Nordamerika, Australien - und Asien. - Diese Anwender suchen bei {\KOMAScript} nicht allein nach - einem typografisch ansprechenden Ergebnis. Zu beobachten ist - vielmehr, dass bei {\KOMAScript} ein neuer Schwerpunkt entstanden - ist: Flexibilisierung durch Variabilisierung. Unter diesem - Schlagwort verstehe ich die Möglichkeit, in das Erscheinungsbild an - vielen Stellen eingreifen zu können. Dies führte zu vielen neuen - Makros, die mehr schlecht als recht in die existierende Anleitung - integriert wurden. Irgendwann wurde es damit auch Zeit für eine - komplett überarbeitete Anleitung.\par -\end{Explain} - - + Seither ist einige Zeit vergangen. {\LaTeX} hat sich kaum verändert, die + \LaTeX-Landschaft erheblich. {\KOMAScript} wurde weiterentwickelt. Es findet + nicht mehr allein im deutschsprachigen Raum Anwender, sondern in ganz + Europa, Nordamerika, Australien und Asien. Diese Anwender suchen bei + {\KOMAScript} nicht allein nach einem typografisch ansprechenden + Ergebnis. Zu beobachten ist vielmehr, dass bei {\KOMAScript} ein neuer + Schwerpunkt entstanden ist: Flexibilisierung durch Variabilisierung. Unter + diesem Schlagwort verstehe ich die Möglichkeit, in das Erscheinungsbild an + vielen Stellen eingreifen zu können. Dies führte zu vielen neuen Makros, die + mehr schlecht als recht in die existierende Dokumentation integriert wurden. + Irgendwann wurde es damit auch Zeit für eine komplett überarbeitete + Anleitung. +%\end{Explain} + + +\iffree{% \section{Danksagung} \label{sec:introduction.thanks} -Eine Danksagung in der Einleitung? Gehört sie nicht vielmehr an den -Schluss? Richtig! Eigentlich gehört die an das Ende. Mein Dank gilt -hier jedoch nicht primär denjenigen, die diese Anleitung möglich -gemacht haben. Für den Dank an die Guide-Autoren mache ich den Leser -zuständig! Mein persönlicher Dank gilt Frank Neukam, ohne dessen -\Script-Familie es vermutlich {\KOMAScript} nie gegeben hätte. Mein -Dank gilt denjenigen, die an der Entstehung von {\KOMAScript} und den -Anleitungen mitgewirkt haben. Stellvertretend für andere möchte ich -hier Jens-Uwe Morawski und Torsten Krüger nennen. Jens' unermüdlichem -Einsatz ist neben vielem Anderen die englische Übersetzung der -Anleitung zu verdanken. Torsten ist der beste Betatester, den ich je -hatte. Er hat damit insbesondere an der Verwendbarkeit von -\Class{scrlttr2} und \Class{scrpage2} einen erheblichen Anteil. Mein -Dank gilt auch allen, die mich immer wieder aufgemuntert haben, weiter -zu machen und dieses oder jenes noch besser, weniger fehlerhaft oder -schlicht zusätzlich zu implementieren. +Eine Danksagung in der Einleitung? Gehört sie nicht vielmehr an den Schluss? +Richtig! Eigentlich gehört die an das Ende. Mein Dank gilt hier jedoch nicht +primär denjenigen, die diese Anleitung möglich gemacht haben. Für den Dank an +die Guide-Autoren mache ich den Leser zuständig! Mein persönlicher Dank gilt +Frank Neukam, ohne dessen \Script-Familie es vermutlich {\KOMAScript} nie +gegeben hätte. Mein Dank gilt denjenigen, die an der Entstehung von +{\KOMAScript} und den Anleitungen mitgewirkt haben. Stellvertretend für andere +möchte ich hier Jens-Uwe Morawski, Torsten Krüger und Gernot Hassenpflug +nennen. Jens' unermüdlichem Einsatz ist neben vielem Anderen die englische +Übersetzung der Anleitung zu verdanken, die Gernot in wesentlichen Teilen +mitgestaltet hat. Torsten ist der beste Betatester, den ich je hatte. Er hat +damit insbesondere an der Verwendbarkeit von \Class{scrlttr2} und +\Class{scrpage2} einen erheblichen Anteil. Mein Dank gilt auch allen, die mich +immer wieder aufgemuntert haben, weiter zu machen und dieses oder jenes noch +besser, weniger fehlerhaft oder schlicht zusätzlich zu implementieren. Ganz besonderen Dank bin ich den Gründern von DANTE, Deutschsprachige Anwendervereinigung \TeX~e.V\kern-.18em., schuldig, durch die letztlich die @@ -235,6 +262,7 @@ Weise bedanke ich mich bei den aktiven Helfern auf der Mailingliste \texttt{de.comp.text.tex}, die mir so manche Antwort auf Fragen zu {\KOMAScript} abnehmen. + \section{Rechtliches} \label{sec:introduction.legal} @@ -250,18 +278,20 @@ anzuwenden ist. {Diese gedruckte Ausgabe der Anleitung ist davon und von den in den Dateien \File{lppl.txt} und \File{lppl-de.txt} des \KOMAScript-Pakets festgeschriebenden rechtlichen Bedingungen ausdrücklich ausgenommen.} +}{} \section{Installation} \label{sec:introduction.installation} -Die Installation von {\KOMAScript} wird in der Datei \File{INSTALLD.txt} -beschrieben. Beachten Sie dazu auch die jeweilige Dokumentation zu der -installierten \TeX-Distribution. +Die Installation von {\KOMAScript} wird in der Datei \File{INSTALLD.txt}, die +Teil jeder \KOMAScript-Verteilung ist, beschrieben. Beachten Sie dazu auch die +jeweilige Dokumentation zur installierten \TeX-Distribution. \section{Fehlermeldungen, Fragen, Probleme} \label{sec:introduction.errors} +\iffree{% Sollten Sie der Meinung sein, dass Sie einen Fehler in der Anleitung, einer der \KOMAScript-Klassen, einem der \KOMAScript-Pakete oder einem anderen Bestandteil von \KOMAScript{} gefunden haben, so sollten Sie @@ -273,10 +303,11 @@ Problem auch dann noch vorhanden ist. Wenn es sich nicht um einen Fehler in der Dokumentation handelt und der Fehler oder das Problem nach einem Update noch immer auf"|tritt, erstellen Sie bitte wie in \cite{DANTE:FAQ} angegeben ein minimales -Beispiel. Ein solches Beispiel sollte nur einen minimalen Text und -nur die Pakete und Definitionen enthalten, die für die Verdeutlichung -des Fehlers unbedingt notwendig sind. Auf exotische Pakete sollte -möglichst ganz verzichtet werden. +Beispiel. Gehen Sie dazu wie unten beschrieben vor. +%Ein solches Beispiel sollte nur einen minimalen Text und +%nur die Pakete und Definitionen enthalten, die für die Verdeutlichung +%des Fehlers unbedingt notwendig sind. Auf exotische Pakete sollte +%möglichst ganz verzichtet werden. Oft lässt sich ein Problem durch ein minimales Beispiel so weit eingrenzen, dass bereits vom Anwender selbst festgestellt werden kann, ob es sich um einen Anwendungsfehler handelt oder nicht. Auch ist so @@ -336,9 +367,21 @@ oder dem Forum auf \cite{homepage}, stellen wollen. Auch in diesem Fall sollten Sie obige Punkte beachten, in der Regel jedoch auf die \File{log}-Datei verzichten. Fügen Sie stattdessen nur die Liste der Pakete und Paketversionen aus der \File{log}-Datei an. Im Falle einer Fehlermeldung -zitieren Sie diese ebenfalls aus der \File{log}-Datei. - - +zitieren Sie diese ebenfalls aus der \File{log}-Datei. }{% +Die Autoren haben sich größte Mühe gegeben, Fehler in diesem Buch zu +vermeiden. Die Beispiele, die in diesem Buch abgedruckt sind, wurden +größtenteils während ihrer Entstehung getestet. Leider sind trotzdem weder +orthografische noch inhaltliche Fehler komplett auszuschließen. Sollten Sie +Fehler in diesem Buch finden, so wenden Sie sich bitte an die Autoren. Sie +können diese per E-Mail über die \KOMAScript-Support-Adresse, +\mbox{komascript@gmx.info}, oder über \cite{homepage} erreichen. + +Wenn Sie hingegen Fehler in \KOMAScript{} selbst melden wollen, so verwenden +Sie bitte die dafür vorgesehene Prozedur. Diese ist in der Einleitung der +freien \KOMAScript-Anleitung, die jeder korrekten Verteilung von \KOMAScript{} +beiliegt, ausführlich erklärt. } + +\iffree{% \section{Weitere Informationen} \label{sec:introduction.moreinfos} @@ -349,9 +392,11 @@ gehen über die Vermittlung von Grundwissen hinaus und sind daher\iffree{}{ des \KOMAScript{} Documentation Projects \cite{homepage} finden Sie jedoch weiterführende Beispiele. Diese sind für fortgeschrittene \LaTeX-Anwender konzipiert. Für Anfänger sind sie wenig oder nicht geeignet. +}{} \endinput %%% Local Variables: %%% mode: latex +%%% coding: iso-latin-1 %%% TeX-master: "../guide.tex" %%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/labelbasic.lco b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/labelbasic.lco new file mode 100644 index 00000000000..7dd29182cfc --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/labelbasic.lco @@ -0,0 +1,91 @@ +% +% labelbasic.lco +% +% Copyright(c) Markus Kohm <komascript@gmx.de>, 2006 +% +%----------------------------------------------------------------------------- + + + +% This must be line 10!!! +\ProvidesFile{labelbasic.lco} + [2006/12/14 v0.1 unsupported LCO-file] + +\newcommand*{\printlabel}[4][]{% + \begin{letter}{#2}% + \KOMAoptions{% + addrfield=true,% + backaddress=false,% + fromlogo=false,% + foldmarks=false% + }% + + \firsthead{} + \firstfoot{} + + \setkomavar{location}{} + + \removereffields + \setkomavar{date}{} + + \setkomavar{signature}{} + + #1 + + \setlengthtoplength{\@tempdima}{labelsheettopmargin} + \addtolengthplength[#3]{\@tempdima}{labelheight} + \addtolengthplength[-]{\@tempdima}{labelheight} + \addtolengthplength[#3]{\@tempdima}{labelvoffset} + \addtolengthplength[-]{\@tempdima}{labelvoffset} + \@setplength{toaddrvpos}{\@tempdima} + + \setlengthtoplength{\@tempdima}{labelsheetleftmargin} + \addtolengthplength[#4]{\@tempdima}{labelwidth} + \addtolengthplength[-]{\@tempdima}{labelwidth} + \addtolengthplength[#4]{\@tempdima}{labelhoffset} + \addtolengthplength[-]{\@tempdima}{labelhoffset} + \@setplength{toaddrhpos}{\@tempdima} + + \@setplength{toaddrindent}{\useplength{labelmargin}} + \@setplength{toaddrwidth}{\useplength{labelwidth}} + \@addtoplength[-]{toaddrwidth}{\useplength{labelmargin}} + \@setplength{toaddrheight}{\useplength{labelheight}} + + \@setplength{refvpos}{0pt} + \@setplength{refaftervskip}{-5\baselineskip} + \@setplength{sigbeforevskip}{-5\baselineskip} + + \opening{} + \closing{} + + \end{letter}% +} + +\@newplength{labelheight} +\@newplength{labelhoffset} +\@newplength{labelmargin} +\@newplength{labelsheetleftmargin} +\@newplength{labelsheettopmargin} +\@newplength{labelvoffset} +\@newplength{labelwidth} + +\newcommand*{\savelabel}[3][]{% + \AtEndDocument{\let\@printlabel\printlabel}% + \if@filesw + \begingroup + \let\\\@undefined + \DeclareRobustCommand*{\\}{\string\\}% + \usekomavar[\edef\toname]{toname}% + \usekomavar[\edef\toaddress]{toaddress}% + \protected@write\@auxout{% + \let\@printlabel\relax + }{% + \@printlabel[{#1}]{\toname\string\\\toaddress}{#2}{#3}% + }% + \endgroup + \fi +} + +\newcommand*{\@printlabel}[4][]{} + +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/linkalias.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/linkalias.tex new file mode 100644 index 00000000000..e80cfcae143 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/linkalias.tex @@ -0,0 +1,63 @@ +% ====================================================================== +% linkalias.tex +% Copyright (c) Markus Kohm, 2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% linkalias.tex +% Copyright (c) Markus Kohm, 2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Link Aliase, die für die freie Version der Anleitung benötigt werden. +% + +\ProvidesFile{linkalias.tex}[2008/09/23 link aliases for the free version] + +\makeatletter +\newcommand*{\lalias}[2]{% + \scr@ifundefinedorrelax{r@#1}{% + \expandafter\let\csname r@#1\expandafter\endcsname\csname r@#2\endcsname + }{}% +} +\makeatother + +\lalias{desc:maincls-experts.cmd.ifthispageodd}{sec:maincls-experts.addInfos} +\lalias{desc:maincls-experts.cmd.rightmark}{sec:maincls-experts.addInfos} +\lalias{desc:maincls-experts.cmd.the}{sec:maincls-experts.experts} +\lalias{desc:maincls-experts.option.parskip}{sec:maincls-experts.addInfos} +\lalias{desc:maincls-experts.env.addmargin*}{sec:maincls-experts.addInfos} +\lalias{desc:maincls-experts.cmd.marginpar}{sec:maincls-experts.addInfos} +\lalias{desc:maincls-experts.cmd.AfterBibliographyPreamble}{sec:maincls-experts.addInfos} +\lalias{desc:maincls-experts.option.fontsize}{sec:maincls-experts.addInfos} +\lalias{desc:maincls-experts.cmd.raggedsection}{sec:maincls-experts.coexistence} + +\lalias{desc:scrlttr2.cmd.setkomafont}{desc:maincls.cmd.setkomafont} +\lalias{desc:scrlttr2.option.version}{desc:maincls.option.version} +\lalias{desc:scrlttr2.cmd.footnote}{desc:maincls.cmd.footnote} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/preface.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/preface.tex new file mode 100644 index 00000000000..3fc1274169c --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/preface.tex @@ -0,0 +1,100 @@ +% +% Copyright (c) Markus Kohm, 2008 +% Alle Rechte vorbehalten! +% + +\ProvidesFile{preface.fex}[2008/10/31 Vorwort zum KOMA-Script-Buch] + +\addchap{Vorwort zur 3.~\texorpdfstring{Auf"|lage}{Auflage}} + +\iffree{}{Der Zufall will es, dass ich mit der 3.~Auf"|lage dieses Buches auch + bei \KOMAScript~3 angelangt bin.} \KOMAScript~3 unterscheidet sich in +vielerlei Hinsicht von \KOMAScript~2.5 bis 2.98 -- jedenfalls solange man sich +auf die dokumentierten Möglichkeiten beschränkt. Daher werden auch diejenigen, +die bereits frühere Auf"|lagen kennen, in \iffree{dieser Anleitung}{diesem + Buch} sehr viel Neues finden. Aber nicht nur wegen der neuen Möglichkeiten +unterscheidet sich die neue Auf"|lage von früheren. + +In den vergangenen Jahren haben mich einige Kommentare von Lesern +erreicht. Obwohl die Mehrheit insgesamt doch recht zufrieden schien, gab es +auch die eine oder andere kritische Stimme. Während einigen die Anleitung zu +kurz war, war sie anderen wiederum zu ausführlich. Zwar ist es nicht möglich, +solch gegensätzliche Kritiken komplett umzusetzen. Mit der Auf"|teilung in +mehrere Teile hoffe ich aber, sie in Form eines Kompromisses doch aufgegriffen +zu haben. + +Mancher bemängelte, dass das Kapitel über die Briefklasse zu wenige Beispiele +enthielte. Ein komplettes Beispiel war tatsächlich erst am Ende des +Kapitels zu finden. Diese Kritik habe ich aufgegriffen. In dem komplett +überarbeiteten Kapitel stehen nun vollständige Briefbeispiele im +Vordergrund. Durch die Weiterentwicklung von eher minimalen zu +immer ausführlicheren Beispielen kann der Leser Unterschiede zwischen +Voreinstellungen und selbst gewählten Konfigurationsmöglichkeiten direkt +sehen. Die vielen Abbildungen ermöglichen dem Anwender außerdem, direkt +herauszugreifen, was er als Endergebnis wünscht, und dann die Einstellungen +aus dem zugehörigen abgedruckten Quellcode zu übernehmen und anzupassen. + +Einige beklagten, dass die Nutzung der Briefklasse unbedingt erforderte, auch +die Anleitung zu den Hauptklassen heranzuziehen. Auch diese Kritik habe ich +\iffree{in der Buchfassung}{} aufgegriffen. Jedes Kapitel behandelt +\iffree{dort}{} das jeweilige Thema nun in sich abgeschlossen. Wird etwas von +den in einem Kapitel behandelten Klassen oder Paketen bereitgestellt, wird für +die Erklärung dieser Möglichkeit nicht mehr insgesamt auf andere Kapitel +verwiesen. Lediglich für größere Beispiele, weiterführende Informationen, eine +Abbildung oder eine Tabelle kann es einmal notwendig sein, einem Querverweis +in ein anderes Kapitel zu folgen.\iffree{ In der vorliegenden freien Version + der Anleitung habe ich darauf jedoch verzichtet, um die PDF-Datei kleiner zu + halten. Durch die Möglichkeit, per Hyperlink an die referenzierte Stelle zu + springen, sollte dies jedoch eine vertretbare Einschränkung sein.}{} + +Die Hauptkritik betraf die Unterteilung der Kapitel. Zwar war die Unterteilung +so aufgebaut, dass die Dinge, die am Anfang eines Dokuments stehen, auch +am Anfang des Kapitels zu finden sind. Allerdings betraf dies auch die +Klassenoptionen, weil diese nun einmal im Dokument ganz zu Anfang angegeben +werden. Ich muss mir die Kritik gefallen lassen, dass ich dabei nicht +berücksichtigt hatte, dass die Optionen zwar im Kopf des Dokuments gesetzt +werden, ein Autor viele der Optionen aber erst dann setzt, wenn er sich mit +dem zugehörigen Thema befasst. Deshalb sind die Kapitel nun komplett +thematisch geordnet. Das führte nebenbei auch zu einer flacheren Hierarchie in +der Gliederung. + +Neben diesen Änderungen, die nur den Lesern auf"|fallen werden, die bereits +frühere Auf"|lagen studiert haben, gibt es auch eine ganz augenfällige +Änderung. \iffree{Das Buch}{Die Anleitung} wurde wieder einmal erheblich +dicker. Der gesteigerte Umfang ist zum einen in der erwähnten Umsetzung der +Leserkritik begründet. Er ist aber auch den erheblich erweiterten +Möglichkeiten von \KOMAScript~3 geschuldet. + +Eine erfreuliche Kritik zu den früheren Auf"|lagen war, dass es mir gelungen +sei, eine eigentlich trockene Anleitung so mit Hintergrundwissen zu vermischen +und in eine Sprache zu fassen, dass ein lesenswertes Buch entstanden sei. Ich +wünsche dem geneigten Leser, dass mir dies erneut gelungen ist. + +\iffree{Leser dieser freien Bildschirm-Version müssen allerdings mit einigen + Einschränkungen leben. So sind einige Informationen -- hauptsächliche solche + für fortgeschrittene Anwender oder die dazu geeignet sind, aus einem + Anwender einen fortgeschrittenen Anwender zu machen -- der Buchfassung + vorbehalten. Das führt auch dazu, dass einige Links in dieser Anleitung + lediglich zu einer Seite führen, auf der genau diese Tatsache erwähnt + ist.}{} + +Zum Schluss möchte ich mich bei allen bedanken, die an der Entstehung dieses +Buches beteiligt waren. Besonders erwähnt seien mein Co-Autor, +Jens-Uwe~Morawski, die Beta-Tester und die Testleser. Darüber hinaus gilt mein +Dank DANTE e.V\kern-.18em. und \iffree{Lehmanns Media}{dem Verlag}, namentlich +Klaus Höppner und Christoph Kaeder, die \iffree{es überhaupt erst möglich + gemacht haben, dass niemand mehr diese Anleitung ausdrucken muss, sondern + mit \cite{book:komascript} eine um rund 200~Seiten umfangreichere Version + dieser Anleitung in gebundener Form verfügbar ist.}{ein Erscheinen dieses + Buches erst ermöglicht haben.} + +\bigskip\noindent +Markus Kohm, Neckarhausen im \iffree{September}{August} 2008 +\endinput + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "../guide.tex" +%%% End: + diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/scraddr.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scraddr.tex index 5feb0969e58..066c4de232e 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/german/scraddr.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scraddr.tex @@ -1,6 +1,6 @@ % ====================================================================== % scraddr.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scraddr.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ====================================================================== -\ProvidesFile{scraddr.tex}[2005/08/10 KOMA-Script guide (chapter: scraddr)] +\ProvidesFile{scraddr.tex}[2008/07/31 KOMA-Script guide (chapter: scraddr)] \chapter{Adressdateien mit \Package{scraddr} erschließen}% \labelbase{scraddr}% @@ -56,14 +56,15 @@ Das Paket \Package{scraddr} ist eine kleine Beigabe zur \KOMAScript-Briefklasse. Ziel ist, die Benutzung von Adressdateien zu vereinfachen und ihre Anwendung flexibler zu gestalten. Im Grunde stellt das Paket nur einen Lademechanismus für Adressdateien bereit, die aus -\Macro{adrentry}- und neueren \Macro{addrentry}-Einträgen bestehen, wie sie im -vorhergehenden Kapitel beschrieben sind. +\Macro{adrentry}- und neueren \Macro{addrentry}-Einträgen bestehen, wie sie in +\autoref{cha:scrlttr2} ab \autopageref{desc:scrlttr2.cmd.adrentry} beschrieben +sind. + \begin{Declaration} \Macro{InputAddressFile}\Parameter{Dateiname} \end{Declaration}% \BeginIndex{Cmd}{InputAddressFile}% -% Der Befehl \Macro{InputAddressFile} ist der zentrale Ladebefehl von \Package{scraddr}. Er erwartet als obligatorisches Argument den @@ -93,13 +94,15 @@ sehr viel \TeX-Speicher kostet. \IndexCmd{addrchar}% Der Aufbau der Adresseinträge in der Adressdatei wurde in \autoref{sec:scrlttr2.addressFile} ab -\autopageref{desc:scrlttr2.macro.adrentry} ausführlich besprochen. Die +\autopageref{desc:scrlttr2.cmd.adrentry} ausführlich besprochen. Die ebenfalls dort erwähnte Unterteilung der Adressdatei mit Hilfe von \Macro{adrchar} oder \Macro{addrchar} hat für \Package{scraddr} keine Bedeutung und wird vom Paket ignoriert. Die Zugriffsbefehle sind mit englischen, den Argumenten entsprechenden, Bezeichnungen versehen. + + \begin{Declaration} \Macro{Name}\Parameter{Kürzel}\\ \Macro{FirstName}\Parameter{Kürzel}\\ @@ -114,9 +117,8 @@ Bezeichnungen versehen. \end{Declaration}% \BeginIndex{Cmd}{Name}\BeginIndex{Cmd}{FirstName}\BeginIndex{Cmd}{LastName}% \BeginIndex{Cmd}{Address}\BeginIndex{Cmd}{Telephone}\BeginIndex{Cmd}{FreeI}% -\BeginIndex{Cmd}{FreeII}\BeginIndex{Cmd}{FreeIII}\BeginIndex{Cmd}{FreeIV} +\BeginIndex{Cmd}{FreeII}\BeginIndex{Cmd}{FreeIII}\BeginIndex{Cmd}{FreeIV}% \BeginIndex{Cmd}{Comment}% -% Der Zugriff erfolgt anhand des Kürzels im letzten Argument eines Eintrags, das heißt Argument Nummer 8 für \Macro{adrentry}-Einträge beziehungsweise Argument Nummer 9 @@ -128,21 +130,22 @@ wobei jedoch keine Umlaute benutzt werden dürfen. Weiterhin ist zu beachten, dass bei mehrmaligem Auf"|treten eines Kürzels in den Einträgen die Angaben beim -letzten Auf"|treten die gültigen sind. - +letzten Auf"|treten die gültigen sind.% +% \EndIndex{Cmd}{InputAddressFile}% \EndIndex{Cmd}{Name}\EndIndex{Cmd}{FirstName}\EndIndex{Cmd}{LastName}% \EndIndex{Cmd}{Address}\EndIndex{Cmd}{Telephone}\EndIndex{Cmd}{FreeI}% \EndIndex{Cmd}{FreeII}\EndIndex{Cmd}{FreeIII}\EndIndex{Cmd}{FreeIV}% \EndIndex{Cmd}{Comment}% + \section{Benutzung}\label{sec:scraddr.usage} Um das Paket benutzen zu können, ist eine gültige Adressdatei zu erstellen. Diese, hier \File{lotr.adr} genannt, könnte beispielsweise folgendermaßen aussehen: -\begin{lstlisting} +\begin{lstcode} \addrentry{Beutlin}{Frodo}% {Der Bühl\\ Beutelsend/Hobbingen im Auenland}{}% {Bilbo Beutlin}{Rauchen von Pfeifenkraut}% @@ -155,47 +158,45 @@ folgendermaßen aussehen: {Im Alten Wald}{}% {Goldbeere}{trällern von Nonsensliedern}% {Meister von Wald, Wasser und Berg}{TOM} -\end{lstlisting} +\end{lstcode} Das vierte Argument, die Telefonnummer, wurde hier leer gelassen. -Erstens macht es in dem Zusammenhang keinen Sinn, und zweitens sollte +Erstens hat es in dem Zusammenhang keinen Sinn, und zweitens sollte dies ja auch möglich sein. Mit dem oben beschriebenen Ladebefehl lesen wir die Adressdatei in unser Briefdokument ein: -\begin{lstlisting} +\begin{lstcode}[belowskip=\dp\strutbox] \InputAddressFile{lotr} -\end{lstlisting} +\end{lstcode} Mit Hilfe der vorgestellten Makros können wir dann einen Brief an den alten \textsc{Tom Bombadil} schreiben, in dem wir ihn fragen, ob er sich noch an zwei Gefährten aus alter Zeit erinnern kann. -\begin{lstlisting} +\begin{lstcode}[belowskip=\dp\strutbox] \begin{letter}{\Name{TOM}\\\Address{TOM}} - \opening{Lieber \FirstName{TOM} \LastName{TOM},} + \opening{Lieber \FirstName{TOM} \LastName{TOM},} - oder \FreeIII{TOM}, wie Dich Deine geliebte - \FreeI{TOM} nennt. - Kannst Du Dich noch an einen Herrn \LastName{FRODO}, - genauer gesagt \Name{FRODO}, denn es gab ja auch noch - den Herrn \FreeI{FRODO}, erinnern. - Er war \Comment{FRODO} im dritten Zeitalter und - \FreeIV{FRODO}. - Begleitet wurde er von \Name{SAM}, \Comment{SAM}. + oder \FreeIII{TOM}, wie Dich Deine geliebte \FreeI{TOM} nennt. + Kannst Du Dich noch an einen Herrn \LastName{FRODO}, genauer + gesagt \Name{FRODO}, denn es gab ja auch noch den Herrn + \FreeI{FRODO}, erinnern. Er war \Comment{FRODO} im dritten + Zeitalter und \FreeIV{FRODO}. Begleitet wurde er von + \Name{SAM}, \Comment{SAM}. - Beider Vorlieben waren sehr weltlich. - Der \FirstName{FRODO} genoss das \FreeII{FRODO}, sein - Gefährte schätzte eine gute Mahlzeit mit \FreeII{SAM}. + Beider Vorlieben waren sehr weltlich. Der \FirstName{FRODO} + genoss das \FreeII{FRODO}, sein Gefährte schätzte eine gute + Mahlzeit mit \FreeII{SAM}. - Weißt du noch? Mithrandir hat Dir bestimmt viel - von ihnen erzählt. - \closing{\glqq O Frühling und Sommerzeit - und danach wieder Frühling!\\ - O Wind auf dem Wasserfall - und Lachen des Laubes!\grqq} + Weißt du noch? Mithrandir hat Dir bestimmt viel von ihnen + erzählt. + \closing{"`O Frühling und Sommerzeit + und danach wieder Frühling!\\ + O Wind auf dem Wasserfall + und Lachen des Laubes!"'} \end{letter} -\end{lstlisting} +\end{lstcode} Die in \Macro{opening} verwendete Zusammensetzung aus \Macro{FirstName}\Parameter{Kürzel} und \Macro{LastName}\Parameter{Kürzel} kann auch direkt mittels \Macro{Name}\Parameter{Kürzel} erhalten werden. @@ -216,8 +217,8 @@ hierzu finde sich im nächsten Abschnitt. \section{Paketoptionen für Warnungen} -Wie im vorherigen Abschnitt erwähnt, ist die Benutzung des Zugriffbefehls -\Macro{FreeIV} bei \Macro{adrentry}-Einträgen nicht zulässing. Wie +Wie im vorherigen Abschnitt erwähnt, ist die Benutzung des Zugriffsbefehls +\Macro{FreeIV} bei \Macro{adrentry}-Einträgen nicht zulässig. Wie \Package{scraddr} darauf reagiert, ist allerdings durch Paketoptionen konfigurierbar. @@ -228,9 +229,10 @@ konfigurierbar. \Option{adrFreeIVwarn}\\ \Option{adrFreeIVstop} \end{Declaration} -% -\BeginIndex{Option}{adrFreeIVempty}\BeginIndex{Option}{adrFreeIVshow}% -\BeginIndex{Option}{adrFreeIVwarn}\BeginIndex{Option}{adrFreeIVstop}% +\BeginIndex{Option}{adrFreeIVempty}% +\BeginIndex{Option}{adrFreeIVshow}% +\BeginIndex{Option}{adrFreeIVwarn}% +\BeginIndex{Option}{adrFreeIVstop}% Diese vier Optionen erlauben die Auswahl aus vier verschiedenen Reaktionen zwischen \emph{Ignorieren} bis \emph{Abbruch} falls bei einem \Macro{adrentry}-Eintrag der Zugriffsbefehl \Macro{FreeIV} verwendet wird: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbase.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbase.tex new file mode 100644 index 00000000000..c591afe687f --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbase.tex @@ -0,0 +1,1139 @@ +% ====================================================================== +% scrbase.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% scrbase.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Package scrbase for Package and Class Authors +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Paket scrbase für Paket- und Klassenautoren +% Verwaltet von Markus Kohm +% +% ====================================================================== + +\ProvidesFile{scrbase.tex}[2008/07/31 KOMA-Script package scrbase] + +\chapter{Grundlegende Funktionen im Paket \Package{scrbase}} +\labelbase{scrbase} + +\BeginIndex{Package}{scrbase}% + +Das Paket \Package{scrbase} stellt einige grundlegende Funktionen bereit, die +sich an Autoren von Paketen und Klassen richten. Dabei kann es nicht nur für +Wrapper-Klassen genutzt werden, die ihrerseits eine \KOMAScript-Klasse +laden. Auch Autoren von Klassen, die ansonsten nichts mit \KOMAScript{} zu tun +haben, können von der Funktionalität von \Package{scrbase} profitieren. + +\section{Laden des Pakets} +\label{sec:scrbase.loadit} + +Während Anwender ein Paket mit Hilfe von \Macro{usepackage} laden, verwenden +Paket- und Klassenautoren \Macro{RequirePackage}. Autoren von Wrapper-Paketen +nutzen auch \Macro{RequirePackageWithOptions}. Bei Verwendung von +\Macro{RequirePackage} können wie bei \Macro{usepackage} Optionen angegeben +werden. Demgegenüber erhält das Paket bei \Macro{RequirePackageWithOptions} +die Optionen, mit denen das Wrapper-Paket geladen wurde. Näheres zu diesen +Anweisungen ist \cite{latex:clsguide} zu entnehmen. + +Das Paket \Package{scrbase} benötigt intern die Funktionalität des Pakets +\Package{keyval}\IndexPackage{keyval}. Diese kann auch vom Paket +\Package{xkeyval} zur Verfügung gestellt werden. Bei Bedarf lädt +\Package{scrbase} selbst \Package{keyval}. + +Das Paket \Package{keyval} erlaubt es, Schlüssel zu definieren und diesen +Werten zuzuweisen. Auch die Optionen, die \Package{scrbase} bereitstellt, +verwenden die \Package{keyval}-Syntax: \PName{Schlüssel}\texttt{=}\PName{Wert}. + +\BeginIndex{Option}{internalonly~=\PName{Wert}}% +\begin{Declaration} + \KOption{internalonly}\PName{Wert} +\end{Declaration} +Von \Package{scrbase} werden einige Verzweigungsanweisungen +bereitgestellt. Dabei verwendet es primär die Bezeichnungen +\Macro{scr@\PName{Anweisungsname}}. Es handelt sich somit um interne +Anweisungen. Diese werden auch intern von \KOMAScript{} verwendet. Paket- und +Klassenautoren können diese Anweisungen ebenfalls verwenden, sollten sie aber +nicht umdefinieren. Da einige dieser Anweisungen auch für Benutzer nützlich +sein können, werden die gleichen Anweisungen normalerweise auch als +\Macro{\PName{Anweisungsname}} bereitgestellt. Da eventuell andere Pakete +gleichnamige Anweisungen mit anderer Syntax bereitstellen könnten und es so zu +Konflikten kommen könnte, kann der Anwender die Definition von +\Macro{\PName{Anweisungsname}} verhindern. Dazu gibt er entweder die Option +ohne Wertangabe an. In diesem Fall werden nur die internen +Verzweigungsanweisungen definiert. Oder er gibt genau die Anweisungen, die +nicht definiert werden sollen, als Wert an, wobei er »\Macro{}« durch +»\texttt{/}« ersetzt. + +Paket- und Klassenautoren sollten diese Option normalerweise nicht verwenden. +Anwender können sie mit oder ohne Wertangabe entweder als globale Option bei +\Macro{documentclass} oder per \Macro{PassOptionsToPackage} angeben. +\begin{Example} + Der Anwender will nicht, dass die Anweisungen \Macro{ifVTeX} und + \Macro{ifundefinedorrelax} von \Package{scrbase} definiert werden. Also + verwendet er beim Laden der Klasse: + \begin{lstcode} + \documentclass% + [internalonly=/ifVTeX/ifundefinedorrelax]% + {foo} + \end{lstcode} + Der Klassenname \Class{foo} wird hier als Platzhalter für irgend eine Klasse + verwendet. Die Bedeutungen der Anweisungen \Macro{ifVTeX} und + \Macro{ifundefinedorrelax} sowie weitere Verzweigungsanweisungen sind + \autoref{sec:scrbase.if} zu entnehmen. +\end{Example} +% +\EndIndex{Option}{internalonly~=\PName{Wert}}% + + +\section{Schlüssel als Eigenschaften von Familien und deren Mitgliedern} +\label{sec:scrbase.keyvalue} + +Wie bereits in \autoref{sec:scrbase.loadit} erwähnt, setzt \Package{scrbase} +bei Schlüsseln und deren Werte auf das Paket \Package{keyval}. Allerdings +erweitert es dessen Funktionalität. Während bei \Package{keyval} ein Schlüssel +einer Familie gehört, kennt \Package{keyval} zu jeder Familie auch noch +Familienmitglieder. Ein Schlüssel kann dann sowohl einer Familie als auch +einem oder mehreren Familienmitgliedern gehören. Außerdem kann ein Wert einem +Schlüssel eines Familienmitglieds, einem Schlüssel einer Familie oder einem +Schlüssel aller Familienmitglieder zugewiesen werden. + +\BeginIndex{Cmd}{DefineFamily}% +\BeginIndex{Cmd}{DefineFamilyMember}% +\begin{Declaration} + \Macro{DefineFamily}\Parameter{Familienname}\\ + \Macro{DefineFamilyMember}\OParameter{Mitglied}\Parameter{Familienname} +\end{Declaration} +\Package{scrbase} muss aus verschiedenen Gründen die Mitglieder einer Familie +kennen. Daher ist es notwendig, eine neue Familie zunächst mit +\Macro{DefineFamily} zu definieren und so eine leere Mitgliederliste zu +erzeugen. Ist die Familie bereits definiert, so geschieht schlicht nichts. Es +wird also auch nicht eine bereits existierende Mitgliederliste überschrieben. + +Ein neues Mitglied wird der Familie dann mit \Macro{DefineFamilyMember} +bekannt gegeben. Existiert die Familie nicht, so führt dies zu einer +Fehlermeldung. Existiert das Mitglied bereits, so geschieht nichts. Wird kein +Mitglied angegeben, so bleibt das Mitglied nicht etwa leer, sondern es wird +»\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}« +angenommen. Während des Ladens einer Klasse oder eines Pakets sind +\Macro{@currname} und \Macro{@currext} zusammen der Dateiname. + +Theoretisch wäre es möglich, mit einem leeren optionalen Argument +\PName{Mitglied} auch ein Mitglied ohne Name zu definieren. Dies würde jedoch +der Familie selbst entsprechen. Es wird empfohlen als \PName{Familienname} nur +Buchstaben und Ziffern zu verwenden und das \PName{Mitglied} immer mit einem +anderen Zeichen zu verwenden. Anderenfalls könnte es passieren, dass sich +Mitglieder einer Familie mit Mitgliedern anderer Familien überdecken. + +\Package{scrbase} definiert selbst bereits die Familie »\PValue{KOMA}« und +fügt ihr das Mitglied »\PValue{.scrbase.sty}« hinzu. Grundsätzlich ist die +Familie »\PValue{KOMA}« \KOMAScript{} vorbehalten. Es wird empfohlen für +eigene Pakete den Namen des Gesamtpakets als Familie und den Namen einzelner +Pakete im Gesamtpaket als Mitglied zu verwenden. + +\begin{Example} + Angenommen Sie schreiben ein neues Gesamtpaket »Fleischermeister«. Darin + befinden sich die Pakete \File{Salami.sty}, \File{Mettwurst.sty} und + \File{Krakauer.sty}. Daher entscheiden Sie sich für den Familienname + »\PValue{Fleischermeister}« und fügen in jedem der Pakete die Zeilen + \begin{lstcode} + \DefineFamily{Fleischermeister} + \DefineFamilyMember{Fleischermeister} + \end{lstcode} + ein. Dadurch werden dann beim Laden der Pakete der Familie + »\PValue{Fleischermeister}« je nach Paket eines der drei Mitglieder + »\PValue{.Salami.sty}«, »\PValue{.Mettwurst.sty}« und + »\PValue{.Krakauer.sty}« zugefügt. +\end{Example} +% +\EndIndex{Cmd}{DefineFamilyMember}% +\EndIndex{Cmd}{DefineFamily}% + +\BeginIndex{Cmd}{DefineFamilyKey}% +\begin{Declaration} + \Macro{DefineFamilyKey}\OParameter{Mitglied}\Parameter{Familie}% + \Parameter{Schlüssel}\OParameter{Säumniswert}\Parameter{Aktion} +\end{Declaration} +Mit dieser Anweisung wird ein \PName{Schlüssel} definiert. Ist ein +\PName{Mitglied} angegeben, so ist der \PName{Schlüssel} eine Eigenschaft +dieses Mitglieds der angegebenen \PName{Familie}Familie. Ist kein Mitglied +angegeben, so wird wieder das Mitglied +»\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}« angenommen. Wird +später dem \PName{Schlüssel} ein Wert zugewiesen, so wird \PName{Aktion} +ausgeführt, wobei der Wert als Parameter übergeben wird. Innerhalb von +\PName{Aktion} steht also »\lstinline{#1}« für den übergebenen Wert. Wurde +kein Wert übergeben, so wird stattdessen der \PName{Säumniswert} +eingesetzt. Falls kein \PName{Säumniswert} angegeben wird, kann später der +\PName{Schlüssel} nur mit Wertübergabe verwendet werden. +\begin{Explain} + \phantomsection\label{explain:scrbase.macro.DefineFamilyKey}% + Letztlich führt + \begin{lstcode}[escapeinside=»«] + \DefineFamilyKey[»\PName{Mitglied}«]{»\PName{Familie}«}{»\PName{Schlüssel}«} + [»\PName{Säumniswert}«]{»\PName{Aktion}«} + \end{lstcode} +\iffalse% oder so + \begin{flushleft}\begin{tabular}{l@{}l} + \Macro{DefineFamilyKey}&\OParameter{Mitglied}\Parameter{Familie}% + \Parameter{Schlüssel}\\ + &\OParameter{Säumniswert}\Parameter{Aktion} + \end{tabular}\end{flushleft} +\fi + zu dem Aufruf + \begin{lstcode}[belowskip=\dp\strutbox, + moretexcs={define@key},escapeinside=»«] + \define@key{»\PName{Familie\,Mitglied}«}{»\PName{Schlüssel}«} + [»\PName{Säumniswert}«]{»\PName{Aktion}«} + \end{lstcode} +\iffalse% oder so + \begin{flushleft}\begin{tabular}{l@{}l} + \Macro{define@key}&\Parameter{Familie\,Mitglied}% + \Parameter{Schlüssel}\\ + &\OParameter{Säumniswert}\Parameter{Aktion} + \end{tabular}\end{flushleft} +\fi + wobei \Macro{define@key} im \Package{keyval}-Paket\IndexPackage{keyval} + definiert ist (siehe \cite{package:keyval}). +\iffalse% Umbruchkorrektur + Prinzipiell könnte daher dem + Schlüssel eines Familienmitglieds per + \begin{lstcode}[belowskip=\dp\strutbox, + moretexcs={setkeys},escapeinside=»«] + \setkeys{»\PName{Familie\,Mitglied}«}{»\PName{Schlüssel}«=»\PName{Wert}«} + \end{lstcode} +\iffalse% oder so + \begin{flushleft}\begin{tabular}{l@{}l} + \Macro{setkeys}&\Parameter{Familie\,Mitglied}\Parameter{Schlüssel=Wert} + \end{tabular}\end{flushleft} +\fi + ein Wert zugewiesen werden. +\fi +\end{Explain} +\begin{Example} + Nehmen wir an, jedes der drei Pakete aus dem letzten Beispiel soll einen + Schlüssel \PValue{Aufschnitt} erhalten. Wird dieser aufgerufen, so soll in + jedem der Pakete entsprechend dem Aufrufwert ein Schalter gesetzt + werden. Für das Paket \Package{Salami} könnte das beispielsweise so + aussehen: + \begin{lstcode} + \newif\if@Salami@Aufschnitt + \DefineFamilyKey{Fleischermeister}% + {Aufschnitt}[true]{% + \expandafter\let\expandafter\if@Salami@Aufschnitt + \csname if#1\endcsname + } + \end{lstcode} + Als Wert sind daher beim Aufruf \PValue{true} oder \PValue{false} + erlaubt. Ein Test auf unerlaubte Werte existiert in diesem Beispiel + nicht. Wird der Schlüssel später verwendet, so muss entweder einer der + erlaubten Werte zugewiesen oder ein Aufruf ohne Wertzuweisung verwendet + werden. In letzterem Fall wird der Säumniswert \PName{true} zugewiesen. + + Für die anderen beiden Pakete kann das fast identisch definiert + werden. Lediglich die Zeichenfolge »\texttt{Salami}« ist jeweils zu + ersetzen. +\end{Example} +% +\EndIndex{Cmd}{DefineFamilyKey}% + + +\BeginIndex{Cmd}{FamilyProcessOptions}% +\begin{Declaration} + \Macro{FamilyProcessOptions}\OParameter{Mitglied}\Parameter{Familie} +\end{Declaration} +Grundsätzlich ist die Erweiterung der Schlüssel von Familien auf Familien +und Familienmitglieder dazu gedacht, dass Schlüssel beziehungsweise die +Wertzuweisung an Schlüssel als ganz normale Klassen- oder Paketoptionen +verwendet werden kann. Diese Anweisung stellt daher ein Erweiterung von +\Macro{ProcessOptions*} aus dem \LaTeX-Kern dar (siehe +\cite{latex:clsguide}). Dabei verarbeitet die Anweisung nicht nur Optionen, +die mit \Macro{DeclareOption} definiert wurden. Es werden auch alle Schlüssel +eines angegebenen Familienmitglieds abgearbeitet. Wird das optionale Argument +\PName{Mitglied} nicht angegeben, so wird wieder das Mitglied +»\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}« verwendet. + +Eine Besonderheit sind Schlüssel, die nicht einem Familienmitglied, sondern +der Familie selbst zugeordnet sind, bei der also das Mitglied leer geblieben +ist. Diese werden ebenfalls gesetzt und zwar noch bevor der Schlüssel des +Mitglieds gesetzt wird. +\begin{Example} + Wenn in den Paketen aus den zurückliegenden Beispielen die Zeile + \begin{lstcode} + \FamilyProcessOptions{Fleischermeister} + \end{lstcode} + ergänzt wird, so kann der Anwender bereits beim Laden der Pakete, die + Eigenschaft \Option{Aufschnitt} wählen. Wird die Option global, also bei + \Macro{documentclass} angegeben, so wird die Eigenschaft automatisch bei + allen drei Paketen gesetzt, wenn alle drei Pakete geladen werden. +\end{Example} +Es wird darauf hingewiesen, dass bei Paketen globale Optionen vor den lokal +dem Paket zugewiesenen Optionen ausgeführt werden. + +Man kann die Anweisung statt als Erweiterung von \Macro{ProcessOption*} auch +als Erweiterung des \PName{Schlüssel=Wert}-Mechanismus von \Package{keyval} +verstehen. Mit Hilfe von \Macro{FamilyProcessOptions} werden aus +\PName{Schlüssel} oder \PName{Schlüssel=Wert}-Paaren Optionen. +% +\EndIndex{Cmd}{FamilyProcessOptions}% + + +\BeginIndex{Cmd}{FamilyExecuteOptions}% +\begin{Declaration} + \Macro{FamilyExecuteOptions}\OParameter{Mitglied}\Parameter{Familie}% + \Parameter{Optionenliste} +\end{Declaration} +Diese Anweisung stellt ein Erweiterung von +\Macro{ExecuteOptions} aus dem \LaTeX-Kern dar (siehe +\cite{latex:clsguide}). Dabei verarbeitet die Anweisung nicht nur Optionen, +die mit \Macro{DeclareOption} definiert wurden. Es werden auch alle Schlüssel +eines angegebenen Familienmitglieds abgearbeitet. Wird das optionale Argument +\PName{Mitglied} nicht angegeben, so wird wieder das Mitglied +»\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}« verwendet. + +Eine Besonderheit sind Schlüssel, die nicht einem Familienmitglied, sondern +der Familie selbst zugeordnet sind, bei der also das Mitglied leer geblieben +ist. Diese werden ebenfalls gesetzt und zwar noch bevor der Schlüssel des +Mitglieds gesetzt wird. +\begin{Example} + Angenommen, die Option \Option{Aufschnitt} soll in den zurückliegenden + Beispielen bereits als Voreinstellung gesetzt werden, so müssen die Pakete + nur um die Zeile + \begin{lstcode} + \FamilyExecuteOptions{Fleischermeister}{Aufschnitt} + \end{lstcode} + ergänzt werden. +\end{Example} +% +\EndIndex{Cmd}{FamilyExecuteOptions}% + + +\BeginIndex{Cmd}{FamilyOptions}% +\BeginIndex{Cmd}{Family@Options}% +\begin{Declaration} + \Macro{FamilyOptions}\Parameter{Familie}\Parameter{Optionenliste}\\ + \Macro{Family@Options}\Parameter{Familie}\Parameter{Optionenliste}% + \Parameter{Fehleraktion} +\end{Declaration} +Die \PName{Optionenliste} hat dabei die Form: +\begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} + \PName{Schlüssel}\texttt{=}\PName{Wert}\texttt{,}% + \PName{Schlüssel}\texttt{=}\PName{Wert}\dots +\end{tabular}\vskip\dp\strutbox\end{flushleft} +wobei für \PName{Schlüssel}, für die ein Säumniswert definiert ist, die +Wertzuweisung natürlich auch entfallen kann. + +Im Gegensatz zu normalen Optionen, die mit \Macro{DeclareOption} definiert +wurden, können die \PName{Schlüssel} auch noch nach dem Laden der Klasse oder +des Pakets gesetzt werden. Dazu verwendet der Anwender +\Macro{FamilyOptions}. Dabei werden die \PName{Schlüssel} aller Mitglieder der +angegebenen \PName{Familie} gesetzt. Existiert ein \PName{Schlüssel} auch als +Eigenschaft der Familie selbst, so wird dieser Familien-Schlüssel zuerst +gesetzt. Danach folgen die Mitglieder-Schlüssel in der Reihenfolge, in der die +Mitglieder definiert wurden. Existiert ein angegebener \PName{Schlüssel} weder +für die Familie noch für ein Mitglied der Familie, so wird von +\Macro{FamilyOptions} ein Fehler ausgegeben. Bei \Macro{Family@Options} kann +man hingegen die Fehleraktion selbst wählen. Diese interne Anweisung ist +Klassen- und Paketautoren vorbehalten. +\begin{Example} + Sie ergänzen das Fleischermeister-Projekt um ein weiteres Paket + Wurstsalat. Wird dieses Paket verwendet, so sollen alle Wurstpakete zunächst + einmal Aufschnitt produzieren: + % Umbruchkorrektur + \begin{lstcode}[aboveskip=.75\baselineskip] + \ProvidesPackage{Wurstsalat}% + [2008/05/06 nonsense package] + \DefineFamily{Fleischermeister} + \DefineFamilyMember{Fleischermeister} + \FamilyProcessOptions{Fleischermeister}\relax + \FamilyOptions{Fleischermeister}{Aufschnitt} + \end{lstcode} + Sollte noch kein Wurst-Paket geladen sein, so würde nun eine Fehlermeldung + wegen der nicht definierten Option »\Option{Aufschnitt}« ausgegeben. Das + kann vermieden werden, wenn die letzte Zeile in + % Umbruchkorrektur + \begin{lstcode}[moretexcs={Family@Options},aboveskip=.75\baselineskip] + \Family@Options{Fleischermeister}{Aufschnitt}{} + \end{lstcode} + geändert wird. Allerdings produzieren so Wurst-Pakete, die nach + \Package{Fleischwurst} geladen werden, keinen Aufschnitt. Dies kann man + ebenfalls ändern, wenn die letzte Zeile erneut überarbeitet wird: + % Umbruchkorrektur + \begin{lstcode}[moretexcs={Family@Options},aboveskip=.75\baselineskip] + \AtBeginDocument{% + \Family@Options{Fleischermeister}{Aufschnitt}{% + \PackageWarning{Wurstsalat}{% + Wurstsalat benötigt mindestens ein Wurst-Paket}% + }% + }% + \end{lstcode} + Statt auf jegliche Meldung zu verzichten, falls kein Wurst-Paket geladen + ist, wird nun auch gleich noch eine Warnung ausgegeben. +\end{Example} +% +\EndIndex{Cmd}{Family@Options}% +\EndIndex{Cmd}{FamilyOptions}% + +\BeginIndex{Cmd}{FamilyOption}% +\BeginIndex{Cmd}{Family@Option}% +\begin{Declaration} + \Macro{FamilyOption}\Parameter{Familie}% + \Parameter{Option}\Parameter{Werteliste}\\ + \Macro{Family@Option}\Parameter{Familie}% + \Parameter{Option}\Parameter{Werteliste}\Parameter{Fehleraktion} +\end{Declaration} +Neben Optionen, die sich gegenseitig ausschließende Werte besitzen, kann es +auch Optionen geben, die gleichzeitig mehrere Werte annehmen können. Für diese +wäre es bei Verwendung von \Macro{FamilyOptions} notwendig, der Option mehrfach +einen Wert zuzuweisen und dabei die Option selbst mehrfach +anzugeben. Stattdessen kann man einfach mit \Macro{FamilyOption} einer +einzigen \PName{Option} eine ganze \PName{Werteliste} zuweisen. Die +\PName{Werteliste} ist dabei eine durch Komma separierte Liste von Werten: +\begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} + \PName{Wert}\texttt{,}\PName{Wert}\dots +\end{tabular}\vskip\dp\strutbox\end{flushleft} +In diesem Zusammenhang sei darauf hingewiesen, dass die Verwendung eines +Kommas in einem Wert möglich ist, wenn man den Wert in geschweifte Klammern +setzt. Die weiteren Funktionsweise ist der vorhergehenden Erklärung zu +\Macro{FamilyOptions} und \Macro{Family@Options} zu entnehmen. +\begin{Example} + Das Paket \Package{Wurstsalat} soll eine Option bekommen, über die man + weitere Zutaten bestimmen kann. Für jede Zutat wird dabei wieder ein + Schalter gesetzt. + \begin{lstcode} + \newif\if@salatmit@Zwiebeln + \newif\if@salatmit@Gurken + \newif\if@salatmit@Peperoni + \DefineFamilyKey{Fleischermeister}{SalatZusatz}{% + \csname @salatmit@#1true\endcsname + } + \end{lstcode} + Es wurden hier die drei Zutaten »Zwiebeln«, »Gurken« und »Peperoni« + definiert. Eine Fehlerbehandlung für den Fall, dass der Anwender unbekannte + Zutaten fordert, existiert nicht. + + Für einen Salat mit Zwiebeln und Gurken, kann der Anwender + \begin{lstcode} + \FamilyOptions{Fleischermeister}{% + SalatZusatz=Zwiebeln,SalatZusatz=Gurken} + \end{lstcode} + oder einfach + \begin{lstcode} + \FamilyOption{Fleischermeister}% + {SalatZusatz}{Zwiebeln,Gurken} + \end{lstcode} + verwenden. +\end{Example} +% +\EndIndex{Cmd}{Family@Option}% +\EndIndex{Cmd}{FamilyOption}% + +\BeginIndex{Cmd}{FamilyBoolKey}% +\BeginIndex{Cmd}{FamilySetBool}% +\begin{Declaration} + \Macro{FamilyBoolKey}\OParameter{Mitglied}\Parameter{Familie}% + \Parameter{Schlüssel}\Parameter{Schaltername}\\ + \Macro{FamilySetBool}\Parameter{Familie}% + \Parameter{Schlüssel}\Parameter{Schaltername}\Parameter{Wert} +\end{Declaration} +In den vorherigen Beispielen wurden schon mehrfach Schalter gesetzt. Im +Beispiel der Option \Option{Aufschnitt} war es dabei notwendig, dass der +Anwender als Werte \PValue{true} oder \PValue{false} angibt. Es existierte +keine Fehlerbehandlung, falls der Anwender einen falschen Wert verwendet. Da +solche boolschen Schalter ein häufiger Anwendungsfall sind, kann man sie bei +\Package{scrbase} einfach mit \Macro{FamilyBoolKey} definieren. Dabei sind die +Argumente \PName{Mitglied}, \PName{Familie} und \PName{Schlüssel} die gleichen +wie bei \Macro{DefineFamilyKey} (siehe +\autopageref{desc:scrbase.cmd.DefineFamilyKey}). Das Argument +\PName{Schaltername} ist der Name eines Schalter ohne den Präfix +\Macro{if}. Existiert dieser Schalter noch nicht, so wird er automatisch +definiert und mit \PName{false} voreingestellt. Intern verwendet +\Macro{FamilyBoolKey} dann \Macro{FamilySetBool} als \PName{Aktion} für +\Macro{DefineFamilyKey}. Der Säumniswert für eine solche Option ist immer +\PValue{true}. + +\Macro{FamilySetBool} wiederum versteht als \PName{Wert} neben +\PValue{true} auch die Werte \PValue{on} und \PValue{yes} zum Einschalten und +neben \PValue{false} auch die Werte \PValue{off} und \PValue{no} zum +Ausschalten. Wird ein unbekannter Wert übergeben, so wird die Anweisung +\Macro{FamilyUnkownKeyValue} mit den Argumenten \PName{Familie}, +\PName{Schlüssel} und \PName{Wert} aufgerufen. Dadurch wird dann eine +Fehlermeldung über unbekannte Wertzuweisung ausgegeben (siehe auch +\autopageref{desc:scrbase.cmd.FamilyUnkownKeyValue}). +\begin{Example} + Der Schlüssel \Option{Aufschnitt} soll in den Wurstpaketen etwas robuster + definiert werden. Außerdem sollen alle Wurstpakete denselben Schalter + verwenden, so dass entweder alle Wurstpakete Aufschnitt produzieren oder + keines. + \begin{lstcode} + \FamilyBoolKey{Fleischermeister}{Aufschnitt}% + {@Aufschnitt} + \end{lstcode} + Ein Test, ob Aufschnitt produziert wird sähe dann so aus: + \begin{lstcode} + \if@Aufschnitt + ... + \else + ... + \fi + \end{lstcode} + Dies wäre dann in allen drei Wurstpaketen identisch. Damit könnte man + prinzipiell die Eigenschaft »Aufschnitt« auch als Eigenschaft der Familie + definieren: + \begin{lstcode}[moretexcs={define@key}] + \@ifundefined{if@Aufschnitt}{% + \expandafter\newif\csname if@Aufschnitt\endcsname + }{}% + \define@key{Fleischermeister}{Aufschnitt}[true]{% + \FamilySetBool{Fleischermeister}{Aufschnitt}% + {@Aufschnitt}{#1}% + } + \end{lstcode} + oder einfacher + \begin{lstcode} + \FamilyBoolKey[]{Fleischermeister}{Aufschnitt}% + {@Aufschnitt} + \end{lstcode} + unter Ausnutzung des weiterführenden Hinweises auf + \autopageref{explain:scrbase.macro.DefineFamilyKey}, der nicht nur für + \Macro{DefineFamilyKey}, sondern entsprechend auch für \Macro{FamilyBoolKey} + gilt. +\end{Example} +% +\EndIndex{Cmd}{FamilySetBool}% +\EndIndex{Cmd}{FamilyBoolKey} + +\BeginIndex{Cmd}{FamilyNumericalKey}% +\BeginIndex{Cmd}{FamilySetNumerical}% +\begin{Declaration} + \Macro{FamilyNumericalKey}\OParameter{Mitglied}\Parameter{Familie}\\ + \hphantom{\XMacro{FamilyNumericalKey}}% + \Parameter{Schlüssel}\OParameter{Säumniswert}\Parameter{Makroname}% + \Parameter{Werteliste}\\ + \Macro{FamilySetNumerical}\Parameter{Familie}\\ + \hphantom{\XMacro{FamilySetNumerical}}% + \Parameter{Schlüssel}\Parameter{Makroname}\Parameter{Werteliste}% + \Parameter{Wert} +\end{Declaration} +% +Während Schalter nur zwei Werte annehmen können, gibt es auch Schlüssel, die +mehrere Werte kennen. So kann beispielsweise eine Ausrichtung nicht nur links +oder nicht links, sondern beispielsweise links, mittig oder rechts +sein. Intern unterscheidet man solche Einstellungen dann gerne mit Hilfe von +\Macro{ifcase}. Diese \TeX-Anweisung erwartet wiederum einen nummerischen +Wert. Daher heißt bei \Package{scrbase} die Anweisung, mit der man via +\PName{Schlüssel} einem Makro eine Definition zuweisen kann, entsprechend +\Macro{FamilyNumericalKey}. Die \PName{Werteliste} hat dabei die Form +\begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} + \Parameter{Wert}\Parameter{Definition}\texttt{,}% + \Parameter{Wert}\Parameter{Definition}\texttt{,}% + \dots +\end{tabular}\vskip\dp\strutbox\end{flushleft} +Über diese \PName{Werteliste} werden so nicht nur die erlaubten Werte für den +\PName{Schlüssels} angegeben. Für jeden erlaubten \PName{Wert} wird auch +gleich angegeben, wie bei Verwendung desselben das Makro +\Macro{\PName{Makroname}} definiert werden soll. Üblicherweise werden als +\PName{Definition} schlicht Zahlenwerte angegeben. Es sind aber auch andere +Angaben möglich. Derzeit gibt es aber die Einschränkung, dass +\PName{Definition} voll expandierbar sein muss und bei der Zuweisung auch +expandiert wird. +\begin{Example} + Die Wurst für den Wurstsalat kann unterschiedlich geschnitten werden. So + wäre es denkbar, dass der Aufschnitt einfach ungeschnitten bleibt oder in + grobe oder feine Streifen geschnitten werden soll. Diese Information soll in + der Anweisung \Macro{Schnitt} gespeichert werden. + \begin{lstcode} + \FamilyNumericalKey{Fleischermeister}% + {SalatSchnitt}{Schnitt}{% + {Kein}{Kein},{Nicht}{Kein},% + {Grob}{Grob},% + {Fein}{Fein}% + } + \end{lstcode} + Dass nicht geschnitten werden soll, kann in diesem Fall vom Anwender sowohl + mit + \begin{lstcode} + \FamilyOptions{Fleischermeister}{SalatSchnitt=Kein} + \end{lstcode} + als auch mit + \begin{lstcode} + \FamilyOptions{Fleischermeister}{SalatSchnitt=Nicht} + \end{lstcode} + angegeben werden. In beiden Fällen würde \Macro{Schnitt} mit dem Inhalt + \PValue{Kein} definiert. Es kann durchaus sinnvoll sein, wie in diesem + Beispiel dem Anwender mehrere Werte für denselben Zweck anzubieten. + + Nun ist es sehr wahrscheinlich, dass die Schnittart nicht ausgegeben, + sondern später ausgewertet werden soll. In diesem Fall sind die textuellen + Definitionen aber eher unpraktisch. Definiert man den Schlüssel hingegen als + \begin{lstcode} + \FamilyNumericalKey{Fleischermeister}% + {SalatSchnitt}{Schnitt}{% + {Kein}{0},{Nicht}{0},% + {Grob}{1},% + {Fein}{2}% + } + \end{lstcode} + so kann später einfach in der Form + \begin{lstcode} + \ifcase\Schnitt + % ungeschnitten + \or + % grob geschnitten + \else + % fein geschnitten + \fi + \end{lstcode} + unterschieden werden. +\end{Example} +Intern verwendet \Macro{FamilyNumericalKey} wiederum \Macro{DefineFamilyKey} +mit der Anweisung \Macro{FamilySetNumerical}. Wird an einen solchen Schlüssel +ein unbekannter Wert übergeben, so wird von \Macro{FamilySetNumerical} die +Anweisung \Macro{FamilyUnkownKeyValue} mit den Argumenten \PName{Familie}, +\PName{Schlüssel} und \PName{Wert} aufgerufen. Dadurch wird dann eine +Fehlermeldung über unbekannte Wertzuweisung ausgegeben. +% +\EndIndex{Cmd}{FamilySetNumerical}% +\EndIndex{Cmd}{FamilyNumericalKey}% + +\BeginIndex{Cmd}{FamilyUnkownKeyValue}% +\BeginIndex{Cmd}{FamilyElseValues}% +\begin{Declaration} + \Macro{FamilyUnkownKeyValue}\Parameter{Familie}\Parameter{Schlüssel}% + \Parameter{Wert}\Parameter{Werteliste}\\ + \Macro{FamilyElseValues} +\end{Declaration} +Die Anweisung \Macro{FamilyUnkownKeyValue} gibt eine Fehlermeldung über einen +unbekannten Wert für einen bekannten Schlüssel aus. Als \PName{Werteliste} +wird dabei eine durch Komma separierte Liste von erlaubten Werten der Form +\begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} + `\PName{Wert}'\texttt{,} `\PName{Wert}' \dots +\end{tabular}\vskip\dp\strutbox\end{flushleft} +erwartet. Darüber hinaus kann die Anweisung \Macro{FamilyElseValues} weitere +erlaubte Werte in der Form +\begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} + , `\PName{Wert}'\texttt{,} `\PName{Wert}' \dots +\end{tabular}\vskip\dp\strutbox\end{flushleft} +enthalten, die dann ebenfalls in der Fehlermeldung mit ausgegeben werden. Die +Anweisungen \Macro{FamilySetBool} und \Macro{FamilySetNumerical} leeren das +Makro \Macro{FamilyElseValues} am Ende automatisch -- unabhängig davon, ob ein +Fehler zu melden war oder nicht. +\begin{Example} + Für den Aufschnitt soll nun zusätzlich wählbar sein, ob er grob oder + fein geschnitten werden soll. Dabei ist grob die Voreinstellung, die auch + dann verwendet werden soll, wenn nicht angegeben wird, wie der Aufschnitt zu + schneiden ist. + \begin{lstcode} + \@ifundefined{if@Feinschnitt}{% + \expandafter + \newif\csname if@Feinschnitt\endcsname}{}% + \@ifundefined{if@Aufschnitt}{% + \expandafter + \newif\csname if@Aufschnitt\endcsname}{} + \DefineFamilyKey{Fleischermeister}% + {Aufschnitt}[true]{% + \ifstr{#1}{fein}{% + \@Aufschnitttrue + \@Feinschnittrue + }{% + \@Feinschnittfalse + \def\FamilyElseValue{, `fein'}% + \FamilySetBool{Fleischermeister}{Aufschnitt}% + {@Aufschnitt}% + {#1}% + }% + }% + \end{lstcode} + Die hierbei verwendete Anweisung \Macro{ifstr} ist in + \autoref{sec:scrbase.if}, \autopageref{desc:scrbase.cmd.ifstr} + erklärt. +\end{Example} +% +\EndIndex{Cmd}{FamilyElseValues}% +\EndIndex{Cmd}{FamilyUnkownKeyValue}% + + +\section{Verzweigungen} +\label{sec:scrbase.if} + +Das Paket \Package{scrbase} stellt eine ganze Reihe von +Verzweigungsanweisungen zur Verfügung. Dabei wird nicht auf die \TeX-Syntax +von Verzweigungen, wie beispielsweise +% Umbruchkorrektur +\begin{lstcode}[belowskip=\dp\strutbox] + \iftrue + ... + \else + ... + \fi +\end{lstcode} +gebaut, sondern es wird die \LaTeX-Syntax mit Argumenten eingesetzt, wie man +sie auch von \LaTeX-Anweisungen wie \Macro{IfFileExists}, +\Macro{@ifundefined}, \Macro{@ifpackageloaded} und vielen weiteren +kennt. Einige Paketautoren ziehen es allerdings vor, die \TeX-Syntax auch für +Anwender in die \LaTeX-Ebene zu bringen. Da es sich bei den Verzweigungen von +\Package{scrbase} um recht grundlegende Möglichkeiten handelt, ist die +Wahrscheinlichkeit gegeben, dass dabei gleichnamige Anwenderanweisungen +verwendet würden. Dies würde selbst bei eigentlich gleicher Semantik +zwangsläufig zu einem Problem aufgrund der unterschiedlichen Syntax +führen. Deshalb definiert \Package{scrbase} einige dieser Anweisungen zunächst +als interne Anweisungen mit dem Präfix \Macro{scr@}. Für den Anwender werden +dann gleichbedeutende Anweisungen ohne diesen Präfix bereit +gestellt. Letzteres kann jedoch mit Hilfe der Option \Option{internalonly} +(siehe \autoref{sec:scrbase.loadit}, +\autopageref{desc:scrbase.option.internalonly}) verhindert werden. + +Paket- und Klassenautoren sollten wie \KOMAScript{} selbst auch die internen +Namen verwenden. Zur Vollständigkeit sind aber auch die Anwenderanweisungen +angegeben. + +\BeginIndex{Cmd}{scr@ifundefinedorrelax}% +\BeginIndex{Cmd}{ifundefinedorrelax}% +\begin{Declaration} + \Macro{scr@ifundefinedorrelax}% + \Parameter{Anweisungsname}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}\\ + \Macro{ifundefinedorrelax}% + \Parameter{Anweisungsname}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +Diese Anweisung funktioniert prinzipiell wie die Anweisung +\Macro{@ifundefined} aus dem \LaTeX-Kern (siehe \cite{latex:source2e}). Es +wird also der \PName{Dann-Teil} ausgeführt, wenn \PName{Anweisungsname} der +Name einer undefinierten Anweisung oder \Macro{\PName{Anweisungsname}} derzeit +\Macro{relax} ist. Im Unterschied zu der \LaTeX-Kern-Anweisung wird +allerdings \Macro{\PName{Anweisungsname}} nicht als \Macro{relax} definiert, +wenn es zuvor undefiniert war. Bei Verwendung von \eTeX{} wird in diesem Fall +noch nicht einmal Hash-Speicher belegt. +% +\EndIndex{Cmd}{ifundefinedorrelax}% +\EndIndex{Cmd}{scr@ifundefinedorrelax}% + +\BeginIndex{Cmd}{scr@ifpdftex} +\BeginIndex{Cmd}{ifpdftex} +\begin{Declaration} + \Macro{scr@ifpdftex}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil}\\ + \Macro{ifpdftex}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +Wird mit pdf\TeX{} gearbeitet, so wird der \PName{Dann-Teil} ausgeführt, +anderenfalls der \PName{Sonst-Teil}. Dabei ist es unerheblich, ob tatsächlich +eine PDF-Datei ausgegeben werden soll, oder nicht. Diese Unterscheidung ist +nur sehr selten wirklich von Nutzen. In der Regel sollte man eher auf die +gewünschte Anweisung testen. +% +\EndIndex{Cmd}{ifpdftex} +\EndIndex{Cmd}{scr@ifpdftex} + +\BeginIndex{Cmd}{scr@ifVTeX} +\BeginIndex{Cmd}{ifVTeX} +\begin{Declaration} + \Macro{scr@ifVTeX}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil}\\ + \Macro{ifVTeX}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +Wird mit V\TeX{} gearbeitet, so wird der \PName{Dann-Teil} ausgeführt, +anderenfalls der \PName{Sonst-Teil}. Diese Unterscheidung ist nur sehr selten +wirklich von Nutzen. In der Regel sollte man eher auf die gewünschte Anweisung +testen. +% +\EndIndex{Cmd}{ifVTeX} +\EndIndex{Cmd}{scr@ifVTeX} + +\BeginIndex{Cmd}{scr@ifpdfoutput} +\BeginIndex{Cmd}{ifpdfoutput} +\begin{Declaration} + \Macro{scr@ifpdfoutput}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil}\\ + \Macro{ifpdfoutput}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +Wird eine PDF-Datei erzeugt, so wird der \PName{Dann-Teil} ausgeführt, +anderenfalls der \PName{Sonst-Teil}. Dabei ist es unerheblich, ob die +PDF-Datei mit Hilfe von pdf\TeX{} oder mit Hilfe von V\TeX{} erzeugt wird. +% +\EndIndex{Cmd}{ifpdfoutput} +\EndIndex{Cmd}{scr@ifpdfoutput} + +\BeginIndex{Cmd}{scr@ifpsoutput} +\BeginIndex{Cmd}{ifpsoutput} +\begin{Declaration} + \Macro{scr@ifpsoutput}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil}\\ + \Macro{ifpsoutput}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +Wird eine PostScript-Datei erzeugt, so wird der \PName{Dann-Teil} ausgeführt, +anderenfalls der \PName{Sonst-Teil}. V\TeX{} unterstützt direkte +PostScript-Ausgabe, die hier auch erkannt wird. Wird hingegen kein V\TeX{} +erkannt, ist aber ein Schalter \Macro{if@dvips} definiert, so wird die +Entscheidung darüber getroffen. \KOMAScript{} stellt \Macro{if@dvips} in +\Package{typearea} bereit. +% +\EndIndex{Cmd}{ifpsoutput} +\EndIndex{Cmd}{scr@ifpsoutput} + +\BeginIndex{Cmd}{scr@ifdvioutput} +\BeginIndex{Cmd}{ifdvioutput} +\begin{Declaration} + \Macro{scr@ifdvioutput}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil}\\ + \Macro{ifdvioutput}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +Wird eine DVI-Datei erzeugt, so wird der \PName{Dann-Teil} ausgeführt, +anderenfalls der \PName{Sonst-Teil}. Es wird immer dann davon ausgegangen, +dass eine DVI-Datei erzeugt wird, wenn keine direkte Ausgabe einer PDF- oder +Postscript-Datei erkannt werden kann. +% +\EndIndex{Cmd}{ifdvioutput} +\EndIndex{Cmd}{scr@ifdvioutput} + +\BeginIndex{Cmd}{ifnotundefined} +\begin{Declaration} + \Macro{ifnotundefined}\Parameter{Anweisungsname}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +Bei Verwendung von \eTeX{} wird hier tatsächlich getestet, ob die Anweisung +mit dem angegebenen \PName{Anweisungsname} noch undefiniert ist. Dies ist der +Normalfall, da die Verwendung von \eTeX{} für \LaTeX{} offiziell empfohlen +ist. Wird trotzdem kein \eTeX{} verwendet, ist dies hingegen schlicht die +Umkehrung von \Macro{scr@ifundefinedorrelax}. Von dieser Anweisung gibt es +keine interne Variante. +% +\EndIndex{Cmd}{ifnotundefined} + +\BeginIndex{Cmd}{ifstr} +\begin{Declaration} + \Macro{ifstr}\Parameter{Zeichenfolge}\Parameter{Zeichenfolge}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +Die beiden Argumente \PName{Zeichenfolge} werden expandiert und dann +verglichen. Sind sie dabei gleich, so wird der \PName{Dann-Teil} ausgeführt, +anderenfalls der \PName{Sonst-Teil}. Von dieser Anweisung gibt es keine +interne Variante. +% +\EndIndex{Cmd}{ifstr} + +\BeginIndex{Cmd}{ifnumber} +\begin{Declaration} + \Macro{ifnumber}\Parameter{Zeichenfolge}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +Hier werden keine Zahlen verglichen. Stattdessen wird der \PName{Dann-Teil} +ausgeführt, wenn die Expansion der \PName{Zeichenfolge} nur aus Ziffern +besteht. Anderenfalls wird der \PName{Sonst-Teil} verwendet. Von dieser +Anweisung gibt es keine interne Variante. +% +\EndIndex{Cmd}{ifnumber} + +\BeginIndex{Cmd}{ifdimen} +\begin{Declaration} + \Macro{ifdimen}\Parameter{Zeichenfolge}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +Hier werden keine Längen verglichen. Stattdessen wird der \PName{Dann-Teil} +ausgeführt, wenn die Expansion der \PName{Zeichenfolge} eine gültige Länge mit +einer gültigen Längeneinheit ist. Anderenfalls wird der \PName{Sonst-Teil} +verwendet. Von dieser Anweisung gibt es keine interne Variante. +% +\EndIndex{Cmd}{ifdimen} + +\BeginIndex{Cmd}{if@atdocument}% +\begin{Declaration} + \Macro{if@atdocument} +\end{Declaration} +Diese Verzweigung existiert ganz bewusst nur als interne +Anweisung. Dabei entspricht \Macro{if@atdocument} in der Dokumentpräambel +\Macro{iffalse}, nach \Macro{begin}\PParameter{document} entspricht +\Macro{if@document} hingegen \Macro{iftrue}. Klassen und Paketautoren können +dieses Anweisung manchmal sinnvoll nutzen, wenn sich Anweisungen in der +Dokumentpräambel anders verhalten sollen als innerhalb des Dokuments. Es ist +zu beachten, dass es sich bei dieser Anweisung um eine Verzweigung in +\TeX-Syntax und nicht in \LaTeX-Syntax handelt! +% +\EndIndex{Cmd}{if@atdocument} + + +\section{Definition sprachabhängiger Bezeichner} +\label{sec:scrbase.languageSupport} +\BeginIndex{}{Sprachdefinition} + +Normalerweise muss man zur Definition oder zur Änderung sprachabhängiger +Begriffe Anweisungen wie \Macro{captionsngerman} so umdefinieren, dass +zusätzlich zu den bisherigen Begriffen auch die neuen oder geänderten +definiert werden. Erschwert wird dieses Vorhaben dadurch, dass beim Laden +eines Paketes wie \Package{german}\IndexPackage{german} oder +\Package{ngerman}\IndexPackage{ngerman} diese Anweisungen von den Paketen +erneut definiert werden. Bei den genannten Paketen geschieht dies leider in +einer Form, die alle zuvor gemachten Änderungen zunichte macht. Aus diesem +Grund ist es sinnvoll die Änderungen mit Hilfe von \Macro{AtBeginDocument} bis +\Macro{begin}\PParameter{document}, also bis nach dem Laden aller Pakete, zu +verzögern. Auch der Anwender muss entweder von \Macro{AtBeginDocument} +Gebrauch machen oder aber seine Änderungen nicht in die Dokumentpräambel, +sondern hinter \Macro{begin}\PParameter{document} einfügen. Das Paket +\Package{scrbase} bietet ihm für die Definition selbst einige zusätzliche +Anweisungen. + +\BeginIndex{Cmd}{providecaptionname}% +\BeginIndex{Cmd}{newcaptionname}% +\BeginIndex{Cmd}{renewcaptionname}% +\begin{Declaration} + \Macro{providecaptionname}% + \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt}\\ + \Macro{newcaptionname}% + \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt}\\ + \Macro{renewcaptionname}% + \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt} +\end{Declaration} +Mit Hilfe dieser drei Anweisungen ist es möglich, einem \PName{Begriff} in +Abhängigkeit der \PName{Sprache} einen \PName{Inhalt} zuzuweisen. Der +\PName{Begriff} ist dabei immer ein Makro. Die Arbeitsweise der drei +Anweisungen unterscheidet sich je nachdem, ob eine \PName{Sprache} und ein +\PName{Begriff} innerhalb dieser \PName{Sprache} zum Zeitpunkt des Aufrufs +bereits definiert ist. + +Ist eine \PName{Sprache} nicht definiert, so tut \Macro{providecaptionname} +nichts weiter, als dies in der \File{log}-Datei zu vermerken. Dabei wird für +jede Sprache nur einmal eine entsprechende Information in die \File{log}-Datei +geschrieben. Ist die Sprache definiert, enthält aber bisher keinen +entsprechenden \PName{Begriff}, so wird er mit dem angegebenen \PName{Inhalt} +definiert. Ist der \PName{Begriff} hingegen in der \PName{Sprache} bereits +definiert, so wird er nicht umdefiniert, sondern ein entsprechender Hinweis in +die \File{log}-Datei geschrieben. + +Die Anweisung \Macro{newcaptionname} verhält sich etwas anders. Ist bei ihr +die \PName{Sprache} nicht definiert, dann wird diese neu definiert, indem eine +entsprechende Anweisung, beispielsweise \Macro{captionsngerman} definiert +wird. Außerdem wird darüber auch in der \File{log}-Datei informiert. Ist die +\PName{Sprache} definiert, der \PName{Begriff} in dieser \PName{Sprache} aber +noch nicht vorhanden, so wird er mit dem gewünschten \PName{Inhalt} +definiert. Ist der \PName{Begriff} in der \PName{Sprache} bereits vorhanden, +so wird eine Fehlermeldung ausgegeben. + +Noch einmal anders verhält sich die Anweisung \Macro{renewcaptionname}. Ist +die \PName{Sprache} nicht definiert, so wird eine Fehlermeldung +ausgegeben. Ist die \PName{Sprache} definiert, der \PName{Begriff} in dieser +\PName{Sprache} jedoch nicht, so wird ebenfalls eine Fehlermeldung +ausgegeben. Ist der \PName{Begriff} in der \PName{Sprache} definiert, so wird +er auf den gewünschten \PName{Inhalt} umdefiniert. + +\KOMAScript{} selbst verwendet \Macro{providecaptionname} um die Begriffe aus +\autoref{sec:scrlttr2-experts.languages} zu definieren. + +\begin{Example} + Möchten Sie statt »Abbildung« in den Abbildungsunterschriften lieber »Abb.« + stehen haben, so erreichen Sie dies mit + \begin{lstcode} + \renewcaptionname{ngerman}{\figurename}{Abb.} + \end{lstcode} + Da mit \Macro{renewcaptionname} nur bereits vorhandene Begriffe in + vorhandenen Sprachen umdefiniert werden können, müssen Sie diese Anweisung + nach \Macro{begin}\PParameter{document} setzen oder mit Hilfe von + \Macro{AtBeginDocument} verzögern. Außerdem werden Sie eine Fehlermeldung + erhalten, wenn Sie kein Paket zur Sprachumschaltung auf \PValue{ngerman} + verwenden. +\end{Example} + +In \autoref{tab:scrbase.commonNames} ist ein Überblick über die üblicherweise +von Klassen und Sprachpaketen definierten Begriffe und deren Verwendung zu +finden. +\begin{desctable} + \caption[{Überblick über übliche sprachabhängige Begriffe}]% + {Überblick über sprachabhängige Begriffe in den üblichen + Sprachpaketen\label{tab:scrbase.commonNames}}\\ + \Endfirsthead + \caption[]{Überblick über übliche sprachabhängige Begriffe + (\emph{Fortsetzung})}\\ + \Endhead% + \standardfoot% + \entry{\Macro{abstractname}}{% + \IndexCmd{abstractname}% + Überschrift für die Zusammenfassung}% + \entry{\Macro{alsoname}}{% + \IndexCmd{alsoname}% + »Siehe auch« bei ergänzenden Verweisen im Stichwortverzeichnis}% + \entry{\Macro{appendixname}}{% + \IndexCmd{appendixname}% + »Anhang« in der Kapitelüberschrift eines Anhangs}% + \entry{\Macro{bibname}}{% + \IndexCmd{bibname}% + Überschrift für das Literaturverzeichnis}% + \entry{\Macro{ccname}}{% + \IndexCmd{ccname}% + Spitzmarke für den Verteiler in Briefen}% + \entry{\Macro{chaptername}}{% + \IndexCmd{chaptername}% + »Kapitel« in der Kapitelüberschrift}% + \entry{\Macro{contentsname}}{% + \IndexCmd{contentsname}% + Überschrift für das Inhaltsverzeichnis}% + \entry{\Macro{enclname}}{% + \IndexCmd{enclname}% + Spitzmarke für die Anlagen bei Briefen}% + \entry{\Macro{figurename}}{% + \IndexCmd{figurename}% + Spitzmarke in der Abbildungsunterschrift}% + \entry{\Macro{glossaryname}}{% + \IndexCmd{glossaryname}% + Überschrift für das Glossar}% + \entry{\Macro{headtoname}}{% + \IndexCmd{headtoname}% + »An« im Briefkopf}% + \entry{\Macro{indexname}}{% + \IndexCmd{indexname}% + Überschrift für das Stichwortverzeichnis}% + \entry{\Macro{listfigurename}}{% + \IndexCmd{listfigurename}% + Überschrift für das Abbildungsverzeichnis}% + \entry{\Macro{listtablename}}{% + \IndexCmd{listtablename}% + Überschrift für das Tabellenverzeichnis}% + \entry{\Macro{pagename}}{% + \IndexCmd{pagename}% + »Seite« in der Seitennummer von Briefen}% + \entry{\Macro{partname}}{% + \IndexCmd{partname}% + »Teil« in der Teileüberschrift}% + \entry{\Macro{prefacename}}{% + \IndexCmd{prefacename}% + Überschrift für das Vorwort}% + \entry{\Macro{proofname}}{% + \IndexCmd{proofname}% + Spitzmarke bei Beweisen}% + \entry{\Macro{refname}}{% + \IndexCmd{refname}% + Überschrift für das Quellenverzeichnis}% + \entry{\Macro{seename}}{% + \IndexCmd{seename}% + »Siehe« bei Verweisen im Stichwortverzeichnis}% + \entry{\Macro{tablename}}{% + \IndexCmd{tablename}% + Spitzmarke in der Tabellenunter- bzw. "~überschrift}% +\end{desctable} +% +\EndIndex{Cmd}{renewcaptionname}% +\EndIndex{Cmd}{newcaptionname}% +\EndIndex{Cmd}{providecaptionname}% + +\EndIndex{}{Sprachdefinition}% + + +\section{Identifikation von \KOMAScript} +\label{sec:scrbase.identify} + +Auch wenn \Package{scrbase} unabhängig von \KOMAScript{} auch für andere +Pakete und Klassen verwendet werden kann, so ist es dennoch ein +\KOMAScript-Paket. Als solches enthält es auch Anweisungen, die es als +\KOMAScript-Paket identifizieren. + + +\BeginIndex{Cmd}{KOMAScript}% +\begin{Declaration} + \Macro{KOMAScript} +\end{Declaration} +Diese Anweisung setzt schlicht die Wortmarke »\KOMAScript« in serifenloser +Schrift und mit leichter Sperrung des Versalteils. \Macro{\KOMAScript} wird +übrigens bei Bedarf von allen \KOMAScript-Klassen und "~Paketen definiert. Die +Definition erfolgt mit \Macro{DeclareRobustCommand}. +% +\EndIndex{Cmd}{KOMAScript} + + +\BeginIndex{Cmd}{KOMAScriptVersion}% +\begin{Declaration} + \Macro{KOMAScriptVersion} +\end{Declaration} +Bei \KOMAScript{} ist in dieser Anweisung die Hauptversion von \KOMAScript{} +in der Form »\PName{Datum} \PName{Version} \texttt{KOMA-Script}« +abgelegt. Diese Hauptversion ist für alle \KOMAScript-Klassen und alle +\KOMAScript-Pakete, die von den Klassen verwendet werden, gleich. Daher kann +sie auch nach dem Laden von \Package{scrbase} abgefragt werden. Diese +Anleitung wurde beispielsweise mit der \KOMAScript-Version +»\KOMAScriptVersion« erstellt. +% +\EndIndex{Cmd}{KOMAScriptVersion}% + + +\section{Erweiterungen des \LaTeX-Kerns} +\label{sec:scrbase:latexkernel} + +In einigen Fällen stellt der \LaTeX-Kern selbst Anweisungen zur Verfügung, +lässt aber ganz ähnliche Anweisungen, die ebenfalls häufiger benötigt werden +oder eigentlich nahe liegen, vermissen. Einige wenige solcher Anweisungen +für Klassen- und Paketautoren stellt \Package{scrbase} zur Verfügung. + +\BeginIndex{Cmd}{PackageInfoNoLine}% +\BeginIndex{Cmd}{ClassInfoNoLine}% +\begin{Declaration} + \Macro{ClassInfoNoLine}\Parameter{Klassenname}\Parameter{Information}\\ + \Macro{PackageInfoNoLine}\Parameter{Paketname}\Parameter{Information} +\end{Declaration} +Der \LaTeX-Kern bietet dem Klassen- und Paketautor zwar Anweisungen wie +\Macro{PackageInfo} und \Macro{ClassInfo}, um Informationen mit aktueller +Zeilennummer in die Log-Datei zu schreiben. Er bietet neben +\Macro{PackageWarning} und \Macro{ClassWarning}, die Warnungen mit aktueller +Zeilennummer ausgeben, auch Anweisungen wie \Macro{PackageWarningNoLine} und +\Macro{ClassWarningNoLine}, um Warnungen ohne Zeilennummer auszugeben. Die +nahe liegenden Anweisungen \Macro{ClassInfoNoLine} und +\Macro{PackageInfoNoLine}, um auch Informationen ohne Zeilennummer in die +Log-Datei zu schreiben, fehlen jedoch. Diese werden von \Package{scrbase} +bereit gestellt. +% +\EndIndex{Cmd}{ClassInfoNoLine}% +\EndIndex{Cmd}{PackageInfoNoLine} + +\BeginIndex{Cmd}{l@addto@macro}% +\begin{Declaration} + \Macro{l@addto@macro}\Parameter{Anweisung}\Parameter{Erweiterung} +\end{Declaration} +Der \LaTeX-Kern bietet mit \Macro{g@addto@macro} eine interne Anweisung, um +die Definition eines Makro \PName{Anweisung} global um den Code +\PName{Erweiterung} zu erweitern. Dies funktioniert in dieser Form nur für +Makros ohne Argumente. Dennoch könnte man diese Anweisung in einigen Fällen +auch in einer Form benötigen, die lokal zur aktuellen Gruppe arbeitet. Diese +wird mit \Macro{l@addto@macro} von \Package{scrbase} bereit gestellt. +% +\EndIndex{Cmd}{l@addto@macro} + +\EndIndex{Package}{scrbase}% + +\endinput + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "guide.tex" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbookreportarticle-experts.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbookreportarticle-experts.tex new file mode 100644 index 00000000000..a1df28b88fa --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbookreportarticle-experts.tex @@ -0,0 +1,516 @@ +% ====================================================================== +% scrbookreportarticle-experts.tex +% Copyright (c) Markus Kohm, 2001-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% scrbookreportarticle-experts.tex +% Copyright (c) Markus Kohm, 2001-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Chapter about scrbook, scrreprt, and scrartcl of the KOMA-Script guide +% expert part +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Kapitel über scrbook, scrreprt und scrartcl im Experten-Teil der +% KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\ProvidesFile{scrbookreportarticle-experts.tex}[2008/09/11 KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl for experts)] + +\chapter[{Zusätzliche Informationen zu den Hauptklassen und \Package{scrextend}}]{Zusätzliche + Informationen zu den Hauptklassen + \Class{scrbook}, \Class{scrreprt} und + \Class{scrartcl} sowie dem + Paket \Package{scrextend}} +\labelbase{maincls-experts} + +In diesem Kapitel finden Sie zusätzliche Informationen zu den +\KOMAScript-Klassen \Class{scrbook}, \Class{scrreprt} und \Class{scrartcl} und +einigen Anweisungen, die auch in \Package{scrextend} vorhanden sind. +\iffree{Einige Teile des Kapitels sind dabei dem \KOMAScript-Buch + \cite{book:komascript} vorbehalten. Dies sollte kein Problem sein, denn + der}{Der} normale Anwender, der die Klassen einfach nur verwenden will, wird +diese Informationen normalerweise nicht benötigen. Ein Teil der Informationen +richtet sich an Anwender, die ausgefallene Aufgaben lösen oder eigene Klassen +schreiben wollen, die auf einer der drei \KOMAScript-Klassen basieren. Ein +weiterer Teil der Informationen behandelt Möglichkeiten der Klassen, die aus +Gründen der Kompatibilität zu den Standardklassen oder früheren Versionen von +\KOMAScript{} existieren. Die Teile, die nur aus Gründen der Kompatibilität zu +früheren Versionen von \KOMAScript{} existieren, sind in serifenloser Schrift +gesetzt und sollten nicht mehr verwendet werden. + +\LoadNonFree{scrbookreportarticle-experts}{0} + +\section{Ergänzende Hinweise zu Benutzeranweisungen} +\label{sec:maincls-experts.addInfos} + +\LoadNonFree{scrbookreportarticle-experts}{1} + + +\section{Zusammenspiel von \KOMAScript{} und anderen Paketen} +\label{sec:maincls-experts.coexistence} + +\LoadNonFree{scrbookreportarticle-experts}{2} + + +\section{Anweisungen für Experten} +\label{sec:maincls-experts.experts} + +In diesem Abschnitt werden Anweisungen beschrieben, die für den normalen +Anwender kaum oder gar nicht von Interesse sind. Experten bieten diese +Anweisungen zusätzliche Möglichkeiten. Da die Beschreibungen für Experten +gedacht sind, sind sie kürzer gefasst. + + +\begin{Declaration} + \Macro{KOMAClassName}\\ + \Macro{ClassName} +\end{Declaration} +\BeginIndex{Cmd}{KOMAClassName}% +\BeginIndex{Cmd}{ClassName}% +In \Macro{KOMAClassName} ist der Name der aktuell verwendeten +\KOMAScript-Klasse abgelegt. Will man also wissen, ob eine oder welche +\KOMAScript-Klasse verwendet wird, so kann man einfach auf diese Anweisung +testen. Demgegenüber gibt \Macro{ClassName} Auskunft, welche Standardklasse +durch diese \KOMAScript-Klasse ersetzt wird. + +Es sei in diesem Zusammenhang darauf hingewiesen, dass demgegenüber die +Existenz von \Macro{KOMAScript}\IndexCmd{KOMAScript} nicht als Indiz für die +Verwendung einer \KOMAScript-Klasse dienen kann. Zum einen definieren alle +\KOMAScript-Pakete diese Anweisung, zum anderen können auch andere Pakete es +für sinnvoll erachten, das \KOMAScript-Piktogramm unter diesem Namen zu +definieren.% +% +\EndIndex{Cmd}{ClassName}% +\EndIndex{Cmd}{KOMAClassName}% + + +\begin{Declaration} + \Macro{@fontsizefilebase} +\end{Declaration} +\BeginIndex{Cmd}{@fontsizefilebase}% +Der auf \autopageref{desc:maincls-experts.option.fontsize} für die +Schriftgrößendateien angegebene Präfix \File{scrsize}, ist lediglich die +Voreinstellung für das interne Makro +\Macro{@fontsizefilebase}\IndexCmd{@fontsizefilebase}, die verwendet wird, +wenn das Makro beim Laden der Klasse oder des Pakets \Package{scrextend} noch +nicht definiert ist. Autoren von Wrapper-Klassen können dieses Makro +abweichend definieren, um andere Schriftgrößendateien zu verwenden. Ebenso +können Autoren von Wrapper-Klassen die \emph{fallback}-Lösung dadurch ändern +oder abschalten, dass sie das Macro +\Macro{changefontsizes}\IndexCmd{changefontsize}, das als Argument die +gewünschte Größe erwartet, umdefinieren.% +% +\EndIndex{Cmd}{@fontsizefilebase}% + + +\begin{Declaration} + \Macro{newkomafont}\OParameter{Warnung}\Parameter{Element}\Parameter{Voreinstellung}\\ + \Macro{aliaskomafont}\Parameter{Aliasname}\Parameter{Element} +\end{Declaration} +\BeginIndex{Cmd}{newkomafont}% +\BeginIndex{Cmd}{aliaskomafont}% +Experten können mit \Macro{newkomafont} eine \PName{Voreinstellung} für die +Schrift eines \PName{Element}s definieren. Anschließend kann diese +Voreinstellung mit den Anweisungen \Macro{setkomafont} und +\Macro{addtokomafont} (siehe \autoref{sec:maincls.textmarkup}, +\autopageref{desc:maincls.cmd.setkomafont}) verändert werden. Natürlich wird +diese Schrift damit noch lange nicht verwendet. Der Experte muss selbst Sorge +dafür tragen, dass er an den entsprechenden Stellen die Anweisung +\Macro{usekomafont} (siehe \autopageref{desc:maincls.cmd.usekomafont}) für +dieses Element in seinen Definitionen einbaut. + +Das optionale Argument \PName{Warnung} definiert eine Warnmeldung. Diese wird +bei den \KOMAScript-Klassen per \Macro{ClassWarning} oder beim Paket +\Package{scrextend} per \Macro{PackageWarning} immer dann ausgegeben, wenn die +Voreinstellung für das Element verändert wird. Dabei wird als Urheber der +Warnung die verwendete \KOMAScript-Klasse oder das Paket \Package{scrextend} +ausgegeben. + +Mit \Macro{aliaskomafont} kann für ein existierendes \PName{Element} ein +\PName{Aliasname} definiert werden. \KOMAScript{} informiert den Benutzer +automatisch über den Namen des tatsächlichen Elements, wenn dieser den +\PName{Aliasname} verwendet. \PName{Aliasname}n können beispielsweise dann +eingesetzt werden, wenn der Entwickler sich später einen besseren Namen für +ein Element überlegt und der alte Name aus Kompatibilitätsgründen weiter +verwendbar bleiben soll. Außerdem kann damit die Benutzerfreundlichkeit erhöht +werden, indem einem Element all die Namen als Alias zugeordnet werden, die +unterschiedliche Benutzer intuitiv wählen würden. \KOMAScript{} selbst macht +von dieser Möglichkeit reichen Gebrauch. +% +\EndIndex{Cmd}{aliaskomafont}% +\EndIndex{Cmd}{newkomafont}% + + +\begin{Declaration} + \Macro{setparsizes}\Parameter{Einzug}\Parameter{Abstand}%^^A + \Parameter{Endzeilenleerraum} +\end{Declaration} +\BeginIndex{Cmd}{setparsizes}% +\KOMAScript{} bietet mit dieser Anweisung die Möglichkeit, sowohl den +Absatzeinzug, als auch den Absatzabstand und den Freiraum am Ende der +letzten Zeile des Absatzes einzustellen. Diese Anweisung ist immer dann zu +verwenden, wenn die Änderungen auch bei Einstellung +\OptionValue{parskip}{relative} beachtet werden sollen. \KOMAScript{} selbst +verwendet sie beispielsweise in der Form +\begin{lstcode}[belowskip=\dp\strutbox] + \setparsizes{0pt}{0pt}{0pt plus 1fil} +\end{lstcode} +um sowohl den Einzug als auch den Abstand abzuschalten und am Ende des +Absatzes beliebigen Freiraum zu erlauben. Eine solche Maßnahme ist sinnvoll, +wenn ein Absatz nur aus einer Box besteht, die ohne Abstand nach oben oder +unten gesetzt werden soll und die gesamte Spaltenbreite einnimmt. Soll +demgegenüber die Box nur die gesamte Breite einnehmen, jedoch mit der +aktuellen Einstellung bezüglich des Absatzabstandes gesetzt werden, so ist +\begin{lstcode}[belowskip=\dp\strutbox] + \setlength{\parfillskip}{0pt plus 1fil} +\end{lstcode} +vorzuziehen.% +\EndIndex{Cmd}{setparsizes}% + + +\begin{Declaration} + \Macro{raggedchapterentry} +\end{Declaration} +\BeginIndex{Cmd}{raggedchapterentry}% +Diese Anweisung ist nicht mit ähnlichen Anweisungen wie \Macro{raggedsection} +zu vergleichen. Während jene Anweisungen es ermöglichen, bestimmte Elemente im +Blocksatz oder im rechts- oder linksbündigen oder beidseitigen Flattersatz zu +setzen, besteht mit Hilfe von \Macro{raggedchapterentry} lediglich die +Möglichkeit, Kapiteleinträge im Inhaltsverzeichnis statt im voreingestellten +Blocksatz im linksbündigen Flattersatz zu setzen. Dazu ist die Anweisung als +\Macro{raggedright} zu definieren. Siehe hierzu auch die einschränkenden +Hinweise in \autoref{sec:maincls-experts.coexistence}, +\autopageref{desc:maincls-experts.cmd.raggedsection}.% +% +\EndIndex{Cmd}{raggedchapterentry} + +\LoadNonFree{scrbookreportarticle-experts}{3} + +\begin{Declaration} + \Macro{chapterheadstartvskip}\\ + \Macro{chapterheadendvskip}\\ + \Macro{partheadstartvskip}\\ + \Macro{partheadmidvskip}\\ + \Macro{partheadendvskip} +\end{Declaration} +\BeginIndex{Cmd}{chapterheadstartvskip}% +\BeginIndex{Cmd}{chapterheadendvskip}% +\BeginIndex{Cmd}{partheadstartvskip}% +\BeginIndex{Cmd}{partheadmidvskip}% +\BeginIndex{Cmd}{partheadendvskip}% +Diese Anweisungen werden innerhalb der Definition der Überschriften +\Macro{chapter} und \Macro{part} sowie deren Varianten, einschließlich +\Macro{addchap} und \Macro{addpart} verwendet. Dabei ist +\Macro{chapterheadstartvskip} eine Anweisung, die dafür vorgesehen ist, vor +der Kapitelüberschrift einen vertikalen Abstand einzufügen. Entsprechend ist +\Macro{chapterheadendvskip} eine Anweisung, die dafür vorgesehen ist, nach der +Kapitelüberschrift einen vertikalen Abstand einzufügen. + +Die Anweisungen \Macro{partheadstartvskip} und \Macro{partheadendvskip} sind +dafür vorgesehen, über und unter den Teile-Überschriften vertikalen Abstand +einzufügen. Dabei wird ein Seitenumbruch quasi als vertikaler Abstand +interpretiert und ist in der Voreinstellung von \Macro{partheadendvskip} +enthalten. Die Anweisung \Macro{partheadmidvskip} ist für den Abstand zwischen +der Teile-Nummer und dem Text der Teile-Überschrift vorgesehen. + +Die Voreinstellungen für diese fünf Anweisungen ist +\autoref{tab:maincls-experts.headvskip} und +\autoref{tab:maincls-experts.headvskip2} zu entnehmen. Auf \cite{homepage} +gibt es außerdem ein Beispiel, bei dem \Macro{chapterheadstartvskip} und +\Macro{chapterheadendvskip} verwendet werden, um horizontale Linien über und +unter der Kapitelüberschrift zu setzen.% +% +\begin{table} + \centering + \caption[{Voreinstellungen der Anweisungen für die vertikalen Abstände bei + Kapitel- und Teile-Überschriften von \Class{scrbook} und + \Class{scrreprt}}]{Voreinstellungen der Anweisungen für + die vertikalen Abstände bei Kapitel- und Teile-Überschriften bei + \Class{scrbook} und \Class{scrreprt} abhängig von den Optionen} + \label{tab:maincls-experts.headvskip} + \begin{tabular}{ll} + \multicolumn{2}{@{}l}{\bfseries Mit \OptionValue{headings}{big}:}\\ + \toprule + Anweisung & Voreinstellung \\ + \midrule + \Macro{chapterheadstartvskip} & + \Macro{vspace*}\PParameter{2.3\Macro{baselineskip}} \\ + \Macro{chapterheadendvskip} & + \Macro{vspace*}\texttt{\{1.725\Macro{baselineskip}} \\ & + \quad\texttt{plus .115\Macro{baselinekip}} \\ & + \quad\texttt{minus .192\Macro{baselineskip}\}} \\ + \Macro{partheadstartvskip} & \Macro{null}\Macro{vfil} \\ + \Macro{partheadmidvskip} & \Macro{par}\Macro{nobreak}\Macro{vskip} \texttt{20pt}\\ + \Macro{partheadendvskip} & \Macro{vfil}\Macro{newpage} \\ + \bottomrule\\ + \multicolumn{2}{@{}l}{\bfseries Mit \OptionValue{headings}{normal}:}\\ + \toprule + Anweisung & Voreinstellung \\ + \midrule + \Macro{chapterheadstartvskip} & + \Macro{vspace*}\PParameter{2\Macro{baselineskip}} \\ + \Macro{chapterheadendvskip} & + \Macro{vspace*}\texttt{\{1.5\Macro{baselineskip}}\\ & + \quad\texttt{plus .1\Macro{baselinekip}} \\ & + \quad\texttt{minus .167\Macro{baselineskip}\}} \\ + \Macro{partheadstartvskip} & \Macro{null}\Macro{vfil} \\ + \Macro{partheadmidvskip} & \Macro{vskip} \texttt{20pt}\\ + \Macro{partheadendvskip} & \Macro{par}\Macro{nobreak}\Macro{vfil}\Macro{newpage} \\ + \bottomrule\\ + \multicolumn{2}{@{}l}{\bfseries Mit \OptionValue{headings}{small}:}\\ + \toprule + Anweisung & Voreinstellung \\ + \midrule + \Macro{chapterheadstartvskip} & + \Macro{vspace*}\PParameter{1.8\Macro{baselineskip}} \\ + \Macro{chapterheadendvskip} & + \Macro{vspace*}\texttt{\{1.35\Macro{baselineskip}}\\ & + \quad\texttt{plus .09\Macro{baselinekip}} \\ & + \quad\texttt{minus .15\Macro{baselineskip}\}} \\ + \Macro{partheadstartvskip} & \Macro{null}\Macro{vfil} \\ + \Macro{partheadmidvskip} & \Macro{vskip} \texttt{20pt}\\ + \Macro{partheadendvskip} & \Macro{par}\Macro{nobreak}\Macro{vfil}\Macro{newpage} \\ + \bottomrule\\ +\end{tabular} +\end{table} +% +\begin{table} + \centering + \caption{Voreinstellungen der Anweisungen für + die vertikalen Abstände bei Teile-Überschriften bei + \Class{scrartcl}} + \label{tab:maincls-experts.headvskip2} + \begin{tabular}{ll} + \toprule + Anweisung & Voreinstellung \\ + \midrule + \Macro{partheadstartvskip} & \Macro{addvspace}\PParameter{4ex} \\ + \Macro{partheadmidvskip} & \Macro{par}\Macro{nobreak}\\ + \Macro{partheadendvskip} & \Macro{vskip} \texttt{3ex}\\ + \bottomrule + \end{tabular} +\end{table}% +\EndIndex{Cmd}{partheadendvskip}% +\EndIndex{Cmd}{partheadmidvskip}% +\EndIndex{Cmd}{partheadstartvskip}% +\EndIndex{Cmd}{chapterheadendvskip}% +\EndIndex{Cmd}{chapterheadstartvskip}% + + +\begin{Declaration} + \Macro{appendixmore} +\end{Declaration}% +\BeginIndex{Cmd}{appendixmore}% +Bei den {\KOMAScript}-Klassen gibt es innerhalb der Anweisung \Macro{appendix} +eine Besonderheit. Ist nämlich die Anweisung \Macro{appendixmore} definiert, +so wird sie von der \Macro{appendix}-Anweisung ebenfalls ausgeführt. Intern +wird dies von den {\KOMAScript}-Klassen \Class{scrbook} und \Class{scrreprt} +für die Realisierung der Layoutoption \Option{appendixprefix} +genutzt (siehe \autoref{sec:maincls.structure}, +\autopageref{desc:maincls.option.appendixprefix}). Dies sollten Sie unbedingt +beachten, falls Sie selbst das Makro \Macro{appendixmore} definieren oder +umdefinieren wollen. Ist eine dieser beiden Optionen gesetzt, so erhalten Sie +bei \verb|\newcommand{\appendixmore}{|\dots\verb|}| eine Fehlermeldung. +Dadurch soll verhindert werden, dass Sie die Optionen außer Kraft setzen, ohne +es zu merken. + +\begin{Example} + Sie wollen nicht, dass bei Verwendung der Klasse \Class{scrbook} oder + \Class{scrreprt} im Hauptteil die Kapitel mit einer Präfixzeile versehen + werden (siehe Layoutoption \Option{chapterprefix} und + in \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.option.chapterprefix}). Damit die Konsistenz + gewahrt bleibt, wollen Sie auch nicht, dass eine solche Zeile im Anhang + verwendet wird. Stattdessen sollen in den Anhängen direkt vor dem + Kapitelbuchstaben das Wort »Anhang« in der jeweiligen Sprache stehen. Dies + soll auch für die Kolumnentitel gelten. Also verwenden Sie nicht die + Layoutoption \Option{appendixprefix}, sondern + definieren in der Dokumentpräambel: +\begin{lstcode} + \newcommand*{\appendixmore}{% + \renewcommand*{\chapterformat}{% + \appendixname~\thechapter\autodot\enskip}% + \renewcommand*{\chaptermarkformat}{% + \appendixname~\thechapter\autodot\enskip}} +\end{lstcode} + Sollten Sie später dann doch noch entscheiden, dass Sie die Option + \Option{appendixprefix} verwenden wollen, so erhalten Sie aufgrund + der dann bereits definierten Anweisung \Macro{appendixmore} eine + Fehlermeldung. Damit wird verhindert, dass obige Definition + unbemerkt die Einstellungen überschreibt, die Sie per Option + getroffen haben. + + Wenn Sie ein vergleichbares Verhalten des Anhangs für die Klasse + \Class{scrartcl} erreichen wollen, so ist dies ebenfalls + möglich. Dazu schreiben Sie in die Präambel Ihres Dokuments: +\begin{lstcode}[moretexcs={ifthenelse,equal}] + \newcommand*{\appendixmore}{% + \renewcommand*{\othersectionlevelsformat}[3]{% + \ifthenelse{\equal{##1}{section}}{% + \appendixname~}{}% + ##3\autodot\enskip} + \renewcommand*{\sectionmarkformat}{% + \appendixname~\thesection\autodot\enskip}} +\end{lstcode} + Sie benötigen dafür außerdem das + \Package{ifthen}-Paket\IndexPackage{ifthen} (siehe + \cite{package:ifthen}). + + Eine alternative Implementierung wäre: +\begin{lstcode} + \newcommand*{\appendixmore}{% + \renewcommand*{\othersectionlevelsformat}[3]{% + \ifstr{##1}{section}{\appendixname~}{}% + ##3\autodot\enskip} + \renewcommand*{\sectionmarkformat}{% + \appendixname~\thesection\autodot\enskip}} +\end{lstcode} + Die dabei verwendete Anweisung \Macro{ifstr}\IndexCmd[indexmain]{ifstr} wird + von \KOMAScript{} bereitgestellt. Siehe dazu \autoref{sec:scrbase.if}, + \autopageref{desc:scrbase.cmd.ifstr}. + + Die Erklärungen zu den in diesem Beispiel umdefinierten Anweisungen finden + Sie in \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.chapterformat} und + \autopageref{desc:maincls.cmd.chaptermarkformat}. +\end{Example}% +% +\EndIndex{Cmd}{appendixmore}% + + +\begin{Declaration} + \Macro{newbibstyle}\OParameter{Elternstil}\Parameter{Name}%^^A + \Parameter{Anweisungen}\\ + \Macro{newblock}\\ + \Macro{@openbib@code}\\ + \Macro{bib@beginhook}\\ + \Macro{bib@endhook} +\end{Declaration} +\BeginIndex{Cmd}{newbibstyle}% +\BeginIndex{Cmd}{newblock}% +\BeginIndex{Cmd}{@openbib@code}% +\BeginIndex{Cmd}{bib@beginhook}% +\BeginIndex{Cmd}{bib@endhook}% +Schon die Standardklassen kennen zur Unterteilung der Einträge in das +Literaturverzeichnis die Anweisung \Macro{newblock}. Was diese Anweisung genau +macht, hängt dabei von den Klassenoptionen ab. Wird die Option +\Option{openbib} verwendet, so wird am Ende der Standardklasse die Anweisung +\Macro{@openbib@code} und \Macro{newblock} selbst umdefiniert. Von den +Standardklassen wird die Anweisung \Macro{@openbib@code} beim Start der Liste +für das Literaturverzeichnis -- genauer: bei der Festlegung der Parameter für +diese Liste -- ausgeführt. Es darf davon ausgegangen werden, dass auch viele +Pakete, die das Literaturverzeichnis umdefinieren, diese Anweisung +entsprechend abarbeiten. + +Bei \KOMAScript{} geschieht Ähnliches. Allerdings wird \Macro{@openbib@code} +nicht am Ende der Klasse umdefiniert. Stattdessen wird mit \Macro{newbibstyle} +der Literaturverzeichnisstil \PValue{openstyle} definiert. Die +\PName{Anweisungen}, die dabei in der Implementierung angegeben wurden, +beinhalten die gewünschten Umdefinierung von \Macro{@openbib@code} und von +\Macro{newblock}. Wird nun mit Hilfe der Option +\OptionValue{bibliography}{openstyle} dieser Literaturverzeichnisstil gewählt, +so werden die \PName{Anweisungen} unmittelbar ausgeführt, also +\Macro{@openbib@code} und \Macro{newblock} umdefiniert. + +Neben \Macro{@openbib@code} und \Macro{newblock} können in den +\PName{Anweisungen} auch noch Umdefinierungen von \Macro{bib@beginhook} und +\Macro{bib@endhook} vorgenommen werden. Die Anweisung \Macro{bib@beginhook} +wird unmittelbar nach der Überschrift und der Präambel des +Literaturverzeichnisses, aber noch vor der Liste der Literatureinträge +ausgeführt. Die Anweisung \Macro{bib@endhook} wird unmittelbar nach der Liste +der Literatureinträge am Ende des Literaturverzeichnisses ausgeführt. Im Falle +eines mit \Macro{BreakBibliography} (siehe \autoref{sec:maincls.bibliography}, +\autopageref{desc:maincls.cmd.BreakBibliography}) unterbrochenen +Literaturverzeichnisses werden diese Anweisungen außerdem am Anfang und Ende +jedes Teil, also unmittelbar vor und nach \Macro{BreakBibliography} +ausgeführt. + +Die Anweisungen \Macro{bib@beginhook}, \Macro{bib@endhook}, +\Macro{@openbib@code} und \Macro{newblock} werden bei der Verwendung eines +neuen Literaturverzeichnisstils zunächst als leer definiert. Danach werden +die \PName{Anweisungen} des bei der Definition des Stils optional angegebenen +Elternstils ausgeführt und dann erst die \PName{Anweisungen}, die bei +Definition des neuen Stils angegeben wurden. + +Setzt der Anwender mit den beiden Anweisungen \Macro{AtEndBibliography} und +\Macro{AfterBibliographyPreamble} weitere \PName{Anweisungen} für die +Ausführung nach der Präambel und am Ende des Literaturverzeichnisses, so +werden die \PName{Anweisungen} aus \Macro{AfterBibliographyPreamble} einmalig +am Anfang des Literaturverzeichnisses nach \Macro{bib@beginhook} und die +\PName{Anweisungen} von \Macro{AtEndBibliography} einmalig am Ende des +Literaturverzeichnisses vor \Macro{bib@endhook} ausgeführt. + +Mit Hilfe des Pakets \Package{multicol}\IndexPackage{multicol} (siehe +\cite{package:multicol}) könnte man beispielsweise einen Literaturstil für +ein zweispaltiges Literaturverzeichnis definieren: +% Umbruchkorrektur: listings korrigiert +\begin{lstcode}[belowskip=\dp\strutbox] + \newbibstyle{twocolumstyle}{% + \renewcommand*{\bib@beginhook}{\begin{multicols}{2}}% + \renewcommand*{\bib@endhook}{\end{multicols}}}% +\end{lstcode} +Soll es außerdem eine \emph{open}-Variante davon geben, kann man hier die +Möglichkeiten der Vererbung verwenden und bei der Definition einen Elternstil +mit angeben: +% Umbruchkorrektur: listings korrigiert +\begin{lstcode}[belowskip=\dp\strutbox] + \newbibstyle{twocolumstyle}[openstyle]{% + \renewcommand*{\bib@beginhook}{\begin{multicols}{2}}% + \renewcommand*{\bib@endhook}{\end{multicols}}}% +\end{lstcode} +Die Auswahl eines dieser neuen Stile erfolgt dann einfach wieder über die +Option \Option{bibliography}. +% +\EndIndex{Cmd}{bib@endhook}% +\EndIndex{Cmd}{bib@beginhook}% +\EndIndex{Cmd}{@openbib@code}% +\EndIndex{Cmd}{newblock}% +\EndIndex{Cmd}{newbibstyle}% + + + +\section{Mehr oder weniger obsolete Optionen und Anweisungen} +\label{sec:maincls-experts.obsolete} + +\LoadNonFree{scrbookreportarticle-experts}{4} + +\endinput + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "guide.tex" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbookreportarticle.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbookreportarticle.tex new file mode 100644 index 00000000000..e5910caddb2 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbookreportarticle.tex @@ -0,0 +1,3673 @@ +% ====================================================================== +% scrbookreportarticle.tex +% Copyright (c) Markus Kohm, 2001-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% scrbookreportarticle.tex +% Copyright (c) Markus Kohm, 2001-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Chapter about scrbook, scrreprt, and scrartcl of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Kapitel über scrbook, scrreprt und scrartcl in der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\ProvidesFile{scrbookreportarticle.tex}[2008/08/12 KOMA-Script guide (chapter: +scrbook, scrreprt, scrartcl)] + +\chapter{Die Hauptklassen \Class{scrbook}, \Class{scrreprt}, \Class{scrartcl}} +\labelbase{maincls}% +\BeginIndex{Class}{scrbook}% +\BeginIndex{Class}{scrreprt}% +\BeginIndex{Class}{scrartcl}% + +\AddSeeIndex{Anweisung}{gen}{\GuidecmdIndexShort}{cmd}% +\AddSeeIndex{Makro}{gen}{\GuidecmdIndexShort}{cmd}% +Die Hauptklassen des \KOMAScript-Pakets sind als Äquivalent zu den +\LaTeX-Standard"-klassen angelegt. Das bedeutet, dass zu den drei +Standardklassen \Class{book}\IndexClass{book}, \Class{report}% +\IndexClass{report} und \Class{article}\IndexClass{article} im +\KOMAScript-Paket Entsprechungen zu finden sind. Daneben ist auch für die +Standardklasse \Class{letter}\IndexClass{letter} eine Entsprechung vorhanden. +Der Briefklasse in {\KOMAScript} ist jedoch ein eigenes Kapitel gewidmet, da +sie sich von den drei Hauptklassen grundsätzlich unterscheidet (siehe +\autoref{cha:scrlttr2}). + +Die einfachste Möglichkeit, an Stelle einer Standardklasse eine +\KOMAScript-Klasse zu verwenden, ist das Ersetzen des Klassennamens in der +Anweisung \verb|\documentclass| entsprechend \autoref{tab:maincls.overview}, +also beispielsweise \Macro{documentclass}\PParameter{book} durch +\Macro{documentclass}\PParameter{scrbook}. Der anschließende \LaTeX-Lauf +sollte lediglich einige Layoutänderungen mit sich bringen. Ein großer Teil der +in den nachfolgenden Abschnitten beschriebenen vielfältigen Möglichkeiten und +Optionen werden von den \KOMAScript-Klassen zusätzlich geboten. + +\begin{table} + \centering + \caption[Klassengegenüberstellung]{Gegenüberstellung der + Standardklassen und der \KOMAScript-Klassen} + \begin{tabular}{ll} + \toprule + Standard-Klasse & \KOMAScript-Klasse \\%& \Script-Stil (\LaTeX2.09)\\ + \midrule + \Class{article} & \Class{scrartcl} \\%& \File{script\textunderscore s} \\ + \Class{report} & \Class{scrreprt} \\%& \File{script} \\ + \Class{book} & \Class{scrbook} \\%& \File{script} \\ + \Class{letter} & \Class{scrlttr2} \\%& \File{script\textunderscore l} \\ + \bottomrule + \end{tabular} + \label{tab:maincls.overview} +\end{table} + +Lassen Sie mich der Erläuterung der Klassen noch eine Bemerkung +vorausschicken. Oft ist man sich am Anfang eines Dokuments unsicher, welche +Einstellungen konkret zu wählen sind. Bei einigen Einstellungen, wie der +Auswahl des Papierformats, mögen sie bereits vorab feststehen. Aber schon die +Frage nach der Seitenauf"|teilung könnte im Voraus schwer zu beantworten sein. +Andererseits sollten diese Angaben für die Haupttätigkeiten des Autors -- +Entwurf der Gliederung, Schreiben des Textes, Zusammenstellen von Abbildungen, +Tabellen und Verzeichnissen -- zunächst auch unerheblich sein. Konzentrieren +Sie sich als Autor erst einmal auf den Inhalt. Wenn der dann steht, können Sie +sich um die Feinheiten der Form kümmern. Neben der Auswahl der Optionen +gehören dazu dann auch Dinge wie die Korrektur der Trennung und möglicherweise +dezente Eingriffe in den Seitenumbruch oder die Verteilung von Abbildungen und +Tabellen. + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\LoadCommon{0} % \section{Frühe oder späte Optionenwahl} + +\LoadCommon{1} % \section{Kompatibilität zu früheren Versionen von \KOMAScript} + +\LoadCommon{2} % \section{Entwurfsmodus} + +\LoadCommon{3} % \section{Seitenauf"|teilung} + +\begin{Declaration} + \Macro{flushbottom}\\ + \Macro{raggedbottom} +\end{Declaration} +\BeginIndex{Cmd}{raggedbottom}% +\BeginIndex{Cmd}{flushbottom}% +\begin{Explain} + Insbesondere bei doppelseitigen Dokumenten ist es wünschenswert, wenn nicht + nur alle ersten Zeilen eines Satzspiegels mit ihrer Grundlinie auf der + gleichen Höhe liegen, sondern auch die letzten Zeilen einer + Doppelseite. Enthält eine Seite nur Text ohne Absätze und Überschriften, so + hat man das automatisch. Aber bereits dann, wenn Absätze mit einem halben + Grundlinienabstand markiert werden, genügt es, wenn die Anzahl der Absätze + auf der einen Seite um eine ungerade Zahl von der auf der anderen Seite + abweicht, damit dieses Ziel nicht mehr erreicht werden kann. Es ist dann + notwendig, dass man zumindest einige der vertikalen Abstände etwas dehnt + oder staucht, um das Ziel wieder zu erreichen. \TeX{} kennt zu diesem Zweck + dehn- und stauchbare Abstände und \LaTeX{} bietet dann die Möglichkeit, + diesen \emph{vertikalen Ausgleich}\Index{Ausgleich>vertikal} automatisch + durchzuführen. +\end{Explain} + +Wird über die Option \Option{twoside} (siehe \autoref{sec:typearea.options}, +\autopageref{desc:typearea.option.twoside}) doppelseitiger Satz angefordert, +so wird der vertikale Ausgleich ebenfalls eingeschaltet. Man kann ihn aber +auch mit \Macro{flushbottom} jederzeit ab der aktuellen Seite explizit +fordern. Umgekehrt ist es möglich, mit \Macro{raggedbottom} den vertikalen +Ausgleich ab der aktuellen Seite explizit abzuschalten. Dies entspricht der +Voreinstellung bei einseitigem Satz. + +{\KOMAScript} verwendet übrigens einen leicht modifizierten Verzicht auf den +vertikalen Ausgleich. \iffree{}{Näheres dazu ist in + \autoref{sec:maincls-experts.addInfos}, + \autopageref{desc:maincls-experts.cmd.footnoterule} zu erfahren.}% +% +\EndIndex{Cmd}{flushbottom}% +\EndIndex{Cmd}{raggedbottom}% +% +\EndIndex{}{Seitenaufteilung=Seitenauf~"~|teilung} + +\section{Wahl der Schriftgröße für das Dokument} +\LoadCommon{4} % \section{Wahl der Schriftgröße für das Dokument} + +Voreingestellt ist bei \Class{scrbook}, \Class{scrreprt} und \Class{scrartcl} +\OptionValue{fontsize}{11pt}. Demgegenüber ist übrigens bei den +Standardklassen \Option{10pt} voreingestellt. Dies ist bei einem Wechsel von +den Standardklassen zu den \KOMAScript-Klassen gegebenenfalls zu beachten.% +% +\EndIndex{Option}{fontsize~=\PName{Größe}}% +% +\EndIndex{}{Schrift>Groesse=Größe} + + +\LoadCommon{5} % \section{Textauszeichnungen} + +Mit der Anweisung \Macro{usekomafont} kann die aktuelle Schriftart auf +diejenige umgeschaltet werden, die für das angegebene \PName{Element} +definiert ist. + +\begin{Example} + \phantomsection\label{desc:maincls.setkomafont.example}% + Angenommen, Sie wollen, dass für das Element + \FontElement{captionlabel} dieselbe Schriftart wie + für das Element \FontElement{descriptionlabel} verwendet wird. Das + erreichen Sie einfach mit: +\begin{lstcode} + \setkomafont{captionlabel}{% + \usekomafont{descriptionlabel}} +\end{lstcode} + Weitere Beispiele finden Sie in den Abschnitten zu den jeweiligen + Elementen. +\end{Example} + +\begin{desctable} + \caption{Elemente, deren Schrift bei \KOMAScript{} mit + \Macro{setkomafont} und \Macro{addtokomafont} verändert werden + kann\label{tab:maincls.elementsWithoutText}}\\ + \Endfirsthead + \caption[]{Elemente, deren Schrift verändert werden kann + (\emph{Fortsetzung})}\\ + \Endhead% + \standardfoot% + \feentry{caption}{Text einer Abbildungs- oder Tabellenunter- oder + "~überschrift (siehe \autoref{sec:maincls.floats}, + \autopageref{desc:maincls.cmd.caption})}% + \feentry{captionlabel}{% + Label einer Abbildungs- oder Tabellenunter- oder "~überschrift; Anwendung + erfolgt nach dem Element \FontElement{caption} (siehe + \autoref{sec:maincls.floats}, \autopageref{desc:maincls.cmd.caption})}% + \feentry{chapter}{% + Überschrift der Ebene \Macro{chapter} (siehe + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.chapter})}% + \feentry{chapterentry}{% + Inhaltsverzeichniseintrag der Ebene \Macro{chapter} (siehe + \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{chapterentrypagenumber}{% + Seitenzahl des Inhaltsverzeichniseintrags der Ebene \Macro{chapter} + abweichend vom Element \FontElement{chapterentry} (siehe + \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{descriptionlabel}{% + Label, also das optionale Argument der \Macro{item}-Anweisung, in einer + \Environment{description}-Umgebung (\autoref{sec:maincls.lists}, + \autopageref{desc:maincls.env.description})}% + \feentry{dictum}{% + mit \Macro{dictum} gesetzter schlauer Spruch (siehe + \autoref{sec:maincls.dictum}, \autopageref{desc:maincls.cmd.dictum})}% + \feentry{dictumauthor}{% + Urheber eines schlauen Spruchs; Anwendung erfolgt nach dem Element + \FontElement{dictum} (siehe \autoref{sec:maincls.dictum}, + \autopageref{desc:maincls.cmd.dictum})}% + \feentry{dictumtext}{% + alternative Bezeichnung für \FontElement{dictum}}% + \feentry{disposition}{% + alle Gliederungsüberschriften, also die Argumente von \Macro{part} bis + \Macro{subparagraph} und \Macro{minisec} sowie die Überschrift der + Zusammenfassung; die Anwendung erfolgt vor dem Element der jeweiligen + Gliederungsebene (siehe \autoref{sec:maincls.structure} ab + \autopageref{sec:maincls.structure})}% + \feentry{footnote}{% + Marke und Text einer Fußnote (siehe \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.footnote})}% + \feentry{footnotelabel}{% + Marke einer Fußnote; Anwendung erfolgt nach dem Element + \FontElement{footnote} (siehe \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.footnote})}% + \feentry{footnotereference}{% + Referenzierung der Fußnotenmarke im Text (siehe + \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.footnote})}% + \feentry{minisec}{% + mit \Macro{minisec} gesetzte Überschrift (siehe + \autoref{sec:maincls.structure} ab + \autopageref{desc:maincls.cmd.minisec})}% + \feentry{pagefoot}{% + wird nur verwendet, wenn das Paket \Package{scrpage2} geladen ist (siehe + \autoref{cha:scrpage}, \autopageref{desc:scrpage.fontelement.pagefoot})}% + \feentry{pagehead}{% + alternative Bezeichnung für \FontElement{pageheadfoot}}% + \feentry{pageheadfoot}{% + Seitenkopf und Seitenfuß bei allen von \KOMAScript{} definierten + Seitenstilen (siehe \autoref{sec:maincls.pagestyle} ab + \autopageref{sec:maincls.pagestyle})}% + \feentry{pagenumber}{% + Seitenzahl im Kopf oder Fuß der Seite (siehe + \autoref{sec:maincls.pagestyle})}% + \feentry{pagination}{% + alternative Bezeichnung für \FontElement{pagenumber}}% + \feentry{paragraph}{% + Überschrift der Ebene \Macro{paragraph} (siehe + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.paragraph})}% + \feentry{part}{% + Überschrift der Ebene \Macro{part}, jedoch ohne die Zeile mit der Nummer + des Teils (siehe \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.part})}% + \feentry{partentry}{% + Inhaltsverzeichniseintrag der Ebene \Macro{part}}% + \feentry{partentrypagenumber}{% + Seitenzahl des Inhaltsverzeichniseintrags der Ebene \Macro{part} + abweichend vom Element \FontElement{partentry} (siehe + \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{partnumber}{% + Zeile mit der Nummer des Teils in Überschrift der Ebene \Macro{part} + (siehe \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.part})}% + \feentry{section}{% + Überschrift der Ebene \Macro{section} (siehe + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.section})}% + \feentry{sectionentry}{% + Inhaltsverzeichniseintrag der Ebene \Macro{section} (nur bei + \Class{scrartcl} verfügbar, siehe \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{sectionentrypagenumber}{% + Seitenzahl des Inhaltsverzeichniseintrags der Ebene \Macro{section} + abweichend vom Element \FontElement{sectionentry} (nur bei + \Class{scrartcl} verfügbar, siehe \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{sectioning}{% + alternative Bezeichnung für \FontElement{disposition}}% + \feentry{subject}{% + Typisierung des Dokuments, also das Argument von \Macro{subject} auf der + Haupttitelseite (siehe \autoref{sec:maincls.titlepage}, + \autopageref{desc:maincls.cmd.subject})}% + \feentry{subparagraph}{% + Überschrift der Ebene \Macro{subparagraph} (siehe + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.subparagraph})}% + \feentry{subsection}{% + Überschrift der Ebene \Macro{subsection} (siehe + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.subsection})}% + \feentry{subsubsection}{% + Überschrift der Ebene \Macro{subsubsection} (siehe + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.subsubsection})}% + \feentry{subtitle}{% + Untertitel des Dokuments, also das Argument von \Macro{subtitle} auf der + Haupttitelseite (siehe \autoref{sec:maincls.titlepage}, + \autopageref{desc:maincls.cmd.title})}% + \feentry{title}{% + Haupttitel des Dokuments, also das Argument von \Macro{title} (bezüglich + der Größe des Haupttitels siehe die ergänzenden Bemerkungen im Text von + \autoref{sec:maincls.titlepage} ab + \autopageref{desc:maincls.cmd.title})}% +\end{desctable} +% +\EndIndex{Cmd}{setkomafont}% +\EndIndex{Cmd}{addtokomafont}% +\EndIndex{Cmd}{usekomafont}% +% +\EndIndex{}{Schriftart}% +\EndIndex{}{Text>Auszeichnung} + +\LoadCommon{14}% \section{Dokumenttitel} + + +\section{Zusammenfassung} +\label{sec:maincls.abstract} +\BeginIndex{}{Zusammenfassung}% + +Insbesondere bei Artikeln, seltener bei Berichten findet man unmittelbar unter +der Titelei und noch vor dem Inhaltsverzeichnis eine Zusammenfassung. Bei +Verwendung eines Titelkopfes ist die Zusammenfassung in der Regel ein rechts +und links eingezogener Block. Im Vergleich dazu wird bei Verwendung von +Titelseiten die Zusammenfassung eher als Kapitel oder Abschnitt gesetzt. + +\begin{Declaration} + \KOption{abstract}\PName{Ein-Aus-Wert} +\end{Declaration}% +\BeginIndex{Option}{abstract~=\PName{Ein-Aus-Wert}}% +\ChangedAt{v3.00}{\Class{scrreprt}\and \Class{scrartcl}}% +Bei\OnlyAt{\Class{scrreprt}\and \Class{scrartcl}} +den Standardklassen setzt die \Environment{abstract}-Umgebung noch den +zentrierten Titel »\abstractname« vor die Zusammenfassung. Früher war dies +durchaus üblich. Inzwischen sind wir durch das Zeitunglesen darin geübt, einen +entsprechend hervorgehobenen Text am Anfang eines Artikels oder Berichts als +Zusammenfassung zu erkennen. Dies gilt umso mehr, wenn dieser Text noch vor +dem Inhaltsverzeichnis steht. Zudem verwundert es, wenn ausgerechnet diese +Überschrift klein und zentriert ist. {\KOMAScript} bietet mit der Option +\Option{abstract} die Möglichkeit, die Überschrift über der Zusammenfassung +ein- oder auszuschalten. Als \PName{Ein-Aus-Wert} kann einer der +Standardwerte für einfache Schalter aus \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch} verwendet werden. Voreingestellt ist bei +\KOMAScript{} \PValue{false}. + +Bei Büchern wird in der Regel eine andere Art der Zusammenfassung +verwendet. Dort setzt man ein entsprechendes Kapitel an den Anfang oder Ende +des Werks. Oft wird diese Zusammenfassung entweder mit der Einleitung oder +einem weiteren Ausblick verknüpft. Daher gibt es bei \Class{scrbook} überhaupt +keine \Environment{abstract}-Umgebung. Bei Berichten im weiteren Sinne, etwa +einer Studien- oder Diplomarbeit, ist ebenfalls eine Zusammenfassung in dieser +Form zu empfehlen.% +% +\EndIndex{Option}{abstract~=\PName{Ein-Aus-Wert}}% + + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{abstract}}\\ + \quad\dots\\ + \XMacro{end}\PParameter{abstract} +\end{Declaration}% +\BeginIndex{Env}{abstract}% +\OnlyAt{\Class{scrartcl}\and \Class{scrreprt}}% +Einige \LaTeX-Klassen bieten eine spezielle Umgebung für diese +Zusammenfassung, die \Environment{abstract}-Umgebung. Diese wird unmittelbar +ausgegeben, ist also nicht Bestandteil der mit \Macro{maketitle} gesetzten +Titelei. Bitte beachten Sie unbedingt, dass es sich bei \Environment{abstract} +um eine Umgebung und nicht um eine Anweisung handelt. Ob die Zusammenfassung +mit einer Überschrift versehen wird oder nicht, wird über die Option +\Option{abstract} gesteuert (siehe oben). + +Bei Büchern (\Class{scrbook}) ist die Zusammenfassung häufig Bestandteil der +Einleitung oder eines gesonderten Kapitels am Ende des Dokuments. Daher gibt +es hier keine \Environment{abstract}-Umgebung. Bei Verwendung der Klasse +\Class{scrreprt} ist es sicher eine Überlegung wert, ob man nicht genauso +verfahren sollte. Siehe hierzu in \autoref{sec:maincls.structure} die +Anweisungen \Macro{chapter*}\IndexCmd{chapter*} +(\autopageref{desc:maincls.cmd.chapter*}) und +\Macro{addchap}\IndexCmd{addchap} beziehungsweise \Macro{addchap*} +(\autopageref{desc:maincls.cmd.addchap}). + +Wird ein Titelkopf\Index{Titel>-Kopf} (siehe Option \Option{titlepage}, +\autoref{sec:maincls.titlepage}, \autopageref{desc:maincls.option.titlepage}) +verwendet, so wird die Zusammenfassung intern mit Hilfe einer +\Environment{quotation}-Umgebung\IndexEnv{quotation} (siehe +\autoref{sec:maincls.lists}, \autopageref{desc:maincls.env.quotation}) +gesetzt. Dabei werden Absatzanfänge normalerweise mit Einzug gesetzt. Soll der +erste Absatz nicht eingezogen werden, so kann dieser Einzug mit +\Macro{noindent}\IndexCmd{noindent} unmittelbar nach +\Macro{begin}\PParameter{abstract} unterdrückt werden.% +% +\EndIndex{Env}{abstract} +% +\EndIndex{}{Zusammenfassung} + + +\section{Inhaltsverzeichnis} +\label{sec:maincls.toc} +\BeginIndex{}{Inhaltsverzeichnis} + +Auf die Titelei und eine eventuell vorhandene Zusammenfassung folgt +normalerweise das Inhaltsverzeichnis. Häufig findet +man nach dem Inhaltsverzeichnis auch noch die Verzeichnisse der +Gleitumgebungen, beispielsweise von Tabellen und Abbildungen (siehe +\autoref{sec:maincls.floats}). + + +\begin{Declaration} + \KOption{toc}\PName{Einstellung} +\end{Declaration} +\BeginIndex{Option}{toc~=\PName{Einstellung}}% +Neuerdings ist es fast schon üblich geworden Tabellen- und +Abbildungsverzeichnis sowie das Literaturverzeichnis, seltener das +Stichwortverzeichnis, ins Inhaltsverzeichnis aufzunehmen. Dies hat sicher +auch mit der neuen Mode zu tun, Abbildungs- und Tabellenverzeichnis ans +Buchende zu stellen. Beide Verzeichnisse haben von Aufbau und Intention eine +deutliche Ähnlichkeit mit dem Inhaltsverzeichnis. Daher betrachte ich die +Entwicklung skeptisch. Da es keinen Sinn hat, nur das Tabellen- oder nur das +Abbildungsverzeichnis ohne das jeweils andere ins Inhaltsverzeichnis +aufzunehmen, werden mit der \PName{Einstellung}\ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}} +\PValue{listof}\IndexOption{toc~=listof} beide Verzeichnisse +gemeinsam ins Inhaltsverzeichnis aufgenommen. Dabei werden auch Verzeichnisse +berücksichtigt, die mit Hilfe des \Package{float}-Pakets\IndexPackage{float} +ab Version~1.2e (siehe \cite{package:float}) oder \Package{floatrow} (siehe +\cite{package:floatrow}) erstellt werden. Als Verzeichnisse, die den Inhalt +anderer Abschnitte des Werks auf"|führen, erhalten Tabellen"~, Abbildungs- und +die mit den genannten Paketen erzeugten Verzeichnisse grundsätzlich keine +Kapitelnummer. Wer diesen Grundsatz ignorieren will, bedient sich der +\PName{Einstellung} +\PValue{listofnumbered}\IndexOption{toc~=listofnumbered}. + +\leavevmode\phantomsection\nobreak +\label{desc:maincls.option.toc.index}\nobreak +Das Stichwortverzeichnis erhält mit +\OptionValue{toc}{index}\IndexOption{toc~=index} einen Eintrag im +Inhaltsverzeichnis. Da das Stichwortverzeichnis ebenfalls nur Verweise auf den +Inhalt anderer Abschnitte enthält, wird auch dieser Eintrag grundsätzlich +nicht nummeriert. Eine Abweichung von diesem Grundsatz wird von \KOMAScript{} +nicht unterstützt. + +\leavevmode\phantomsection\nobreak +\label{desc:maincls.option.toc.bibliography}\nobreak +Das Literaturverzeichnis stellt eine etwas andere Art von Verzeichnis +dar. Hier wird nicht der Inhalt des vorliegenden Werks aufgelistet, sondern +auf externe Inhalte verwiesen. Mit dieser Begründung könnte man argumentieren, +dass das Literaturverzeichnis ein eigenes Kapitel bzw. einen eigenen Abschnitt +darstelle und somit eine Nummer verdiene. Die Option +\OptionValue{toc}{bibliographynumbered}\IndexOption{toc~=bibliographynumbered} +führt genau dazu, einschließlich des dann fälligen Eintrags im +Inhaltsverzeichnis. Ich selbst bin allerdings der Meinung, dass bei dieser +Argumentation auch ein klassisches, kommentiertes Quellenverzeichnis ein +eigenes Kapitel wäre. Außerdem ist das Literaturverzeichnis letztlich nichts, +was man selbst geschrieben hat. Deshalb erscheint mir allenfalls ein nicht +nummerierter Eintrag im Inhaltsverzeichnis angemessen, was mit der Einstellung +\OptionValue{toc}{bibliography}\IndexOption{toc~=bibliography} erreicht +wird. + +\leavevmode\phantomsection\nobreak +\label{desc:maincls.option.toc.graduated}\nobreak +Normalerweise\ChangedAt{v2.8q}{% + \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} wird das +Inhaltsverzeichnis so formatiert, dass die +Gliederungsebenen unterschiedlich weit eingezogen werden. Dabei wird für die +Gliederungsnummer jeder Ebene ein Raum fester Breite vorgesehen, in dem die +Nummer linksbündig gesetzt wird. Dies entspricht der +Einstellung\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} \OptionValue{toc}{graduated}\IndexOption{toc~=graduated}. + +\leavevmode\phantomsection\nobreak +\label{desc:maincls.option.toc.flat}\nobreak +Werden sehr viele Gliederungspunkte verwendet, so werden die +Gliederungsnummern sehr breit. Damit reicht der vorgesehene Platz nicht +aus. In \cite{DANTE:FAQ} wird für solche Fälle vorgeschlagen, die Erzeugung +des Inhaltsverzeichnisses umzudefinieren. \KOMAScript{} bietet jedoch eine +alternative Formatierung an, bei der das Problem nicht auf"|tritt. Bei +Verwendung der Option \OptionValue{toc}{flat}\IndexOption{toc~=flat} werden +die unterschiedlichen Gliederungsebenen nicht unterschiedlich weit +eingezogen. Stattdessen wird eine tabellenartige Form gewählt, in der alle +Gliederungsnummern und alle Gliederungstexte jeweils in einer Spalte +linksbündig untereinander stehen. Der für die Gliederungsnummern benötigte +Platz wird dabei automatisch ermittelt. + +Einen Überblick über alle möglichen Werte für die \PName{Einstellung} von +\Option{toc} ist in \autoref{tab:maincls.toc} zu finden. + +\begin{desctable} + \caption[{Mögliche Werte für Option \Option{toc}}]{Mögliche Werte für Option + \Option{toc} zur Einstellung von Form und Inhalt des + Inhaltsverzeichnisses\label{tab:maincls.toc}}\\ + \Endfirsthead% + \caption[]{Mögliche Werte für Option \Option{toc} (\emph{Fortsetzung})}\\ + \Endhead% + \standardfoot% + \entry{\PValue{bibliography}, \PValue{bib}}{% + Das Literaturverzeichnis erhält einen Eintrag im Inhaltsverzeichnis, ohne + dass es nummeriert wird.% + \IndexOption{toc~=bibliography}}% + \entry{\PValue{bibliographynumbered}, \PValue{bibnumbered}, + \PValue{numberedbibliography}, \PValue{numberedbib}}{% + Das Literaturverzeichnis erhält einen Eintrag im Inhaltsverzeichnis und + wird nummeriert.% + \IndexOption{toc~=bibliographynumbered}}% + \entry{\PValue{flat}, \PValue{left}}{% + Das Inhaltsverzeichnis erhält eine tabellarische Form. Die + Gliederungsnummern sind dabei die erste Spalte, die Überschriften die + zweite Spalte, die Seitenzahlen die dritte Spalte. Der Platz, der für die + Gliederungsnummern reserviert wird, richtet sich nach dem benötigten Platz + des vorherigen \LaTeX-Laufs.% + \IndexOption{toc~=flat}}% + \entry{\PValue{graduated}, \PValue{indent}, \PValue{indented}}{% + Das Inhaltsverzeichnis erhält eine hierarchische Form. Es steht nur ein + begrenzter Platz für die Gliederungsnummern zur Verfügung.% + \IndexOption{toc~=graduated}}% + \entry{\PValue{index}, \PValue{idx}}{% + Das Stichwortverzeichnis erhält einen Eintrag im Inhaltsverzeichnis, ohne + dass es nummeriert wird.% + \IndexOption{toc~=index}}% + \pventry{listof}{% + Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und + das Tabellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis, + ohne dass sie nummeriert werden.% + \IndexOption{toc~=listof}}% + \entry{\PValue{listofnumbered}, \PValue{numberedlistof}}{% + Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und + das Tabellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis + und werden nummeriert.% + \IndexOption{toc~=listofnumbered}}% + \entry{\PValue{nobibliography}, \PValue{nobib}}{% + Das Literaturverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis.% + \IndexOption{toc~=nobibliography}}% + \entry{\PValue{noindex}, \PValue{noidx}}{% + Das Stichwortverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis.% + \IndexOption{toc~=noindex}}% + \pventry{nolistof}{% + Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und + das Tabellenverzeichnis, erhalten keinen Eintrag im Inhaltsverzeichnis.% + \IndexOption{toc~=nolistof}}% +\end{desctable} +% +\EndIndex{Option}{toc~=\PName{Einstellung}}% + + +\begin{Declaration} + \Macro{tableofcontents} +\end{Declaration}% +\BeginIndex{Cmd}{tableofcontents}% +Die Ausgabe des Inhaltsverzeichnisses erreicht man mit +\Macro{tableofcontents}. Um ein korrektes Inhaltsverzeichnis zu erhalten, sind +nach jeder Änderung mindestens zwei \LaTeX-Läufe notwendig. Mit der oben +erläuterten Option \Option{toc} kann der Umfang und die Form des +Inhaltsverzeichnisses beeinflusst werden. Nach einer Umschaltung sind +ebenfalls mindestens zwei weitere \LaTeX-Läufe notwendig. + +Der Eintrag für die oberste Gliederungsebene unter \Macro{part}, also +\Macro{chapter} bei \Class{scrbook}\IndexClass{scrbook} und +\Class{scrreprt}\IndexClass{scrreprt} beziehungsweise \Macro{section} bei +\Class{scrartcl}\IndexClass{scrartcl}, sowie der Gliederungsebene \Macro{part} +selbst wird nicht eingerückt. Gleichzeitig befinden sich zwischen dem Text der +Gliederungsebene und der Seitenzahl keine Pünktchen. Die typografischen Gründe +dafür liegen in der normalerweise anderen Schriftart sowie der erwünschten +Hervorhebung. Das Inhaltsverzeichnis dieser Anleitung ist mit den +Voreinstellungen gesetzt und dient als Beispiel. +Die\ChangedAt{v2.97c}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} Schrift dieser beiden oberen Inhaltsverzeichniseinträge +ist außerdem über die Elemente +\FontElement{partentry}\IndexFontElement{partentry} und für \Class{scrbook} +und \Class{scrreprt} über +\FontElement{chapterentry}\IndexFontElement{chapterentry} +bzw. \FontElement{sectionentry}\IndexFontElement{sectionentry} für +\Class{scrartcl} einstellbar. Die Schrift der Seitenzahlen kann davon +abweichend über die Elemente +\FontElement{partentrypagenumber}\IndexFontElement{partentrypagenumber} und +\FontElement{chapterentrypagenumber}\IndexFontElement{chapterentrypagenumber} +bzw. +\FontElement{sectionentrypagenumber}\IndexFontElement{sectionentrypagenumber} +eingestellt werden (siehe auch \autoref{sec:maincls.textmarkup}, +\autopageref{desc:maincls.cmd.setkomafont}, sowie +\autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}). Die Voreinstellungen der +Elemente ist \autoref{tab:maincls.tocelements} zu entnehmen. +\begin{table} + \centering + \caption{Schriftvoreinstellungen für die Elemente des Inhaltsverzeichnisses} + \begin{tabular}{ll} + \toprule + Element & Voreinstellung \\ + \midrule + \FontElement{partentry} & + \Macro{usekomafont}\PParameter{disposition}\Macro{large} \\ + \FontElement{partentrypagenumber} & \\ + \FontElement{chapterentry} & \Macro{usekomafont}\PParameter{disposition} + \\ + \FontElement{chapterentrypagenumber} & \\ + \FontElement{sectionentry} & \Macro{usekomafont}\PParameter{disposition} + \\ + \FontElement{sectionentrypagenumber} & \\ + \bottomrule + \end{tabular} + \label{tab:maincls.tocelements} +\end{table} +% +\EndIndex{Cmd}{tableofcontents}% + + +\begin{Declaration} + \Counter{tocdepth} +\end{Declaration}% +\BeginIndex{Counter}{tocdepth}% +Normalerweise werden bei den Klassen \Class{scrbook} und \Class{scrreprt} die +Gliederungsebenen \Macro{part} bis \Macro{subsection} und bei der Klasse +\Class{scrartcl} die Ebenen \Macro{part} bis \Macro{subsubsection} in das +Inhaltsverzeichnis aufgenommen. Gesteuert wird dies über den Zähler +\Counter{tocdepth}. Dabei steht der Wert \(-\)1 für \Macro{part}, 0 für +\Macro{chapter} und so weiter. Durch Setzen oder Erhöhen oder Verringern des +Zählers kann bestimmt werden, bis zu welcher Gliederungsebene Einträge in das +Inhaltsverzeichnis erfolgen sollen. Dies ist übrigens bei den Standardklassen +ganz genauso. + +Bei Verwendung des \Package{scrpage2}-Pakets\IndexPackage{scrpage2} +(siehe \autoref{cha:scrpage}) muss man sich nicht die nummerischen +Werte der einzelnen Gliederungsebenen merken. Dann stehen dafür die +Makros \Macro{chapterlevel}, \Macro{sectionlevel} und so weiter bis +hinunter zu \Macro{subparagraphlevel} zur Verfügung. +\begin{Example} + Angenommen, Sie setzen einen Artikel, bei dem die Gliederungsebene + \Macro{subsubsection} verwendet wird. Gehen wir weiter davon aus, + dass Sie diese Gliederungsebene aber nicht im Inhaltsverzeichnis + haben wollen. Dann könnte die Präambel Ihres Dokuments wie folgt + aussehen: +\begin{lstcode} + \documentclass{scrartcl} + \setcounter{tocdepth}{2} +\end{lstcode} + Sie setzen den Zähler \Counter{tocdepth} also auf 2, weil Sie + wissen, dass dies der Wert für \Macro{subsection} ist. Wissen Sie + stattdessen nur, dass normalerweise bei \Class{scrartcl} Einträge in + das Inhaltsverzeichnis bis zur Ebene \Macro{subsubsection} erfolgen, + können Sie auch einfach vom voreingestellten Wert des Zählers + \Counter{tocdepth} eins abziehen: +\begin{lstcode} + \documentclass{scrartcl} + \addtocounter{tocdepth}{-1} +\end{lstcode} + Wie viel Sie von \Counter{tocdepth} subtrahieren oder dazu addieren + müssen, kön"-nen Sie natürlich auch einfach nach einem ersten + \LaTeX-Lauf im Inhaltsverzeichnis abzählen. +\end{Example} +\iftrue % Umbruchausgleichstext +Falls Sie sich nicht merken wollen, welche Nummer zu welcher Gliederungsebene +gehört: Einfach im Inhaltsverzeichnis abzählen, wie viele Ebenen mehr oder +weniger Sie benötigen, und dann wie in obigem Beispiel mit +\Macro{addtocounter} zu \Counter{tocdepth} addieren oder davon subtrahieren.% +\fi% +\iffalse % Umbruchausgleichstext +Ein kleiner Tip am Rande: In obigem Beispiel benötigen Sie immer irgendein +Vorwissen. Es geht aber auch ohne indem Sie zunächst zwei \LaTeX-Läufe +durchführen. Dann zählen Sie am Inhaltsverzeichnis ab, wieviele Ebenen Sie zu +\Counter{tocdepth} hinzuaddieren oder davon abziehen müssen. Dies erledigen +Sie dann wie eben mit Hilfe von \Macro{addtocounter} in der Präambel Ihres +Dokuments.% +\fi +% +\EndIndex{Counter}{tocdepth}% +% +\EndIndex{}{Inhaltsverzeichnis} + + +\LoadCommon{6} % \section{Absatzauszeichnung} + +\LoadCommon{7} % \section{Erkennung von rechten und linken Seiten} + + +\section{Kopf und Fuß bei vordefinierten Seitenstilen} +\label{sec:maincls.pagestyle} + +Eine der allgemeinen Eigenschaften eines Dokuments ist der +Seitenstil\Index[indexmain]{Seitenstil}. Bei {\LaTeX} versteht man +unter dem Seitenstil in erster Linie den Inhalt der Kopf- und +Fußzeilen. + + +\begin{Declaration} + \KOption{headsepline}\PName{Ein-Aus-Wert}\\ + \KOption{footsepline}\PName{Ein-Aus-Wert} +\end{Declaration}% +\BeginIndex{Option}{headsepline~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Option}{footsepline~=\PName{Ein-Aus-Wert}}% +Mit diesen Optionen kann eingestellt werden, +ob\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} +unter Kolumnentiteln oder über dem Fuß eine horizontale Linie\Index{Trennlinie} +gewünscht wird. Als \PName{Ein-Aus-Wert} kann +einer der Standardwerte für einfache Schalter aus +\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} verwendet +werden. Ein Aktivieren der Option \Option{headsepline} oder die Verwendung +der Option ohne Wertübergabe schaltet die Linie unter den Kolumnentiteln +ein. Ein Aktivieren der Option \Option{footsepline} oder die Verwendung der +Option ohne Wertübergabe schaltet die Linie über der Fußzeile ein. Die +Deaktivierung der Optionen schaltet die jeweilige Linie aus. + +Bei den weiter unten erklärten Seitenstilen \PValue{empty} und \PValue{plain} +hat die Option \Option{headsepline} selbstverständlich keine Auswirkung, da +hier auf einen Seitenkopf\Index{Seitenkopf} ausdrücklich verzichtet werden +soll. Typografisch betrachtet hat eine solche Linie immer die Auswirkung, +dass der Kopf optisch näher an den Text heranrückt. Dies bedeutet nun nicht, +dass der Kopf räumlich weiter vom Textkörper\Index{Textbereich} weggerückt +werden müsste. Stattdessen sollte der Kopf dann bei der Berechnung des +Satzspiegels als zum Textkörper gehörend betrachtet werden. Dies wird bei +{\KOMAScript} dadurch erreicht, dass bei Verwendung der Klassenoption +\Option{headsepline} automatisch die Paketoption \Option{headinclude} mit +gleichem Wert an das \Package{typearea}-Paket weitergereicht +wird. Entsprechendes gilt bei \Option{footsepline} für +\Option{footinclude}. Im Gegensatz zu \Option{headsepline} wirkt sich die +Option \Option{footsepline} auch beim Seitenstil \PValue{plain} aus, da +\PValue{plain} eine Seitenzahl im Fuß ausgibt. Das Paket +\Package{scrpage2}\IndexPackage{scrpage2} (siehe \autoref{cha:scrpage}) bietet +weitere Einflussmöglichkeiten für Linien im Kopf und Fuß.% +% +\EndIndex{Option}{headsepline~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{footsepline~=\PName{Ein-Aus-Wert}}% + + +\begin{Declaration} + \Macro{pagestyle}\Parameter{Seitenstil}\\ + \Macro{thispagestyle}\Parameter{lokaler Seitenstil} +\end{Declaration}% +\BeginIndex{Cmd}{pagestyle}% +\BeginIndex{Cmd}{thispagestyle}% +Üblicherweise wird zwischen vier verschiedenen Seitenstilen unterschieden: +\begin{description} +\item[{\Pagestyle{empty}\BeginIndex{Pagestyle}{empty}}] ist der Seitenstil, + bei dem Kopf- und Fußzeile vollständig leer bleiben. Dies ist bei + {\KOMAScript} vollkommen identisch zu den Standardklassen.% +\item[{\Pagestyle{headings}\BeginIndex{Pagestyle}{headings}}] ist der + Seitenstil für lebende Kolumnentitel. Das sind Kolumnentitel, bei denen + Überschriften automatisch\Index[indexmain]{Kolumnentitel>automatisch} in den + Seitenkopf übernommen werden. Im Internet oder in Beschreibungen zu + \LaTeX-Paketen findet man auch häufig die englische Bezeichnung + »\emph{running headline}«. \OnlyAt{\Class{scrbook}\and \Class{scrreprt}}% + Bei den Klassen \Class{scrbook}\IndexClass{scrbook} und + \Class{scrreprt}\IndexClass{scrreprt} werden dabei im doppelseitigen Layout + die Überschriften der Kapitel und der Abschnitte in der Kopfzeile wiederholt + -- bei {\KOMAScript} jeweils außen, bei den Standardklassen innen. Die + Seitenzahl wird bei {\KOMAScript} im Fuß außen, bei den Standardklassen im + Kopf außen gesetzt. Im einseitigen Layout werden nur die Überschriften der + Kapitel verwendet und bei {\KOMAScript} zentriert im Kopf ausgegeben. Die + Seitenzahlen werden bei {\KOMAScript} dann zentriert im Fuß gesetzt. + \OnlyAt{\Class{scrartcl}}Bei \Class{scrartcl}\IndexClass{scrartcl} wird + entsprechend verfahren, jedoch eine Ebene tiefer bei Abschnitt und + Unterabschnitt angesetzt, da die Gliederungsebene Kapitel hier nicht + existiert. + + Während die Standardklassen automatische Kolumnentitel immer in Versalien -- + also Großbuchstaben -- setzen, verwendet {\KOMAScript} die Schreibweise, die + in der Überschrift vorgefunden wurde. Dies hat verschiedene typografische + Gründe. So sind Versalien als Auszeichnung eigentlich viel zu + mächtig. Verwendet man sie trotzdem, sollten sie um einen Punkt kleiner + gesetzt und leicht gesperrt werden (siehe hierzu beispielsweise + \cite{JTschErfreulich}). All dies findet bei den Standardklassen keine + Beachtung. + + Darüber hinaus können bei den \KOMAScript-Klassen mit den + Optionen \Option{headsepline} und \Option{footsepline} (siehe + \autopageref{desc:maincls.option.headsepline}) Linien unter dem Kopf und + über dem Fuß gesetzt werden.% +\item[{\Pagestyle{myheadings}\BeginIndex{Pagestyle}{myheadings}}] entspricht + weitgehend dem Seitenstil \texttt{headings}, allerdings werden die + Kolumnentitel nicht automatisch\Index[indexmain]{Kolumnentitel>manuell} + erzeugt, sondern liegen in der Verantwortung des Anwenders. Er verwendet + dazu die Anweisungen \Macro{markboth}\IndexCmd{markboth} und + \Macro{markright}\IndexCmd{markright} (siehe + \autopageref{desc:maincls.cmd.markright}). +\item[{\Pagestyle{plain}\BeginIndex{Pagestyle}{plain}}] ist der Seitenstil, + bei dem keinerlei Kolumnentitel\Index{Kolumnentitel} verwendet, sondern nur + eine Seitenzahl\Index{Seitenzahl}\Index{Paginierung} ausgegeben wird. Bei + den Standardklassen wird diese Seitenzahl immer mittig im Fuß + ausgegeben. Bei {\KOMAScript} erfolgt die Ausgabe im + doppelseitigen\Index{doppelseitig} Layout stattdessen außen im Fuß. Der + einseitige Seitenstil entspricht bei {\KOMAScript} dem der Standardklassen.% +\end{description} + +Der Seitenstil kann jederzeit mit Hilfe der \Macro{pagestyle}-Anweisung +gesetzt werden und gilt dann ab der nächsten Seite, die ausgegeben +wird. Üblicherweise setzt man den Seitenstil jedoch nur einmal zu Beginn des +Dokuments oder in der Präambel. + +Für eine Änderung des Seitenstils nur der aktuellen Seite verwendet man +stattdessen die Anweisung \Macro{thispagestyle}. Dies geschieht auch an +einigen Stellen im Dokument automatisch. Beispielsweise wird bei allen +Kapitelanfangsseiten implizit die Anweisung +\Macro{thispagestyle}\PParameter{\Macro{chapterpagestyle}} ausgeführt. + +Bitte beachten Sie auch, dass die Umschaltung zwischen automatischen und +manuellen Kolumnentiteln bei Verwendung des \Package{scrpage2}-Pakets nicht +mehr über den Seitenstil, sondern mit speziellen Anweisungen erfolgt. Die +Seitenstile \texttt{headings} und \texttt{myheadings} sollten nicht zusammen +mit diesem Paket verwendet werden (siehe \autoref{cha:scrpage}, +\autopageref{desc:scrpage.pagestyle.useheadings}). + +\BeginIndex[indexother]{}{Schriftart}% +\BeginIndex{FontElement}{pageheadfoot}% +\BeginIndex{FontElement}{pagefoot}% +\BeginIndex{FontElement}{pagenumber}% +Um die Schriftarten von Kopf und Fuß der Seite oder der Seitenzahl zu +ändern\ChangedAt{v2.8p}{% + \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}, % +verwenden Sie die Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} +(siehe \autoref{sec:maincls.textmarkup}, +\autopageref{desc:maincls.cmd.setkomafont}). Für den Kopf und den Fuß ist +dabei das gleiche Element +\FontElement{pageheadfoot}\IndexFontElement{pageheadfoot} zuständig. Das +Element für die Seitenzahl innerhalb des Kopfes oder Fußes heißt +\FontElement{pagenumber}\IndexFontElement{pagenumber}. Das ebenfalls in den +\KOMAScript-Klassen bereitgestellte Element +\FontElement{pagefoot}\IndexFontElement{pagefoot} wird nur verwendet, wenn man +mit dem Paket \Package{scrpage2}\IndexPackage{scrpage2} (siehe +\autoref{cha:scrpage}, \autopageref{desc:scrpage.fontelement.pagefoot}) +einen Seitenstil definiert, bei dem auch der Fuß Text enthält. + +Die Voreinstellungen sind in \autoref{tab:maincls.defaultFontsHeadFoot} zu +finden. +% +\begin{table} + \centering% + \caption{Schriftvoreinstellungen für die Elemente des Seitenstils} + \begin{tabular}{ll} + \toprule + Element & Voreinstellung \\ + \midrule + \FontElement{pagefoot}\IndexFontElement{pagefoot} & + \\ + \FontElement{pageheadfoot}\IndexFontElement{pagehead} & + \Macro{normalfont}\Macro{normalcolor}\Macro{slshape} \\ + \FontElement{pagenumber}\IndexFontElement{pagenumber} & + \Macro{normalfont}\Macro{normalcolor}\\ + \bottomrule + \end{tabular} + \label{tab:maincls.defaultFontsHeadFoot} +\end{table} +% +\begin{Example} + \leavevmode\phantomsection\label{sec:maincls.pagestyle.example}% + Angenommen, Sie wollen Kopf und Fuß einen Schriftgrad kleiner und kursiv + setzen. Die Seitenzahl soll jedoch nicht kursiv, sondern fett gesetzt + werden. Davon abgesehen, dass das Ergebnis grauenvoll aussehen wird, können + Sie dies wie folgt erreichen: + \begin{lstcode} + \setkomafont{pageheadfoot}{% + \normalfont\normalcolor\itshape\small + } + \setkomafont{pagenumber}{\normalfont\bfseries} + \end{lstcode} + Wollen Sie hingegen lediglich, dass zusätzlich zur bereits voreingestellten + schrägen Variante ebenfalls eine kleinere Schrift verwendet wird, so genügt: + \begin{lstcode} + \addtokomafont{pagehead}{\small} + \end{lstcode} + Wie Sie sehen, ist im letzten Beispiel das Element \FontElement{pagehead} + verwendet. Das gleiche Ergebnis erhalten Sie auch, wenn Sie stattdessen + \FontElement{pageheadfoot} verwenden (siehe + \autoref{tab:maincls.elementsWithoutText}, + \autopageref{tab:maincls.elementsWithoutText}). +\end{Example} +Es ist an dieser Stelle nicht möglich, Versalien für die automatischen +Kolumnentitel zu erzwingen. Wenn Sie dies wünschen, verwenden Sie bitte das +\Package{scrpage2}-Paket (siehe \autoref{cha:scrpage}, +\autopageref{desc:scrpage.option.markuppercase}). + +Die Befehle \Macro{usekomafont}\PParameter{pageheadfoot}, +\Macro{usekomafont}\PParameter{pagenumber} und +\Macro{usekomafont}\PParameter{pagefoot} können beispielsweise dann nützlich +sein, wenn Sie eigene Seitenstile definieren. Falls Sie dafür nicht das +\KOMAScript-Paket \Package{scrpage2} (siehe \autoref{cha:scrpage}), sondern +beispielsweise das Paket \Package{fancyhdr}\IndexPackage{fancyhdr} (siehe +\cite{package:fancyhdr}) einsetzen, können Sie diese Befehle in Ihren +Definitionen verwenden. Dadurch bleiben Sie zu \KOMAScript{} möglichst +kompatibel. Verwenden Sie diese Befehle in Ihren eigenen Definitionen nicht, +so bleiben Schriftänderungen wie in den vorangehenden Beispielen +unbeachtet. Das Paket \Package{scrpage2}\IndexPackage{scrpage2} sorgt selbst +für maximale Kompatibilität.% +\EndIndex{FontElement}{pagenumber}% +\EndIndex{FontElement}{pagefoot}% +\EndIndex{FontElement}{pageheadfoot}% +% +\EndIndex[indexother]{}{Schriftart}% +% +\EndIndex{Cmd}{pagestyle}% +\EndIndex{Cmd}{thispagestyle}% +\EndIndex{Pagestyle}{empty}% +\EndIndex{Pagestyle}{plain}% + + +\begin{Declaration} + \Macro{markboth}\Parameter{linke Marke}\Parameter{rechte Marke}\\ + \Macro{markright}\Parameter{rechte Marke} +\end{Declaration} +\BeginIndex{Cmd}{markboth}% +\BeginIndex{Cmd}{markright}% +Beim Seitenstil \Pagestyle{myheadings} wird der Kolumnentitel nicht +automatisch gesetzt. Stattdessen setzt man ihn mit Hilfe der Anweisungen +\Macro{markboth} und \Macro{markright}. Dabei wird die \PName{linke Marke} +normalerweise im Kopf linker Seiten und die \PName{rechte Marke} im Kopf +rechter Seiten verwendet. Im einseitigen Satz existiert nur die rechte Marke. +Bei Verwendung des Paketes \Package{scrpage2}\IndexPackage{scrpage2} steht +außerdem die Anweisung \Macro{markleft}\IndexCmd{markleft} zur Verfügung. + +Die Anweisungen können auch zusammen mit anderen Seitenstilen verwendet +werden. Bei Kombination mit automatischen Kolumnentiteln, etwa dem Seitenstil +\Pagestyle{headings}, ist der Wirkungsbereich allerdings bis zum nächsten +automatischen Setzen der entsprechenden Marke begrenzt.% +% +\EndIndex{Cmd}{markright}% +\EndIndex{Cmd}{markboth}% +% +\EndIndex{Pagestyle}{headings}% +\EndIndex{Pagestyle}{myheadings}% + + +\begin{Declaration} + \Macro{titlepagestyle}\\ + \Macro{partpagestyle}\\ + \Macro{chapterpagestyle}\\ + \Macro{indexpagestyle} +\end{Declaration}% +\BeginIndex{Cmd}{titlepagestyle}\Index{Titel>Seitenstil}% +\BeginIndex{Cmd}{partpagestyle}\Index{Teil>Seitenstil}% +\BeginIndex{Cmd}{chapterpagestyle}\Index{Kapitel>Seitenstil}% +\BeginIndex{Cmd}{indexpagestyle}\Index{Stichwortverzeichnis>Seitenstil}% +Auf einigen Seiten wird mit Hilfe von \Macro{thispagestyle} automatisch ein +anderer Seitenstil gewählt. Welcher Seitenstil dies ist, wird diesen vier +Makros entnommen, wobei \Macro{partpagestyle} und +\Macro{chapterpagestyle}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} nur bei +den Klassen \Class{scrbook} und \Class{scrreprt} nicht jedoch bei +\Class{scrartcl} existieren. In der Voreinstellung ist der Seitenstil in allen +vier Fällen \PValue{plain}. Die Bedeutung der einzelnen Makros entnehmen Sie +bitte \autoref{tab:specialpagestyles}. +% +\begin{table} + \centering + \caption{Makros zur Festlegung des Seitenstils besonderer Seiten} + \label{tab:specialpagestyles} + \begin{desctabular} + \mentry{titlepagestyle}{Seitenstil der Seite mit der Titelei bei + Titelköpfen (siehe \autoref{sec:maincls.titlepage})}% + \mentry{partpagestyle}{Seitenstil der Seiten mit \Macro{part}-Titeln + (siehe \autoref{sec:maincls.structure})}% + \mentry{chapterpagestyle}{Seitenstil auf Kapitelanfangsseiten (siehe + \autoref{sec:maincls.structure})}% + \mentry{indexpagestyle}{Seitenstil der ersten Stichwortverzeichnisseite + (siehe \autoref{sec:maincls.index})}% + \end{desctabular} +\end{table} +% +Die Seitenstile können mit Hilfe von \Macro{renewcommand} umdefiniert +werden. +\begin{Example} + Angenommen, Sie wollen nicht, dass die Seiten mit der + \Macro{part}-Überschrift mit einer Nummer versehen werden. Dann setzen Sie + folgende Anweisung beispielsweise in der Präambel Ihres Dokuments: +\begin{lstcode} + \renewcommand*{\partpagestyle}{empty} +\end{lstcode} + Wie Sie auf \autopageref{desc:maincls.pagestyle.empty} erfahren haben, ist + der Seitenstil \PValue{empty} genau das, was in diesem Beispiel verlangt + wird. Natürlich können Sie auch einen selbst definierten Seitenstil + verwenden. + + Angenommen, Sie haben mit dem Paket \Package{scrpage2} (siehe + \autoref{cha:scrpage}) einen eigenen Seitenstil für + Kapitelanfangsseiten definiert. Diesem Seitenstil haben Sie den + passenden Namen \PValue{chapter} gegeben. Um diesen nun auch + tatsächlich zu verwenden, definieren Sie das Makro + \Macro{chapterpagestyle} entsprechend um: +\begin{lstcode} + \renewcommand*{\chapterpagestyle}{chapter} +\end{lstcode} + + Angenommen, Sie wollen das Inhaltsverzeichnis eines Buches + insgesamt nicht mit Seitenzahlen versehen. Danach soll + aber wieder mit dem Seitenstil \PValue{headings} gearbeitet + werden, sowie mit \PValue{plain} auf den Kapitelanfangsseiten. Dann + verwenden Sie beispielsweise: +\begin{lstcode} + \clearpage + \pagestyle{empty} + \renewcommand*{\chapterpagestyle}{empty} + \tableofcontents + \clearpage + \pagestyle{headings} + \renewcommand*{\chapterpagestyle}{plain} +\end{lstcode} + Sie können die Umdefinierung des Seitenstils für Kapitelanfangsseiten aber + auch lokal halten. Das hat den Vorteil, dass Sie dann keine Annahmen über + die vor der Änderung gültige Einstellung treffen müssen. Die Änderung + des Seitenstils selbst können Sie gleichermaßen lokal halten: +\begin{lstcode} + \clearpage + \begingroup + \pagestyle{empty} + \renewcommand*{\chapterpagestyle}{empty} + \tableofcontents + \clearpage + \endgroup +\end{lstcode} + Beachten Sie jedoch, dass Sie niemals eine nummerierte + Gliederungsüberschrift in eine Gruppe packen sollten. Anderenfalls können + Anweisungen wie \Macro{label} rasch zu unvorhergesehenen Ergebnissen + führen. +\end{Example} + +\begin{Explain} + Wer nun glaubt, er könne auf Kapitelanfangsseiten ebenfalls mit + lebenden Kolumnentiteln arbeiten, indem er einfach eine Definition + wie + % Umbruchkorrektur: listings korrigieren! + \begin{lstcode}[belowskip=\dp\strutbox] + \renewcommand*{\chapterpagestyle}{headings} + \end{lstcode} + verwendet, sollte in \autoref{sec:maincls-experts.addInfos}, + \autopageref{desc:maincls-experts.cmd.rightmark} Näheres über die + Hintergründe zu \Macro{rightmark} nachlesen. +\end{Explain} +% +\EndIndex{Cmd}{titlepagestyle}% +\EndIndex{Cmd}{partpagestyle}% +\EndIndex{Cmd}{chapterpagestyle}% +\EndIndex{Cmd}{indexpagestyle}% + + +\begin{Declaration} + \Macro{pagenumbering}\Parameter{Nummerierungsstil} +\end{Declaration} +\BeginIndex{Cmd}{pagenumbering}% +Diese Anweisung funktioniert bei \KOMAScript{} in der gleichen Weise wie +bei den Standardklassen. Genau genommen handelt es sich dabei weder um eine +Fähigkeit der Standardklassen noch der \KOMAScript-Klassen, sondern um eine +Anweisung des \LaTeX-Kerns. Sie wird verwendet, um den +\PName{Nummerierungsstil} für die Seitenzahlen umzuschalten. + +Die Umschaltung gilt ab sofort, also ab der Seite, auf der diese Anweisung +aufgerufen wird. Gegebenenfalls sollte also zuvor mit \Macro{clearpage} oder +\Macro{cleardoublepage} diese Seite erst beendet werden. Mögliche Angaben für +den \PName{Nummerierungsstil} sind \autoref{tab:numberKind} zu entnehmen. + +Der Aufruf von \Macro{pagenumbering} setzt immer die +Seitenzahl\Index{Seitenzahl} zurück. Die aktuelle Seite bekommt also die +Nummer 1 im gewählten \PName{Nummerierungsstil}. +% +\begin{table} + \centering + \caption{Verfügbare Nummerierungsstile für Seitenzahlen} + \begin{tabular}{lll} + \toprule + Nummerierungsstil & Beispiel & Bedeutung \\ + \midrule + \PValue{arabic} & 8 & arabische Zahlen \\ + \PValue{roman} & viii & kleine römische Zahlen \\ + \PValue{Roman} & VIII & große römische Zahlen \\ + \PValue{alph} & h & Kleinbuchstaben \\ + \PValue{Alph} & H & Großbuchstaben \\ + \bottomrule + \end{tabular} + \label{tab:numberKind} +\end{table} +% +\EndIndex{Cmd}{pagenumbering} + + +\LoadCommon{8}% \section{Vakatseiten} + +\LoadCommon{9}% \section{Fußnoten} +\LoadCommon{10}% -"- +\LoadCommon{11}% -"- + +\section[Abgrenzung]{Abgrenzung\protect\OnlyAt{\Class{scrbook}}} +\label{sec:maincls.separation} + +Bei Büchern gibt es teilweise die Grobauf"|teilung in +\emph{Vorspann}\Index{Vorspann}, \emph{Hauptteil}\Index{Hauptteil} und +\emph{Nachspann}\Index{Nachspann}. Auch \KOMAScript{} bietet für +\Class{scrbook} diese Möglichkeit. + + +\begin{Declaration} + \Macro{frontmatter}\\ + \Macro{mainmatter}\\ + \Macro{backmatter} +\end{Declaration}% +\BeginIndex{Cmd}{frontmatter}% +\BeginIndex{Cmd}{mainmatter}% +\BeginIndex{Cmd}{backmatter}% +Mit \Macro{frontmatter} wird der Vorspann eingeleitet. Im Vorspann werden die +nummerierten Seiten mit römischen Seitenzahlen versehen. Kapitelüberschriften +sind im Vorspann nicht nummeriert. Abschnittsüberschriften wären jedoch +nummeriert, gingen von Kapitelnummer 0 aus und wären außerdem über +Kapitelgrenzen hinweg durchgehend nummeriert. Dies spielt jedoch keine Rolle, +da der Vorspann allenfalls für die Titelei, das +Inhalts-\Index{Inhaltsverzeichnis}, Abbildungs-\Index{Abbildungen>Verzeichnis + der} und Tabellenverzeichnis\Index{Tabellen>Verzeichnis der} und ein +Vorwort\Index{Vorwort} verwendet wird. Das Vorwort kann also als normales +Kapitel gesetzt werden. Ein Vorwort sollte niemals in Abschnitte unterteilt, +sondern möglichst kurz gefasst werden. Im Vorwort wird also keine tiefere +Gliederungsebene als Kapitel benötigt. + +Für den Fall, dass der Anwender dies anders sieht und nummerierte +Abschnitte\Index{Abschnitt>Nummer} in den Kapiteln des Vorspanns haben will, +enthält ab Version~2.97e\ChangedAt{v2.97e}{\Class{scrbook}} die Nummerierung +der Abschnitte keine Kapitelnummer. Diese Änderung gibt es nur, wenn eine +Kompatibilität ab Version~2.97e eingestellt ist (siehe Option +\Option{version}, \autoref{sec:maincls.compatibilityOptions}, +\autopageref{desc:maincls.option.version}). Es wird ausdrücklich darauf +hingewiesen, dass dadurch bezüglich der Nummern eine Verwechslung mit +Kapitelnummern gegeben ist! Die Verwendung von \Macro{addsec} und +\Macro{section*} (siehe \autoref{sec:maincls.structure}, +\autopageref{desc:maincls.cmd.section*} und +\autopageref{desc:maincls.cmd.addsec}) sind aus Sicht des Autors im Vorspann +deshalb unbedingt vorzuziehen! + +Ab Version~2.97e\ChangedAt{v2.97e}{\Class{scrbook}} enthalten auch die Nummern +für Gleitumgebungen wie Tabellen\Index{Tabellen>Nummern} und +Abbildungen\Index{Abbildungen>Nummern} und die +Gleichungsnummern\Index{Gleichungen>Nummern} im Vorspann keinen +Kapitelanteil. Auch dies erfordert eine entsprechende +Kompatibilitätseinstellung (siehe Option \Option{version}, +\autoref{sec:maincls.compatibilityOptions}, +\autopageref{desc:maincls.option.version}). + +\looseness=-1 +Mit \Macro{mainmatter} wird der Hauptteil eingeleitet. Existiert kein +Vorspann, so kann diese Anweisung auch entfallen. Im Hauptteil sind arabische +Seitenzahlen voreingestellt. Die Seitenzählung beginnt im Hauptteil neu mit +der 1. + +Mit \Macro{backmatter} wird der Nachspann eingeleitet. Was zum Nachspann +gehört, ist unterschiedlich. Manchmal wird im Nachspann nur das +Literaturverzeichnis\Index{Literaturverzeichnis}, manchmal nur das +Stichwortverzeichnis\Index{Stichwortverzeichnis} gesetzt. Manchmal erscheint +der gesamte Anhang im Nachspann. Der Nachspann gleicht bezüglich der +Gliederungsüberschriften dem Vorspann. Eine getrennte Seitennummerierung ist +jedoch nicht vorgesehen. Falls Sie dies ebenfalls benötigen, bedienen Sie sich +bitte der Anweisung \Macro{pagenumbering} aus \autoref{sec:maincls.pagestyle}, +\autopageref{desc:maincls.cmd.pagenumbering}.% +% +\EndIndex{Cmd}{frontmatter}% +\EndIndex{Cmd}{mainmatter}% +\EndIndex{Cmd}{backmatter}% + + +\section{Gliederung} +\label{sec:maincls.structure}% +\BeginIndex{}{Gliederung} + +Unter der Gliederung versteht man die Einteilung eines Dokuments in +Teile, Kapitel, Abschnitte und weitere Gliederungsebenen. + + +\begin{Declaration} + \KOption{open}\PName{Methode} +\end{Declaration}% +\BeginIndex{Option}{open~=\PName{Methode}}% +\OnlyAt{\Class{scrbook}\and \Class{scrreprt}}% +Bei den \KOMAScript-Klassen \Class{scrbook} und \Class{scrreprt} kann gewählt +werden, wo im doppelseitigen Satz neue Kapitel beginnen. In der Voreinstellung +beginnen bei \Class{scrreprt} neue Kapitel\Index{Kapitel>Anfang} auf der +nächsten neuen Seite. Dies entspricht der \PName{Methode} +\PValue{any}. Demgegenüber beginnen bei \Class{scrbook} neue Kapitel auf der +nächsten rechten Seite. Dies entspricht der \PName{Methode} \PValue{right} und +ist bei den meisten Büchern üblich. In einigen Fällen sollen neue Kapitel +jedoch auf der linken Seite einer kompletten Doppelseite beginnen. Dies +entspricht der \PName{Methode} +\PValue{left}\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}}. Eine +Zusammenfassung der möglichen Werte findet sich noch einmal in +\autoref{tab:maincls.open}. + +\begin{table} + \caption[{Mögliche Werte für Option \Option{open}}]{Mögliche Werte für + Option \Option{open} zur Auswahl von Umbrüchen mit Vakatseiten} + \begin{desctabular} + \pventry{any}{Die Anweisungen + \Macro{cleardoublepage}, \Macro{cleardoubleplainpage}, + \Macro{cleardoubleemptypage}, \Macro{cleardoublepageusingstyle} und + \Macro{cleardoublestandardpage} erzeugen einen Seitenumbruch und + entsprechen damit \Macro{clearpage}.\IndexOption{open~=any}}% + \pventry{left}{Die Anweisungen + \Macro{cleardoublepage}, \Macro{cleardoubleplainpage}, + \Macro{cleardoubleemptypage}, \Macro{cleardoublepageusingstyle} und + \Macro{cleardoublestandardpage} erzeugen einen Seitenumbruch und fügen + ggf. eine Vakatseite\Index{Vakatseite} ein, um im doppelseitigen + Satz auf die nächste linke Seite zu gelangen.\IndexOption{open~=left}}% + \pventry{right}{Die Anweisungen + \Macro{cleardoublepage}, \Macro{cleardoubleplainpage}, + \Macro{cleardoubleemptypage}, \Macro{cleardoublepageusingstyle} und + \Macro{cleardoublestandardpage} erzeugen einen Seitenumbruch und fügen + ggf. eine Vakatseite ein, um im doppelseitigen Satz auf die nächste + rechte Seite zu gelangen.\IndexOption{open~=right}}% + \end{desctabular} + \label{tab:maincls.open} +\end{table} + +Neben den Kapitelanfängen wirkt sich die Option auch auf die explizite +Verwendung der Anweisung\Macro{cleardoublepage} ebenso wie auf die +Umbruch\-anweisungen \Macro{cleardoublepageusingstyle}, +\Macro{cleardoublestandardpage}, \Macro{cleardoubleplainpage} und +\Macro{cleardoubleemptypage} aus. Siehe dazu \autoref{sec:maincls.pagestyle}, +\autopageref{desc:maincls.cmd.cleardoublepage}. Da im einseitigen Satz nicht +zwischen linken und rechten Seiten unterschieden wird, hat die Option dort +keine Wirkung. + +Bei der Klasse \Class{scrartcl} ist die oberste Gliederungsebene unter dem +Teil der Abschnitt. Daher unterstützt \Class{scrartcl} diese Option nicht.% +% +\EndIndex{Option}{open~=\PName{Methode}} + + +\begin{Declaration} + \KOption{chapterprefix}\PName{Ein-Aus-Wert}\\ + \KOption{appendixprefix}\PName{Ein-Aus-Wert} +\end{Declaration}% +\BeginIndex{Option}{chapterprefix~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Option}{appendixprefix~=\PName{Ein-Aus-Wert}}% +Bei\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} den Standardklassen +\Class{book} und \Class{report} werden Kapitelüberschriften% +\Index{Kapitel>Ueberschrift=Überschrift} in der Form ausgegeben, dass zunächst +in einer Zeile »Kapitel«\footnote{Bei Verwendung einer anderen Sprache als + Deutsch wird »Kapitel« selbstverständlich in der jeweiligen Sprache + gesetzt.} % +gefolgt von der Kapitelnummer steht. Erst ab der nächsten Zeile wird dann die +Überschrift in linksbündigem Flattersatz ausgegeben. Bei {\KOMAScript} kann +dieses Verhalten mit der Klassenoption \Option{chapterprefix} ebenfalls +erreicht werden. Als \PName{Ein-Aus-Wert} kann einer der Standardwerte für +einfache Schalter aus \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch} verwendet werden. Voreingestellt ist das +Verhalten \OptionValue{chapterprefix}{false}, während das Verhalten der +Standardklassen \OptionValue{chapterprefix}{true} entspricht. Die Optionen +wirken sich außerdem auf das Aussehen der automatischen Kolumnentitel für +Kapitel aus (siehe \autoref{sec:maincls.pagestyle}, +\autopageref{desc:maincls.pagestyle.headings}). + +Zuweilen kommt es vor, dass man die Kapitelüberschriften im Hauptteil durchaus +in der einfachen Form von \OptionValue{chapterprefix}{false} setzen +möchte. Gleichzeitig sollen die Überschriften im Anhang\Index{Anhang} jedoch +davon abweichend mit einer Präfixzeile, »Anhang« gefolgt vom Buchstaben des +Anhangs, versehen werden. Dies ist mit \Option{appendixprefix} möglich. Da +sich jedoch dadurch ein inkonsistentes Layout ergibt, rate ich von der +Verwendung ab.% +% +\EndIndex{Option}{appendixprefix~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{chapterprefix~=\PName{Ein-Aus-Wert}}% + + +\begin{Declaration} + \KOption{headings}\PName{Einstellung} +\end{Declaration} +\BeginIndex{Option}{headings~=\PName{Einstellung}}% +Die Überschriften\index{Ueberschriften=Überschriften} werden sowohl bei den +Standardklassen als auch bei {\KOMAScript} normalerweise recht groß +gesetzt. Dies gefällt nicht jedem und wirkt insbesondere bei kleinen +Papiergrößen oft störend. Daher stehen bei {\KOMAScript} neben den mit der +Option \OptionValue{headings}{big}\IndexOption{headings~=big}% +\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} +standardmäßig sehr groß voreingestellen Überschriften die beiden Möglichkeiten +\OptionValue{headings}{normal}\IndexOption{headings~=normal} und +\OptionValue{headings}{small}\IndexOption{headings~=small} zur Verfügung, mit +denen man insgesamt kleinere Überschriften erhält. Die aus den Optionen +resultierenden Schriftgrößen sind für die Überschriften der Klassen +\Class{scrbook} und \Class{scrreprt} +\autoref{tab:maincls.structureElementsFont}, +\autopageref{tab:maincls.structureElementsFont} zu entnehmen. Bei +\Class{scrartcl} werden generell etwas kleinere Überschriften verwendet. +\OnlyAt{\Class{scrbook}\and \Class{scrreprt}}Die Abstände vor und nach +Kapitelüberschriften werden von diesen Optionen ebenfalls beeinflusst. + +\iftrue Auf Kapitelüberschriften wirkt sich außerdem die Option +\Option{headings} mit den Einstellungen \PValue{twolinechapter} oder +\PValue{onelinechapter} aus, die den oben erklärten Optionen +\OptionValue{chapterprefix}{true} und \OptionValue{chapterprefix}{false} +entsprechen. Im Anhang gibt es zusätzlich Auswirkungen durch die +Einstellungen \PValue{onelineappendix} und \PValue{twolineappendix} für Option +\Option{headings}, was dann \OptionValue{appendixprefix}{false} und +\OptionValue{appendixprefix}{true} entspricht (siehe ebenfalls oben). \else +Auf Kapitelüberschriften wirken sich zudem +\OptionValue{headings}{twolinechapter} und +\OptionValue{headings}{onelinechapter}, was den Optionen +\OptionValue{chapterprefix}{true} und \OptionValue{chapterprefix}{false} +entspricht (siehe oben), sowie entsprechend im Anhang +\OptionValue{headings}{twolineappendix} und +\OptionValue{headings}{onelineappendix} aus, was den Optionen +\OptionValue{appendixprefix}{true} und \OptionValue{appendixprefix}{false} +entspricht (siehe ebenfalls oben). \fi + +\OnlyAt{\Class{scrbook}\and \Class{scrreprt}}Für Kapitel kann außerdem mit +\OptionValue{headings}{openany}, \OptionValue{headings}{openright} und +\OptionValue{headings}{openleft} die Methode für Kapitelanfänge alternativ zur +Verwendung der Option \Option{open} mit den Werten \PValue{any}, +\PValue{right} und \PValue{left} (siehe oben) gesetzt werden. + +Eine Zusammenfassung der möglichen Einstellungen für Option +\Option{headings} finden Sie in \autoref{tab:maincls.headings}. + +\begin{desctable} + \caption[{Mögliche Werte für Option \Option{headings}}]{Mögliche Werte für + Option \Option{headings} zur Einstellung der Überschriften% + \label{tab:maincls.headings}}\\ + \Endfirsthead + \caption[]{Mögliche Werte für Option \Option{headings} + (\emph{Fortsetzung})}\\ + \Endhead% + \standardfoot% + \pventry{big}{% + Verwende große Überschriften mit großen Abständen darüber und darunter.% + \IndexOption{headings~=big}}% + \pventry{normal}{% + Verwende mittelgroße Überschriften mit mittelgroßen Abständen darüber und + darunter.% + \IndexOption{headings~=normal}}% + \entry{\PValue{onelineappendix}, \PValue{noappendixprefix}, + \PValue{appendixwithoutprefix}, \PValue{appendixwithoutprefixline}% + \IndexOption{headings~=onelineappendix}}{% + Kapitelüberschriften im Anhang werden wie andere Überschriften auch + gesetzt.}% + \entry{\PValue{onelinechapter}, \PValue{nochapterprefix}, + \PValue{chapterwithoutprefix}, \PValue{chapterwithoutprefixline}% + \IndexOption{headings~=onelinechapter}}{% + Kapitelüberschriften werden wie andere Überschriften auch gesetzt.}% + \pventry{openany}{% + Teile, Kapitel, Index und Nachspann verwenden \Macro{clearpage}, aber nicht + \Macro{cleardoublepage}.% + \IndexOption{headings~=openany}}% + \pventry{openleft}{% + Die Anweisungen \Macro{cleardoublepage}\IndexCmd{cleardoublepage}, + \Macro{cleardoubleplainpage}\IndexCmd{cleardoubleplainpage}, + \Macro{cleardoubleemptypage}\IndexCmd{cleardoubleemptypage}, + \Macro{cleardoublepageusingstyle}\IndexCmd{cleardoublepageusingstyle} und + \Macro{cleardoublestandardpage}\IndexCmd{cleardoublestandardpage} erzeugen + einen Seitenumbruch und fügen ggf. eine Vakatseite\Index{Vakatseite} ein, + um im doppelseitigen Satz auf die nächste linke Seite zu gelangen. Teile, + Kapitel, Index und Nachspann verwenden \Macro{cleardoublepage}.% + \IndexOption{headings~=openleft}}% + \pventry{openright}{% + Die Anweisungen \Macro{cleardoublepage}\IndexCmd{cleardoublepage}, + \Macro{cleardoubleplainpage}\IndexCmd{cleardoubleplainpage}, + \Macro{cleardoubleemptypage}\IndexCmd{cleardoubleemptypage}, + \Macro{cleardoublepageusingstyle}\IndexCmd{cleardoublepageusingstyle} und + \Macro{cleardoublestandardpage}\IndexCmd{cleardoublestandardpage} erzeugen + einen Seitenumbruch und fügen ggf. eine Vakatseite\Index{Vakatseite} ein, + um im doppelseitigen Satz auf die nächste rechte Seite zu gelangen. Teile, + Kapitel, Index und Nachspann verwenden \Macro{cleardoublepage}.% + \IndexOption{headings~=openright}}% + \pventry{small}{% + Verwende kleine Überschriften mit kleinen Abständen darüber und darunter.% + \IndexOption{headings~=small}}% + \entry{\PValue{twolineappendix}, \PValue{appendixprefix}, + \PValue{appendixwithprefix}, \PValue{appendixwithprefixline}% + \IndexOption{headings~=twolineappendix}}{% + Kapitelüberschriften im Anhang werden mit einer Vorsatzzeile gesetzt, + deren Inhalt von \Macro{chapterformat}\IndexCmd{chapterformat} bestimmt + wird.}% + \entry{\PValue{twolinechapter}, \PValue{chapterprefix}, + \PValue{chapterwithprefix}, \PValue{chapterwithprefixline}% + \IndexOption{headings~=twolinechapter}}{% + Kapitelüberschriften werden mit einer Vorsatzzeile gesetzt, deren Inhalt + von \Macro{chapterformat}\IndexCmd{chapterformat} bestimmt wird.}% +\end{desctable} +% +\EndIndex{Option}{headings~=\PName{Einstellung}}% + + +\begin{Declaration} + \KOption{numbers}\PName{Einstellung} +\end{Declaration}% +\BeginIndex{Option}{numbers~=\PName{Einstellung}}% +Nach {\small DUDEN} steht in Gliederungen\Index{Gliederung}, in denen +ausschließlich arabische Ziffern für die Nummerierung\Index{Nummerierung} +verwendet werden, am Ende der Gliederungsnummern kein abschließender Punkt +(siehe \cite[R\,3]{DUDEN}). Wird hingegen innerhalb der Gliederung auch mit +römischen Zahlen oder Groß- oder Kleinbuchstaben gearbeitet, so steht am Ende +aller Gliederungsnummern ein abschließender Punkt (siehe +\cite[R\,4]{DUDEN}). In {\KOMAScript} ist ein Automatismus eingebaut, der +diese etwas komplexe Regel zu erfüllen versucht. Der Automatismus wirkt sich +so aus, dass normalerweise bei Verwendung des Gliederungsbefehls \Macro{part} +oder eines Anhangs (\Macro{appendix}) auf Gliederungsnummer mit abschließendem +Punkt umgeschaltet wird. Diese Information wird in der \File{aux}-Datei +gespeichert und wirkt sich dann beim nächsten \LaTeX-Lauf auf das gesamte +Dokument aus. + +Manchmal versagt der mit +\OptionValue{numbers}{autoendperiod}\IndexOption{numbers~=autoendperiod} +voreingestellte Automatismus zum Setzen oder Weglassen des abschließenden +Punktes in der Gliederungsnummer oder andere Sprachen sehen andere Regeln +vor. Deshalb ist es mit der Einstellung +\OptionValue{numbers}{endperiod}\IndexOption{numbers~=endperiod} möglich, den +Punkt manuell vorzuschreiben oder mit \OptionValue{numbers}{noendperiod} zu +verbieten. + +Es ist zu beachten, dass der Automatismus immer erst für den nächsten +\LaTeX-Lauf die Verwendung des abschließenden Punktes ein- oder +ausschaltet. Bevor also versucht wird, die korrekte Darstellung über +Verwendung einer der Optionen zu erzwingen, sollte grundsätzlich ein +weiterer \LaTeX-Lauf ohne Dokumentänderung durchgeführt werden. + +Ein Zusammenfassung der möglichen Werte für die \PName{Einstellung} von +\PName{numbers} bietet \autoref{tab:maincls.numbers}. Im Unterschied zu den +meisten anderen Einstellungen, kann diese Option nur in der Dokumentpräambel, +also vor \Macro{begin}\PParameter{document} vorgenommen werden. + +\begin{table} + \caption[{Mögliche Werte für Option \Option{numbers}}]{Mögliche Werte für + Option \Option{numbers} zur Auswahl des Abschlusspunkts in + Gliederungsnummern} + \label{tab:maincls.numbers} + \begin{desctabular} + \entry{\PValue{autoendperiod}, \PValue{autoenddot}, \PValue{auto}}{% + \KOMAScript{} trifft die Entscheidung, ob am Ende von Gliederungsnummern + und allen von Gliederungsnummern abhängigen Nummern ein Punkt gesetzt + wird, selbst. Kommen in sämtlichen Gliederungsnummern nur arabische + Ziffern vor, so wird kein Punkt gesetzt. Wird in einer Gliederungsnummer + ein Buchstabe oder eine römische Zahl entdeckt, so wird der Punkt bei + allen Nummern gesetzt. Referenzen auf diese Nummern werden jedoch ohne + abschließenden Punkt gesetzt.% + \IndexOption{numbers~=autoendperiod}}% + \entry{\PValue{endperiod}, \PValue{withendperiod}, \PValue{periodatend}, + \PValue{enddot}, \PValue{withenddot}, \PValue{dotatend}}{% + Bei sämtlichen Gliederungsnummern und davon abhängigen Nummern wird am + Ende ein Punkt gesetzt, der bei der Referenzierung entfällt.% + \IndexOption{numbers~=endperiod}}% + \entry{\PValue{noendperiod}, \PValue{noperiodatend}, + \PValue{noenddot}, \PValue{nodotatend}}{% + Gliederungsnummern und davon abhängige Nummern werden ohne + abschließenden Punkt gesetzt.% + \IndexOption{numbers~=noendperiod}}% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{numbers~=\PName{Einstellung}}% + + +\begin{Declaration} + \Option{chapteratlists}\\ + \XOption{chapteratlists}=\PName{Wert} +\end{Declaration}% +\BeginIndex{Option}{chapteratlists}% +\BeginIndex{Option}{chapteratlists~=\PName{Wert}}% +\OnlyAt{\Class{scrbook}\and \Class{scrreprt}}% +Wie auch bei der Option \Option{listof} in \autoref{sec:maincls.floats}, +\autopageref{desc:maincls.option.listof} erwähnt wird, fügt +normalerweise\ChangedAt{v2.96a}{\Class{scrbook}\and \Class{scrreprt}} jeder +mit \Macro{chapter} erzeugte Kapiteleintrag einen vertikalen Abstand in die +Verzeichnisse der Gleitumgebungen ein. Seit Version~2.96a gilt dies auch für +die Anweisung \Macro{addchap}, wenn nicht eine Kompatibilitätseinstellung zu +einer früheren Version gewählt wurde (siehe Option \Option{version} in +\autoref{sec:maincls.compatibilityOptions}, +\autopageref{desc:maincls.option.version}). + +Außerdem kann mit der Option \Option{chapteratlists} der Abstand verändert +werden. Dazu gibt man als \PName{Wert} den gewünschten Abstand an. Bei der +Voreinstellung +\OptionValue{listof}{chaptergapsmall}\IndexOption{listof~=chaptergapsmall} +sind dies 10\Unit{pt}. Mit der Einstellung \OptionValue{chapteratlists}{entry} +oder bei Verwendung der Form \Option{chapteratlists} ohne Angabe eines Wertes +wird statt des Abstandes der Kapiteleintrag selbst in die Verzeichnisse +eingetragen. Es wird darauf hingewiesen, dass ein solcher Eintrag auch dann +erfolgt, wenn das Kapitel keine Gleitumgebung enthält. + +Es ist zu beachten, dass sich eine Änderung der Einstellung je nach Art der +Änderung erst nach zwei weiteren \LaTeX-Läufen im Verzeichnis auswirkt.% +% +\EndIndex{Option}{chapteratlists~=\PName{Wert}}% +\EndIndex{Option}{chapteratlists}% + + +\begin{Declaration} + \Macro{part}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{chapter}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{section}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{subsection}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{subsubsection}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{paragraph}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{subparagraph}\OParameter{Kurzform}\Parameter{Überschrift} +\end{Declaration}% +\BeginIndex{Cmd}{part}\Index[indexmain]{Teil}% +\BeginIndex{Cmd}{chapter}\Index[indexmain]{Kapitel}% +\BeginIndex{Cmd}{section}\Index[indexmain]{Abschnitt}% +\BeginIndex{Cmd}{subsection}% +\BeginIndex{Cmd}{subsubsection}% +\BeginIndex{Cmd}{paragraph}% +\BeginIndex{Cmd}{subparagraph}% +Die Standardgliederungsbefehle funktionieren bei {\KOMAScript} beinahe genau +wie bei den Standardklassen. So kann ganz normal über ein optionales Argument +ein abweichender Text für den Kolumnentitel und das Inhaltsverzeichnis +vorgegeben werden. + +Die Überschrift der Teile-Ebene (\Macro{part}) unterscheidet sich von den +anderen Gliederungsebenen dadurch, dass sie unabhängig von den übrigen Ebenen +nummeriert wird. Das bedeutet, dass die Kapitel-Ebene (bei \Class{scrbook} +oder \Class{scrreprt}) bzw. die Abschnitt-Ebene (bei \Class{scrartcl}) über +alle Teile hinweg durchgehend nummeriert wird. Des Weiteren steht bei den +Klassen \Class{scrbook} und \Class{scrreprt} die Überschrift dieser Ebene +zusammen mit ihrer Präambel (siehe \Macro{setpartpreamble}, +\autopageref{desc:maincls.cmd.setpartpreamble}) alleine auf einer Seite. + +\Macro{chapter}\OnlyAt{\Class{scrartcl}} existiert nur bei Buch- und +Berichtklassen, also bei \Class{book}, \Class{scrbook}, \Class{report} und +\Class{scrreport}, nicht jedoch bei den Artikelklassen \Class{article} und +\Class{scrartcl}. \Macro{chapter} unterscheidet sich bei {\KOMAScript} +außerdem gravierend von der Version der Standardklassen. Bei den +Standardklassen wird die Kapitelnummer mit dem Präfix »Kapitel« +beziehungsweise dem Kapitelnamen in der gewählten Sprache in einer Zeile vor +dem eigentlichen Text der Überschrift ausgegeben. Diese sehr mächtige Form +wird bei {\KOMAScript} durch eine einfache Nummer vor dem Text abgelöst, lässt +sich aber durch die Optionen \Option{chapterprefix} und +\Option{appendixprefix} einstellen (siehe +\autopageref{desc:maincls.option.chapterprefix}). + +Bitte beachten Sie, dass \Macro{part} und \Macro{chapter} bei \Class{scrbook} +und \Class{scrreprt}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} den +Seitenstil für eine Seite umschaltet. Der jeweilige Seitenstil ist bei +\KOMAScript{} in den Makros \Macro{partpagestyle} und \Macro{chapterpagestyle} +abgelegt (siehe \autoref{sec:maincls.pagestyle}, +\autopageref{desc:maincls.cmd.titlepagestyle}). + +\BeginIndex[indexother]{}{Schriftart}% +\BeginIndex[indexother]{}{Schriftgroesse=Schriftgröße}% +Die Schriftart aller sieben Gliederungsebenen\ChangedAt{v2.8p}{% + \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} % +kann mit den Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:maincls.textmarkup}, +\autopageref{desc:maincls.cmd.setkomafont}) bestimmt werden. Dabei wird +zunächst generell das Element +\FontElement{disposition}\IndexFontElement{disposition} und anschließend +zusätzlich je Gliederungsebene ein spezifisches Element verwendet (siehe +\autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}). Die Schriftart für das Element +\FontElement{disposition}\IndexFontElement{disposition} ist als +\Macro{normalcolor}""\Macro{sffamily}""\Macro{bfseries} vordefiniert. Die +Voreinstellungen für die spezifischen Elemente sind mit einer Schriftgröße +vorbelegt und daher von den Einstellungen \PValue{big}, \PValue{normal} und +\PValue{small} für die Option \Option{headings}\IndexOption{headings} abhängig +(siehe \autopageref{desc:maincls.option.headings}). Sie finden die +Voreinstellungen in \autoref{tab:maincls.structureElementsFont}. + +\begin{Example} + Angenommen, Sie verwenden die Klassenoption \OptionValue{headings}{big} und + stellen fest, dass die sehr großen Überschriften von Teildokumenten zu fett + wirken. Nun könnten Sie natürlich wie folgt verfahren: +\begin{lstcode} + \setkomafont{disposition}{\normalcolor\sffamily} + \part{\appendixname} + \addtokomafont{disposition}{\bfseries} +\end{lstcode} + \looseness=-1 % Umbruchkorrektur + Auf diese Weise würden Sie nur für die eine Überschrift »Anhang« + das Schriftattribut \textbf{Fett} abschalten. Sehr viel komfortabler + und eleganter ist es aber, stattdessen generell für + \Macro{part}-Überschriften eine entsprechende Änderung vorzunehmen. + Das ist wahlweise mit: +\begin{lstcode} + \addtokomafont{part}{\normalfont\sffamily} + \addtokomafont{partnumber}{\normalfont\sffamily} +\end{lstcode} + oder einfach mit: +\begin{lstcode} + \addtokomafont{part}{\mdseries} + \addtokomafont{partnumber}{\mdseries} +\end{lstcode} + möglich. Die Verwendung von \Macro{setkomafont} wäre zwar grundsätzlich + möglich, müsste aber auch die Auswahl der Schriftgröße enthalten und würde + damit die Größenänderung über die Option \Option{headings} verhindern. + + Die zweite Version mit \Macro{mdseries} ist vorzuziehen, da diese auch dann + noch zum gewünschten Ergebnis führt, wenn Sie später das Element + \FontElement{disposition}\IndexFontElement{disposition} wie folgt ändern: +\begin{lstcode} + \setkomafont{disposition}{\normalcolor\bfseries} +\end{lstcode} + Mit dieser Änderung verzichten Sie darauf, für alle + Gliederungsebenen serifenlose Schrift voreinzustellen. +\end{Example} + +% Umbruchkorrektur: Tabelle verschoben +\begin{table} + \centering% + \caption[{Schriftvoreinstellungen für die Elemente der Gliederung + bei\newline \Class{scrbook} und \Class{scrreprt}}]{Schriftvoreinstellungen + für die Elemente der Gliederung bei \Class{scrbook} und \Class{scrreprt}} + \begin{tabular}{lll} + \toprule + Klassenoption & Element & Voreinstellung \\ + \midrule + \OptionValue{headings}{big} + & \FontElement{part}\IndexFontElement{part} + & \Macro{Huge} \\ + & \FontElement{partnumber}\IndexFontElement{partnumber} + & \Macro{huge} \\ + & \FontElement{chapter}\IndexFontElement{chapter} + & \Macro{huge} \\ + & \FontElement{section}\IndexFontElement{section} + & \Macro{Large} \\ + & \FontElement{subsection}\IndexFontElement{subsection} + & \Macro{large} \\ + & \FontElement{subsubsection}\IndexFontElement{subsubsection} + & \Macro{normalsize} \\ + & \FontElement{paragraph}\IndexFontElement{paragraph=} + & \Macro{normalsize} \\ + & \FontElement{subparagraph}\IndexFontElement{subparagraph} + & \Macro{normalsize} \\[1ex] + \OptionValue{headings}{normal} + & \FontElement{part} & \Macro{huge} \\ + & \FontElement{partnumber} & \Macro{huge} \\ + & \FontElement{chapter} & \Macro{LARGE} \\ + & \FontElement{section} & \Macro{Large} \\ + & \FontElement{subsection} & \Macro{large} \\ + & \FontElement{subsubsection} & \Macro{normalsize} \\ + & \FontElement{paragraph} & \Macro{normalsize} \\ + & \FontElement{subparagraph} & \Macro{normalsize} \\[1ex] + \OptionValue{headings}{small} + & \FontElement{part} & \Macro{LARGE} \\ + & \FontElement{partnumber} & \Macro{LARGE} \\ + & \FontElement{chapter} & \Macro{Large} \\ + & \FontElement{section} & \Macro{large} \\ + & \FontElement{subsection} & \Macro{normalsize} \\ + & \FontElement{subsubsection} & \Macro{normalsize} \\ + & \FontElement{paragraph} & \Macro{normalsize} \\ + & \FontElement{subparagraph} & \Macro{normalsize} \\ + \bottomrule + \end{tabular} + \label{tab:maincls.structureElementsFont} +\end{table} + +Ich möchte Sie eindringlich davor warnen, die Möglichkeit zur +Schriftumschaltung zu missbrauchen, um wild Schriften, Schriftgrößen und +Schriftattribute miteinander zu mischen. Die Auswahl der richtigen Schrift für +die richtige Aufgabe ist eine Sache für Experten und hat sehr, sehr wenig mit +dem persönlichem Geschmack eines Laien zu tun. Siehe hierzu auch das Zitat am +Ende von \autoref{sec:typearea.tips}, \autopageref{sec:typearea.tips.cite} und +die folgende Erklärung. + +\begin{Explain} + Unterschiedliche Schriften für unterschiedliche Gliederungsebenen sind mit + {\KOMAScript}-Mitteln möglich. Der Laie sollte sie aber meiden wie der + Teufel das Weihwasser. Dies hat typografische Gründe. + + Eine Regel der Typografie besagt, dass man möglichst wenig Schriften + miteinander mischen soll. Serifenlose für die Überschriften scheinen bereits + ein Verstoß gegen diese Regel zu sein. Allerdings muss man wissen, dass + fette, große, serifenbehaftete Buchstaben oft viel zu mächtig für eine + Überschrift sind. Man müsste dann strenggenommen zumindest auf eine normale + statt eine fette oder halbfette Schrift ausweichen. In tiefen + Gliederungsebenen kann das aber wieder zu schwach sein. Andererseits haben + Serifenlose in Überschriften eine sehr angenehme Wirkung und fast nur für + Überschriften eine Berechtigung. Daher wurde diese Voreinstellung für + {\KOMAScript} mit gutem Grund gewählt. + + Größere Vielfalt sollte aber vermieden werden. Schriftenmischung ist etwas + für Profis. Aus den genannten Gründen sollten Sie bei Verwendung anderer als + der Standard-\TeX-Fonts -- egal ob CM"~\Index{CM-Fonts}, + EC"~\Index{EC-Fonts} oder LM-Fonts\Index{LM-Fonts} -- bezüglich der + Verträglichkeit der serifenlosen und serifenbehafteten Schrift einen + Experten zu Rate ziehen oder die Schrift für das Element + \FontElement{disposition}\IndexFontElement{disposition} vorsichtshalber wie + in obigem Beispiel umdefinieren. Die häufig anzutreffenden Kombinationen + Times mit Helvetica oder Palatino mit Helvetica werden vom Autor als + ungünstig betrachtet. +\end{Explain} +\EndIndex[indexother]{}{Schriftart}% +\EndIndex[indexother]{}{Schriftgroesse=Schriftgröße}% +% +\EndIndex{Cmd}{part}% +\EndIndex{Cmd}{chapter}% +\EndIndex{Cmd}{section}% +\EndIndex{Cmd}{subsection}% +\EndIndex{Cmd}{subsubsection}% +\EndIndex{Cmd}{paragraph}% +\EndIndex{Cmd}{subparagraph}% + + +\begin{Declaration} + \Macro{part*}\Parameter{Überschrift}\\ + \Macro{chapter*}\Parameter{Überschrift}\\ + \Macro{section*}\Parameter{Überschrift}\\ + \Macro{subsection*}\Parameter{Überschrift}\\ + \Macro{subsubsection*}\Parameter{Überschrift}\\ + \Macro{paragraph*}\Parameter{Überschrift}\\ + \Macro{subparagraph*}\Parameter{Überschrift} +\end{Declaration}% +\BeginIndex{Cmd}{part*}% +\BeginIndex{Cmd}{chapter*}% +\BeginIndex{Cmd}{section*}% +\BeginIndex{Cmd}{subsection*}% +\BeginIndex{Cmd}{subsubsection*}% +\BeginIndex{Cmd}{paragraph*}% +\BeginIndex{Cmd}{subparagraph*}% +Bei den Sternvarianten der Gliederungsbefehle erfolgt keine +Nummerierung\Index{Nummerierung}, wird kein +Kolumnentitel\Index{Kolumnentitel>automatisch} gesetzt und kein Eintrag im +Inhaltsverzeichnis\Index{Inhaltsverzeichnis} vorgenommen. Der Verzicht auf +den Kolumnentitel hat übrigens einen oftmals unerwünschten Effekt. Geht +beispielsweise ein mit \Macro{chapter*} gesetztes Kapitel über mehrere Seiten, +so taucht plötzlich der Kolumnentitel des letzen Kapitels wieder auf. +{\KOMAScript} bietet dafür aber eine Lösung, die im Folgenden beschrieben +wird. \OnlyAt{\Class{scrbook}\and \Class{scrreprt}}\Macro{chapter*} existiert +selbstverständlich nur bei Buch- und Berichtklassen, also bei \Class{book}, +\Class{scrbook}, \Class{report} und \Class{scrreport}, nicht jedoch bei den +Artikelklassen \Class{article} und \Class{scrartcl}. + +Bitte beachten Sie, dass \Macro{part*} und \Macro{chapter*} den Seitenstil für +eine Seite umschalten. Während die Standardklassen dabei fest den Seitenstil +\Pagestyle{plain} verwenden, ist bei \KOMAScript{} der zu verwendende +Seitenstil in den Makros \Macro{partpagestyle} und \Macro{chapterpagestyle} +abgelegt (siehe \autoref{sec:maincls.pagestyle}, +\autopageref{desc:maincls.cmd.titlepagestyle}). + +Bezüglich der Möglichkeiten der Schriftumschaltung\ChangedAt{v2.8p}{% + \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} % +gilt das Gleiche wie zuvor in der Erklärung zu den sternlosen +Varianten geschrieben. Die Elemente tragen die gleichen Namen, da sie +nicht Varianten, sondern Gliederungsebenen bezeichnen.% +% +\EndIndex{Cmd}{part*}% +\EndIndex{Cmd}{chapter*}% +\EndIndex{Cmd}{section*}% +\EndIndex{Cmd}{subsection*}% +\EndIndex{Cmd}{subsubsection*}% +\EndIndex{Cmd}{paragraph*}% +\EndIndex{Cmd}{subparagraph*}% + +\iftrue% Umbruchkorrekturtext +Bei den Standardklassen gibt es keine weiteren Gliederungsbefehle. Es +existieren also insbesondere keine Anweisungen, mit denen man nicht +nummerierte Kapitel oder nicht nummerierte Abschnitte erzeugen kann, +die ins Inhaltsverzeichnis aufgenommen werden und bei denen ein +automatischer Kolumnentitel erzeugt wird. +\fi + + +\begin{Declaration} + \Macro{addpart}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{addpart*}\Parameter{Überschrift}\\ + \Macro{addchap}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{addchap*}\Parameter{Überschrift}\\ + \Macro{addsec}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{addsec*}\Parameter{Überschrift} +\end{Declaration}% +\BeginIndex{Cmd}{addpart}% +\BeginIndex{Cmd}{addpart*}% +\BeginIndex{Cmd}{addchap}% +\BeginIndex{Cmd}{addchap*}% +\BeginIndex{Cmd}{addsec}% +\BeginIndex{Cmd}{addsec*}% +{\KOMAScript} bietet über die Gliederungsbefehle der Standardklassen hinaus +die Anweisungen \Macro{addpart}, \Macro{addchap} und \Macro{addsec}. Diese +ähneln bis auf die fehlende Nummerierung sehr den Standardanweisungen +\Macro{part}, \Macro{chapter} und \Macro{section}. Sie erzeugen also sowohl +einen automatischen Kolumnentitel als auch einen Eintrag im +Inhaltsverzeichnis. + +Die Sternvarianten \Macro{addchap*} und \Macro{addsec*} gleichen hingegen den +Standardanweisungen \Macro{chapter*} und \Macro{section*} mit einem winzigen, +aber wichtigen Unterschied: Die Kolumnentitel werden gelöscht. Dadurch wird +der oben erwähnte Effekt veralteter Kolumnentitel ausgeschlossen. Stattdessen +bleibt der Kolumnentitel auf Folgeseiten leer. +\OnlyAt{\Class{scrartcl}}\Macro{addchap} und \Macro{addchap*} existieren +selbstverständlich nur bei Buch- und Berichtklassen, also bei \Class{scrbook} +und \Class{scrreport}, nicht jedoch bei der Artikelklasse \Class{scrartcl}. + +Die Anweisung \Macro{addpart} erstellt entsprechend einen nicht +nummerierten Dokumentteil mit einem Eintrag im Inhaltsverzeichnis. Da +bereits \Macro{part} und \Macro{part*} den Kolumnentitel löschen, +ergibt sich hier nicht das oben genannte Problem mit veralteten +Kolumnentiteln. Die Sternvariante \Macro{addpart*} ist daher identisch +mit der Sternvariante \Macro{part*} und wurde nur aus +Konsistenzgründen definiert. + +Bitte beachten Sie, dass \Macro{addpart} und \Macro{addchap} und deren +Sternvarianten den Seitenstil für eine Seite umschalten. Der jeweilige +Seitenstil ist in den Makros \Macro{partpagestyle} und +\Macro{chapterpagestyle} abgelegt (siehe +\autoref{sec:maincls.pagestyle}, +\autopageref{desc:maincls.cmd.titlepagestyle}). + +Bezüglich der Möglichkeiten der Schriftumschaltung\ChangedAt{v2.8p}{% + \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} % +gilt das gleiche wie zuvor in der Erklärung zu \Macro{part*}, \Macro{chapter*} +und \Macro{section*} geschrieben. Die Elemente tragen die gleichen Namen, da +sie nicht Varianten, sondern Gliederungsebenen bezeichnen.% +% +\EndIndex{Cmd}{addpart}% +\EndIndex{Cmd}{addpart*}% +\EndIndex{Cmd}{addchap}% +\EndIndex{Cmd}{addchap*}% +\EndIndex{Cmd}{addsec}% +\EndIndex{Cmd}{addsec*}% + + +\begin{Declaration} + \Macro{minisec}\Parameter{Überschrift} +\end{Declaration}% +\BeginIndex{Cmd}{minisec}% +Manchmal ist eine Art Überschrift\Index{Ueberschriften=Überschriften} +wünschenswert, die zwar hervorgehoben wird, ansonsten aber eng mit dem +nachfolgenden Text zusammenhängt. Eine solche Überschrift soll dann ohne große +Abstände gesetzt werden. + +Der Befehl \Macro{minisec} bewirkt genau eine derartige Überschrift. Diese +Überschrift ist keiner Gliederungsebene zugeordnet. Eine solche +\emph{Mini-Section} wird nicht in das Inhaltsverzeichnis aufgenommen und +erhält auch keine Nummerierung. +\begin{Example} + Sie haben einen Bausatz für eine Mausefalle entwickelt und wollen + diesen getrennt nach den benötigten Materialien und der Anleitung für + die Montage beschreiben. Das könnte so gemacht werden: +\begin{lstcode} + \minisec{Bauteile} + + \begin{flushleft} + 1 Brett ($100\times 50 \times 12$)\\ + 1 Bierflaschenschnappverschluss\\ + 1 Kugelschreiberfeder\\ + 1 Reißzwecke\\ + 2 Schrauben\\ + 1 Hammer\\ + 1 Messer + \end{flushleft} + + \minisec{Montage} + + Zunächst suche man das Mauseloch. Dann lege man die + Reißzwecke innen unmittelbar hinter das Loch, damit + bei den folgenden Aktionen die Maus nicht + entschlüpfen kann. + Anschließend klopfe man mit dem Hammer den + Bierflaschenschnappverschluss in das Mauseloch. + Sollte der Verschluss nicht groß genug sein, um das + Loch vollständig und dauerhaft zu verschließen, + nehme man stattdessen das Brett und schraube es + unter Zuhilfenahme der beiden Schrauben und des + Messers vor das Loch. Statt des Messers kann + selbstverständlich auch ein Schraubendreher + verwendet werden. + Die Kugelschreiberfeder ist dem Tierschutz zum + Opfer gefallen. +\end{lstcode} + Das Ganze sieht anschließend wie folgt aus: + \begin{ShowOutput}[\baselineskip]\setlength{\parindent}{1em} + \minisec{Bauteile} + + \begin{flushleft} + 1 Brett ($100\times 50 \times 12$)\\ + 1 Bierflaschenschnappverschluss\\ + 1 Kugelschreiberfeder\\ + 1 Reißzwecke\\ + 2 Schrauben\\ + 1 Hammer\\ + 1 Messer + \end{flushleft} + + \minisec{Montage} + + Zunächst suche man das Mauseloch. Dann lege man die + Reißzwecke innen unmittelbar hinter das Loch, damit + bei den folgenden Aktionen die Maus nicht + entschlüpfen kann. + Anschließend klopfe man mit dem Hammer den + Bierflaschenschnappverschluss in das Mauseloch. + Sollte der Verschluss nicht groß genug sein, um das + Loch vollständig und dauerhaft zu verschließen, + nehme man stattdessen das Brett und schraube es + unter Zuhilfenahme der beiden Schrauben und des + Messers vor das Loch. Statt des Messers kann + selbstverständlich auch ein Schraubendreher + verwendet werden. + Die Kugelschreiberfeder ist dem Tierschutz zum + Opfer gefallen. +% Mit der Kugelschreiberfeder hat es eine besondere +% Bewandtnis. Sie stammt noch aus dem Selbstbauprojekt +% »Mauseschnappfalle«, das dem Tierschutz zum Opfer gefallen ist. + \end{ShowOutput} +\end{Example} + +\BeginIndex{FontElement}{minisec}% +\BeginIndex{FontElement}{disposition}% +Die Schriftart des Gliederungsbefehls \Macro{minisec} kann über die Elemente +\FontElement{disposition} und +\FontElement{minisec}\ChangedAt{v2.96a}{% + \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} beeinflusst +werden (siehe \autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}). Die Voreinstellung für das +Element \FontElement{minisec} ist leer, so dass in der Voreinstellung nur +das Element \FontElement{disposition} wirkt.% +\EndIndex{FontElement}{disposition}% +\EndIndex{FontElement}{minisec}% +% +\EndIndex{Cmd}{minisec}% + + +\begin{Declaration} + \Macro{raggedsection}\\ + \Macro{raggedpart} +\end{Declaration}% +\BeginIndex{Cmd}{raggedsection}% +\BeginIndex{Cmd}{raggedpart}% +Bei den Standardklassen werden die Überschriften ganz normal im Blocksatz +ausgegeben. Dadurch können in den Überschriften Trennungen auf"|treten und +mehrzeilige Überschriften werden auf Textbreite gedehnt. Dieses Vorgehen ist +in der Typografie eher unüblich. {\KOMAScript} setzt Überschriften von +\Macro{chapter} bis \Macro{subparagraph} daher in linksbündigem Flattersatz +mit hängendem Einzug. Verantwortlich ist dafür die Anweisung +\Macro{raggedsection}, die vordefiniert ist als: +\begin{lstcode}[belowskip=\dp\strutbox] + \let\raggedsection\raggedright +\end{lstcode} +Die Anweisung \Macro{raggesection} kann mit \Macro{renewcommand} umdefiniert +werden. +\begin{Example} + Sie wollen auch für Überschriften Blocksatz. Dazu schreiben Sie in + die Präambel Ihres Dokuments: +\begin{lstcode} + \renewcommand*{\raggedsection}{} +\end{lstcode} + oder kürzer: +\begin{lstcode} + \let\raggedsection\relax +\end{lstcode} + Sie erreichen somit eine ähnliche Formatierung der Überschriften wie + bei den Standardklassen. Noch ähnlicher wird es, wenn Sie diese + Änderung mit der oben vorgestellten Änderung für das Element + \FontElement{disposition}\IndexFontElement{disposition} + kombinieren. +\end{Example} +Die Überschriften von Teilen (\Macro{part}) werden in der Voreinstellung als +einzige nicht in linksbündigem Flattersatz, sondern zentriert gesetzt. Dafür +ist die Anweisung \Macro{raggedpart} verantwortlich, die als: +\begin{lstcode}[belowskip=\dp\strutbox] + \let\raggedpart\centering +\end{lstcode} +vordefiniert ist. Natürlich kann auch diese Anweisung mit \Macro{renewcommand} +umdefiniert werden. +\begin{Example} + Sie wollen, dass Überschriften mit \Macro{part} in der gleichen Weise + formatiert werden, wie alle anderen Ebenen. Dazu schreiben Sie + \begin{lstcode} + \renewcommand*{\raggedpart}{\raggedsection} + \end{lstcode} + in die Präambel Ihres Dokuments. +\end{Example} +% +\EndIndex{Cmd}{raggedpart}% +\EndIndex{Cmd}{raggedsection}% + + +\begin{Declaration} + \Macro{partformat}\\ + \Macro{chapterformat}\\ + \Macro{othersectionlevelsformat}\Parameter{Gliederungsname}\Parameter{}\Parameter{Zählerausgabe}\\ + \Macro{autodot} +\end{Declaration}% +\BeginIndex{Cmd}{partformat}\Index{Teil>Nummer}% +\BeginIndex{Cmd}{chapterformat}\Index{Kapitel>Nummer}% +\BeginIndex{Cmd}{othersectionlevelsformat}\Index{Abschnitt>Nummer}% +\BeginIndex{Cmd}{autodot}% +\vskip 1pt\nobreak% +\KOMAScript{} hat der Ausgabe der Gliederungsnummern eine weitere logische +Ebene oberhalb von \Macro{the\PName{Gliederungsname}} (siehe +\Macro{the\PName{Zähler}}, \autopageref{desc:maincls-experts.cmd.the}) +hinzugefügt. Die Zähler werden für die jeweilige Überschrift nicht einfach nur +ausgegeben. Sie werden mit Hilfe der Anweisungen \Macro{partformat}, +\Macro{chapterformat} und \Macro{othersectionlevelsformat} formatiert. +\OnlyAt{\Class{scrbook}\and \Class{scrreprt}}Die Anweisung +\Macro{chapterformat} existiert wie auch \Macro{thechapter} selbstverständlich +nicht in der Klasse \Class{scrartcl}, sondern nur in den Klassen +\Class{scrbook} und \Class{scrreprt}. + +Wie bereits bei Option \Option{numbers} am Anfang dieses Abschnitts (siehe +\autopageref{desc:maincls.option.numbers}) erläutert wurde, müssen gemäß +\cite{DUDEN} die Gliederungsnummern je nach Gliederung mit einem nachfolgenden +Punkt versehen werden oder dieser hat zu entfallen. Die Anweisung +\Macro{autodot} ist bei {\KOMAScript} für die Einhaltung dieser Regel +verantwortlich. Auf den Punkt folgt bei allen Gliederungsebenen außer +\Macro{part} noch ein \Macro{enskip}. Dies entspricht einem Leerraum von +0,5\Unit{em}. + +Die Anweisung \Macro{othersectionlevelsformat} erwartet als ersten Parameter +den Namen der Gliederungsebene, also »\PName{section}«, »\PName{subsection}« +\dots{} Als drittes Argument wird die Ausgabe des Zählers dieser +Gliederungsebene erwartet, also \Macro{thesection}, \Macro{thesubsection} +\dots{} In der Voreinstellung gibt es nur für die Ebenen \Macro{part} und +\Macro{chapter} eigene Formatierungsanweisungen, während alle anderen +Gliederungsebenen mit Hilfe einer einzigen Formatierungsanweisung abgedeckt +werden. Dies ist allein historisch begründet. Als Werner Lemberg für sein +\Package{CJK}-Paket (siehe \cite{package:CJK}) eine entsprechende Erweiterung +von {\KOMAScript} angeregt hat, wurde nur diese Unterscheidung +benötigt. Anwender sollten bei der Umdefinierung der Anweisung das zweite +Argument komplett ignorieren. + +Die Formatierungsanweisungen können mit Hilfe von \Macro{renewcommand} +umdefiniert werden, um sie eigenen Anforderungen anzupassen. +Nachfolgend finden Sie die Originaldefinitionen aus den +{\KOMAScript}-Klassen: +\begin{lstcode} + \newcommand*{\partformat}{\partname~\thepart\autodot} + \newcommand*{\chapterformat}{% + \chapappifchapterprefix{\ }\thechapter\autodot\enskip} + \newcommand*{\othersectionlevelsformat}[3]{#3\autodot\enskip} +\end{lstcode} + +\begin{Example} + Angenommen, Sie wollen, dass bei \Macro{part} das Wort »Teil« vor + der Nummer nicht ausgegeben wird. Dann können Sie beispielsweise + folgende Anweisung in die Präambel Ihres Dokuments schreiben: + \begin{lstcode} + \renewcommand*{\partformat}{\thepart\autodot} + \end{lstcode} + Genau genommen könnten Sie an dieser Stelle auch auf \Macro{autodot} + verzichten und stattdessen einen festen Punkt setzen. Da \Macro{part} mit + römischen Zahlen nummeriert wird, muss der Punkt laut \cite{DUDEN} folgen. + Allerdings bringen Sie sich dann um die Möglichkeit, die Option + \Option{numbers} einzusetzen und so von der Regel abzuweichen. Näheres zu + der Option siehe \autopageref{desc:maincls.option.numbers}. + + Eine weitere Möglichkeit wäre, die Nummerierung der Abschnitte + so in den Rand zu platzieren, dass der Überschriftentext + links mit dem umgebenden Text abschließt. Dies erreicht man + mit: +\begin{lstcode} + \renewcommand*{\othersectionlevelsformat}[3]{% + \llap{#3\autodot\enskip}} +\end{lstcode} + Die wenig bekannte \TeX-Anweisung \Macro{llap}\IndexCmd{llap} sorgt + dabei dafür, dass das Argument links von der aktuellen Position + ausgegeben wird, ohne dass dabei die Position verändert wird. Eine + bessere \LaTeX-Lösung für dieses Problem wäre: +\begin{lstcode} + \renewcommand*{\othersectionlevelsformat}[3]{% + \makebox[0pt][r]{#3\autodot\enskip}} +\end{lstcode} + Näheres zu den optionalen Argumenten von \Macro{makebox} ist + \cite{latex:usrguide} zu entnehmen. +\end{Example} +% +\EndIndex{Cmd}{partformat}% +\EndIndex{Cmd}{chapterformat}% +\EndIndex{Cmd}{othersectionlevelsformat}% +\EndIndex{Cmd}{autodot}% + + +\begin{Declaration} + \Macro{chapappifchapterprefix}\Parameter{Zusatztext}\\ + \Macro{chapapp} +\end{Declaration}% +\BeginIndex{Cmd}{chapappifchapterprefix}% +\BeginIndex{Cmd}{chapapp}% +Diese \OnlyAt{\Class{scrbook}\and \Class{scrreprt}}% +\ChangedAt{v2.8o}{\Class{scrbook}\and \Class{scrreprt}}% +beiden Anweisungen werden nicht nur intern von {\KOMAScript} verwendet, +sondern stehen auch dem Anwender zur Verfügung. Nachfolgend werden sie +beispielsweise für die Umdefinierung anderer Anweisungen verwendet. Bei +Verwendung der Option \Option{chapterprefix} (siehe +\autopageref{desc:maincls.option.chapterprefix}) setzt +\Macro{chapappifchapterprefix} im Hauptteil des Dokuments das Wort +»Kapitel«\Index{Kapitel>Ueberschrift=Überschrift} in der aktuellen Sprache +gefolgt vom \PName{Zusatztext}. Im Anhang\Index{Anhang} wird stattdessen das +Wort »Anhang« in der aktuellen Sprache, ebenfalls gefolgt vom +\PName{Zusatztext}, ausgegeben. Bei der Einstellung \Option{nochapterprefix} +wird hingegen nichts ausgegeben. + +Die Anweisung \Macro{chapapp} setzt immer das Wort »Kapitel« +beziehungsweise »Anhang«. Dabei spielen die beiden Optionen +\Option{chapterprefix} und \Option{nochapterprefix} keine Rolle. + +Da es Kapitel nur bei den Klassen \Class{scrbook} und \Class{scrreprt} +gibt, existieren die beiden Anweisungen auch nur bei diesen Klassen.% +% +\EndIndex{Cmd}{chapappifchapterprefix}% +\EndIndex{Cmd}{chapapp}% + + +\begin{Declaration} + \Macro{chaptermark}\Parameter{Kolumnentitel}\\ + \Macro{sectionmark}\Parameter{Kolumnentitel}\\ + \Macro{subsectionmark}\Parameter{Kolumnentitel}\\ + \Macro{chaptermarkformat}\\ + \Macro{sectionmarkformat}\\ + \Macro{subsectionmarkformat} +\end{Declaration}% +\BeginIndex{Cmd}{chaptermark}\Index{Kapitel}% +\BeginIndex{Cmd}{sectionmark}\Index{Abschnitt}% +\BeginIndex{Cmd}{subsectionmark}% +\BeginIndex{Cmd}{chaptermarkformat}% +\BeginIndex{Cmd}{sectionmarkformat}% +\BeginIndex{Cmd}{subsectionmarkformat}% +\begin{Explain} + Wie bereits in \autoref{sec:maincls.pagestyle} erwähnt, arbeitet der + Seitenstil \PValue{headings} mit automatischen + Kolumnentiteln\Index{Kolumnentitel>automatisch}. Dazu werden die + Anweisungen \Macro{chaptermark} und \Macro{sectionmark} beziehungsweise + \Macro{sectionmark} und \Macro{subsectionmark} entsprechend definiert. + Gliederungsbefehle (\Macro{chapter}, \Macro{section}~\dots) führen + automatisch eine entsprechende \Macro{\dots mark}-Anweisung aus. Der + übergebene Parameter beinhaltet dabei den Text der + Gliederungsüberschrift\Index{Ueberschriften=Überschriften}. Die zugehörige + Gliederungsnummer wird automatisch in der \Macro{\dots mark}-Anweisung + hinzugefügt. Die Formatierung erfolgt dabei je nach Gliederungsebene mit + einer der drei Anweisungen \Macro{chaptermarkformat}, + \Macro{sectionmarkformat} und \Macro{subsectionmarkformat}. + + \OnlyAt{\Class{scrbook}\and \Class{scrreprt}}Während es bei \Class{scrartcl} + weder \Macro{chaptermark} noch \Macro{chaptermarkformat} gibt, existieren + \OnlyAt{\Class{scrartcl}}\Macro{subsectionmark} und + \Macro{subsectionmarkformat} nur bei \Class{scrartcl}. Dies ändert sich + allerdings bei Verwendung des \Package{scrpage2}-Pakets (siehe + \autoref{cha:scrpage}). +\end{Explain} +So wie mit \Macro{chapterformat} und \Macro{othersectionlevelsformat} die +Nummern der Gliederungsüberschriften formatiert ausgegeben werden, werden mit +den Anweisungen \Macro{chaptermarkformat}, \Macro{sectionmarkformat} und +\Macro{subsectionmarkformat} die Nummern der Gliederungsebenen in den +automatischen Kolumnentiteln formatiert ausgegeben. Mit +\Macro{renewcommand} können sie eigenen Anforderungen angepasst werden. Die +Originaldefinitionen aus den {\KOMAScript}-Klassen sind: +\begin{lstcode} + \newcommand*{\chaptermarkformat}{% + \chapappifchapterprefix{\ }\thechapter\autodot\enskip} + \newcommand*{\sectionmarkformat}{\thesection\autodot\enskip} + \newcommand*{\subsectionmarkformat}{% + \thesubsection\autodot\enskip} +\end{lstcode} +\begin{Example} + Angenommen, Sie wollen, dass der Kapitelnummer in den Kolumnentiteln + das Wort »Kapitel« vorangestellt wird. Dann setzen Sie + beispielsweise diese Definition in die Präambel Ihres Dokuments: +\begin{lstcode} + \renewcommand*{\chaptermarkformat}{% + \chapapp~\thechapter\autodot\enskip} +\end{lstcode} +\end{Example} +Wie Sie sehen, finden hier die Anweisungen \Macro{chapappifchapterprefix} und +\Macro{chapapp} Verwendung, die weiter oben erklärt wurden.% +% +\EndIndex{Cmd}{chaptermark}% +\EndIndex{Cmd}{sectionmark}% +\EndIndex{Cmd}{subsectionmark}% +\EndIndex{Cmd}{chaptermarkformat}% +\EndIndex{Cmd}{sectionmarkformat}% +\EndIndex{Cmd}{subsectionmarkformat}% + + +\begin{Declaration} + \Counter{secnumdepth} +\end{Declaration}% +\BeginIndex{Counter}{secnumdepth}\BeginIndex{}{Nummerierung}% +Normalerweise werden bei den Klassen \Class{scrbook}\IndexClass{scrbook} und +\Class{scrreprt}\IndexClass{scrreprt} die Gliederungsebenen +\Macro{part}\IndexCmd{part}\IndexCmd{chapter}\IndexCmd{section} bis +\Macro{subsection}\IndexCmd{subsection} und bei der Klasse +\Class{scrartcl}\IndexClass{scrartcl} die Ebenen \Macro{part} bis +\Macro{subsubsection}\IndexCmd{subsubsection} nummeriert. Gesteuert wird dies +über den \LaTeX-Zähler \Counter{secnumdepth}. Dabei steht der Wert \(-\)1 für +\Macro{part}, 0 für \Macro{chapter} und so weiter. Durch Setzen oder Erhöhen +oder Verringern des Zählers kann bestimmt werden, bis zu welcher +Gliederungsebene eine Nummerierung erfolgen soll. Dies ist übrigens bei den +Standardklassen ganz genauso. Vergleichen Sie hierzu auch die Erklärung zum +Zähler \Counter{tocdepth} in \autoref{sec:maincls.toc}, +\autopageref{desc:maincls.counter.tocdepth}.% +% +\EndIndex{Counter}{secnumdepth}\EndIndex{}{Nummerierung} + + +\begin{Declaration} + \Macro{setpartpreamble}% + \OParameter{Position}\OParameter{Breite}\Parameter{Präambel}\\ + \Macro{setchapterpreamble}% + \OParameter{Position}\OParameter{Breite}\Parameter{Präambel} +\end{Declaration}% +\BeginIndex{Cmd}{setpartpreamble}% +\BeginIndex{Cmd}{setchapterpreamble}% +\OnlyAt{\Class{scrbook}\and + \Class{scrreprt}}Teile\Index{Teil>Praeambel=Präambel} und +Kapitel\Index{Kapitel>Praeambel=Präambel} können bei {\KOMAScript} mit einer +\PName{Präambel} versehen werden. Dies ist insbesondere im zweispaltigen +Layout mit der Klassenoption \Option{twocolumn}\IndexOption{twocolumn} +nützlich, da die \PName{Präambel} zusammen mit der Überschrift einspaltig +gesetzt wird. Die \PName{Präambel} kann auch mehrere Absätze beinhalten. Die +Anweisung zum Setzen der \PName{Präambel} muss vor der jeweiligen +\Macro{part}- oder \Macro{addpart}- bzw. \Macro{chapter}- oder +\Macro{addchap}-Anweisung stehen. +\begin{Example} + Sie schreiben einen Bericht über den Zustand einer Firma. Dabei + organisieren Sie den Bericht so, dass jeder Abteilung ein eigener + Teilbericht spendiert wird. Jedem dieser Teile soll außerdem eine + Zusammenfassung vorangestellt werden. Diese Zusammenfassung soll auf + der Titelseite jedes Teils stehen. Das ist wie folgt möglich: + \begin{lstcode} + \setpartpreamble{% + \begin{abstract} + Dies ist ein Blindtext. Er dient lediglich zur + Demonstration der Möglichkeiten von \KOMAScript. + \end{abstract} + } + \part{Abteilung Grünschnitt} + \end{lstcode} + Je nach Einstellung der Optionen für die + Überschriftengröße\Index{Ueberschriften=Überschriften} (siehe + \autopageref{desc:maincls.option.headings}) und der Optionen für die Form + der \Environment{abstract}-Umgebung\IndexEnv{abstract} (siehe + \autoref{sec:maincls.abstract}, \autopageref{desc:maincls.option.abstract}), + sieht das Ergebnis ungefähr wie folgt aus: + \begin{ShowOutput}\centering + {\LARGE\usekomafont{disposition} Teil III.\par\vspace{20pt}} + {\LARGE\usekomafont{disposition} Abteilung Grünschnitt\strut\par} + \begin{quote}\small + \vspace{6ex} + \begin{center} + \usekomafont{disposition}\abstractname + \end{center} + \vspace{2ex} + Dies ist ein Blindtext. Er dient lediglich zur + Demonstration der Möglichkeiten von \KOMAScript. + \end{quote} + \end{ShowOutput} +\end{Example} +Bitte beachten Sie, dass Sie für die Abstände der Präambel zur Teilüberschrift +bzw. zum Kapiteltext selbst verantwortlich sind. Bitte beachten Sie auch, dass +die \Environment{abstract}-Umgebung bei der Klasse \Class{scrbook} nicht +existiert (siehe \autoref{sec:maincls.abstract}, +\autopageref{desc:maincls.env.abstract}). + +Das\ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}} erste +optionale Argument \PName{Position} bestimmt über ein bis zwei +Buchstaben die Position, an der die Präambel ausgegeben wird. Für die +vertikale Position existieren derzeit zwei Möglichkeiten: +\begin{labeling}[~--]{\PValue{o}} +\item [\PValue{o}] über der Überschrift +\item [\PValue{u}] unter der Überschrift +\end{labeling} +Es kann jeweils eine Präambel unter und eine Präambel über der +Überschrift gesetzt werden. Für die horizontale Position existieren +derzeit drei Möglichkeiten: +\begin{labeling}[~--]{\PValue{o}} +\item [\PValue{l}] linksbündig +\item [\PValue{r}] rechtsbündig +\item [\PValue{c}] zentriert +\end{labeling} +Dabei wird allerdings nicht der Text der \PName{Präambel} entsprechend +angeordnet, sondern eine Box, deren Breite durch das zweite optionale +Argument \PName{Breite} bestimmt wird. Wird auf das zweite optionale +Argument verzichtet, so wird stattdessen die gesamte Textbreite +verwendet. Damit bleibt die Option zur horizontalen Positionierung in +diesem Fall wirkungslos. Es kann jeweils ein Buchstabe für die +vertikale mit einem Buchstaben für die horizontale Anordnung +kombiniert werden. + +Eine häufigere Anwendung von \Macro{setchapterpreamble} dürfte ein Spruch oder +Zitat zu einer Überschrift sein. Die dazu verwendbare Anweisung +\Macro{dictum}\IndexCmd{dictum} ist im nachfolgenden Abschnitt erläutert. Dort +findet sich auch ein entsprechendes Beispiel.% +% +\EndIndex{Cmd}{setpartpreamble}% +\EndIndex{Cmd}{setchapterpreamble}% +% +\EndIndex{}{Gliederung} + + +\LoadCommon{15}% \section{Schlauer Spruch} + +\LoadCommon{12}% \section{Listen} + +\section{Mathematik} +\label{sec:maincls.math}% +\BeginIndex{}{Mathematik}% +\BeginIndex{}{Formeln}% +\BeginIndex{}{Gleichungen}% + +Die \KOMAScript-Klassen stellen keine eigenen Umgebungen für mathematische +Formeln, Gleichungssysteme oder ähnliche Elemente der Mathematik +bereit. Stattdessen stützt sich \KOMAScript{} im Bereich der Mathematik voll +und ganz auf den \LaTeX-Kern. Dies gilt auch für die Realisierung der beiden +Optionen \Option{leqno} und \Option{fleqn}. + + +\begin{Declaration} + \Option{leqno} +\end{Declaration}% +\BeginIndex{Option}{leqno}% +Gleichungen\Index{Gleichungen>Nummern} werden normalerweise auf der rechten +Seite nummeriert. Mit Hilfe der Standardoption \Option{leqno} wird die +Standardoptionsdatei \File{leqno.clo} geladen. Dadurch erfolgt die +Nummerierung von Gleichungen links. Diese Option ist als optionales Argument +von \Macro{documentclass} zu verwenden. Eine Einstellung per +\Macro{KOMAoptions} oder \Macro{KOMAoption} wird nicht unterstützt.% +% +\EndIndex{Option}{leqno}% + + +\begin{Declaration} + \Option{fleqn} +\end{Declaration}% +\BeginIndex{Option}{fleqn}% +Gleichungen\Index{Gleichungen>Ausrichtung} werden normalerweise horizontal +zentriert ausgegeben. Mit Hilfe der Standardoption \Option{fleqn} wird die +Standardoptionsdatei \File{fleqn.clo} geladen. Dadurch erfolgt die Ausgabe von +Gleichungen linksbündig. Diese Option ist als optionales Argument +von \Macro{documentclass} zu verwenden. Eine Einstellung per +\Macro{KOMAoptions} oder \Macro{KOMAoption} wird nicht unterstützt.% +% +\EndIndex{Option}{fleqn}% + + +Auf eine Beschreibung der Mathematikumgebungen des \LaTeX-Kerns, also +\Environment{displaymath}\IndexEnv{displaymath}, +\Environment{equation}\IndexEnv{equation} und +\Environment{eqnarray}\IndexEnv{eqnarray}, wird an dieser Stelle +verzichtet. Wer diese verwenden möchte, sei auf \cite{l2kurz} verwiesen. Für +mehr als nur einfachste mathematische Formeln und Gleichungen sei jedoch die +Verwendung von \Package{amsmath} empfohlen (siehe \cite{package:amsmath}).% +% +\EndIndex{}{Gleichungen}% +\EndIndex{}{Formeln}% +\EndIndex{}{Mathematik} + + +\section{Gleitumgebungen für Tabellen und Abbildungen} +\label{sec:maincls.floats} +\BeginIndex{}{Gleitumgebungen} +\BeginIndex{}{Tabellen} +\BeginIndex{}{Abbildungen} + +{\LaTeX} bietet mit den Gleitumgebungen einen sehr leistungsfähigen und +komfortablen Mechanismus für die automatische Anordnung von Abbildungen und +Tabellen. Genau genommen sollte von »Tafeln«\Index{Tafeln} statt von +»Tabellen« die Rede sein. Dies wäre auch zur Unterscheidung der Umgebungen +\Environment{table}\IndexEnv{table} und +\Environment{tabular}\IndexEnv{tabular} von Vorteil. Es hat sich im Deutschen +aber für beides die Bezeichnung »Tabelle« eingebürgert. Das kommt vermutlich +daher, dass man in \Environment{table}-Umgebungen üblicherweise +\Environment{tabular}-Umgebungen setzt. + +Häufig werden die Gleitumgebungen von Anfängern nicht richtig verstanden. So +wird oft die Forderung aufgestellt, eine Tabelle oder Abbildung genau an einer +bestimmten Position im Text zu setzen. Dies ist jedoch nicht erforderlich, da +auf Gleitumgebungen im Text über eine Referenz verwiesen wird. Es ist auch +nicht sinnvoll, da ein solches Objekt an einer Stelle nur dann gesetzt werden +kann, wenn auf der Seite noch genügend Platz für das Objekt vorhanden ist. Ist +dies nicht der Fall, müsste das Objekt auf die nächste Seite umbrochen werden +und auf der aktuellen Seite würde ein möglicherweise sehr großer leerer Raum +bleiben. + +Häufig findet sich in einem Dokument auch bei jedem Gleitobjekt das gleiche +optionale Argument zur Platzierung des Objekts. Auch dies ist nicht +sinnvoll. In solchen Fällen sollte man besser den Standardwert global +ändern. Näheres dazu ist \cite{DANTE:FAQ} zu entnehmen. + +Ein wichtiger Hinweis sei diesem Abschnitt noch vorangestellt: Die meisten +Mechanismen, die hier vorgestellt werden und über die Fähigkeiten der +Standardklassen hinaus gehen, funktionieren nicht mehr, wenn Sie ein Paket +verwenden, das in die Generierung von Tabellen- und Abbildungstiteln eingreift +und deren Aussehen verändert. Dies sollte selbstverständlich sein, wird aber +leider häufig nicht bedacht. + + +\begin{Declaration} + \KOption{captions}\PName{Einstellung} +\end{Declaration} +\BeginIndex{Option}{captions~=\PName{Einstellung}}% +Bei den Standardklassen werden die Titel von Gleitumgebungen, die mit der +Anweisung \Macro{caption}\IndexCmd{caption} (siehe unten) gesetzt werden, als +Unterschrift formatiert. Darüber hinaus wird zwischen ein"~ und mehrzeiligen +Unterschriften unterschieden, wobei einzeilige Unterschriften horizontal +zentriert werden. + +\leavevmode\phantomsection\nobreak +\label{desc:maincls.option.captions.tableheading}\nobreak +Tabellen werden jedoch häufig mit Überschriften statt mit Unterschriften +versehen. Das liegt daran, dass es auch Tabellen geben kann, die sich über +mehrere Seiten erstrecken. Bei solchen Tabellen möchte man natürlich bereits +auf der ersten Seite wissen, worum es sich handelt. Aus Gründen der Konsistenz +werden deshalb alle Tabellen mit Überschriften versehen. \KOMAScript{} bietet +daher mit der Einstellung +\OptionValue{captions}{tableheading}\IndexOption{captions~=tableheading} die +Möglichkeit, bei Tabellen die Formatierung auf Überschriften zu ändern. Es sei +an dieser Stelle darauf hingewiesen, dass mehrseitige Tabellen nicht als +Gleitumgebungen gesetzt werden können. Für den automatischen Seitenumbruch von +Tabellen werden außerdem Zusatzpakete wie +\Package{longtable}\IndexPackage{longtable} (siehe \cite{package:longtable}) +benötigt. + +Mit der Einstellung +\OptionValue{captions}{tablesignature}\IndexOption{captions~=tablesignature} +wird wieder die Voreinstellung der Formatierung als Tabellenüberschrift +gewählt. Es sei an dieser Stelle darauf hingewiesen, dass die beiden Werte +lediglich die Formatierung ändern. Der Ort, an dem die Über"~ oder +Unterschrift gesetzt wird, hängt bei den Gleitumgebungen von \KOMAScript{} +allein vom Ort ab, an dem die Anweisung \Macro{caption} verwendet wird. Dies +ändert sich ggf. bei Verwendung des Pakets \Package{float}\IndexPackage{float} +mit der Anweisung \Macro{restylefloats} (siehe \cite{package:float}). + +Bitte\OnlyAt{\Package{float}}\IndexPackage{float} beachten Sie, dass bei +Verwendung des \Package{float}-Pakets die Einstellungen +\OptionValue{captions}{tableheadings} und +\OptionValue{captions}{tablesignature} nicht mehr funktionieren, sobald Sie +\Macro{restylefloat} auf Tabellen anwenden. Näheres zum \Package{float}-Paket +und \Macro{restylefloat} entnehmen Sie bitte \cite{package:float}. Die +zusätzliche Unterstützung, die \KOMAScript{} bei Verwendung des +\Package{float}-Pakets bietet, finden Sie bei der Erklärung zu +\PValue{komaabove} (siehe \autopageref{desc:maincls.floatstyle.komaabove}). + +\leavevmode\phantomsection\nobreak +\label{desc:maincls.option.captions.nooneline}\nobreak +\label{desc:maincls.option.captions.oneline}\nobreak +Bei \KOMAScript{} besteht darüber hinaus auch die Möglichkeit, mit der +Einstellung \OptionValue{captions}{nooneline}\IndexOption{captions~=nooneline} +die Unterscheidung zwischen ein"~ und mehrzeiligen Über"~ bzw. Unterschriften +abzuschalten. Dies ist beispielsweise dann wichtig, wenn man keine Zentrierung +wünscht. Die Voreinstellung, bei der einzeilige Über"~ und Unterschriften +automatisch horizontal zentriert werden, entspricht der Einstellung +\OptionValue{captions}{oneline}. + +Als Besonderheit bietet \KOMAScript{} innerhalb von Gleitumgebungen die +Möglichkeit, den Titel statt als Über"~ oder Unterschrift neben den +eigentlichen Inhalt zu setzen. Die dazu notwendige Umgebung +\Environment{captionsbeside}\IndexEnv{captionbeside} ist ab +\autopageref{desc:maincls.env.captionbeside} erklärt. Die +Einstellungen für diese Umgebung können ebenfalls mit der Option +\Option{captions} geändert werden. Die dabei möglichen Werte für die jeweilige +\PName{Einstellung} sind \autoref{tab:maincls.captions} zu entnehmen. + +\iffree{}{\afterpage}{% +\begin{desctable} + \caption[{Mögliche Werte für Option \Option{captions}}]{Mögliche Werte für + Option \Option{captions} zur Einstellung der Formatierung von Über"~ und + Unterschriften in Gleitumgebungen\label{tab:maincls.captions}}\\ + \Endfirsthead% + \caption[]{Mögliche Werte für Option \Option{captions} + (\emph{Fortsetzung})}\\ + \Endhead% + \standardfoot% + \entry{\PValue{bottombeside}, \PValue{besidebottom}}{% + Gleitumgebungstitel der Umgebung \Environment{captionsbeside} (siehe + \autoref{sec:maincls.floats}, + \autopageref{desc:maincls.env.captionbeside}) werden mit der + untersten Grundlinie auf Höhe der untersten Grundlinie des Inhalts der + Gleitumgebung ausgerichtet.% + \IndexOption{captions~=bottombeside}}% + \entry{\PValue{centeredbeside}, \PValue{besidecentered}, + \PValue{middlebeside}, \PValue{besidemiddle}}{% + Gleitumgebungstitel der Umgebung \Environment{captionsbeside} (siehe + \autoref{sec:maincls.floats}, + \autopageref{desc:maincls.env.captionbeside}) werden zum Inhalt + der Gleitumgebung vertikal zentriert ausgerichtet.% + \IndexOption{captions~=centeredbeside}}% + \entry{\PValue{innerbeside}, + \PValue{besideinner}\IndexOption{captions~=innerbeside}}{% + Gleitumgebungstitel der Umgebung \Environment{captionsbeside} (siehe + \autoref{sec:maincls.floats}, + \autopageref{desc:maincls.env.captionbeside}) werden bei + doppelseitigem Satz in der Voreinstellung innen neben dem Inhalt der + Gleitumgebung gesetzt. Dies entspricht im einseitigen Satz + \OptionValue{captions}{leftbeside}.}% + \entry{\PValue{leftbeside}, + \PValue{besideleft}\IndexOption{captions~=leftbeside}}{% + Gleitumgebungstitel der Umgebung \Environment{captionsbeside} (siehe + \autoref{sec:maincls.floats}, + \autopageref{desc:maincls.env.captionbeside}) werden in der + Voreinstellung links neben dem Inhalt der Gleitumgebung gesetzt.}% + \pventry{nooneline}{% + Einzeilige Über"~ und Unterschriften von Gleitumgebungen werden nicht + gesondert, sondern genau wie mehrzeilige behandelt.% + \IndexOption{captions~=nooneline}}% + \pventry{oneline}{% + Einzeilige Über"~ und Unterschriften von Gleitumgebungen werden gesondert + behandelt, um sie horizontal zu zentrieren.% + \IndexOption{captions~=oneline}}% + \entry{\PValue{outerbeside}, \PValue{besideouter}% + \IndexOption{captions~=outerbeside}}{% + Gleitumgebungstitel der Umgebung \Environment{captionsbeside} (siehe + \autoref{sec:maincls.floats}, + \autopageref{desc:maincls.env.captionbeside}) werden bei + doppelseitigem Satz in der Voreinstellung außen neben dem Inhalt der + Gleitumgebung gesetzt. Dies entspricht im einseitigen Satz + \OptionValue{captions}{rightbeside}.}% + \entry{\PValue{rightbeside}, \PValue{besideright}% + \IndexOption{captions~=rightbeside}}{% + Gleitumgebungstitel der Umgebung \Environment{captionsbeside} (siehe + \autoref{sec:maincls.floats}, + \autopageref{desc:maincls.env.captionbeside}) werden in der + Voreinstellung rechts neben dem Inhalt der Gleitumgebung gesetzt.}% + \entry{\PValue{tableheading}, \PValue{tableabove}, \PValue{abovetable}, + \PValue{abovetabular}, \PValue{topattable}% + \IndexOption{captions~=tableheading}}{% + Bei Tabellen wird die Formatierung als Überschrift gewählt.}% + \entry{\PValue{tablesignature}, \PValue{belowtable}, \PValue{belowtabular}, + \PValue{bottomattable}% + \IndexOption{captions~=tablesignature}}{% + Bei Tabellen wird die Formatierung als Unterschrift gewählt.}% + \entry{\PValue{topbeside}, \PValue{besidetop}}{% + Gleitumgebungstitel der Umgebung \Environment{captionsbeside} (siehe + \autoref{sec:maincls.floats}, + \autopageref{desc:maincls.env.captionbeside}) werden mit der + obersten Grundlinie auf Höhe der obersten Grundlinie des Inhalts der + Gleitumgebung ausgerichtet.% + \IndexOption{captions~=topbeside}}% +\end{desctable}}% +% +\EndIndex{Option}{captions~=\PName{Einstellung}}% + + +\begin{Declaration} + \Macro{caption}\OParameter{Verzeichniseintrag}\Parameter{Titel}\\ + \Macro{captionbelow}\OParameter{Verzeichniseintrag}\Parameter{Titel}\\ + \Macro{captionabove}\OParameter{Verzeichniseintrag}\Parameter{Titel} +\end{Declaration}% +\BeginIndex{Cmd}{caption}% +\BeginIndex{Cmd}{captionabove}% +\BeginIndex{Cmd}{captionbelow}% +Tabellen und Abbildungen werden bei den Standardklassen mit Hilfe der +Anweisung \Macro{caption} mit einem \PName{Titel} in Form einer +Unterschrift\Index{Tabellen>Unterschrift} versehen. Bei Abbildungen ist dies +grundsätzlich korrekt. Bei Tabellen wird gestritten, ob der \PName{Titel} als +Überschrift über oder konsistent mit der +Bildunterschrift\Index{Bildunterschrift} unter die Tabelle gehört. Daher +bietet \KOMAScript{} im Gegensatz zu den Standardklassen die Anweisungen +\Macro{captionbelow} für \PName{Titel} in Form von Unterschriften und +\Macro{captionabove} für \PName{Titel} in Form von Überschriften. +\Macro{caption} verhält sich bei Abbildungen immer wie \Macro{captionbelow}. +Bei Tabellen lässt sich das Verhalten von \Macro{caption} hingegen mit der +Option \Option{captions}\IndexOption{captions} steuern, die am Anfang dieses +Abschnitts zu finden ist. Aus Gründen der Kompatibilität ist voreingestellt, +dass sich \Macro{caption} auch bei Tabellen wie \Macro{captionbelow} verhält. +% +\begin{Example} + Sie wollen mit + Tabellenüberschriften\Index{Tabellen>Ueberschrift=Überschrift} statt mit + Tabellenunterschriften arbeiten, weil Sie teilweise Tabellen haben, die über + mehr als eine Seite gehen. Mit den Standardklassen bliebe Ihnen nur die + Möglichkeit: +\begin{lstcode} + \begin{table} + \caption{Dies ist nur eine Beispieltabelle} + \begin{tabular}{llll} + Dies & ist & ein & Beispiel.\\\hline + Bitte & lassen & Sie & den \\ + Inhalt & dieser & Tabelle & unbeachtet. + \end{tabular} + \end{table} +\end{lstcode} + Damit hätten Sie das unschöne Ergebnis: + \begin{ShowOutput}\centering + {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:} + Dies ist nur eine + Beispieltabelle}\\ + \begin{tabular}{llll} + Dies & ist & ein & Beispiel.\\\hline + Bitte & lassen & Sie & den \\ + Inhalt & dieser & Tabelle & unbeachtet. + \end{tabular} + \end{ShowOutput} + Bei \KOMAScript{} schreiben Sie hingegen: +\begin{lstcode} + \begin{table} + \captionabove{Dies ist nur eine Beispieltabelle} + \begin{tabular}{llll} + Dies & ist & ein & Beispiel.\\\hline + Bitte & lassen & Sie & den \\ + Inhalt & dieser & Tabelle & unbeachtet. + \end{tabular} + \end{table} +\end{lstcode} + Sie erhalten dann das gewünschte Ergebnis: + \begin{ShowOutput}\centering + {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:} + Dies ist nur eine + Beispieltabelle}\\\vskip\abovecaptionskip + \begin{tabular}{llll} + Dies & ist & ein & Beispiel.\\\hline + Bitte & lassen & Sie & den \\ + Inhalt & dieser & Tabelle & unbeachtet. + \end{tabular} + \end{ShowOutput} + Da Sie konsistent alle Tabellen mit Überschriften versehen, können Sie + stattdessen auch die Option \OptionValue{captions}{tableheading} setzen + (siehe \autopageref{desc:maincls.option.captions.tableheading}). Dann genügt + es, wenn Sie wie bei den Standardklassen \Macro{caption} verwenden. Sie + erhalten trotzdem das Ergebnis von \Macro{captionabove}. +\end{Example} + +\BeginIndex[indexother]{}{Schriftart}% +Die Schriftart\ChangedAt{v2.8p}{% + \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} für die +Beschreibung und das Label~-- »Abbildung« oder »Tabelle« gefolgt von der +Nummer und einem Trennzeichen -- kann über die Anweisungen \Macro{setkomafont} +und \Macro{addtokomafont} (siehe \autoref{sec:maincls.textmarkup}, +\autopageref{desc:maincls.cmd.setkomafont}) verändert werden. Zuständig +sind hier die Elemente \FontElement{caption}\IndexFontElement{caption} und +\FontElement{captionlabel}\IndexFontElement{captionlabel} (siehe +\autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}). Dabei wird die Schriftart für +das Element \FontElement{caption} zunächst auch auf das Element +\FontElement{captionlabel} angewandt, bevor dessen spezifische Schriftart +Anwendung findet. Die Vorbelegungen sind \autoref{tab:maincls.captionFont} zu +entnehmen. +% +\afterpage{\afterpage{% Umbruchkorrektur +\begin{table} + \centering% + \caption[{Schriftvoreinstellungen für die Elemente der Tabellen- + oder\newline Abbildungsunterschrift + bzw. "~überschrift}]{Schriftvoreinstellungen für die Elemente der Tabellen- + oder Abbildungsunterschrift bzw. "~überschrift} + \begin{tabular}{ll} + \toprule + Element & Voreinstellung \\ + \midrule + \FontElement{caption} & \Macro{normalfont} \\ + \FontElement{captionlabel} & \Macro{normalfont} \\ + \bottomrule + \end{tabular} + \label{tab:maincls.captionFont} +\end{table} +}} +% +\begin{Example} + Sie wollen, dass Tabellen- und Abbildungsbeschreibungen in einer + kleineren Schriftart gesetzt werden. Also setzen Sie + beispielsweise in der Präambel Ihres Dokuments: +\begin{lstcode} + \addtokomafont{caption}{\small} +\end{lstcode} + Außerdem hätten Sie gerne, dass das Label serifenlos und fett + gedruckt wird. Sie setzen also außerdem: +\begin{lstcode} + \setkomafont{captionlabel}{\sffamily\bfseries} +\end{lstcode} + Das Ergebnis wäre bei Verwendung von \Macro{addkomafont} in diesem Fall + übrigens gleich. +\end{Example} +% +\EndIndex[indexother]{}{Schriftart} +% +\EndIndex{Cmd}{caption}% +\EndIndex{Cmd}{captionabove}% +\EndIndex{Cmd}{captionbelow}% + + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{captionbeside}}% + \OParameter{Verzeichnistitel}\Parameter{Titel}\texttt{\%}\\ + \hphantom{\XMacro{begin}\PParameter{captionbeside}}% + \OParameter{Anordnung}\OParameter{Breite}% + \OParameter{Offset}\\% + \quad\dots\\ + \XMacro{end}\PParameter{captionbeside}\\ + \XMacro{begin}\PParameter{captionbeside}\OParameter{Verzeichnistitel}% + \Parameter{Titel}\texttt{\%}\\ + \hphantom{\XMacro{begin}\PParameter{captionbeside}}% + \OParameter{Anordnung}\OParameter{Breite}% + \OParameter{Offset}\PValue{*}\\ + \quad\dots\\ + \XMacro{end}\PParameter{captionbeside} +\end{Declaration} +\BeginIndex{Env}{captionbeside}% +Neben \ChangedAt{v2.8q}{% + \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}% +den Unter- und Überschriften findet man insbesondere bei kleineren +Abbildungen häufiger Beschreibungen, die neben der Abbildung gesetzt +werden. Dabei schließt normalerweise die Unterkante der Beschreibung +mit der Unterkante der Abbildung ab. Natürlich kann man mit etwas +Geschick und beispielsweise zwei \Macro{parbox}-Anweisungen +dergleichen auch in den Standardklassen erreichen. \KOMAScript{} +bietet jedoch eine spezielle Umgebung. Diese Umgebung kann innerhalb +der Gleitumgebungen verwendet werden. Der erste optionale Parameter +\PName{Verzeichnistitel} und der obligatorische Parameter +\PName{Titel} entsprechen dabei genau den gleichnamigen Parametern von +\Macro{caption}, \Macro{captionabove} oder \Macro{captionbelow}. Der +\PName{Titel} wird dabei neben den Inhalt der Umgebung gesetzt. + +Ob der \PName{Titel} rechts oder links daneben gesetzt wird, kann mit +dem optionalen Parameter \PName{Anordnung} bestimmt werden. Es darf +genau einer der folgenden Buchstaben angegeben werden: +\begin{labeling}[~--]{\PValue{o}} +\item[\PValue{l}] links +\item[\PValue{r}] rechts +\item[\PValue{i}] innen, also auf rechten Seiten links und auf + linken Seiten rechts +\item[\PValue{o}] außen, also auf rechten Seiten rechts und auf + linken Seiten links +\end{labeling} +Voreingestellt ist rechts neben dem Inhalt der Umgebung. Diese +Voreinstellung\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} kann jedoch mit der Option +\Option{captions}\IndexOption{captions} (siehe +\autopageref{desc:maincls.option.captions}) und deren Werte +\PValue{innerbeside}\IndexOption[indexmain]{captions~=innerbeside}, +\PValue{leftbeside}\IndexOption[indexmain]{captions~=leftbeside}, +\PValue{outerbeside}\IndexOption[indexmain]{captions~=outerbeside} und +\PValue{rightbeside}\IndexOption[indexmain]{captions~=rightbeside} verändert +werden. Bei Verwendung der Anordnung außen oder innen werden unter Umständen +zwei \LaTeX-Durchläufe benötigt, um die korrekte Anordnung zu erreichen. + +Normalerweise nehmen der Inhalt der Umgebung und der \PName{Titel} die +gesamte verfügbare Breite ein. Es besteht jedoch die Möglichkeit, mit +dem optionalen Parameter \PName{Breite} eine andere Breite +anzugeben. Diese kann auch größer als die Breite des Textkörpers +sein. + +Bei Angabe einer \PName{Breite} wird die genutzte Breite +normalerweise bezüglich der Breite des Textkörpers zentriert. Mit dem +optionalen Argument \PName{Offset} kann stattdessen eine Verschiebung +relativ zum linken Rand angegeben werden. Ein positiver Wert +entspricht einer Verschiebung nach rechts, ein negativer Wert einer +Verschiebung nach links. Mit einem \PName{Offset} von 0\Unit{pt} +erfolgt die Ausgabe linksbündig. + +Wird hinter den optionalen Parameter \PName{Offset} noch ein Stern +gesetzt, so stellt der \PName{Offset} im doppelseitigen Druck auf +linken Seiten eine Verschiebung relativ zum rechten Rand dar. Ein +positiver Wert entspricht dann einer Verschiebung nach außen, während +ein negativer Wert für eine Verschiebung nach innen steht. Ein +\PName{Offset} von 0\Unit{pt} wäre dann also bündig zum inneren +Rand. Diese Variante benötigt unter Umständen zwei \LaTeX-Durchläufe, +um die korrekte Verschiebung zu erreichen. + +Vertikal erfolgt die Ausrichtung in der Voreinstellung unten. Das bedeutet, +dass die untere Grundlinie des Inhalts des Gleitobjekts und die untere +Grundlinie von \PName{Titel} auf einer Höhe liegen. Diese +Einstellung\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} kann mit der Option +\Option{captions}\IndexOption{captions} (siehe +\autopageref{desc:maincls.option.captions}) und deren Werte +\PValue{topbeside}\IndexOption[indexmain]{captions~=topbeside}, +\PValue{centeredbeside}\IndexOption[indexmain]{captions~=centeredbeside} und +\PValue{bottombeside}\IndexOption[indexmain]{captions~=bottombeside} verändert +werden. Bei der Einstellung \PValue{topbeside} werden die oberen Grundlinien +von Gleitobjektinhalt und \PName{Titel} auf einer Höhe ausgerichtet, während +bei \PValue{centeredbeside} eine Zentrierung stattfindet. In diesem +Zusammenhang sei erwähnt, dass Abbildungen normalerweise die Grundlinie unten +haben. Dies kann beispielsweise mit der Anweisung +\Macro{raisebox}\IndexCmd{raisebox} verändert werden. + +\begin{Example} + Ein Beispiel für die Verwendung der + \Environment{captionbeside}-Umgebung ist in + \autoref{fig:maincls.captionbeside} zu finden. Gesetzt wurde + diese Abbildung mit: +\begin{lstcode} + \begin{figure} + \begin{captionbeside}% + [Beispiel: Bildbeschreibung daneben, unten]% + {Eine Bildbeschreibung weder über noch unter + der Abbildung, sondern unten daneben}% + [i][\linewidth][2em]* + \fbox{\parbox[b][5\baselineskip][c]{.25\textwidth}{% + \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}} + \end{captionbeside} + \label{fig:maincls.captionbeside} + \end{figure} +\end{lstcode} + \begin{figure} + \begin{captionbeside}[Beispiel: Bildbeschreibung daneben, unten]% + {Eine Bildbeschreibung weder über noch unter der Abbildung, + sondern unten daneben}[i][\linewidth][2em]* + \fbox{\parbox[b][5\baselineskip][c]{.25\textwidth}{% + \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}} + \end{captionbeside} + \label{fig:maincls.captionbeside} + \end{figure} + Die Gesamtbreite ist also die aktuell verfügbare Breite + \PValue{\Macro{linewidth}}. Diese wird jedoch mit \PValue{2em} nach + außen verschoben. Der Titel oder die Beschreibung steht innen neben + der Abbildung. Damit erscheint die Abbildung selbst um 2\Unit{em} in + den Rand gerückt. + + Die Zentrierung der Bildbeschreibung mit + \begin{lstcode} + \KOMAoption{captions}{centeredbeside} + \end{lstcode} + zeigt \autoref{fig:maincls.captionbesidecentered}. Auch der Anfänger wird + erkennen, dass von dieser Ausrichtung normalerweise abzusehen ist. + \begin{figure} + \KOMAoption{captions}{centeredbeside} + \begin{captionbeside}[Beispiel: Bildbeschreibung daneben, mittig]% + {Eine Bildbeschreibung weder über noch unter der Abbildung, + sondern mittig daneben}[i][\linewidth][2em]* + \fbox{\parbox[b][5\baselineskip][c]{.25\textwidth}{% + \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}} + \end{captionbeside} + \label{fig:maincls.captionbesidecentered} + \end{figure} + + Demgegenüber kann die Ausrichtung oben, die bei + \autoref{fig:maincls.captionbesidetop} zu sehen ist, durchaus verwendet + werden. Zur Verdeutlichung, wie man \Macro{raisebox} zur Verschiebung der + Grundlinie verwenden kann, sei hier ein komplettes Beispiel angegeben: + \begin{lstcode} + \documentclass[captions=topbeside]{scrbook} + \usepackage[ngerman]{babel} + \usepackage{graphics} + \begin{document} + \chapter{Ein Beispiel} + \begin{figure} + \begin{captionbeside}% + [Beispiel: Bildbeschreibung daneben, oben]% + {Eine Bildbeschreibung weder über noch unter + der Abbildung, sondern oben daneben}% + [i][\linewidth][2em]* + \raisebox{\dimexpr\baselineskip-\totalheight}{% + \includegraphics{beispielbild}}% + \end{captionbeside} + \label{fig:maincls.captionbesidetop} + \end{figure} + \end{document} + \end{lstcode} + Mit \Macro{dimexpr} wird hier eine \eTeX-Anweisung verwendet. Bei älteren + \LaTeX-Installationen, die noch nicht auf \eTeX{} basieren und bei denen + deshalb \Macro{dimexpr} nicht definiert ist, lädt man stattdessen das Paket + \Package{calc}. + \begin{figure} + \KOMAoption{captions}{topbeside} + \begin{captionbeside}[Beispiel: Bildbeschreibung daneben, oben]% + {Eine Bildbeschreibung weder über noch unter der Abbildung, + sondern oben daneben}[i][\linewidth][2em]* + \raisebox{\dimexpr\baselineskip-\totalheight}{% + \fbox{% + \parbox[b][5\baselineskip][c]{.25\textwidth}{% + \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}}% + }% + \end{captionbeside} + \label{fig:maincls.captionbesidetop} + \end{figure} +\end{Example} +% +\EndIndex{Env}{captionbeside} + + +\begin{Declaration} + \FloatStyle{komaabove}\\ + \FloatStyle{komabelow} +\end{Declaration}% +\BeginIndex{Floatstyle}{komaabove}% +\BeginIndex{Floatstyle}{komabelow}% +Bei\OnlyAt{\Package{float}} Verwendung des +\Package{float}-Pakets\IndexPackage{float} wird das Aussehen der damit +definierten Gleitumgebungen allein vom \emph{float}-Stil bestimmt. Dies +schließt auch die Frage ein, ob mit Überschriften oder Unterschriften +gearbeitet wird. Im \Package{float}-Paket gibt es keinen vordefinierten Stil, +der im Aussehen dem von \KOMAScript{} entspricht und dieselben +Einstellmöglichkeiten (siehe unten) bietet. \KOMAScript{} definiert deshalb +zusätzlich die beiden Stile \PValue{komaabove} und \PValue{komabelow}. Diese +können bei Verwendung des \Package{float}-Pakets wie die dort definierten +Stile \PValue{plain}\IndexFloatstyle{plain}, +\PValue{boxed}\IndexFloatstyle{boxed} oder +\PValue{ruled}\IndexFloatstyle{ruled} aktiviert werden. Siehe dazu +\cite{package:float}. Beim Stil \PValue{komaabove} werden \Macro{caption}, +\Macro{captionabove} und \Macro{captionbelow} als Überschrift, beim Stil +\PValue{komabelow} als Unterschrift gesetzt.% +% +\EndIndex{Floatstyle}{komaabove}% +\EndIndex{Floatstyle}{komabelow}% + + +\begin{Declaration} + \Macro{captionformat} +\end{Declaration}% +\BeginIndex{Cmd}{captionformat}% +Bei {\KOMAScript} gibt es verschiedene Eingriffsmöglichkeiten, um die +Formatierung der Beschreibung zu ändern. Die Änderung der Schriftart +wurde bereits erläutert. Das oder die Trennzeichen zwischen dem Label +und dem eigentlichen Beschreibungstext sind im Makro +\Macro{captionformat} abgelegt. Abweichend von allen anderen +\Macro{\dots}format-Anweisungen ist hier also nicht der Zähler, +sondern nur die auf den Zähler folgenden Angaben enthalten. Die +Originaldefinition lautet: +\begin{lstcode}[belowskip=\dp\strutbox] + \newcommand*{\captionformat}{:\ } +\end{lstcode} +Auch diese kann mit \Macro{renewcommand} geändert werden. +\begin{Example} + Aus mir unerfindlichen Gründen wollen Sie als Trennzeichen + keinen Doppelpunkt gefolgt von einem Leerzeichen, sondern einen + Gedankenstrich einschließlich der notwendigen Leerzeichen. + Daher definieren Sie: +\begin{lstcode} + \renewcommand*{\captionformat}{~--~} +\end{lstcode} + Diese Definition sollten Sie beispielsweise in die Präambel Ihres + Dokuments stellen. +\end{Example} +% +\EndIndex{Cmd}{captionformat}% + + +\begin{Declaration} + \Macro{figureformat}\\ + \Macro{tableformat} +\end{Declaration}% +\BeginIndex{Cmd}{figureformat}% +\BeginIndex{Cmd}{tableformat}% +Es wurde schon darauf hingewiesen, dass \Macro{captionformat} keine +Formatierung für das Label selbst enthält. Dieses sollte nun +keineswegs über Umdefinierung der Anweisungen für die Zählerausgabe, +\Macro{thefigure} oder \Macro{thetable}, verändert werden. Eine solche +Umdefinierung hätte nämlich auch Auswirkungen auf die Ausgabe von +\Macro{ref} oder der Verzeichnisse. Stattdessen bietet {\KOMAScript} +auch hier zwei \Macro{\dots format}-Anweisungen. Diese sind wie folgt +vordefiniert: +\begin{lstcode} + \newcommand*{\figureformat}{\figurename~\thefigure\autodot} + \newcommand*{\tableformat}{\tablename~\thetable\autodot} +\end{lstcode} +Sie können ebenfalls mit \Macro{renewcommand} eigenen Anforderungen +angepasst werden. +\begin{Example} + Hin und wieder wird gewünscht, dass die Beschreibungstexte ganz ohne + Label und natürlich auch ohne Trennzeichen ausgegeben werden. Bei + {\KOMAScript} genügen folgende Definitionen, um dies zu erreichen: +\begin{lstcode} + \renewcommand*{\figureformat}{} + \renewcommand*{\tableformat}{} + \renewcommand*{\captionformat}{} +\end{lstcode} + Dabei ist jedoch zu beachten, dass die Nummerierung damit zwar nicht + ausgegeben, aber dennoch fortgezählt wird. Dies ist insbesondere dann + von Bedeutung, wenn die Umdefinierungen nur auf einzelne + \Environment{figure}- oder \Environment{table}-Umgebungen angewendet + werden. +\end{Example} +% +\EndIndex{Cmd}{figureformat}% +\EndIndex{Cmd}{tableformat}% + + +\begin{Declaration} + \Macro{setcapindent}\Parameter{Einzug}\\ + \Macro{setcapindent*}\Parameter{XEinzug}\\ + \Macro{setcaphanging} +\end{Declaration}% +\BeginIndex{Cmd}{setcapindent}% +\BeginIndex{Cmd}{setcapindent*}% +\BeginIndex{Cmd}{setcaphanging}% +Wie bereits erwähnt wurde, werden in den Standardklassen die +Beschreibungen nicht hängend gesetzt. Das heißt: In mehrzeiligen +Beschreibungen beginnt die zweite Zeile direkt unter dem Labeltext. +Es gibt bei den Standardklassen auch keinen Mechanismus, dies direkt +zu beeinflussen. Bei {\KOMAScript} werden hingegen alle Zeilen ab der +zweiten so weit eingerückt, dass diese nicht mehr unter dem Label, +»Abbildung~\dots:« oder »Tabelle~\dots:«, sondern unter dem +eigentlichen Text der ersten Zeile beginnen. + +Dieses Verhalten, das der Verwendung der Anweisung \Macro{setcaphanging} +entspricht, kann bei {\KOMAScript} jederzeit durch Verwendung der Anweisung +\Macro{setcapindent} oder \Macro{setcapindent*} geändert werden. Dabei gibt +der Parameter \PName{Einzug} an, wie weit ab der zweiten Zeile eingerückt +werden soll. Soll nach dem Label und vor dem Beschreibungstext noch ein +Zeilenumbruch erfolgen, so definieren Sie die Einrücktiefe \PName{XEinzug} der +Beschreibung stattdessen mit der Sternvariante der Anweisung: +\Macro{setcapindent*}. +Mit einem negativen \PName{Einzug} erreicht man hingegen, dass vor der +Beschreibung ebenfalls ein Umbruch erfolgt und nur die erste Zeile der +Beschreibung, nicht jedoch die folgenden, um den Betrag von \PName{Einzug} +eingerückt werden. + +Ob einzeilige Beschreibungen wie mehrzeilige Beschreibungen gesetzt werden +oder eine Sonderbehandlung erfahren, wird über die Option \Option{captions} +gewählt. Siehe hierzu die Erklärung zu den Werten \PValue{oneline} und +\PValue{nooneline} dieser Option auf +\autopageref{desc:maincls.option.captions.oneline}. + +\begin{Example} + Die Abbildungen~\ref{fig:maincls.caption.first} bis + \ref{fig:maincls.caption.last} zeigen die Auswirkungen unterschiedlicher + Einstellungen. Dabei wird deutlich, dass bei geringer Spaltenbreite der + komplett hängende Einzug unvorteilhaft ist. Der Quelltext der zweiten + Abbildung sei hier mit abgewandelter Unterschrift beispielhaft + wiedergegeben: +\begin{lstcode} + \begin{figure} + \setcapindent{1em} + \fbox{\parbox{.95\linewidth}{% + \centering\KOMAScript}} + \caption{Beispiel mit teilweise hängendem Einzug + ab der zweiten Zeile} + \end{figure} +\end{lstcode} + Wie zu sehen ist, kann die Formatierung also auch lokal innerhalb + der \Environment{figure}-Umgebung\IndexEnv{figure} geändert werden. Die + Änderung gilt dann nur für die eine Abbildung. Nachfolgende Abbildungen + werden wieder mit den Grundeinstellungen oder den globalen Einstellungen, + die Sie beispielsweise in der Dokumentpräambel vorgenommen haben, + gesetzt. Das gilt für Tabellen natürlich genauso. + \begin{figure} + \typeout{^^J--- Ignore underfull and overfull \string\hbox:} + \addtokomafont{caption}{\small} + \addtokomafont{captionlabel}{\bfseries} + \centering% + \begin{minipage}{.9\linewidth} + \begin{minipage}[t]{.48\linewidth}\sloppy + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption[Beispiel: Bildunterschrift mit Voreinstellung]% + {Mit der Stan\-dard\-ein\-stell\-ung, also wie bei + Verwendung von \Macro{setcaphanging}} + \label{fig:maincls.caption.first} + \end{minipage} + \hspace{.02\linewidth} + \begin{minipage}[t]{.48\linewidth}\sloppy + \setcapindent{1em} + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption[Beispiel: Bildunterschrift mit teilweise hängendem Einzug]% + {Mit teilweise häng"-endem Einzug ab der zweiten Zeile durch + Verwendung von \Macro{setcapindent}\PParameter{1em}} + \end{minipage} + \end{minipage} + + \vspace*{2ex}\noindent% + \begin{minipage}{.9\linewidth} + \begin{minipage}[t]{.48\linewidth}\sloppy + \setcapindent*{1em} + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption[Beispiel: Bildunterschrift mit hängendem Einzug und Umbruch]% + {Mit hängendem Einzug ab der zweiten Zeile und Umbruch vor + der Beschreibung durch Verwendung von + \Macro{setcapindent*}\PParameter{1em}} + \end{minipage} + \hspace{.02\linewidth} + \begin{minipage}[t]{.48\linewidth}\sloppy + \setcapindent{-1em} + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption[Beispiel: Bildunterschrift mit Einzug in den zweiten Zeile]% + {Mit Einzug lediglich in der zweiten Zeile und einem Umbruch + vor der Beschreibung durch Verwendung von + \Macro{setcapindent}\PParameter{-1em}} + \label{fig:maincls.caption.last} + \end{minipage} + \end{minipage} + \typeout{^^J--- Don't ignore underfull and overfull + \string\hbox:^^J} + \end{figure} +\end{Example} +% +\EndIndex{Cmd}{setcapindent}% +\EndIndex{Cmd}{setcapindent*}% +\EndIndex{Cmd}{setcaphanging}% + + +\begin{Declaration} + \Macro{setcapwidth}\OParameter{Ausrichtung}\Parameter{Breite}\\ + \Macro{setcapmargin}\OParameter{Rand links}\Parameter{Rand}\\ + \Macro{setcapmargin*}\OParameter{Rand innen}\Parameter{Rand} +\end{Declaration} +\BeginIndex{Cmd}{setcapwidth}% +\BeginIndex{Cmd}{setcapmargin}% +\BeginIndex{Cmd}{setcapmargin*}% +Mit \ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} Hilfe dieser drei Befehle kann die Breite und Anordnung +der Beschreibung beeinflusst werden. Normalerweise steht die gesamte Text- +oder Spaltenbreite für den Text der Beschreibung zur Verfügung. + +Mit der Anweisung \Macro{setcapwidth} kann diese \PName{Breite} +reduziert werden. Dabei gibt das obligatorische Argument die maximale +\PName{Breite} der Beschreibung an. Als optionales Argument kann genau +ein Buchstabe übergeben werden, der die horizontale Ausrichtung der +Beschreibung angibt. Die möglichen Ausrichtungen finden Sie in der +folgenden Liste. +\begin{labeling}[~--]{\PValue{o}} +\item[\PValue{l}] linksbündig +\item[\PValue{c}] zentriert +\item[\PValue{r}] rechtsbündig +\item[\PValue{i}] innen, also auf rechten Seiten linksbündig und auf + linken Seiten rechtsbündig +\item[\PValue{o}] außen, also auf rechten Seiten rechtsbündig und auf + linken Seiten linksbündig +\end{labeling} +Die Ausrichtung innen und außen entspricht im einseitigen Satz +linksbündig und rechtsbündig. Innerhalb von +\Package{longtable}\IndexPackage{longtable}-Tabellen funktioniert die +Ausrichtung innen und außen nicht korrekt. Insbesondere werden +Beschreibungen von Folgeseiten bei diesen Tabellen immer nach den +Beschreibungen der ersten Teiltabelle ausgerichtet. Dies ist ein +konzeptionelles Problem des Paketes \Package{longtable}. + +Mit der Anweisung \Macro{setcapmargin} kann statt der Breite der Beschreibung +ein \PName{Rand} angegeben werden, der neben der Beschreibung zusätzlich zum +normalen Textrand eingehalten werden soll. Sollen der Rand rechts und links +nicht identisch gewählt werden, kann mit dem optionalen Argument ein von +\PName{Rand} abweichender \PName{Rand links} von der Beschreibung eingestellt +werden. Bei der Sternvariante \Macro{setcapmargin*} wird statt \PName{Rand + links} im doppelseitigen Satz \PName{Rand innen} abweichend definiert. +Hier ergibt sich bei \Package{longtable}\IndexPackage{longtable}-Tabellen das +gleiche Problem wie bei der Ausrichtung außen oder innen bei der Anweisung +\Macro{setcapwidth}. Die Verwendung von \Macro{setcapmargin} oder +\Macro{setcapmargin*} aktiviert außerdem die Einstellung +\OptionValue{captions}{nooneline} (siehe +\autopageref{desc:maincls.option.captions.nooneline}) für die Beschreibungen, +die mit dieser Randeinstellung gesetzt werden. + +Man kann übrigens auch negative Werte für \PName{Rand} und \PName{Rand rechts} +oder \PName{Rand außen} angeben. Dadurch erreicht man, dass die Beschreibung +in den entsprechenden Rand hineinragt. + +Für Experten und versierte Anwender ist eine etwas trickreiche Anwendung für +\Macro{setcapwidth} in +\iffree{\cite{book:komascript}}{\autoref{cha:floattricks}, + \autopageref{cha:floattricks}} zu finden.% +% +\EndIndex{Cmd}{setcapwidth}% +\EndIndex{Cmd}{setcapmargin}% +\EndIndex{Cmd}{setcapmargin*}% + + +\begin{Declaration} + \Option{origlongtable} +\end{Declaration}% +\BeginIndex{Option}{origlongtable}% +\BeginIndex{Package}{longtable}% +Falls die Tabellenüberschriften des \Package{longtable}-Pakets (siehe +\cite{package:longtable}) von den \KOMAScript-Klassen nicht umdefiniert werden +sollen, kann die Option \Option{origlongtable} gesetzt werden. Diese Option +ist als optionales Argument von \Macro{documentclass} zu verwenden. Eine +Einstellung per \Macro{KOMAoptions} oder \Macro{KOMAoption} wird nicht +unterstützt. +% +\EndIndex{Package}{longtable}% +\EndIndex{Option}{origlongtable}% +% +\EndIndex{}{Abbildungen}% +\EndIndex{}{Tabellen}% +\EndIndex{}{Gleitumgebungen}% + + +\begin{Declaration} + \KOption{listof}\PName{Einstellung} +\end{Declaration} +\BeginIndex{Option}{listof~=\PName{Einstellung}}% +Normalerweise\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} werden die Verzeichnisse der Gleitumgebungen -- wie das +Tabellen"~\Index{Tabellen>Verzeichnis der} und das +Abbildungsverzeichnis\Index{Abbildungen>Verzeichnis der} -- nicht nummeriert +oder in das Inhaltsverzeichnis aufgenommen. In \autoref{sec:maincls.toc} wurde +dies bereits näher ausgeführt. Alternativ zu den dort erwähnten Einstellungen +\OptionValue{toc}{nolistof}\IndexOption{toc~=nolistof}, +\OptionValue{toc}{listof}\IndexOption{toc~=listof} und +\OptionValue{toc}{listofnumbered}\IndexOption{toc~=listofnumbered}, kann +dieses Verhalten auch aus Sicht der Verzeichnisse selbst gesehen werden. Daher +kann man die gleichen Ergebnisse auch mit den Einstellungen +\OptionValue{listof}{notoc}, \OptionValue{listof}{totoc} und +\OptionValue{listof}{numbered} erreichen. + +Dabei werden in der Voreinstellung für die Überschriften der Verzeichnisse die +oberste verfügbare Gliederungsebene unterhalb von \Macro{part} verwendet. Bei +\Class{scrbook} und \Class{scrreprt} ist das die Kapitelebene, bei +\Class{scrartcl} die Abschnittsebene. Mit Hilfe der Einstellung +\OptionValue{listof}{leveldown} kann hingegen die nächst tiefere +Gliederungsebene verwendet werden. +\begin{Example} + Sie wollen in einem Buch das Abbildungs- und das Tabellenverzeichnis als + Unterverzeichnisse eines gemeinsamen Verzeichnisses »Abbildungen und + Tabellen« setzen. Dazu verwenden Sie einfach: + \begin{lstcode} + \KOMAoption{listof}{leveldown} + \end{lstcode} + und dann an entsprechender Stelle Ihres Dokuments: + \begin{lstcode} + \addchap*{Abbildungs- und Tabellenverzeichnis} + \listoffigures + \listoftables + \end{lstcode} + Näheres zur Anweisung \Macro{addchap*} ist \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.addchap*} zu entnehmen. +\end{Example} + +Normalerweise\ChangedAt{v2.8q}{% + \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} werden die +Verzeichnisse\Index{Abbildungen>Verzeichnis der}\Index{Tabellen>Verzeichnis + der} der Gleitumgebungen so formatiert, dass für die Nummer ein Raum fester +Breite verwendet wird. Dies entspricht der Verwendung der Einstellung +\OptionValue{listof}{graduated}\IndexOption{listof~=graduated}. + +Werden die Nummern sehr breit, weil beispielsweise sehr viele Tabellen +verwendet werden, so reicht der vorgesehene Platz irgendwann nicht mehr aus. +Vergleichbar zur Einstellung \OptionValue{toc}{flat}\IndexOption{toc~=flat} +für das Inhaltsverzeichnis bietet \KOMAScript{} daher die Einstellung +\OptionValue{listof}{flat}\IndexOption{listof~=flat} für die Verzeichnisse der +Gleitumgebungen. Dabei wird die Breite der Nummern automatisch ermittelt und +der Platz entsprechend angepasst. Bezüglich der Nebenwirkungen und +Funktionsweise gilt, was in \autoref{sec:maincls.toc}, +\autopageref{desc:maincls.option.toc.flat} für die Einstellung +\OptionValue{toc}{flat} erklärt wurde. Es sei an dieser Stelle jedoch nochmals +darauf hingewiesen, dass mit der Einstellung \OptionValue{listof}{flat} +mehrere \LaTeX-Durchläufe benötigt werden, bis die Verzeichnisse ihre +endgültige Form erhalten haben. + +Bei den Klassen \Class{scrbook} und +\Class{scrreprt}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} fügt +\KOMAScript{} in der Voreinstellung bei jedem Kapitelanfang einen vertikalen +Abstand in die Verzeichnisse der Gleitumgebungen ein. Dieses Verhalten, das es +auch bei den Standardklassen gibt, dient dazu, diese Verzeichnisse nach +Kapiteln zu gruppieren. Es entspricht bei \KOMAScript{} der +Einstellung\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} +\OptionValue{listof}{chaptergapsmall}\IndexOption{listof~=chaptergapsmall}. +Dabei wird ein fester vertikaler Abstand von 10\Unit{pt} verwendet. Mit der +Einstellung +\OptionValue{listof}{chaptergapline}\IndexOption{listof~=chaptergapline} kann +man stattdessen einen vertikalen Abstand von einer Zeile erreichen. Mit +\OptionValue{listof}{nochaptergap}\IndexOption{listof~=nochaptergap} kann man +den vertikalen Abstand komplett abschalten. Eine Besonderheit stellt die +Einstellung +\OptionValue{listof}{chapterentry}\IndexOption{listof~=chapterentry} +dar. Dabei wird statt des Abstandes der Inhaltsverzeichniseintrag für das +Kapitel in das Verzeichnis der Gleitumgebungen eingefügt. Es wird darauf +hingewiesen, dass ein solcher Eintrag auch dann erfolgt, wenn das Kapitel +keine Gleitumgebung enthält. Eine noch direktere Beeinflussung, was in den +Verzeichnissen der Gleitumgebungen bei neuen Kapiteln geschehen soll, ist mit +der Option \Option{chapteratlists} zu erreichen, die nachfolgend erläutert +wird. + +Einen Überblick über alle möglichen Werte für die \PName{Einstellung} von +\Option{listof} ist in \autoref{tab:maincls.listof} zu finden. + +\begin{desctable} + \caption[{Mögliche Werte für Option \Option{listof}}]{Mögliche Werte für + Option \Option{listof} zur Einstellung von Form und Inhalt der + Verzeichnisse der Gleitumgebungen\label{tab:maincls.listof}}\\ + \Endfirsthead% + \caption[]{Mögliche Werte für Option \Option{listof} (\emph{Fortsetzung})}\\ + \Endhead% + \standardfoot% + \entry{\PValue{chapterentry}, \PValue{withchapterentry}}{% + Kapitelanfänge werden in den Verzeichnissen der Gleitumgebungen durch + einen Inhaltsverzeichniseintrag des Kapitels markiert.% + \IndexOption{listof~=chapterentry}}% + \entry{\PValue{chaptergapline}, \PValue{onelinechaptergap}}{% + Kapitelanfänge werden in den Verzeichnissen der Gleitumgebungen durch + einen Abstand von einer Zeile markiert.% + \IndexOption{listof~=chaptergapline}}% + \entry{\PValue{chaptergapsmall}, \PValue{smallchaptergap}}{% + Kapitelanfänge werden in den Verzeichnissen der Gleitumgebungen durch + einen kleinen Abstand markiert.% + \IndexOption{listof~=chaptergapsmall}}% + \entry{\PValue{flat}, \PValue{left}}{% + Die Verzeichnisse der Gleitumgebungen erhalten eine tabellarische + Form. Die Gleitumgebungsnummern sind dabei die erste Spalte, der Titel die + zweite Spalte, die Seitenzahlen die dritte Spalte. Der Platz, der für die + Gleitumgebungsnummern reserviert wird, richtet sich nach dem benötigten + Platz des vorherigen \LaTeX-Laufs.% + \IndexOption{listof~=flat}}% + \entry{\PValue{graduated}, \PValue{indent}, \PValue{indented}}{% + Die Verzeichnisse der Gleitumgebungen erhalten eine hierarchische Form. Es + steht nur ein begrenzter Platz für die Gleitumgebungsnummern zur + Verfügung.% + \IndexOption{listof~=graduated}}% + \entry{\PValue{leveldown}}{% + Die Verzeichnisse werden um eine Gliederungsebene nach unten verschoben.% + \IndexOption{listof~=leveldown}}% + \entry{\PValue{nochaptergap}, \PValue{ignorechapter}}{% + Kapitelanfänge werden in den Verzeichnissen der Gleitumgebungen nicht + markiert.% + \IndexOption{listof~=nochaptergap}}% + \entry{\PValue{notoc}, \PValue{plainheading}}{% + Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und + das Tabellenverzeichnis, erhalten keinen Eintrag im Inhaltsverzeichnis.% + \IndexOption{listof~=notoc}}% + \entry{\PValue{numbered}, \PValue{totocnumbered}, \PValue{tocnumbered}, + \PValue{numberedtotoc}}{% + Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und + das Tabellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis und + werden nummeriert.% + \IndexOption{listof~=numbered}}% + \entry{\PValue{totoc}, \PValue{toc}, \PValue{notnumbered}}{% + Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und + das Tabellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis, + ohne dass sie nummeriert werden.% + \IndexOption{listof~=totoc}}% +\end{desctable} +% +\EndIndex{Option}{listof~=\PName{Einstellung}}% + + +\begin{Declaration} + \Macro{listoftables}\\ + \Macro{listoffigures} +\end{Declaration}% +\BeginIndex{Cmd}{listoftables}% +\BeginIndex{Cmd}{listoffigures}% +Mit diesen Anweisungen kann ein Verzeichnis der Tabellen beziehungsweise der +Abbildungen ausgegeben werden. Änderungen, die Auswirkungen auf diese +Verzeichnisse haben, werden erst nach zwei \LaTeX{}-Läufen sichtbar. Die Form +der Verzeichnisse kann durch die Option \Option{listof} mit den Werten +\PValue{graduated} und \PValue{flat} beeinflusst werden (siehe +\autopageref{desc:maincls.option.listof}). Darüber hinaus wirken sich indirekt +die Werte \PValue{listof} und \PValue{listofnumbered} für die Option +\Option{toc} (siehe \autoref{sec:maincls.toc}, +\autopageref{desc:maincls.option.toc}), sowie die Werte \PValue{totoc} und +\PValue{totocnumbered} der oben erläuterten Option \Option{listof} auf die +Verzeichnisse aus. + +In der Regel findet man die Verzeichnisse der +Gleitumgebungen\Index{Gleitumgebungen}, also das +\index{Tabellen>Verzeichnis der}Tabellen- und das +Abbildungsverzeichnis\index{Abbildungen>Verzeichnis der}, unmittelbar nach dem +Inhaltsverzeichnis. In einigen Dokumenten wandern diese auch in den +Anhang. Der Autor bevorzugt jedoch die Platzierung unmittelbar nach dem +Inhaltsverzeichnis.% +% +\EndIndex{Cmd}{listoffigures}% +\EndIndex{Cmd}{listoftables}% + + +\LoadCommon{13}% \section{Randnotizen} + + +\section{Anhang} +\label{sec:maincls.appendix} +\BeginIndex{}{Anhang} + +Der Anhang eines Dokuments besteht im Wesentlichen aus den Anlagen zu einem +Dokument. Typische Teile eines Anhangs sind Literaturverzeichnis, +Stichwortverzeichnis und Begriffsverzeichnis. Alleine für diese Teile würde +man jedoch keinen Anhang beginnen, da diese Teile normalerweise schon von sich +aus eine Auszeichnung besitzen, die sie als Anhang erkennbar macht. Enthält +der Anhang aber weitere Teile wie beispielsweise zitierte Fremddokumente, +Endnoten oder Tafeln, so werden die zuvor genannten Teile ebenfalls im Anhang +gesetzt. + + +\begin{Declaration} + \Macro{appendix} +\end{Declaration}% +\BeginIndex{Cmd}{appendix}% +Der Anhang wird in den Standardklassen und den {\KOMAScript}-Klassen mit der +Anweisung \Macro{appendix} eingeleitet. Diese Anweisung schaltet unter anderem +die Kapitelnummerierung auf Großbuchstaben um und sorgt gleichzeitig dafür, +dass die Regeln für die Nummerierung der Gliederungsebenen nach \cite{DUDEN} +eingehalten werden. Diese Regeln sind in der Beschreibung der Option +\Option{numbers} in +\autoref{sec:maincls.structure}, +\autopageref{desc:maincls.option.numbers} näher erläutert. + +Die Form der Kapitelüberschriften\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} +im Anhang wird durch die Optionen \Option{chapterprefix} und +\Option{appendixprefix} bestimmt. Näheres dazu ist +\autoref{sec:maincls.structure}, +\autopageref{desc:maincls.option.appendixprefix} zu entnehmen. + +Bitte beachten Sie, dass es sich bei \Macro{appendix} um eine +Anweisung und \emph{nicht} um eine Umgebung handelt! Die Anweisung +erwartet auch nicht etwa ein Argument. Die Kapitel beziehungsweise +Abschnitte des Anhangs werden ganz normal mit \Macro{chapter} und +\Macro{section} gesetzt.% +% +\EndIndex{Cmd}{appendix}% +% +\EndIndex{}{Anhang} + + +\section{Literaturverzeichnis} +\label{sec:maincls.bibliography} +\BeginIndex{}{Literaturverzeichnis} + +Das Literaturverzeichnis erschließt externe Quellen. In der Regel wird das +Literaturverzeichnis mit Hilfe des Programms \BibTeX{} aus einer Datei mit +datenbankähnlicher Struktur erzeugt. Dabei kann über den \BibTeX-Stil sowohl +die Form der Einträge als auch deren Sortierung verändert werden. Wird +zusätzlich ein Literaturpaket, beispielsweise +\Package{natbib}\IndexPackage{natbib}, +\Package{babelbib}\IndexPackage{bibalbib} oder +\Package{biblatex}\IndexPackage{biblatex} verwendet, so schwindet der Einfluss +von \KOMAScript{} auf das Literaturverzeichnis. In diesen Fällen ist unbedingt +die Anleitung des verwendeten Pakets zu beachten! Zur generellen Verwendung +eines Literaturverzeichnisses sei auf \cite{l2kurz} verwiesen. + + +\begin{Declaration} + \KOption{bibliography}\PName{Einstellung} +\end{Declaration} +\BeginIndex{Option}{bibliography~=\PName{Einstellung}}% +Als \PName{Einstellung}\ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}} kann zunächst einmal jeder definierte +Formatierungsstil gewählt werden. Vordefiniert sind bei \KOMAScript{} zwei +solche Formatierungsstile für das Literaturverzeichnis. Diese sind jedoch +nicht zu verwechseln mit den unterschiedlichen Stilen für +\BibTeX\Index{BibTeX=\BibTeX}, die man mit \Macro{bibstyle} auswählt. Während +\BibTeX{} sowohl die Art der Sortierung als auch den Inhalt des +Literaturverzeichnisses bestimmt, können über die Einstellungen von +\KOMAScript{} nur grundlegende Eigenschaften des Literaturverzeichnisses oder +einige wenige Eigenschaften der Formatierung der Einträge beeinflusst werden. + +Mit \OptionValue{bibliography}{oldstyle}\IndexOption{bibliography~=oldstyle} +wird die kompakte Formatierung gewählt. Dabei führt die Anweisung +\Macro{newblock}\IndexCmd{newblock} in den einzelnen Einträgen lediglich zu +einem dehnbaren horizontalen Abstand. Der Name kommt daher, dass dies die +häufigste klassische Form eines Literaturverzeichnisses ist. Demgegenüber +erreicht man die etwas modernere, offene Form mit der Einstellung +\OptionValue{bibliography}{openstyle}\IndexOption{bibliography~=openstyle}. Der +Name kommt daher, dass hier die Anweisung \Macro{newblock} einen Absatz +einfügt. Die Einträge im Literaturverzeichnis werden so stärker +gegliedert. Sie sind weniger kompakt und deutlich aufgelockerter oder geöffnet. +Bezüglich der Möglichkeit, neue Formatierungsstile zu definieren, sei auf +\Macro{newbibstyle}, \autoref{sec:maincls-experts.experts}, +\autopageref{desc:maincls-experts.cmd.newbibstyle} verwiesen. + +Neben dem Formatierungsstil gibt es eine weitere Eigenschaft, die über +\PName{Einstellung} verändert werden kann. Das Literaturverzeichnis stellt +eine Art von Verzeichnis dar, bei der nicht der Inhalt des vorliegenden Werks +aufgelistet, sondern auf externe Inhalte verwiesen wird. Mit dieser Begründung +könnte man argumentieren, dass das Literaturverzeichnis ein eigenes Kapitel +bzw. einen eigenen Abschnitt darstellt und somit eine Nummer verdiene. Die +Einstellung \OptionValue{bibliography}{totocnumbered}% +\IndexOption{bibliography~=totocnumbered} führt genau dazu, einschließlich des +dann fälligen Eintrags im Inhaltsverzeichnis. Ich selbst bin der Meinung, +dass bei dieser Argumentation auch ein klassisches, kommentiertes +Quellenverzeichnis ein eigenes Kapitel wäre. Außerdem ist das +Literaturverzeichnis letztlich nichts, was man selbst geschrieben hat. Deshalb +verdient es allenfalls einen nicht nummerierten Eintrag im +Inhaltsverzeichnis, was mit der Einstellung +\OptionValue{bibliography}{totoc}\IndexOption{bibliography~=totoc} erreicht +wird. Die Voreinstellung, bei der das Literaturverzeichnis als nicht +nummeriertes Kapitel ohne eigenen Inhaltsverzeichniseintrag gesetzt wird, +entspricht +\OptionValue{bibliography}{nottotoc}\IndexOption{bibliography~=nottotoc}. Siehe +hierzu auch Option \Option{toc} in \autoref{sec:maincls.toc}, +insbesondere die Werte \PValue{bibliographynumbered}, \PValue{bibliography} +und \PValue{nobibliography} ab +\autopageref{desc:maincls.option.toc.bibliography}. + +Eine Zusammenfassung der möglichen Werte für die \PName{Einstellung} von +\PName{bibliography} ist in \autoref{tab:maincls.bibliography} zu finden. Es +ist jedoch zu beachten, dass mit \Macro{newbibstyle}\IndexCmd{newbibstyle} +weitere Werte definiert werden können. + +\begin{table} + \caption[{Mögliche Werte für Option \Option{bibliography}}]{Vordefinierte + Werte für Option \Option{bibliography} zur Einstellung der Form des + Literaturverzeichnisses} + \label{tab:maincls.bibliography} + \begin{desctabular} + \pventry{nottotoc}{% + Das Literaturverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis + und wird auch nicht nummeriert.% + \IndexOption{bibliography~=nottotoc}}% + \pventry{oldstyle}{% + Es wird die klassische, kompakte Formatierung gewählt, bei der + \Macro{newblock}\IndexCmd{newblock} nur einen dehnbaren horizontalen + Abstand darstellt.% + \IndexOption{bibliography~=oldstyle}}% + \pventry{openstyle}{% + Es wird eine untergliederte, offene Formatierung gewählt, bei der + \Macro{newblock}\IndexCmd{newblock} einen Absatz darstellt.% + \IndexOption{bibliography~=openstyle}}% + \pventry{totoc}{% + Das Literaturverzeichnis erhält einen Eintrag im Inhaltsverzeichnis, + ohne dass es nummeriert wird.% + \IndexOption{bibliography~=totoc}}% + \pventry{totocnumbered}{% + Das Literaturverzeichnis erhält einen Eintrag im Inhaltsverzeichnis und + wird nummeriert.% + \IndexOption{bibliography~=totocnumbered}}% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{bibliography~=\PName{Einstellung}}% + + +\begin{Declaration} + \Macro{setbibpreamble}\Parameter{Präambel} +\end{Declaration}% +\BeginIndex{Cmd}{setbibpreamble}% +Mit der Anweisung \Macro{setbibpreamble} kann eine Präambel für das +Literaturverzeichnis gesetzt werden. Bedingung +dafür ist, dass die Präambel vor der Anweisung zum Setzen des +Literaturverzeichnisses gesetzt wird. Dies muss nicht unmittelbar davor +sein. Es kann also beispielsweise am Anfang des Dokuments erfolgen. Ebenso wie +die Klassenoptionen \Option{bibtotoc} und \Option{bibtotocnumbered} kann die +Anweisung aber nur erfolgreich sein, wenn nicht ein Paket geladen wird, das +dies durch Umdefinierung der \Environment{thebibliography}-Umgebung +verhindert. Obwohl das \Package{natbib}-Paket\IndexPackage{natbib} nicht +freigegebene interne Makros von {\KOMAScript} verwendet, konnte erreicht +werden, dass \Macro{setbibpreamble} auch mit der aktuellen Version von +\Package{natbib} funktioniert (siehe \cite{package:natbib}). +\begin{Example} + Sie wollen darauf hinweisen, dass das Literaturverzeichnis nicht in + der Reihenfolge der Zitierung im Dokument, sondern alphabetisch + sortiert ist. Daher setzen Sie folgende Anweisung: +\begin{lstcode} + \setbibpreamble{Die Literaturangaben sind + alphabetisch nach den Namen der Autoren sortiert. + Bei mehreren Autoren wird nach dem ersten Autor + sortiert.\par\bigskip} +\end{lstcode} + Die Anweisung \Macro{bigskip}\IndexCmd{bigskip} sorgt dafür, dass + zwischen der Präambel und der ersten Literaturangabe ein großer + Zwischenraum gesetzt wird.% +\end{Example} +% +\EndIndex{Cmd}{setbibpreamble}% + + +\begin{Declaration} + \Macro{BreakBibliography}\Parameter{Unterbrechung} +\end{Declaration} +\BeginIndex{Cmd}{BreakBibliography}% +Diese\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} Anweisung existiert nur, wenn die Umgebung +\Environment{thebibliography} nicht durch ein Paket neu definiert wurde. In +diesem Fall ist es möglich, mit dieser Anweisung das Literaturverzeichnis zu +unterbrechen. Die \PName{Unterbrechung} wird dann innerhalb einer Gruppe +ausgegeben. Eine solche \PName{Unterbrechung} könnte beispielsweise eine +Überschrift mit Hilfe von \Macro{minisec} sein. Leider gibt es bisher keine +Möglichkeit, diese Anweisung beispielsweise mit Hilfe eines speziellen Eintrags +in der Literaturdatenbank von \BibTeX{} erzeugen zu lassen. Daher kann sie +derzeit nur von Anwendern verwendet werden, die das Literaturverzeichnis +selbst editieren. Ihr Nutzen ist damit sehr beschränkt.% +% +\EndIndex{Cmd}{BreakBibliography}% + + +\begin{Declaration} + \Macro{AfterBibliographyPreamble}\Parameter{Anweisungen}\\ + \Macro{AtEndBibliography}\Parameter{Anweisungen} +\end{Declaration} +\BeginIndex{Cmd}{AfterBibliographyPreamble}% +\BeginIndex{Cmd}{AtEndBibliography}% +In\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} +einigen Fällen ist es nützlich, wenn man nach der Präambel des +Literaturverzeichnisses oder unmittelbar vor dem Ende des +Literaturverzeichnisses noch \PName{Anweisungen} ausführen kann. Dies ist mit +Hilfe dieser beiden Anweisungen möglich. +\begin{Example} + Sie wollen, dass das Literaturverzeichnis nicht im Blocksatz, sondern im + linksbündigen Flattersatz ausgegeben wird. Dies ist einfach mit: + \begin{lstcode} + \AfterBibliographyPreamble{\raggedright} + \end{lstcode} + zu erreichen. Sie können diese Anweisung an beliebiger Stelle vor dem + Literaturverzeichnis verwenden. Es wird jedoch empfohlen, sie in die + Präambel des Dokuments oder ein eigenes Paket zu schreiben. +\end{Example} +Die Realisierung dieser Anweisung bedarf bei Verwendung eines Pakets, das die +Umgebung für Literaturverzeichnisse umdefiniert, der Zusammenarbeit mit dem +entsprechenden Paket (siehe \autoref{sec:maincls-experts.coexistence}, +\autopageref{desc:maincls-experts.cmd.AfterBibliographyPreamble}).% +% +\EndIndex{Cmd}{AtEndBibliography}% +\EndIndex{Cmd}{AfterBibliographyPreamble}% +% +\EndIndex{}{Literaturverzeichnis} + + +\section{Stichwortverzeichnis} +\label{sec:maincls.index} +\BeginIndex{}{Stichwortverzeichnis} + + +Das Stichwortverzeichnis ist auch unter den Bezeichnungen Index oder Register +bekannt. Zur generellen Verwendung eines Stichwortverzeichnisses sei auf +\cite{l2kurz} sowie auf \cite{makeindex} und \cite{xindy} verwiesen. Wird ein +Paket verwendet, das selbst Anweisungen und Umgebungen für das +Stichwortverzeichnis zur Verfügung stellt, so schwindet eventuell der +Einfluss, den \KOMAScript{} auf dieses Verzeichnis hat. Dies gilt +beispielsweise bei Verwendung von \Package{index}\IndexPackage{index}, +nicht jedoch bei Verwendung von +\Package{splitidx}\IndexPackage{splitidx} (siehe +\cite{package:splitindex}). + + +\begin{Declaration} + \KOption{index}\PName{Einstellung}% +\end{Declaration} +\BeginIndex{Option}{index~=\PName{Einstellung}}% +\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}% +In der Voreinstellung \OptionValue{index}{default}\IndexOption{index~=default} +ist das Stichwortverzeichnis ein nicht nummeriertes Kapitel ohne Eintrag im +Inhaltsverzeichnis. Da das Stichwortverzeichnis normalerweise in einem Buch +oder ähnlichen Dokument zuletzt steht, benötigt es eigentlich auch keinen +Inhaltsverzeichniseintrag. Wird dieser dennoch gewünscht, beispielsweise weil +wie in \iffree{dieser Anleitung}{diesem Buch} mit einem mehrgliedrigen +Stichwortverzeichnis gearbeitet wird, so kann dies mit der Einstellung +\OptionValue{index}{totoc}\IndexOption{index~=totoc} erreicht werden. Siehe +hierzu auch Option \Option{toc} mit dem Wert \PValue{index} in +\autoref{sec:maincls.toc} ab +\autopageref{desc:maincls.option.toc.index}. + +Eine Zusammenfassung der möglichen Werte für die \PName{Einstellung} von +\PName{index} ist in \autoref{tab:maincls.index} zu finden. + +\begin{table} + \caption[{Mögliche Werte für Option \Option{index}}]{Mögliche Werte für + Option \Option{index} zur Einstellung des Stich\-wort\-verzeichnisses} + \label{tab:maincls.index} + \begin{desctabular} + \entry{\PValue{totoc}, \PValue{toc}, \PValue{notnumbered}}{% + Das Stichwortverzeichnis erhält einen Eintrag im Inhaltsverzeichnis, + ohne dass er nummeriert wird.% + \IndexOption{index~=totoc}}% + \entry{\PValue{default}, \PValue{nottotoc}, \PValue{plainheading}}{% + Das Stichwortverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis.% + \IndexOption{index~=default}}% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{index~=\PName{Einstellung}}% + + +\begin{Declaration} + \Macro{setindexpreamble}\Parameter{Präambel} +\end{Declaration}% +\BeginIndex{Cmd}{setindexpreamble}% +Analog zur Präambel des Literaturverzeichnisses können Sie auch das +Stichwortverzeichnis mit einer Präambel versehen. Dies findet häufig +dann Anwendung, wenn es mehr als einen Index gibt oder im Index +unterschiedliche Arten der Referenzierung durch unterschiedliche +Hervorhebung der Seitenzahlen markiert werden. +\begin{Example} + Sie haben ein Dokument, in dem Begriffe sowohl definiert als auch + verwendet werden. Die Seitenzahlen der Begriffsdefinitionen sind + fett dargestellt. Natürlich möchten Sie gerne auf diesen Umstand + hinweisen. Also setzen Sie eine entsprechende Präambel für den + Index: +\begin{lstcode} + \setindexpreamble{Alle \textbf{fett} gedruckten + Seitenzahlen sind Referenzen auf die Definition + des jeweiligen Begriffs. Demgegenüber geben normal + gedruckte Seitenzahlen die Seiten der Verwendung + des jeweiligen Begriffs wieder.\par\bigskip} +\end{lstcode} +\end{Example} + +Bitte beachten Sie, dass für die erste Seite des Index der Seitenstil +umgeschaltet wird. Welcher Seitenstil hierbei Verwendung findet, ist im Makro +\Macro{indexpagestyle} abgelegt (siehe \autoref{sec:maincls.pagestyle}, +\autopageref{desc:maincls.cmd.titlepagestyle}). + +Für die Erstellung, Sortierung und Ausgabe des Stichwortverzeichnisses +sind die üblichen Standard-\LaTeX-Pakete und Zusatzprogramme +zuständig. Von {\KOMAScript} werden genau wie von den Standardklassen +lediglich die grundlegenden Makros und Umgebungen dafür zur Verfügung +gestellt.% +% +\EndIndex{Cmd}{setindexpreamble}% +% +\EndIndex{}{Stichwortverzeichnis}% +% +\EndIndex{Class}{scrbook}% +\EndIndex{Class}{scrreprt}% +\EndIndex{Class}{scrartcl}% + +\endinput + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "guide.tex" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/scrdatetime.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrdatetime.tex index 8ba95e63cde..c30257d32da 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/german/scrdatetime.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrdatetime.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrdatetime.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrdatetime.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ============================================================================ -\ProvidesFile{scrdatetime.tex}[{2005/11/27 KOMA-Script guide (chapter: +\ProvidesFile{scrdatetime.tex}[{2008/07/31 KOMA-Script guide (chapter: scrdate, scrtime)}] \chapter{Wochentag und Uhrzeit mit \Package{scrdate} und \Package{scrtime}} @@ -64,10 +64,10 @@ diese Pakete auch mit den Standardklassen verwendet werden. Das erste Problem ist die Frage nach dem aktuellen Wochentag. Dieses kann mit Hilfe des Pakets \Package{scrdate} gelöst werden. +\BeginIndex{Cmd}{todaysname}% \begin{Declaration} \Macro{todaysname} \end{Declaration}% -\BeginIndex{Cmd}{todaysname}% Bekanntlich erhält man mit \Macro{today}\IndexCmd{today} das aktuelle Datum in der landestypischen Schreibweise. \Package{scrdate} bietet mit \Macro{todaysname} eine Anweisung, um den aktuellen Wochentag zu @@ -77,9 +77,9 @@ erhalten. Sie wollen in Ihrem Dokument ausgeben, an welchem Tag es mit \LaTeX{} in eine \File{DVI}-Datei übersetzt wurde. Sie schreiben dazu -\begin{lstlisting} +\begin{lstcode} Dieses Dokument entstand an einem {\todaysname}. -\end{lstlisting} +\end{lstcode} und erhalten beispielsweise: \begin{quote} Dieses Dokument entstand an einem {\todaysname}. @@ -92,20 +92,25 @@ beispielsweise für eine Datumsangabe in Briefen benötigt wird. Obiges Beispiel funktioniert daher nur sprachabhängig und eher zufällig. \begin{Explain} - \textbf{Tipp:} Wenn Sie den Namen des Tages in Kleinbuchstaben - benötigen, weil das in der entsprechenden Sprache innerhalb des - Satzes so üblich ist, können Sie das erreichen, obwohl die Namen der - Wochentage in \Package{scrdate} alle groß geschrieben sind. In - diesem Fall können Sie einfach auf die \LaTeX-Anweisung - \Macro{MakeLowercase}\IndexCmd{MakeLowercase} zurückgreifen und - \Macro{MakeLowercase}\PParameter{\Macro{todaysname}} schreiben. + \begin{labeling}{\textbf{Tipp:}} + \item[\textbf{Tipp:}] Wenn Sie den Namen des Tages in Kleinbuchstaben + benötigen, weil das in der entsprechenden Sprache innerhalb des Satzes so + üblich ist, können Sie das erreichen, obwohl die Namen der Wochentage in + \Package{scrdate} alle groß geschrieben sind. Greifen Sie mit + \begin{lstcode} + \Macro{MakeLowercase}\PParameter{\Macro{todaysname}} + \end{lstcode} + einfach auf die \LaTeX-Anweisung \Macro{MakeLowercase} zurück. Diese + wandelt ihr Argument komplett in Kleinbuchstaben. + \end{labeling} \end{Explain} \EndIndex{Cmd}{todaysname} + +\BeginIndex{Cmd}{nameday}% \begin{Declaration} \Macro{nameday}\Parameter{Name} \end{Declaration}% -\BeginIndex{Cmd}{nameday}% So wie mit \Macro{date}\IndexCmd{date} die Ausgabe von \Macro{today} direkt geändert werden kann, setzt \Macro{nameday} die Ausgabe von \Macro{todaysname} auf den Wert \PName{Name}. @@ -113,9 +118,9 @@ direkt geändert werden kann, setzt \Macro{nameday} die Ausgabe von Sie setzen mit \Macro{date} das aktuelle Datum auf einen festen Wert. Für die Ausgabe des zugehörigen Wochentags interessiert es nur, dass dieser Tag ein Werktag war. Daher schreiben Sie -\begin{lstlisting} +\begin{lstcode} \nameday{Werktag} -\end{lstlisting} +\end{lstcode} und erhalten so mit dem Satz aus dem vorherigen Beispiel: \begin{quote}\nameday{Werktag} Dieses Dokument entstand an einem {\todaysname}. @@ -124,7 +129,7 @@ direkt geändert werden kann, setzt \Macro{nameday} die Ausgabe von \EndIndex{Cmd}{nameday} Das \Package{scrdate}-Paket beherrscht derzeit die Sprachen Englisch (english -and USenglish), Deutsch (german, ngerman und austrian), Französisch (french), +und USenglish), Deutsch (german, ngerman und austrian), Französisch (french), Italienisch (italian), Spanisch (spanish), Kroatisch (croatian) und Finnisch (finnish), kann aber auch für andere Sprachen konfiguriert werden. Näheres dazu entnehme man \File{scrdate.dtx}. @@ -145,6 +150,7 @@ gewählt. \end{Explain} \EndIndex{Package}{scrdate} + \section{Die aktuelle Zeit mit \Package{scrtime}} \label{sec:datetime.scrtime} \BeginIndex{Package}{scrtime} @@ -152,15 +158,16 @@ gewählt. Das zweite Problem ist die Frage nach der aktuellen Zeit. Dieses kann mit Hilfe des Pakets \Package{scrtime} gelöst werden. + +\BeginIndex{Cmd}{thistime}\BeginIndex{Cmd}{thistime*}% \begin{Declaration}% \Macro{thistime}\OParameter{Trennung}\\ \Macro{thistime*}\OParameter{Trennung} \end{Declaration}% -\BeginIndex{Cmd}{thistime}\BeginIndex{Cmd}{thistime*}% -\Macro{thistime} liefert die aktuelle Zeit\Index{Zeit}. Als -Trennbuchstabe zwischen den Werten Stunden, Minuten und Sekunden -wird das optionale Argument \PName{Trennung} verwendet. Die -Voreinstellung ist hierbei das Zeichen "`\PValue{:}"'. +\Macro{thistime} liefert die aktuelle Zeit\Index{Zeit} in Stunden und +Minuten. In der Ausgabe wird zwischen den Stunden und Minuten das optionale +Argument \PName{Trennung} gesetzt. Die Voreinstellung ist hierbei das Zeichen +»\PValue{:}«. \Macro{thistime*} funktioniert fast genau wie \Macro{thistime}. Der einzige Unterschied besteht darin, dass im Gegensatz zu @@ -169,9 +176,9 @@ kleiner 10 nicht durch eine vorangestellte Null auf zwei Stellen erweitert wird. \begin{Example} Die Zeile -\begin{lstlisting} +\begin{lstcode} Ihr Zug geht um \thistime\ Uhr. -\end{lstlisting} +\end{lstcode} liefert als Ergebnisse beispielsweise eine Zeile wie \begin{quote} Ihr Zug geht um \thistime\ Uhr. @@ -182,11 +189,11 @@ erweitert wird. \end{quote} \bigskip Demgegenüber liefert die Zeile -\begin{lstlisting} +\begin{lstcode} Beim nächsten Ton ist es \thistime*[\ Uhr,\ ] Minuten und 42 Sekunden. -\end{lstlisting} - als mögliches Ergebniss etwas wie: +\end{lstcode} + als mögliches Ergebnis etwas wie: \begin{quote} Beim nächsten Ton ist es \thistime*[\ Uhr,\ ] Minuten und 42 Sekunden. \end{quote} @@ -197,10 +204,11 @@ erweitert wird. \end{Example} \EndIndex{Cmd}{thistime}\EndIndex{Cmd}{thistime*} + +\BeginIndex{Cmd}{settime}% \begin{Declaration}% \Macro{settime}\Parameter{Wert} \end{Declaration}% -\BeginIndex{Cmd}{settime}% \Macro{settime} setzt die Ausgabe von \Macro{thistime} und \Macro{thistime*} auf einen festen \PName{Wert}% %\footnote{Allerdings darf man nicht erwarten, dass nun die Zeit @@ -212,11 +220,12 @@ Anschließend wird das optionale Argument von \Macro{thistime} bzw. festgelegt wurde.% \EndIndex{Cmd}{settime} + +\BeginIndex{Option}{12h}\BeginIndex{Option}{24h}% \begin{Declaration} \Option{12h}\\ \Option{24h} \end{Declaration}% -\BeginIndex{Option}{12h}\BeginIndex{Option}{24h}% Mit den Optionen \Option{12h} und \Option{24h} kann ausgewählt werden, ob die Zeit bei \Macro{thistime} und \Macro{thistime*} im 12-Stunden- oder 24-Stunden-Format ausgegeben werden soll. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrextend.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrextend.tex new file mode 100644 index 00000000000..643217667e1 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrextend.tex @@ -0,0 +1,226 @@ +% ====================================================================== +% scrextend.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% scrextend.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Package scrextend for Document Writers +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Paket scrextend für Dokument-Autoren +% Verwaltet von Markus Kohm +% +% ====================================================================== + +\ProvidesFile{scrextend.tex}[2008/09/12 KOMA-Script package scrextend] + +\chapter[{Fähigkeiten von \KOMAScript{} mit \Package{scrextend} + anderen erschließen}]{Grundlegende Fähigkeiten der \KOMAScript-Klassen mit Hilfe des + Pakets \Package{scrextend} auch anderen Klassen erschließen} +\labelbase{scrextend} +\BeginIndex{Package}{scrextend}% + +Es gibt einige Möglichkeiten, die allen \KOMAScript-Klassen gemeinsam +sind. Dies betrifft in der Regel nicht nur die Klassen \Class{scrbook}, +\Class{scrreprt} und \Class{scrartcl}, die als Ersatz für die Standardklassen +\Class{book}, \Class{report} und \Class{article} für Bücher, Berichte und +Artikel gedacht sind, sondern in weiten Teilen auch die \KOMAScript-Klasse +\Class{scrlttr2}, die als Nachfolger von \Class{scrlettr} für Briefe gedacht +ist. Diese grundlegenden Möglichkeiten, die in den genannten Klassen zu finden +sind, werden von \KOMAScript{} ab Version~3.00 auch von dem Paket +\Package{scrextend} bereit gestellt. Dieses Paket kann nicht mit +\KOMAScript-Klassen, wohl aber mit vielen anderen Klassen verwendet +werden. Der Versuch, das Paket mit einer \KOMAScript-Klasse zu laden, wird von +\Package{scrextend} erkannt und mit einer Warnung abgelehnt. + +Neben den in diesem Kapitel beschriebenen Möglichkeiten gibt es einige weitere +Möglichkeiten, die jedoch hauptsächlich für Klassen- und Paketautoren gedacht +sind. Diese sind in \autoref{cha:scrbase}, ab \autopageref{cha:scrbase} zu +finden. Das dort dokumentierte Paket \Package{scrbase} wird von allen +\KOMAScript-Klassen und dem Paket \Package{scrextend} verwendet. + +Auch das Paket \Package{scrlfile} aus \autoref{cha:scrlfile} ab +\autopageref{cha:scrlfile} wird von allen \KOMAScript-Klassen und dem Paket +\Package{scrextend} geladen. Daher stehen auch dessen Möglichkeiten bei +Verwendung von \Package{scrextend} zur Verfügung. + +\iffalse % Umbruchkorrekturtext +Im Unterschied dazu wird das ebenfalls für Klassen- und Paketautoren gedachte +Paket \Package{tocbasic} (siehe \autoref{cha:tocbasic} ab +\autopageref{cha:tocbasic}) nur von den Klassen \Class{scrbook}, +\Class{scrreprt} und \Class{scrartcl} geladen, so dass die dort definierten +Möglichkeiten auch nur in diesen Klassen und nicht in \Package{scrextend} zu +finden sind. Natürlich kann \Package{tocbasic} aber auch zusammen mit +\Package{scrextend} verwendet werden. +\fi + +\LoadCommon{0}% \section{Frühe oder späte Optionenwahl bei \KOMAScript} + +\LoadCommon{1}% \section{Kompatibilität zu früheren Versionen von \KOMAScript} + + +\section{Optionale, erweiterte Möglichkeiten} +\label{sec:scrextend.optionalFeatures} + +Das Paket \Package{scrextend} kennt einige optional verfügbare, erweiterte +Möglichkeiten. Das sind Möglichkeiten, die in der Grundeinstellung nicht +vorhanden sind, aber zusätzlich ausgewählt werden können. Diese Möglichkeiten +sind beispielsweise deshalb optional, weil sie in Konflikt mit den +Möglichkeiten der Standardklassen oder häufig benutzter Pakete stehen. + +\begin{Declaration} + \KOption{extendedfeature}\PName{Möglichkeit} +\end{Declaration} +\BeginIndex{Option}{extendedfeature~=\PName{Möglichkeit}}% +Mit dieser Option kann eine optionale Möglichkeit von \Package{scrextend} +ausgewählt werden. Diese Option steht nur während des Ladens von +\Package{scrextend} zur Verfügung. Anwender geben diese Option daher als +optionales Argument von \Macro{usepackage}\PParameter{scrextend} an. Eine +Übersicht über die verfügbaren optionalen Möglichkeiten bietet +\autoref{tab:scrextend.optionalFeatures}. + +\begin{table} + \caption[{Optional verfügbare, erweiterte Möglichkeiten + von \Package{scrextend}}]{Übersicht über die optional verfügbaren, + erweiterten Möglichkeiten von \Package{scrextend}} + \label{tab:scrextend.optionalFeatures} + \begin{desctabular} + \entry{\PName{title}}{% + die Titelseiten werden auf die Möglichkeiten der \KOMAScript-Klassen + erweitert; dies betrifft neben den Anweisungen für die Titelseiten auch + die Option \Option{titlepage} (siehe \autoref{sec:scrextend.titlepage}, ab + \autopageref{sec:scrextend.titlepage})% + } + \end{desctabular} +\end{table} +% +\EndIndex{Option}{extendedfeature~=\PName{Möglichkeit}}% + + +\LoadCommon{2}% \section{Entwurfsmodus} + + +\section{Wahl der Schriftgröße für das Dokument} +\LoadCommon{4}% +% +\EndIndex{Option}{fontsize~=\PName{Größe}}% +% +\EndIndex{}{Schrift>Groesse=Größe} + + +\LoadCommon{5}% \section{Textauszeichnungen} + +Mit der Anweisung \Macro{usekomafont} kann die aktuelle Schriftart auf +diejenige umgeschaltet werden, die für das angegebene \PName{Element} +definiert ist. + +\begin{Example} + Angenommen, Sie wollen, dass der Titel in Serifenschrift und rot gesetzt + wird. Das erreichen Sie einfach mit: +\begin{lstcode} + \setkomafont{title}{\color{red}} +\end{lstcode} + Für die Anweisung \lstinline|\color{red}| wird das Paket \Package{color} + oder \Package{xcolor} benötigt. Die zusätzliche Angabe von + \Macro{normalfont} ist in diesem Beispiel deshalb nicht notwendig, weil + diese Anweisung bereits in der Definition des Titels enthalten + ist. Natürlich setzt das Beispiel voraus, dass + \OptionValue{extendedfeature}{title} gesetzt ist (siehe + \autoref{sec:scrextend.optionalFeatures}, + \autopageref{desc:scrextend.option.extendedfeature}). +\end{Example} +% +\EndIndex{Cmd}{setkomafont}% +\EndIndex{Cmd}{addtokomafont}% +\EndIndex{Cmd}{usekomafont}% +% +\EndIndex{}{Schriftart}% +\EndIndex{}{Text>Auszeichnung} + + +\LoadCommon{14}% \section{Dokumenttitel} + +\LoadCommon{7}% \section{Erkennung von rechten und linken Seiten} + + +\section{Wahl eines vordefinierten Seitenstils} +\label{sec:scrextend.pagestyle} + +Eine der allgemeinen Eigenschaften eines Dokuments ist der +Seitenstil\Index[indexmain]{Seitenstil}. Bei {\LaTeX} versteht man unter dem +Seitenstil in erster Linie den Inhalt der Kopf- und Fußzeilen. Das Paket +\Package{scrextend} definiert selbst keine Seitenstile, nutzt aber erwartete +Seitenstile. + + +\begin{Declaration} + \Macro{titlepagestyle} +\end{Declaration}% +\BeginIndex{Cmd}{titlepagestyle}\Index{Titel>Seitenstil}% +Auf einigen Seiten wird mit Hilfe von \Macro{thispagestyle} automatisch ein +anderer Seitenstil gewählt. Bei \Package{scrextend} betrifft dies bisher nur +die Titelseiten und auch dies nur, wenn mit +\OptionValue{extendedfeature}{title} gearbeitet wird (siehe +\autoref{sec:scrextend.optionalFeatures}, +\autopageref{desc:scrextend.option.extendedfeature}). Welcher Seitenstil dies +ist, wird dem Makro \Macro{titlepagestyle} entnommen. In der Voreinstellung +ist der Seitenstil \PValue{plain}\IndexPagestyle{plain}. Dieser Seitenstil +wird bereits im \LaTeX-Kern vordefiniert und sollte daher immer verfügbar +sein.% +\EndIndex{Cmd}{titlepagestyle}% + + +\LoadCommon{8}% \section{Vakatseiten} + +\LoadCommon{9}% \section{Fußnoten} +\LoadCommon{10} +\LoadCommon{11} + +\LoadCommon{15}% \section{Schlauer Spruch} + +\LoadCommon{12}% \section{Listen} + +\LoadCommon{13}% \section{Randnotizen} +% +\EndIndex{Package}{scrextend}% + +\endinput + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "guide.tex" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlfile.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlfile.tex new file mode 100644 index 00000000000..cdd81bef9b3 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlfile.tex @@ -0,0 +1,551 @@ +% ====================================================================== +% scrlfile.tex +% Copyright (c) Markus Kohm, 2001-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% scrlfile.tex +% Copyright (c) Markus Kohm, 2001-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Chapter about scrlfile of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------------- +% +% Kapitel über scrlfile in der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\ProvidesFile{scrlfile.tex}[2008/07/31 KOMA-Script guide (chapter: scrlfile)] + +\chapter{Paketabhängigkeiten mit \Package{scrlfile} + beherrschen} +\labelbase{scrlfile} + +\BeginIndex{Package}{scrlfile} + +Die Einführung von \LaTeXe{} brachte 1994 eine Menge Neuerungen im Umgang mit +\LaTeX-Erweiterungen. So stehen dem Paketautor heute eine ganze Reihe von +Befehlen zur Verfügung, um festzustellen, ob ein anderes Paket oder eine +bestimmte Klasse verwendet wird und ob dabei bestimmte Optionen zur Anwendung +kommen. Der Paketautor kann selbst andere Pakete laden oder diesen Optionen +mit auf den Weg geben für den Fall, dass sie später noch geladen werden. Es +bestand daher die Hoffnung, dass es künftig unerheblich wäre, in welcher +Reihenfolge Pakete geladen werden. Diese Hoffnung hat sich leider nicht +erfüllt. + +\section{Die Sache mit den Paketabhängigkeiten} +\label{sec:scrlfile.dependency} +%\begin{Explain} + Immer häufiger definieren unterschiedliche Pakete den gleichen + Befehl neu oder um. Dabei ist es dann sehr entscheidend, in welcher + Reihenfolge die Pakete geladen werden. Manchmal ist das für den + Anwender kaum zu überschauen. In manchen Fällen ist es auch + notwendig, einfach nur in irgendeiner Form auf das Laden eines + anderen Paketes zu reagieren. Auch das ist nicht immer ganz einfach. + + Nehmen wir als einfaches Beispiel das Laden des + \Package{longtable}-Paketes bei Verwendung von \KOMAScript{}. Das + \Package{longtable}-Paket definiert seine eigene Form von + Tabellenüberschriften. Diese passen perfekt zu den + Tabellenüberschriften der Standardklassen. Sie passen aber überhaupt + nicht zu den Voreinstellungen für die Tabellenüberschriften von + \KOMAScript{} und reagieren auch nicht auf die entsprechenden + Möglichkeiten der Konfiguration. Um dieses Problem zu lösen, müssen + die Befehle von \Package{longtable}, die für die + Tabellenüberschriften zuständig sind, von \KOMAScript{} umdefiniert + werden. Allerdings sind die \KOMAScript{}-Klassen bereits + abgearbeitet, wenn das Paket geladen wird. + + Bisher bestand die einzige Möglichkeit, dieses Problem zu lösen + darin, die Umdefinierung mit Hilfe von \Macro{AtBeginDocument} auf + einen späteren Zeitpunkt zu verschieben. Will der Anwender die + entsprechende Anweisung jedoch selbst umdefinieren, so sollte er + dies eigentlich ebenfalls in der Präambel tun. Das kann er jedoch + nicht, weil \KOMAScript{} ihm dabei in die Quere kommt. Er müsste + die Umdefinierung also ebenfalls mit Hilfe von + \Macro{AtBeginDocument} durchführen. + + Aber eigentlich müsste \KOMAScript{} die Abarbeitung gar nicht auf + den Zeitpunkt von \Macro{begin}\PParameter{document} verschieben. Es + würde genügen, wenn sie bis unmittelbar nach dem Laden von + \Package{longtable} verzögert werden könnte. Leider fehlen + entsprechende Anweisungen im \LaTeX-Kern. Das Paket + \Package{scrlfile} bringt hier Abhilfe. + + Ebenso wäre es denkbar, dass man vor dem Laden eines bestimmten + Paketes gerne die Bedeutung eines Makros in einem Hilfsmakro retten + und nach dem Laden des Paketes wieder restaurieren will. Auch das + geht mit \Package{scrlfile}. + + Die Anwendung von \Package{scrlfile} ist nicht auf die Abhängigkeit + von Paketen beschränkt. Auch Abhängigkeiten von anderen Dateien + können berücksichtigt werden. So kann beispielsweise dafür gesorgt + werden, dass das nicht unkritische Laden einer Datei wie + \File{french.ldf} automatisch zu einer Warnung führt. + + Obwohl das Paket in erster Linie für andere Paketautoren interessant + sein dürfte, gibt es durchaus auch Anwendungen für normale + \LaTeX-Benutzer. Deshalb sind in diesem Kapitel auch für beide + Gruppen Beispiele aufgeführt. +%\end{Explain} + + +\section{Aktionen vor und nach dem Laden} +\label{sec:scrlfile.macros} + +Mit \Package{scrlfile} können vor und nach dem Laden von Dateien Aktionen +ausgelöst werden. Bei den dazu verwendeten Befehlen wird zwischen allgemeinen +Dateien, Klassen und Paketen unterschieden. + + +\BeginIndex{Cmd}{BeforeFile}% +\BeginIndex{Cmd}{AfterFile}% +\begin{Declaration} + \Macro{BeforeFile}\Parameter{Datei}\Parameter{Anweisungen}\\ + \Macro{AfterFile}\Parameter{Datei}\Parameter{Anweisungen} +\end{Declaration}% +Mit Hilfe von \Macro{BeforeFile} kann dafür gesorgt werden, dass +\PName{Anweisungen} erst vor dem nächsten Laden einer bestimmten +\PName{Datei} ausgeführt werden. Vergleichbar arbeitet +\Macro{AfterFile}. Nur werden die \PName{Anweisungen} hier erst nach +dem Laden der \PName{Datei} ausgeführt. Wird die Datei nie geladen, so +werden die \PName{Anweisungen} auch nie ausgeführt. Beim Dateinamen sind +etwaige Endungen wie bei \Macro{input} anzugeben. + +%\begin{Explain} + Um die Funktionalität bereitstellen zu können, bedient sich + \Package{scrlfile} der bekannten \LaTeX-Anweisung + \Macro{InputIfFileExists}. Diese wird hierzu umdefiniert. Falls die + Anweisung nicht die erwartete Definition hat, gibt + \Package{scrlfile} eine Warnung aus. Dies geschieht für den Fall, + dass die Anweisung in späteren \LaTeX-Versionen geändert wird oder + bereits von einem anderen Paket umdefiniert wurde. + + Die Anweisung \Macro{InputIfFileExists} wird von \LaTeX{} immer + verwendet, wenn eine Datei geladen werden soll. Dies geschieht + unabhängig davon, ob die Datei mit \Macro{include}, \Macro{LoadClass}, + \Macro{documentclass}, \Macro{usepackage}, \Macro{RequirePackage}, + oder vergleichbaren Anweisungen geladen wird. Lediglich +% Umbruchkorrektur: listings korrigieren +\begin{lstcode}[belowskip=\dp\strutbox] + \input foo +\end{lstcode} + lädt die Datei \texttt{foo} ohne Verwendung von + \Macro{InputIfFileExists}. Sie sollten daher stattdessen immer +% Umbruchkorrektur: listings korrigieren +\begin{lstcode}[belowskip=\dp\strutbox] + \input{foo} +\end{lstcode} + verwenden. Beachten Sie die Klammern um den Dateinamen!% +%\end{Explain} +% +\EndIndex{Cmd}{BeforeFile}% +\EndIndex{Cmd}{AfterFile}% + + +\BeginIndex{Cmd}{BeforeClass}% +\BeginIndex{Cmd}{BeforePackage}% +\begin{Declaration} + \Macro{BeforeClass}\Parameter{Klasse}\Parameter{Anweisungen}\\ + \Macro{BeforePackage}\Parameter{Paket}\Parameter{Anweisungen} +\end{Declaration}% +Diese beiden Befehle arbeiten vergleichbar zu \Macro{BeforeFile} mit dem einen +Unterschied, dass die \PName{Klasse} beziehungsweise das \PName{Paket} mit +seinem Namen und nicht mit seinem Dateinamen angegeben wird. Die Endungen +»\File{.cls}« und »\File{.sty}« entfallen hier also.% +% +\EndIndex{Cmd}{BeforeClass}% +\EndIndex{Cmd}{BeforePackage}% + + +\BeginIndex{Cmd}{AfterClass}% +\BeginIndex{Cmd}{AfterClass*}% +\BeginIndex{Cmd}{AfterPackage}% +\BeginIndex{Cmd}{AfterPackage*}% +\begin{Declaration} + \Macro{AfterClass}\Parameter{Klasse}\Parameter{Anweisungen}\\ + \Macro{AfterClass*}\Parameter{Klasse}\Parameter{Anweisungen}\\ + \Macro{AfterPackage}\Parameter{Paket}\Parameter{Anweisungen}\\ + \Macro{AfterPackage*}\Parameter{Paket}\Parameter{Anweisungen} +\end{Declaration}% +Die Anweisungen \Macro{AfterClass} und \Macro{AfterPackage} arbeiten +weitgehend wie \Macro{AfterFile} mit dem winzigen Unterschied, dass die +\PName{Klasse} beziehungsweise das \PName{Paket} mit seinem Namen und +nicht mit seinem Dateinamen angegeben wird. Die Endungen »\File{.cls}« +und »\File{.sty}« entfallen hier also. Bei den Sternvarianten gibt es +eine zusätzliche Funktionalität. Ist die entsprechende Klasse oder das +entsprechende Paket bereits geladen, so werden die \PName{Anweisungen} +nicht nach dem nächsten Laden, sondern unmittelbar ausgeführt.% + +\begin{Example} + Als Beispiel für Paket- oder Klassenautoren will ich zunächst + erklären, wie \KOMAScript{} selbst Gebrauch von den neuen + Anweisungen macht. Dazu findet sich in \Class{scrbook} + beispielsweise Folgendes: +\begin{lstcode} + \AfterPackage{hyperref}{% + \@ifpackagelater{hyperref}{2001/02/19}{}{% + \ClassWarningNoLine{scrbook}{% + You are using an old version of hyperref + package!\MessageBreak% + This version has a buggy hack at many drivers% + \MessageBreak% + causing \string\addchap\space to behave + strange.\MessageBreak% + Please update hyperref to at least version + 6.71b}}} +\end{lstcode} + Alte Versionen von \Package{hyperref} definierten ein Makro von + \Class{scrbook} in einer Weise um, so dass es mit neueren Versionen + von \KOMAScript{} nicht mehr funktioniert. Neuere Versionen von + \Package{hyperref} unterlassen dies, wenn sie eine neuere Version + von \KOMAScript{} erkennen. Für den Fall, dass \Package{hyperref} + zu einem späteren Zeitpunkt geladen wird, sorgt also \Class{scrbook} + dafür, dass unmittelbar nach dem Laden des Paketes überprüft wird, ob + es sich um eine verträgliche Version handelt. Falls dies nicht der + Fall ist, wird eine Warnung ausgegeben. + + An anderer Stelle findet sich in drei \KOMAScript-Klassen Folgendes: +\begin{lstcode} + \AfterPackage{caption2}{% + \renewcommand*{\setcapindent}{% +\end{lstcode} + Nach dem Laden von \Package{caption2} und nur falls das Paket + geladen wird, wird hier die \KOMAScript-Anweisung + \Macro{setcapindent} umdefiniert. Der Inhalt der Umdefinierung ist + für dieses Beispiel unerheblich. Es sei nur erwähnt, dass + \Package{caption2} die Kontrolle über die \Macro{caption}-Anweisung + übernimmt und daher die normale Definition von \Macro{setcapindent} + keinerlei Wirkung mehr hätte. Die Umdefinierung verbessert dann die + Zusammenarbeit mit \Package{caption2}. + + Es gibt aber auch Beispiele für den sinnvollen Einsatz der neuen + Anweisungen durch normale Anwender. Angenommen, Sie erstellen ein + Dokument, aus dem sowohl eine PS-Datei mit \LaTeX{} und dvips als auch + eine PDF-Datei mit pdf\LaTeX{} erstellt werden soll. Das Dokument soll + außerdem Hyperlinks aufweisen. Im Tabellenverzeichnis haben Sie + Einträge, die über mehrere Zeilen gehen. Nun gibt es zwar mit + pdf\LaTeX{} bei der PDF-Ausgabe keine Probleme, da dort Links + umbrochen werden können. Bei Verwendung des + \Package{hyperref}-Treibers für dvips oder + hyper\TeX{} ist dies jedoch nicht + möglich. In diesem Fall hätten Sie gerne, dass bei + \Package{hyperref} die Einstellung \Option{linktocpage} verwendet + wird. Die Entscheidung, welcher Treiber geladen wird, wird bei Ihnen + automatisch von \File{hyperref.cfg} erledigt. Dazu sieht die Datei + beispielsweise wie folgt aus: +\begin{lstcode} + \ProvidesFile{hyperref.cfg} + \@ifundefined{pdfoutput}{\ExecuteOptions{dvips}} + {\ExecuteOptions{pdftex}} + \endinput +\end{lstcode} + + Alles weitere kann nun \Macro{AfterFile} überlassen werden: + \begin{lstcode}[moretexcs={hypersetup}] + \documentclass{article} + \usepackage{scrlfile,ngerman} + \AfterFile{hdvips.def}{\hypersetup{linktocpage}} + \AfterFile{hypertex.def}{\hypersetup{linktocpage}} + \usepackage{hyperref} + \begin{document} + \listoffigures + \clearpage + \begin{figure} + \caption{Dies ist ein Beispiel mit einer + Abbildungsunterschrift, die etwas länglich ist + und bei der trotzdem auf die Verwendung des + optionalen Arguments verzichtet wurde} + \end{figure} + \end{document} + \end{lstcode} + Egal, ob nun der \Package{hyperref}-Treiber \Option{hypertex} oder + \Option{dvips} zu Anwendung kommt, wird die dann nützliche Einstellung + \Option{linktocpage} verwendet. Wenn Sie jedoch mit pdf\LaTeX{} eine + PDF-Datei erstellen, wird darauf verzichtet, da in diesem Fall der + \Package{hyperref}-Treiber \File{hpdftex.def} verwendet wird. Das bedeutet, + dass weder die Treiberdatei \File{hdvips.def} noch \File{hypertex.def} + geladen wird. +\end{Example} + +Übrigens können Sie das Laden von \Package{scrlfile} und die obigen +\Macro{AfterFile}-Anweisungen auch in Ihre private \File{hyperref.cfg} +einfügen. Verwenden Sie dabei jedoch zum Laden des Paketes besser +\Macro{RequirePackage} an Stelle von \Macro{usepackage} (siehe +\cite{latex:clsguide}). Die neuen Zeilen müssen in obigem Beispiel unmittelbar +nach der \Macro{ProvidesFile}-Zeile, also unbedingt vor der Ausführung der +Optionen \Option{dvips} oder \Option{pdftex}, eingefügt werden.% +% +\EndIndex{Cmd}{AfterClass}% +\EndIndex{Cmd}{AfterClass*}% +\EndIndex{Cmd}{AfterPackage}% +\EndIndex{Cmd}{AfterPackage*}% + + +\BeginIndex{Cmd}{BeforeClosingMainAux}% +\begin{Declaration} + \Macro{BeforeClosingMainAux}\Parameter{Anweisungen} +\end{Declaration} +Diese Anweisung unterscheidet sich in einem Detail von den zuvor erklärten +Anweisungen. Jene ermöglichen Aktionen vor und nach dem Laden von +Dateien. Dies ist hier nicht der Fall. Paketautoren haben des Öfteren das +Problem, dass Sie Anweisungen in die \File{aux}-Datei schreiben wollen, +nachdem die letzte Seite des Dokuments ausgegeben wurde. Dies wird häufig mit +\begin{lstcode} + \AtEndDocument{% + \if@filesw + \write\@auxout{% + \protect\writethistoaux% + }% + \fi + } +\end{lstcode} +versucht. Dies ist jedoch keine echte Lösung des Problems. Wurde die letzte +Seite vor \Macro{end}\PParameter{document} bereits ausgegeben, so führt obiges +zu keiner Ausgabe in die \File{aux}-Datei mehr. Würde man zur Lösung dieses +Problems nun ein \Macro{immediate} vor \Macro{write} setzen, so hätte man das +umgekehrte Problem: wurde die letzte Seite bei +\Macro{end}\PParameter{document} noch nicht ausgegeben, so wird +\Macro{writethistoaux} zu früh in die \File{aux}-Datei geschrieben. Man sieht +daher häufig Lösungsversuche wie: +\begin{lstcode} + \AtEndDocument{% + \if@filesw + \clearpage + \immediate\write\@auxout{% + \protect\writethistoaux% + }% + \fi + } +\end{lstcode} +Diese Lösung hat jedoch den Nachteil, dass damit die Ausgabe der letzten Seite +erzwungen wird. Eine Anweisung wie: +\begin{lstcode} + \AtEndDocument{% + \par\vspace*{\fill}% + Hinweis am Ende des Dokuments.\par + } +\end{lstcode} +führt dann nicht mehr dazu, dass der Hinweis am Ende der letzten Seite des +Dokuments ausgegeben wird, sie würde stattdessen am Ende der nächsten Seite +ausgegeben. Gleichzeitig würde \Macro{writethistoaux} wieder eine Seite zu +früh in der \File{aux}-Datei landen. + +Die beste Lösung des Problems wäre nun, wenn man unmittelbar in die +\File{aux}-Datei schreiben könnte, nachdem das finale \Macro{clearpage} +innerhalb von \Macro{end}\PParameter{document} ausgeführt und bevor die +\File{aux}-Datei geschlossen wird. Genau dies ist das Ziel von +\Macro{BeforeClosingMainAux}: +\begin{lstcode} + \BeforeClosingMainAux{% + \if@filesw + \immediate\write\@auxout{% + \protect\writethistoaux% + }% + \fi + } +\end{lstcode} +Dies ist auch dann erfolgreich, wenn das finale \Macro{clearpage} innerhalb +von \Macro{end}\PParameter{document} tatsächlich zu keiner Ausgabe einer Seite +mehr führt oder wenn \Macro{clearpage} innerhalb einer +\Macro{AtEndDocument}-Anweisung verwendet wurde. + +Es gibt jedoch für \Macro{BeforeClosingMainAux} eine Einschränkung: Im +Argument \Macro{Anweisungen} sollte niemals eine Satzanweisung verwendet +werden. Es darf also keinesfalls mit \Macro{BeforeClosingMainAux} etwas +gesetzt werden! Wird diese Einschränkung nicht beachtet, so ist das Ergebnis +noch unvorhersehbarer als bei den gezeigten Problemen mit +\Macro{AtEndDocument}.% +% +\EndIndex{Cmd}{BeforeClosingMainAux}% + + +\section{Dateien beim Einlesen ersetzen} +\label{sec:scrlfile.replace} + +In den bisherigen Abschnitten wurden Anweisungen erklärt, mit denen es möglich +ist, vor oder nach dem Einlesen einer bestimmten Datei, eines bestimmten +Pakets oder einer Klasse, Aktionen auszuführen. Es ist mit \Package{scrlfile} +aber auch möglich, eine ganz andere Datei als die angeforderte einzulesen. + +\BeginIndex{Cmd}{ReplaceInput}% +\begin{Declaration} + \Macro{ReplaceInput}\Parameter{Dateiname}\Parameter{Ersatzdatei} +\end{Declaration} +Mit dieser Anweisung wird eine Ersetzung der Datei mit dem als erstes +angegebenen \PName{Dateiname} definiert. Wenn \LaTeX{} anschließend angewiesen +wird, diese Datei zu laden, wird stattdessen die \PName{Ersatzdatei} +geladen. Die Definition der Ersatzdatei wirkt sich auf alle Dateien aus, die +vom Anwender oder intern von \LaTeX{} mit Hilfe von \Macro{InputIfFileExists} +geladen werden. Dazu ist es allerdings erforderlich, dass \Package{scrlfile} +diese Anweisung umdefiniert. + +\begin{Example} + Sie wollen, dass an Stelle der Datei \File{\Macro{jobname}.aux}, die Datei + \File{\Macro{jobname}.xua} geladen wird. Dazu verwenden Sie: + \begin{lstcode} + \ReplaceInput{\jobname.aux}{\jobname.xua} + \end{lstcode} + Wenn Sie nun außerdem \File{\Macro{jobname}.xua} durch + \File{\Macro{jobname}.uxa} ersetzen: + \begin{lstcode} + \ReplaceInput{\jobname.xua}{\jobname.uxa} + \end{lstcode} + dann wird \File{\Macro{jobname}.aux} in Wirklichkeit durch + \File{\Macro{jobname}.uxa} ersetzt. Es wird also die komplette + Ersetzungskette abgearbeitet. + + Einer Ersetzung im Kreis: + \begin{lstcode} + \ReplaceInput{\jobname.aux}{\jobname.xua} + \ReplaceInput{\jobname.xua}{\jobname.aux} + \end{lstcode} + würde jedoch zu einem \emph{stack size error} führen. Es ist also nicht + möglich, eine einmal ersetzte Datei wieder durch ihren Ursprung zu ersetzen. +\end{Example} + +Theoretisch wäre es auch möglich, auf diesem Wege ein Paket durch ein anderes +oder eine Klasse durch eine andere zu ersetzen. Dabei würde \LaTeX{} aber +erkennen, dass die angeforderten Dateinamen nicht zum Namen des Pakets oder +der Klasse passen. Eine Lösung dieses Problems finden Sie nachfolgend. +% +\EndIndex{Cmd}{ReplaceInput}% + + +\BeginIndex{Cmd}{ReplaceClass}% +\BeginIndex{Cmd}{ReplacePackage}% +\begin{Declaration} + \Macro{ReplaceClass}\Parameter{Klasse}\Parameter{Ersatzklasse}\\ + \Macro{ReplacePackage}\Parameter{Paket}\Parameter{Ersatzpaket} +\end{Declaration} +Eine Klasse oder ein Paket sollte niemals mit Hilfe von \Macro{ReplaceInput} +ersetzt werden. In diesem Fall würde \LaTeX{} eine Warnung über nicht +übereinstimmende Klassen- oder Paketnamen melden. +\begin{Example} + Sie ersetzen das Paket \Package{fancyhdr} leichtfertig durch das nicht + kompatible Paket \Package{scrpage2}, indem Sie + \begin{lstcode} + \ReplaceInput{fancyhdr.sty}{scrpage2.sty} + \end{lstcode} + verwenden. Dies führt zu der Warnung + \begin{lstcode} + LaTeX warning: You have requested `scrpage2', + but the package provides `fancyhdr'.} + \end{lstcode} + führen. Für den Anwender wäre diese Warnung mehr als verwirrend, hat er doch + gar nicht \Package{scrpage2}, sondern tatsächlich \Package{fancyhdr} + angefordert, das jedoch durch \Package{scrpage2} ersetzt wurde. +\end{Example} +Eine Lösung dieses Problems besteht nun darin, statt \Macro{ReplaceInput} eine +der Anweisungen \Macro{ReplaceClass} oder \Macro{ReplacePackage} zu +verwenden. Es ist zu beachten, dass dabei wie bei \Macro{documentclass} und +\Macro{usepackage} der Name der Klasse oder des Pakets und nicht deren +kompletter Dateiname anzugeben ist. + +Die Ersetzung funktioniert mit diesen Anweisungen für Klassen, die mit +\Macro{LoadClass}, \Macro{LoadClassWithOptions} oder \Macro{documentclass} +geladen werden. Für Pakete funktioniert die Ersetzung beim Laden mit +\Macro{RequirePackage}, \Macro{RequirePackageWithOptions} und +\Macro{usepackage}. + +Es ist zu beachten, dass die \PName{Ersatzklasse} oder das \PName{Ersatzpaket} +mit denselben Optionen geladen wird, mit denen die ursprünglich geforderte +Klasse oder das ursprünglich geforderte Paket geladen würden. Wird ein Paket +oder eine Klasse durch ein Paket oder eine Klasse ersetzt, das eine geforderte +Option nicht unterstützt, würde dies zu den üblichen Warnungen und Fehlern +führen. Es ist jedoch möglich, solche in der \PName{Ersatzklasse} oder dem +\PName{Ersatzpaket} fehlenden Optionen per \Macro{BeforeClass} oder +\Macro{BeforePackage} neu zu definieren. + +\begin{Example} + Angenommen, das Paket \Package{oldfoo} soll beim Laden durch das + Paket{newfoo} ersetzt werden. Dies wird mit: + \begin{lstcode} + \ReplacePackage{oldfoo}{newfoo} + \end{lstcode} + erreicht. Das alte Paket hat eine Option \Option{oldopt}, die das neue Paket + jedoch nicht hat. Mit + \begin{lstcode} + \BeforePackage{newfoo}{% + \DeclareOption{oldopt}{% + \PackageInfo{newfoo}{option `oldopt' not supported}% + }% + } + \end{lstcode} + wird diese Option nun für das Paket \Package{newfoo} nachdefiniert. Dadurch + wird vermieden, dass beim Laden des Pakets \Package{oldfoo} ein Fehler über + die im Paket \Package{newfoo} nicht unterstützte Option gemeldet wird. + + Existiert hingegen eine Option \Option{newopt}, die an Stelle der Option + \Option{oldopt} verwendet werden soll, so kann dies ebenfalls erreicht + werden: + \begin{lstcode} + \BeforePackage{newfoo}{% + \DeclareOption{oldopt}{% + \ExecuteOptions{newopt}% + }% + } + \end{lstcode} + Es ist sogar möglich, festzulegen, dass beim Laden des neuen Pakets + andere Voreinstellung gelten sollen: + \begin{lstcode} + \BeforePackage{newfoo}{% + \DeclareOption{oldopt}{% + \ExecuteOptions{newopt}% + }% + \PassOptionsToPackage{newdefoptA,newdefoptB}{newfoo}% + } + \end{lstcode} + oder auch direkt: + \begin{lstcode} + \BeforePackage{newfoo}{% + \DeclareOption{oldopt}{% + \ExecuteOptions{newopt}% + }% + } + \PassOptionsToPackage{newdefoptA,newdefoptB}{newfoo}% + \end{lstcode} +\end{Example} + +Damit Klassen ersetzt werden können, ist es erforderlich \Package{scrlfile} +mit Hilfe von \Macro{RequirePackage} vor der Klasse zu laden. +% +\EndIndex{Cmd}{ReplacePackage}% +\EndIndex{Cmd}{ReplaceClass}% +% +\EndIndex{Package}{scrlfile} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../guide" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2-experts.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2-experts.tex new file mode 100644 index 00000000000..351aa9805b3 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2-experts.tex @@ -0,0 +1,1441 @@ +% ====================================================================== +% scrlttr2-experts.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% scrlttr2-experts.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Chapter about scrlttr2 of the KOMA-Script guide expert part +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Kapitel über scrlttr2 im Experten-Teil der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\ProvidesFile{scrlttr2-experts.tex}[2008/09/11 KOMA-Script guide (chapter: scrlttr2 for experts)] + +\chapter{Zusätzliche Informationen zur + Briefklasse \Class{scrlttr2}} +\labelbase{scrlttr2-experts} + +In diesem Kapitel finden Sie zusätzliche Informationen zu der +\KOMAScript-Klasse \Class{scrlttr2}. \iffree{Einige Teile des Kapitels sind dabei dem \KOMAScript-Buch + \cite{book:komascript} vorbehalten. Dies sollte kein Problem sein, denn + der}{Der} Anwender, der die Klasse +einfach nur verwenden will, wird diese Informationen normalerweise nicht +benötigen. Ein Teil der Informationen richtet sich an Anwender, denen die +vordefinierten Möglichkeiten nicht mehr genügen. So befasst sich +beispielsweise der erste Abschnitt ausführlich mit den Pseudolängen, die den +Briefbogen bestimmen und die für Anpassungen an eigene Briefbogenlayouts +abweichend zu setzen sind. Darüber hinaus finden sich in diesem Kapitel auch +Informationen über Möglichkeiten, die aus Gründen der Verbesserung der +Kompatibilität zur obsoleten \KOMAScript-Klasse \Class{scrlettr} geschaffen +wurden. Es wird auch ausführlich erklärt, wie man einen Brief dieser +veralteten Klasse auf die aktuelle Briefklasse übertragen kann. + + +\section{Pseudolängen für fortgeschrittene Anwender} +\label{sec:scrlttr2-experts.pseudoLengths} +\BeginIndex{}{Pseudolängen} + +\TeX{} arbeitet mit einem festen Satz an Registern. Es gibt Register für +Token, für Boxen, für Zähler, für Abstände (englisch: \emph{skip}) und für +Größen (englisch: \emph{dimension}). Von all diesen Registern gibt es jeweils +256~Stück. Für \LaTeX{}-Längen, die mit \Macro{newlength} angefordert werden, +werden Abstandsregister belegt. Sind alle diese Register verbraucht, kann man +keine weiteren Längen definieren. Die Briefklasse \Class{scrlttr2} würde +normalerweise allein für die erste Seite mehr als 20 solche Register +verbrauchen. \LaTeX{} selbst belegt bereits 40 dieser Register. Das +\Package{typearea}-Paket benötigt ebenfalls einige, so dass ein Viertel der +kostbaren Register verbraucht wäre. Aus diesem Grund werden briefspezifische +Längen in \Class{scrlttr2} eben nicht in Längen, sondern in Makros abgelegt, +den Pseudolängen. Der Nachteil dieses Vorgehens besteht darin, dass man mit +diesen Makros nicht so einfach rechnen kann wie mit echten Längen. + +Wer nun einwenden will, dass \LaTeX{} in der empfohlenen und für \KOMAScript{} +benötigten Installation mit \eTeX{} inzwischen das oben genannte +Beschränkungsproblem nicht mehr besitzt, hat Recht. Allerdings kam diese +Entscheidung für \Class{scrlttr2} ein wenig zu spät. + +\BeginIndex{Cmd}{@newplength}% +\begin{Declaration} + \Macro{@newplength}\Parameter{Name} +\end{Declaration} +Mit Hilfe dieser Anweisung wird eine neue Pseudolänge definiert. Die +neue Pseudolänge ist dann über ihren \PName{Namen} eindeutig +identifiziert. +% +\iffalse % Umbruchoptimierungstext +Es wird sichergestellt, dass jeder \PName{Name} nur +einmal vergeben wird.% +\else +Wird versucht, eine bereits vorhandene Pseudolänge erneut +zu definieren, so wird dies mit einer Fehlermeldung quittiert.% +% +\fi + +Da der Anwender selbst normalerweise keine eigenen Pseudolängen +definieren muss, handelt es sich bei diesem Befehl um keine +Benutzeranweisung. Sie kann innerhalb des Dokuments nicht, wohl aber +beispielsweise innerhalb einer \File{lco}-Datei verwendet werden. +% +\EndIndex{Cmd}{@newplength}% + +\begin{figure} + \centering + \includegraphics{plenDIN} + \caption{Schematische Darstellung der wichtigsten Pseudolängen für den + Briefbogen} + \label{fig:scrlttr2-experts.pseudoLengths} +\end{figure} + +\begin{desctable} + \caption{Von der Klasse \Class{scrlttr2} verwendete Pseudolängen% + \label{tab:scrlttr2-experts.pseudoLengths}}\\ + \Endfirsthead % + \caption[]{Von der Klasse \Class{scrlttr2} verwendete Pseudolängen + (\emph{Fortsetzung})}\\% + \Endhead% + \standardfoot% + \pentry{backaddrheight}{% + Höhe der Rücksendeadresse am oberen Rand des Anschriftfeldes +% (\autoref{sec:scrlttr2-experts.addressee}, +% \autopageref{desc:scrlttr2-experts.plength.backaddrheight}) + }% + \pentry{bfoldmarklength}{% + Länge der unteren horizontalen Faltmarke +% (\autoref{sec:scrlttr2-experts.foldmarks}, +% \autopageref{desc:scrlttr2-experts.plength.bfoldmarkvpos}) +}% + \pentry{bfoldmarkvpos}{% + Abstand der unteren horizontalen Faltmarke von der oberen Kante des + Papiers +% (\autoref{sec:scrlttr2-experts.foldmarks}, +% \autopageref{desc:scrlttr2-experts.plength.bfoldmarkvpos}) +}% + \pentry{firstfootvpos}{% + Abstand des Brief"|fußes von der oberen Kante des Papiers +% (\autoref{sec:scrlttr2-experts.firstFoot}, +% \autopageref{desc:scrlttr2-experts.plength.firstfootvpos}) + }% + \pentry{firstfootwidth}{% + Breite des Brief"|fußes, der automatisch innerhalb der Papierbreite + zentriert wird +% (\autoref{sec:scrlttr2-experts.firstFoot}, +% \autopageref{desc:scrlttr2-experts.plength.firstfootwidth}) + }% + \pentry{firstheadvpos}{% + Abstand des Briefkopfes von der oberen Kante des Papiers +% (\autoref{sec:scrlttr2-experts.firstHead}, +% \autopageref{desc:scrlttr2-experts.plength.firstheadvpos}) + }% + \pentry{firstheadwidth}{% + Breite des Briefkopfes, wobei dieser relativ zur Papierbreite zentriert + wird +% (\autoref{sec:scrlttr2-experts.firstHead}, +% \autopageref{desc:scrlttr2-experts.plength.firstheadwidth}) + }% + \pentry{foldmarkhpos}{% + Abstand der horizontalen Faltmarken von der linken Kante des Papiers +% (\autoref{sec:scrlttr2-experts.foldmarks}, +% \autopageref{desc:scrlttr2-experts.plength.foldmarkhpos}) + }% + \pentry{foldmarkvpos}{% + Abstand der vertikalen Faltmarken von der oberen Kante des Papiers +% (\autoref{sec:scrlttr2-experts.foldmarks}, +% \autopageref{desc:scrlttr2-experts.plength.foldmarkvpos}) + }% + \pentry{fromrulethickness}{% + Dicke einer optionalen horizontalen Linie im Briefkopf +% (\autoref{sec:scrlttr2-experts.firstHead}, +% \autopageref{desc:scrlttr2-experts.plength.fromrulethickness}) + }% + \pentry{fromrulewidth}{% + Länge einer optionalen horizontalen Linie im Briefkopf +% (\autoref{sec:scrlttr2-experts.firstHead}, +% \autopageref{desc:scrlttr2-experts.plength.fromrulewidth}) + }% + \pentry{lfoldmarkhpos}{% + Abstand der vertikalen Faltmarke von der linken Kante des Papiers +% (\autoref{sec:scrlttr2-experts.foldmarks}, +% \autopageref{desc:scrlttr2-experts.plength.lfoldmarkhpos}) + }% + \pentry{lfoldmarklength}{% + Länge der vertikalen Faltmarke +% (\autoref{sec:scrlttr2-experts.foldmarks}, +% \autopageref{desc:scrlttr2-experts.plength.lfoldmarklength}) + }% + \pentry{locheight}{% + Höhe der Absenderergänzung, falls der Wert nicht 0 ist; bei 0 wird + stattdessen \PLength{toaddrheight} verwendet +% (\autoref{sec:scrlttr2-experts.locationField}, +% \autopageref{desc:scrlttr2-experts.plength.locheight}) + }% + \pentry{lochpos}{% + Abstand der Absenderergänzung von der rechten Papierkante, falls der Wert + positiv ist, oder negativer Abstand der Absenderergänzung von der linken + Papierkante, falls der Wert negativ ist; bei 0 wird stattdessen der + negative Wert von \PLength{toaddrhpos} verwendet +% (\autoref{sec:scrlttr2-experts.locationField}, +% \autopageref{desc:scrlttr2-experts.plength.lochpos}) + }% + \pentry{locvpos}{% + Abstand der Absenderergänzung von der oberen Papierkante, falls der Wert + nicht 0 ist; bei 0 wird stattdessen \PLength{toaddrvpos} verwendet +% (\autoref{sec:scrlttr2-experts.locationField}, +% \autopageref{desc:scrlttr2-experts.plength.locvpos}) + }% + \pentry{locwidth}{% + Breite des Feldes für die Absenderergänzung, wobei bei einem Wert von 0 + die Breite automatisch aufgrund der in \autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.option.locfield} beschriebenen Option + \Option{locfield} berechnet wird +% (\autoref{sec:scrlttr2-experts.locationField}, +% \autopageref{desc:scrlttr2-experts.plength.locwidth}) + }% + \pentry{mfoldmarklength}{% + Länge der mittleren horizontalen Faltmarke +% (\autoref{sec:scrlttr2-experts.foldmarks}, +% \autopageref{desc:scrlttr2-experts.plength.mfoldmarklength}) + }% + \pentry{mfoldmarkvpos}{% + Abstand der mittleren horizontalen Faltmarke von der oberen Kante des + Papiers +% (\autoref{sec:scrlttr2-experts.foldmarks}, +% \autopageref{desc:scrlttr2-experts.plength.mfoldmarkvpos}) + }% + \pentry{pfoldmarklength}{% + Länge der Lochermarke +% (\autoref{sec:scrlttr2-experts.foldmarks}, +% \autopageref{desc:scrlttr2-experts.plength.pfoldmarklength}) + }% + \pentry{refaftervskip}{% + vertikaler Abstand nach der Geschäftszeile +% (\autoref{sec:scrlttr2-experts.refLine}, +% \autopageref{desc:scrlttr2-experts.plength.refaftervskip}) + }% + \pentry{refhpos}{% + Abstand der Geschäftszeile von der linken Papierkante, wobei bei einem + Wert von 0 automatisch relativ zur Papierbreite zentriert wird +% (\autoref{sec:scrlttr2-experts.refLine}, +% \autopageref{desc:scrlttr2-experts.plength.refhpos}) + }% + \pentry{refvpos}{% + Abstand der Geschäftszeile von der oberen Kante des Papiers +% (\autoref{sec:scrlttr2-experts.refLine}, +% \autopageref{desc:scrlttr2-experts.plength.refvpos}) + }% + \pentry{refwidth}{% + Breite der Geschäftszeile +% (\autoref{sec:scrlttr2-experts.refLine}, +% \autopageref{desc:scrlttr2-experts.plength.refwidth}) + }% + \pentry{sigbeforevskip}{% + vertikaler Abstand zwischen Gruß und Signatur +% (\autoref{sec:scrlttr2-experts.closing}, +% \autopageref{desc:scrlttr2-experts.plength.sigbeforevskip}) + }% + \pentry{sigindent}{% + Einzug der Signatur gegenüber dem Textkörper +% (\autoref{sec:scrlttr2-experts.closing}, +% \autopageref{desc:scrlttr2-experts.plength.sigindent}) + }% + \pentry{specialmailindent}{% + linker Einzug der Versandart innerhalb des Anschriftfeldes +% (\autoref{sec:scrlttr2-experts.addressee}, +% \autopageref{desc:scrlttr2-experts.plength.specialmailindent}) + }% + \pentry{specialmailrightindent}{% + rechter Einzug der Versandart innerhalb des Anschriftfeldes +% (\autoref{sec:scrlttr2-experts.addressee}, +% \autopageref{desc:scrlttr2-experts.plength.specialmailrightindent}) + }% + \pentry{tfoldmarklength}{% + Länge der oberen horizontalen Faltmarke +% (\autoref{sec:scrlttr2-experts.foldmarks}, +% \autopageref{desc:scrlttr2-experts.plength.tfoldmarklength}) + }% + \pentry{tfoldmarkvpos}{% + Abstand der oberen horizontalen Faltmarke von der oberen Kante des Papiers +% (\autoref{sec:scrlttr2-experts.foldmarks}, +% \autopageref{desc:scrlttr2-experts.plength.tfoldmarkvpos}) + }% + \pentry{toaddrheight}{% + Höhe des Anschriftfeldes +% (\autoref{sec:scrlttr2-experts.addressee}, +% \autopageref{desc:scrlttr2-experts.plength.toaddrheight}) + }% + \pentry{toaddrhpos}{% + Abstand des Anschriftfeldes von der linken Papierkante, falls der Wert + positiv ist, oder negativer Abstand des Anschriftfeldes von der rechten + Papierkante, falls der Wert negativ ist +% (\autoref{sec:scrlttr2-experts.addressee}, +% \autopageref{desc:scrlttr2-experts.plength.toaddrhpos}) + }% + \pentry{toaddrindent}{% + linker und rechter Einzug der Anschrift innerhalb des Anschrift\-feldes +% (\autoref{sec:scrlttr2-experts.addressee}, +% \autopageref{desc:scrlttr2-experts.plength.toaddrindent}) + }% + \pentry{toaddrvpos}{% + Abstand des Anschriftfeldes von der oberen Kante des Papiers +% (\autoref{sec:scrlttr2-experts.addressee}, +% \autopageref{desc:scrlttr2-experts.plength.toaddrvpos}) + }% + \pentry{toaddrwidth}{% + Breite des Anschriftfeldes +% (\autoref{sec:scrlttr2-experts.addressee}, +% \autopageref{desc:scrlttr2-experts.plength.toaddrwidth}) + }% +\end{desctable} + + +\BeginIndex{Cmd}{@setplength}% +\BeginIndex{Cmd}{@addtoplength}% +\begin{Declaration} + \Macro{@setplength}% + \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Wert}\\ + \Macro{@addtoplength}% + \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Wert} +\end{Declaration} +Mit Hilfe der Anweisung \Macro{@setplength} kann einer \PName{Pseudolänge} das +Vielfache eines \PName{Wertes} zugewiesen werden. Der \PName{Faktor} wird +dabei als optionales Argument übergeben (siehe auch +\Macro{setlengthtoplength}, \autoref{sec:scrlttr2.pseudoLength}, +\autopageref{desc:scrlttr2.cmd.setlengthtoplength}). Mit +\Macro{@addtoplength} kann man zu einer \PName{Pseudolänge} einen \PName{Wert} +addieren. Um einer \PName{Pseudolänge} das Vielfache einer anderen Pseudolänge +zuzuweisen oder hinzuzuaddieren, verwendet man innerhalb von \PName{Wert} die +Anweisung \Macro{useplength} (siehe \autoref{sec:scrlttr2.pseudoLength}, +\autopageref{desc:scrlttr2.cmd.useplength}). Um von einer \PName{Pseudolänge} +den Wert einer anderen \PName{Pseudolänge} zu subtrahieren, verwendet man +gleichzeitig als \PName{Faktor} ein Minuszeichen oder \PValue{-1}. + +Da der Anwender selbst normalerweise keine Pseudolängen ändern muss, +handelt es sich bei diesen Befehlen um keine Benutzeranweisungen. Sie +können innerhalb des Dokuments nicht, wohl aber beispielsweise +innerhalb einer \File{lco}-Datei verwendet werden. +% +\EndIndex{Cmd}{@setplength}% +\EndIndex{Cmd}{@addtoplength}% + +In den folgenden Unterabschnitten werden vordefinierte Pseudolängen von +\Class{scrlttr2} vorgestellt. Diese sind kurz zusammengefasst auch in +\autoref{tab:scrlttr2-experts.pseudoLengths}, ab +\autopageref{tab:scrlttr2-experts.pseudoLengths} und größtenteils in +\autoref{fig:scrlttr2-experts.pseudoLengths}, +\autopageref{fig:scrlttr2-experts.pseudoLengths} zu finden. + + +\subsection{Faltmarken} +\label{sec:scrlttr2-experts.foldmarks} +\BeginIndex{}{Faltmarke}% + +Falt- oder Falzmarken sind kleine horizontale Striche am linken und kleine +vertikale Striche am oberen Rand. \KOMAScript{} unterstützt für den Briefbogen +derzeit drei konfigurierbare horizontale und eine konfigurierbare vertikale +Faltmarke. Dazu wird noch eine horizontale Loch- oder Seitenmittenmarke +unterstützt, die nicht in der Vertikalen verschoben werden kann. + + +\BeginIndex{PLength}{tfoldmarkvpos}% +\BeginIndex{PLength}{bfoldmarkvpos}% +\BeginIndex{PLength}{mfoldmarkvpos}% +\begin{Declaration} + \PLength{tfoldmarkvpos}\\ + \PLength{mfoldmarkvpos}\\ + \PLength{bfoldmarkvpos} +\end{Declaration} +Die Briefklasse \Class{scrlttr2} kennt insgesamt drei in der vertikalen +Platzierung konfigurierbaren Faltmarken. Die Position der oberen Faltmarke vom +oberen Papierrand wird von der Pseudolänge \PLength{tfoldmarkvpos} bestimmt, +die der mittleren Faltmarke von der Pseudolänge +\PLength{mfoldmarkvpos}\ChangedAt{v2.97e}{\Class{scrlttr2}}, die der unteren +Faltmarke von der Pseudolänge \PLength{bfoldmarkvpos}. Mit der +Locher-\Index{Lochermarke} oder Seitenmittenmarke kommt noch eine weitere +horizontale Marke dazu. Diese wird jedoch immer in der vertikalen Seitenmitte +platziert. + +Die obere und untere Faltmarke dienen nicht der exakten Drittelung des +Papiers beim Falten. Stattdessen soll das Papier mit ihrer Hilfe so geknickt +werden können, dass das Feld für die Anschrift in einem Fensterbriefumschlag +zu sehen ist. Die Einstellungen sind daher in den vordefinierten +\File{lco}-Dateien unterschiedlich gewählt. Eine Besonderheit stellt +\Option{DINmtext} dar. Hier wird zwingend von einem Briefumschlag im Format +C6/5 (auch »C6 lang« genannt) ausgegangen. Briefe, die mit dieser Option +erstellt wurden, sind weder für Umschläge im Format C5 noch für Umschläge im +Format C4 geeignet. + +Die mittlere Faltmarke wird für abendländische Briefe normalerweise nicht +benötigt. Beispielsweise in Japan gibt es jedoch so unterschiedliche +Briefumschläge, dass eine weitere Faltmarke benötigt wurde (siehe die +japanischen \File{lco}-Dateien). An dieser Stelle sei darauf hingewiesen, dass +die Bezeichnungen »obere«, »mittlere« und »untere« Faltmarke lediglich +eine Sprachkonvention darstellen. Tatsächlich ist nicht festgelegt, dass +\PLength{tfoldmarkvpos} kleiner als \PLength{mfoldmarkvpos} und dieses kleiner +als \PLength{bfoldmarkvpos} sein muss. Ist eine der Pseudolängen hingegen +Null, so wird die entsprechende Faltmarke auch dann nicht gesetzt, wenn sie +per Option \Option{foldmarks} (siehe \autoref{sec:scrlttr2.firstpage}, +\autopageref{desc:scrlttr2.option.foldmarks}) explizit aktiviert wurde.% +% +\EndIndex{PLength}{tfoldmarkvpos}% +\EndIndex{PLength}{mfoldmarkvpos}% +\EndIndex{PLength}{bfoldmarkvpos}% + + +\BeginIndex{PLength}{tfoldmarklength}% +\BeginIndex{PLength}{mfoldmarklength}% +\BeginIndex{PLength}{bfoldmarklength}% +\BeginIndex{PLength}{pfoldmarklength}% +\begin{Declaration} + \PLength{tfoldmarklength}\\ + \PLength{mfoldmarklength}\\ + \PLength{bfoldmarklength}\\ + \PLength{pfoldmarklength} +\end{Declaration} +Diese\ChangedAt{v2.97e}{\Class{scrlttr2}} vier Pseudolängen bestimmen die +Länge der vier horizontalen Marken. Dabei gilt eine Besonderheit. Ist die +Länge nämlich mit Null angegeben, so werden bei den Pseudolängen +\PLength{tfoldmarklength}, \PLength{mfoldmarklength} und +\PLength{bfoldmarklength} für die drei in der vertikalen Position +konfigurierbaren Faltmarken stattdessen 2\Unit{mm} als Länge verwendet. Die +Länge der Lochermarke, \PLength{pfoldmarklength}, wird hingegen auf 4\Unit{mm} +gesetzt.% +\EndIndex{PLength}{tfoldmarklength}% +\EndIndex{PLength}{mfoldmarklength}% +\EndIndex{PLength}{bfoldmarklength}% +\EndIndex{PLength}{pfoldmarklength}% + + +\BeginIndex{PLength}{foldmarkhpos}% +\begin{Declaration} + \PLength{foldmarkhpos} +\end{Declaration} +Diese Pseudolänge gibt den Abstand aller horizontalen Faltmarken vom linken +Papier\-rand an. Normalerweise sind das 3{,}5\Unit{mm}. Sie können den Wert +aber auch in Ihrer eigenen \File{lco}-Datei ändern, falls Sie einen Drucker +verwenden, der einen breiteren unbedruckbaren linken Rand hat. Ob die +Faltmarken überhaupt gesetzt werden, hängt außerdem von der Option +\Option{foldmarks} ab (siehe \autoref{sec:scrlttr2.firstpage}, +\autopageref{desc:scrlttr2.option.foldmarks}).% +% +\EndIndex{PLength}{foldmarkhpos}% +\EndIndex{}{Faltmarke}% + + +\BeginIndex{PLength}{lfoldmarkhpos}% +\begin{Declaration} + \PLength{lfoldmarkhpos} +\end{Declaration} +Neben\ChangedAt{v2.97e}{\Class{scrlttr2}} den horizontalen Faltmarken gibt es +auch noch eine vertikale Faltmarke. Deren Abstand von der linken Papierkante +wird über die Pseudolänge \PLength{lfoldmarkhpos} bestimmt. Diese Faltmarke +wird beispielsweise bei Briefen für einige japanische Chou- oder You-Umschläge +benötigt, wenn man diese für A4-Papier verwenden will. Auch für Umschläge im +C6-Format kann sie nützlich sein.% +\EndIndex{PLength}{lfoldmarkhpos}% + + +\BeginIndex{PLength}{lfoldmarklength}% +\begin{Declaration} + \PLength{lfoldmarklength} +\end{Declaration} +Die Pseudolänge \PLength{lfoldmarklength} bestimmt +die\ChangedAt{v2.97e}{\Class{scrlttr2}} Länge der vertikalen Faltmarke. Auch +hier gibt es die Besonderheit, dass bei einer angegebenen Länge von Null +stattdessen 4\Unit{mm} verwendet werden.% +\EndIndex{PLength}{lfoldmarklength}% + + +\BeginIndex{PLength}{foldmarkvpos}% +\begin{Declaration} + \PLength{foldmarkvpos} +\end{Declaration} +Diese\ChangedAt{v2.97e}{\Class{scrlttr2}} Pseudolänge gibt den Abstand aller +vertikalen Faltmarken vom oberen Papier\-rand an. Normalerweise sind das +3{,}5\Unit{mm}. Sie können den Wert aber auch in Ihrer eigenen +\File{lco}-Datei ändern, falls Sie einen Drucker verwenden, der einen +breiteren unbedruckbaren oberen Rand hat. Ob die Faltmarken überhaupt gesetzt +werden, hängt außerdem von der Option \Option{foldmarks} ab (siehe +\autoref{sec:scrlttr2.firstpage}, +\autopageref{desc:scrlttr2.option.foldmarks}). Derzeit gibt es nur eine +einzige vertikale Faltmarke, die als linke vertikale Faltmarke bezeichnet +wird.% +\EndIndex{PLength}{foldmarkvpos}% + + +\BeginIndex{PLength}{foldmarkthickness}% +\begin{Declaration} + \PLength{foldmarkthickness} +\end{Declaration} +Diese\ChangedAt{v2.97c}{\Class{scrlttr2}} Pseudolänge gibt die Dicke aller +Faltmarken an. Voreingestellt sind 0,2\Unit{pt}, also eine sehr dünne +Haarlinie. Insbesondere, wenn die Farbe der Faltmarken geändert wird, kann +dies zu wenig sein!% +\EndIndex{PLength}{foldmarkthickness}% +% +\EndIndex{}{Faltmarke}% + + +\subsection{Briefkopf} +\label{sec:scrlttr2-experts.firstHead} +\BeginIndex{}{Briefkopf}% + +Unter dem Briefkopf verstehen wir alle Angaben, die den Absender +betreffen und die über der Anschrift stehen. Normalerweise würde man +erwarten, dass diese über den Seitenstil gesetzt werden. Bei der alten +Briefklasse \Class{scrlettr} war dies auch so. Bei \Class{scrlttr2} +wird der Briefkopf jedoch unabhängig vom Seitenstil von der Anweisung +\Macro{opening}\IndexCmd{opening} ausgegeben. +% Fuellmaterial +\iftrue% +Dabei wird der Briefkopf absolut positioniert, ist also vom +Satzspiegel unabhängig. Die erste Seite eines Briefes, also die Seite +mit dem Briefkopf, wird tatsächlich mit dem Seitenstil \PValue{empty} +gesetzt.% +\fi +% Ende des Fuellmaterials + + +\BeginIndex{PLength}{firstheadvpos}% +\begin{Declaration} + \PLength{firstheadvpos} +\end{Declaration} +Die Pseudolänge \PLength{firstheadvpos} gibt den Abstand des Briefkopfes von +der oberen Papierkante an. Der Wert wird in den vordefinierten +\File{lco}-Dateien unterschiedlich gesetzt. Ein typischer Wert ist +8\Unit{mm}.% +\EndIndex{PLength}{firstheadvpos} + + +\BeginIndex{PLength}{firstheadwidth}% +\begin{Declaration} + \PLength{firstheadwidth} +\end{Declaration} +Die Pseudolänge \PLength{firstheadwidth} gibt die Breite des Briefkopfes +an. Der Wert wird in den vordefinierten \File{lco}-Dateien unterschiedlich +gesetzt. Während er normalerweise von der Papierbreite und dem horizontalen +Abstand der Empfängeradresse vom linken Papierrand abhängt, entspricht er bei +\Option{KOMAold} der Breite des Satzspiegels.% +\EndIndex{PLength}{firstheadwidth}% + + +\BeginIndex{PLength}{fromrulethickness}% +\BeginIndex{PLength}{fromrulewidth}% +\begin{Declaration} + \PLength{fromrulethickness}\\ + \PLength{fromrulewidth} +\end{Declaration} +Wie bereits bei Option \Option{fromrule}\IndexOption{fromrule} in +\autoref{sec:scrlttr2.firstpage}, \autopageref{desc:scrlttr2.option.fromrule} +erwähnt wurde, kann in den vordefinierten Briefköpfen eine Linie im oder unter +dem Absender gesetzt werden. Hat die Pseudolänge \PLength{fromrulewidth} die +Länge 0, so wird dabei die Länge dieser Linie automatisch bestimmt. Dies ist +die Voreinstellung bei den vordefinierten \File{lco}-Dateien. Der Wert kann +mit \Macro{\@setplength} (siehe +\autopageref{desc:scrlttr2-experts.cmd.@setplength}) in eigenen +\File{lco}-Dateien aber auch abweichend gesetzt werden. Die voreingestellte +Dicke\ChangedAt{v2.97c}{\Class{scrlttr2}}, \PLength{fromrulethickness}, der +Linie beträgt 0,4\Unit{pt}.% +\EndIndex{PLength}{fromrulethickness}% +\EndIndex{PLength}{fromrulewidth}% +% +\EndIndex{}{Briefkopf}% + + +\subsection{Anschrift} +\label{sec:scrlttr2-experts.addressee}% +\BeginIndex{}{Anschrift}% + +Unter der Anschrift versteht man normalerweise nur den Namen und die Adresse +des Empfängers. Als erste Erweiterung zur Anschrift kann die Versandart +betrachtet werden, die etwa bei Einschreiben oder Infobriefen zur Anwendung +kommt. Bei Fensterbriefumschlägen wird auch die so genannte Rücksendeadresse +zur Anschrift gezählt, da sie im Anschriftfenster zu sehen sein wird. Die +Anschrift folgt unmittelbar auf den Briefkopf. + + +\BeginIndex{PLength}{toaddrvpos}% +\BeginIndex{PLength}{toaddrhpos}% +\begin{Declaration} + \PLength{toaddrvpos}\\ + \PLength{toaddrhpos} +\end{Declaration} +Diese Pseudolängen geben den Abstand des Anschriftfensters eines +Fensterbriefumschlags vom oberen und vom linken Rand des Papiers an. Sie +werden in den vordefinierten \File{lco}-Dateien unterschiedlich eingestellt. +Für \PLength{toaddrhpos} gilt außerdem eine Besonderheit. Ist der Wert +negativ, so ist sein Betrag der Abstand des Anschriftfeldes vom rechten Rand +des Papiers. Sie finden dies beispielsweise bei \Option{SN}. Am kleinsten ist +der Wert \PLength{toaddrvpos} bei \Option{DINmtext}. Hier kann es schnell +passieren, dass der Briefkopf in das Anschriftfenster ragt. Ob das +Anschriftfenster überhaupt gesetzt wird, hängt von der Option +\Option{addrfield} ab (siehe \autoref{sec:scrlttr2.firstpage}, +\autopageref{desc:scrlttr2.option.addrfield}).% +\EndIndex{PLength}{toaddrhpos}% +\EndIndex{PLength}{toaddrvpos}% + + +\BeginIndex{PLength}{toaddrheight}% +\begin{Declaration} + \PLength{toaddrheight} +\end{Declaration} +Diese Pseudolänge gibt die Höhe des Anschriftfeldes einschließlich der +Versandart an. Ist keine Versandart angegeben, so wird die Anschrift vertikal +innerhalb dieses Feldes zentriert. Ist eine Versandart angegeben, so wird die +Anschrift unterhalb der Versandart vertikal im Rest des Anschriftfeldes +zentriert.% +\EndIndex{PLength}{toaddrheight} + + +\BeginIndex{PLength}{toaddrwidth}% +\begin{Declaration} + \PLength{toaddrwidth} +\end{Declaration} +Diese Pseudolänge gibt die Breite des Anschriftfensters an. Diese wird in den +vordefinierten \File{lco}-Dateien entsprechend der unterschiedlichen Normen +unterschiedlich eingestellt. Typische Werte liegen zwischen 70\Unit{mm} und +100\Unit{mm}. +\begin{Example} + Angenommen, Sie haben das Problem, dass Ihr Drucker einen sehr breiten + unbedruckbaren rechten oder linken Rand von 15\Unit{mm} besitzt. Dadurch + kann bei Option \Option{SN} der Briefkopf, die Absenderergänzung und die + Anschrift nicht komplett gedruckt werden. Sie erstellen daher eine neue + \File{lco}-Datei mit folgendem Inhalt: + \begin{lstcode} + \ProvidesFile{SNmmarg.lco} + [2002/06/04 v0.1 my own lco] + \LoadLetterOption{SN} + \@addtoplength{toaddrwidth}{-\useplength{toaddrhpos}} + \@setplength{toaddrhpos}{-15mm} + \@addtoplength{toaddrwidth}{\useplength{toaddrhpos}} + \endinput + \end{lstcode} + Bis Sie sich einen Drucker mit kleineren Rändern zugelegt haben, verwenden + Sie dann \Option{SNmmarg} an Stelle von \Option{SN}. +\end{Example} +% +\EndIndex{PLength}{toaddrwidth}% + + +\BeginIndex{PLength}{toaddrindent}% +\begin{Declaration} + \PLength{toaddrindent} +\end{Declaration} +Manchmal will man, dass die Anschrift nicht am linken Rand des +Anschriftfensters beginnt und bis zum rechten Rand des Fensters reicht, +sondern ein wenig eingezogen wird. Der Wert dieses Einzugs kann über die +Pseudolänge \PLength{toaddrindent} festgelegt werden. Typischerweise ist +dieser Wert jedoch 0\Unit{pt}.% +\EndIndex{PLength}{toaddrindent}% + + +\BeginIndex{PLength}{backaddrheight}% +\begin{Declaration} + \PLength{backaddrheight} +\end{Declaration} +Bei Fensterbriefumschlägen wird der Absender häufig in einer kleinen Schrift +einzeilig über der Empfängeradresse ausgegeben. Diese Absenderangabe nennt man +Rücksendeadresse, da sie im Anschriftfenster sichtbar ist und der Post bei +unzustellbaren Briefen für die Rücksendung an den Absender dient. In dieser +Adresse muss daher auch nur die Information enthalten sein, die zu diesem +Zweck notwendig ist. + +Die Höhe, die innerhalb des Anschriftfensters für die Rücksendeadresse zur +Verfügung steht, ist in der Pseudolänge \PLength{backaddrheight} abgelegt. Der +Wert wird in den vordefinierten \File{lco}-Dateien typischerweise auf +5\Unit{mm} eingestellt. Ob die Rücksendeadresse überhaupt gesetzt wird, +bestimmt der Anwender mit den Optionen \Option{addrfield} (siehe +\autoref{sec:scrlttr2.firstpage}, +\autopageref{desc:scrlttr2.option.addrfield}) und \Option{backaddress} (siehe +\autoref{sec:scrlttr2.firstpage}, +\autopageref{desc:scrlttr2.option.backaddress}).% +\EndIndex{PLength}{backaddrheight}% + + +\BeginIndex{PLength}{specialmailindent}% +\BeginIndex{PLength}{specialmailrightindent}% +\begin{Declaration} + \PLength{specialmailindent}\\ + \PLength{specialmailrightindent} +\end{Declaration} +Zwischen Rücksendeadresse und Empfängeradresse kann noch eine optionale +Versandart\Index{Versandart} gesetzt werden. Diese wird genau dann gesetzt, +wenn die Variable \Variable{specialmail} einen Inhalt hat. Die Ausrichtung +wird mit Hilfe der Pseudolängen \PLength{specialmailindent} und +\PLength{specialmailrightindent} festgelegt. Diese geben den linken und +rechten Einzug der Zeile an. In den vordefinierten \File{lco}-Dateien ist +\PLength{specialmailindent} auf den dehnbaren Wert \Macro{fill} gesetzt, +während \PLength{specialmailrightindent} auf 1\Unit{em} eingestellt ist. Damit +wird die Versandart 1\Unit{em} vom rechten Rand des Anschriftfensters +gesetzt.% +\EndIndex{PLength}{specialmailindent}% +\EndIndex{PLength}{specialmailrightindent}% +% +\EndIndex{}{Anschrift}% + + +\subsection{Absenderergänzungen} +\label{sec:scrlttr2-experts.locationField} +\BeginIndex{}{Absenderergaenzung=Absenderergänzung}% + +Insbesondere bei Geschäftsbriefen reicht der Platz im Briefkopf und im +Seitenfuß oftmals nicht aus, um alle Angaben des Absenders unterzubringen. Für +die zusätzlichen Informationen wird oft der Platz neben der Anschrift +genutzt. In dieser Anleitung wird dieses Feld \emph{Absenderergänzung} +genannt. + + +\BeginIndex{PLength}{locwidth}% +\BeginIndex{PLength}{locheight}% +\BeginIndex{PLength}{lochpos}% +\BeginIndex{PLength}{locvpos}% +\begin{Declaration} + \PLength{locheight}\\ + \PLength{lochpos}\\ + \PLength{locvpos}\\ + \PLength{locwidth} +\end{Declaration} +Die Pseudolängen \PLength{locwidth} und +\PLength{locheight}\ChangedAt{v2.97d}{\Class{scrlttr2}} geben die Breite und +Höhe der Absenderergänzung an. Die Pseudolängen \PLength{lochpos} und +\PLength{locvpos} geben die Abstände von der rechten und der oberen +Papierkante an. Diese Werte werden in den vordefinierten \File{lco}-Dateien +typischerweise auf 0\Unit{pt} gesetzt. Dieser Wert nimmt eine Sonderstellung +ein. Er bedeutet, dass die Werte erst bei \Macro{opening}\IndexCmd{opening} an +Hand der Breite des Papiers, der Breite des Anschriftfensters und des Abstandes +des Anschriftfensters von der linken und oberen Papierkante gesetzt +werden. Dabei findet auch die Option \Option{locfield} (siehe +\autoref{sec:scrlttr2.firstpage}, \autopageref{desc:scrlttr2.option.locfield}) +Berücksichtigung. Wie auch bei \PLength{toaddrhpos} nehmen negative Werte für +\PLength{lochpos} eine Sonderstellung ein. Es wird dann statt des Abstandes +vom rechten Papierrand der Betrag von \PLength{lochpos} als Abstand vom linken +Papierrand verwendet. Die Bedeutung ist also genau umgekehrt zu der bei +\PLength{toaddrhpos} (siehe \autoref{sec:scrlttr2-experts.addressee}, +\autopageref{desc:scrlttr2-experts.plength.toaddrhpos}).% +\EndIndex{PLength}{locwidth}% +\EndIndex{PLength}{locheight}% +\EndIndex{PLength}{lochpos}% +\EndIndex{PLength}{locvpos}% +% +\EndIndex{}{Absenderergaenzung=Absenderergänzung}% + + +\subsection{Geschäftszeile} +\label{sec:scrlttr2-experts.refLine}% +\BeginIndex{}{Geschaeftszeile=Geschäftszeile}% + +Die Geschäftszeile kann auch länger als eine Zeile sein und wird nur gesetzt, +wenn mindestens eine der Variablen für die Geschäftszeile nicht leer ist. Es +werden nur die Felder gesetzt, die nicht leer sind. Um ein scheinbar leeres +Feld zu setzen, muss man der entsprechenden Variablen einen scheinbar leeren +Inhalt, beispielsweise ein festes Leerzeichen oder \Macro{null}, geben. Wird +auf die Geschäftszeile verzichtet, so werden an ihrer Stelle Bezeichnung und +Inhalt der Variablen \Variable{date} ausgegeben. Informationen, wie Variablen +zur Geschäftszeile hinzugefügt oder entfernt werden, sind in +\autoref{sec:scrlttr2-experts.variables}, +\autopageref{desc:scrlttr2-experts.cmd.removereffields} zu finden. + + +\BeginIndex{PLength}{refvpos}% +\begin{Declaration} + \PLength{refvpos} +\end{Declaration} +Diese Pseudolänge gibt den Abstand der Geschäftszeile von der Oberkante des +Papiers an. Ihr Wert wird in den vordefinierten \File{lco}-Dateien +unterschiedlich eingestellt. Typische Werte liegen zwischen 80{,}5\Unit{mm} +und 98{,}5\Unit{mm}.% +\EndIndex{PLength}{refvpos}% + + +\BeginIndex{PLength}{refwidth}% +\BeginIndex{PLength}{refhpos}% +\begin{Declaration} + \PLength{refwidth}\\ + \PLength{refhpos} +\end{Declaration} +Die Pseudolänge \PLength{refwidth} gibt die Breite an, die für die +Geschäftszeile zur Verfügung steht. Ihr Wert wird in den vordefinierten +\File{lco}-Dateien typischerweise auf 0\Unit{pt} gesetzt. Dieser Wert hat eine +besondere Bedeutung. Es wird damit keineswegs festgelegt, dass für die +Geschäftszeile keine Breite zur Verfügung steht. Vielmehr bedeutet der Wert, +dass die verfügbare Breite erst innerhalb von +\Macro{opening}\IndexCmd{opening} ermittelt wird. Die dort ermittelte Breite +richtet sich dann nach der Einstellung der Option \Option{refline} (siehe +\autoref{sec:scrlttr2.firstpage}, +\autopageref{desc:scrlttr2.option.refline}). Gleichzeitig wird dann auch +\PLength{refhpos} entsprechend der Option gesetzt. Bei +\Option{refline=}\PValue{wide} wird die Geschäftszeile zentriert, wohingegen +sie bei \Option{refline=}\PValue{narrow} am Satzspiegel links ausgerichtet +wird. + +Ist \PLength{refwidth} von Null verschieden, wird die Breite der +Geschäftszeile also nicht von der Option \Option{refline} bestimmt, so gibt +\PLength{refhpos} den Abstand der Geschäftszeile von der linken Papierkante +an. Ist dieser Abstand Null, so wird die Geschäftszeile so ausgerichtet, dass +das Verhältnis zwischen ihrem Abstand von der linken Papierkante zu ihrem +Abstand von der rechten Papierkante dem Verhältnis zwischen dem Abstand des +Satzspiegels von der linken Papierkante zu seinem Abstand von der rechten +Papierkante entspricht. Bei auf dem Papier horizontal zentriertem Satzspiegel +wird also auch die Geschäftszeile zentriert. + +In der Regel werden diese Sonderfälle für die häufigsten Anwendungen von +geringem Interesse sein. Die einfachste Regel lautet hier: Entweder wird +\PLength{refwidth} auf Null belassen und die Breite und Ausrichtung der +Geschäftszeile über die Option \Option{refline} überlassen, oder sowohl +\PLength{refwidth} als auch \PLength{refhpos} werden vom Anwender vorgegeben.% +\EndIndex{PLength}{refwidth}% +\EndIndex{PLength}{refhpos}% + + +\BeginIndex{PLength}{refaftervskip}% +\begin{Declaration} + \PLength{refaftervskip} +\end{Declaration} +Diese Pseudolänge gibt den vertikalen Abstand an, der nach der Geschäftszeile +eingefügt werden soll. Der Wert wird in den vordefinierten \File{lco}-Dateien +eingestellt. Er wirkt sich unmittelbar auf die Höhe des Textbereiches der +ersten Seite aus. Der typische Wert liegt zwischen einer und zwei Zeilen.% +\EndIndex{PLength}{refaftervskip}% +% +\EndIndex{}{Geschaeftszeile=Geschäftszeile}% + + +\subsection{Schlussgruß} +\label{sec:scrlttr2-experts.closing} +\BeginIndex{}{Schlussgruss=Schlussgruß} + +Der Schlussgruß\Index{Gruss=Gruß} eines Briefes besteht aus mehreren Teilen. +Neben der Grußformel selbst gibt es noch die Unterschrift und die Signatur, +eine Art Erläuterung zur Unterschrift. + + +\BeginIndex{PLength}{sigindent}% +\BeginIndex{PLength}{sigbeforevskip}% +\begin{Declaration} + \PLength{sigindent}\\ + \PLength{sigbeforevskip} +\end{Declaration} +Grußfloskel\Index{Gruss=Gruß}\Index{Signatur} und Erläuterung der +Unterschrift\Index{Unterschrift} werden innerhalb einer Box gesetzt. Die +Breite dieser Box wird durch die längste Zeile innerhalb von Grußfloskel und +Erläuterung bestimmt. + +Die Box wird mit dem durch die Pseudolänge \PLength{sigindent} bestimmten +Einzug gesetzt. In den vordefinierten \File{lco}-Dateien ist der Einzug auf +0\Unit{mm} gesetzt. + +Zwischen Grußfloskel und Erläuterung wird ein vertikaler Abstand eingefügt, +der mit der Pseudolänge \PLength{sigbeforevskip} festgelegt ist. In den +vordefinierten \File{lco}-Dateien ist der Wert auf zwei Zeilen eingestellt. In +diese Lücke setzen Sie dann Ihre Unterschrift.% +\EndIndex{PLength}{sigindent}% +\EndIndex{PLength}{sigbeforevskip}% +% +\EndIndex{}{Schlussgruss=Schlussgruß} + + +\subsection{Briefbogenfuß} +\label{sec:scrlttr2-experts.firstFoot}% +\BeginIndex{}{Briefbogenfuss=Briefbogenfuß}% + +Die erste Seite eines Briefes, der Briefbogen, enthält nicht nur einen eigenen +Kopf, den Briefkopf. Diese Seite enthält auch einen eigenen +Fuß\Index{Fuss=Fuß}. Auch dieser wird nicht über den Seitenstil, sondern +direkt von \Macro{opening}\IndexCmd{opening} ausgegeben. + + +\BeginIndex{PLength}{firstfootvpos}% +\begin{Declaration} + \PLength{firstfootvpos} +\end{Declaration} +Diese Pseudolänge gibt den Abstand des Fußes der ersten Briefseite von der +Oberkante des Papiers an. Es wird außerdem dafür gesorgt, dass der Textbereich +nicht in den Fuß hineinragt. Hierzu wird auf der ersten Seite gegebenenfalls +die Höhe des Textbereiches mit Hilfe von \Macro{enlargethispage} +verkleinert. Mit Hilfe der Option \Option{enlargefirstpage} (siehe +\autoref{sec:scrlttr2.firstpage}, +\autopageref{desc:scrlttr2.option.enlargefirstpage}) kann dafür gesorgt +werden, dass die Höhe des Textbereiches umgekehrt gegebenenfalls auch +vergrößert wird. Damit kann dann der Abstand zwischen Textbereich und Fuß der +ersten Seite auf den Wert der Länge \Length{footskip}\IndexLength{footskip} +verringert werden. + +Bei einer Kompatibilitätseinstellung\ChangedAt{v2.9t}{\Class{scrlttr2}} bis +Version~2.9t (siehe \Option{version} in +\autoref{sec:scrlttr2.compatibilityOptions}, +\autopageref{desc:scrlttr2.option.version}) wird außer bei \Option{KOMAold} in +allen vordefinierten \File{lco}-Dateien (siehe \autoref{sec:scrlttr2.lcoFile}) +der Fuß abhängig vom Satzspiegel gesetzt. Damit hat dann auch +\Option{enlargefirstpage} keine Wirkung. Ab Version 2.9u bekommt der Fuß eine +Position am unteren Ende des Papiers. Damit ist dann die Höhe des Satzspiegels +des Briefbogens eventuell auch von der Option \Option{enlargefirstpage} +abhängig. + +Sollte der Briefbogenfuß mittels Option +\Option{firstfoot}\IndexOption{firstfoot}\ChangedAt{v2.97e}{\Class{scrlttr2}} +(siehe \autoref{sec:scrlttr2.firstpage}, +\autopageref{desc:scrlttr2.option.firstfoot}) abgeschaltet sein, so wird die +Einstellung von \PLength{firstfootvpos} ignoriert und stattdessen +\Length{paperheight}\IndexLength{paperheight} angenommen. Es bleibt damit dann +ein minimaler unterer Rand von \Length{footskip}\IndexLength{footskip}.% +\EndIndex{PLength}{firstfootvpos}% + + +\BeginIndex{PLength}{firstfootwidth}% +\begin{Declaration} + \PLength{firstfootwidth} +\end{Declaration} +Diese Pseudolänge gibt die Breite des Fußes der ersten Briefseite an. Der Wert +stimmt in den vordefinierten \File{lco}-Dateien mit \PLength{firstheadwidth} +überein.% +% +\EndIndex{PLength}{firstfootwidth}% +% +\EndIndex{}{Briefbogenfuss=Briefbogenfuß}% +% +\EndIndex{}{Pseudolängen} + + +\section{Variablen für fortgeschrittene Anwender} +\label{sec:scrlttr2-experts.variables} +\BeginIndex{}{Variablen} + +Neben der Möglichkeit, vordefinierte Variablen zu verwenden, bietet +\Class{scrlttr2} auch Anweisungen, um neue Variablen zu definieren oder deren +automatische Verwendung innerhalb der Geschäftszeile zu beeinflussen. + + +\BeginIndex{Cmd}{newkomavar}% +\BeginIndex{Cmd}{newkomavar*}% +\BeginIndex{Cmd}{addtoreffields}% +\BeginIndex{Cmd}{removereffields}% +\BeginIndex{Cmd}{defaultreffields}% +\begin{Declaration} + \Macro{newkomavar}\OParameter{Bezeichnung}\Parameter{Name}\\ + \Macro{newkomavar*}\OParameter{Bezeichnung}\Parameter{Name}\\ + \Macro{removereffields}\\ + \Macro{defaultreffields}\\ + \Macro{addtoreffields}\Parameter{Name} +\end{Declaration} +Mit \Macro{newkomavar} wird eine neue Variable definiert. Diese Variable wird +über \PName{Name} angesprochen. Optional kann eine \PName{Bezeichnung} für die +Variable \PName{Name} angegeben werden. Mit der Anweisung +\Macro{addtoreffields} kann die Variable \PName{Name} der Geschäftszeile +(siehe \autoref{sec:scrlttr2.firstpage}, +\autopageref{desc:scrlttr2.option.refline}) hinzugefügt werden. Dabei wird die +\PName{Bezeichnung} und der Inhalt der Variablen an das Ende der +Geschäftszeile angehängt, falls ihr Inhalt nicht leer ist. Die Sternvariante +\Macro{newkomavar*} entspricht der Variante ohne Stern mit anschließendem +Aufruf der Anweisung \Macro{addtoreffields}. Bei der Sternvariante wird die +Variable also automatisch zur Geschäftszeile hinzugefügt. +\begin{Example} + Angenommen, Sie benötigen in der Geschäftszeile ein zusätzliches Feld + für eine Durchwahl. Sie können das Feld dann wahlweise mit + \begin{lstcode} + \newkomavar[Durchwahl]{myphone} + \addtoreffields{myphone} + \end{lstcode} + oder kürzer mit + \begin{lstcode} + \newkomavar*[Durchwahl]{myphone} + \end{lstcode} + definieren. +\end{Example} +Im Fall, dass eine Variable für die Geschäftszeile definiert wird, sollten Sie +immer eine Bezeichnung dafür angeben. + +Mit der Anweisung \Macro{removereffields} können alle Variablen aus der +Geschäftszeile entfernt werden. Dies betrifft auch die in der Klasse +vordefinierten Variablen. Die Geschäftszeile ist dann bis auf das Datum, +das immer hinten angehängt wird, leer. Sie können dies beispielsweise nutzen, +wenn Sie die Reihenfolge der Variablen in der Geschäftszeile ändern +wollen. + +Zur Wiederherstellung der Reihenfolge der vordefinierten Variablen in der +Geschäftszeile dient \Macro{defaultreffields}. Dabei werden auch alle +selbst definierten Variablen aus der Geschäftszeile entfernt.% +% +\EndIndex{Cmd}{defaultreffields}% +\EndIndex{Cmd}{newkomavar}\EndIndex{Cmd}{newkomavar*}% +\EndIndex{Cmd}{addtoreffields}\EndIndex{Cmd}{removereffields}% + + +\BeginIndex{Cmd}{usekomavar}% +\BeginIndex{Cmd}{usekomavar*}% +\begin{Declaration} + \Macro{usekomavar}\OParameter{Anweisung}\Parameter{Name}\\ + \Macro{usekomavar*}\OParameter{Anweisung}\Parameter{Name} +\end{Declaration} +Die Anweisungen \Macro{usekomavar} und \Macro{usekomavar*} sind wie alle +Anweisungen, von denen es eine Sternvariante gibt oder die ein optionales +Argument besitzen, nicht voll expandierbar. Bei Verwendung innerhalb von +\Macro{markboth}\IndexCmd{markboth}, \Macro{markright}\IndexCmd{markright} +oder ähnlichen Anweisungen muss dennoch kein \Macro{protect}\IndexCmd{protect} +vorangestellt werden. Selbstverständlich gilt dies bei Verwendung von +\Package{scrpage2} auch für \Macro{markleft}\IndexCmd{markleft}. Allerdings +können die Anweisungen nicht innerhalb von \Macro{MakeUppercase} und ähnlichen +Anweisungen verwendet werden, die direkten Einfluss auf ihr Argument +haben. Diese Anweisungen können jedoch als optionales Argument angegeben +werden. So erhält man beispielsweise den Inhalt einer Variable in +Großbuchstaben mit: +\begin{lstcode}[escapeinside=»«] + \usekomavar[\MakeUppercase]{»\PName{Name}«} +\end{lstcode} +% +\EndIndex{Cmd}{usekomavar}% +\EndIndex{Cmd}{usekomavar*}% + + +\BeginIndex{Cmd}{ifkomavarempty}% +\BeginIndex{Cmd}{ifkomavarempty*}% +\begin{Declaration} + \Macro{ifkomavarempty}\Parameter{Name}\Parameter{Wahr}\Parameter{Falsch}\\ + \Macro{ifkomavarempty*}\Parameter{Name}\Parameter{Wahr}\Parameter{Falsch} +\end{Declaration} +Für die exakte Funktion ist wichtig, dass der Inhalt der Variablen soweit +expandiert wird, wie dies mit \Macro{edef} möglich ist. Bleiben dabei +Leerzeichen oder unexpandierbare Makros wie \Macro{relax} übrig, so gilt der +Inhalt auch dann als nicht leer, wenn die Verwendung der Variablen zu keiner +Ausgabe führen würde. + +Auch diese Anweisung kann nicht innerhalb von \Macro{MakeUppercase} oder +ähnlichen Anweisungen verwendet werden. Sie ist jedoch robust genug, um +beispielsweise als Argument von \Macro{markboth} oder \Macro{footnote} zu +funktionieren. +% +\EndIndex{Cmd}{ifkomavarempty*}% +\EndIndex{Cmd}{ifkomavarempty}% +% +\EndIndex{}{Variablen} + + +\section{\File{lco}-Dateien für fortgeschrittene Anwender} +\label{sec:scrlttr2-experts.lcoFile} +\BeginIndex{File}{lco} + +\BeginIndex{}{Papierformat>Beschraenkungen=Beschränkungen}% +Obwohl jedes von \Package{typearea} einstellbare Format verwendbar ist, kann +es bei der Ausgabe der ersten Briefseite mit manchen Formaten zu unerwünschten +Ergebnissen kommen. Das liegt aber nicht am Konzept der Klasse, sondern daran, +dass derzeit nur Parametersätze für ISO A4 existieren. Leider gibt es keine +allgemein gültigen Regeln, um die Position von Anschriftfeldern und Ähnlichem +für beliebige Papierformate zu berechnen. Es ist jedoch möglich, auch für +andere Papierformate Parametersätze zu erstellen.% +\EndIndex{}{Papierformat>Beschraenkungen=Beschränkungen}% + + +\BeginIndex{Cmd}{LetterOptionNeedsPapersize}% +\begin{Declaration} + \Macro{LetterOptionNeedsPapersize}% + \Parameter{Optionsname}\Parameter{Papiergröße} +\end{Declaration} +Derzeit existieren nur Parametersätze und \File{lco}-Dateien für +A4-Papier. Damit man bei Verwendung einer anderen +\PName{Papiergröße}\Index{Papierformat} zumindest gewarnt wird, ist in +jeder mit \KOMAScript{} ausgelieferten \File{lco}-Datei eine Anweisung +\Macro{LetterOptionNeedsPapersize} zu finden. Als erstes Argument wird +dabei der Name der \File{lco}-Datei ohne die Endung »\File{.lco}« +übergeben. Als zweites Argument wird die Papiergröße übergeben, für +die diese \File{lco}-Datei gedacht ist. + +Werden nacheinander mehrere \File{lco}-Dateien geladen, so kann jede dieser +\File{lco}-Dateien eine Anweisung \Macro{LetterOptionNeedsPapersize} +enthalten. Innerhalb von \Macro{opening}\IndexCmd{opening} wird jedoch nur auf +die jeweils letzte angegebene \PName{Papiergröße} geprüft. Wie das +nachfolgende Beispiel zeigt, ist es daher für den versierten Anwender leicht +möglich, \File{lco}-Dateien mit Parametersätzen für andere Papierformate zu +schreiben. Wer allerdings nicht vor hat, selbst solche \File{lco}-Dateien zu +schreiben, der kann die Erklärung zu dieser Anweisung gleich wieder vergessen +und auch das Beispiel überspringen. + +\begin{Example} + Nehmen wir einmal an, dass Sie A5-Papier in normaler Ausrichtung, also + hochkant oder portrait, für Ihre Briefe verwenden. Nehmen wir weiter an, + dass Sie diese in normale Fensterbriefumschläge im Format C6 stecken. Damit + wäre prinzipiell die Position des Adressfeldes die gleiche wie bei einem + normalen Brief in A4 nach DIN. Der Unterschied besteht im Wesentlichen + darin, dass das A5-Papier nur einmal gefaltet werden muss. Sie wollen + deshalb verhindern, dass die obere und die untere Faltmarke gesetzt + wird. Dies erreichen Sie beispielsweise, indem Sie die Marken außerhalb des + Papiers platzieren. + \begin{lstcode} + \ProvidesFile{a5.lco} + [2002/05/02 letter class option] + \LetterOptionNeedsPapersize{paper=a5}{a5} + \@setplength{tfoldmarkvpos}{\paperheight} + \@setplength{bfoldmarkvpos}{\paperheight} + \endinput + \end{lstcode} + Eleganter wäre es natürlich, die Marken mit Hilfe der Option + \Option{foldmarks} abzuschalten. Außerdem muss auch noch die Position des + Seitenfußes, also die Pseudolänge \PLength{firstfootvpos}, angepasst + werden. Ich überlasse es dem Leser, dafür einen geeigneten Wert zu + ermitteln. Mit einer solchen \File{lco}-Datei ist es lediglich wichtig, dass + andere \File{lco}-Dateioptionen wie \File{SN} vor dem Laden von + »\File{a5.lco}«, angegeben werden. +\end{Example} +% +\EndIndex{Cmd}{LetterOptionNeedsPapersize}% +% +\EndIndex{File}{lco}% + + +\section{Unterstützung verschiedener Sprachen} +\label{sec:scrlttr2-experts.languages}% +\BeginIndex{}{Sprachen}% +Die Klasse \Class{scrlttr2} unterstützt viele Sprachen. Dazu zählen +Deutsch (\PValue{german} für alte deutsche Rechtschreibung, +\PValue{ngerman} für neue deutsche Rechtschreibung und +\PValue{austrian} für Österreichisch), Englisch (\PValue{english} ohne +Angabe, ob amerikanisches oder britisches Englisch, \PValue{american} und +\PValue{USenglish} für Amerikanisch, \PValue{british} und +\PValue{UKenglish} für Britisch), Französisch, Italienisch, Spanisch, +Holländisch, Kroatisch und Finnisch. + +Zwischen den Sprachen wird bei Verwendung des +\Package{babel}-Paketes\IndexPackage{babel} (siehe \cite{package:babel}) mit +der Anweisung \Macro{selectlanguage}\Parameter{Sprache} gewechselt. Andere +Pakete wie \Package{german}\IndexPackage{german} (siehe \cite{package:german}) +und \Package{ngerman}\IndexPackage{ngerman} (siehe \cite{package:ngerman}) +besitzen diese Anweisung ebenfalls. In der Regel erfolgt eine +Sprachumschaltung jedoch bereits aufgrund des Ladens eines solchen Paketes. +\iftrue +Näheres entnehmen Sie bitte der jeweiligen Anleitung. +\fi + +Erlauben Sie mir noch einen Hinweis zu den Sprachumschaltpaketen. Das Paket +\Package{french}\IndexPackage{french} (siehe \cite{package:french}) nimmt +neben der Umdefinierung der Begriffe aus +\autoref{tab:scrlttr2-experts.languageTerms} weitere Änderungen vor. So +definiert es etwa die Anweisung \Macro{opening} um. Dabei geht es einfach +davon aus, dass \Macro{opening} immer wie in der Standardbriefklasse +\Class{letter} definiert ist. Dies ist bei \Class{scrlttr2} jedoch nicht der +Fall. Das Paket \Package{french} zerstört deshalb die Definition aus +\Class{scrlttr2} und arbeitet nicht korrekt mir \KOMAScript{} zusammen. Ich +betrachte dies als Fehler des Paketes \Package{french}. + +Wird das Paket \Package{babel}\IndexPackage{babel} für die +Umschaltung auf die Sprache \PValue{french} verwendet und ist gleichzeitig das +Paket \Package{french} installiert, so ergeben sich eventuell genau dieselben +Probleme, weil in diesem Fall Teile des Paketes \Package{french} verwendet +werden. +% +\iffalse + % Umbruchergänzungstext + Ist das Paket \Package{french} nicht installiert, ergibt sich das Problem + mit \Package{babel} nicht. Ebenfalls existiert das Problem normalerweise + nicht, wenn man bei \Package{babel} an Stelle der Sprache \PValue{french} + eine der Sprachen \PValue{acadian}, \PValue{canadien}, \PValue{francais} + oder \PValue{frenchb} verwendet. +\fi + +Mit Babel ab Version 3.7j tritt dieses Problem jedoch nur noch auf, wenn per +Option explizit angegeben wird, dass \Package{babel} das +\Package{french}-Paket verwenden soll. +% +\iftrue + % Umbruchoptimierungspassage + Kann nicht sicher gestellt werden, dass nicht eine alte Version von + \Package{babel} verwendet wird, so empfehle ich% + \iftrue + , mit + \begin{lstcode}[belowskip=\dp\strutbox] + \usepackage[...,frenchb,...]{babel} + \end{lstcode} + französische Sprache auszuwählen. Gegebenenfalls ist dann aber trotzdem + mit \Macro{selectlanguage}\PParameter{french} auf Französisch + umzuschalten.% + \else + \space bei \Package{babel} die Option \Option{frenchb}.% + \fi +\fi + +\iftrue + \enlargethispage*{\baselineskip}% + Es ist nicht auszuschließen, dass mit anderen Sprachen und Paketen ähnliche + Probleme auf"|treten. + \iffalse + \iftrue + Für Deutsch sind solche Probleme jedoch nicht bekannt und treten weder + mit den Paketen \Package{german}\IndexPackage{german} oder + \Package{ngerman}\IndexPackage{ngerman} noch mit \Package{babel} auf. + \else + Für Deutsch treten solche Probleme mit den Paketen + \Package{german}\IndexPackage{german}, + \Package{ngerman}\IndexPackage{ngerman} oder \Package{babel} jedoch nicht + auf. + \fi + \fi +\fi + + +\BeginIndex{Cmd}{captionsenglish}\BeginIndex{Cmd}{captionsUSenglish}% +\BeginIndex{Cmd}{captionsamerican}\BeginIndex{Cmd}{captionsbritish}% +\BeginIndex{Cmd}{captionsUKenglish}\BeginIndex{Cmd}{captionsgerman}% +\BeginIndex{Cmd}{captionsngerman}% +\BeginIndex{Cmd}{captionsaustrian}\BeginIndex{Cmd}{captionsfrench}% +\BeginIndex{Cmd}{captionsitalian}\BeginIndex{Cmd}{captionsspanish}% +\BeginIndex{Cmd}{captionsdutch}\BeginIndex{Cmd}{captionscroatian}% +\BeginIndex{Cmd}{captionsfinnish}% +\begin{Declaration} + \Macro{captionsenglish}\\ + \Macro{captionsUSenglish}\\ + \Macro{captionsamerican}\\ + \Macro{captionsbritish}\\ + \Macro{captionsUKenglish}\\ + \Macro{captionsgerman}\\ + \Macro{captionsngerman}\\ + \Macro{captionsaustrian}\\ + \Macro{captionsfrench}\\ + \Macro{captionsitalian}\\ + \Macro{captionsspanish}\\ + \Macro{captionsdutch}\\ + \Macro{captionscroatian}\\ + \Macro{captionsfinnish} +\end{Declaration} +Wird die Sprache eines Briefes gewechselt, so werden über diese Anweisungen +die Begriffe aus \autoref{tab:scrlttr2-experts.languageTerms}, +\autopageref{tab:scrlttr2-experts.languageTerms} umdefiniert. Sollte das +verwendete Sprachumschaltpaket dies nicht unterstützen, so können obige +Anweisungen notfalls auch direkt verwendet werden.% +% +\EndIndex{Cmd}{captionsenglish}\EndIndex{Cmd}{captionsUSenglish} +\EndIndex{Cmd}{captionsamerican}\EndIndex{Cmd}{captionsbritish} +\EndIndex{Cmd}{captionsUKenglish}\EndIndex{Cmd}{captionsgerman} +\EndIndex{Cmd}{captionsngerman} +\EndIndex{Cmd}{captionsaustrian}\EndIndex{Cmd}{captionsfrench} +\EndIndex{Cmd}{captionsitalian}\EndIndex{Cmd}{captionsspanish} +\EndIndex{Cmd}{captionsdutch}\EndIndex{Cmd}{captionscroatian} +\EndIndex{Cmd}{captionsfinnish}% + + +\BeginIndex{Cmd}{dateenglish}\BeginIndex{Cmd}{dateUSenglish} +\BeginIndex{Cmd}{dateamerican}\BeginIndex{Cmd}{datebritish} +\BeginIndex{Cmd}{dateUKenglish}\BeginIndex{Cmd}{dategerman} +\BeginIndex{Cmd}{datengerman} +\BeginIndex{Cmd}{dateaustrian}\BeginIndex{Cmd}{datefrench} +\BeginIndex{Cmd}{dateitalian}\BeginIndex{Cmd}{datespanish} +\BeginIndex{Cmd}{datedutch}\BeginIndex{Cmd}{datecroatian}% +\BeginIndex{Cmd}{datefinnish}% +\begin{Declaration} + \Macro{dateenglish}\\ + \Macro{dateUSenglish}\\ + \Macro{dateamerican}\\ + \Macro{datebritish}\\ + \Macro{dateUKenglish}\\ + \Macro{dategerman}\\ + \Macro{datengerman}\\ + \Macro{dateaustrian}\\ + \Macro{datefrench}\\ + \Macro{dateitalian}\\ + \Macro{datespanish}\\ + \Macro{datedutch}\\ + \Macro{datecroatian}\\ + \Macro{datefinnish} +\end{Declaration} +Je nach verwendeter Sprache werden auch die Datumsangaben\Index{Datum} des +nummerischen Datums (siehe Option \Option{numericaldate} in +\autoref{sec:scrlttr2.firstpage}, +\autopageref{desc:scrlttr2.option.numericaldate}) in unterschiedlicher Form +umgesetzt. Die genauen Angaben können der \autoref{tab:date} entnommen +werden.% +% +\begin{table} + \centering + \caption{Sprachabhängige Ausgabeformate für das Datum} + \begin{tabular}{ll} + \toprule + Anweisung & Ausgabebeispiel \\ + \midrule + \Macro{dateenglish} & 1/12/1993\\ + \Macro{dateUSenglish} & 12/1/1993\\ + \Macro{dateamerican} & 12/1/1993\\ + \Macro{datebritish} & 1/12/1993\\ + \Macro{dateUKenglish} & 1/12/1993\\ + \Macro{dategerman} & 1.\,12.\,1993\\ + \Macro{datengerman} & 1.\,12.\,1993\\ + \Macro{dateaustrian} & 1.\,12.\,1993\\ + \Macro{datefrench} & 1.\,12.\,1993\\ + \Macro{dateitalian} & 1.\,12.\,1993\\ + \Macro{datespanish} & 1.\,12.\,1993\\ + \Macro{datedutch} & 1.\,12.\,1993\\ + \Macro{datecroatian} & 1.\,12.\,1993.\\ + \Macro{datefinnish } & 1.12.1993.\\ + \bottomrule + \end{tabular} + \label{tab:date} +\end{table} +% +\EndIndex{Cmd}{dateenglish}\EndIndex{Cmd}{dateUSenglish}% +\EndIndex{Cmd}{dateamerican}\EndIndex{Cmd}{datebritish}% +\EndIndex{Cmd}{dateUKenglish}\EndIndex{Cmd}{dategerman}% +\EndIndex{Cmd}{datengerman}% +\EndIndex{Cmd}{dateaustrian}\EndIndex{Cmd}{datefrench}% +\EndIndex{Cmd}{dateitalian}\EndIndex{Cmd}{datespanish}% +\EndIndex{Cmd}{datedutch}\EndIndex{Cmd}{datecroatian}% +\EndIndex{Cmd}{datefinnish}% + + +\BeginIndex{Cmd}{yourrefname}\BeginIndex{Cmd}{yourmailname}% +\BeginIndex{Cmd}{myrefname}% +\BeginIndex{Cmd}{customername}\BeginIndex{Cmd}{invoicename}% +\BeginIndex{Cmd}{subjectname}% +\BeginIndex{Cmd}{ccname}\BeginIndex{Cmd}{enclname}% +\BeginIndex{Cmd}{headtoname}\BeginIndex{Cmd}{headfromname}% +\BeginIndex{Cmd}{datename}\BeginIndex{Cmd}{pagename}% +\BeginIndex{Cmd}{phonename}\BeginIndex{Cmd}{faxname}% +\BeginIndex{Cmd}{emailname}\BeginIndex{Cmd}{wwwname}% +\BeginIndex{Cmd}{bankname}% +\begin{Declaration} + \Macro{yourrefname}\\ + \Macro{yourmailname}\\ + \Macro{myrefname}\\ + \Macro{customername}\\ + \Macro{invoicename}\\ + \Macro{subjectname}\\ + \Macro{ccname}\\ + \Macro{enclname}\\ + \Macro{headtoname}\\ + \Macro{headfromname}\\ + \Macro{datename}\\ + \Macro{pagename}\\ + \Macro{phonename}\\ + \Macro{faxname}\\ + \Macro{emailname}\\ + \Macro{wwwname}\\ + \Macro{bankname} +\end{Declaration} +Die aufgeführten Anweisungen enthalten die jeweiligen sprachtypischen +Begriffe. Diese können für die Realisierung einer weiteren Sprache oder aber +auch zur eigenen freien Gestaltung angepasst werden. Wie dies geht, wird in +\autoref{sec:scrbase.languageSupport} erklärt. Von \Class{scrlttr2} +werden die Begriffe erst nach der Präambel, also bei +\Macro{begin}\PParameter{document} gesetzt. Sie sind daher vorher nicht +verfügbar und können vorher auch nicht geändert werden. In +\autoref{tab:scrlttr2-experts.languageTerms} sind die Voreinstellungen für +\Option{english} und \Option{ngerman} zu finden.% +% +\begin{table} + \begin{minipage}{\textwidth} + \centering + \caption[Voreinstellungen für die sprachabhängigen + Begriffe]{Voreinstellungen für die sprachabhängigen Begriffe bei + Verwendung der Sprachen \Option{english} und \Option{ngerman} + soweit nicht durch die Pakete zur Sprachumschaltung bereits + definiert} + \label{tab:scrlttr2-experts.languageTerms} + \begin{tabular}{lll} + \toprule + Anweisung & \Option{english} & \Option{ngerman} \\ + \midrule + \Macro{bankname} & Bank account & Bankverbindung \\ + \Macro{ccname}\footnotemark[1] & cc & Kopien an \\ + \Macro{customername} & Customer no. & Kundennummer \\ + \Macro{datename} & Date & Datum \\ + \Macro{emailname} & Email & E-Mail \\ + \Macro{enclname}\footnotemark[1] & encl & Anlagen \\ + \Macro{faxname} & Fax & Fax \\ + \Macro{headfromname} & From & Von \\ + \Macro{headtoname}\footnotemark[1] & To & An \\ + \Macro{invoicename} & Invoice no. & Rechnungsnummer \\ + \Macro{myrefname} & Our ref. & Unser Zeichen \\ + \Macro{pagename}\footnotemark[1] & Page & Seite \\ + \Macro{phonename} & Phone & Telefon \\ + \Macro{subjectname} & Subject & Betrifft \\ + \Macro{wwwname} & Url & URL \\ + \Macro{yourmailname} & Your letter of & Ihr Schreiben vom\\ + \Macro{yourrefname} & Your ref. & Ihr Zeichen \\ + \bottomrule + \end{tabular} + \deffootnote{1em}{1em}{\textsuperscript{1}}% brutal aber effektiv + \footnotetext[1000]{Diese Begriffe werden normalerweise bereits von + Sprachpaketen wie \Package{babel} definiert und dann von \Class{scrlttr2} + nicht überschrieben. Abweichungen im Wortlaut sind daher möglich und der + Anleitung des verwendeten Sprachpakets zu entnehmen.} + \end{minipage} +\end{table} +% +\EndIndex{Cmd}{yourrefname}\EndIndex{Cmd}{yourmailname}% +\EndIndex{Cmd}{myrefname}% +\EndIndex{Cmd}{customername}\EndIndex{Cmd}{invoicename}% +\EndIndex{Cmd}{subjectname}% +\EndIndex{Cmd}{ccname}\EndIndex{Cmd}{enclname}% +\EndIndex{Cmd}{headtoname}\EndIndex{Cmd}{headfromname}% +\EndIndex{Cmd}{datename}\EndIndex{Cmd}{pagename}% +\EndIndex{Cmd}{phonename}\EndIndex{Cmd}{faxname}% +\EndIndex{Cmd}{emailname}\EndIndex{Cmd}{wwwname}% +\EndIndex{Cmd}{bankname}% +% +\EndIndex{}{Sprachen}% + + +\section{Von der obsoleten \Class{scrlettr} zur +aktuellen \Class{scrlttr2}} +\label{sec:scrlttr2-experts.fromscrlettr} +\BeginIndex{Class}{scrlettr} + +Die alte Briefklasse \Class{scrlettr} ist obsolet. Sie sollte für neue Briefe +besser nicht mehr verwendet werden. Sie wird nicht mehr weiterentwickelt und +es findet daher auch nur noch sehr eingeschränkter Support dafür statt. Wer +dennoch unbedingt die Anleitung zur alten Briefklasse benötigt, kann diese in +\File{scrlettr.dtx} finden. Am besten führt man dazu einige \LaTeX-Läufe mit +jener Datei durch, also beispielsweise: +\begin{lstoutput}[belowskip=\dp\strutbox,morekeywords={latex}] + latex scrlettr.dtx + latex scrlettr.dtx + latex scrlettr.dtx +\end{lstoutput} +Man erhält so die Datei \File{scrlettr.dvi} mit der Anleitung. + +Um den Umstieg von der alten auf die neue Klasse zu erleichtern, existiert mit +\Option{KOMAold} eine Kompatibilitätseinstellung. Grundsätzlich ist in der +neuen Klasse die gesamte alte Funktionalität enthalten. Ohne \Option{KOMAold} +ist jedoch die Benutzerschnittstelle eine andere und auch die Voreinstellungen +stimmen nicht überein. Näheres dazu ist \autoref{sec:scrlttr2.lcoFile}, +\autoref{tab:lcoFiles} zu entnehmen. + +\LoadNonFree{scrlttr2-experts}{0} + +\EndIndex{Class}{scrlettr}% + +\endinput + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "guide.tex" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2.tex new file mode 100644 index 00000000000..820bd9ac9d3 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2.tex @@ -0,0 +1,2874 @@ +% ====================================================================== +% scrlttr2.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% scrlttr2.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Chapter about scrlttr2 of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Kapitel über scrlttr2 in der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\ProvidesFile{scrlttr2.tex}[2008/08/12 KOMA-Script guide (chapter: scrlttr2)] + +\chapter{Die neue Briefklasse \Class{scrlttr2}} +\labelbase{scrlttr2} + +\BeginIndex{Class}{scrlttr2}\BeginIndex{}{Briefe}% +Seit der Ausgabe vom Juni 2002 beinhaltet \KOMAScript{} eine komplett +neue Briefklasse\ChangedAt{v2.8q}{\Class{scrlttr2}}. Obwohl einige +Teile davon mit den Klassen aus \autoref{cha:maincls} +übereinstimmen, sind Briefe doch etwas ganz anderes als Artikel, +Berichte, Bücher oder Ähnliches. Schon allein deshalb gibt es für die +Briefklasse ein eigenes Kapitel. Aber auch aus einem anderen Grund ist +ein eigenes Kapitel für \Class{scrlttr2} gerechtfertigt. Die Klasse +wurde von Grund auf neu entwickelt. Sie hat daher auch ein komplett +anderes Bedienkonzept als alle anderen mir bekannten Klassen. Die neue +Art der Bedienung ist möglicherweise etwas ungewohnt, bietet jedoch +nicht nur dem geübten Anwender einige Vorteile. + + +\section{Variablen} +\label{sec:scrlttr2.variables}% +\BeginIndex{}{Variablen}% + +Neben Optionen, Anweisungen (oder Befehlen), Umgebungen, Zählern und Längen +wurden in \autoref{cha:maincls} für \KOMAScript{} bereits zusätzlich Elemente +eingeführt. Eine typische Eigenschaft eines Elements ist seine Schriftart und +die Möglichkeit, diese zu ändern (siehe \autoref{sec:scrlttr2.textmarkup}, +\autopageref{desc:scrlttr2.cmd.setkomafont}). An dieser Stelle werden nun +zusätzlich Variablen eingeführt. Variablen haben einen +Namen\Index{Variablen>Name}, über den sie angesprochen werden und einen +Inhalt\Index{Variablen>Inhalt}. Der Inhalt einer Variablen kann zeitlich +bzw. räumlich getrennt von ihrer Verwendung gesetzt werden, so wie der Inhalt +einer Anweisung getrennt von ihrer Ausführung definiert werden kann. Ein +Hauptunterschied einer Variablen zu einer Anweisung besteht darin, dass eine +Anweisung normalerweise eine Aktion auslöst, während der Inhalt einer +Variablen normalerweise aus einem Text besteht, der dann von einer Anweisung +ausgegeben wird. Außerdem kann eine Variable zusätzlich eine +Bezeichnung\Index{Variablen>Bezeichnung} besitzen, die ebenfalls gesetzt und +ausgegeben werden kann. + +Dieser Abschnitt beschränkt sich bewusst auf die Einführung des Begriffs der +Variablen. Die zur Verdeutlichung verwendeten Beispiele sind ohne tiefere +Bedeutung. Konkretere Anwendungsbeispiele gibt es bei der Erläuterung der in +der Briefklasse bereits definierten und von ihr verwendeten Variablen in den +nachfolgenden Abschnitten. \autoref{tab:scrlttr2.variables} gibt eine +Übersicht über alle in \Class{scrlttr2} definierten Variablen. + +\begin{desctable} + \caption{Von der Klasse \Class{scrlttr2} unterstützte + Variablen\label{tab:scrlttr2.variables}}\\ + \Endfirsthead + \caption[]{Von der Klasse \Class{scrlttr2} unterstützte Variablen + (\emph{Fortsetzung})}\\ + \Endhead% + \standardfoot% + \ventry{backaddress}{Rücksendeadresse für Fensterbriefumschläge + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.backaddress})}% + \ventry{backaddressseparator}{Trennzeichen innerhalb der Rücksendeadresse + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.backaddressseparator})}% + \ventry{ccseparator}{Trennzeichen zwischen Verteilertitel und Verteiler + (\autoref{sec:scrlttr2.document}, + \autopageref{desc:scrlttr2.variable.ccseparator})}% + \ventry{customer}{Geschäftszeilenfeld »Kundennummer« + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.customer})}% + \ventry{date}{Datum + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.date})}% + \ventry{emailseparator}{Trennzeichen zwischen E-Mail-Bezeichner und + E-Mail-Adresse + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.emailseparator})}% + \ventry{enclseparator}{Trennzeichen zwischen Anlagetitel und Anlagen + (\autoref{sec:scrlttr2.document}, + \autopageref{desc:scrlttr2.variable.enclseparator})}% + \ventry{faxseparator}{Trennzeichen zwischen Faxbezeichner und Faxnummer + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.faxseparator})}% + \ventry{fromaddress}{Absenderadresse ohne Absendername + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.fromaddress})}% + \ventry{frombank}{Bankverbindung des Absenders + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.frombank})}% + \ventry{fromemail}{E-Mail-Adresse des Absenders + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.fromemail})}% + \ventry{fromfax}{Faxnummer des Absenders + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.fromfax})}% + \ventry{fromlogo}{Anweisungen zum Setzen des Absenderlogos + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.fromlogo})}% + \ventry{fromname}{vollständiger Absendername + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.fromname})}% + \ventry{fromphone}{Telefonnummer des Absenders + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.fromphone})}% + \ventry{fromurl}{eine URL des Absenders + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.fromurl})}% + \ventry{invoice}{Geschäftszeilenfeld »Rechnungsnummer« + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.invoice})}% + \ventry{location}{erweiterte Absenderangabe + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.location})}% + \ventry{myref}{Geschäftszeilenfeld »Mein Zeichen« + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.myref})}% + \ventry{phoneseparator}{Trennzeichen zwischen Telefonbezeichner und + Telefonnummer + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.phoneseparator})}% + \ventry{place}{Ort + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.place})}% + \ventry{placeseparator}{Trennzeichen zwischen Ort und Datum + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.placeseparator})}% + \ventry{signature}{Signatur unter Unterschrift und Grußformel + (\autoref{sec:scrlttr2.closing}, + \autopageref{desc:scrlttr2.variable.signature})}% + \ventry{specialmail}{Versandart + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.specialmail})}% + \ventry{subject}{Betreff + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.subject})}% + \ventry{subjectseparator}{Trennzeichen zwischen Betreff"|titel und Betreff + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.subjectseparator})}% + \ventry{title}{Brief"|titel + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.title})}% + \ventry{toaddress}{Empfängeradresse ohne Empfängername + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.toaddress})}% + \ventry{toname}{vollständiger Empfängername + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.toname})}% + \ventry{yourmail}{Geschäftszeilenfeld »Ihr Schreiben« + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.yourmail})}% + \ventry{yourref}{Geschäftszeilenfeld »Ihr Zeichen« + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.yourref})}% +\end{desctable} + + +\begin{Declaration} + \Macro{setkomavar}% + \Parameter{Name}\OParameter{Bezeichnung}\Parameter{Inhalt}\\ + \Macro{setkomavar*}\Parameter{Name}\Parameter{Bezeichnung} +\end{Declaration} +\BeginIndex{Cmd}{setkomavar}% +\BeginIndex{Cmd}{setkomavar*}% +Mit der Anweisung \Macro{setkomavar} wird der \PName{Inhalt} der Variablen +\PName{Name} gesetzt. Dabei kann per optionalem Argument gleichzeitig auch die +\PName{Bezeichnung} der Variablen geändert werden. Demgegenüber kann mit der +Sternvariante \Macro{setkomavar*} auch nur die \PName{Bezeichnung} der +Variablen \PName{Name} gesetzt werden. +\begin{Example} + In Briefen ist es üblich, den Absender im Briefkopf stehen zu haben. Dazu + muss \Class{scrlttr2} den Absender aber erst einmal mit Namen kennen. Für + »Peter Mustermann« ginge das einfach mit: +\begin{lstcode} + \setkomavar{fromname}{Peter Mustermann} +\end{lstcode} + Die voreingestellte Bezeichnung für den Namen des Absenders ist + »Von«. Angenommen, Herr Musterfrau will aber an den Stellen, an denen + \Class{scrlttr2} diese Bezeichnung verwendet, lieber »Absender« haben, so + müsste er zusätzlich +\begin{lstcode} + \setkomavar*{fromname}{Absender} +\end{lstcode} + setzen oder aber die beiden Angaben zu einer Anweisung zusammenfassen: +\begin{lstcode} + \setkomavar{fromname}[Absender]{Peter Mustermann} +\end{lstcode} + Damit schlägt er sozusagen zwei Fliegen mit einer Klappe. +\end{Example} +Übrigens kann mit einem leeren obligatorischen Argument \PName{Inhalt} +der Inhalt der Variable gelöscht werden. Selbstverständlich kann in +gleicher Weise mit einem leeren Argument \PName{Bezeichnung} auch die +Bezeichnung der Variablen gelöscht werden. +\begin{Example} + Angenommen, Herr Musterfrau will gar keine Bezeichnung für den Namen des + Absenders haben. Dann könnte er diese entweder für sich mit: +\begin{lstcode} + \setkomavar*{fromname}{} +\end{lstcode} + löschen. Er könnte aber auch wieder zwei Fliegen mit einer Klappe + schlagen und +\begin{lstcode} + \setkomavar{fromname}[]{Peter Mustermann} +\end{lstcode} + verwenden. Dadurch wird gleichzeitig der Inhalt der Variablen gesetzt und + ihre Bezeichnung gelöscht. +\end{Example} +% +\EndIndex{Cmd}{setkomavar}% +\EndIndex{Cmd}{setkomavar*}% + + +\begin{Declaration} + \Macro{usekomavar}\OParameter{Anweisung}\Parameter{Name}\\ + \Macro{usekomavar*}\OParameter{Anweisung}\Parameter{Name} +\end{Declaration} +\BeginIndex{Cmd}{usekomavar}% +\BeginIndex{Cmd}{usekomavar*}% +In\ChangedAt{v2.9i}{\Class{scrlttr2}} manchen Fällen wird es notwendig sein, +selbst auf den Inhalt oder die Bezeichnung einer Variablen zuzugreifen, dies +also nicht allein der Klasse zu überlassen. Das gilt insbesondere dann, wenn +Sie eigene Variablen definiert haben, die nicht zur Geschäftszeile +hinzugefügt werden. Mit der Anweisung \Macro{usekomavar} können Sie auf den +Inhalt der Variablen \PName{Name} zugreifen, während Sie mit der Sternvariante +\Macro{usekomavar*} ihre Bezeichnung erhalten. Näheres zur Definition eigener +Variablen ist \autoref{sec:scrlttr2-experts.variables}, +\autopageref{desc:scrlttr2-experts.cmd.newkomavar} zu entnehmen.% +\EndIndex{Cmd}{usekomavar}% +\EndIndex{Cmd}{usekomavar*}% + + +\begin{Declaration} + \Macro{ifkomavarempty}\Parameter{Name}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}\\ + \Macro{ifkomavarempty*}\Parameter{Name}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifkomavarempty}% +\BeginIndex{Cmd}{ifkomavarempty*}% +Mit\ChangedAt{v2.9i}{\Class{scrlttr2}} Hilfe dieser Anweisungen kann man +feststellen, ob der Inhalt oder die Bezeichnung einer Variablen leer +ist oder nicht. Der \PName{Dann-Teil} wird nur dann ausgeführt, +wenn der expandierte Inhalt oder die expandierte Bezeichnung der +Variablen \PName{Name} leer ist. Anderenfalls wird der +\PName{Sonst-Teil} ausgeführt. Die Sternvariante der Anweisung +bezieht sich dabei auf die Bezeichnung der Variablen, während die +normale Variante den Inhalt behandelt.% +\EndIndex{Cmd}{ifkomavarempty*}% +\EndIndex{Cmd}{ifkomavarempty}% +% +\EndIndex{}{Variablen} + + +\section{Pseudolängen} +\label{sec:scrlttr2.pseudoLength} +\BeginIndex{}{Pseudolängen} + +Längen werden bei \LaTeX{} mit den Anweisungen \Macro{newlength}, +\Macro{setlength}, \Macro{addtolength} und \Macro{the}\PName{Länge} +verarbeitet. Sehr viele Pakete nutzen aber auch Makros, also Anweisungen, um +Längen zu speichern. \KOMAScript{} erweitert dieses Verfahren um die +Möglichkeit, solche in Makros gespeicherten Längen mit ähnlichen Anweisungen +zu verarbeiten wie echte Längen. Diese eigentlich in Makros abgelegten Längen +heißen bei \KOMAScript{} daher Pseudolängen. + +Eine Liste aller in \Class{scrlttr2} definierten Pseudolängen findet sich in +\autoref{tab:scrlttr2-experts.pseudoLengths}, +\autopageref{tab:scrlttr2-experts.pseudoLengths}. Eine grafische Darstellung +der Bedeutungen der wichtigsten Pseudolängen des Briefbogens ist +\autoref{fig:scrlttr2-experts.pseudoLengths}, +\autopageref{fig:scrlttr2-experts.pseudoLengths} zu entnehmen. Die verwendeten +Maße sind dabei an die Voreinstellungen von \Class{scrlttr2} angelehnt. Nähere +Beschreibungen zu den einzelnen Pseudolängen finden sich in den einzelnen +Abschnitten dieses Kapitels. + +Da der Anwender normalerweise keine eigenen Pseudolängen definieren muss, wird +dieser Teil nicht hier, sondern im Expertenteil in +\autoref{sec:scrlttr2-experts.pseudoLengths}, +\autopageref{desc:scrlttr2-experts.cmd.@newplength} behandelt. Ebenso ist das +Setzen von Pseudolängen eher dem fortgeschrittenen Anwender vorbehalten. Also +wird auch dies im Abschnitt für Experten ab +\autopageref{desc:scrlttr2-experts.cmd.@setplength} erklärt. + + +\begin{Declaration} + \Macro{useplength}\Parameter{Name} +\end{Declaration} +\BeginIndex{Cmd}{useplength}% +Mit Hilfe dieser Anweisung wird auf den Wert der Pseudolänge mit dem +angegebenen \PName{Namen} zugegriffen. Dies ist eine der wenigen +Benutzeranweisung rund um Pseudolängen. Natürlich kann diese Anweisung dennoch +auch innerhalb einer \File{lco}-Datei (siehe \autoref{sec:scrlttr2.lcoFile} ab +\autopageref{sec:scrlttr2.lcoFile}) verwendet werden.% +% +\EndIndex{Cmd}{useplength}% + + +\begin{Declaration} + \Macro{setlengthtoplength}% + \OParameter{Faktor}\Parameter{Länge}\Parameter{Pseudolänge}\\ + \Macro{addtolengthplength}% + \OParameter{Faktor}\Parameter{Länge}\Parameter{Pseudolänge} +\end{Declaration} +\BeginIndex{Cmd}{setlengthtoplength}% +\BeginIndex{Cmd}{addtolengthplength}% +\begin{Explain}% + Während man einer Länge einfach einen Faktor voranstellen kann, ist + dies bei Pseudolängen nicht möglich. Angenommen, eine Länge + \Macro{Test} hat den Wert 2\Unit{pt}, dann ergibt + \texttt{3\Macro{Test}} den Wert 6\Unit{pt}. Verwendet man + stattdessen eine Pseudolänge, so würde aus + \texttt{3\Macro{useplength}\PParameter{Test}} der Wert 32\Unit{pt}. + Dies ist insbesondere dann lästig, wenn man einer echten + \PName{Länge} den Wert einer \PName{Pseudolänge} zuweisen will. +\end{Explain} +Mit der Anweisung \Macro{setlengthtoplength} kann man einer echten +\PName{Länge} das Vielfache einer \PName{Pseudolänge} zuweisen. +Allerdings wird hier ein \PName{Faktor} nicht direkt der +\PName{Pseudolänge} vorangestellt, sondern als optionales Argument +übergeben. Man sollte diese Anweisung auch verwenden, wenn man einer +\PName{Länge} den negativen Wert einer \PName{Pseudolänge} zuweisen +will. Als \PName{Faktor} kann dann wahlweise ein Minuszeichen oder +\PValue{-1} verwendet werden. Die Anweisung +\Macro{addtolengthplength} arbeitet ganz ähnlich. Allerdings wird +hier zur \PName{Länge} das Vielfache der \PName{Pseudolänge} +addiert.% +% +\EndIndex{Cmd}{setlengthtoplength}% +\EndIndex{Cmd}{addtolengthplength}% +% +\EndIndex{}{Pseudolängen}% + +\LoadCommon[scrlttr]{0} % \section{Frühe oder späte Optionenwahl} + +\LoadCommon[scrlttr]{1} % \section{Kompatibilität zu früheren Versionen von \KOMAScript} + +\LoadCommon[scrlttr]{2} % \section{Entwurfsmodus} + +\LoadCommon[scrlttr]{3} % \section{Seitenauf"|teilung} + +Die Unterscheidung zwischen ein- und doppelseitigem Satz ist bei Briefen +jedoch in der Regel nicht sinnvoll. Da Briefe normalerweise nicht gebunden +werden, betrachtet man bei Briefen jede Seite für sich. Das gilt auch dann, +wenn ausnahmsweise Vorder- oder Rückseite bedruckt werden. Daher spielt bei +Briefen normalerweise auch der vertikale Ausgleich keine Rolle. Sollten Sie +diesen trotzdem benötigen oder wissen wollen, was das ist, sei auf die in +\autoref{sec:maincls.typearea}, \autopageref{desc:maincls.cmd.flushbottom} +erklärten Anweisungen \Macro{raggedbottom} und \Macro{flushbottom} verwiesen.% +% +\EndIndex{}{Seitenaufteilung=Seitenauf~"~|teilung} + + +\section{Genereller Aufbau eines Briefdokuments} +\label{sec:scrlttr2.document} +\BeginIndex{}{Brief>Aufbau} + +Der generelle Aufbau eines Briefdokuments weicht etwas vom Aufbau eines +normalen Dokuments ab. Während ein Buchdokument normalerweise nur ein Buch +enthält, kann ein einzelnes Briefdokument mehrere Briefe enthalten. Wie in +\autoref{fig:scrlttr2.document} veranschaulicht wird, besteht ein +Briefdokument aus einem Vorspann, den einzelnen Briefen und dem Abschluss. + +\begin{figure} + \centering\small\setlength{\fboxsep}{1.5ex} + \fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{documentclass}\OParameter{\dots}\PParameter{scrlttr2}\\ + \dots\\ + {\centering\emph{Einstellungen für alle Briefe}\\} + \dots\\ + \Macro{begin}\PParameter{document}\\ + \dots\\ + {\centering\emph{Einstellungen für alle Briefe}\\} + \dots\\ + }}\\ + \fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{begin}\PParameter{letter}\Parameter{Empfänger}\\ + \dots\\ + {\centering\emph{Inhalt eines einzelnen Briefes}\\} + \dots\\ + \Macro{end}\PParameter{letter}\\ + }}\\[2pt] + \parbox{.667\linewidth}{\raggedright\vspace{-.5ex}\vdots\vspace{1ex}}\\ + \fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{end}\PParameter{document}\\ + }}\\[\dp\strutbox] + \caption[Genereller Aufbau eines Briefdokuments mit beliebig vielen + einzelnen Briefen]{Genereller Aufbau eines Briefdokuments mit + beliebig vielen einzelnen Briefen (den Aufbau eines einzelnen + Briefes zeigt \autoref{fig:scrlttr2.letter})} + \label{fig:scrlttr2.document} +\end{figure} + +Der Vorspann beinhaltet dabei alle Einstellungen, die generell alle Briefe +betreffen. Diese können in den Einstellungen der einzelnen Briefe jedoch +zumindest teilweise überschrieben werden. Die einzige Einstellung, die derzeit +nicht innerhalb eines einzelnen Briefes überschrieben werden kann, ist die +Version von \Class{scrlttr2}, zu der Kompatibilität erreicht werden soll (siehe +Option \Option{version} in \autoref{sec:scrlttr2.compatibilityOptions}, +\autopageref{desc:scrlttr2.option.version}). + +Ich empfehle, vor \Macro{begin}\PParameter{document} nur allgemeine +Einstellungen wie das Laden von Paketen und das Setzen von Optionen +vorzunehmen. Alle Einstellungen, die das Setzen einer Variablen oder sonstige +Textangaben beinhalten, sollten nach \Macro{begin}\PParameter{document} +vorgenommen werden. Dies empfiehlt sich umso mehr, wenn das +Babel-Paket\IndexPackage{babel} (siehe \cite{package:babel}) verwendet wird +oder sprachabhängige Variablen von \Class{scrlttr2} verändert werden sollen. + +Der Abschluss besteht in der Regel nur aus +\Macro{end}\PParameter{document}. Natürlich können Sie dort aber auch +zusätzliche Kommentare einfügen. + +\begin{figure} + \centering\small + \fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{begin}\PParameter{letter}% + \OParameter{Optionen}\Parameter{Empfänger}\\ + \dots\\[\dp\strutbox] + {\centering\emph{Einstellungen für diesen Brief}\\} + \dots\\ + \Macro{opening}\Parameter{Anrede}\\ + }}\\[1pt] + \fbox{\parbox{.667\linewidth}{\raggedright% + \dots\\[\dp\strutbox] + {\centering\emph{Brief"|text}\\} + \dots\\ + }}\\[1pt] + \fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{closing}\Parameter{Grußformel}\\ + \Macro{ps}\\ + \dots\\[\dp\strutbox] + {\centering\emph{Postscriptum}\\} + \dots\\ + \Macro{encl}\Parameter{Anlagen}\\ + \Macro{cc}\Parameter{Verteiler}\\ + \Macro{end}\PParameter{letter}\\ + }}\\[\dp\strutbox] + \caption[Genereller Aufbau eines einzelnen Briefes innerhalb eines + Briefdokuments]{Genereller Aufbau eines einzelnen Briefes + innerhalb eines Briefdokuments (siehe + \autoref{fig:scrlttr2.document})} + \label{fig:scrlttr2.letter} +\end{figure} + +Wie in \autoref{fig:scrlttr2.letter} verdeutlicht wird, bestehen die einzelnen +Briefe wiederum aus einer Einleitung, dem eigentlichen Brief"|text und einem +Schlussteil. In der Einleitung werden alle Einstellungen vorgenommen, die nur +für diesen einen Brief gelten sollen. Entscheidend ist hierbei, dass diese +Einleitung immer mit \Macro{opening}\IndexCmd{opening} endet. Ebenso beginnt +der Schlussteil immer mit \Macro{closing}\IndexCmd{closing}. Gegebenenfalls +können die Argumente \PName{Anrede} und \PName{Grußformel} der beiden +Anweisungen leer bleiben, die Anweisungen müssen jedoch gesetzt werden und +haben immer ein Argument. + +Es soll an dieser Stelle nicht verschwiegen werden, dass zwischen den +einzelnen Briefen weitere Einstellungen getroffen werden können. Diese +gelten dann für alle nachfolgenden Briefe. Um Briefdokumente +übersichtlich und wartbar zu halten, sollte man sich jedoch gut +überlegen, ob man zwischen die Briefe tatsächlich weitere generelle +Einstellungen mit beschränkter Gültigkeit setzen will. Ich kann dies +nicht empfehlen% +\iffalse +% Umbruchergänzungstext +, da die Suche nach Einstellungen dadurch erschwert wird% +\fi +% +. + + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{letter}}% + \OParameter{Optionen}\Parameter{Empfänger}\\ + \quad\dots\\ + \XMacro{end}\PParameter{letter} +\end{Declaration} +\BeginIndex{Env}{letter}% +Die Briefumgebung \Environment{letter} ist einer der zentralen Dreh- und +Angelpunkte der Briefklasse. Als Besonderheit kann man bei \Class{scrlttr2} +der Briefumgebung zusätzliche \PName{Optionen} mit auf den Weg geben. Diese +werden dann intern per \Macro{KOMAoptions}-Anweisung ausgeführt. + +Der \PName{Empfänger} wird als obligatorischer Parameter an die Umgebung +übergeben. Dabei dient der doppelte Backslash als Trennzeichen zwischen +einzelnen Teilen der Anschrift. Diese einzelnen Teile werden im +Anschriftfeld als einzelne Zeilen ausgegeben. Dennoch sollte der doppelte +Backslash hier nicht als fester Zeilenumbruch verstanden werden. Absätze, +vertikaler Leerraum und Ähnliches sind in der Anschrift nicht erlaubt. Sie +können zu unerwarteten Effekten und Fehlermeldungen führen. Dies ist übrigens +bei der Standardbriefklasse genauso. + +\iffree{}{\clearpage}% Umbruchkorrektur (ebenso im Beispielcode das Argument) +\begin{Example} + \phantomsection\label{desc:scrlttr2.env.letter.example}% + Angenommen, jemand wollte einen Brief an Petra Mustermann schreiben. + Ein minimalistisches Briefdokument dafür würde so aussehen: + \begin{lstcode} + \documentclass[version=last]{scrlttr2} + \usepackage[ngerman]{babel} + \begin{document} + \begin{letter}{Petra Mustermann\\ + Vor dem Berg 1\\ + 12345 Musterhausen} + \end{letter} + \end{document} + \end{lstcode} + Allerdings würde dabei noch keinerlei Ausgabe entstehen. Es würde noch nicht + einmal die Anschrift auf dem Briefbogen ausgegeben. Warum das so ist, + erfahren Sie bei der Erklärung zur Anweisung \Macro{opening} auf + \autopageref{desc:scrlttr2.cmd.opening}. +\end{Example} +% +\EndIndex{Env}{letter}% + + +\begin{Declaration} + \Macro{AtBeginLetter}\Parameter{Anweisungen} +\end{Declaration} +\BeginIndex{Cmd}{AtBeginLetter}% +Wie in \cite{latex:clsguide} erwähnt, gibt es bei \LaTeX{} die Möglichkeit, zu +bestimmten Gelegenheiten während des \LaTeX-Laufs eines Dokuments zusätzliche +\PName{Anweisungen} ausführen zu lassen. Diesem Zweck dienen beispielsweise +die Anweisungen \Macro{AtBeginDocument} und \Macro{AtEndOfClass}. Man nennt +solche Eingriffspunkte auch \emph{hooks}\Index{hook=\emph{hook}}, also +Haken\Index{Haken}. Die Klasse \Class{scrlttr2} fügt einen weiteren Haken +hinzu, der mit \Macro{AtBeginLetter} mit Fleisch versehen werden kann. Wie man +schon daran erkennt, dass Anweisungen für die Haken nicht in +\cite{latex:usrguide} sondern in \cite{latex:clsguide} dokumentiert sind, sind +diese Anweisungen eigentlich eher für Paket- und Klassenautoren gedacht. Bei +der Briefklasse kann es jedoch eine sinnvolle Anwendung für +\Macro{AtBeginLetter} auch auf Benutzerebene geben. Das folgende Beispiel +zeigt dies. +% +\begin{Example} + Angenommen, Sie haben mehrere Briefe in einem Dokument. Sie verwenden + außerdem eine eigene Anweisung, um in den Briefen einen Fragebogen + zu setzen. Dabei werden die Fragen automatisch mit Hilfe eines + Zählers nummeriert. Da \Class{scrlttr2} dieser Zähler nicht bekannt + ist, würde er auch im Gegensatz etwa zur Seitenzahl am Anfang eines + neuen Briefes nicht zurückgesetzt. Wenn jeder Brief zehn Fragen + beinhaltet, hätte damit die erste Frage im fünften Brief die Nummer + 41 statt der Nummer 1. Sie lösen das, indem Sie \Class{scrlttr2} + mitteilen, dass am Anfang jedes Briefes der Zähler zurückgesetzt + werden soll: +% Umbruchkorrektur: Formatierung des Makros variabel + \begin{lstcode} + \newcounter{Frage} + \newcommand{\Frage}[1]{% + \refstepcounter{Frage}\par + \noindent\begin{tabularx}{\textwidth}{l@{}X} + \theFrage:~ & #1\\ + \end{tabularx}% + }% + \AtBeginLetter{\setcounter{Frage}{0}} + \end{lstcode} + Damit hat dann auch die erste Frage im 1001.~Brief wieder die Nummer + Eins. Die hier angegebene Definition benötigt übrigens das + \Package{tabularx}-Paket\IndexPackage{tabularx} (siehe + \cite{package:tabularx}). +\end{Example} +% +\EndIndex{Cmd}{AtBeginLetter}% +% +\EndIndex{}{Anschrift}% + + +\begin{Declaration} + \Macro{opening}\Parameter{Anrede} +\end{Declaration} +\BeginIndex{Cmd}{opening}% +Dies ist eine der wichtigsten Anweisungen in \Class{scrlttr2}. Vordergründig +wird damit die \PName{Anrede}\Index{Anrede} des Briefes, beispielsweise »Sehr +geehrte Frau \dots«, gesetzt. Tatsächlich setzt diese Anweisung aber auch +alle Elemente des Briefbogens wie die Faltmarken\Index{Faltmarke}, den +Briefkopf\Index{Briefkopf}, die Anschrift\Index{Anschrift}, die +Absenderergänzung, die Geschäftszeile\Index{Geschaeftszeile=Geschäftszeile}, +den Titel\Index{Titel}, den Betreff\Index{Betreff} und den +Seitenfuß\Index{Kopf}\Index{Fuss=Fuß}. Kurz gesagt: ohne Anrede kein +Brief. Soll tatsächlich einmal ein Brief ohne Anrede gesetzt werden, so muss +eben das Argument von \Macro{opening} leer bleiben. + +\begin{Example} + Kommen wir auf das Beispiel von + \autopageref{desc:scrlttr2.env.letter.example} zurück. Wird dieses + um eine Anrede ergänzt, dann ergibt sich aus + \lstinputcode[xleftmargin=1em]{letter-0.tex} + der Briefbogen von \autoref{fig:scrlttr2.letter-0}. + \begin{figure} + \begin{captionbeside}[{Beispiel: Brief mit + Anschrift und Anrede}]{Ergebnis eines minimalistischen Briefes nur mit + Anschrift, Anrede (Datum und Faltmarken entstammen den + Voreinstellungen für DIN-Briefe)}[l] + \frame{\includegraphics[width=.4\textwidth]{letter-0}} + \end{captionbeside} + \label{fig:scrlttr2.letter-0} + \end{figure} +\end{Example} +\iftrue% Umbruchkorrekturtext + +Bei maschinell erstellten Briefen wurde früher häufig auf eine Anrede +verzichtet. Das lag daran, dass die Möglichkeiten für individualisierte +Serienbriefe noch kaum vorhanden waren. Heute sind persönliche Anreden auch +bei massenhaft erzeugten Werbebriefen üblich.% +\fi +% +\EndIndex{Cmd}{opening}% + + +\begin{Declaration} + \Macro{closing}\Parameter{Grußfloskel} +\end{Declaration} +\BeginIndex{Cmd}{closing}% +Mit der Anweisung \Macro{closing} wird in erster Linie die +\PName{Grußfloskel}\Index{Gruss=Gruß}\Index{Schlussgruss=Schlussgruß} +gesetzt. Diese kann auch mehrzeilig sein. Die einzelnen Zeilen sollten dann +mit doppeltem Backslash voneinander getrennt werden. Absätze innerhalb der +\PName{Grußfloskel} sind jedoch nicht gestattet. + +Darüber hinaus setzt diese Anweisung aber auch noch gleich den Inhalt der +Variablen \Variable{signature} als Signatur. Näheres zur Signatur und deren +Konfiguration ist \autoref{sec:scrlttr2.closing} ab +\autopageref{desc:scrlttr2.variable.signature} zu entnehmen. + +\begin{Example} + Erweitern wir unser Beispiel um einige Zeilen Brieftext und eine Grußfloskel + zu: + \lstinputcode[xleftmargin=1em]{letter-1.tex} + Damit sieht das Ergebnis wie in \autoref{fig:scrlttr2.letter-1} aus. + \begin{figure} + \begin{captionbeside}[{Beispiel: Brief mit Anschrift, + Anrede, Text und Grußfloskel}]{Ergebnis eines kleinen + Briefes mit Anschrift, Anrede, Text und Grußfloskel (Datum und + Faltmarken entstammen den Voreinstellungen für DIN-Briefe)}[l] + \frame{\includegraphics[width=.4\textwidth]{letter-1}} + \end{captionbeside} + \label{fig:scrlttr2.letter-1} + \end{figure} +\end{Example} +% +\EndIndex{Cmd}{closing}% + + +\begin{Declaration} + \Macro{ps} +\end{Declaration}% +\BeginIndex{Cmd}{ps}% +Diese Anweisung schaltet lediglich auf das +Postskriptum\Index{Postskriptum} um. Dazu wird ein neuer Absatz +begonnen und ein vertikaler Abstand -- in der Regel zur Signatur -- +eingefügt. Auf die Anweisung \Macro{ps} kann beliebiger Text folgen. +Dabei muss der Anwender auch selbst entscheiden, ob er den Nachsatz +etwa mit der Abkürzung »PS:«, die übrigens ohne Punkt gesetzt wird, +beginnen will. Die Klasse \Class{scrlttr2} setzt diese Abkürzung weder +automatisch noch optional. + +\begin{Example} + Unser Beispielbrief, um ein Postskriptum erweitert, + \lstinputcode[xleftmargin=1em]{letter-2.tex} + sieht dann wie in \autoref{fig:scrlttr2.letter-2} aus. + \begin{figure} + \begin{captionbeside}[{Beispiel: Brief mit Anschrift, + Anrede, Text, Grußfloskel und Postskriptum}]{Ergebnis eines kleinen + Briefes mit Anschrift, Anrede, Text, Grußfloskel und Postskriptum + (Datum und Faltmarken entstammen den Voreinstellungen für + DIN-Briefe)}[l] + \frame{\includegraphics[width=.4\textwidth]{letter-2}} + \end{captionbeside} + \label{fig:scrlttr2.letter-2} + \end{figure} +\end{Example} + +\begin{Explain}% + Als Briefe noch von Hand geschrieben wurden, war das Postskriptum + sehr beliebt. Es handelte sich bei diesen Nachsätzen ursprünglich um + Angaben, die im eigentlichen Brief vergessen wurden. Bei Briefen, + die mit \LaTeX{} geschrieben werden, ist es natürlich einfach, + Vergessenes nachträglich in den Brief einzuarbeiten. Trotzdem ist + das Postskriptum noch immer sehr beliebt, kann man damit doch sehr + schön noch einmal auf ganz andere äußerst wichtige oder eigentlich + ganz unwichtige Dinge hinweisen. +\end{Explain} +% +\EndIndex{Cmd}{ps} + + +\begin{Declaration} + \Macro{cc}\Parameter{Verteiler}\\ + \Variable{ccseparator} +\end{Declaration} +\BeginIndex{Cmd}{cc}% +\BeginIndex{Variable}{ccseparator}% +Ein \PName{Verteiler}\Index{Verteiler} kann mit der Anweisung +\Macro{cc} gesetzt werden. Der \PName{Verteiler} wird der Anweisung +dabei als Argument übergeben. Wenn der Inhalt der Variablen +\Variable{ccseparator}\Index{Trennzeichen} nicht leer ist, wird dem +\PName{Verteiler} die Bezeichnung und der Inhalt dieser Variablen +vorangestellt. Der \PName{Verteiler} selbst wird dann um die +entsprechende Breite eingerückt ausgegeben. Es empfiehlt sich, den +\PName{Verteiler} \Macro{raggedright} zu setzen und die einzelnen +Angaben durch doppelten Backslash voneinander zu trennen. +\begin{Example} + Der Beispielbrief soll nicht nur an die Vereinsvorsitzende, sondern auch an + alle Mitglieder gehen: + \lstinputcode[xleftmargin=1em]{letter-3.tex} + Das Ergebnis ist in \autoref{fig:scrlttr2.letter-3} zu sehen. + \begin{figure} + \begin{captionbeside}[{Beispiel: Brief mit Anschrift, + Anrede, Text, Grußfloskel, Postskriptum und Verteiler}]{Ergebnis eines + kleinen Briefes mit Anschrift, Anrede, Text, Grußfloskel, Postskriptum + und Verteiler (Datum und Faltmarken entstammen den Voreinstellungen + für DIN-Briefe)}[l] + \frame{\includegraphics[width=.4\textwidth]{letter-3}} + \end{captionbeside} + \label{fig:scrlttr2.letter-3} + \end{figure} +\end{Example} +Vor dem Verteiler wird automatisch ein Abstand eingefügt.% +% +\EndIndex{Variable}{ccseparator}% +\EndIndex{Cmd}{cc}% + + +\begin{Declaration} + \Macro{encl}\Parameter{Anlagen}\\ + \Variable{enclseparator} +\end{Declaration} +\BeginIndex{Cmd}{encl}% +\BeginIndex{Variable}{enclseparator}% +Die \PName{Anlagen}\Index{Anlagen} sind genauso aufgebaut wie der +Verteiler. Der einzige Unterschied besteht darin, dass die Einleitung +hier von der Bezeichnung und dem Inhalt der Variablen +\Variable{enclseparator}\Index{Trennzeichen} bestimmt wird. +\begin{Example} + Dem Beispielbrief wird nun als Anlage noch ein Auszug aus der Satzung + beigefügt. Da es nur eine Anlage gibt, wird auch der voreingestellte + Bezeichner passend geändert: + \lstinputcode[xleftmargin=1em]{letter-4.tex} + Das Ergebnis ist in \autoref{fig:scrlttr2.letter-4} zu sehen. + \begin{figure} + \begin{captionbeside}[{Beispiel: Brief mit Anschrift, + Anrede, Text, Grußfloskel, Postskriptum, Anlagen und + Verteiler}]{Ergebnis eines kleinen Briefes mit Anschrift, Anrede, + Text, Grußfloskel, Postskriptum, Anlagen und Verteiler (Datum und + Faltmarken entstammen den Voreinstellungen für DIN-Briefe)}[l] + \frame{\includegraphics[width=.4\textwidth]{letter-4}} + \end{captionbeside} + \label{fig:scrlttr2.letter-4} + \end{figure} +\end{Example} +% +\EndIndex{Cmd}{encl}% +\EndIndex{Variable}{enclseparator}% +% +\EndIndex{}{Brief>Aufbau} + + +\section{Wahl der Schriftgröße für das Dokument oder einen Brief} +\LoadCommon[scrlttr]{4} % \section{Wahl der Schriftgröße für das Dokument} +\enlargethispage*{1pt}% +\begin{Example} + Angenommen, bei dem Verein aus dem Beispielbrief handelt es sich um die + \emph{»Freunde ungesunder Schriftgrößen«}, weshalb er in 14\,pt statt in + 12\,pt gesetzt werden soll. Dies kann durch eine kleine Änderung der ersten + Zeile erreicht werden:% + \lstinputcode[xleftmargin=1em]{letter-6}% + Alternativ könnte die Option auch als optionales Argument von + \Environment{letter} gesetzt werden: + \lstinputcode[xleftmargin=1em]{letter-5}% + Da bei dieser späten Änderung der Schriftgröße der Satzspiegel nicht + geändert wird, unterscheiden sich die beiden Ergebnisse in + \autoref{fig:scrlttr2.letter-5-6}. + \begin{figure} + \centering + \frame{\includegraphics[width=.4\textwidth]{letter-5}}\quad + \frame{\includegraphics[width=.4\textwidth]{letter-6}} + \caption[{Beispiel: Brief mit Anschrift, Anrede, Text, + Grußfloskel, Postskriptum, Anlagen, Verteiler und ungesund + großer\protect\linebreak Schrift}] + {Ergebnis eines kleinen Briefes mit Anschrift, Anrede, Text, Grußfloskel, + Postskriptum, Anlagen, Verteiler und ungesund großer Schrift (Datum und + Faltmarken entstammen den Voreinstellungen für DIN-Briefe); links wurde + die Schriftgröße als optionales Argument von \Environment{letter} + gesetzt, rechts als optionales Argument von \Macro{documentclass}} + \label{fig:scrlttr2.letter-5-6} + \end{figure} +\end{Example} +% +\EndIndex{Option}{fontsize~=\PName{Größe}}% +% +\EndIndex{}{Schrift>Groesse=Größe} + + +\LoadCommon[scrlttr]{5} % \section{Textauszeichnungen} + +\begin{desctable} + \caption{Elemente, deren Schrift bei der Klasse + \Class{scrlttr2} mit \Macro{setkomafont} und \Macro{addtokomafont} + verändert werden kann\label{tab:scrlttr2.elementsWithoutText}}\\ + \Endfirsthead + \caption[]{Elemente, deren Schrift verändert werden kann + (\emph{Fortsetzung})}\\ + \Endhead% + \standardfoot% + \feentry{addressee}{Name und Anschrift im Anschriftfenster (siehe + \autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.option.addrfield})}% + \feentry{backaddress}{Rücksendeadresse für einen Fensterbriefumschlag (siehe + \autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.option.backaddress})}% + \feentry{descriptionlabel}{Label, also das optionale Argument von + \Macro{item}, in einer \Environment{description}-Umgebung}% + \feentry{foldmark}{Faltmarke auf dem Briefpapier; ermöglicht Änderung der + Linienfarbe (siehe \autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.option.foldmarks})}% + \feentry{footnote}{% + Marke und Text einer Fußnote (siehe \autoref{sec:scrlttr2.footnotes}, + \autopageref{desc:scrlttr2.cmd.footnote})}% + \feentry{footnotelabel}{% + Marke einer Fußnote; Anwendung erfolgt nach dem Element + \FontElement{footnote} (siehe \autoref{sec:scrlttr2.footnotes}, + \autopageref{desc:scrlttr2.cmd.footnote})}% + \feentry{footnotereference}{% + Referenzierung der Fußnotenmarke im Text (siehe + \autoref{sec:scrlttr2.footnotes}, + \autopageref{desc:scrlttr2.cmd.footnote})}% + \feentry{fromaddress}{Absenderadresse im Briefkopf (siehe + \autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.fromaddress})}% + \feentry{fromname}{Name des Absenders im Briefkopf abweichend von + \PValue{fromaddress} (siehe \autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.fromname})}% + \feentry{fromrule}{Linie im Absender im Briefkopf; gedacht für + Farbänderungen (siehe \autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.option.fromrule})}% + \feentry{pagefoot}{% + wird nur verwendet, wenn das Paket \Package{scrpage2} geladen ist (siehe + \autoref{cha:scrpage}, \autopageref{desc:scrpage.fontelement.pagefoot})}% + \feentry{pagehead}{% + alternative Bezeichnung für \FontElement{pageheadfoot}}% + \feentry{pageheadfoot}{% + Seitenkopf und Seitenfuß bei allen von \KOMAScript{} definierten + Seitenstilen (siehe \autoref{sec:scrlttr2.pagestyle}, + \autopageref{desc:scrlttr2.fontelement.pageheadfoot})}% + \feentry{pagenumber}{% + Seitenzahl im Kopf oder Fuß der Seite (siehe + \autoref{sec:scrlttr2.pagestyle}, + \autopageref{desc:scrlttr2.fontelement.pagenumber})}% + \feentry{pagination}{% + alternative Bezeichnung für \FontElement{pagenumber}}% + \feentry{specialmail}{Versandart im Anschriftfenster (siehe + \autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.specialmail})}% + \feentry{subject}{Betreff in der Brieferöffnung (siehe + \autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.subject})}% + \feentry{title}{Titel in der Brieferöffnung (siehe + \autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.title})}% + \feentry{toaddress}{Abweichung vom Element \FontElement{addressee} für die + Anschrift (ohne Name) des Empfängers im Anschriftfeld (siehe + \autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.toaddress})}% + \feentry{toname}{Abweichung vom Element \FontElement{addressee} für den + Namen des Empfängers im Anschriftfeld (siehe + \autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.toname})}% +\end{desctable} + +Mit der Anweisung \Macro{usekomafont} kann die aktuelle Schriftart auf +diejenige umgeschaltet werden, die für das angegebene \PName{Element} +definiert ist. + +Ein allgemeines Beispiel für die Anwendung von \Macro{setkomafont} und +\Macro{usekomafont} finden Sie in \autoref{sec:scrlttr2.textmarkup}, +\autopageref{desc:maincls.setkomafont.example}.% +\EndIndex{Cmd}{setkomafont}% +\EndIndex{Cmd}{addtokomafont}% +\EndIndex{Cmd}{usekomafont}% +% +\EndIndex{}{Schriftart}% +\EndIndex{}{Text>Auszeichnung} + + +\section{Briefbogen} +\label{sec:scrlttr2.firstpage} +\BeginIndex{}{Briefbogen} + +Der Briefbogen ist die erste Seite und damit das Aushängeschild jedes +Briefes. Im geschäftlichen Bereich handelt es sich dabei oft um einen +Vordruck, auf dem viele Elemente wie ein Briefkopf mit Absenderinformationen +und Logo bereits enthalten sind. Bei \KOMAScript{} sind diese Elemente frei +positionierbar. Damit ist es nicht nur möglich, einen Briefbogen direkt +nachzubilden, sondern auch vorgesehene Felder wie die Anschrift unmittelbar +auszufüllen. Die freie Positionierbarkeit wird über Pseudolängen (siehe +\autoref{sec:scrlttr2.pseudoLength} ab +\autopageref{sec:scrlttr2.pseudoLength}) erreicht. Eine schematische +Darstellung des Briefbogens und der dafür verwendeten Variablen ist in +\autoref{fig:scrlttr2.variables} zu finden. Dabei sind die Namen der Variablen +zur besseren Unterscheidung von Anweisungen und deren Argumenten fett +gedruckt. + +Folgeseiten\Index{Folgeseite} sind vom Briefbogen zu +unterscheiden. Folgeseiten im Sprachgebrauch dieser Anleitung sind alle +Briefseiten abgesehen von der ersten. + + +\begin{figure} + \centering + \includegraphics[scale=0.99]{varDIN} + \caption{Schematische Darstellung des Briefbogens mit den wichtigsten + Anweisungen und Variablen für die skizzierten Elemente} + \label{fig:scrlttr2.variables} +\end{figure} + + +\begin{Declaration} + \KOption{foldmarks}\PName{Einstellung} +\end{Declaration} +\BeginIndex{Option}{foldmarks~=\PName{Einstellung}}% +\looseness=-1 % Umbruchkorrektur +Falt- oder Falzmarken sind kleine horizontale Striche am linken und kleine +vertikale Striche am oberen Rand. \KOMAScript{} unterstützt für den Briefbogen +derzeit drei konfigurierbare horizontale und eine konfigurierbare vertikale +Faltmarke. Dazu wird noch eine horizontale Loch- oder Seitenmittenmarke +unterstützt, die nicht in der Vertikalen verschoben werden kann. + +Mit der Option \Option{foldmarks} können Faltmarken\Index{Faltmarke} für eine +vertikale Zwei"~, Drei- oder Vierteilung und eine horizontale Zweiteilung +aktiviert oder deaktiviert werden. Die einzelnen Teile müssen dabei nicht +äquidistant sein. Die Positionen von drei der vier horizontalen und der +vertikalen Marke sind über Pseudolängen konfigurierbar (siehe +\autoref{sec:scrlttr2-experts.foldmarks} ab +\autopageref{desc:scrlttr2-experts.plength.foldmarkvpos}). + +Über die Option \Option{foldmarks} können entweder mit den Standardwerten für +einfache Schalter, die in \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch} angegeben sind, alle konfigurierten +Faltmarken am linken und oberen Rand ein- und ausgeschaltet werden, +oder\ChangedAt{v2.97e}{\Class{scrlttr2}} es kann durch die Angabe eines oder +mehrerer Buchstaben aus \autoref{tab:scrlttr2.foldmark} die Verwendung der +einzelnen Faltmarken gezielt konfiguriert werden. Auch in diesem Fall werden +die Faltmarken nur dann angezeigt, wenn die Faltmarken nicht mit +\PValue{false}, \PValue{off} oder \PValue{no} generell abgeschaltet +wurden. Die genaue Position der Faltmarken ist von den Einstellungen des +Anwenders beziehungsweise der \File{lco}-Dateien (siehe +\autoref{sec:scrlttr2.lcoFile} ab \autopageref{sec:scrlttr2.lcoFile}) +abhängig. Voreingestellt sind \PValue{true} und \PValue{TBMPL}. +% +\begin{table} + \caption{Kombinierbare Werte für die Konfiguration der Faltmarken mit der + Option \Option{foldmarks}} + \label{tab:scrlttr2.foldmark} + \centering + \begin{desctabular} + \PValue{B} & obere, horizontale Faltmarke am linken Rand aktivieren\\% + \PValue{b} & obere, horizontale Faltmarke am linken Rand deaktivieren\\% + \PValue{H} & alle horizontalen Faltmarken am linken Rand aktivieren\\% + \PValue{h} & alle horizontalen Faltmarken am linken Rand deaktivieren\\% + \PValue{L} & linke, vertikale Faltmarke am oberen Rand aktivieren\\% + \PValue{l} & linke, vertikale Faltmarke am oberen Rand deaktivieren\\% + \PValue{M} & mittlere, horizontale Faltmarke am linken Rand aktivieren\\% + \PValue{m} & mittlere, horizontale Faltmarke am linken Rand deaktivieren\\% + \PValue{P} & Locher- bzw. Seitenmittenmarke am linken Rand aktivieren\\% + \PValue{p} & Locher- bzw. Seitenmittenmarke am linken Rand deaktivieren\\% + \PValue{T} & untere, horizontale Faltmarke am linken Rand aktivieren\\% + \PValue{t} & untere, horizontale Faltmarke am linken Rand deaktivieren\\% + \PValue{V} & alle vertikalen Faltmarken am oberen Rand aktivieren\\% + \PValue{v} & alle vertikalen Faltmarken am oberen Rand deaktivieren\\[1ex] +\end{desctabular} +\end{table} +\begin{Example} + Angenommen, Sie wollen alle Faltmarken außer der Lochermarke + abschalten. Wenn die Voreinstellung zuvor noch nicht geändert wurde, können + Sie das Abschalten wie folgt erreichen: + \begin{lstcode} + \KOMAoption{foldmarks=blmt} + \end{lstcode} + Besteht die Möglichkeit, dass die Voreinstellung bereits geändert wurde, so + sollten Sie lieber auf Nummer Sicher gehen. Unser Beispiel ist dann + entsprechend abzuändern.% + \lstinputcode[xleftmargin=1em]{letter-7}% + Das Ergebnis ist in \autoref{fig:scrlttr2.letter-7} zu sehen. + \begin{figure} + \begin{captionbeside}[{Beispiel: Brief mit Anschrift, + Anrede, Text, Grußfloskel, Postskriptum, Anlagen, Verteiler und + Lochermarke}]{Ergebnis eines kleinen Briefes mit Anschrift, Anrede, + Text, Grußfloskel, Postskriptum, Anlagen, Verteiler und Lochermarke + (das Datum entstammt den Voreinstellungen für DIN-Briefe)}[l] + \frame{\includegraphics[width=.4\textwidth]{letter-7}} + \end{captionbeside} + \label{fig:scrlttr2.letter-7} + \end{figure} +\end{Example} +\BeginIndex{FontElement}{foldmark}% +Über\ChangedAt{v2.97c}{\Class{scrlttr2}} das Element \FontElement{foldmark} +kann die Farbe der Faltmarken geändert werden. Dazu werden die Anweisungen +\Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:scrlttr2.textmarkup}, +\autopageref{desc:scrlttr2.cmd.setkomafont}) verwendet. Voreingestellt ist +keine Änderung.% +\EndIndex{FontElement}{foldmark}% +% +\EndIndex{Option}{foldmarks~=\PName{Einstellung}}% + + +\begin{Declaration} + \KOption{enlargefirstpage}\PName{Ein-Aus-Wert} +\end{Declaration} +\BeginIndex{Option}{enlargefirstpage~=\PName{Ein-Aus-Wert}}% +Die erste Seite eines Briefes fällt immer aus dem normalen Satzspiegel. Von +\Class{scrlttr2} werden Mechanismen bereitgestellt, um die Höhe und vertikale +Ausrichtung von Kopf und Fuß der ersten Seite unabhängig von den Folgeseiten +zu bestimmen. Würde dadurch der Fuß der ersten Seite in den +Textbereich\Index{Textbereich} ragen, so wird der Textbereich der ersten Seite +automatisch mit Hilfe von \Macro{enlargethispage}\IndexCmd{enlargethispage} +verkleinert. Soll der Textbereich umgekehrt auch vergrößert werden, falls der +Fuß der ersten Seite dies erlaubt, so kann das mit dieser Option erreicht +werden. Es passt dann bestenfalls etwas mehr Text auf die erste Seite. Siehe +hierzu auch die Erklärung zur Pseudolänge \PLength{firstfootvpos} auf +\autopageref{desc:scrlttr2-experts.plength.firstfootvpos}. Als +\PName{Ein-Aus-Wert} kann dabei einer der Standardwerte für einfache Schalter +aus \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} verwendet +werden. Voreingestellt ist \PValue{false}.% +% +\EndIndex{Option}{enlargefirstpage~=\PName{Ein-Aus-Wert}}% + + +\begin{Declaration} + \KOption{firsthead}\PName{Ein-Aus-Wert} +\end{Declaration} +\BeginIndex{Option}{firsthead~=\PName{Ein-Aus-Wert}}% +Das\ChangedAt{v2.97e}{\Class{scrlttr2}} oberste Element eines Briefbogens ist +normalerweise der Briefkopf. Bei \KOMAScript{} kann mit der Option +\Option{firsthead} gewählt werden, ob der Briefkopf auf dem Briefbogen +überhaupt gesetzt werden soll. Als \PName{Ein-Aus-Wert} kann dabei einer der +Standardwerte für einfache Schalter aus \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch} verwendet werden. In der Voreinstellung ist +der Briefkopf aktiviert.% +% +\EndIndex{Option}{firsthead~=\PName{Ein-Aus-Wert}}% + + +\begin{Declaration} + \KOption{fromalign}\PName{Methode}\\ + \KOption{fromrule}\PName{Position}\\ + \KOption{fromlogo}\PName{Ein-Aus-Wert}\\ + \KOption{fromphone}\PName{Ein-Aus-Wert}\\ + \KOption{fromfax}\PName{Ein-Aus-Wert}\\ + \KOption{fromemail}\PName{Ein-Aus-Wert}\\ + \KOption{fromurl}\PName{Ein-Aus-Wert} +\end{Declaration} +\BeginIndex{}{Briefkopf}% +\BeginIndex{Option}{fromalign~=\PName{Methode}}% +\BeginIndex{Option}{fromlogo~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Option}{fromrule~=\PName{Position}}% +\BeginIndex{Option}{fromphone~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Option}{fromfax~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Option}{fromemail~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Option}{fromurl~=\PName{Ein-Aus-Wert}}% +Die Option \Option{fromalign} bestimmt, wo der Absender\Index{Absender} auf +der ersten Seite platziert werden soll. Neben verschiedenen Platzierungen im +Briefkopf gibt es auch\ChangedAt{v2.97e}{\Class{scrlttr2}} die Möglichkeit, den +Absender in der Absenderergänzung\Index{Absenderergaenzung=Absenderergänzung} +unterzubringen. Gleichzeitig dient diese Option als zentraler Schalter, um die +Erweiterungen der Briefkopfgestaltung überhaupt zu aktivieren oder zu +deaktivieren. Sind die Erweiterungen deaktiviert, so bleiben die übrigen hier +angegebenen Optionen ohne Wirkung. Mögliche Werte für \Option{fromalign} sind +\autoref{tab:scrlttr2.fromalign} zu entnehmen. Voreingestellt ist der Wert +\PValue{left}. + +\begin{table} + \caption[{Mögliche Werte für Option \Option{fromalign} bei + \Class{scrlttr2}}]{Mögliche Werte für Option \Option{fromalign} zur + Platzierung des Absenders auf dem Briefbogen von \Class{scrlttr2}} + \label{tab:scrlttr2.fromalign} + \begin{desctabular} + \entry{\PValue{center}, \PValue{centered}, \PValue{middle}}{% + Absender wird im Briefkopf zentriert; ein Logo wird gegebenenfalls am + Anfang der erweiterten Absenderangabe platziert; die Erweiterungen der + Briefkopfgestaltung werden aktiviert.}% + \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% + Standardgestalt für den Absender wird verwendet; die Erweiterungen + der Briefkopfgestaltung werden deaktiviert.}% + \entry{\PValue{left}}{% + Absender steht linksbündig im Briefkopf; ein Logo wird gegebenenfalls + rechtsbündig platziert; die Erweiterungen der Briefkopfgestaltung werden + aktiviert.}% + \entry{\PValue{locationleft}, \PValue{leftlocation}}{% + Absender steht linksbündig in der Absenderergänzung; ein Logo wird + gegebenenfalls darüber platziert; der Briefkopf wird automatisch + deaktiviert, kann aber über Option \Option{firsthead} wieder aktiviert + werden.}% + \entry{\PValue{locationright}, \PValue{rightlocation}, + \PValue{location}}{% + Absender steht rechtsbündig in der Absenderergänzung; ein Logo wird + gegebenenfalls darüber platziert; der Briefkopf wird automatisch + deaktiviert, kann aber über Option \Option{firsthead} wieder aktiviert + werden.}% + \entry{\PValue{right}}{% + Absender steht rechtsbündig im Briefkopf; ein Logo wird gegebenenfalls + linksbündig platziert; die Erweiterungen der Briefkopfgestaltung werden + aktiviert.}% + \end{desctabular} +\end{table} + + +\BeginIndex{Variable}{fromaddress}% +\BeginIndex{Variable}{fromname}% +Der Name des Absenders wird über die Variable \Variable{fromname} bestimmt. Im +Briefkopf wird dabei der Bezeichner (siehe auch +\autoref{tab:scrlttr2.fromTerm}) nicht gesetzt. Optional kann auf den Namen +eine horizontale Linie folgen. Dazu dient die Einstellung +\OptionValue{fromrule}{aftername}. Alternativ kann die Linie mit +\OptionValue{fromrule}{afteraddress} auch unterhalb des kompletten Absenders +gesetzt werden. Eine Übersicht über alle möglichen Einstellungen für die Linie +bietet \autoref{tab:scrlttr2.fromrule}. Die Länge der Linie wird über die +Pseudolänge \PLength{fromrulewidth} bestimmt. + +\begin{table} + \caption[{Mögliche Werte für Option \Option{fromrule} bei + \Class{scrlttr2}}]{Mögliche Werte für Option \Option{fromrule} zur + Platzierung einer Linie im Absender von \Class{scrlttr2}} + \label{tab:scrlttr2.fromrule} + \begin{desctabular} + \entry{\PValue{afteraddress}, \PValue{below}, \PValue{on}, \PValue{true}, + \PValue{yes}}{% + Linie unterhalb des kompletten Absenders}% + \entry{\PValue{aftername}}{% + Linie direkt unter dem Namen des Absenders}% + \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% + keine Linie}% + \end{desctabular} +\end{table} + +Unter dem Namen folgt die Anschrift des Absenders. Diese wird über die +Variable \Variable{fromaddress} bestimmt. Im Briefkopf wird dabei der +Bezeichner (siehe auch \autoref{tab:scrlttr2.fromTerm}) nicht gesetzt. + +\BeginIndex{FontElement}{fromaddress}% +\BeginIndex{FontElement}{fromname}% +\BeginIndex{FontElement}{fromrule}% +Die Schrift, die für den kompletten Absender verwendet wird, kann über das +Element \FontElement{fromaddress}\IndexFontElement{fromaddress} eingestellt +werden. Abweichungen davon können für den Absendernamen über das Element +\FontElement{fromname}\IndexFontElement{fromname} und für die mit +\Option{fromrule} gesetzte Linie über das Element +\FontElement{fromrule}\IndexFontElement{fromrule} eingestellt werden. In der +Voreinstellung erfolgt keinerlei Schriftumschaltung. Bei der Linie ist die +Möglichkeit der Schriftumschaltung hauptsächlich dazu gedacht, die Farbe der +Linie ändern zu können, um etwa Grau an Stelle von Schwarz zu verwenden. Siehe +hierzu \cite{package:xcolor}.% +% +\EndIndex{FontElement}{fromrule}% +\EndIndex{FontElement}{fromname}% +\EndIndex{FontElement}{fromaddress}% + +\begin{Example} + Geben wir nun dem Absender aus den bisherigen Beispielen einen Namen. + \lstinputcode[xleftmargin=1em]{letter-8.tex} + \begin{figure} + \centering + \frame{\includegraphics[width=.4\textwidth]{letter-8}}\quad + \frame{\includegraphics[width=.4\textwidth]{letter-9}} + \caption[{Beispiel: Brief mit Absender, Anschrift, Anrede, + Text, Grußfloskel, Signatur, Postskriptum, Anlagen und Verteiler}] + {Ergebnis eines kleinen Briefes mit Absender, Anschrift, Anrede, Text, + Grußfloskel, Signatur, Postskriptum, Anlagen und Verteiler (Datum und + Faltmarken entstammen den Voreinstellungen für DIN-Briefe); links der + Standardbriefkopf mit \OptionValue{fromalign}{false}, rechts der + erweiterte Briefkopf mit \OptionValue{fromalign}{center}} + \label{fig:scrlttr2.letter-8-9} + \end{figure} + Dabei wird zunächst einmal nicht der erweiterte Briefkopf, sondern nur der + Standardbriefkopf verwendet. Das Ergebnis ist in + \autoref{fig:scrlttr2.letter-8-9}, links zu sehen. Im Vergleich dazu ist + rechts daneben das gleiche Beispiel, jedoch mit Option + \OptionValue{fromalign}{center}, also mit den aktivierten Erweiterungen für + den Briefkopf, abgebildet. Wie zu sehen ist, hat diese Variante zunächst + einmal keine Linie. In \autoref{fig:scrlttr2.letter-8-9} taucht nun auch + erstmals eine Signatur unter dem Gruß auf. Diese wird automatisch aus dem + Absendername gewonnen. Wie sie konfiguriert werden kann, ist in + \autoref{sec:scrlttr2.closing} ab \autopageref{sec:scrlttr2.closing} zu + finden. + + Nun soll der Brief mit aktivierter Erweiterung für den Briefkopf mit Hilfe + der Option \Option{fromrule} auch noch eine Linie unter dem Namen erhalten:% + \lstinputcode[xleftmargin=1em]{letter-11.tex}% + Das Ergebnis ist in \autoref{fig:scrlttr2.letter-10-11}, rechts zu sehen. + \begin{figure} + \centering + \frame{\includegraphics[width=.4\textwidth]{letter-10}}\quad + \frame{\includegraphics[width=.4\textwidth]{letter-11}} + \caption[{Beispiel: Brief mit Absender, Trennlinie, Anschrift, Anrede, Text, + Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und + Lochermarke}]{Ergebnis eines kleinen Briefes mit Absender, Trennlinie, + Anschrift, Anrede, Text, Grußfloskel, Signatur, Postskriptum, Anlagen, + Verteiler und Lochermarke (das Datum entstammt den Voreinstellungen für + DIN-Briefe); links der Standardbriefkopf mit + \OptionValue{fromalign}{false}, rechts der erweiterte + Briefkopf mit \OptionValue{fromalign}{center}} + \label{fig:scrlttr2.letter-10-11} + \end{figure} + Im Vergleich dazu ist links daneben das gleiche Beispiel noch einmal mit dem + Standardbriefkopf. Dies unterscheidet sich trotz der zusätzlichen Option + nicht von dem linken Brief in \autoref{fig:scrlttr2.letter-8-9}. +\end{Example} + +Ein wichtiger Hinweis betrifft noch die Absenderadresse: Innerhalb der +Absenderadresse werden einzelne Teilangaben durch doppelten Backslash +voneinander getrennt. Solche Teilangaben sind beispielsweise Straße und +Hausnummer, Postleitzahl und Ort oder eine Länderangabe. Dieser doppelte +Backslash wird je nach Verwendung der Absenderadresse unterschiedlich +interpretiert und ist nicht zwangsläufig als Zeilenumbruch zu verstehen. +Absätze, vertikale Abstände und Ähnliches sind innerhalb der Absenderangaben +normalerweise nicht gestattet. Man muss \Class{scrlttr2} schon sehr genau +kennen, um solche Mittel gegebenenfalls sinnvoll im Absender einsetzen zu +können. Außerdem sollte man in dem Fall unbedingt die Variablen für +Rücksendeadresse (siehe Variable \Variable{backaddress}, +\autopageref{desc:scrlttr2.variable.backaddress}) und Signatur (siehe Variable +\Variable{signature}, \autopageref{desc:scrlttr2.variable.signature}) selbst +setzen.% +% +\EndIndex{Variable}{fromaddress}% +\EndIndex{Variable}{fromname}% + + +\BeginIndex{Variable}{fromphone}% +\BeginIndex{Variable}{fromfax}% +\BeginIndex{Variable}{fromemail}% +\BeginIndex{Variable}{fromurl}% +\BeginIndex{Variable}{emailseparator}% +\BeginIndex{Variable}{faxseparator}% +\BeginIndex{Variable}{phoneseparator}% +\BeginIndex{Variable}{urlseparator}% +Mit den Optionen \Option{fromphone}, \Option{fromfax}, +\Option{fromemail} und \Option{fromurl} kann bestimmt werden, ob die +Telefonnummer\Index{Telefon}, die Faxnummer\Index{Fax}, die E-Mail-Adresse und +die URL im Absender\Index{Absender} gesetzt werden +soll. Als \PName{Ein-Aus-Wert} kann dabei einer der Standardwerte für einfache +Schalter aus \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} +verwendet werden. Voreingestellt ist jeweils \PValue{false}. Die Inhalte selbst +werden über die gleichnamigen Variablen bestimmt. Die Voreinstellungen für +die dabei verwendeten Bezeichner sind \autoref{tab:scrlttr2.fromTerm} zu +entnehmen, die verwendeten Trennzeichen, die zwischen dem Bezeichner und dem +Inhalt einer Variablen eingefügt werden, \autoref{tab:scrlttr2.fromSeperator}. + +\begin{table} + \centering + \caption[{Vordefinierte Bezeichnungen der Variablen für die\newline + Absenderangaben im Briefkopf}]{Vordefinierte Bezeichnungen der Variablen + für die Absenderangaben im Briefkopf (die Bezeichnungen und Inhalte der + verwendeten Variablen für Trennzeichen ist + \autoref{tab:scrlttr2.fromSeperator} zu entnehmen)} + \begin{desctabular}[1.8em] + \ventry{fromemail}{\Macro{usekomavar*}\PParameter{emailseparator}% + \Macro{usekomavar}\PParameter{emailseparator}}% + \ventry{fromfax}{\Macro{usekomavar*}\PParameter{faxseparator}% + \Macro{usekomavar}\PParameter{faxseparator}}% + \ventry{fromname}{\Macro{headfromname}}% + \ventry{fromphone}{\Macro{usekomavar*}\PParameter{phoneseparator}% + \Macro{usekomavar}\PParameter{phoneseparator}}% + \ventry{fromurl}{\Macro{usekomavar*}\PParameter{urlseparator}% + \Macro{usekomavar}\PParameter{urlseparator}}% + \end{desctabular} + \label{tab:scrlttr2.fromTerm} +\end{table} + +\begin{table}[tp] + \centering + \caption{Vordefinierte Bezeichnungen und Inhalte der Trennzeichen + für die Absenderangaben im Briefkopf} + \begin{tabular}{lll} + \toprule + Name & Bezeichnung & Inhalt \\ + \midrule + \Variable{emailseparator} & \Macro{emailname} & \texttt{:\~} \\ + \Variable{faxseparator} & \Macro{faxname} & \texttt{:\~} \\ + \Variable{phoneseparator} & \Macro{phonename} & \texttt{:\~} \\ + \Variable{urlseparator} & \Macro{wwwname} & \texttt{:\~} \\ + \bottomrule + \end{tabular} + \label{tab:scrlttr2.fromSeperator} +\end{table} + +\begin{Example} + Herr Musterfrau aus unserem Beispiel hat auch Telefon und eine + E-Mail-Adresse. Diese möchte er ebenfalls im Briefkopf haben. Gleichzeitig + soll die Trennlinie nun nach dem Briefkopf stehen. Also gibt er die + entsprechenden Optionen an und setzt auch die zugehörigen Variablen:% + \lstinputcode[xleftmargin=1em]{letter-12.tex}% + Das Ergebnis aus \autoref{fig:scrlttr2.letter-12-13}, links ist jedoch + ernüchternd. Die Optionen werden ignoriert. Das liegt daran, dass diese + zusätzlichen Variablen und Optionen nur im erweiterten Briefkopf verwendet + werden. Es muss also wie in \autoref{fig:scrlttr2.letter-12-13}, rechts die + Option \Option{fromalign} verwendet werden: + \begin{figure} + \centering + \frame{\includegraphics[width=.4\textwidth]{letter-12}}\quad + \frame{\includegraphics[width=.4\textwidth]{letter-13}} + \caption[{Beispiel: Brief mit erweitertem Absender, Trennlinie, Anschrift, + Anrede, Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und + Lochermarke; Standard- vs. erweiterter Briefkopf}]{Ergebnis eines + kleinen Briefes mit erweitertem Absender, Trennlinie, Anschrift, Anrede, + Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und + Lochermarke (das Datum entstammt den Voreinstellungen für DIN-Briefe); + links der Standardbriefkopf mit \OptionValue{fromalign}{false}, rechts + der erweiterte Briefkopf mit \OptionValue{fromalign}{center}} + \label{fig:scrlttr2.letter-12-13} + \end{figure} + \lstinputcode[xleftmargin=1em]{letter-13.tex} + + Eine Alternative mit linksbündigem Absender entsprechend der Voreinstellung + und eine mit rechtsbündigem Absender (Einstellung + \OptionValue{fromalign}{right}) zeigt \autoref{fig:scrlttr2.letter-14-15}. + \begin{figure} + \centering + \frame{\includegraphics[width=.4\textwidth]{letter-14}}\quad + \frame{\includegraphics[width=.4\textwidth]{letter-15}} + \caption[{Beispiel: Brief mit erweitertem Absender, Trennlinie, Anschrift, + Anrede, Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler + und Lochermarke; links- vs. rechtsbündiger Briefkopf}]{Ergebnis eines + kleinen Briefes mit erweitertem Absender, Trennlinie, Anschrift, Anrede, + Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und + Lochermarke (das Datum entstammt den Voreinstellungen für DIN-Briefe); + links mit voreingestellt linksbündigem Kopf, rechts mit Option + \Option{fromalign=right} und damit rechtsbündigem Kopf} + \label{fig:scrlttr2.letter-14-15} + \end{figure} +\end{Example} +% +\EndIndex{Variable}{urlseparator}% +\EndIndex{Variable}{phoneseparator}% +\EndIndex{Variable}{faxseparator}% +\EndIndex{Variable}{emailseparator}% +\EndIndex{Variable}{fromurl} +\EndIndex{Variable}{fromemail} +\EndIndex{Variable}{fromfax} +\EndIndex{Variable}{fromphone}% + + +\BeginIndex{Variable}{fromlogo}% +Mit der Option \Option{fromlogo} kann bestimmt werden, ob das Logo\Index{Logo} +im Briefkopf gesetzt werden soll. Als \PName{Ein-Aus-Wert} kann dabei einer +der Standardwerte für einfache Schalter aus \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch} verwendet werden. Voreingestellt ist +\PValue{false}, also kein Logo. Das Logo selbst wird über die Variable +\Variable{fromlogo} definiert. Der Bezeichner für das Logo ist in der +Voreinstellung leer (siehe auch \autoref{tab:scrlttr2.fromTerm}).% +\begin{Example} + Herr Musterfrau findet es besonders schick, wenn er seine Briefe mit einem + Logo versieht. Sein Logo hat er als Grafikdatei gespeichert, die er gerne + mit Hilfe von \Macro{includegraphics} laden würde. Dazu bindet er zusätzlich + das Paket \Package{graphics}\IndexPackage{graphics} (siehe + \cite{package:graphics}) ein.% + \lstinputcode[xleftmargin=1em]{letter-16}% + Das Ergebnis ist in \autoref{fig:scrlttr2.letter-16-18} links oben zu + sehen. Die beiden anderen Bilder in dieser Abbildung zeigen das Ergebnis bei + rechtsbündigem und bei zentriertem Absender. + \begin{figure} + {\hfill + \frame{\includegraphics[width=.4\textwidth]{letter-16}}\quad + \frame{\includegraphics[width=.4\textwidth]{letter-17}}\par\bigskip} + \begin{captionbeside}[{Beispiel: Brief mit erweitertem Absender, Logo, + Trennlinie, Anschrift, Anrede, Text, Grußfloskel, Signatur, + Postskriptum, Anlagen, Verteiler und Lochermarke; Absender links + vs. rechts vs. zentriert}]{Ergebnis eines kleinen Briefes mit + erweitertem Absender, Logo, Trennlinie, Anschrift, Anrede, Text, + Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und + Lochermarke (das Datum entstammt den Voreinstellungen für + DIN-Briefe); links, oben mit linksbündigem Absender, rechts daneben + mit zentriertem Absender und rechts mit rechtsbündigem Absender}[l] + \frame{\includegraphics[width=.4\textwidth]{letter-18}}\quad + \end{captionbeside} + \label{fig:scrlttr2.letter-16-18} + \end{figure} +\end{Example} +\EndIndex{Variable}{fromlogo} +% +\EndIndex{Option}{fromemail~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{fromurl~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{fromfax~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{fromphone~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{fromlogo~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{fromrule~=\PName{Position}}% +\EndIndex{Option}{fromalign~=\PName{Methode}}% + + +\begin{Declaration} + \Macro{firsthead}\Parameter{Aufbau} +\end{Declaration} +\BeginIndex{Cmd}{firsthead}% +In vielen Fällen reichen die Möglichkeiten aus, die \Class{scrlttr2} über +Optionen und obige Variablen für die Gestaltung des Briefkopfes bietet. In +einigen Fällen will man jedoch den Briefkopf freier gestalten können. In +diesen Fällen muss man auf die Möglichkeiten der vordefinierten Briefköpfe, +die über die oben erwähnten Option ausgewählt werden können, +verzichten. Stattdessen gestaltet man sich seinen Briefkopf frei. Dazu +definiert man den gewünschten \PName{Aufbau} mit der Anweisung +\Macro{firsthead}. Innerhalb von \Macro{firsthead} können beispielsweise mit +Hilfe der \Macro{parbox}-Anweisung (siehe \cite{latex:usrguide}) mehrere Boxen +neben- und untereinander gesetzt werden. Einem versierten Anwender sollte es +so möglich sein, seinen eigenen Briefkopf zu gestalten. Natürlich kann und +sollte \PName{Aufbau} auch Zugriffe auf Variablen mit Hilfe von +\Macro{usekomavar} nehmen. +% +\EndIndex{Cmd}{firsthead}% +% +\EndIndex{}{Briefkopf}% + + +\begin{Declaration} + \KOption{addrfield}\PName{Ein-Aus-Wert}\\ + \KOption{backaddress}\PName{Wert} +\end{Declaration} +\BeginIndex{}{Anschrift}% +\BeginIndex{Option}{addrfield~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Variable}{toname}% +\BeginIndex{Variable}{toaddress}% +\BeginIndex{Option}{backaddress~=\PName{Wert}}% +\BeginIndex{Variable}{backaddress}% +\BeginIndex{Variable}{backaddressseparator}% +Mit der Option \Option{addrfield} kann gewählt werden, ob ein Anschriftfeld +gesetzt werden soll oder nicht. Voreingestellt ist die Verwendung eines +Anschriftfeldes. Die Option versteht die Standardwerte für einfache Schalter, +die in \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} +angegeben sind. Voreingestellt ist \PValue{true}. Name und Adresse des +Empfängers, die im Anschriftfeld gesetzt werden, werden über das Argument der +Umgebung \Environment{letter} (siehe \autoref{sec:scrlttr2.document}, +\autopageref{desc:scrlttr2.env.letter}) bestimmt. Diese Angaben werden +außerdem in die Variablen \Variable{toname} und \Variable{toaddress} kopiert. +Die voreingestellten Schriftarten können\ChangedAt{v2.97c}{\Class{scrlttr2}} +über die Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:scrlttr2.textmarkup}, ab +\autopageref{desc:scrlttr2.cmd.setkomafont}) verändert werden. Dabei +existieren drei Elemente. Zunächst gibt es das Element +\FontElement{addressee}\IndexFontElement{addressee}, das generell für die +Anschrift zuständig ist. Dazu gibt es die Elemente +\FontElement{toname}\IndexFontElement{toname} und +\FontElement{toaddress}\IndexFontElement{toaddress}, die sich nur auf den +Namen bzw. die Adresse des Empfängers beziehen. Für \FontElement{toname} und +\FontElement{toaddress} können also Abweichungen von der Einstellung für +\FontElement{addressee} definiert werden. + +\begin{table} + \centering + \begin{tabular}{ll} + \toprule + Element & Voreinstellung \\ + \midrule + \FontElement{addressee}\IndexFontElement{addressee} & \\ + \FontElement{backaddress}\IndexFontElement{backaddress} & \Macro{sffamily} + \\ + \FontElement{specialmail}\IndexFontElement{specialmail} & \\ + \FontElement{toaddress}\IndexFontElement{toaddress} & \\ + \FontElement{toname}\IndexFontElement{toname} & \\ + \bottomrule + \end{tabular} + \caption{Schriftvoreinstellungen für die Elemente des Anschriftfensters} + \label{tab:scrlttr2.AddresseeElements} +\end{table} + +Im Anschriftfeld wird zusätzlich in der Voreinstellung noch die +Rücksendeadresse gesetzt. Mit der Option \Option{backaddress} kann gewählt +werden, ob und in welcher Form die +Rücksendeadresse\Index{Ruecksendeadresse=Rücksendeadresse} für +Fensterbriefumschläge im Anschriftfeld gesetzt werden soll. Die Option +versteht dazu einerseits die Standardwerte für einfache Schalter, die in +\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} angegeben +sind. Dabei bleibt der Stil der Rücksendeadresse unverändert. Beim Einschalten +der Rücksendeadresse kann andererseits\ChangedAt{v2.96}{\Class{scrlttr2}} +gleichzeitig auch der Stil der Rücksendeadresse gewählt werden. So aktiviert +der Wert \PValue{underlined} die unterstrichene Rücksendeadresse, während +\PValue{plain} den Stil ohne Unterstreichung auswählt. Voreingestellt ist +\PValue{underlined}, also das Setzen der unterstrichenen Rücksendeadresse. Der +Inhalt der Rücksendeadresse wird über die Variable \Variable{backaddress} +bestimmt. Voreingestellt ist hier der über \Variable{fromname} angegebene Name +und die über \Variable{fromaddress} angegebene Adresse, wobei der +Doppelbackslash in diesem Fall durch den Inhalt der Variablen +\Variable{backaddressseparator} ersetzte wird. Für diese ist ein Komma gefolgt +von einem nicht umbrechbaren Leerzeichen vordefiniert. Die Schriftart der +Rücksendeadresse ist über das Element +\FontElement{backaddress}\IndexFontElement[indexmain]{backaddress} +konfigurierbar. Voreingestellt ist hierbei \Macro{sffamily} (siehe +\autoref{tab:scrlttr2.AddresseeElements}), wobei vor der Anwendung der +konfigurierten Schriftumschaltung noch auf \Macro{scriptsize} umgeschaltet +wird.% +% +\EndIndex{Variable}{backaddressseparator}% +\EndIndex{Variable}{backaddress}% +\EndIndex{Option}{backaddress~=\PName{Wert}}% +\EndIndex{Variable}{toaddress}% +\EndIndex{Variable}{toname}% + + +\BeginIndex{Variable}{specialmail}% +\BeginIndex{FontElement}{specialmail}% +Zwischen Rücksendeadresse und Empfängeradresse kann noch eine optionale +Versandart\Index{Versandart} gesetzt werden. Diese wird genau dann gesetzt, +wenn die Variable \Variable{specialmail} einen Inhalt hat. Die Ausrichtung +wird mit Hilfe der Pseudolängen \PLength{specialmailindent} und +\PLength{specialmailrightindent} (siehe +\autopageref{desc:scrlttr2-experts.plength.specialmailindent}) festgelegt. Die +voreingestellte Schriftart des Elements\ChangedAt{v2.97c}{\Class{scrlttr2}} +\FontElement{specialmail}\IndexFontElement{specialmail}, die Sie +\autoref{tab:scrlttr2.AddresseeElements} entnehmen können, kann mit Hilfe der +Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:scrlttr2.textmarkup}, +\autopageref{desc:scrlttr2.cmd.setkomafont}) verändert werden.% +% +\EndIndex{FontElement}{specialmail}% +\EndIndex{Variable}{specialmail}% +% +\EndIndex{Option}{addrfield~=\PName{Ein-Aus-Wert}}% +% +\EndIndex{}{Anschrift} + + +\begin{Declaration} + \KOption{locfield}\PName{Einstellung} +\end{Declaration} +\BeginIndex{}{Absenderergaenzung=Absenderergänzung}% +\BeginIndex{Option}{locfield~=\PName{Einstellung}}% +Neben dem Anschriftfeld setzt \Class{scrlttr2} noch ein Feld mit erweiterter +Absenderangabe. Dieses Feld kann beispielsweise für Bankverbindungen und +Ähnliches verwendet werden. Je nach Einstellung der oben erklärten Option +\Option{fromalign} wird es außerdem für das Logo des Absenders oder den +Absender selbst mitverwendet. Die Breite dieses Feldes kann beispielsweise in +einer \File{lco}-Datei (siehe \autoref{sec:scrlttr2.lcoFile}) gesetzt +werden. Wird dort die Breite 0 gesetzt, so kann über die Option +\Option{locfield} zwischen zwei unterschiedlichen Voreinstellungen für die +Breite dieses Feldes gewählt werden. Siehe hierzu auch die Erklärungen zur +Pseudolänge \Variable{locwidth} in +\autoref{sec:scrlttr2-experts.locationField}, +\autopageref{desc:scrlttr2-experts.plength.locwidth}. Mögliche Werte für die +Option sind \autoref{tab:scrlttr2.locfield} zu entnehmen. Voreingestellt ist +\PValue{narrow}. +% +\begin{table} + \caption[{Mögliche Werte für Option \Option{locfield} bei + \Class{scrlttr2}}]{Mögliche Werte für Option \Option{locfield} zur + Wahl der Breite des Feldes für die Absenderergänzung bei \Class{scrlttr2}} + \label{tab:scrlttr2.locfield} + \begin{desctabular} + \pventry{narrow}{schmales Feld für Absenderergänzungen}% + \pventry{wide}{breites Feld für Absenderergänzungen}% + \end{desctabular} +\end{table} + +\BeginIndex{Variable}{location}% +Der Inhalt der Absenderergänzung, soweit er nicht durch Logo oder den Absender +selbst belegt ist, wird mit der Variablen \Variable{location} festgelegt. Für +den Inhalt dieser Variablen dürfen auch Formatierungsanweisungen wie +\Macro{raggedright} verwendet werden. + +\begin{Example} + Herr Musterfrau möchte ein paar zusätzliche Informationen zu seiner + Mitgliedschaft angeben. Er wählt dazu die Absenderergänzung:% + \lstinputcode[xleftmargin=1em]{letter-19.tex}% + Das entsprechende Feld neben der Anschrift wird dann wie in + \autoref{fig:scrlttr2.letter-19} gesetzt. + \begin{figure} + \begin{captionbeside}[{Beispiel: Brief mit erweitertem Absender, Logo, + Anschrift, Absenderergänzung, Anrede, Text, Grußfloskel, + Signatur, Postskriptum, Anlagen, Verteiler und Lochermarke}]{Ergebnis + eines kleinen Briefes mit erweitertem Absender, Logo, + Anschrift, Absenderergänzung, Anrede, Text, Grußfloskel, Signatur, + Postskriptum, Anlagen, Verteiler und Lochermarke (das Datum entstammt + den Voreinstellungen für DIN-Briefe)}[l] + \frame{\includegraphics[width=.4\textwidth]{letter-19}} + \end{captionbeside} + \label{fig:scrlttr2.letter-19} + \end{figure} +\end{Example} +% +\EndIndex{Variable}{location}% +\EndIndex{Option}{locfield~=\PName{Einstellung}}% +% +\EndIndex{}{Absenderergaenzung=Absenderergänzung}% + + +\begin{Declaration} + \KOption{numericaldate}\PName{Ein-Aus-Wert} +\end{Declaration} +\BeginIndex{Option}{numericaldate~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Variable}{date}% +Mit dieser Option kann zwischen der sprachabhängigen Standarddarstellung des +Datums\Index{Datum}\Index{Geschaeftszeile=Geschäftszeile} und einem ebenfalls +sprachabhängigen, kurzen, rein nummerischen Datum umgeschaltet werden. Die +Standarddarstellung wird nicht von \KOMAScript{} bereitgestellt. Sie kann +wahlweise von einem Paket wie \Package{german}\IndexPackage{german}, +\Package{babel}\IndexPackage{babel} oder auch +\Package{isodate}\IndexPackage{isodate} stammen. Das kurze nummerische Datum +wird hingegen von \Class{scrlttr2} selbst erzeugt. Die Option versteht die +Standardwerte für einfache Schalter, die in +\autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch} angegeben sind. Voreingestellt ist +mit \PValue{false} die Verwendung der Standarddarstellung. + +Das Datum in der gewählten Darstellung wird in der Variablen \Variable{date} +abgelegt. Die Einstellung von \Option{numericaldate} hat keine Auswirkung, +wenn diese Variable überschrieben wird. Gesetzt wird das Datum normalerweise +als Teil der Geschäftszeile. Dies ist auch dann der Fall, wenn die +Geschäftszeile ansonsten leer bleibt. Ein leeres Datum wird hingegen nicht +gesetzt.% +% +\EndIndex{Variable}{date}% +\EndIndex{Option}{numericaldate~=\PName{Ein-Aus-Wert}}% + + +\begin{Declaration} + \KOption{refline}\PName{Einstellung} +\end{Declaration} +\BeginIndex{}{Geschaeftszeile=Geschäftszeile}% +\BeginIndex{Option}{refline~=\PName{Einstellung}}% +Insbesondere bei Geschäftsbriefen findet sich häufig eine Zeile mit Angaben +wie Namenskürzeln\Index{Kuerzel=Kürzel}, Durchwahl\Index{Durchwahl}, +Kunden-\Index{Kundennummer} und Rechnungsnummer\Index{Rechnungsnummer} oder +zur Bezugnahme auf ein früheres Schreiben. Diese Zeile wird in dieser +Anleitung \emph{Geschäftszeile} genannt. + +Bei \Class{scrlttr2} können Kopf, Fuß, Anschrift und das Feld mit der +Absenderergänzung links und rechts aus dem normalen Satzspiegel herausragen. +Über die Option \Option{refline} kann nun gewählt werden, ob dies auch für die +Geschäftszeile\Index{Geschaeftszeile=Geschäftszeile} gelten soll. Die +Geschäftszeile enthält normalerweise zumindest das Datum, kann aber auch +weitere Angaben aufnehmen. Mögliche Werte für diese Option sind +\autoref{tab:scrlttr2.refline} zu entnehmen. Voreingestellt ist +\PValue{narrow}. +% +\begin{table} + \caption[{Mögliche Werte für Option \Option{refline} bei + \Class{scrlttr2}}]{Mögliche Werte für Option \Option{refline} zur Wahl + der Breite der Geschäftszeile bei \Class{scrlttr2}} + \label{tab:scrlttr2.refline} + \begin{desctabular} + \pventry{narrow}{Geschäftszeile hält den Satzspiegel ein}% + \pventry{wide}{Geschäftszeile richtet sich nach Anschrift und + Absenderergänzung}% + \end{desctabular} +\end{table} + +\BeginIndex{Variable}{yourref}% +\BeginIndex{Variable}{yourmail}% +\BeginIndex{Variable}{myref}% +\BeginIndex{Variable}{customer}% +\BeginIndex{Variable}{invoice}% +Typische Felder der Geschäftszeile werden über die fünf Variablen +\Variable{yourref}, \Variable{yourmail}, \Variable{myref}, \Variable{customer} +und \Variable{invoice} verwaltet. Die Bedeutung dieser Felder sind +\autoref{tab:scrlttr2.variables} auf \autopageref{tab:scrlttr2.variables} zu +entnehmen. Jede dieser Variablen hat außerdem eine vordefinierte Bezeichnung, +die in \autoref{tab:scrlttr2.reflineTerm} zu finden ist. Wie weitere Variablen +zur Geschäftszeile hinzugefügt werden können, ist in +\autoref{sec:scrlttr2-experts.variables} ab +\autopageref{desc:scrlttr2-experts.cmd.newkomavar} erklärt. + +\begin{table}[t]% Umbruchkorrektur + \centering + \caption[{Vordefinierte Bezeichnungen der Variablen der + Geschäftszeile}]{Vordefinierte Bezeichnungen der typischen Variablen der + Geschäftszeile unter Verwendung sprachabhängiger Anweisungen} + \begin{tabular}{lll} + \toprule + Name & Bezeichnung & bei deutscher Sprache \\ + \midrule + \Variable{yourref} & \Macro{yourrefname} & Ihr Zeichen \\ + \Variable{yourmail} & \Macro{yourmailname} & Ihr Schreiben vom \\ + \Variable{myref} & \Macro{myrefname} & Unser Zeichen \\ + \Variable{customer} & \Macro{customername} & Kundennummer \\ + \Variable{invoice} & \Macro{invoicename} & Rechnungsnummer \\ + \Variable{date} & \Macro{datename} & Datum \\ + \bottomrule + \end{tabular} + \label{tab:scrlttr2.reflineTerm} +\end{table} + +\BeginIndex{Variable}{place}% +\BeginIndex{Variable}{placeseparator}% +Sind bis auf \Variable{date} alle Variablen der Geschäftszeile leer, so wird +keine eigentliche Geschäftszeile gesetzt. Stattdessen werden dann nur +rechtsbündig Ort\Index{Ort} und Datum\Index{Datum} ausgegeben. Dabei bestimmt +der Inhalt der Variablen \Variable{place} den Ort. Für das Trennzeichen, das +in diesem Fall nach dem Ort gesetzt wird, ist der Inhalt der Variablen +\Variable{placeseparator} zuständig. Der +vordefinierte Inhalt des Trennzeichens ist dabei ein Komma gefolgt von einem +nicht umbrechbaren Leerzeichen. Ist der Ort leer, so wird auch das +Trennzeichen nicht gesetzt. Der vordefinierte Inhalt der Variablen +\Variable{date} ist \Macro{today}\IndexCmd{today} und hängt von der +Einstellung der Option \Option{numericaldate} ab (siehe +\autopageref{desc:scrlttr2.option.numericaldate}). + +\begin{Example} + Herr Musterfrau setzt nun auch noch die Variable für den Ort: + \lstinputcode[xleftmargin=1em]{letter-20.tex}% + Damit erscheint vor dem Datum, wie in \autoref{fig:scrlttr2.letter-20} zu + sehen, der Ort gefolgt von den automatischen Trennzeichen vor dem + Datum. Dieses wurde nun ebenfalls explizit gesetzt, damit bei einem späteren + \LaTeX-Durchlauf des Briefes das ursprüngliche Datum erhalten bleibt. + \begin{figure} + \begin{captionbeside}[{Beispiel: Brief mit erweitertem Absender, Logo, + Anschrift, Absenderergänzung, Ort, Datum, Anrede, Text, + Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und + Lochermarke}]{Ergebnis eines kleinen Briefes mit erweitertem Absender, + Logo, Anschrift, Absenderergänzung, Ort, Datum, Anrede, + Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und + Lochermarke}[l] + \frame{\includegraphics[width=.4\textwidth]{letter-20}} + \end{captionbeside} + \label{fig:scrlttr2.letter-20} + \end{figure} +\end{Example} +% +\EndIndex{Variable}{place}% +\EndIndex{Variable}{placeseparator}% +% +\EndIndex{Variable}{invoice}% +\EndIndex{Variable}{customer}% +\EndIndex{Variable}{myref}% +\EndIndex{Variable}{yourmail}% +\EndIndex{Variable}{yourref}% +% +\EndIndex{Option}{refline~=\PName{Einstellung}}% +% +\EndIndex{}{Geschaeftszeile=Geschäftszeile}% + + +\BeginIndex{Variable}{title}% +Bei \Class{scrlttr2} kann ein Brief zusätzlich mit einem Titel\Index{Titel} +versehen werden. Der Titel wird zentriert in der Schriftgröße \Macro{LARGE} +unterhalb der Geschäftszeile ausgegeben. Die als +\Macro{normalcolor}\Macro{sffamily}\Macro{bfseries} für das Element +\PValue{title} voreingestellte Schriftart kann mit Hilfe der Anweisungen +\Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:scrlttr2.textmarkup} ab +\autopageref{desc:scrlttr2.cmd.setkomafont}) geändert werden. Dabei sind auch +Größenangaben erlaubt. +\begin{Example} + Angenommen, Sie schreiben eine Mahnung. Sie setzen einen + entsprechenden Titel: +\begin{lstcode} + \setkomavar{title}{Mahnung} +\end{lstcode} + Damit sollte der Empfänger die Mahnung als solche erkennen. +\end{Example} +% +\EndIndex{Variable}{title} + + +\begin{Declaration} + \KOption{subject}\PName{Einstellung} +\end{Declaration} +\BeginIndex{}{Betreff}% +\BeginIndex{Option}{subject~=\PName{Einstellung}}% +\BeginIndex{Variable}{subject}% +\BeginIndex{Variable}{subjectseparator}% +Um einen Betreff zu setzten, legt man den Inhalt der +Variablen \Variable{subject} entsprechend fest. Mit der Option +\Option{subject} kann dann zum einen gewählt werden, ob der +Betreff mit einem Titel versehen werden soll oder nicht. Der +Titel wird über die Bezeichnung der Variablen \Variable{subject} bestimmt +(siehe \autoref{tab:scrlttr2.subjectTerm}, +\autopageref{tab:scrlttr2.subjectTerm}). Der vordefinierte Inhalt des +Trennzeichens\Index{Trennzeichen} \Variable{subjectseparator} besteht aus +einem Doppelpunkt, gefolgt von einem Leerzeichen. + +\begin{table} + \centering + \caption{Vordefinierte Bezeichnungen der Variablen für den Betreff} + \begin{tabular}{lll} + \toprule + Name & Bezeichnung \\ + \midrule + \Variable{subject} & \Macro{usekomavar*}\PParameter{subjectseparator}% + \texttt{\%} \\ + & \texttt{\quad}% + \Macro{usekomavar}\PParameter{subjectseparator} \\ + \Variable{subjectseparator} & \Macro{subjectname} \\ + \bottomrule + \end{tabular} + \label{tab:scrlttr2.subjectTerm} +\end{table} + +Zum anderen kann über diese Option gewählt werden, ob der Betreff vor oder +nach der Anrede gesetzt werden soll. Des Weiteren kann die +Formatierung\ChangedAt{v2.97c}{\Class{scrlttr2}} des Betreffs eingestellt +werden. Mögliche Werte für diese Option sind \autoref{tab:scrlttr2.subject} zu +entnehmen. Es wird ausdrücklich darauf hingewiesen, dass bei der Einstellung +\PValue{underlined} der Betreff komplett in eine Zeile passen muss! +Voreingestellt sind \PValue{beforeopening} und \PValue{untitled}. Der Inhalt +des Betreffs wird von der Variablen \Variable{subject} bestimmt. +% +\begin{table} + \caption[{Mögliche Werte für Option \Option{subject} bei + \Class{scrlttr2}}]{Mögliche Werte für Option \Option{subject} zur + Platzierung eines Betreffs bei \Class{scrlttr2}} + \label{tab:scrlttr2.subject} + \begin{desctabular} + \pventry{afteropening}{Betreff nach der Anrede setzen}% + \pventry{beforeopening}{Betreff vor der Anrede setzen}% + \pventry{centered}{Betreff zentrieren}% + \pventry{left}{Betreff linksbündig setzen}% + \pventry{right}{Betreff rechtsbündig setzen}% + \pventry{titled}{Betreff mit Titel versehen}% + \pventry{underlined}{Betreff unterstreichen (siehe auch den Hinweis im + Text)}% + \pventry{untitled}{Betreff nicht mit Titel versehen}% + \end{desctabular} +\end{table} + +Der Betreff wird in einer eigenen Schriftart\Index{Schriftart} gesetzt. Um +diese zu ändern, verwenden Sie die Anweisungen \Macro{setkomafont} und +\Macro{addtokomafont} (siehe \autoref{sec:scrlttr2.textmarkup} ab +\autopageref{desc:scrlttr2.cmd.setkomafont}). Für das Element \PValue{subject} +ist in der Klasse \Class{scrlttr2} als Schrift +\Macro{normalcolor}\Macro{bfseries} voreingestellt. + +\begin{Example} + Herr Musterfrau setzt nun auch noch den Betreff. Als eher traditioneller + veranlagter Mensch möchte er außerdem, dass der Betreff mit einer + entsprechenden Spitzmarke versehen wird und setzt deshalb auch die + entsprechende Option:% + \lstinputcode[xleftmargin=1em]{letter-21.tex}% + Das Ergebnis ist in \autoref{fig:scrlttr2.letter-21} zu sehen. + \begin{figure} + \begin{captionbeside}[{Beispiel: Brief mit erweitertem Absender, Logo, + Anschrift, Absenderergänzung, Ort, Datum, Betreff, Anrede, Text, + Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und + Lochermarke}]{Ergebnis eines kleinen Briefes mit erweitertem Absender, + Logo, Anschrift, Absenderergänzung, Ort, Datum, Betreff, + Anrede, Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler + und Lochermarke}[l] + \frame{\includegraphics[width=.4\textwidth]{letter-21}} + \end{captionbeside} + \label{fig:scrlttr2.letter-21} + \end{figure} +\end{Example} +% +\EndIndex{Variable}{subjectseparator}% +\EndIndex{Variable}{subject}% +\EndIndex{Option}{subject~=\PName{Einstellung}}% +\EndIndex{}{Betreff}% + + +\begin{Declaration} + \KOption{firstfoot}\PName{Ein-Aus-Wert} +\end{Declaration} +\BeginIndex{}{Briefbogenfuss=Briefbogenfuß}% +\BeginIndex{Option}{firstfoot~=\PName{Ein-Aus-Wert}}% +Diese\ChangedAt{v2.97e}{\Class{scrlttr2}} Option bestimmt, ob der +Briefbogenfuß überhaupt gesetzt wird. Dies hat Auswirkungen, wenn gleichzeitig +die Option \Option{enlargefirstpage} (siehe +\autopageref{desc:scrlttr2.option.enlargefirstpage}) verwendet wird, da sich +dadurch die Seite logisch nach unten verlängert. Zwischen dem Ende des +Satzspiegels und dem Seitenende bleibt dann nur der normale Abstand zwischen +Satzspiegel und Seitenfuß. + +Die Option versteht die Standardwerte für einfache Schalter, die in +\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} angegeben +sind. Voreingestellt ist das Setzen des Briefbogenfußes.% +% +\EndIndex{Option}{firstfoot~=\PName{Ein-Aus-Wert}}% + + +\begin{Declaration} + \Macro{firstfoot}\Parameter{Aufbau} +\end{Declaration} +\BeginIndex{Cmd}{firstfoot}% +Der Fuß der ersten Seite ist in der Voreinstellung leer. Es besteht +jedoch die Möglichkeit, einen \PName{Aufbau} mit Hilfe der Anweisung +\Macro{firstfoot} zu definieren. Dies geschieht genau wie die +Definition des Kopfes mit Hilfe von \Macro{firsthead}. + +\BeginIndex{Variable}{frombank}% +\begin{Example} + Sie wollen den Inhalt der Variablen \Variable{frombank}, also die + Bankverbindung im Fuß der ersten Seite ausgeben. Der doppelte + Backslash soll dabei durch ein Komma ersetzt werden: + \begin{lstcode} + \firstfoot{% + \parbox[b]{\linewidth}{% + \centering\def\\{, }\usekomavar{frombank}% + }% + } + \end{lstcode} + Natürlich können Sie für das Trennzeichen auch eine eigene Variable + definieren. Ich überlasse dem Leser dies als Übung. + + Will man eine Art Brief"|fuß als Gegengewicht zum Briefkopf verwenden, so + kann dieser beispielsweise wie folgt definiert werden: + \begin{lstcode} + \firstfoot{% + \parbox[t]{\textwidth}{\footnotesize + \begin{tabular}[t]{l@{}}% + \multicolumn{1}{@{}l@{}}{Gesellschafter:}\\ + Hugo Mayer\\ + Bernd Müller + \end{tabular}% + \hfill + \begin{tabular}[t]{l@{}}% + \multicolumn{1}{@{}l@{}}{Geschäftsführerin:}\\ + Liselotte Mayer\\[1ex] + \multicolumn{1}{@{}l@{}}{Gerichtsstand:}\\ + Hinterdupfeldingen + \end{tabular}% + \ifkomavarempty{frombank}{}{% + \hfill + \begin{tabular}[t]{l@{}}% + \multicolumn{1}{@{}l@{}}{% + \usekomavar*{frombank}:}\\ + \usekomavar{frombank} + \end{tabular}% + }% + }% + } + \end{lstcode} + Das Beispiel stammt ursprünglich von Torsten Krüger, und mit + \begin{lstcode} + \setkomavar{frombank}{Konto 12\,345\,678\\ + bei der HansWurstBank\\ + BLZ 876\,543\,21} + \end{lstcode} + kann die Bankverbindung passend dazu gesetzt werden. +% Abhängig von den +% Voreinstellungen ist ein solch hoher Fuß nicht vorgesehen und wird deshalb +% möglicherweise zu tief platziert. In einem solchen Fall kann die vertikale +% Position über die Pseudolänge +% \PLength{firstfootvpos}\IndexPLength{firstfootvpos} angepasst werden (siehe +% \autopageref{desc:scrlttr2-experts.plength.firstfootvpos}). +\end{Example} + +Die im Beispiel verwendete Variable \Variable{frombank} nimmt derzeit eine +Sonderstellung ein. Sie wird intern bisher nicht verwendet. Sie kann jedoch +vom Anwender verwendet werden, um die Bankverbindung\Index{Bankverbindung} in +das Absenderergänzungsfeld (siehe Variable \Variable{location}, +\autopageref{desc:scrlttr2.variable.location}) oder wie im Beispiel in den Fuß +zu setzen.% +% +\EndIndex{Variable}{frombank} + +Im letzten Beispiel wurde ein mehrzeiliger Fuß gesetzt. Bei einer +Kompatibilitätseinstellung ab Version 2.9u (siehe \Option{version} in +\autoref{sec:scrlttr2.compatibilityOptions}, +\autopageref{desc:scrlttr2.option.version}) reicht der Platz dafür in der +Regel nicht aus. Sie sollten dann \PLength{firstfootvpos} (siehe +\autopageref{desc:scrlttr2-experts.plength.firstfootvpos}) entsprechend +verringern.% +% +\EndIndex{Cmd}{firstfoot}% +% +\EndIndex{}{Briefbogenfuss=Briefbogenfuß} +% +\EndIndex{}{Briefbogen} + +\LoadCommon[scrlttr]{6} % \section{Absatzauszeichnung} + +\LoadCommon[scrlttr]{7} % \section{Erkennung von rechten und linken Seiten} + + +\section{Kopf und Fuß bei vordefinierten Seitenstilen} +\label{sec:scrlttr2.pagestyle} +\BeginIndex{}{Seitenstil} + +Eine der allgemeinen Eigenschaften eines Dokuments ist der Seitenstil. Bei +{\LaTeX} versteht man unter dem Seitenstil in erster Linie den Inhalt der +Kopf- und Fußzeilen. Wie bereits in \autoref{sec:scrlttr2.firstpage} erwähnt, +werden Kopf und Fuß des Briefbogens als Elemente des Briefbogens betrachtet +und unterliegen damit nicht den Einstellungen für den Seitenstil. Es geht also +hier im Wesentlichen um den Seitenstil der weiteren Briefseiten nach dem +Briefbogen. Bei einseitigen Briefen ist das der Seitenstil des +Zweitbogens. Bei doppelseitigen Briefen ist auch der Seitenstil aller +Rückseiten betroffen. + + +\begin{Declaration} + \KOption{headsepline}\PName{Ein-Aus-Wert}\\ + \KOption{footsepline}\PName{Ein-Aus-Wert} +\end{Declaration}% +\BeginIndex{Option}{headsepline~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Option}{footsepline~=\PName{Ein-Aus-Wert}}% +Mit diesen Optionen kann eingestellt werden, ob eine +Trennlinie\Index{Trennlinie}\Index{Linie} unter dem Kopf\Index{Seitenkopf} +oder über dem Fuß\Index{Seitenfuß} von Folgeseiten gewünscht wird. Als +\PName{Ein-Aus-Wert} kann einer der Standardwerte für einfache Schalter aus +\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} verwendet +werden. Ein Aktivieren der Option \Option{headsepline} schaltet die Linie +unter dem Kopf ein. Ein Aktivieren der Option \Option{footsepline} schaltet +die Linie über dem Fuß ein. Die Deaktivierung der Optionen schaltet die +jeweilige Linie aus. + +Bei den Seitenstilen \PValue{empty} und \PValue{plain} (siehe +\autopageref{desc:scrlttr2.pagestyle.empty} und +\autopageref{desc:scrlttr2.pagestyle.plain}) hat die Option +\Option{headsepline} selbstverständlich keine Auswirkung, da hier auf einen +Seitenkopf\Index{Seitenkopf} ausdrücklich verzichtet werden soll. +Typografisch betrachtet hat eine solche Linie immer die Auswirkung, dass der +Kopf optisch näher an den Text heranrückt. Dies bedeutet nun nicht, dass der +Kopf räumlich weiter vom Textkörper\Index{Textbereich} weggerückt werden +müsste. Stattdessen sollte der Kopf dann bei der Berechnung des Satzspiegels +als zum Textkörper gehörend betrachtet werden. Dies wird bei {\KOMAScript} +dadurch erreicht, dass bei Verwendung der Klassenoption \Option{headsepline} +automatisch die Paketoption \Option{headinclude} mit gleichem Wert an das +\Package{typearea}-Paket weitergereicht wird. Entsprechendes gilt bei +\Option{footsepline} für \Option{footinclude}. Im Gegensatz zu +\Option{headsepline} wirkt sich die Option \Option{footsepline} auch beim +Seitenstil \PValue{plain} aus, da \PValue{plain} eine Seitenzahl im Fuß +ausgibt. Das Paket \Package{scrpage2}\IndexPackage{scrpage2} (siehe +\autoref{cha:scrpage}) bietet weitere Einflussmöglichkeiten für Linien im Kopf +und Fuß und kann auch mit \Class{scrlttr2} kombiniert werden.% +% +\EndIndex{Option}{headsepline~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{footsepline~=\PName{Ein-Aus-Wert}}% + + +\begin{Declaration} + \KOption{pagenumber}\PName{Position} +\end{Declaration} +\BeginIndex{Option}{pagenumber~=\PName{Position}}% +Mit Hilfe dieser Option kann bestimmt werden, ob und wo eine Seitenzahl auf +Folgeseiten gesetzt werden soll. Die Option wirkt sich auf die Seitenstile +\PValue{headings} und \PValue{plain} aus. Sie beeinflusst außerdem die +Voreinstellung der Seitenstile des \Package{scrpage2}-Paketes, soweit sie vor +dem Laden dieses Paketes gesetzt wird (siehe \autoref{cha:scrpage}). Es gibt +Werte, die sich nur auf die horizontale Position auswirken, Werte, die nur die +vertikale Position beeinflussen, und Werte, die zugleich die vertikale und die +horizontale Position festlegen. Mögliche Werte sind +\autoref{tab:scrlttr2.pagenumber} zu entnehmen. Voreingestellt ist +\PValue{botcenter}. + +\begin{table} + \caption[{Mögliche Werte für Option \Option{pagenumber} bei + \Class{scrlttr2}}]{Mögliche Werte für Option \Option{pagenumber} zur + Positionierung der Paginierung bei den Seitenstilen \PValue{headings} + und \PValue{plain} von \Class{scrlttr2}} + \label{tab:scrlttr2.pagenumber} + \begin{desctabular} + \entry{\PValue{bot}, \PValue{foot}}{% + Seitenzahl im Fuß ohne Änderung der horizontalen Position}% + \entry{\PValue{botcenter}, \PValue{botcentered}, \PValue{botmittle}, + \PValue{footcenter}, \PValue{footcentered}, \PValue{footmiddle}}{% + Seitenzahl zentriert im Fuß}% + \entry{\PValue{botleft}, \PValue{footleft}}{% + Seitenzahl links im Fuß}% + \entry{\PValue{botright}, \PValue{footright}}{ Seitenzahl rechts im Fuß}% + \entry{\PValue{center}, \PValue{centered}, \PValue{middle}}{% + Seitenzahl zentriert ohne Änderung der vertikalen Position}% + \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% + keine Seitenzahl}% + \entry{\PValue{head}, \PValue{top}}{% + Seitenzahl im Kopf ohne Änderung der horizontalen Position}% + \entry{\PValue{headcenter}, \PValue{headcentered}, \PValue{headmiddle}, + \PValue{topcenter}, \PValue{topcentered}, \PValue{topmiddle}}{% + Seitenzahl zentriert im Kopf}% + \entry{\PValue{headleft}, \PValue{topleft}}{% + Seitenzahl links im Kopf}% + \entry{\PValue{headright}, \PValue{topright}}{% + Seitenzahl rechts im Kopf}% + \entry{\PValue{left}}{% + Seitenzahl links ohne Änderung der vertikalen Position}% + \entry{\PValue{right}}{% + Seitenzahl rechts ohne Änderung der vertikalen Position}% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{pagenumber~=\PName{Position}}% + + +\begin{Declaration} + \Macro{pagestyle}\Parameter{Seitenstil}\\ + \Macro{thispagestyle}\Parameter{lokaler Seitenstil} +\end{Declaration}% +\BeginIndex{Cmd}{pagestyle}% +\BeginIndex{Cmd}{thispagestyle}% +\BeginIndex{Pagestyle}{empty}% +\BeginIndex{Pagestyle}{plain}% +\BeginIndex{Pagestyle}{headings}% +\BeginIndex{Pagestyle}{myheadings}% +Bei Briefen mit \Class{scrlttr2} wird zwischen vier verschiedenen +Seitenstilen unterschieden. +\begin{description} +\item[{\Pagestyle{empty}}] ist der Seitenstil, bei dem Kopf- und Fußzeile von + Folgeseiten vollständig leer bleiben. Dieser Seitenstil wird auch + automatisch für die erste Briefseite verwendet, da auf dieser Seite Kopf und + Fuß über \Macro{opening}\IndexCmd{opening} (siehe + \autoref{sec:scrlttr2.firstpage}, \autopageref{desc:scrlttr2.cmd.opening}) + mit anderen Mitteln gesetzt werden. +\item[{\Pagestyle{headings}}] ist der Seitenstil für automatische + Kolumnentitel auf Folgeseiten. Dabei werden als automatisch gesetzte Marken + der Absendername aus der Variablen + \Variable{fromname}\IndexVariable{fromname} und der Betreff aus der + Variablen \Variable{subject}\IndexVariable{subject} verwendet (siehe + \autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.fromname} und + \autopageref{desc:scrlttr2.variable.subject}). Wo genau diese Marken und die + Seitenangabe ausgegeben werden, hängt von der oben erklärten Option + \Option{pagenumber} ab. Der Autor kann die Marken aber auch noch nach + \Macro{opening} manuell beeinflussen. Hierzu stehen wie üblich die + Anweisungen \Macro{markboth} und \Macro{markright}, bei Verwendung von + \Package{scrpage2} auch \Macro{markleft} (siehe + \autoref{sec:scrpage.basics.mark}, \autopageref{desc:scrpage.cmd.automark}), + zur Verfügung. +\item[{\Pagestyle{myheadings}}] ist der Seitenstil für manuelle Kolumnentitel + auf Folgeseiten. Dies entspricht weitgehend \PValue{headings}, allerdings + müssen hier die Marken vom Anwender gesetzt werden. Er verwendet dazu die + Anweisungen \Macro{markboth}\IndexCmd{markboth} und + \Macro{markright}\IndexCmd{markright}. Bei Verwendung von \Package{scrpage2} + kann außerdem \Macro{markleft}\IndexCmd{markleft} verwendet werden. +\item[{\Pagestyle{plain}}] ist der Seitenstil, bei dem auf Folgeseiten + keinerlei Kolumnentitel verwendet, sondern nur eine Seitenangabe ausgegeben + wird. Wo diese gesetzt wird, hängt von der oben erklärten Option + \Option{pagenumber} ab. +\end{description} + +Die Form der Seitenstile wird außerdem durch die oben erklärten Optionen +\Option{headsepline}\IndexOption{headsepline} und +\Option{footsepline}\IndexOption{footsepline} beeinflusst. Der Seitenstil ab +der aktuellen Seite wird mit \Macro{pagestyle} umgeschaltet. Demgegenüber +verändert \Macro{thispagestyle} nur den Seitenstil der aktuellen Seite. Die +Briefklasse verwendet \Macro{thispagestyle}\PParameter{empty} selbst innerhalb +von \Macro{opening}\IndexCmd{opening} für die erste Briefseite. + +\BeginIndex[indexother]{}{Schriftart}% +\BeginIndex{FontElement}{pageheadfoot}% +\BeginIndex{FontElement}{pagefoot}% +\BeginIndex{FontElement}{pagenumber}% +Um die Schriftart von Kopf und Fuß der Seite oder der Seitenangabe zu ändern, +verwenden Sie die Benutzerschnittstelle, die in +\autoref{sec:scrlttr2.textmarkup} beschrieben ist. Für den Kopf und den Fuß +ist dabei das gleiche Element zuständig, das Sie wahlweise mit +\FontElement{pageheadfoot} oder \FontElement{pagehead} benennen können. Für +den Fuß\ChangedAt{v3.00}{\Class{scrlttr2}} ist zusätzlich auch noch das Element +\FontElement{pagefoot} zuständig, das nach \FontElement{pageheadfoot} zur +Anwendung kommt. Das Element für die Seitenzahl innerhalb des Kopfes oder +Fußes heißt \FontElement{pagenumber}. Die Voreinstellungen sind in +\autoref{tab:maincls.defaultFontsHeadFoot}, +\autopageref{tab:maincls.defaultFontsHeadFoot} zu finden. Beachten Sie dazu +auch das Beispiel aus \autoref{sec:maincls.pagestyle}, +\autopageref{sec:maincls.pagestyle.example}.% +% +\EndIndex{FontElement}{pagenumber}% +\EndIndex{FontElement}{pagefoot}% +\EndIndex{FontElement}{pageheadfoot}% +\EndIndex[indexother]{}{Schriftart}% +% +\EndIndex{Pagestyle}{myheadings}% +\EndIndex{Pagestyle}{headings}% +\EndIndex{Pagestyle}{plain}% +\EndIndex{Pagestyle}{empty}% +\EndIndex{Cmd}{thispagestyle}% +\EndIndex{Cmd}{pagestyle}% + + +\begin{Declaration} + \Macro{markboth}\Parameter{linke Marke}\Parameter{rechte Marke}\\ + \Macro{markright}\Parameter{rechte Marke}\\ + \Macro{nexthead}\Parameter{Aufbau}\\ + \Macro{nextfoot}\Parameter{Aufbau} +\end{Declaration} +\BeginIndex{Cmd}{markboth}% +\BeginIndex{Cmd}{markright}% +\BeginIndex{Cmd}{nexthead}% +\BeginIndex{Cmd}{nextfoot}% +In den meisten Fällen werden die Möglichkeiten, die \Class{scrlttr2} über +Optionen und Variablen für die Gestaltung des Seitenkopfes\Index{Kopf} und +-fußes\Index{Fuss=Fuß} auf Folgeseiten\Index{Folgeseite} zur Verfügung stellt, +vollkommen ausreichen. Dies umso mehr, als man zusätzlich mit +\Macro{markboth} und \Macro{markright} die Möglichkeit hat, die Angaben zu +ändern, die \Class{scrlttr2} in den Kopf setzt. Die +Anweisungen \Macro{markboth}\IndexCmd{markboth} und +\Macro{markright}\IndexCmd{markright} können insbesondere mit dem Seitenstil +\PValue{myheadings}\IndexPagestyle{myheadings} verwendet werden. Bei +Verwendung des Paketes \Package{scrpage2}\IndexPackage{scrpage2} gilt dies +natürlich auch für den Seitenstil +\PValue{scrheadings}\IndexPagestyle{scrheadings}. Dort steht außerdem die +Anweisung \Macro{markleft}\IndexCmd{markleft} zur Verfügung. + +In einigen wenigen Fällen will man jedoch den Kopf oder Fuß der Folgeseiten +ähnlich dem Briefbogen freier gestalten. In diesen Fällen muss auf die +vordefinierten Möglichkeiten, die per oben erklärter Option +\Option{pagenumber}\IndexOption{pagenumber} auswählbar sind, verzichtet +werden. Stattdessen gestaltet man sich den Kopf und Fuß der Folgeseiten +frei. Dazu definiert man den gewünschten \PName{Aufbau} mit der Anweisung +\Macro{nexthead} beziehungsweise \Macro{nextfoot}. Innerhalb von +\Macro{nexthead} und \Macro{nextfoot} können beispielsweise mit Hilfe der +\Macro{parbox}-Anweisung (siehe \cite{latex:usrguide}) mehrere Boxen neben- +und untereinander gesetzt werden. Einem versierten Anwender sollte es so +möglich sein, eigene Seitenköpfe und -füße zu gestalten. Natürlich kann und +sollte im Argument \PName{Aufbau} mit Hilfe von \Macro{usekomavar} auch auf +Variablen zugegriffen werden.% +% +\EndIndex{Cmd}{nextfoot}% +\EndIndex{Cmd}{nexthead}% +\EndIndex{Cmd}{markright}% +\EndIndex{Cmd}{markboth}% +% +\EndIndex{}{Seitenstil} + + +\LoadCommon[scrlttr]{8}% \section{Vakatseiten} + +\LoadCommon[scrlttr]{9}% \section{Fußnoten} +\LoadCommon[scrlttr]{11}% -"- +\LoadCommon[scrlttr]{10}% -"- + +\LoadCommon[scrlttr]{12}% \section{Listen} + + +\section{Mathematik} +\label{sec:scrlttr2.math}% +\BeginIndex{}{Mathematik}% +\BeginIndex{}{Formeln}% +\BeginIndex{}{Gleichungen}% + +Die \KOMAScript-Klassen stellen keine eigene Umgebungen für mathematische +Formeln, Gleichungssysteme oder ähnliche Elemente der Mathematik +bereit. Stattdessen stützt sich \KOMAScript{} im Bereich der Mathematik voll +und ganz auf den \LaTeX-Kern. Da jedoch Mathematik in Form von nummerierten +Gleichungen und Formeln in Briefen eher ungewöhnlich ist, unterstützt +\Class{scrlttr2} dies nicht aktiv. Daher gibt es bei \Class{scrlttr2} auch +nicht die Optionen \Option{leqno} und \Option{fleqn}, die in +\autoref{sec:maincls.math} für \Class{scrbook}, \Class{scrreprt} und +\Class{scrartcl} dokumentiert sind. + +Auf eine Beschreibung der Mathematikumgebungen des \LaTeX-Kerns, also +\Environment{displaymath}\IndexEnv{displaymath}, +\Environment{equation}\IndexEnv{equation} und +\Environment{eqnarray}\IndexEnv{eqnarray}, wird an dieser Stelle +verzichtet. Wer diese verwenden möchte, sei auf \cite{l2kurz} verwiesen. Für +mehr als nur einfachste mathematische Formeln und Gleichungen sei jedoch die +Verwendung von \Package{amsmath} empfohlen (siehe \cite{package:amsmath}).% +% +\EndIndex{}{Gleichungen}% +\EndIndex{}{Formeln}% +\EndIndex{}{Mathematik} + + +\section{Gleitumgebungen für Tabellen und Abbildungen} +\label{sec:scrlttr2.floats} + +Gleitumgebungen für Tabellen und Abbildungen sind in Briefen normalerweise +fehl am Platz. Daher werden sie von \Class{scrlttr2} auch nicht +unterstützt. Wenn solche dennoch benötigt werden, deutet dies häufig auf einen +Missbrauch der Briefklasse hin. In solchen Fällen müssen Sie versuchen, die +Gleitumgebungen mit Hilfe von Zusatzpaketen nachzurüsten. Tabellen und +Abbildungen ohne Gleitumgebungen und ohne Titel sind hingegen natürlich auch +mit der Briefklasse \Class{scrlttr2} möglich. + + +\LoadCommon[scrlttr]{13}% \section{Randnotizen} + + +\section{Schlussgruß} +\label{sec:scrlttr2.closing} +\BeginIndex{}{Schlussgruss=Schlussgruß} + +Dass der Schlussgruß mit \Macro{closing}\IndexCmd{closing} gesetzt wird, wurde +bereits in \autoref{sec:scrlttr2.document}, +\autopageref{desc:scrlttr2.cmd.closing} erklärt. Unter dem Schlussgruß wird +häufig noch eine Signatur, eine Art Erläuterung zur Unterschrift, gesetzt. Die +Unterschrift wiederum findet Platz zwischen dem Schlussgruß und der Signatur. + +\BeginIndex{Variable}{signature}% +Die Variable \Variable{signature}\Index{Signatur} nimmt eine Art Erläuterung +zur Unterschrift\Index{Unterschrift} auf. Ihr Inhalt ist mit +\Macro{usekomavar}\PParameter{fromname} vordefiniert. Eine solche Erläuterung +kann auch mehrzeilig sein. Die einzelnen Zeilen sollten dann mit doppeltem +Backslash voneinander getrennt werden. Absätze innerhalb der Erläuterung sind +jedoch nicht gestattet.% +% +\EndIndex{Variable}{signature}% + + +\begin{Declaration} + \Macro{raggedsignature} +\end{Declaration} +\BeginIndex{Cmd}{raggedsignature}% +Grußfloskel\Index{Gruss=Gruß}\Index{Signatur} und Erläuterung der +Unterschrift\Index{Unterschrift} werden innerhalb einer Box gesetzt. Die +Breite dieser Box wird durch die längste Zeile innerhalb von Grußfloskel und +Erläuterung bestimmt. + +Wo genau diese Box platziert wird, ist durch die Pseudolängen +\PLength{sigindent} und \PLength{sigbeforevskip} (siehe +\autoref{sec:scrlttr2-experts.closing}, +\autopageref{desc:scrlttr2-experts.plength.sigindent}) bestimmt. +Durch den Befehl \Macro{raggedsignature} wird die Ausrichtung innerhalb der +Box bestimmt. In den vordefinierten \File{lco}-Dateien ist die Anweisung +entweder auf \Macro{centering} (alle außer \Option{KOMAold}) oder auf +\Macro{raggedright} (\Option{KOMAold}) gesetzt. Um innerhalb der Box +beispielsweise eine linksbündige oder rechtsbündige Ausrichtung zu erhalten, +kann der Befehl in gleicher Weise umdefiniert werden wie \Macro{raggedsection} +(siehe das entsprechende Beispiel in \autoref{sec:maincls.structure}, +\autopageref{desc:maincls.cmd.raggedsection}). + +\begin{Example} + Herr Musterfrau will sich nun wirklich wichtig machen und deshalb in der + Signatur nochmals darauf hinweisen, dass er selbst auch mal + Vereinsvorsitzender war. Deshalb ändert er die Variable + \Variable{signature}. Außerdem will er, dass die Signatur linksbündig unter + dem Schlussgruß steht und definiert daher auch noch \Macro{raggedsignature} + um:% + \lstinputcode[xleftmargin=1em]{letter-22}% + Das Ergebnis ist in \autoref{fig:scrlttr2.letter-22} zu sehen. + \begin{figure} + \begin{captionbeside}[{Beispiel: Brief mit erweitertem Absender, Logo, + Anschrift, Absenderergänzung, Ort, Datum, Betreff, Anrede, Text, + Grußfloskel, geänderter Signatur, Postskriptum, Anlagen, Verteiler und + Lochermarke}]{Ergebnis eines kleinen Briefes mit erweitertem Absender, + Logo, Anschrift, Absenderergänzung, Ort, Datum, Betreff, + Anrede, Text, Grußfloskel, geänderter Signatur, Postskriptum, Anlagen, + Verteiler und Lochermarke}[l] + \frame{\includegraphics[width=.4\textwidth]{letter-22}} + \end{captionbeside} + \label{fig:scrlttr2.letter-22} + \end{figure} +\end{Example} +% +\EndIndex{PLength}{sigindent}% +\EndIndex{PLength}{sigbeforevskip}% +\EndIndex{Cmd}{raggedsignature}% +% +\EndIndex{}{Schlussgruss=Schlussgruß} + + +\section{\emph{Letter-Class-Option}-Dateien} +\label{sec:scrlttr2.lcoFile}% +\BeginIndex{}{lco=\File{lco}}% +\BeginIndex{}{Letter-Class-Option}% + +Normalerweise wird man Einstellungen wie den Absender nicht in jedem Brief neu +wählen. Stattdessen wird man einen ganzen Satz von Parametern für bestimmte +Gelegenheiten immer wieder verwenden. Ganz Ähnliches gilt für die verwendeten +Briefköpfe und den Fußbereich der ersten Seite. Es ist deshalb sicher +sinnvoll, diese Einstellungen in einer eigenen Datei zu speichern. Die +Briefklasse \Class{scrlttr2} bietet hierfür die \File{lco}-Dateien an. Die +Endung \File{lco} ist eine Abkürzung für \emph{\emph{l}etter \emph{c}lass + \emph{o}ption}, also Briefklassenoption. + +In \File{lco}-Dateien können alle Anweisungen verwendet werden, die +auch an der Stelle im Dokument verwendet werden könnten, an der die +\File{lco}-Datei geladen wird. Außerdem könnten interne Anweisungen +verwendet werden, die für Paketautoren freigegeben sind. Bei +\Class{scrlttr2} sind dies inbesondere die Anweisungen +\Macro{@newplength}\IndexCmd{@newplength}, +\Macro{@setplength}\IndexCmd{@setplength} und +\Macro{@addtoplength}\IndexCmd{@addtoplength} (siehe +\autoref{sec:scrlttr2-experts.pseudoLengths}). + +\KOMAScript{} liegen bereits einige \File{lco}-Dateien bei. Die Dateien +\File{DIN.lco}, \File{DINmtext.lco}, \File{SNleft.lco} und \File{SN.lco} +dienen dazu, \Class{scrlttr2} an verschiedene Normen\Index{Norm} +anzupassen. Sie können von angehenden Experten sehr gut als Vorlage für eigene +Parametersätze verwendet werden. Die Datei \File{KOMAold.lco} dient hingegen +dazu, die Kompatibilität zu \Class{scrlettr}, der alten Briefklasse, zu +verbessern. Da hierbei auch auf Anweisungen zurückgegriffen wird, die nicht +für Paketautoren freigegeben sind, sollte man sie nicht als Vorlage für eigene +\File{lco}-Dateien verwenden. Eine Liste aller vordefinierten +\File{lco}-Dateien ist in \autoref{tab:lcoFiles}, \autopageref{tab:lcoFiles} +zu finden. + +Wenn Sie einen Parametersatz für eine Briefnorm, die bisher nicht von +\KOMAScript{} unterstützt wird, erstellt haben, so sind Sie ausdrücklich +gebeten, diesen Parametersatz an die Supportadresse von \KOMAScript{} zu +schicken. Bitte geben Sie dabei auch die Erlaubnis zur Weiterverbreitung unter +den Lizenzbedingungen von \KOMAScript{} (siehe dazu die Datei +\File{LEGALDE.TXT} im \KOMAScript-Paket). Wenn Sie zwar über die notwendigen +Maße aus einer bisher nicht unterstützen Briefnorm verfügen, sich jedoch nicht +in der Lage sehen, selbst eine passende \File{lco}-Datei zu erstellen, so +können Sie sich ebenfalls mit dem \KOMAScript-Autor, Markus Kohm, in +Verbindung setzen. Beispiele für teilweise sehr komplexe \File{lco}-Dateien +finden sich unter anderem unter \cite{homepage} und in +\cite{DANTE:TK0203:MJK}. + + +\begin{Declaration} + \Macro{LoadLetterOption}\Parameter{Name} +\end{Declaration} +\BeginIndex{Cmd}{LoadLetterOption}% +Normalerweise werden \File{lco}-Dateien direkt über +\Macro{documentclass} geladen. Dazu gibt man den Namen der +\File{lco}-Datei ohne die Endung als Option\Index{Optionen} an. Das Laden der +\File{lco}-Datei erfolgt dann direkt nach der Klasse. + +Es ist jedoch auch möglich, eine \File{lco}-Datei zu einem späteren +Zeitpunkt und sogar innerhalb einer anderen \File{lco}-Datei zu laden. +Dazu dient die Anweisung \Macro{LoadLetterOption}. Der \PName{Name} +der \File{lco}-Datei wird dieser ebenfalls ohne Endung als Parameter +übergeben. +\begin{Example} + Peter Musterfrau erstellt auch ein Dokument, in dem mehrere Briefe enthalten + sind. Die Mehrzahl der Briefe soll nach DIN erstellt werden. Also + beginnt er: + \begin{lstcode} + \documentclass{scrlttr2} + \end{lstcode} + Allerdings soll bei einem Brief stattdessen die Variante + \File{DINmtext} verwendet werden. Bei dieser steht das Adressfeld + weiter oben, damit mehr Text auf die erste Seite passt. Dafür ist + die Faltung so angepasst, dass das Adressfeld bei + DIN~C6/5-Umschlägen trotzdem in das Adressfenster passt. Sie + erreichen das so: + \begin{lstcode} + \begin{letter}{% + Petra Mustermann\\ + Vor dem Berg 1\\ + 12345 Musterhausen} + \LoadLetterOption{DINmtext} + \opening{Hallo,} + \end{lstcode} + Da der Aufbau der ersten Seite erst mit \Macro{opening}\IndexCmd{opening} + wirklich beginnt, genügt es, wenn die \File{lco}-Datei vor \Macro{opening} + geladen wird. Dies muss also inbesondere nicht vor + \Macro{begin}\PParameter{letter} erfolgen. Die Änderungen durch das Laden + der \File{lco}-Datei sind dann auch lokal zu dem entsprechenden Brief. +\end{Example} + +Wird\ChangedAt{v2.97}{\Class{scrlttr2}} eine \File{lco}-Datei über +\Macro{documentclass} geladen, so darf sie nicht den Namen einer Option +haben. + +\begin{Example} + Da Herr Musterfrau regelmäßig Briefe mit immer gleichen Einstellungen + schreibt, findet er es ziemlich lästig, diese Angaben immer wieder in jeden + neuen Brief kopieren zu müssen. Zu seiner Erleichterung schreibt er deshalb + eine \File{lco}-Datei, die ihm die Arbeit erleichtert:% + \lstinputcode[xleftmargin=1em]{ich.lco}% + Damit schrumpft sein Brief aus dem letzten Beispiel erheblich zusammen: + \lstinputcode[xleftmargin=1em]{letter-23.tex}% + Das Ergebnis ändert sich jedoch nicht, wie \autoref{fig:scrlttr2.letter-23} + zeigt. + \begin{figure} + \begin{captionbeside}[{Beispiel: Brief mit erweitertem Absender, Logo, + Anschrift, Absenderergänzung, Ort, Datum, Betreff, Anrede, + Text, Grußfloskel, geänderter Signatur, Postskriptum, Anlagen, + Verteiler und Lochermarke mit \File{lco}-Datei}]{Ergebnis eines + kleinen Briefes mit erweitertem Absender, Logo, Anschrift, + Absenderergänzung, Ort, Datum, Betreff, Anrede, Text, Grußfloskel, + geänderter Signatur, Postskriptum, Anlagen, Verteiler und Lochermarke + bei Verwendung einer \File{lco}-Datei}[l] + \frame{\includegraphics[width=.4\textwidth]{letter-23}} + \end{captionbeside} + \label{fig:scrlttr2.letter-23} + \end{figure} + + Bitte beachten Sie, dass in der Bankverbindung in \File{ich.lco} für »ß« die + \TeX-Schreibweise »\Macro{ss}« verwendet wurde. Dies hat seinen Grund darin, + dass unmittelbar nach \Macro{documentclass} weder ein Paket für die + Eingabecodierung, beispielsweise für Windows mit + \Macro{usepackage}\POParameter{ansinew}\PParameter{inputenc} oder für Unix + mit \Macro{usepackage}\POParameter{utf8}\PParameter{inputenc}, noch ein + Paket zur Sprachumschaltung, beispielsweise für die neue, deutsche + Rechtschreibung mit + \Macro{usepackage}\POParameter{ngerman}\PParameter{babel}, geladen ist. +\end{Example} + +In \autoref{tab:lcoFiles}, \autopageref{tab:lcoFiles} finden Sie übrigens eine +Liste aller vordefinierten \File{lco}-Dateien. Falls Sie einen Drucker +verwenden, der einen sehr großen unbedruckbaren Rand links oder rechts +besitzt, werden Sie mit der Option \Option{SN}\IndexOption{SN} möglicherweise +Probleme bekommen. Da die Schweizer Norm SN~101\,130 vorsieht, dass das +Adressfeld 8\Unit{mm} vom rechten Papierrand gesetzt wird, werden bei +Schweizer Briefen auch die Kopfzeile und die Absenderergänzung mit einem +entsprechend geringen Abstand zum Papierrand gesetzt. Dies betrifft ebenfalls +die Geschäftszeile bei der Einstellung \OptionValue{refline}{wide} (siehe +\autoref{sec:scrlttr2.firstpage}, +\autopageref{desc:scrlttr2.option.refline}). Sollten Sie damit ein Problem +haben, erstellen Sie sich eine eigene \File{lco}-Datei, die zunächst +\Option{SN} lädt und in der \PLength{toaddrhpos} (siehe +\autoref{sec:scrlttr2-experts.addressee}, +\autopageref{desc:scrlttr2-experts.plength.toaddrvpos}) dann auf einen +kleineren Wert gesetzt wird. Verringern Sie dann außerdem +\PLength{toaddrwidth} entsprechend.% +% +\EndIndex{Cmd}{LoadLetterOption}% + +\begin{desctable} + \caption{Vordefinierte \File{lco}-Dateien\label{tab:lcoFiles}}\\ + \Endfirsthead% + \caption[]{Vordefinierte \File{lco}-Dateien (\emph{Fortsetzung})}\\ + \Endhead% + \standardfoot% + \oentry{DIN}{% + Parametersatz für Briefe im Format A4 nach DIN~676; geeignet für + Fensterbriefumschläge in den Formaten C4, C5, C6 und C6/5 (C6 lang)% + }% + \oentry{DINmtext}{% + Parametersatz für Briefe im Format A4 nach DIN~676, wobei die Alternative + für mehr Text auf der ersten Briefseite verwendet wird; nur geeignet für + Fensterbriefumschläge in den Formaten C6 und C6/5 (C6 lang)}% + \oentry{KOMAold}{% + Parametersatz für Briefe im Format A4 mit Annäherung an das Aussehen von + Briefen der obsoleten Briefklasse \Class{scrlettr}; geeignet für + Fensterbriefumschläge in den Formaten C4, C5, C6 und C6/5 (C6 lang); es + werden einige zusätzliche Anweisungen zur Verbesserung der Kompatibilität + mit der obsoleten Briefklasse \Class{scrlettr}\IndexClass{scrlettr} + definiert; \Class{scrlttr2} verhält sich mit dieser \File{lco}-Datei + möglicherweise nicht genau wie bei Verwendung der übrigen + \File{lco}-Dateien}% + \oentry{NipponEL}{% + Parametersatz für japanische Briefe im Format A4; geeignet für japanische + Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das + Fenster in etwa 90\Unit{mm} breit, 45\Unit{mm} hoch, 22\Unit{mm} + vom linken und 12\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch + \iffree{den Anhang der englischen + \KOMAScript-Anleitung}{\autoref{cha:japanlco}})}% + \oentry{NipponEH}{% + Parametersatz für japanische Briefe im Format A4; geeignet für japanische + Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das + Fenster in etwa 90\Unit{mm} breit, 55\Unit{mm} hoch, 22\Unit{mm} + vom linken und 12\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch + \iffree{den Anhang der englischen + \KOMAScript-Anleitung}{\autoref{cha:japanlco}})}% + \oentry{NipponLL}{% + Parametersatz für japanische Briefe im Format A4; geeignet für japanische + Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das + Fenster in etwa 90\Unit{mm} breit, 45\Unit{mm} hoch, 25\Unit{mm} + vom linken und 12\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch + \iffree{den Anhang der englischen + \KOMAScript-Anleitung}{\autoref{cha:japanlco}})}% + \oentry{NipponLH}{% + Parametersatz für japanische Briefe im Format A4; geeignet für japanische + Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das + Fenster in etwa 90\Unit{mm} breit, 55\Unit{mm} hoch, 25\Unit{mm} + vom linken und 12\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch + \iffree{den Anhang der englischen + \KOMAScript-Anleitung}{\autoref{cha:japanlco}})}% + \oentry{NipponRL}{% + Parametersatz für japanische Briefe im Format A4; geeignet für japanische + Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das + Fenster in etwa 90\Unit{mm} breit, 45\Unit{mm} hoch, 22\Unit{mm} + vom rechten und 28\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch + \iffree{den Anhang der englischen + \KOMAScript-Anleitung}{\autoref{cha:japanlco}})}% + \oentry{KakuLL}{% + Parametersatz für japanische Briefe im Format A4; geeignet für japanische + Fensterbriefumschläge des Typs Kaku A4, bei denen das Fenster in etwa + 90\Unit{mm} breit, 45\Unit{mm} hoch, 25\Unit{mm} vom linken und + 24\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch + \iffree{den Anhang der englischen + \KOMAScript-Anleitung}{\autoref{cha:japanlco}})}% + \oentry{SN}{% + Parametersatz für Schweizer Briefe nach SN~010\,130 mit Anschrift rechts; + geeignet für Schweizer Fensterbriefumschläge in den Formaten C4, C5, C6 + und C6/5 (C6 lang)}% + \oentry{SNleft}{% + Parametersatz für Schweizer Briefe mit Anschrift links; geeignet für + Schweizer Fensterbriefumschläge mit dem Fenster links in den Formaten C4, + C5, C6 und C6/5 (C6 lang)}% +\end{desctable} + +Die \File{lco}-Datei \File{DIN} wird übrigens immer als erste +\File{lco}-Datei geladen, damit alle Pseudolängen +mehr oder weniger sinnvoll vordefiniert sind. +Beachten Sie bitte noch, dass es nicht möglich ist, innerhalb einer +\File{lco}-Datei mittels \Macro{PassOptionsToPackage} Optionen an +Pakete zu übergeben, die von der Klasse bereits geladen +sind. Normalerweise betrifft dies nur die Pakete \Package{typearea}, +\Package{scrlfile}, \Package{scrbase} und \Package{keyval}.% +% +\EndIndex{}{lco=\File{lco}}% +\EndIndex{}{Letter-Class-Option}% + + +\section{Adressdateien und Serienbriefe} +\label{sec:scrlttr2.addressFile}% +\BeginIndex{}{Adressdatei}\BeginIndex{}{Serienbriefe}% + +Als besonders lästig wird bei Briefen immer das Eintippen der Adressen und das +Erstellen von Serienbriefen betrachtet. Die Klasse \Class{scrlttr2} bietet +hierfür wie schon die obsolete Klasse \Class{scrlettr} eine gewisse +Unterstützung.% +\iffalse% Umbruchkorrekturtext +Eine stark verbesserte Serienbrief"|funktion ist bereits seit längerem in +Planung.% +\fi + +\begin{Declaration} + \Macro{adrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}% + \Parameter{Tel.}\Parameter{F1}\Parameter{F2}% + \Parameter{Kommentar}\Parameter{Kürzel} +\end{Declaration} +\BeginIndex{Cmd}{adrentry}% +Mit der \Class{scrlttr2}-Klasse können +Adressdateien\Index[indexmain]{Adressdatei} ausgewertet werden. Dies ist +beispielsweise für Serienbriefe sehr nützlich. Eine Adressdatei muss +die Endung \File{.adr} haben und besteht aus einer Reihe von +\Macro{adrentry}-Einträgen. Ein solcher Eintrag besteht aus acht +Elementen und kann beispielsweise wie folgt aussehen: +\begin{lstcode} + \adrentry{Maier} + {Herbert} + {Wiesenweg 37\\ 09091 Blumental} + {0\,23\,34 / 91\,12\,74} + {Bauunternehmer} + {} + {kauft alles} + {MAIER} +\end{lstcode} +Die Elemente fünf und sechs, \PValue{F1} und \PValue{F2}, können frei +bestimmt werden. Denkbar wären neben Hinweisen auf das Geschlecht oder +akademische Grade auch der Geburtstag oder das Eintrittsdatum in einen +Verein. Um das Überschreiben von \TeX- oder \LaTeX-Anweisungen zu +vermeiden, ist es empfehlenswert, für \PName{Kürzel} ausschließlich +Großbuchstaben zu verwenden. + +\begin{Example} + Herr Maier gehört zu Ihren engeren Geschäftspartnern. Da Sie eine + rege Korrespondenz mit ihm pflegen, ist es Ihnen auf Dauer zu + mühsam, jedesmal alle Empfängerdaten aufs Neue einzugeben. + \Class{scrlttr2} nimmt Ihnen diese Arbeit ab. Angenommen, Sie haben + Ihre Kundenkontakte in der Datei \File{partner.adr} gespeichert und + Sie möchten Herrn Maier einen Brief schreiben, dann sparen Sie sich + viel Tipparbeit, wenn Sie folgendes eingeben: +\begin{lstcode} + \input{partner.adr} + \begin{letter}{\MAIER} + Der Brief ... + \end{letter} +\end{lstcode} + Achten Sie bitte darauf, dass Ihr \TeX-System auch auf die + \File{.adr}-Dateien zugreifen kann, da sonst eine Fehlermeldung + von \Macro{input} verursacht wird. Entweder Sie legen die Brief- + und Adressdateien im selben Verzeichnis an, oder Sie binden ein + Adressverzeichnis fest in Ihr \TeX-System ein. +\end{Example} +% +\EndIndex{Cmd}{adrentry} + + +\begin{Declaration} + \Macro{addrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}% + \Parameter{Telefon}\Parameter{F1}\Parameter{F2}\Parameter{F3}% + \Parameter{F4}\Parameter{Kürzel} +\end{Declaration} +\BeginIndex{Cmd}{addrentry}% +Da über die Jahre hinweg immer wieder Klagen aufkamen, dass insgesamt +nur zwei freie Felder zu wenig seien, verfügt \Class{scrlttr2} nun +alternativ über die Anweisung \Macro{addrentry}. Mit dem zusätzlichen +»\texttt{d}« im Namen sind hier auch zwei weitere freie Felder +hinzugekommen, dafür ist jedoch der Kommentar entfallen. Ansonsten +kann die Anweisung genau wie \Macro{adrentry} verwendet werden. + +In einer \File{adr}-Datei können \Macro{adrentry}"~ und +\Macro{addrentry}-Anweisungen nebeneinander verwendet werden. Ich weise jedoch +darauf hin, dass Zusatzpakete wie das \Package{adrconv}-Paket von Axel +Kielhorn eventuell nicht auf die Verwendung von \Macro{addrentry} ausgelegt +sind. Hier muss der Anwender gegebenenfalls selbst entsprechende +Erweiterungen vornehmen.% +% +\EndIndex{Cmd}{addrentry} + + +Neben dem vereinfachten Zugriff auf Kundendaten können die +\File{.adr}-Dateien auch für Serienbriefe\Index[indexmain]{Serienbriefe} +genutzt werden. So ist es ohne die komplizierte Anbindung an +Datenbanksysteme möglich, solche Massenpostsendungen zu erstellen. +% +\begin{Example} + Sie wollen einen Serienbrief an alle Mitglieder Ihres + Anglervereins schicken, um zur nächsten Mitgliederversammlung + einzuladen. +\begin{lstcode} + \documentclass{scrlttr2} + \usepackage{ngerman} + \usepackage[utf8]{inputenc} + + \begin{document} + \renewcommand*{\adrentry}[8]{% + \begin{letter}{#2 #1\\#3} + \opening{Liebe Vereinsmitglieder,} + unsere nächste Mitgliederversammlung findet am + Montag, dem 12.~August 2002, statt. + + Folgende Punkte müssen besprochen werden... + \closing{Petri Heil,} + \end{letter} + } + + \input{mitglieder.adr} + \end{document} +\end{lstcode} + Sind in Ihrer \File{adr}-Datei auch \Macro{addrentry}-Anweisungen + enthalten, müssen Sie dafür eine entsprechende Definition vor dem + Einladen der Adressdatei ergänzen: + \begin{lstcode} + \renewcommand*{\addrentry}[9]{% + \adrentry{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#9}% + } + \end{lstcode} + Bei diesem Beispiel wird kein Gebrauch von dem zusätzlichen freien + Feld gemacht und deshalb \Macro{addrentry} mit Hilfe von \Macro{adrentry} + definiert. +\end{Example} + +Natürlich kann der Brief"|inhalt auch von den Adressatenmerkmalen +abhängig gemacht werden. Als Bedingungsfelder können die frei +bestimmbaren Elemente fünf oder sechs eines \Macro{adrentry}-Eintrages oder +die frei bestimmbaren Elemente fünf bis acht eines \Macro{addrentry}-Eintrags +genutzt werden. +\begin{Example} + Angenommen, Sie verwenden das Element fünf, um das Geschlecht eines + Vereinsmitgliedes zu hinterlegen (\PValue{m/w}) und das sechste + Element weist auf einen Rückstand der Mitgliedsbeiträge hin. Wollen + Sie nun alle säumigen Mitglieder anschreiben und persönlich anreden, + so hilft Ihnen folgendes Beispiel weiter: +\begin{lstcode} + \renewcommand*{\adrentry}[8]{ + \ifdim #6pt>0pt\relax + % #6 ist ein Betrag (Gleitkommazahl) größer 0. + % Es werden also die Säumigen erfasst. + \begin{letter}{#2 #1\\#3} + \if #5m \opening{Lieber #2,} \fi + \if #5w \opening{Liebe #2,} \fi + + Leider mussten wir feststellen, dass du mit + der Zahlung deiner Mitgliedsbeiträge im + Rückstand bist. + + Wir möchten Dich bitten, den offenen Betrag + von #6~EUR auf das Vereinskonto einzuzahlen. + \closing{Petri Heil,} + \end{letter} + \fi + } +\end{lstcode} +\end{Example} +Es ist also möglich, den Brieftext auf bestimmte Empfängermerkmale +gezielt abzustimmen und so den Eindruck eines persönlichen +Schreibens zu erwecken. Die Anwendungsbreite ist lediglich durch +die maximale Anzahl von zwei freien \Macro{adrentry}-Elementen +beziehungsweise vier freien \Macro{addrentry}-Elementen begrenzt. + + +\begin{Declaration} + \Macro{adrchar}\Parameter{Anfangsbuchstaben}\\ + \Macro{addrchar}\Parameter{Anfangsbuchstaben} +\end{Declaration} +\BeginIndex{Cmd}{adrchar}% +\BeginIndex{Cmd}{addrchar}% +\Index[indexmain]{Adressverzeichnis}\Index[indexmain]{Telefonliste}% +Es ist auch möglich, die Informationen einer \File{.adr}-Datei in +Adressverzeichnisse oder Telefonlisten umzuwandeln. Sie benötigen dazu +zusätzlich das \Package{adrconv}-Paket von Axel Kielhorn (siehe +\cite{package:adrconv}). In diesem Paket sind interaktive +\LaTeX-Dokumente enthalten, mit deren Hilfe sehr einfach entsprechende +Listen erstellt werden können. + +Damit die Listen alphabetisch sortiert ausgegeben werden, muss bereits +die Adressdatei sortiert gewesen sein. Es empfiehlt sich dabei, vor +jedem neuen Anfangsbuchstaben eine Anweisung \Macro{adrchar} mit +diesem Buchstaben als Argument einzufügen. \Class{scrlttr2} selbst +ignoriert diese Anweisung ebenso wie \Macro{addrchar}. +% +\begin{Example} + Sie haben folgende, winzige Adressdatei: +% In der folgenden lstcode-Umgebung je nach Umbruchbedarf einzelne +% Elemente löschen oder hinzufügen. MICHAEL und GABRIEL sollten jedoch +% erhalten bleiben. +% Umbruchkorrektur: Dies kann noch dazu: + \begin{lstcode} + \adrchar{E} + \adrentry{Engel}{Gabriel} + {Wolke 3\\12345 Himmelreich} + {000\,01\,02\,03}{}{}{Erzengel} + {GABRIEL} + \adrentry{Engel}{Michael} + {Wolke 3a\\12345 Himmelreich} + {000\,01\,02\,04}{}{}{Erzengel} + {MICHAEL} + \adrentry{Engel}{Raphael} + {Wolke 3b\\12345 Himmelreich} + {000\,01\,02\,05}{}{}{Erzengel} + {RAPHAEL} + \adrchar{K} + \adrentry{Kohm}{Markus} + {Freiherr-von-Drais-Stra\ss e 66\\ + 68535 Edingen-Neckarhausen} + {+49~62\,03~1\,??\,??}{}{} + {\"Uberhaupt kein Engel} + {KOMA} + \adrchar{T} + \adrentry{Teufel}{Luzifer} + {Hinter der Flamme 1\\ + 66666 H\"ollenschlund} + {}{}{}{Gefallener Engel ohne Telefon} + {LUZIFER} + \end{lstcode} + Diese bearbeiten Sie nun unter Verwendung von \File{adrdir.tex} aus + \cite{package:adrconv}. Eine Seite des Ergebnisses sieht dann etwa so aus: + \begin{center} + \setlength{\unitlength}{1mm} + \begin{picture}(80,58) + \put(0,58){\line(1,0){80}} + \put(0,3){\line(0,1){55}} + \put(80,3){\line(0,1){55}} + \thicklines + \put(10,43){\line(1,0){60}} + \put(70,46){\makebox(0,0)[r]{\textsf{\textbf{E}}}} + \put(10,23){\makebox(0,20)[l]{\parbox{5cm}{\raggedright + \textbf{Engel}, Gabriel\\\quad\small Wolke 3\\ + \quad 12345 Himmelreich\\ + \quad (Erzengel)}}} + \put(70,23){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\ + \small~\\{\footnotesize GABRIEL}\\000\,01\,02\,03}}} + \put(10,4){\makebox(0,20)[l]{\parbox{5cm}{\raggedright + \textbf{Engel}, Michael\\\quad\small Wolke 3a\\ + \quad 12345 Himmelreich\\ + \quad (Erzengel)}}} + \put(70,4){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\ + \small~\\{\footnotesize MICHAEL}\\000\,01\,02\,04}}} + \qbezier(0,3)(10,6)(40,3)\qbezier(40,3)(60,0)(80,3) + \end{picture} + \end{center} + Dabei wird der Buchstabe in der Kopfzeile von \Macro{adrchar} + erzeugt. Siehe dazu die Definition in \File{adrdir.tex}. +\end{Example} +Näheres zum \Package{adrconv}-Paket ist der zugehörigen Anleitung zu +entnehmen. Dort finden Sie auch Angaben darüber, ob die aktuelle +Version von \Package{adrconv} bereits mit \Macro{addrentry} und +\Macro{addrchar} umgehen kann. Frühere Versionen kannten nur +\Macro{adrentry} und \Macro{adrchar}.% +% +\EndIndex{Cmd}{adrchar}\EndIndex{Cmd}{addrchar}% +% +\EndIndex{}{Adressdatei}\EndIndex{}{Serienbriefe}% +% +\EndIndex{Class}{scrlttr2}\EndIndex{}{Briefe} + +\endinput + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "../guide.tex" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2examples.dtx b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2examples.dtx new file mode 100644 index 00000000000..6384fdbd102 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2examples.dtx @@ -0,0 +1,266 @@ +% \CheckSum{0} +% \iffalse +% ====================================================================== +% scrlttr2examples.dtx +% Copyright (c) Markus Kohm, 2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% scrlttr2examples.dtx +% Copyright (c) Markus Kohm, 2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Generation of letter example files for scrlttr2 chapter. +% +% --------------------------------------------------------------------------- +% +% Erzeugung der Brief-Beispiele für das scrlttr2-Kapitel. +% +% ============================================================================ +%<*ins> +\def\batchfile{scrlttr2examples.dtx} +\input docstrip.tex + +\keepsilent +\askforoverwritefalse + +\generate{% + \nopreamble\nopostamble + \file{musterlogo.eps}{\from{scrlttr2examples.dtx}{logo}}% +} + +\generate{% + \nopreamble\nopostamble + \file{ich.lco}{\from{scrlttr2examples.dtx}{lco,23,\languagename}}% +} + +\generate{% + \nopreamble\nopostamble + \file{letter-0.tex}{\from{scrlttr2examples.dtx}{example,0,\languagename}}% + \file{letter-1.tex}{\from{scrlttr2examples.dtx}{example,1,\languagename}}% + \file{letter-2.tex}{\from{scrlttr2examples.dtx}{example,2,\languagename}}% + \file{letter-3.tex}{\from{scrlttr2examples.dtx}{example,3,\languagename}}% + \file{letter-4.tex}{\from{scrlttr2examples.dtx}{example,4,\languagename}}% + \file{letter-5.tex}{\from{scrlttr2examples.dtx}{example,5,\languagename}}% + \file{letter-6.tex}{\from{scrlttr2examples.dtx}{example,6,\languagename}}% + \file{letter-7.tex}{\from{scrlttr2examples.dtx}{example,7,\languagename}}% + \file{letter-8.tex}{\from{scrlttr2examples.dtx}{example,8,\languagename}}% + \file{letter-9.tex}{\from{scrlttr2examples.dtx}{example,9,\languagename}}% + \file{letter-10.tex}{\from{scrlttr2examples.dtx}{example,10,\languagename}}% + \file{letter-11.tex}{\from{scrlttr2examples.dtx}{example,11,\languagename}}% + \file{letter-12.tex}{\from{scrlttr2examples.dtx}{example,12,\languagename}}% + \file{letter-13.tex}{\from{scrlttr2examples.dtx}{example,13,\languagename}}% + \file{letter-14.tex}{\from{scrlttr2examples.dtx}{example,14,\languagename}}% + \file{letter-15.tex}{\from{scrlttr2examples.dtx}{example,15,\languagename}}% + \file{letter-16.tex}{\from{scrlttr2examples.dtx}{example,16,\languagename}}% + \file{letter-17.tex}{\from{scrlttr2examples.dtx}{example,17,\languagename}}% + \file{letter-18.tex}{\from{scrlttr2examples.dtx}{example,18,\languagename}}% + \file{letter-19.tex}{\from{scrlttr2examples.dtx}{example,19,\languagename}}% + \file{letter-20.tex}{\from{scrlttr2examples.dtx}{example,20,\languagename}}% + \file{letter-21.tex}{\from{scrlttr2examples.dtx}{example,21,\languagename}}% + \file{letter-22.tex}{\from{scrlttr2examples.dtx}{example,22,\languagename}}% + \file{letter-23.tex}{\from{scrlttr2examples.dtx}{example,23,\languagename}}% + \file{letter-label.tex}{\from{scrlttr2examples.dtx}{% + example,label,\languagename}}% + \file{letter-nipponA.tex}{\from{scrlttr2examples.dtx}{% + example,22,nipponA,\languagename}}% + \file{letter-nipponB.tex}{\from{scrlttr2examples.dtx}{% + example,22,nipponB,\languagename}}% +} + +\csname endinput\endcsname +%</ins> +% +% \begin{macrocode} +%<*lco&23> +\ProvidesFile{ich.lco}[2008/06/11 lco (Peter Musterfrau)] +\KOMAoptions{foldmarks=true,foldmarks=blmtP, + fromphone,fromemail,fromlogo,subject=titled} +\setkomavar{fromname}{Peter Musterfrau} +\setkomavar{signature}{Peter Musterfrau\\ + (ehemaliger Vorsitzender)} +\renewcommand*{\raggedsignature}{\raggedright} +\setkomavar{fromaddress}{Hinter dem Tal 2\\ + 54321 Musterheim} +\setkomavar{fromphone}{0\,12\,34~56\,78} +\setkomavar{fromemail}{Peter@Musterfrau.invalid} +\setkomavar{fromlogo}{\includegraphics{musterlogo}} +\setkomavar{location}{\raggedright + Mitglied Nr.~4711\\ + seit dem 11.09.2001\\ + Vorsitzender in den Jahren 2003--2005} +\setkomavar{place}{Musterheim} +\setkomavar{frombank}{Bank freundlichen Gru\ss es} +%</lco&23> +%<*example> +%<*label> +\AtBeginDocument{% + \usepackage{xcolor,eso-pic}% + \BeforeClosingMainAux{% + \AddToShipoutPicture*{% + \thinlines\color{gray!50}% + \AtPageLowerLeft{% + \put(0,\LenToUnit{8mm}){% + \line(0,1){\LenToUnit{180mm}}% + }% + \multiput(\LenToUnit{70mm},\LenToUnit{8mm})(\LenToUnit{70mm},0){3}{% + \line(0,1){\LenToUnit{216mm}}% + }% + \multiput(0,\LenToUnit{8mm})(0,\LenToUnit{36mm}){6}{% + \line(1,0){\LenToUnit{210mm}}% + }% + \put(\LenToUnit{70mm},\LenToUnit{224mm}){% + \line(1,0){\LenToUnit{140mm}}% + }% + }\color{black}% + }% + }% +} +%</label> +%<0|1|2|3|4|5>\documentclass[version=last]{scrlttr2} +%<6>\documentclass[version=last,fontsize=14pt]{scrlttr2} +%<!0&!1&!2&!3&!4&!5&!6&!23&!label&!nipponA&!nipponB>\documentclass[foldmarks=true,foldmarks=blmtP, +%<nipponA|nipponB>\documentclass[foldmarks=true,locfield=wide, +%<8> fromalign=false, +%<9> fromalign=center, +%<10> fromalign=false,fromrule=aftername, +%<11> fromalign=center,fromrule=aftername, +%<12> fromalign=false,fromrule=afteraddress, +%<13|17> fromalign=center,fromrule=afteraddress, +%<14|16> fromrule=afteraddress, +%<15|18> fromalign=right,fromrule=afteraddress, +%<12|13|14|15> fromphone,fromemail, +%<16|17|18|19|20|21|22> fromphone,fromemail,fromlogo, +%<nipponA|nipponB> fromphone=false,fromemail=false, +%<21|22> subject=titled, +%<!0&!1&!2&!3&!4&!5&!6&!23&!label> version=last]{scrlttr2} +%<23>\documentclass[version=last,ich]{scrlttr2} +%<nipponA>\LoadLetterOption{NipponLL} +%<nipponB>\LoadLetterOption{NipponEL} +%<label>\documentclass[version=last,ich,settleford600label]{scrlttr2} +%<ngerman>\usepackage[ngerman]{babel} +%<english>\usepackage[english]{babel} +%<16|17|18|19|20|21|22|23|label>\usepackage{graphics} +\begin{document} +%<*!0&!1&!2&!3&!4&!5&!6&!7&!23&!label> +\setkomavar{fromname}{Peter Musterfrau} +%<*22> +\setkomavar{signature}{Peter Musterfrau\\ + (ehemaliger Vorsitzender)} +\renewcommand*{\raggedsignature}{\raggedright} +%</22> +\setkomavar{fromaddress}{Hinter dem Tal 2\\ + 54321 Musterheim} +%<*!9&!10&!11> +\setkomavar{fromphone}{0\,12\,34~56\,78} +\setkomavar{fromemail}{Peter@Musterfrau.invalid} +%<*!12&!13&!14&!15> +\setkomavar{fromlogo}{\includegraphics{musterlogo}} +%</!12&!13&!14&!15> +%</!9&!10&!11> +%</!0&!1&!2&!3&!4&!5&!6&!7&!23&!label> +%<*19|20|21|22|23|label> +%<*!23&!label&!nipponA&!nipponB> +\setkomavar{location}{\raggedright + Mitglied Nr.~4711\\ + seit dem 11.09.2001\\ + Vorsitzender in den Jahren 2003--2005} +%</!23&!label&!nipponA&!nipponB> +%<*20|21|22|23|label> +\setkomavar{date}{29. Februar 2011} +%<!23&!label>\setkomavar{place}{Musterheim} +%<*21|22|23|label> +\setkomavar{subject}{Mitgliederversammlung vermisst!} +%</21|22|23|label> +%</20|21|22|23|label> +%</19|20|21|22|23|label> +%<!5>\begin{letter}{% +%<5>\begin{letter}[fontsize=14pt]{% +%<*ngerman> + Petra Mustermann\\ + Vor dem Berg 1\\ + 12345 Musterhausen% +%</ngerman> + } +%<label>\savelabel{3}{2} +\opening{Liebe Vereinsvorsitzende,} +%<*!0> +%<*ngerman> +seit einem Jahr gab es nun keine Mitgliederversammlung +mehr. Ich erinnere daran, dass unsere Satzung eine solche +alle halbe Jahr vorsieht. Ich fordere den Vorstand daher +auf, umgehend eine solche in Angriff zu nehmen. +\closing{In Erwartung einer Einladung} +%</ngerman> +%<*!1> +%<*ngerman> +\ps PS: Ich hoffe, Du nimmst mir das nicht krumm. +%</ngerman> +%<*!2> +%<*!3> +%<*ngerman> +\setkomavar*{enclseparator}{Anlage} +\encl{Auszug aus der Satzung, in dem die + Mitgliederversammlungen geregelt sind} +%</ngerman> +%</!3> +%<*ngerman> +\cc{Die Vereinsvorsitzende\\Alle Mitglieder} +%</ngerman> +%</!2> +%</!1> +%</!0> +\end{letter} +\end{document} +%</example> +%<*logo> +%%! +%%BoundingBox: 0 0 72 72 +0 0 moveto +72 72 rlineto +72 neg 0 rlineto +72 72 neg rlineto +stroke +0 0 moveto +/Charter findfont +72 scalefont +setfont +(M) show +showpage +%</logo> +% \end{macrocode} +% +% \iffalse +\endinput +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: +% \fi diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/scrpage2.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrpage2.tex index 268147fda33..7e9f9323e65 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/german/scrpage2.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrpage2.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrpage2.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrpage2.tex -% Copyright (c) Markus Kohm, 2001-2007 +% Copyright (c) Markus Kohm, 2001-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -45,47 +45,44 @@ % % ============================================================================ -\ProvidesFile{scrpage2.tex}[2007/12/07 KOMA-Script guide (chapter:scrpage2)] +\ProvidesFile{scrpage2.tex}[2008/07/31 KOMA-Script guide (chapter:scrpage2)] \chapter{Kopf- und Fußzeilen mit \Package{scrpage2}} \labelbase{scrpage} % \BeginIndex{Package}{scrpage2}% -\iffree{}{\looseness=-1}% Wie bereits in den beiden vorherigen Kapiteln erwähnt wurde, enthält \KOMAScript{} auch ein Paket, das weitreichende Kontrolle über Format und Inhalt der Kopf- und Fußzeilen gibt. Bereits seit 2001 wird hierfür nicht mehr -das \Package{scrpage}\IndexPackage{scrpage}, sondern das stark erweiterte +\Package{scrpage}\IndexPackage{scrpage}, sondern das stark erweiterte Paket \Package{scrpage2} verwendet. Diese Anleitung beschreibt daher auch nur noch -\Package{scrpage2}. Das Paket \Package{scrpage} ist obsolet. +\Package{scrpage2}. Das Paket \Package{scrpage} ist obsolet. \begin{Explain} An Stelle von \Package{scrpage2} kann natürlich auch \Package{fancyhdr} (siehe \cite{package:fancyhdr}) verwendet werden. \Package{scrpage2} harmoniert jedoch mit den \KOMAScript-Klassen deutlich besser. Genau deshalb und weil der Vorläufer von \Package{fancyhdr} damals viele Möglichkeiten - vermissen lies, ist \Package{scrpage2} entstanden. Natürlich ist + vermissen lies, ist \Package{scrpage2} entstanden. Natürlich ist das Paket \Package{scrpage2} nicht an eine \KOMAScript-Klasse gebunden, sondern kann auch sehr gut mit anderen Klassen verwendet werden. \end{Explain} -Zu den grundlegenden Funktionen von \Package{scrpage2} gehören auch -vordefinierte, konfigurierbare Seitenstile. - \section{Grundlegende Funktionen}\label{sec:scrpage.basics} \begin{Explain} Um die nachfolgende Beschreibung zu verstehen, muss noch einiges zu \LaTeX{} - gesagt werden. Im \LaTeX-Kern sind die Standardseitenstile \PValue{empty}, - welcher eine völlig undekorierte Seite erzeugt, und \PValue{plain}, welcher - meist nur die Seitenzahl enthält, definiert. In vielen Klassen ist der Stil - \PValue{headings} zu finden, welcher eine komplexe Seitendekoration mit - automatischen Kolumnentitel\Index{Kolumnentitel>automatisch} erzeugt. Die - Variante \PValue{myheadings} gleicht \PValue{headings}. Die Kolumnentitel + gesagt werden. Im \LaTeX-Kern sind die Standardseitenstile + \Pagestyle{empty}, welcher eine völlig undekorierte Seite erzeugt, und + \Pagestyle{plain}, welcher meist nur die Seitenzahl enthält, definiert. In + vielen Klassen ist der Stil \Pagestyle{headings} zu finden, welcher eine + komplexe Seitendekoration mit automatischen + Kolumnentitel\Index{Kolumnentitel>automatisch} erzeugt. Die Variante + \Pagestyle{myheadings} gleicht \Pagestyle{headings}. Die Kolumnentitel müssen dabei aber manuell\Index{Kolumnentitel>manuell} gesetzt werden. - Ausführlicher wird das in \autoref{sec:maincls.pageStyle} beschrieben. Dort - wird auch erläutert, dass auf einigen Seiten der Seitenstil automatisch -- in - der Regel zu \PValue{plain} -- wechselt. + Ausführlicher wird das in \autoref{sec:maincls.pagestyle} beschrieben. Dort + wird auch erläutert, dass auf einigen Seiten der Seitenstil automatisch -- + in der Regel zu \Pagestyle{plain} -- wechselt. \end{Explain} Das Paket \Package{scrpage2} unterscheidet nicht mehr zwischen Seitenstilen @@ -95,6 +92,10 @@ gearbeitet wird. Näheres dazu finden Sie in \autoref{sec:scrpage.basics.mark}. \subsection{Vordefinierte Seitenstile}\label{sec:scrpage.basics.buildIn} + +Zu den grundlegenden Funktionen von \Package{scrpage2} gehören unter anderem +vordefinierte, konfigurierbare Seitenstile. + % \lehead ... % scrheadings % \headmark \pagemark @@ -103,21 +104,23 @@ gearbeitet wird. Näheres dazu finden Sie in \autoref{sec:scrpage.basics.mark}. \Pagestyle{scrheadings}\\ \Pagestyle{scrplain} \end{Declaration}% -\BeginIndex{Pagestyle}{scrheadings}\BeginIndex{Pagestyle}{scrplain}% +\BeginIndex{Pagestyle}{scrheadings}% +\BeginIndex{Pagestyle}{scrplain}% \Index{Seitenstil}% Das Paket \Package{scrpage2} liefert einen eigenen Seitenstil namens -\PValue{scrheadings}. Dieser Seitenstil kann mittels +\Pagestyle{scrheadings}. Dieser Seitenstil kann mittels \Macro{pagestyle}\PParameter{scrheadings} aktiviert werden. Wird dieser -Seitenstil benutzt, dann wird gleichzeitig der \PValue{plain}-Stil durch den -dazu passenden Stil \PValue{scrplain} ersetzt. Passend bedeutet, dass auch der -\PValue{plain}-Stil auf in \autoref{sec:scrpage.basics.format} vorgestellte +Seitenstil benutzt, dann wird gleichzeitig der plain-Stil durch den +dazu passenden Stil \Pagestyle{scrplain} ersetzt. Passend bedeutet, dass auch der +plain-Stil auf in \autoref{sec:scrpage.basics.format} vorgestellte Befehle, die beispielsweise die Kopfbreite ändern, reagiert und im Grundlayout -übereinstimmt. Die Aktivierung des Seitenstils \PValue{scrheadings} oder des -zugehörigen \PValue{plain}-Stils, \PValue{scrplain}, hat keine Auswirkung +übereinstimmt. Die Aktivierung des Seitenstils \Pagestyle{scrheadings} oder des +zugehörigen plain-Stils, \Pagestyle{scrplain}, hat keine Auswirkung darauf, ob mit manuellen oder automatischen Kolumnentiteln\Index{Kolumnentitel>automatisch}\Index{Kolumnentitel>manuell} gearbeitet wird (siehe \autoref{sec:scrpage.basics.mark}). Der Seitenstil -\PValue{scrplain} kann auch direkt per \Macro{pagestyle} aktiviert werden. +\Pagestyle{scrplain} kann auch direkt per \Macro{pagestyle} aktiviert werden. + \begin{Declaration} \Macro{lehead}% @@ -157,17 +160,34 @@ gearbeitet wird (siehe \autoref{sec:scrpage.basics.mark}). Der Seitenstil \Macro{ofoot}% \OParameter{scrplain-außen}\Parameter{scrheadings-außen} \end{Declaration}% -\BeginIndex{Cmd}{lehead}\BeginIndex{Cmd}{cehead}\BeginIndex{Cmd}{rehead}% -\BeginIndex{Cmd}{ihead}\BeginIndex{Cmd}{chead}\BeginIndex{Cmd}{ohead}% -\BeginIndex{Cmd}{lohead}\BeginIndex{Cmd}{cohead}\BeginIndex{Cmd}{rohead}% -\BeginIndex{Cmd}{lefoot}\BeginIndex{Cmd}{cefoot}\BeginIndex{Cmd}{refoot}% -\BeginIndex{Cmd}{ifoot}\BeginIndex{Cmd}{cfoot}\BeginIndex{Cmd}{rfoot}% -\BeginIndex{Cmd}{lofoot}\BeginIndex{Cmd}{cofoot}\BeginIndex{Cmd}{rofoot}% -Diese Seitenstile sind so definiert, dass sowohl im Kopf als auch im -Fuß drei Felder vorhanden sind, deren Inhalt modifiziert werden kann. -Die Befehle zur Modifikation sind in \autoref{fig:scrpage.leheadetall} -verdeutlicht. Die in der Mitte dargestellten Befehle modifizieren sowohl -die Felder der linken als auch der rechten Seite. +\BeginIndex{Cmd}{lehead}% +\BeginIndex{Cmd}{cehead}% +\BeginIndex{Cmd}{rehead}% +\BeginIndex{Cmd}{ihead}% +\BeginIndex{Cmd}{chead}% +\BeginIndex{Cmd}{ohead}% +\BeginIndex{Cmd}{lohead}% +\BeginIndex{Cmd}{cohead}% +\BeginIndex{Cmd}{rohead}% +\BeginIndex{Cmd}{lefoot}% +\BeginIndex{Cmd}{cefoot}% +\BeginIndex{Cmd}{refoot}% +\BeginIndex{Cmd}{ifoot}% +\BeginIndex{Cmd}{cfoot}% +\BeginIndex{Cmd}{rfoot}% +\BeginIndex{Cmd}{lofoot}% +\BeginIndex{Cmd}{cofoot}% +\BeginIndex{Cmd}{rofoot}% +Die Seitenstile von \Package{scrpage2} sind so definiert, dass ihr Kopf und +Fuß flexibel angepasst werden kann. Hierzu sind sowohl im Kopf als auch im Fuß +drei Felder vorhanden sind, deren Inhalt modifiziert werden kann. Die Befehle +zur Modifikation sind in \autoref{fig:scrpage.leheadetall} verdeutlicht. Die +in der Mitte dargestellten Befehle modifizieren sowohl die Felder der linken +als auch der rechten Seite. Alle Befehle haben sowohl ein optionales als auch +ein obligatorisches Argument. Das optionale Argument bestimmt jeweils das +durch den Befehl festgelegte Feld im plain-Seitenstil, +\Pagestyle{scrplain}. Das obligatorische Argument definiert das entsprechende +Feld im Seitenstil \Pagestyle{scrheadings}. \begin{figure} \centering @@ -228,66 +248,68 @@ die Felder der linken als auch der rechten Seite. \put(95,11){\makebox(0,0)[t]{\Macro{rofoot}}} \end{picture} \caption[Befehle zur Manipulation der \Package{scrpage2}-Seitenstile]% - {Zuordung der Befehle zur Manipulation der Seitenstile \PValue{scrheadings} - und \PValue{scrplain} zu den manipulierten Seitenelementen} + {Zuordnung der Befehle zur Manipulation der Seitenstile + \Pagestyle{scrheadings} und \Pagestyle{scrplain} zu den manipulierten + Seitenelementen} \label{fig:scrpage.leheadetall} \end{figure} \begin{Example} -Angenommen, man möchte zentriert im Seitenfuß die Seitenzahl -dargestellt haben, dann benutzt man einfach: -\begin{lstlisting} + Angenommen, man möchte bei \Pagestyle{scrheadings} zentriert im Seitenfuß + die Seitenzahl dargestellt haben, dann benutzt man einfach: + \begin{lstcode} \cfoot{\pagemark} -\end{lstlisting} -Sollen die Seitenzahlen\Index{Paginierung} im Kopf außen und die -Kolumnentitel\Index{Kolumnentitel} innen stehen, dann erfolgt dies mit: -\begin{lstlisting} + \end{lstcode} + Sollen die Seitenzahlen\Index{Paginierung} im Kopf außen und die + Kolumnentitel\Index{Kolumnentitel} innen stehen, dann erfolgt dies mit: + \begin{lstcode} \ohead{\pagemark} \ihead{\headmark} \cfoot{} -\end{lstlisting} -Das \Macro{cfoot}\PParameter{} ist nur dann notwendig, wenn eine -möglicherweise im Fuß vorhandene Seitenzahl entfernt werden muss. + \end{lstcode} + Das \Macro{cfoot}\PParameter{} ist nur notwendig, um eine möglicherweise in + der Mitte des Fußes vorhandene Seitenzahl zu entfernen. \end{Example} -Die anderen Befehle, die direkt nur einem Feld zugeordnet sind, -können für anspruchsvollere Vorhaben genutzt werden. +Die Befehle, die direkt nur einem Feld zugeordnet sind, können für +anspruchsvollere Vorhaben genutzt werden. \begin{Example} -Angenommen, man hat den Auf"|trag, einen Jahresbericht einer Firma -zu erstellen, dann könnte das so angegangen werden: -\begin{lstlisting} + Angenommen, man hat den Auf"|trag, einen Jahresbericht einer Firma zu + erstellen, dann könnte das so angegangen werden: + \begin{lstcode} \ohead{\pagemark} \rehead{Jahresbericht 2001} \lohead{\headmark} \cefoot{Firma WasWeißIch} \cofoot{Abteilung Entwicklung} -\end{lstlisting} -Natürlich muss man hier dafür sorgen, dass mittels \Macro{cofoot} -der Fuß der rechten Seite aktualisiert wird, wenn eine neue - Abteilung im Bericht besprochen wird. + \end{lstcode} + Natürlich muss man hier dafür sorgen, dass mittels \Macro{cofoot} der Fuß + der rechten Seite aktualisiert wird, wenn eine neue Abteilung im Bericht + besprochen wird. \end{Example} -Wie oben dargestellt, gibt es einen zu \PValue{scrheadings} -korrespondierenden \PValue{plain}-Seitenstil. -Da es auch möglich sein soll, diesen Stil anzupassen, -unterstüt"-zen die Befehle ein optionales Argument. -Damit kann der Inhalt des entsprechenden Feldes -im \PValue{plain}-Seitenstil modifiziert werden. +Wie oben dargestellt, gibt es einen zu \Pagestyle{scrheadings} +korrespondierenden plain-Seitenstil. Da es auch möglich sein soll, diesen +Stil anzupassen, unterstüt"-zen die Befehle ein optionales Argument. Damit +kann der Inhalt des entsprechenden Feldes im plain-Seitenstil modifiziert +werden. \begin{Example} -Um für die Nutzung von \PValue{scrheadings} die Position der -Seitenzahlen festzulegen, kann man folgendes benutzen: -\begin{lstlisting} + Um für die Nutzung von \Pagestyle{scrheadings} die Position der Seitenzahlen + festzulegen, kann man folgendes benutzen: + \begin{lstcode} \cfoot[\pagemark]{} \ohead[]{\pagemark} -\end{lstlisting} -Wird nun der Stil \PValue{plain} genutzt, beispielsweise weil -\Macro{chapter} eine neue Seite beginnt und darauf umschaltet, -dann steht die Seitenzahl zentriert im Seitenfuß. + \end{lstcode} + Wird nun der Stil \Pagestyle{plain} genutzt, beispielsweise weil + \Macro{chapter} eine neue Seite beginnt und darauf umschaltet, dann steht + die Seitenzahl zentriert im Seitenfuß. \end{Example} % -\EndIndex{Pagestyle}{scrheadings}\EndIndex{Pagestyle}{scrplain}% +\EndIndex{Pagestyle}{scrheadings}% +\EndIndex{Pagestyle}{scrplain}% + % Die folgende Deklaration und Erklaerung wurde eingefuegt von % mjk 2001-08-18 @@ -299,38 +321,38 @@ dann steht die Seitenzahl zentriert im Seitenfuß. \BeginIndex{Cmd}{clearscrheadings}% \BeginIndex{Cmd}{clearscrplain}% \BeginIndex{Cmd}{clearscrheadfoot}% -Will man sowohl den Seitenstil \PValue{scrheadings} als auch den dazu -gehörenden \PValue{plain}-Seitenstil von Grund auf neu definieren, +Will man sowohl den Seitenstil \Pagestyle{scrheadings} als auch den dazu +gehörenden plain-Seitenstil von Grund auf neu definieren, muss man häufig zusätzlich einige der bereits belegten Seitenelemente löschen. Da man selten alle Elemente mit neuem Inhalt füllt, sind dazu in den meisten Fällen mehrere Befehle mit leeren Parametern notwendig. Mit Hilfe dieser drei Befehle ist das Löschen schnell und gründlich möglich. Während \Macro{clearscrheadings} lediglich alle -Felder des Seitenstils \PValue{scrheadings} und \Macro{clearscrplain} -alle Felder des zugehörigen \PValue{plain}-Seitenstils löscht, werden +Felder des Seitenstils \Pagestyle{scrheadings} und \Macro{clearscrplain} +alle Felder des zugehörigen plain-Seitenstils löscht, werden von \Macro{clearscrheadfoot} alle Felder beider Seitenstile auf leere Inhalte gesetzt. \begin{Example} Sie wollen unabhängig davon, wie die Seitenstile derzeit aussehen, die Standardform der \KOMAScript-Klassen bei zweiseitigem Satz erreichen. Dies ist mit nur drei Befehlen möglich: -\begin{lstlisting} + \begin{lstcode} \clearscrheadfoot \ohead{\headmark} \ofoot[\pagemark]{\pagemark} -\end{lstlisting} + \end{lstcode} Ohne die Befehle \Macro{clearscrheadfoot}, \Macro{clearscrheadings} und \Macro{clearscrplain} wären doppelt so viele Anweisungen und neun weitere leere Argumente notwendig: -\begin{lstlisting} + \begin{lstcode} \ihead[]{} \chead[]{} \ohead[]{\headmark} \ifoot[]{} \cfoot[]{} \ofoot[\pagemark]{\pagemark} -\end{lstlisting} + \end{lstcode} Einige davon könnten natürlich entfallen, wenn man von einer konkreten Vorbelegung ausginge. \end{Example} @@ -347,9 +369,8 @@ Inhalte gesetzt. \EndIndex{Cmd}{lofoot}\EndIndex{Cmd}{cofoot}\EndIndex{Cmd}{rofoot}% % Satz leicht geaendert: mjk 2001-08-18 -In den vorausgehenden Beispielen wurden schon zwei -Befehle benutzt, die noch gar nicht besprochen wurden. -Das soll jetzt nachgeholt werden. +In den vorausgehenden Beispielen wurden schon zwei Befehle benutzt, die noch +gar nicht besprochen wurden. Das soll jetzt nachgeholt werden. % Die folgende Deklaration und Erklaerung wurde eingefuegt von % mjk 2001-08-17 @@ -357,58 +378,61 @@ Das soll jetzt nachgeholt werden. \Macro{leftmark}\\ \Macro{rightmark} \end{Declaration}% -\vspace{1pt}% Umbruchverbesserungstrick! -\BeginIndex{Cmd}{leftmark}\BeginIndex{Cmd}{rightmark}% -Diese beiden Befehle erlauben es auf die Kolumnentitel zuzugreifen, die +\BeginIndex{Cmd}{leftmark}% +\BeginIndex{Cmd}{rightmark}% +Diese beiden Befehle erlauben es, auf die Kolumnentitel zuzugreifen, die normalerweise für die linke bzw. die rechte Seite gedacht sind. Diese beiden Befehle werden nicht von \Package{scrpage2}, sondern direkt vom \LaTeX-Kern zur Verfügung gestellt. Wenn in diesem Kapitel vom Kolumnentitel der linken Seite oder vom Kolumnentitel der rechten Seite die Rede ist, dann ist damit eigentlich der Inhalt von \Macro{leftmark} und \Macro{rightmark} gemeint. % -\EndIndex{Cmd}{leftmark}\EndIndex{Cmd}{rightmark}% +\EndIndex{Cmd}{leftmark}% +\EndIndex{Cmd}{rightmark}% -\BeginIndex{Cmd}{headmark} \begin{Declaration} \Macro{headmark} \end{Declaration}% -Dieser Befehl ermöglicht es, auf die Inhalte der Kolumnentitel -zuzugreifen. -Im Gegensatz zu den originalen \LaTeX{}-Befehlen -\Macro{leftmark} und \Macro{rightmark} braucht man -nicht auf die richtige Zuordnung zur linken oder rechten -Seite zu achten. +\BeginIndex{Cmd}{headmark}% +Dieser Befehl ermöglicht es, auf die Inhalte der Kolumnentitel zuzugreifen. +Im Gegensatz zu den originalen \LaTeX{}-Befehlen \Macro{leftmark} und +\Macro{rightmark} braucht man nicht auf die richtige Zuordnung zur linken oder +rechten Seite zu achten.% +% \EndIndex{Cmd}{headmark} -\BeginIndex{Cmd}{pagemark} + \begin{Declaration} -\Macro{pagemark} + \Macro{pagemark} \end{Declaration}% +\BeginIndex{Cmd}{pagemark}% Dieser Befehl ermöglicht den Zugriff auf die Seitenzahl. Im -\autoref{sec:scrpage.basics.format}, \autopageref{desc:scrpage.macro.pnumfont} +\autoref{sec:scrpage.basics.format}, \autopageref{desc:scrpage.cmd.pnumfont} wird der Befehl \Macro{pnumfont} zur Formatierung der Seitenzahl vorgestellt, -den \Macro{pagemark} automatisch berücksichtigt. +den \Macro{pagemark} automatisch berücksichtigt.% % \EndIndex{Cmd}{pagemark} -\BeginIndex{Cmd}{pagestyle}\BeginIndex{Pagestyle}{useheadings} + \begin{Declaration} -\Option{useheadings} + \Pagestyle{useheadings} \end{Declaration}% -\phantomsection\label{desc:scrpage.pagestyle.useheadings}% -Das Paket \Package{scrpage2} ist in erster Linie dafür gedacht, dass -die bereitgestellten Stile benutzt oder eigene Stile definiert -werden. Jedoch kann es notwendig sein, auch auf einen von der -Dokumentenklasse zur Verfügung gestellten Stil zurückzuschalten. -Dieses mit \Macro{pagestyle}\PParameter{headings} vorzunehmen wäre -naheliegend, hat aber den Nachteil, dass die nachfolgend besprochenen -Befehle \Macro{automark} und \Macro{manualmark} nicht wie erwartet -funktionieren. Aus diesem Grund sollte auf die originalen Stile mit -\Macro{pagestyle}\PParameter{useheadings} umgeschalten werden. Eine -solche Umschaltung hat dann keine Auswirkung darauf, ob mit manuellen -oder automatischen Kolumnentiteln gearbeitet wird. -\EndIndex{Cmd}{pagestyle}\EndIndex{Pagestyle}{useheadings} +\BeginIndex{Pagestyle}{useheadings}% +Das Paket \Package{scrpage2} ist in erster Linie dafür gedacht, dass die +bereitgestellten Stile benutzt oder eigene Stile definiert werden. Jedoch +kann es notwendig sein, auch auf einen von der Dokumentklasse zur Verfügung +gestellten Stil zurückzuschalten. Es wäre nahe liegend, dieses mit +\Macro{pagestyle}\PParameter{headings} vorzunehmen. Das hätte aber den +Nachteil, dass die nachfolgend besprochenen Befehle \Macro{automark} und +\Macro{manualmark} nicht wie erwartet funktionierten. Daher sollte mit +\Macro{pagestyle}\PParameter{useheadings}\IndexCmd{pagestyle} auf die +originalen Stile umgeschaltet werden. Eine solche Umschaltung hat dann keine +Auswirkung darauf, ob mit manuellen oder automatischen Kolumnentiteln +gearbeitet wird.% +% +\EndIndex{Pagestyle}{useheadings} + \subsection{Manuelle und automatische Kolumnentitel} \label{sec:scrpage.basics.mark} @@ -416,36 +440,39 @@ oder automatischen Kolumnentiteln gearbeitet wird. % \BeginIndex{}{Kolumnentitel>automatisch}% \BeginIndex{}{Kolumnentitel>manuell}% -Gewöhnlich gibt es zu einem \PValue{headings}-Stil eine -\emph{my}-Variante. Ist ein solcher Stil aktiv, dann werden die -Kolumnentitel nicht mehr automatisch aktualisiert. Bei -\Package{scrpage2} wird ein anderer Weg beschritten. Ob die -Kolumnentitel lebend sind oder nicht, bestimmen die Befehle -\Macro{automark} und \Macro{manualmark}. Die Voreinstellung kann auch +Gewöhnlich gibt es zu einem \Pagestyle{headings}-Stil eine +\emph{my}-Variante. Ist ein solcher Stil aktiv, dann werden die Kolumnentitel +nicht mehr automatisch aktualisiert. Bei \Package{scrpage2} wird ein anderer +Weg beschritten. Ob die Kolumnentitel lebend sind oder nicht, bestimmen die +Befehle \Macro{automark} und \Macro{manualmark}. Die Voreinstellung kann auch bereits beim Laden des Paketes über die Optionen \Option{automark} und \Option{manualmark} beeinflusst werden (siehe \autoref{sec:scrpage.basics.options}, \autopageref{desc:scrpage.option.automark}). -\BeginIndex{Cmd}{manualmark} + \begin{Declaration} \Macro{manualmark} \end{Declaration}% +\BeginIndex{Cmd}{manualmark}% Wie der Name bereits verdeutlicht, schaltet \Macro{manualmark} die -Aktualisierung der Kolumnentitel aus. Es bleibt somit dem Nutzer -überlassen, für eine Aktualisierung bzw. für den Inhalt der -Kolumnentitel zu sorgen. Dazu stehen die Befehle -\Macro{markboth}\IndexCmd{markboth} und -\Macro{markright}\IndexCmd{markright} bereit. +Aktualisierung der Kolumnentitel aus. Es bleibt somit dem Nutzer überlassen, +für eine Aktualisierung bzw. für den Inhalt der Kolumnentitel zu sorgen. Dazu +stehen die Befehle \Macro{markboth}\IndexCmd{markboth} und +\Macro{markright}\IndexCmd{markright} aus dem \LaTeX-Kern bereit. Diese +Anweisungen sind in \autoref{sec:maincls.pagestyle}, +\autopageref{desc:maincls.cmd.markboth} erklärt.% +% \EndIndex{Cmd}{manualmark} + % Ergaenzt mjk 2001-07-17 -\BeginIndex{Cmd}{automark} \begin{Declaration} \Macro{automark}\OParameter{rechte Seite}\Parameter{linke Seite} \end{Declaration}% -Das Makro \Macro{automark} hingegen aktiviert die automatische Aktualisierung. -Für die beiden Parameter sind die Bezeichnungen der +\BeginIndex{Cmd}{automark}% +Die Anweisung \Macro{automark} aktiviert die automatische Aktualisierung des +Kolumnentitels. Für die beiden Parameter sind die Bezeichnungen der Gliederungsebenen\Index{Gliederungsebenen} einzusetzen, deren Titel an entsprechender Stelle erscheinen soll. Gültige Werte für die Parameter sind: \PValue{part}\ChangedAt{v2.2}{\Package{scrpage2}}, \PValue{chapter}, @@ -461,29 +488,31 @@ das optionale Argument im einseitigen\Index{einseitig} Satz automatisch ignoriert wird (siehe \autoref{sec:scrpage.basics.options}, \autopageref{desc:scrpage.option.autooneside}). \begin{Example} -Wird beispielsweise mit einer \emph{book}-Klasse gearbeitet, -deren höch\-ste Gliederungsebene \emph{chapter} ist, dann -stellt nach einem vorhergehenden \Macro{manualmark} der Befehl -\begin{lstlisting} + Wird beispielsweise mit einer \emph{book}-Klasse gearbeitet, deren höch\-ste + Gliederungsebene \emph{chapter} ist, dann stellt nach einem vorhergehenden + \Macro{manualmark} der Befehl + \begin{lstcode} \automark[section]{chapter} -\end{lstlisting} -den Originalzustand wieder her. Bevorzugt man stattdessen, -die tieferen Gliederungsebenen angezeigt zu bekommen, dann -erfolgt dies mit: -\begin{lstlisting} + \end{lstcode} + den Originalzustand wieder her. Bevorzugt man stattdessen, die tieferen + Gliederungsebenen angezeigt zu bekommen, dann erfolgt dies mit: + \begin{lstcode} \automark[subsection]{section} -\end{lstlisting} + \end{lstcode} \end{Example} \begin{Explain} Die Markierung der jeweils höheren Gliederungsebene wird mit Hilfe von - \Macro{markboth}\IndexCmd{markboth} gesetzt. Die Markierung der tieferen - Gliederungsebene wird mit \Macro{markright}\IndexCmd{markright} bzw. - \Macro{markleft}\IndexCmd{markleft} gesetzt. Der entsprechende Aufruf + \Macro{markboth}\IndexCmd{markboth} (siehe \autoref{sec:maincls.pagestyle}, + \autopageref{desc:maincls.cmd.markboth}) gesetzt. Die Markierung der + tieferen Gliederungsebene wird mit \Macro{markright}\IndexCmd{markright} + bzw. \Macro{markleft}\IndexCmd{markleft} gesetzt. Der entsprechende Aufruf erfolgt indirekt über die Gliederungsbefehle. Die Anweisung \Macro{markleft} wird von \Package{scrpage2} bereitgestellt und ist vergleichbar zu - \Macro{markright} aus dem \LaTeX-Kern definiert. Obwohl sie nicht als - internes Makro definiert ist, wird von einem direkten Gebrauch abgeraten. + \Macro{markright} (siehe \autoref{sec:maincls.pagestyle}, + \autopageref{desc:maincls.cmd.markright}) aus dem \LaTeX-Kern + definiert. Obwohl sie nicht als internes Makro definiert ist, wird von einem + direkten Gebrauch abgeraten. \end{Explain} \EndIndex{Cmd}{automark} \EndIndex{}{Kolumnentitel>automatisch}% @@ -495,67 +524,85 @@ erfolgt dies mit: % \headfont \pnumfont % \setheadwidth \setfootwidth % \set(head|foot)(top|sep|bot)line -Im vorherigen Abschnitt ging es hauptsächlich um inhaltliche -Dinge. -Das genügt natürlich nicht, um die gestalterischen Ambitionen -zu befriedigen. Deshalb soll es sich in diesem Abschnitt -ausschließlich darum drehen. -\BeginIndex{Cmd}{headfont}\BeginIndex{Cmd}{pnumfont} +Im vorherigen Abschnitt ging es hauptsächlich um inhaltliche Dinge. Das +genügt natürlich nicht, um die gestalterischen Ambitionen zu +befriedigen. Deshalb soll es sich in diesem Abschnitt ausschließlich darum +drehen. + \begin{Declaration} \Macro{headfont}\\ + \Macro{footfont}\\ \Macro{pnumfont} \end{Declaration}% -Die Schriftformatierung übernimmt -der Befehl \Macro{headfont} für den Seitenkopf und -fuß -und \Macro{pnumfont} für die Seitenzahl. +\BeginIndex{Cmd}{headfont}% +\BeginIndex{Cmd}{footfont}% +\BeginIndex{Cmd}{pnumfont}% +Die Schriftformatierung für den Seitenkopf und -fuß übernimmt der Befehl +\Macro{headfont}, \Macro{footfont} die Abweichung davon für den Fuß und +\Macro{pnumfont} wiederum die Abweichung davon für die Seitenzahl. \begin{Example} -Um beispielsweise den Kopf und Fuß in fetter serifenloser Schrift zu setzen, -und die Seitenzahl geneigt serif erscheinen zu lassen, -nutzt man folgende Definitionen. -\begin{lstlisting} - \renewcommand{\headfont}{% + Um beispielsweise den Kopf in fetter, serifenloser Schrift und den Fuß in + nicht fetter, serifenloser Schrift zu setzen und die Seitenzahl geneigt + mit Serifen erscheinen zu lassen, nutzt man folgende Definitionen: + \begin{lstcode} + \renewcommand*{\headfont}{% \normalfont\sffamily\bfseries } - \renewcommand{\pnumfont}{% + \renewcommand*{\footfont}{% + \normalfont\sffamily + } + \renewcommand*{\pnumfont}{% \normalfont\rmfamily\slshape } -\end{lstlisting} + \end{lstcode} \end{Example} -\EndIndex{Cmd}{headfont}\EndIndex{Cmd}{pnumfont} -% -Ab Version 2.8p der \KOMAScript{}-Klassen wurde die Schnittstelle -für Schriftattribute vereinheitlicht. -Wird \Package{srcpage2} in Verbindung mit einer dieser Klassen -verwendet, dann sollte die Zuweisung in der Art erfolgen, wie -sie im \autoref{sec:maincls.font} beschrieben wird. +\EndIndex{Cmd}{pnumfont}% +\EndIndex{Cmd}{footfont}% +\EndIndex{Cmd}{headfont}% + + +\BeginIndex{FontElement}{pagehead}% +\BeginIndex{FontElement}{pagefoot}% +\BeginIndex{FontElement}{pagenumber}% +Ab Version 2.8p der \KOMAScript{}-Klassen wurde die Schnittstelle für +Schriftattribute vereinheitlicht. Wird \Package{srcpage2} in Verbindung mit +einer dieser Klassen verwendet, dann sollte die Zuweisung in der Art erfolgen, +wie sie im \autoref{sec:maincls.textmarkup} ab +\autopageref{sec:maincls.textmarkup} beschrieben wird. \begin{Example} -Statt dem \Macro{renewcommand} wird dann der Befehl -\Macro{setkomafont} verwendet. -Die vorhergehenden Definitionen lauten dann: -\begin{lstlisting} + Statt \Macro{renewcommand} wird bei Verwendung einer \KOMAScript-Klasse + vorzugsweise der Befehl \Macro{setkomafont} verwendet. Die vorhergehenden + Definitionen lauten damit: + \begin{lstcode} \setkomafont{pagehead}{% \normalfont\sffamily\bfseries } + \setkomafont{pagefoot}{% + \normalfont\sffamily + } \setkomafont{pagenumber}{% \normalfont\rmfamily\slshape } -\end{lstlisting} + \end{lstcode} \end{Example} +\EndIndex{FontElement}{pagenumber}% +\EndIndex{FontElement}{pagefoot}% +\EndIndex{FontElement}{pagehead}% + -\BeginIndex{Cmd}{setheadwidth}\BeginIndex{Cmd}{setfootwidth} \begin{Declaration} \Macro{setheadwidth}\OParameter{Verschiebung}\Parameter{Breite}\\ \Macro{setfootwidth}\OParameter{Verschiebung}\Parameter{Breite} \end{Declaration}% -Normalerweise entsprechen die Breiten von Kopf- und Fußzeile der Breite -des Textbereichs.\Index{Kopf>Breite}\Index{Fuß>Breite} -Die Befehle \Macro{setheadwidth} und \Macro{setfootwidth} -ermöglichen dem Anwender, auf einfache Weise die Breiten seinen -Bedürfnissen anzupassen. -Das obligatorische Argument \PName{Breite} nimmt den Wert der Breite -des Kopfes bzw. des Fußes auf, \PName{Verschiebung} ist ein -Längenmaß für die Verschiebung des entsprechenden Elements in Richtung -des äußeren Seitenrandes. +\BeginIndex{Cmd}{setheadwidth}% +\BeginIndex{Cmd}{setfootwidth}% +Normalerweise entsprechen die Breiten von Kopf- und Fußzeile der Breite des +Textbereichs.\Index{Kopf>Breite}\Index{Fuss=Fuß>Breite} Die Befehle +\Macro{setheadwidth} und \Macro{setfootwidth} ermöglichen dem Anwender, auf +einfache Weise die Breiten seinen Bedürfnissen anzupassen. Das obligatorische +Argument \PName{Breite} nimmt den Wert der Breite des Kopfes bzw. des Fußes +auf, \PName{Verschiebung} ist ein Längenmaß für die Verschiebung des +entsprechenden Elements in Richtung des äußeren Seitenrandes. Für die möglichen Standardfälle akzeptiert das obligatorische Argument \PName{Breite} auch folgende symbolische Werte: @@ -563,79 +610,76 @@ Für die möglichen Standardfälle akzeptiert das obligatorische Argument \item[\PValue{paper}] die Breite des Papiers \item[\PValue{page}] die Breite der Seite \item[\PValue{text}] die Breite des Textbereichs -\item[\PValue{textwithmarginpar}] die Breite des Textbereichs inklusive dem +\item[\PValue{textwithmarginpar}] die Breite des Textbereichs inklusive Seitenrand \item[\PValue{head}] die aktuelle Breite des Seitenkopfes \item[\PValue{foot}] die aktuelle Breite des Seitenfußes \end{labeling} -Der Unterschied zwischen \PValue{paper} und \PValue{page} besteht -darin, dass \PValue{page} die Breite des Papiers abzüglich der -Bindekorrektur ist, falls das -\Package{typearea}-Paket\IndexPackage{typearea} verwendet wird (siehe -\autoref{cha:typearea}). Ohne Verwendung von \Package{typearea} -sind \PValue{paper} und \PValue{page} -identisch.%mjk-2001-08-17 +Der Unterschied zwischen \PValue{paper} und \PValue{page} besteht darin, dass +\PValue{page} die Breite des Papiers abzüglich der Bindekorrektur ist, falls +das \Package{typearea}-Paket\IndexPackage{typearea} verwendet wird (siehe +\autoref{cha:typearea}). Ohne Verwendung von \Package{typearea} sind +\PValue{paper} und \PValue{page} identisch.%mjk-2001-08-17 \begin{Example} Angenommen, man möchte ein Seitenlayout wie im \emph{\LaTeX-Begleiter}, bei dem die Kopfzeile in den Rand ragt, dann geschieht das ganz einfach mit: -\begin{lstlisting} + \begin{lstcode} \setheadwidth[0pt]{textwithmarginpar} -\end{lstlisting} + \end{lstcode} % -und sieht dann auf einer rechten Seite folgendermaßen aus: + und sieht dann auf einer rechten Seite folgendermaßen aus: % -\begin{XmpTopPage} - \XmpHeading{10,29}{85} - \thinlines\XmpRule{10,27}{85} - \XmpSetText[\XmpTopText]{10,24} - \XmpMarginNote{83,14} -\end{XmpTopPage} + \begin{XmpTopPage} + \XmpHeading{10,29}{85} + \thinlines\XmpRule{10,27}{85} + \XmpSetText[\XmpTopText]{10,24} + \XmpMarginNote{83,14} + \end{XmpTopPage} % -Soll der Seitenfuß die gleiche Breite und Ausrichtung haben, dann hat -man jetzt zwei Wege. -Der erste ist, man wiederholt das Gleiche für den Seitenfuß mit: -\begin{lstlisting} + Soll der Seitenfuß die gleiche Breite und Ausrichtung haben, dann hat man + jetzt zwei Wege. Der erste ist, man wiederholt das Gleiche für den + Seitenfuß mit: + \begin{lstcode} \setfootwidth[0pt]{textwithmarginpar} -\end{lstlisting} + \end{lstcode} % -oder man greift auf den anderen symbolischen Wert \PValue{head} zurück, -da der Kopf bereits die gewünschte Breite hat. -\begin{lstlisting} + oder man greift auf den anderen symbolischen Wert \PValue{head} zurück, da + der Kopf bereits die gewünschte Breite hat. + \begin{lstcode} \setfootwidth[0pt]{head} -\end{lstlisting} + \end{lstcode} \end{Example} Wird keine Verschiebung angegeben, das heißt auf das optionale Argument -verzichtet, dann erscheint der Kopf bzw. der Fuß symmetrisch auf -der Seite angeordnet. Es wird somit ein Wert für die Verschiebung -automatisch ermittelt, der der aktuellen Seitengestalt entspricht. +verzichtet, dann erscheint der Kopf bzw. der Fuß symmetrisch auf der Seite +angeordnet. Es wird somit ein Wert für die Verschiebung automatisch ermittelt, +der der aktuellen Seitengestalt entspricht. \begin{Example} -Entsprechend dem vorherigen Beispiel wird hier auf das optionale -Argument verzichtet: -\begin{lstlisting} + Entsprechend dem vorherigen Beispiel wird hier auf das optionale Argument + verzichtet: + \begin{lstcode} \setheadwidth{textwithmarginpar} -\end{lstlisting} + \end{lstcode} % -und sieht dann auf einer rechten Seite folgendermaßen aus: + und sieht dann auf einer rechten Seite folgendermaßen aus: % -\begin{XmpTopPage} + \begin{XmpTopPage} \XmpHeading{5,29}{85} \thinlines\XmpRule{5,27}{85} \XmpSetText[\XmpTopText]{10,24} \XmpMarginNote{83,14} -\end{XmpTopPage} + \end{XmpTopPage} \end{Example} -Wie zu sehen, ist der Kopf jetzt nach innen verschoben, wobei -die Kopfbreite sich nicht geändert hat. Die Verschiebung ist -so berechnet, dass die Seitenproportionen auch hier sichtbar werden. +Wie zu sehen, ist der Kopf jetzt nach innen verschoben, wobei die Kopfbreite +sich nicht geändert hat. Die Verschiebung ist so berechnet, dass die +Seitenproportionen auch hier sichtbar werden. \EndIndex{Cmd}{setheadwidth}\EndIndex{Cmd}{setfootwidth} -\BeginIndex{Cmd}{setheadtopline}\BeginIndex{Cmd}{setheadsepline} -\BeginIndex{Cmd}{setfootsepline}\BeginIndex{Cmd}{setfootbotline} + \begin{Declaration} \Macro{setheadtopline}\OParameter{Länge}\Parameter{Dicke}% \OParameter{Anweisungen}\\ @@ -646,9 +690,15 @@ so berechnet, dass die Seitenproportionen auch hier sichtbar werden. \Macro{setfootbotline}\OParameter{Länge}\Parameter{Dicke}% \OParameter{Anweisungen} \end{Declaration}% -Entsprechend den Größenparametern für die Kopf- und Fußzeile -gibt es auch Befehle, die die Dimensionen der Linien im Kopf und -Fuß modifizieren können. +\BeginIndex{Cmd}{setheadtopline}\BeginIndex{Cmd}{setheadsepline}% +\BeginIndex{Cmd}{setfootsepline}\BeginIndex{Cmd}{setfootbotline}% +Entsprechend den Größenparametern für die Kopf- und Fußzeile gibt es auch +Befehle, die die Dimensionen der Linien im Kopf und Fuß modifizieren +können. Dazu sollten diese Linien aber zunächst erst einmal eingeschaltet +werden. Siehe hierzu die Optionen \Option{headtopline}, \Option{headsepline}, +\Option{footsepline}, \Option{footbotline} in +\autoref{sec:scrpage.basics.options}, +\autopageref{desc:scrpage.option.headsepline}. \begin{labeling}[\ --]{\Macro{setfootsepline}} \item[\Macro{setheadtopline}] modifiziert die Parameter für die Linie @@ -661,34 +711,33 @@ zwischen Text und Fuß unter dem Seitenfuß \end{labeling} -Das obligatorische Argument \PName{Dicke} bestimmt, wie stark -die Linie gezeichnet wird. -Das optionale Argument \PName{Länge} akzeptiert die -gleichen symbolischen Werte wie \PName{Breite} bei -\Macro{setheadwidth}, als auch einen normalen Längenausdruck. -Solange im Dokument dem optionalen Argument \PName{Länge} kein Wert -zugewiesen wurde, passt sich die entsprechende Linienlänge automatisch der -Breite des Kopfes bzw. des Fußes an. +Das obligatorische Argument \PName{Dicke} bestimmt, wie stark die Linie +gezeichnet wird. Das optionale Argument \PName{Länge} akzeptiert die gleichen +symbolischen Werte wie \PName{Breite} bei \Macro{setheadwidth}, also auch einen +normalen Längenausdruck. Solange im Dokument dem optionalen Argument +\PName{Länge} kein Wert zugewiesen wurde, passt sich die entsprechende +Linienlänge automatisch der Breite des Kopfes bzw. des Fußes an. Möchte man diesen Automatismus für die Länge einer Linie wieder restaurieren, dann nutzt man im Längenargument den Wert \PValue{auto}. -Mit\ChangedAt{v2.2}{\Package{scrpage2}} -dem optionalen Argument \PName{Anweisungen} können zusätzliche Anweisungen -definiert werden, die vor dem Zeichnen der jeweiligen Linie auszuführen sind. -Das können beispielsweise Anweisungen sein, um die +Mit\ChangedAt{v2.2}{\Package{scrpage2}} dem optionalen Argument +\PName{Anweisungen} können zusätzliche Anweisungen definiert werden, die vor +dem Zeichnen der jeweiligen Linie auszuführen sind. Das können beispielsweise +Anweisungen sein, um die Farbe\Index{Kopf>Farbe}\Index{Fuss=Fuß>Farbe}\Index{Farbe>im - Kopf}\Index{Farbe>im Fuss=im Fuß} der Linie zu ändern. -Bei Verwendung einer \KOMAScript-Klasse können diese Anweisungen auch über + Kopf}\Index{Farbe>im Fuss=im Fuß} der Linie zu ändern. Bei Verwendung einer +\KOMAScript-Klasse können diese Anweisungen auch über \Macro{setkomafont}\IndexCmd{setkomafont} für eines der Elemente -\FontElement{headtopline}\IndexFontElement{headtopline}, -\FontElement{headsepline}\IndexFontElement{headsepline}, -\FontElement{footsepline}\IndexFontElement{footsepline}, -\FontElement{footbottomline}\IndexFontElement{footbottomline} oder auch -\FontElement{footbotline}\IndexFontElement{footbotline} gesetzt und mit -\Macro{addtokomafont}\IndexCmd{addtokomafont} erweitert werden. Die -Anweisungen \Macro{setkomafont} und \Macro{addkomafont} sind in -\autoref{sec:maincls.font} näher beschrieben. +\FontElement{headtopline}\IndexFontElement[indexmain]{headtopline}, +\FontElement{headsepline}\IndexFontElement[indexmain]{headsepline}, +\FontElement{footsepline}\IndexFontElement[indexmain]{footsepline}, +\FontElement{footbottomline}\IndexFontElement[indexmain]{footbottomline} oder +auch \FontElement{footbotline}\IndexFontElement[indexmain]{footbotline} +gesetzt und mit \Macro{addtokomafont}\IndexCmd{addtokomafont} erweitert +werden. Die Anweisungen \Macro{setkomafont} und \Macro{addkomafont} sind in +\autoref{sec:maincls.textmarkup}, \autopageref{desc:maincls.cmd.setkomafont} +näher beschrieben. \begin{Declaration} \XMacro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{\upshape\PValue{current}}\\ @@ -700,184 +749,193 @@ sind natürlich auch für die anderen drei Längenbefehle gültig. Enthält das obligatorische Argument den Wert \PValue{current} oder wird leer gelassen, dann wird die Dicke der Linie nicht verändert. Das kann -genutzt werden, wenn die Länge der Linie aber nicht die Dicke modifiziert +genutzt werden, wenn die Länge der Linie, aber nicht die Dicke modifiziert werden soll. Wird das optionale Argument \PName{Anweisungen} weggelassen, so bleiben eventuell zuvor gesetzte Anweisungen erhalten. Wird hingegen ein leeres -Argumen \PName{Anweisungen} gesetzt, so werden eventuell zuvor gesetzte +Argument \PName{Anweisungen} gesetzt, so werden eventuell zuvor gesetzte Anweisungen wieder gelöscht. \begin{Example} -Soll beispielsweise der Kopf mit einer kräftigen Linie von 2\,pt -darüber und einer normalen von 0,4\,pt zwischen Kopf und Text -abgesetzt werden, dann erfolgt das mit: -\begin{lstlisting} + Soll beispielsweise der Kopf mit einer kräftigen Linie von 2\,pt darüber und + einer normalen von 0,4\,pt zwischen Kopf und Text abgesetzt werden, dann + erfolgt das mit: + \begin{lstcode} \setheadtopline{2pt} \setheadsepline{.4pt} -\end{lstlisting} + \end{lstcode} + Zusätzlich sind die Optionen \Option{headtopline} und \Option{headsepline} + zu setzen. Diese Optionen sollten vorzugsweise global im optionalen Argument + von \Macro{documentclass} angegeben werden. Das Ergebnis könnte dann wie + folgt aussehen. % -\begin{XmpTopPage} + \begin{XmpTopPage} \XmpHeading{10,29}{70} \thinlines\XmpRule{10,27}{70} \thicklines\XmpRule{10,32}{70} \XmpSetText[\XmpTopText]{10,24} \XmpMarginNote{83,14} -\end{XmpTopPage} + \end{XmpTopPage} -Soll diese Linie zusätzlich in roter Farbe gesetzt werden, dann sind die -Anweisungen beispielsweise wie folgt zu ändern: -\begin{lstlisting} + Sollen diese Linien zusätzlich in roter Farbe gesetzt werden, dann sind die + Anweisungen beispielsweise wie folgt zu ändern: + \begin{lstcode} \setheadtopline{2pt}[\color{red}] \setheadsepline{.4pt}[\color{red}] -\end{lstlisting} -In diesem und auch dem folgenden Beispiel wurde für die Aktivierung der Farbe -die Syntax des \Package{color}\IndexPackage{color}-Pakets verwendet, das dann -natürlich auch geladen werden muss. \Package{scrpage2} selbst bietet keine -direkte Farbunterstützung. Damit ist jedes beliebige Farbunterstützungspaket -verwendbar. - -Mit einer \KOMAScript-Klasse kann alternativ -\begin{lstlisting} + \end{lstcode} + In diesem und auch dem folgenden Beispiel wurde für die Aktivierung der + Farbe die Syntax des \Package{color}\IndexPackage{color}-Pakets verwendet, + das dann natürlich auch geladen werden muss. \Package{scrpage2} selbst + bietet keine direkte Farbunterstützung. Damit ist jedes beliebige + Farbunterstützungspaket verwendbar. + + Mit einer \KOMAScript-Klasse kann alternativ + \begin{lstcode} \setheadtopline{2pt} \setheadsepline{.4pt} \setkomafont{headtopline}{\color{red}} \setkomafont{headsepline}{\color{red}} -\end{lstlisting} -verwendet werden. + \end{lstcode} + verwendet werden. -Die automatische Anpassung an die Kopf- und Fußbreiten illustriert -folgendes Beispiel: -\begin{lstlisting} + Die automatische Anpassung an die Kopf- und Fußbreiten illustriert folgendes + Beispiel, für das die Optionen \Option{footbotline} und \Option{footsepline} + gesetzt sein sollten: + \begin{lstcode} \setfootbotline{2pt} \setfootsepline[text]{.4pt} \setfootwidth[0pt]{textwithmarginpar} -\end{lstlisting} + \end{lstcode} %\phantomsection für hyperref-\pageref-Link jum-2001/11/24 -\phantomsection\label{page:scrpage.autoLineLength}% -\begin{XmpBotPage} + \phantomsection\label{page:scrpage.autoLineLength}% + \begin{XmpBotPage} \XmpHeading{10,18}{85} \thinlines\XmpRule{17,21}{70} \thicklines\XmpRule{10,16}{85} \XmpSetText[\XmpBotText]{10,36} \XmpMarginNote{83,26} -\end{XmpBotPage} + \end{XmpBotPage} \end{Example} % Nun mag nicht jedem die Ausrichtung der Linie über der Fußzeile gefallen, sondern es wird in einem solchen Fall erwartet, dass sie wie der Kolumnentitel linksbündig zum Text ist. Diese Einstellung kann nur global in Form einer Paketoption erfolgen und wird im folgenden -\autoref{sec:scrpage.basics.options} mit anderen Optionen beschrieben. +\autoref{sec:scrpage.basics.options} mit anderen Optionen beschrieben.% % \EndIndex{Cmd}{setheadtopline}\EndIndex{Cmd}{setheadsepline}% \EndIndex{Cmd}{setfootsepline}\EndIndex{Cmd}{setfootbotline}% + \subsection{Optionen beim Laden des Paketes} \label{sec:scrpage.basics.options} + +Während bei den \KOMAScript-Klassen die Mehrzahl der Optionen auch noch nach +dem Laden der Klasse mit \Macro{KOMAoptions} und \Macro{KOMAoption} +geändert werden kann, trifft dies für das Paket \Package{scrpage2} derzeit +noch nicht zu. Alle Optionen für dieses Paket müssen entweder als globale +Optionen, also im optionalen Argument von \Macro{documentclass}, oder als +Paketoptionen, also im optionalen Argument von \Macro{usepackage}, angegeben +werden. + % head(in|ex)clude foot(in|ex)clude --> typearea % headtopline headsepline footbotline footsepline (plain...) % komastyle standardstyle % markuppercase markusecase % automark manualmark -\vspace{-1ex} -\BeginIndex{Option}{headinclude}\BeginIndex{Option}{footinclude} -\BeginIndex{Option}{headexclude}\BeginIndex{Option}{footexclude} \begin{Declaration} \Option{headinclude}\\ \Option{headexclude}\\ \Option{footinclude}\\ \Option{footexclude} \end{Declaration}% -Diese Optionen bestimmen, ob der Seitenkopf bzw.\,der Seitenfuß -für die Satzspiegel zum Text\-kör\-per gezählt werden. -Die durch die Verwendung der Parameter notwendigen Einstellungen -werden vom Paket \Package{typearea} -(siehe \autoref{sec:typearea.options}) -vorgenommen, wenn dieses Paket nach \Package{scrpage2} geladen wird. -Wichtig ist hier, dass bei Verwendung einer \KOMAScript{}-Klasse -diese Optionen bei der Dokumentenklasse und nicht bei \Package{scrpage2} -angegeben werden müssen, um eine Wirkung zu erzielen. -\EndIndex{Option}{headinclude}\EndIndex{Option}{footinclude} +\BeginIndex{Option}{headinclude}\BeginIndex{Option}{footinclude}% +\BeginIndex{Option}{headexclude}\BeginIndex{Option}{footexclude}% +Diese Optionen bestimmen, ob der Seitenkopf bzw.\,der Seitenfuß für die +Satzspiegel zum Text\-kör\-per gezählt werden. Die durch die Verwendung der +Parameter notwendigen Einstellungen werden vom Paket \Package{typearea} (siehe +\autoref{sec:typearea.typearea}) vorgenommen, wenn dieses Paket nach +\Package{scrpage2} geladen wird. Wichtig ist hier, dass bei Verwendung einer +\KOMAScript{}-Klasse diese Optionen bei der Dokumentklasse und nicht bei +\Package{scrpage2} angegeben werden müssen, um eine Wirkung zu erzielen.% +\EndIndex{Option}{headinclude}\EndIndex{Option}{footinclude}% \EndIndex{Option}{headexclude}\EndIndex{Option}{footexclude} -\BeginIndex{Option}{headtopline}\BeginIndex{Option}{plainheadtopline} -\BeginIndex{Option}{headsepline}\BeginIndex{Option}{plainheadsepline} -\BeginIndex{Option}{footsepline}\BeginIndex{Option}{plainfootsepline} -\BeginIndex{Option}{footbotline}\BeginIndex{Option}{plainfootbotline} + \begin{Declaration} -\Option{headtopline} und \Option{plainheadtopline}\\ -\Option{headsepline} und \Option{plainheadsepline}\\ -\Option{footsepline} und \Option{plainfootsepline}\\ -\Option{footbotline} und \Option{plainfootbotline} +\Option{headtopline}\\ +\Option{plainheadtopline}\\ +\Option{headsepline}\\ +\Option{plainheadsepline}\\ +\Option{footsepline}\\ +\Option{plainfootsepline}\\ +\Option{footbotline}\\ +\Option{plainfootbotline} \end{Declaration}% -Eine Grundeinstellung für die Linien unter und über den Kopf- und -Fußzeilen kann mit diesen Optionen vorgenommen werden. -Diese Einstellungen gelten dann als Standard für alle mit \Package{scrpage2} -definierten Seitenstile. -Wird eine von diesen Optionen verwendet, dann wird eine Linienstärke -von 0,4\,pt eingesetzt. -Da es zum Seitenstil \PValue{scrheadings} einen entsprechenden -\PValue{plain}-Stil gibt, kann mit den \Option{plain\dots}-Optionen -auch die entsprechende Linie des \PValue{plain}-Stils konfiguriert -werden. Diese \Option{plain}-Optionen wirken aber nur, wenn auch -die korrespondierende Option ohne \Option{plain} aktiviert wurde. -Somit zeigt die Option \Option{plainheadtopline} -ohne \Option{headtopline} keine Wirkung. - -Bei diesen Optionen ist zu beachten, dass der entsprechende -Seitenteil in den Textbereich des Satzspiegels mit übernommen wird, -wenn eine Linie aktiviert wurde. -Wird also mittels \Option{headsepline} die Trennlinie zwischen -Kopf und Text aktiviert, dann wird automatisch mittels -\Package{typearea} der Satzspiegel so berechnet, dass der Seitenkopf -Teil des Textblocks ist. - -Die Bedingungen für die Optionen des vorhergehenden Abschnitts -gelten auch für diesen Automatismus. -Das bedeutet, dass das Paket \Package{typearea} nach \Package{scrpage2} -geladen werden muss, beziehungsweise, dass bei Verwendung einer -\KOMAScript{}-Klasse, die Optionen -\Option{headinclude} und \Option{footinclude} explizit bei -\Macro{documentclass} gesetzt werden müssen, um Kopf- bzw. Fußzeile -in den Texblock zu übernehmen. - -\EndIndex{Option}{headtopline}\EndIndex{Option}{plainheadtopline} -\EndIndex{Option}{headsepline}\EndIndex{Option}{plainheadsepline} -\EndIndex{Option}{footsepline}\EndIndex{Option}{plainfootsepline} -\EndIndex{Option}{footbotline}\EndIndex{Option}{plainfootbotline} +\BeginIndex{Option}{headtopline}\BeginIndex{Option}{plainheadtopline}% +\BeginIndex{Option}{headsepline}\BeginIndex{Option}{plainheadsepline}% +\BeginIndex{Option}{footsepline}\BeginIndex{Option}{plainfootsepline}% +\BeginIndex{Option}{footbotline}\BeginIndex{Option}{plainfootbotline}% +Eine Grundeinstellung für die Linien unter und über den Kopf- und Fußzeilen +kann mit diesen Optionen vorgenommen werden. Diese Einstellungen gelten dann +als Standard für alle mit \Package{scrpage2} definierten Seitenstile. Wird +eine von diesen Optionen verwendet, dann wird eine Linienstärke von 0,4\,pt +eingesetzt. Da es zum Seitenstil \Pagestyle{scrheadings} einen entsprechenden +plain-Stil gibt, kann mit den \Option{plain\dots}-Optionen auch die +entsprechende Linie des plain-Stils konfiguriert werden. Diese +\Option{plain}-Optionen wirken aber nur, wenn auch die korrespondierende +Option ohne \Option{plain} aktiviert wurde. Somit zeigt die Option +\Option{plainheadtopline} ohne \Option{headtopline} keine Wirkung. + +Bei diesen Optionen ist zu beachten, dass der entsprechende Seitenteil in den +Textbereich des Satzspiegels mit übernommen wird, wenn eine Linie aktiviert +wurde. Wird also mittels \Option{headsepline} die Trennlinie zwischen Kopf +und Text aktiviert, dann wird automatisch mittels \Package{typearea} der +Satzspiegel so berechnet, dass der Seitenkopf Teil des Textblocks ist. + +Die Bedingungen für die Optionen des vorhergehenden Abschnitts gelten auch für +diesen Automatismus. Das bedeutet, dass das Paket \Package{typearea} nach +\Package{scrpage2} geladen werden muss, beziehungsweise, dass bei Verwendung +einer \KOMAScript{}-Klasse die Optionen \Option{headinclude} und +\Option{footinclude} explizit bei \Macro{documentclass} gesetzt werden müssen, +um Kopf- bzw. Fußzeile in den Textblock zu übernehmen.% +% +\EndIndex{Option}{headtopline}\EndIndex{Option}{plainheadtopline}% +\EndIndex{Option}{headsepline}\EndIndex{Option}{plainheadsepline}% +\EndIndex{Option}{footsepline}\EndIndex{Option}{plainfootsepline}% +\EndIndex{Option}{footbotline}\EndIndex{Option}{plainfootbotline}% + -\BeginIndex{Option}{ilines}% -\BeginIndex{Option}{clines}% -\BeginIndex{Option}{olines}% -\Index{Linienausrichtung}% \begin{Declaration} \Option{ilines}\\ \Option{clines}\\ \Option{olines} \end{Declaration}% -Bei der Festlegung der Linienlängen -kann es vorkommen, dass die Linie zwar die gewünschte Länge, aber nicht -die erwünschte Ausrichtung hat, da sie im Kopf- bzw. Fußbereich -zentriert wird. Mit den hier vorgestellten Paketoptionen kann -global für alle mit \Package{scrpage2} definierten Seitenstile diese -Vorgabe modifiziert werden. -Dabei setzt \Option{ilines} die Ausrichtung so, dass die Linien an -den inneren Rand verschoben werden. Die Option \Option{clines} -verhält sich wie die Standardeinstellung und \Option{olines} -richtet am äußeren Rand aus. +\BeginIndex{Option}{ilines}% +\BeginIndex{Option}{clines}% +\BeginIndex{Option}{olines}% +\Index{Linienausrichtung}% +Bei der Festlegung der Linienlängen kann es vorkommen, dass die Linie zwar die +gewünschte Länge, aber nicht die erwünschte Ausrichtung hat, da sie im Kopf- +bzw. Fußbereich zentriert wird. Mit den hier vorgestellten Paketoptionen kann +global für alle mit \Package{scrpage2} definierten Seitenstile diese Vorgabe +modifiziert werden. Dabei setzt \Option{ilines} die Ausrichtung so, dass die +Linien an den inneren Rand verschoben werden. Die Option \Option{clines} +verhält sich wie die Standardeinstellung und \Option{olines} richtet am +äußeren Rand aus. \begin{Example} Hier gilt es, das Beispiel zu \Macro{setfootsepline} auf \autopageref{page:scrpage.autoLineLength} mit dem folgenden zu vergleichen, um die Wirkung der Option \Option{ilines} zu sehen. -\begin{lstlisting} - \usepackage[ilines]{scrpage2} + \begin{lstcode} + \usepackage[ilines,footsepline,footbotline]{scrpage2} \setfootbotline{2pt} \setfootsepline[text]{.4pt} \setfootwidth[0pt]{textwithmarginpar} -\end{lstlisting} + \end{lstcode} % Der folgende Text wurde erg"anzt um den Seitenumbruch zu verbessern, % mjk-2001-10-05: % \enlargethispage*{2\baselineskip} @@ -896,18 +954,20 @@ richtet am äußeren Rand aus. \end{Example} \EndIndex{Option}{ilines}\EndIndex{Option}{clines}\EndIndex{Option}{olines} + % \phantomsection für hyperref-\pageref-Link jum-2001/11/24 -\BeginIndex{Option}{automark}\BeginIndex{Option}{manualmark}% -\BeginIndex{}{Kolumnentitel>automatisch}% -\BeginIndex{}{Kolumnentitel>manuell}% \begin{Declaration} \Option{automark}\\ \Option{manualmark} \end{Declaration}% -Diese Optionen setzen gleich zu Beginn des Dokuments die Einstellung, ob eine -automatische Aktualisierung der Kolumnentitel erfolgt. Die Option -\Option{automark} schaltet die automatische Aktualisierung ein, -\Option{manualmark} deaktiviert sie. +\BeginIndex{Option}{automark}% +\BeginIndex{Option}{manualmark}% +\BeginIndex{}{Kolumnentitel>automatisch}% +\BeginIndex{}{Kolumnentitel>manuell}% +Diese Optionen bestimmen gleich zu Beginn des Dokuments, ob eine automatische +Aktualisierung der Kolumnentitel erfolgt. Die Option \Option{automark} +schaltet die automatische Aktualisierung ein, \Option{manualmark} deaktiviert +sie. % Das Folgende wurde ergaenzt, weil dazu die haeufigsten Fragen % bzw. falschen Bug-Reports im Support kamen. % mjk-2001-09-21: @@ -916,104 +976,109 @@ erhalten, die beim Laden des Paketes gültig war. \begin{Example} Sie laden das Paket \Package{scrpage2} unmittelbar nach der Klasse \Class{scrreprt} und ohne weitere Optionen. Dazu schreiben Sie: - \begin{lstlisting} + \begin{lstcode} \documentclass{scrreprt} \usepackage{scrpage2} -\end{lstlisting} - Da bei \Class{scrreprt} der Seitenstil \PValue{plain} voreingestellt +\end{lstcode} + Da bei \Class{scrreprt} der Seitenstil \Pagestyle{plain} voreingestellt ist, ist dies auch jetzt noch der Fall. Außerdem entspricht die Voreinstellung \PValue{plain} manuellen Kolumnentiteln. Wenn Sie also anschließend mit - \begin{lstlisting} + \begin{lstcode} \pagestyle{scrheadings} -\end{lstlisting} - auf den Seitenstil \PValue{scrheadings} umschalten, sind noch immer +\end{lstcode} + auf den Seitenstil \Pagestyle{scrheadings} umschalten, sind noch immer manuelle Kolumnentitel eingestellt. Verwenden Sie stattdessen die Dokumentklasse \Class{scrbook}, so ist nach - \begin{lstlisting} + \begin{lstcode} \documentclass{scrbook} \usepackage{scrpage2} -\end{lstlisting} - der Seitenstil \PValue{headings} mit automatischen Kolumnentiteln - aktiviert. Bei Umschaltung auf den Seitenstil \PValue{scrheadings} +\end{lstcode} + der Seitenstil \Pagestyle{headings} mit automatischen Kolumnentiteln + aktiviert. Bei Umschaltung auf den Seitenstil \Pagestyle{scrheadings} bleiben automatische Kolumnentitel eingeschaltet. Dabei werden dann weiterhin die Markierungsmakros von \Class{scrbook} verwendet. Verwenden Sie hingegen - \begin{lstlisting} + \begin{lstcode} \usepackage[automark]{scrpage2} -\end{lstlisting} +\end{lstcode} so wird unabhängig von der verwendeten Klasse auf automatische Kolumnentitel umgeschaltet, wobei die Markierungsmakros von \Package{scrpage2} genutzt werden. Natürlich wirkt sich dies auf den Seitenstil - \PValue{plain} von \Class{scrreprt} nicht aus. Die Kolumnentitel + \Pagestyle{plain} von \Class{scrreprt} nicht aus. Die Kolumnentitel werden erst sichtbar, wenn auf den Seitenstil - \PValue{scrheadings}\IndexPagestyle{scrheadings} oder - \PValue{useheadings} oder einen selbstdefinierten Seitenstil mit + \Pagestyle{scrheadings}\IndexPagestyle{scrheadings} oder + \Pagestyle{useheadings} oder einen selbst definierten Seitenstil mit Kolumnentiteln umgeschaltet wird. \end{Example} -\EndIndex{Option}{automark}\EndIndex{Option}{manualmark} -\EndIndex{}{Kolumnentitel>automatisch}% -\EndIndex{}{Kolumnentitel>manuell}% +\EndIndex{Option}{automark}\EndIndex{Option}{manualmark}% % Folgende Deklaration und Erklaerung wurde eingefügt von % mjk 2001-08-17: -\BeginIndex{Option}{autooneside} \begin{Declaration} \Option{autooneside} \end{Declaration}% +\BeginIndex{Option}{autooneside}% Diese Option sorgt dafür, dass das optionale Argument von \Macro{automark}\IndexCmd{automark}\Index{Kolumnentitel>automatisch} im einseitigen Satz automatisch ignoriert wird. Siehe hierzu auch die Erläuterung zum Befehl \Macro{automark} in \autoref{sec:scrpage.basics.mark}, -\autopageref{desc:scrpage.macro.automark}.% -\EndIndex{Option}{autooneside} +\autopageref{desc:scrpage.cmd.automark}.% +% +\EndIndex{Option}{autooneside}% +% +\EndIndex{}{Kolumnentitel>automatisch}% +\EndIndex{}{Kolumnentitel>manuell}% \begin{Declaration} \Option{komastyle}\\ \Option{standardstyle} \end{Declaration}% -\BeginIndex{Option}{komastyle}\BeginIndex{Option}{standardstyle}% +\BeginIndex{Option}{komastyle}% +\BeginIndex{Option}{standardstyle}% Diese Optionen bestimmen, wie der vordefinierte Seitenstil -\PValue{scrheadings} gestaltet ist. +\Pagestyle{scrheadings} gestaltet ist. Bei \Option{komastyle} wird eine Definition vorgenommen, wie sie den \KOMAScript{}-Klassen entspricht. Bei den \KOMAScript{}-Klas\-sen ist dies die Voreinstellung und kann somit auch für andere Klassen gesetzt werden. -Die Option \Option{standardstyle} definiert \PValue{scrheadings} +Die Option \Option{standardstyle} definiert \Pagestyle{scrheadings} wie es von den Standardklassen erwartet wird. Außerdem wird hier automatisch \Option{markuppercase} aktiviert, -es sei denn, \Option{markusedcase} wird ebenfalls als Option übergeben. +es sei denn, \Option{markusedcase} wird ebenfalls als Option übergeben.% \EndIndex{Option}{komastyle}\EndIndex{Option}{standardstyle} + \begin{Declaration} \Option{markuppercase}\\ \Option{markusedcase} \end{Declaration}% -\BeginIndex{Option}{markuppercase}\BeginIndex{Option}{markusedcase}% +\BeginIndex{Option}{markuppercase}% +\BeginIndex{Option}{markusedcase}% Für die Funktionalität von \Macro{automark} modifiziert \Package{scrpage2} interne Befehle, die die Gliederungsbefehle benutzen, um die lebenden Kolumnentitel zu setzen. Da einige Klassen, im Gegensatz zu den \KOMAScript{}-Klassen, die Kolumnentitel in Großbuchstaben schreiben, muss \Package{scrpage2} wissen, wie die genutzte -Dokumentenklasse die lebenden Kolumnentitel darstellt. +Dokumentklasse die lebenden Kolumnentitel darstellt. Die Option \Option{markuppercase} zeigt \Package{scrpage2}, dass die benutzte Klasse die Großschreibweise benutzt. Die Option \Option{markusedcase} sollte angegeben werden, -wenn die benutzte Dokumentenklasse keine Großschreibweise +wenn die benutzte Dokumentklasse keine Großschreibweise verwendet. Die Optionen sind nicht geeignet, eine entsprechende Darstellung zu erzwingen. Es kann somit zu unerwünschten Effekten kommen, wenn die Angabe nicht dem Verhalten -der Dokumentenklasse entspricht. +der Dokumentklasse entspricht.% \EndIndex{Option}{markuppercase}\EndIndex{Option}{markusedcase} % Die folgende Deklaration und Erklaerung wurde eingefuegt von @@ -1031,8 +1096,8 @@ Kolumnentitel\Index{Kolumnentitel>automatisch} mit Hilfe einer der Anweisungen Großbuchstaben wandeln. Mit der Option \Option{nouppercase} können diese beiden Anweisungen im Kopf und im Fuß außer Kraft gesetzt werden. Das gilt aber nur für Seitenstile, die mit Hilfe von \Package{scrpage2} definiert -werden. Dazu zählen auch \PValue{scrheadings} und der zugehörige -\PValue{plain}-Seitenstil. +werden. Dazu zählen auch \Pagestyle{scrheadings} und der zugehörige +plain-Seitenstil. Die verwendete Methode ist äußerst brutal und kann dazu führen, dass auch erwünschte Änderungen von Klein- in @@ -1044,20 +1109,20 @@ meist eine brauchbare Lösung dar. wollen aber, dass die lebenden Kolumnentitel nicht in Großbuchstaben, sondern in normaler gemischter Schreibweise gesetzt werden. Die Präambel Ihres Dokuments könnte dann wie folgt beginnen: - \begin{lstlisting} + \begin{lstcode} \documentclass{book} \usepackage[nouppercase]{scrpage2} \pagestyle{scrheadings} -\end{lstlisting} - Die Umschaltung auf den Seitenstil \PValue{scrheadings} ist - notwendig, weil sonst der Seitenstil \PValue{headings} verwendet +\end{lstcode} + Die Umschaltung auf den Seitenstil \Pagestyle{scrheadings} ist + notwendig, weil sonst der Seitenstil \Pagestyle{headings} verwendet wird, der von der Option \Option{nouppercase} nicht behandelt wird. \end{Example} In einigen Fällen setzen nicht nur Klassen, sondern auch Pakete lebende Kolumnentitel in Großbuchstaben. Auch in diesen Fällen hilft \Option{nouppercase} meist, um zu gemischter Schreibweise -zurückzuschalten. +zurückzuschalten.% % \EndIndex{Option}{nouppercase} @@ -1067,10 +1132,11 @@ zurückzuschalten. % \subsection{Die Anwenderschnittstelle}\label{sec:scrpage.UI.user} % \deftripstyle -\BeginIndex{Cmd}{deftripstyle}\Index{Seitenstil} + +\Index{Seitenstil}% Nun möchte man ja nicht immer an die vorgegebenen Seitenstile gebunden sein, sondern auch seiner Kreativität freien Lauf lassen. -Manchmal ist man auch dazu gezwungen, weil ein bestimmtes +Manchmal ist man auch dazu gezwungen, weil eine bestimmte \emph{Corporate Identity} einer Firma es verlangt. Der einfachste Weg damit umzugehen ist \begin{Declaration} @@ -1079,6 +1145,7 @@ Der einfachste Weg damit umzugehen ist \Parameter{KI}\Parameter{KM}\Parameter{KA}% \Parameter{FI}\Parameter{FM}\Parameter{FA} \end{Declaration}% +\BeginIndex{Cmd}{deftripstyle}% Die einzelnen Felder haben folgende Bedeutung: \begin{labeling}[\,--]{\PName{Name}} \item[\PName{Name}] die Bezeichnung des Seitenstils, um ihn mit @@ -1108,64 +1175,63 @@ Seitenstil keine Änderung der Kopf- und Fußlinien erfolgen kann. \begin{Example} Vorgegeben sei ein doppelseitiges Layout, bei dem die Kolumnentitel innen erscheinen sollen. -Weiterhin soll der Dokumententitel, in diesem Fall kurz \glqq Bericht\grqq, +Weiterhin soll der Dokumenttitel, in diesem Fall kurz \glqq Bericht\grqq, an den Außenrand in den Kopf, die Seitenzahl soll zentriert in den Fuß. -\begin{lstlisting} +\begin{lstcode} \deftripstyle{DerBericht}% {\headmark}{}{Bericht}% {}{\pagemark}{} -\end{lstlisting} +\end{lstcode} Sollen weiterhin die Linien über dem Kopf und unter dem Fuß mit 2\,pt erscheinen und der ganze Textkörper mit dünnen Linien von 0,4\,pt von Kopf und Fuß abgesetzt werden, dann erweitert man vorherige Definition. -\begin{lstlisting} +\begin{lstcode} \deftripstyle{DerBericht}[2pt][.4pt]% {\headmark}{}{Bericht}% {}{\pagemark}{} -\end{lstlisting} +\end{lstcode} % \typeout{^^J--- Ignore underfull and overfull \string\hbox:} -\begin{center}\setlength{\unitlength}{1mm}\begin{picture}(100,50)\scriptsize +\begin{center}\setlength{\unitlength}{1mm}\begin{picture}(100,51)\scriptsize \thinlines -\put(5,0){\line(0,1){50}} -\put(55,0){\line(0,1){50}} -\put(5,50){\line(1,0){40}} -\put(55,50){\line(1,0){40}} +\put(5,0){\line(0,1){51}} +\put(55,0){\line(0,1){51}} +\put(5,51){\line(1,0){40}} +\put(55,51){\line(1,0){40}} % \thicklines -\put(45,0){\line(0,1){50}} -\put(95,0){\line(0,1){50}} +\put(45,0){\line(0,1){51}} +\put(95,0){\line(0,1){51}} \put(5,0,){\line(1,0){40}} \put(55,0){\line(1,0){40}} % -\XmpHeading[Bericht\hfill 2 Das Auge]{11,46}{30} -\XmpHeading[2.1 Netzhaut\hfill Bericht]{59,46}{30} +\XmpHeading[Bericht\hfill 2 Das Auge]{11,47}{30} +\XmpHeading[2.1 Netzhaut\hfill Bericht]{59,47}{30} \XmpHeading[\hfill 14\hfill]{11,6.5}{30} \XmpHeading[\hfill 15\hfill]{59,6.5}{30} -\put(11,43){\makebox(0,0)[tl]{\parbox{30mm}{\tiny% +\put(11,44){\makebox(0,0)[tl]{\parbox{30mm}{\tiny% \textbf{2.1 Netzhaut}\\ \XmpText[49]}}} -\put(59,43){\makebox(0,0)[tl]{\parbox{30mm}{\tiny% +\put(59,44){\makebox(0,0)[tl]{\parbox{30mm}{\tiny% \XmpText[51]}}} % \thinlines -\XmpRule{11,44.5}{30}\XmpRule{59,44.5}{30} +\XmpRule{11,45.5}{30}\XmpRule{59,45.5}{30} \XmpRule{11,8}{30}\XmpRule{59,8}{30} \linethickness{1pt} -\XmpRule{11,48}{30}\XmpRule{59,48}{30} +\XmpRule{11,49}{30}\XmpRule{59,49}{30} \XmpRule{11,5}{30}\XmpRule{59,5}{30} \end{picture}\end{center} \typeout{^^J--- Don't ignore underfull and overfull \string\hbox:^^J} \end{Example} \EndIndex{Cmd}{deftripstyle} + \subsection{Die Expertenschnittstelle}\label{sec:scrpage.UI.expert} % \defpagestyle \newpagestyle \providepagestyle \renewpagestyle -\BeginIndex{Cmd}{defpagestyle}\BeginIndex{Cmd}{newpagestyle} -\BeginIndex{Cmd}{renewpagestyle}\BeginIndex{Cmd}{providepagestyle} -\Index{Seitenstil} +\Index{Seitenstil}% Einfache Seitenstile, wie sie mit \Macro{deftripstyle} deklariert werden können, sind erfahrungsgemäß selten. Entweder verlangt ein Professor, dass die Diplomarbeit so aussieht @@ -1178,9 +1244,13 @@ Seitenfuß auf"|taucht. Alles kein Problem, denn es gibt noch: \Macro{renewpagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}\\ \Macro{providepagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition} \end{Declaration}% +\BeginIndex{Cmd}{defpagestyle}% +\BeginIndex{Cmd}{newpagestyle}% +\BeginIndex{Cmd}{renewpagestyle}% +\BeginIndex{Cmd}{providepagestyle}% Dies sind die Befehle, die die volle Kontrolle über die Gestaltung eines Seitenstils ermöglichen. Der Aufbau ist bei allen vier -Definitionen gleich, sie unterscheiden sich nur in Hinsicht +Definitionen gleich, sie unterscheiden sich nur hinsichtlich der Wirkungsweise. \begin{labeling}[\ --]{\Macro{providepagestyle}} \item[\Macro{defpagestyle}] definiert einen neuen Seitenstil. @@ -1196,7 +1266,7 @@ wenn dieser vorher noch nicht existiert. Am Beispiel von \Macro{defpagestyle} soll die Syntax der Definitionen im Folgenden erläutert werden. -\begin{labeling}[\,--]{\PName{Kopfdefinition}} +\begin{labeling}[\,--]{\PName{Kopfdefinition}\,} \item[\PName{Name}] die Bezeichnung des Seitenstils für \Macro{pagestyle}\Parameter{Name} \item[\PName{Kopfdefinition}] die Deklaration des Seitenkopfes bestehend aus fünf Teilen, wobei die in runden Klammern stehenden Angaben optional sind: @@ -1220,7 +1290,7 @@ einzelnen Parameter haben folgende Bedeutung: Werden die optionalen Linienargumente nicht gesetzt, dann bleibt das Verhalten weiterhin durch die in \autoref{sec:scrpage.basics.format}, -\autopageref{desc:scrpage.macro.setheadtopline} vorgestellten Linienbefehle +\autopageref{desc:scrpage.cmd.setheadtopline} vorgestellten Linienbefehle konfigurierbar. Die drei Felder \PName{GS}, \PName{US} und \PName{ES} entsprechen Boxen, die @@ -1229,9 +1299,9 @@ Die entsprechenden Definitionen erscheinen in diesen Boxen linksbündig. Um somit etwas links- \emph{und} rechtsseitig in den Boxen zu platzieren, kann der Zwischenraum mit \Macro{hfill} gestreckt werden: % -\begin{lstlisting} +\begin{lstcode}[belowskip=\dp\strutbox] {\headmark\hfill\pagemark} -\end{lstlisting} +\end{lstcode} Um zusätzlich etwas zentriert erscheinen zu lassen, ist eine erweiterte Definition notwendig. @@ -1239,33 +1309,33 @@ Die Befehle \Macro{rlap} und \Macro{llap} setzen die übergebenen Argumente. Für \LaTeX{} erscheint es aber so, dass diese Texte eine Breite von Null haben. Nur so erscheint der mittlere Text auch wirklich zentriert. % -\begin{lstlisting} +\begin{lstcode} {\rlap{\headmark}\hfill zentriert\hfill\llap{\pagemark}} -\end{lstlisting} +\end{lstcode} +\iffalse% Umbruchkorrekturtext Dies und die Verwendung der Expertenschnittstelle in Zusammenhang mit anderen Befehlen von \Package{scrpage2} nun als abschließendes Beispiel. +\fi \begin{Example} -Im Beispiel wird die Dokumentenklasse \Class{scrbook} genutzt. -Das bedeutet, es liegt im Dokument standardmäßig zweiseitiges -Layout vor. -Für das Paket \Package{scrpage2} wird festgelegt, dass mit -automatisch aktualisierten Kolumnentiteln gearbeitet wird und -dass im Seitenstil \PValue{scrheadings} eine Trennlinie zwischen -Kopf und Text gezogen wird. - -\begin{lstlisting} + Angenommen es wird die Dokumentklasse \Class{scrbook} genutzt. Damit + liegt ein zweiseitiges Layout vor. Für das Paket \Package{scrpage2} wird + festgelegt, dass mit automatisch aktualisierten Kolumnentiteln gearbeitet + wird und dass im Seitenstil \Pagestyle{scrheadings} eine Trennlinie zwischen + Kopf und Text gezogen wird. + + \begin{lstcode} \documentclass{scrbook} \usepackage[automark,headsepline]{scrpage2} -\end{lstlisting} + \end{lstcode} -Mit Hilfe der Expertenschnittstelle werden zwei Seitenstile -definiert. Der erste legt keine Linienargumente fest, im -zweiten wird die Linie über dem Kopf mit einer Dicke -von 1\,pt und die Linie unter dem Kopf mit 0\,pt festgelegt. + Mit Hilfe der Expertenschnittstelle werden zwei Seitenstile definiert. Der + erste legt keine Linienargumente fest, im zweiten wird die Linie über dem + Kopf mit einer Dicke von 1\,pt und die Linie unter dem Kopf mit 0\,pt + festgelegt. -\begin{lstlisting} + \begin{lstcode} \defpagestyle{ohneLinien}{% {Beispiel\hfill\headmark} {\headmark\hfill ohne Linien} @@ -1276,9 +1346,6 @@ von 1\,pt und die Linie unter dem Kopf mit 0\,pt festgelegt. {\hfill\pagemark} {\hfill\pagemark\hfill} } -\end{lstlisting} - -\begin{lstlisting} \defpagestyle{mitLinien}{% (\textwidth,1pt) {mit Linien\hfill\headmark} @@ -1293,104 +1360,95 @@ von 1\,pt und die Linie unter dem Kopf mit 0\,pt festgelegt. {\hfill\pagemark\hfill} (\textwidth,1pt) } -\end{lstlisting} - -Gleich zu Beginn wird der Seitenstil \PValue{scrheadings} aktiviert. Mit -\Macro{chapter} wird ein neues Kapitel begonnen. Weiterhin wird automatisch -durch \Macro{chapter} der Seitenstil für diese Seite auf \PValue{plain} -gesetzt. Auch wenn das folgende \Macro{chead} recht unüblich und vielleicht -nicht besonders gelungen ist, zeigt es doch, dass durch Modifikation des -\PValue{plain}-Stils ein Kolumnentitel erzeugt werden kann. Grundsätzlich -sollte jedoch davon Abstand genommen werden, da sonst der Markierungscharakter -der \PValue{plain}-Seite verloren geht. Es ist wichtiger anzuzeigen, dass hier -ein neues Kapitel beginnt, als dass ein Abschnitt dieser Seite einen -bestimmten Titel trägt. - -\begin{lstlisting} + \end{lstcode} + + Gleich zu Beginn wird der Seitenstil \Pagestyle{scrheadings} aktiviert. Mit + \Macro{chapter} wird ein neues Kapitel begonnen. Weiterhin wird automatisch + durch \Macro{chapter} der Seitenstil für diese Seite auf \Pagestyle{plain} + gesetzt. Das folgende \Macro{chead} zeigt, wie durch Modifikation des + plain-Stils ein Kolumnentitel erzeugt werden kann. Grundsätzlich sollte + jedoch davon Abstand genommen werden, da sonst der Markierungscharakter der + plain-Seite verloren geht. Es ist wichtiger anzuzeigen, dass hier ein neues + Kapitel beginnt, als dass ein Abschnitt dieser Seite einen bestimmten Titel + trägt. + + \begin{lstcode} \begin{document} \pagestyle{scrheadings} - \chapter{Thermodynamik} \chead[\leftmark]{} \section{Hauptsätze} - Jedes System besitzt eine extensive Zustandsgröße - Energie. Sie ist in einem abgeschlossenen System - konstant. -\end{lstlisting} - -\begin{XmpTopPage} + Jedes System besitzt eine extensive Zustandsgröße Energie. + Sie ist in einem abgeschlossenen System konstant. + \end{lstcode}% + \begin{XmpTopPage} \XmpHeading[\hfill\textsl{1 Thermodynamik}\hfill]{10,27}{70} \put(10,17){\normalsize\textbf{\sffamily 1 Thermodynamik}} \put(10,12){\textbf{\sffamily 1.1 Hauptsätze}} \XmpSetText[% Jedes System besitzt eine extensive Zustands\char\defaulthyphenchar \linebreak]{10,9} -\end{XmpTopPage} - -Nach dem Seitenwechsel ist dann der Seitenstil \PValue{scrheadings} -aktiv, und somit auch die Trennlinie aus den Paketoptionen -sichtbar. -\begin{lstlisting} - Es existiert eine Zustandsgröße, genannt die - Entropie, eines Systems, deren zeitliche Änderung - sich aus Entropieströmung und Entropieerzeugung - zusammensetzt. -\end{lstlisting} -\begin{XmpTopPage} + \end{XmpTopPage} + + Nach dem Seitenwechsel ist dann der Seitenstil \Pagestyle{scrheadings} + aktiv, und somit auch die Trennlinie aus den Paketoptionen sichtbar. + \begin{lstcode} + Es existiert eine Zustandsgröße, genannt die Entropie + eines Systems, deren zeitliche Änderung sich aus + Entropieströmung und Entropieerzeugung zusammensetzt. + \end{lstcode} + \begin{XmpTopPage} \XmpHeading[\textsl{1 Thermodynamik}\hfill]{20,27}{70} \thinlines\XmpRule{20,25}{70} \XmpSetText[% - Es existiert eine Zustandsgröße, genannt die En"-tropie, + Es existiert eine Zustandsgröße, genannt die En"-tropie eines Systems, deren zeitliche Änderung sich aus Entropieströmung und Entropie\char\defaulthyphenchar\kern-1pt \linebreak]{20,21} -\end{XmpTopPage} - -Wiederum nach einem Seitenwechsel wird auf manuelle Kolumnentitel -gewechselt und der Seitenstil \PValue{ohneLinien} aktiviert. -Da keine Linienargumente bei der Definition dieses Stils -genutzt wurden, wird die Standard-Linienkonfiguration -verwendet, die hier eine Linie zwischen Kopf und Text zeichnet, -da \Option{headsepline} als Argument für \Package{scrpage2} -angegeben wurde. -\begin{lstlisting} + \end{XmpTopPage} + + Wiederum nach einem Seitenwechsel wird auf manuelle Kolumnentitel gewechselt + und der Seitenstil \PValue{ohneLinien} aktiviert. Da keine Linienargumente + bei der Definition dieses Stils genutzt wurden, wird die + Standard-Linienkonfiguration verwendet. Diese zeichnet hier eine Linie + zwischen Kopf und Text, da \Option{headsepline} als Argument für + \Package{scrpage2} angegeben wurde.% + \begin{lstcode} \manualmark \pagestyle{ohneLinien} \section{Exergie und Anergie} \markright{Energieumwandlung} - Man bezeichnet die bei der Einstellung des - Gleichgewichts mit der Umgebung maximal - gewinnbare Arbeit als Exergie. -\end{lstlisting} -\begin{XmpTopPage} + Man bezeichnet die bei der Einstellung des Gleichgewichts + mit der Umgebung maximal gewinnbare Arbeit als Exergie. + \end{lstcode}% + \begin{XmpTopPage} \XmpHeading[\slshape Energieumwandlung\hfill ohne Linien]{10,27}{70} \thinlines\XmpRule{10,25}{70} \XmpSetText[{% \textbf{\sffamily 1.2 Exergie und Anergie}\\[2pt] Man bezeichnet die bei der Einstellung des Gleichgewichts mit der Umgebung maximal\linebreak}]{10,21} -\end{XmpTopPage} + \end{XmpTopPage} -Nach dem Wechsel auf die folgende linke Seite wird der -Seitenstil \PValue{mitLinien} aktiviert. -Die Linieneinstellungen werden hier nun angewendet und entsprechend -der Definition dargestellt. -\begin{lstlisting} + Nach dem Wechsel auf die folgende linke Seite wird der Seitenstil + \PValue{mitLinien} aktiviert. Die Linieneinstellungen werden hier nun + angewendet und entsprechend der Definition dargestellt. + \begin{lstcode} \pagestyle{mitLinien} \renewcommand{\headfont}{\itshape\bfseries} Den nicht in Exergie umwandelbaren Anteil einer Energie nennt man Anergie \Var{B}. \[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] \end{document} -\end{lstlisting} -\begin{XmpTopPage} + \end{lstcode} + \begin{XmpTopPage} \XmpHeading[\itshape\bfseries mit Linien\hfill 1 Thermodynamik]{20,27}{70} \thicklines\XmpRule{20,29}{70} \XmpSetText[% Den nicht in Exergie umwandelbaren Anteil einer Energie nennt man Anergie $B$. \vspace{-.5ex}\[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] ]{20,21} -\end{XmpTopPage} + \end{XmpTopPage} \end{Example} \EndIndex{Cmd}{defpagestyle}\EndIndex{Cmd}{newpagestyle} \EndIndex{Cmd}{renewpagestyle}\EndIndex{Cmd}{providepagestyle} @@ -1411,5 +1469,6 @@ Projekte gemeinsam nutzen können. %%% Local Variables: %%% mode: latex +%%% coding: iso-latin-1 %%% TeX-master: "../guide" %%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/settleford600label.lco b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/settleford600label.lco new file mode 100644 index 00000000000..a15fcb2f090 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/settleford600label.lco @@ -0,0 +1,24 @@ +% +% settleford600label.lco +% +% Copyright(c) Markus Kohm <komascript@gmx.de>, 2006 +% +%----------------------------------------------------------------------------- + + + +% This must be line 10!!! +\ProvidesFile{settleford600label.lco} + [2008/07/09 v0.1 unsupported LCO-file] + +\LoadLetterOption{labelbasic} + +\@setplength{labelwidth}{70mm} +\@setplength{labelheight}{36mm} +\@setplength{labelhoffset}{0pt} +\@setplength{labelvoffset}{0pt} +\@setplength{labelsheettopmargin}{1mm} +\@setplength{labelsheetleftmargin}{0pt} +\@setplength{labelmargin}{3mm} + +\endinput diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/tocbasic.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/tocbasic.tex new file mode 100644 index 00000000000..795d6ff7fba --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/tocbasic.tex @@ -0,0 +1,936 @@ +% ====================================================================== +% tocbasic.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% tocbasic.tex +% Copyright (c) Markus Kohm, 2002-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Package tocbasic for Package and Class Authors +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Paket tocbasic für Paket- und Klassenautoren +% Verwaltet von Markus Kohm +% +% ====================================================================== + +\ProvidesFile{tocbasic.tex}[2008/07/31 KOMA-Script package tocbasic] + +\chapter{Verzeichnisse verwalten mit Hilfe von \Package{tocbasic}} +\labelbase{tocbasic} + +\BeginIndex{Package}{tocbasic}% + +Das Paket \Package{tocbasic} ist neu in \KOMAScript~3.00. Sein Hauptzweck +besteht darin, Paket- und Klassenautoren die Möglichkeit zu geben, eigene +Verzeichnisse vergleichbar mit dem Abbildungs- und Tabellenverzeichnis zu +erstellen und dabei Klassen und anderen Paketen einen Teil der Kontrolle über +diese Verzeichnisse zu erlauben. Dabei sorgt das Paket \Package{tocbasic} auch +dafür, dass diese Verzeichnisse von \Package{babel}\IndexPackage{babel} (siehe +\cite{package:babel}) bei der Sprachumschaltung mit berücksichtigt +werden. Durch Verwendung von \Package{tocbasic} soll dem Paketautor die Mühe +genommen werden, selbst solche Anpassungen an andere Pakete oder an Klassen +vornehmen zu müssen. + +\KOMAScript{} verwendet \Package{tocbasic} sowohl für das Inhaltsverzeichnis +als auch für die bereits erwähnten Verzeichnisse für Abbildungen und Tabellen. + + +\section{Grundlegende Anweisungen} +\label{sec:tocbasic.basics} + +Die grundlegenden Anweisungen dienen in erster Linie dazu, eine Liste aller +bekannten Dateierweiterungen, die für Verzeichnisse stehen, zu +verwalten. Einträge in Dateien mit solchen Dateierweiterungen werden +typischerweise mit \Macro{addtocontents} oder \Macro{addcontentsline} +vorgenommen. Darüber hinaus gibt es Anweisungen, mit denen eine Aktion für +all diese Dateierweiterungen durchgeführt werden können. Außerdem gibt es +Anweisungen, um Einstellungen für die Datei vorzunehmen, die zu einer +gegebenen Dateierweiterung gehört. Typischerweise hat so eine Dateierweiterung +auch einen Besitzer. Dieser Besitzer kann eine Klasse oder ein Paket oder ein +Bezeichner sein, den der Autor der Klasse oder des Pakets, das +\Package{tocbasic} verwendet, selbst gewählt hat. \KOMAScript{} selbst +verwendet beispielsweise den Besitzer \PValue{float} für die +Dateierweiterungen \File{lof} und \File{lot}, die für das Abbildungs- und das +Tabellenverzeichnis stehen. Für das Inhaltsverzeichnis verwendet \KOMAScript{} +als Besitzer den Dateiname der Klasse. + +\begin{Declaration} + \Macro{ifattoclist}\Parameter{Dateierweiterung}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifattoclist}% +Mit dieser Anweisung wird überprüft, ob die \PName{Dateierweiterung} bereits +in der Liste der bekannten Dateierweiterungen vorhanden ist, oder nicht. Ist +die \PName{Dateierweiterung} bereits über diese Liste bekannt, so wird der +\PName{Dann-Teil} ausgeführt. Anderenfalls wird der \PName{Sonst-Teil} +ausgeführt. +\begin{Example} + Angenommen, Sie wollen wissen, ob die Dateierweiterung »\File{foo}« bereits + verwendet wird, um in diesem Fall einen Fehlermeldung auszugeben, weil diese + damit nicht mehr verwendet werden kann: + \begin{lstcode} + \ifattoclist{foo}{% + \PackageError{bar}{% + extension `foo' already in use% + }{% + Each extension may be used only + once.\MessageBreak + The class or another package already + uses extension `foo'.\MessageBreak + This error is fatal!\MessageBreak + You should not continue!}% + }{% + \PackageInfo{bar}{using extension `foo'}% + } + \end{lstcode} +\end{Example} +% +\EndIndex{Package}{tocbasic} + + +\begin{Declaration} + \Macro{addtotoclist}\OParameter{Besitzer}\Parameter{Dateierweiterung} +\end{Declaration} +\BeginIndex{Cmd}{addtotoclist}% +Diese Anweisung fügt die \PName{Dateierweiterung} zu der Liste der bekannten +Dateierweiterungen. Wenn das optionale Argument \OParameter{Besitzer} +angegeben wurde, wird der angegebene \PName{Besitzer} für diese +Dateierweiterung mit gespeichert. Wurde das optionale Argument weg gelassen, +dann versucht \Package{tocbasic} den Dateinamen der aktuell abgearbeiteten +Klasse oder des Pakets herauszufinden und als \PName{Besitzer} zu +speichern. Dies funktioniert nur, wenn \Macro{addtotoclist} während des Ladens +der Klasse oder des Pakets aufgerufen wird. Es funktioniert nicht, wenn +\Macro{addtoclist} erst später Aufgrund der Verwendung einer Anweisung durch +den Benutzer aufgerufen wird. In diesem Fall wird als \PName{Besitzer} +»\PValue{.}« eingetragen. Beachten Sie, dass ein leeres Argument +\PName{Besitzer} nicht das gleiche ist, wie das Weglassen des kompletten +optionalen Arguments einschließlich der eckigen Klammern. Ein leeres Argument +würde auch einen leeren \PName{Besitzer} ergeben. +\begin{Example} + Angenommen, Sie wollen die Dateierweiterung »\File{foo}« zu der Liste der + bekannten Dateierweiterungen hinzufügen, während Ihr Paket mit dem + Dateinamen »\File{bar.sty}« geladen wird: + \begin{lstcode} + \addtotoclist{foo} + \end{lstcode} + Dies fügt die Dateierweiterung »\PValue{foo}« mit dem Besitzer + »\PValue{bar.sty}« zur Liste der bekannten Dateierweiterung, wenn diese + Erweiterung nicht bereits in der Liste ist. Wenn bereits die verwendete + Klasse oder ein anderes Paket diese Dateierweiterung angemeldet hat, + erhalten Sie den Fehler: + \begin{lstoutput} + Package tocbasic Error: file extension `#2' cannot be used twice + + See the tocbasic package documentation for explanation. + Type H <return> for immediate help. + \end{lstoutput} + Wenn Sie dann tatsächlich die Taste »\texttt{H}« gefolgt von der + Return-Taste drücken, erhalten Sie als Hilfe: + \begin{lstoutput} + File extension `foo' is already used by a toc-file, while bar.sty + tried to use it again for a toc-file. + This may be either an incompatibility of packages, an error at a package, + or a mistake by the user. + \end{lstoutput} + + Aber vielleicht stellt Ihr Paket auch eine Anweisung bereit, mit der ein + Verzeichnis dynamisch erzeugt werden kann. In diesem Fall sollten Sie das + optionale Argument von \Macro{addtotoclist} verwenden, um den + \PName{Besitzer} anzugeben: + \begin{lstcode} + \newcommand*{\createnewlistofsomething}[1]{% + \addtotoclist[bar.sty]{#1}% + % Weitere Aktionen, um dieses Verzeichnis + % verfügbar zu machen + } + \end{lstcode} + Wenn jetzt der Anwender diese Anweisung aufruft, beispielsweise mit + \begin{lstcode} + \createnewlistofsomething{foo} + \end{lstcode} + dann wird die Dateierweiterung »\PValue{foo}« ebenfalls mit dem Besitzer + »\PValue{bar.sty}« zur Liste der bekannten Dateierweiterungen hinzugefügt + oder aber ein Fehler gemeldet, wenn diese Dateierweiterung bereits verwendet + wird. +\end{Example} +Sie können als \PName{Besitzer} angeben, was immer Sie wollen, aber es sollte +eindeutig sein! Wenn Sie beispielsweise der Autor des Pakets \Package{float} +wären, könnten Sie als \PName{Besitzer} auch »\PValue{float}« an Stelle von +»\PValue{float.sty}« angeben. In diesem Fall würden die \KOMAScript-Optionen +für das Verzeichnis der Abbildungen und das Verzeichnis der Tabellen auch Ihre +Verzeichnisse betreffen, die zum Zeitpunkt der Verwendung der Option bereits +zur Liste der bekannten Dateierweiterungen hinzugefügt sind. Das liegt daran, +dass \KOMAScript{} die Dateierweiterungen »\PValue{lof}« für das +Abbildungsverzeichnis und »\PValue{lot}« für das Tabellenverzeichnis mit dem +Besitzer »\PName{float}« anmeldet und die Optionen für diese Besitzer setzt.% +% +\EndIndex{Cmd}{addtotoclist}% + + +\begin{Declaration} + \Macro{AtAddToTocList}\OParameter{Besitzer}\Parameter{Anweisungen} +\end{Declaration} +\BeginIndex{Cmd}{AtAddToTocList}% +Auf diese Weise können die \Parameter{Anweisungen} zu einer internen Liste von +Anweisungen hinzugefügt werden, die immer dann auszuführen sind, wenn eine +Dateierweiterung mit dem angegebenen \PName{Besitzer} zur Liste der bekannten +Dateierweiterungen hinzugefügt wird. Bezüglich des optionalen Argument wird wie +in der Erklärung von \Macro{addtotoclist} beschrieben verfahren. Wird das +optionale Argument leer gelassen, werden in diesem Fall die Aktionen unabhängig +vom Besitzer immer ausgeführt, wenn die Dateierweiterung zu der Liste der +bekannten Dateierweiterungen hinzugefügt wird. Während der Ausführung der +\PName{Anweisungen} ist außerdem \Macro{@currext} die Dateierweiterung, die +gerade hinzugefügt wird. +\begin{Example} + \Package{tocbasic} selbst verwendet + % Umbruchkorrektur (schließende Klammer verschoben) + \begin{lstcode} + \AtAddToTocList[]{% + \expandafter\tocbasic@extend@babel + \expandafter{\@currext}} + \end{lstcode} + um jede Dateierweiterung zu der in \Package{tocbasic} vorhandenen + Erweiterung für das Paket \Package{babel} hinzuzufügen. Die zweimalige + Verwendung von \Macro{expandafter} ist an dieser Stelle erforderlich, weil + das Argument von \Macro{tocbasic@extend@babel} unbedingt expandiert sein + muss. Siehe dazu die Erklärung zu \Macro{tocbasic@extend@babel} in + \autoref{sec:tocbasic.internals}, + \autopageref{desc:tocbasic.cmd.tocbasic@extend@babel}. +\end{Example} +% +\EndIndex{Cmd}{AtAddToTocList}% + + +\begin{Declaration} + \Macro{removefromtoclist}\OParameter{Besitzer}\Parameter{Dateierweiterung} +\end{Declaration} +\BeginIndex{Cmd}{removefromtoclist}% +Man kann eine \PName{Dateierweiterung} auch wieder aus der Liste der bekannten +Dateierweiterungen entfernen. Ist das optionale Argument \OParameter{Besitzer} +angegeben, so wird die Dateierweiterung nur entfernt, wenn sie für den +angegebenen \PName{Besitzer} angemeldet wurde. Wie der Besitzer beim Weglassen +des optionalen Argument bestimmt wird, ist der Erklärung zu +\Macro{addtotoclist} zu entnehmen. Wird ein leerer \PName{Besitzer} angegeben, +findet kein Besitzertest statt, sondern die \PName{Dateierweiterung} wird +unabhängig vom Besitzer entfernt.% +\EndIndex{Cmd}{removefromtoclist}% + + +\begin{Declaration} + \Macro{doforeachtocfile}\OParameter{Besitzer}\Parameter{Anweisungen} +\end{Declaration} +\BeginIndex{Cmd}{doforeachtocfile}% +Bisher haben Sie nur Anweisungen kennen gelernt, die für Klassen- und +Paketautoren eher zusätzlichen Aufwand bedeuten. Mit \Macro{doforeachtocfile} +kann man die erste Ernte dafür einfahren. Diese Anweisung erlaubt es die +angegebenen \PName{Anweisungen} für jede von dem \PName{Besitzer} angemeldete +Dateierweiterung auszuführen. Während der Ausführung der \PName{Anweisungen} +ist \Macro{@currext} die aktuell verarbeitete Dateierweiterung. Wird das +optionale Argument \OParameter{Besitzer} weggelassen, so werden alle +Dateierweiterungen unabhängig vom Besitzer abgearbeitet. Ein leeres optionales +Argument würde hingegen nur die Dateierweiterungen mit leerem Besitzer +verarbeiten. +\begin{Example} + Wenn Sie die Liste aller bekannten Dateierweiterungen auf das Terminal und + in die \File{log}-Datei ausgeben wollen, ist dies einfach mit + \begin{lstcode} + \doforeachtocfile{\typeout{\@currext}} + \end{lstcode} + möglich. Wollen Sie hingegen nur die Dateierweiterungen des Besitzer + »\PValue{foo}«, dann geht das einfach mit: + \begin{lstcode} + \doforeachtocfile[foo]{\typeout{\@currext}} + \end{lstcode} +\end{Example} +Die \KOMAScript-Klassen \Class{scrbook} und \Class{scrreprt} verwenden diese +Anweisung übrigens, um für jedes Verzeichnis, für das die Eigenschaft +\PValue{chapteratlist} gesetzt ist, optional einen vertikalen Abstand oder die +Kapitelüberschrift in dieses Verzeichnis einzutragen. Wie Sie diese +Eigenschaft setzen können, ist in \autoref{sec:tocbasic.toc}, +\autopageref{desc:tocbasic.cmd.setuptoc} zu finden.% +\EndIndex{Cmd}{doforeachtocfile} + + +\begin{Declaration} + \Macro{tocbasicautomode} +\end{Declaration} +\BeginIndex{Cmd}{tocbasicautomode}% +Diese Anweisung definiert die Anweisung \Macro{@starttoc}, die der \LaTeX-Kern +bereit stellt, so um, dass bei jedem Aufruf von \Macro{@starttoc} die dabei +angegebene Dateierweiterung in die Liste der bekannten Dateierweiterungen +eingefügt wird, soweit sie dort noch nicht vorhanden ist. Außerdem wird dann +\Macro{tocbasic@starttoc} an Stelle von \Macro{@starttoc} verwendet. Näheres +zu \Macro{tocbasic@starttoc} und \Macro{@starttoc} ist +\autoref{sec:tocbasic.internals}, +\autopageref{desc:tocbasic.cmd.tocbasic@starttoc} zu entnehmen. + +Mit Hilfe von \Macro{tocbasicautomode} wird also sozusagen jedes Verzeichnis, +das mit Hilfe von \Macro{@starttoc} erstellt wird, automatisch zumindest +teilweise unter die Kontrolle von \Package{tocbasic} gestellt. Ob das zum +gewünschten Ergebnis führt, hängt jedoch sehr von den jeweiligen +Verzeichnissen ab. Immerhin funktioniert damit schon einmal die Erweiterung +für das \Package{babel}-Paket für alle Verzeichnisse. Es ist jedoch +vorzuziehen, wenn der Paketautor selbst \Package{tocbasic} explizit +verwendet. Er kann dann auch die weiteren Vorteile nutzen, die ihm das Paket +bietet und die in den nachfolgenden Abschnitten beschrieben werden.% +\EndIndex{Cmd}{tocbasicautomode} + + +\section{Erzeugen eines Verzeichnisses} +\label{sec:tocbasic.toc} + +Im vorherigen Abschnitt haben Sie erfahren, wie eine Liste bekannter +Dateierweiterungen geführt werden kann und wie automatisch Anweisungen beim +Hinzufügen von Dateierweiterungen zu dieser Liste ausgeführt werden +können. Des Weiteren haben Sie eine Anweisung kennen gelernt, mit der man für +jede einzelne bekannte Dateierweiterung oder einen spezifischen Teil davon +Anweisungen ausführen kann. In diesem Abschnitt werden Sie Anweisungen kennen +lernen, die sich auf die Datei beziehen, die mit dieser Dateierweiterung +verbunden ist. + + +\begin{Declaration} + \Macro{addtoeachtocfile}\OParameter{Besitzer}\Parameter{Inhalt} +\end{Declaration} +\BeginIndex{Cmd}{addtoeachtocfile}% +Die Anweisung \Macro{addtoeachtocfile} arbeitet ähnlich zu +\Macro{addtotocfile} aus dem \LaTeX-Kern mit dem Unterschied, dass +es \Parameter{Inhalt} in jede Datei schreibt, die für den angegebenen +\PName{Besitzer} in der Liste der bekannten Dateierweiterungen zu finden +ist. Wird das optionale Argument weggelassen, wird in jede Datei aus der Liste +der bekannten Dateierweiterungen geschrieben. Der konkrete Dateiname setzt +sich dabei übrigens aus \Macro{jobname} und der Dateierweiterung +zusammen. Während des Schreibens von \PName{Inhalt} ist \Macro{@currext} die +Dateierweiterung der Datei, in die aktuell geschrieben wird. +\begin{Example} + Sie wollen einen vertikalen Abstand von einer Zeile in alle Dateien aus der + Liste der bekannten Dateierweiterungen schreiben. + \begin{lstcode} + \addtoeachtocfile{% + \protect\addvspace{\protect\baselineskip}% + }% + \end{lstcode} + Wenn Sie das hingegen nur für die Dateien mit dem definierten Besitzer + »\PValue{foo}« machen wollen, verwenden Sie: + \begin{lstcode} + \addtoeachtocfile[foo]{% + \protect\addvspace{\protect\baselineskip}% + } + \end{lstcode} +\end{Example} +Anweisungen, die nicht bereits beim Schreiben expandiert werden sollen, sollte +wie bei \Macro{addtotocfile} mit \Macro{protect} geschützt werden. +\EndIndex{Cmd}{addtoeachtocfile}% + + +\begin{Declaration} + \Macro{addcontentslinetoeachtocfile}\OParameter{Besitzer}\Parameter{Ebene}\Parameter{Inhalt} +\end{Declaration} +\BeginIndex{Cmd}{addcontentslinetoeachtocfile}% +Diese Anweisung ist mit der \LaTeX-Kern-Anweisung \Macro{addcontentsline} +vergleichbar. Der Unterschied besteht darin, dass auch diese Anweisung nicht +nur in eine einzelne Datei, sondern in alle Dateien eines angegebenen +Besitzers und bei Verzicht auf das optionale Argument in alle Dateien aus der +Liste der bekannten Dateierweiterungen schreibt. +\begin{Example} + Angenommen, Sie sind Klassen-Autor und wollen den Kapiteleintrag nicht nur in + das Inhaltsverzeichnis, sondern in alle Verzeichnisdateien schreiben. Nehmen + wir weiter an, dass aktuell \PName{\#1} den Titel enthält, der geschrieben + werden soll. + \begin{lstcode} + \addcontentslinetoeachtocfile{chapter}{% + \protect\numberline{\thechapter}#1}% + \end{lstcode} + In diesem Fall soll natürlich die aktuelle Kapitelnummer direkt beim + Schreiben in die Verzeichnisdatei expandiert werden, weshalb sie nicht mit + \Macro{protect} vor der Expansion geschützt wurde. +\end{Example} +% +\EndIndex{Cmd}{addcontentslineroeachtocfile}% + + +\begin{Declaration} + \Macro{listoftoc}\OParameter{Titel}\Parameter{Dateierweiterung}\\ + \Macro{listoftoc*}\Parameter{Dateierweiterung}\\ + \Macro{listofeachtoc}\OParameter{Besitzer}\\ + \Macro{listof\PName{Dateierweiterung}name} +\end{Declaration} +\BeginIndex{Cmd}{listoftoc}% +\BeginIndex{Cmd}{listoftoc*}% +\BeginIndex{Cmd}{listofeachtoc}% +\BeginIndex{Cmd}{listof\PName{Dateierweiterung}name}% +Mit diesen Anweisungen werden die Verzeichnisse ausgegeben. Die Sternvariante +\Macro{listoftoc*} benötigt als einziges Argument die \PName{Dateierweiterung} +der Datei mit den Daten zu dem Verzeichnis. Die Anweisung setzt zunächst die +vertikalen und horizontalen Abstände, die innerhalb von Verzeichnissen gelten +sollen, führt die Anweisungen aus, die vor dem Einlesen der Datei ausgeführt +werden sollen, liest dann die Datei und führt zum Schluss die Anweisungen aus, +die nach dem Einlesen der Datei ausgeführt werden sollen. Damit kann +\Macro{listoftoc*} als direkter Ersatz der \LaTeX-Kern-Anweisung +\Macro{@starttoc} verstanden werden. + +Die Version von \Macro{listoftoc} ohne Stern setzt das komplette Verzeichnis +und veranlasst auch einen optionalen Eintrag in das Inhaltsverzeichnis und den +Kolumnentitel. Ist das optionale Argument \OParameter{Titel} gegeben, so wird +diese Angabe sowohl als Überschrift als auch als optionaler Eintrag in +Inhaltsverzeichnis und Kolumnentitel verwendet. Ist das Argument \PName{Titel} +lediglich leer, so wird auch eine leere Angabe verwendet. Wird hingegen das +komplette Argument einschließlich der eckigen Klammern weggelassen, so wird +die Anweisung \Macro{listof\PName{Dateierweiterung}name} verwendet, wenn diese +definiert ist. Ist sie nicht definiert, wird ein Standard-Ersatzname verwendet +und eine Warnung ausgegeben. + +Die Anweisung \Macro{listofeachtoc} gibt alle Verzeichnisse des angegebenen +Besitzers oder alle Verzeichnisse aller bekannten Dateinamenerweiterungen +aus. Dabei sollte \Macro{listof\PName{Dateierweiterung}name} definiert sein, +damit der korrekte Titel ausgegeben werden kann. Da eventuell auch der +Anwender selbst die Anweisungen \Macro{listoftoc*} und \Macro{listofeachtoc} +verwenden könnte, wird empfohlen \Macro{listof\PName{Dateierweiterung}name} +immer passend zu definieren. +\begin{Example} + Angenommen, Sie haben ein neues »Verzeichnis der Algorithmen« mit der + Dateierweiterung »\PValue{loa}« und wollen dieses anzeigen lassen: + \begin{lstcode} + \listoftoc[Verzeichnis der Algorithmen]{loa} + \end{lstcode} + erledigt das für Sie. Wollen Sie das Verzeichnis hingegen ohne Überschrift + ausgegeben haben, dann genügt: + \begin{lstcode} + \listoftoc*{loa} + \end{lstcode} + In diesem Fall würde natürlich auch ein optional aktivierter Eintrag in das + Inhaltsverzeichnis nicht gesetzt. Näheres zur Eigenschaft des Eintrags in + das Inhaltsverzeichnis ist bei der Anweisung \Macro{setuptoc}, + \autopageref{desc:tocbasic.cmd.setuptoc} zu finden. +\end{Example} +% +\EndIndex{Cmd}{listof\PName{Dateierweiterung}name}% +\EndIndex{Cmd}{listofeachtoc}% +\EndIndex{Cmd}{listoftoc*}% +\EndIndex{Cmd}{listoftoc}% + + +\begin{Declaration} + \Macro{BeforeStartingTOC}\OParameter{Dateierweiterung}\Parameter{Anweisungen}\\ + \Macro{AfterStartingTOC}\OParameter{Dateierweiterung}\Parameter{Anweisungen} +\end{Declaration} +\BeginIndex{Cmd}{BeforeStartingTOC}% +\BeginIndex{Cmd}{AfterStartingTOC}% +Manchmal ist es nützlich, wenn unmittelbar vor dem Einlesen der Datei mit den +Verzeichnisdaten \PName{Anweisungen} ausgeführt werden können. Mit Hilfe von +\Macro{BeforeStartingTOC} können Sie genau solche \PName{Anweisungen} +wahlweise für eine einzelne \PName{Dateierweiterung} oder alle Dateien, die +mit Hilfe von \Macro{listoftoc*}, \Macro{listoftoc} oder \Macro{listofeachtoc} +eingelesen werden, erreichen. Ebenso können Sie \PName{Anweisungen} nach dem +Einlesen der Datei ausführen, wenn Sie diese mit \Macro{AfterStartingTOC} +definieren. Während der Ausführung der \PName{Anweisungen} ist +\Macro{@currext} die Dateierweiterung der Datei, die eingelesen wird +bzw. gerade eingelesen wurde.% +\EndIndex{Cmd}{AfterStartingTOC}% +\EndIndex{Cmd}{BeforeStartingTOC}% + + +\begin{Declaration} + \Macro{BeforeTOCHead}\OParameter{Dateierweiterung}\Parameter{Anweisungen}\\ + \Macro{AfterTOCHead}\OParameter{Dateierweiterung}\Parameter{Anweisungen} +\end{Declaration} +\BeginIndex{Cmd}{BeforeTOCHead}% +\BeginIndex{Cmd}{AfterTOCHead}% +Es können auch \PName{Anweisungen} definiert werden, die unmittelbar vor oder +nach dem Setzen der Überschrift bei Verwendung von \Macro{listoftoc} oder +\Macro{listofeachtoc}, ausgeführt werden. Bezüglich des optionalen Arguments +und der Bedeutung von \Macro{@currext} gilt, was bereits bei +\Macro{BeforeStartingTOC} und \Macro{AfterStartingTOC} oben erklärt wurde.% +\EndIndex{Cmd}{AfterTOCHead}% +\EndIndex{Cmd}{BeforeTOCHead}% + + +\begin{Declaration} + \Macro{MakeMarkcase} +\end{Declaration} +\BeginIndex{Cmd}{MakeMarkcase}% +Wenn das Paket \Package{tocbasic} eine Marke für einen Kolumnentitel setzt, +dann setzt sie diese immer als Argument der Anweisung +\Macro{MakeMarkcase}. Diese Anweisung ist dazu gedacht, bei Bedarf die +Groß-/Kleinschreibung des Kolumnentitels zu ändern. In der Voreinstellung ist +diese Anweisung bei Verwendung einer \KOMAScript-Klasse \Macro{@firstofone} +und bei Verwendung einer anderen Klasse \Macro{MakeUppercase}. Die Anweisung +wird von \Package{tocbasic} jedoch nur definiert, wenn sie noch nicht bereits +definiert ist. Sie kann also in einer Klasse in der gewünschten Weise +vorbelegt werden und wird dann von \Package{tocbasic} nicht umdefiniert, +sondern verwendet wie vorgefunden. +\begin{Example} + Sie wollen aus unerfindlichen Gründen, dass die Kolumnentitel in Ihrer + Klasse in Kleinbuchstaben ausgegeben werden. Damit dies auch für die + Kolumnentitel gilt, die von \Package{tocbasic} gesetzt werden, definieren + Sie: + \begin{lstcode} + \let\MakeMarkcase\MakeLowercase + \end{lstcode} +\end{Example} +% +\EndIndex{Cmd}{MakeMarkcase}% + + +\begin{Declaration} + \Macro{deftocheading}\Parameter{Dateierweiterung}\Parameter{Definition} +\end{Declaration} +\BeginIndex{Cmd}{deftocheading}% +Das Paket \Package{tocbasic} enthält eine Standarddefinition für das Setzen +von Überschriften von Verzeichnissen. Diese Standarddefinition ist durch +verschiedene Eigenschaften, die bei der Anweisung \Macro{setuptoc} erläutert +werden, konfigurierbar. Sollte diese Möglichkeit einmal nicht ausreichen, so +besteht die Möglichkeit, mit \Macro{deftocheading} eine alternative +Überschriftenanweisung für ein Verzeichnis mit einer bestimmten +\PName{Dateierweiterung} zu definieren. Die Definition kann als einzigen +Parameter \PName{\#1} enthalten. Beim Aufruf der Anweisung innerhalb von +\Macro{listoftoc} oder \Macro{listofeachtoc} wird als dieses Argument dann der +Titel für das Verzeichnis übergeben. +% +\EndIndex{Cmd}{deftocheading}% + + +\begin{Declaration} + \Macro{setuptoc}\Parameter{Dateierweiterung}\Parameter{Liste von + Eigenschaften}\\ + \Macro{unsettoc}\Parameter{Dateierweiterung}\Parameter{Liste von + Eigenschaften} +\end{Declaration} +\BeginIndex{Cmd}{setuptoc}% +\BeginIndex{Cmd}{unsettoc}% +Mit diesen Anweisungen können \PName{Eigenschaften} für eine +\PName{Dateierweiterung} bzw. das Verzeichnis, das dazu gehört, gesetzt +werden. Die \PName{Liste von Eigenschaften} ist dabei eine durch Komma +getrennte Aneinanderreihung von \PName{Eigenschaften}. Das Paket +\Package{tocbasic} wertet folgende Eigenschaften aus: +\begin{description} +\item[\PValue{totoc}] bedeutet, dass der Titel des Verzeichnisses in das + Inhaltsverzeichnis aufgenommen werden soll. Diese Eigenschaft wird von der + internen Überschriftenanweisung ausgewertet. Wird hingegen eine eigene + Überschriftenanweisung mit \Macro{deftocheading} definiert, liegt die + Auswertung der Eigenschaft in der Verantwortung dessen, der die Definition + vornimmt. Die \KOMAScript-Klassen setzen diese Eigenschaft bei Verwendung + der Option \OptionValue{listof}{totoc} für alle Dateierweiterungen des + Besitzers \Package{float}. +\item[\PValue{numbered}] bedeutet, dass das Verzeichnis nummeriert und damit + ebenfalls in das Inhaltsverzeichnis aufgenommen werden soll. Diese + Eigenschaft wird von der internen Überschriftenanweisung ausgewertet. Wird + hingegen eine eigene Überschriftenanweisung mit \Macro{deftocheading} + definiert, liegt die Auswertung der Eigenschaft in der Verantwortung dessen, + der die Definition vornimmt. Die \KOMAScript-Klassen setzen diese + Eigenschaft bei Verwendung der Option \OptionValue{listof}{numbered} für + alle Dateierweiterungen des Besitzers \Package{float}. +\item[\PValue{leveldown}] bedeutet, dass das Verzeichnis nicht mit der + obersten Gliederungsebene (wenn vorhanden \Macro{chapter}, sonst + \Macro{section}) erstellt wird, sondern mit einer Überschrift der nächst + tieferen Gliederungsebene. Diese Eigenschaft wird von der internen + Überschriftenanweisung ausgewertet. Wird hingegen eine eigene + Überschriftenanweisung mit \Macro{deftocheading} definiert, liegt die + Auswertung der Eigenschaft in der Verantwortung dessen, der die Definition + vornimmt. Die \KOMAScript-Klassen setzen diese Eigenschaft bei Verwendung + der Option \OptionValue{listof}{leveldown} für alle Dateierweiterungen des + Besitzers \Package{float}. +\item[\PValue{nobabel}] bedeutet, dass die normalerweise automatisch + verwendete Erweiterung für die Sprachumschaltung mit \Package{babel} für + diese Dateierweiterung nicht verwendet wird. Diese Eigenschaft sollte nur + für Verzeichnisse verwendet werden, die nur in einer festen Sprache erstellt + werden, in denen also Sprachumschaltungen im Dokument nicht zu + berücksichtigen sind. +\end{description} +Die \KOMAScript-Klassen kennen eine weitere Eigenschaft: +\begin{description} +\item[\PValue{chapteratlist}] sorgt dafür, dass in dieses Verzeichnis bei + jedem neuen Kapitel eine optionale Gliederung eingefügt wird. In der + Voreinstellung ist diese Untergliederung dann ein vertikaler + Abstand. Näheres zu den Möglichkeiten ist Option \Option{listof} in + \autoref{sec:maincls.floats}, \autopageref{desc:maincls.option.listof} zu + entnehmen. +\end{description} +\begin{Example} + Da \KOMAScript{} für das Abbildungs- und das Tabellenverzeichnis auf + \Package{tocbasic} aufbaut, gibt es nun eine weitere Möglichkeit, jegliche + Kapiteluntergliederung dieser Verzeichnisse zu verhindern: + \begin{lstcode} + \unsettoc{lof}{chapteratlist} + \unsettoc{lot}{chapteratlist} + \end{lstcode} + + Wollen Sie hingegen, dass das von Ihnen definierte Verzeichnis mit der + Dateierweiterung »\PName{loa}« ebenfalls von der Kapiteluntergliederung der + \KOMAScript-Klassen betroffen ist, so verwenden Sie + \begin{lstcode} + \setuptoc{loa}{chapteratlist} + \end{lstcode} + Sollte Ihr Paket mit einer anderen Klasse verwendet werden, so schadet es + trotzdem nicht, dass Sie diese Eigenschaft setzen, im Gegenteil: wertet eine + andere Klasse diese Eigenschaft ebenfalls aus, so nutzt Ihr Paket dann eben + automatisch die Möglichkeiten jener Klasse. +\end{Example} +Wie Sie hier sehen, unterstützt ein Paket, das \Package{tocbasic} verwendet, +bereits ohne nennenswerten Aufwand diverse Möglichkeiten für die dadurch +realisierten Verzeichnisse, die sonst einigen Implementierungsaufwand +bedeuteten und deshalb in vielen Paketen leider fehlen.% +\EndIndex{Cmd}{unsettoc}% +\EndIndex{Cmd}{setuptoc}% + + +\begin{Declaration} + \Macro{iftocfeature}\Parameter{Dateierweiterung}\Parameter{Eigenschaft}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{iftocfeature}% +Mit dieser Anweisung können Sie feststellen, ob eine bestimmte +\PName{Eigenschaft} für eine \PName{Dateierweiterung} gesetzt ist. Ist sie +gesetzt, so wird der \PName{Dann-Teil} ausgeführt, anderenfalls der +\PName{Sonst-Teil}. Dies ist beispielsweise dann nützlich, wenn Sie eigene +Überschriftenanweisungen mit \Macro{deftocheading} definieren, aber die oben +beschriebene Eigenschaft \PValue{totoc}, \PValue{numbered} oder +\PValue{leveldown} ebenfalls unterstützen wollen. +% +\EndIndex{Cmd}{iftocfeature}% + + +\section{Interne Anweisungen für Klassen- und Paketautoren} +\label{sec:tocbasic.internals} + +Das Paket \Package{tocbasic} bietet einige interne Anweisungen, deren Benutzung +durch Klassen- und Paketautoren freigegeben ist. Diese Anweisungen +beginnen alle mit \Macro{tocbasic@}. Aber auch Klassen- und Paketautoren +sollten diese Anweisungen nur verwenden und nicht etwas umdefinieren! Ihre +interne Funktion kann jederzeit geändert oder erweitert werden, so dass +Umdefinierung der Anweisungen die Funktion von \Package{tocbasic} erheblich +beschädigen könnte! + + +\begin{Declaration} + \Macro{tocbasic@extend@babel}\Parameter{Dateierweiterung} +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@extend@babel}% +Das Paket \Package{babel}\IndexPackage{babel} (siehe \cite{package:babel}) +bzw. ein \LaTeX-Kern, der um die Sprachverwaltung von \Package{babel} +erweitert wurde, schreibt bei jeder Sprachumschaltung am Anfang oder innerhalb +eines Dokuments in die Dateien mit den Dateierweiterungen \File{toc}, +\File{lof} und \File{lot} Anweisungen, um diese Sprachumschaltung in diesen +Dateien mit zu führen. \Package{tocbasic} erweitert diesen Mechanismus so, +dass mit Hilfe von \Macro{tocbasic@extend@babel} auch andere +\PName{Dateierweiterungen} davon profitieren. Das Argument +\PName{Dateierweiterung} sollte dabei vollständig expandiert sein! +Anderenfalls besteht die Gefahr, dass etwa die Bedeutung eines Makros zum +Zeitpunkt der tatsächlichen Auswertung bereits geändert wurde. + +Normalerweise wird diese Anweisung für alle \PName{Dateierweiterungen}, die mit +\Macro{addtotoclist} zur Liste der bekannten Dateierweiterungen hinzugefügt +werden, aufgerufen. Über die Eigenschaft \PValue{nobabel} (siehe +\Macro{setuptoc}, \autoref{sec:tocbasic.toc}, +\autopageref{desc:tocbasic.cmd.setuptoc}) kann dies unterdrückt werden. Für +die Dateinamenerweiterungen \File{toc}, +\File{lof} und \File{lot} unterdrückt \Package{tocbasic} dies bereits selbst, +damit die Umschaltung nicht mehrfach in die zugehörigen Dateien eingetragen +wird. + +Normalerweise gibt es keinen Grund, diese Anweisung selbst aufzurufen. Es sind +allerdings Verzeichnisse denkbar, die nicht unter der Kontrolle von +\Package{tocbasic} stehen, also nicht in der Liste der bekannten +Dateierweiterungen geführt werden, aber trotzdem die Spracherweiterung für +\Package{babel} nutzen sollen. Für diese ist die Anweisung explizit +aufzurufen. Bitte achten Sie jedoch darauf, dass dies für jede Dateierweiterung +nur einmal geschieht! +% +\EndIndex{Cmd}{tocbasic@extend@babel}% + + +\begin{Declaration} + \Macro{tocbasic@starttoc}\Parameter{Dateierweiterung} +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@starttoc}% +Diese Anweisung ist der eigentlich Ersatz der Anweisung \Macro{@starttoc} aus +dem \LaTeX-Kern. Es ist die Anweisung, die sich hinter \Macro{listoftoc*} +verbirgt. Klassen- oder Paketautoren, die Vorteile von \Package{tocbasic} +nutzen wollen, sollten zumindest diese Anweisung, besser jedoch +\Macro{listoftoc} verwenden. Die Anweisung baut selbst auf \Macro{@starttoc} +auf, setzt allerdings zuvor \Length{parskip} und \Length{parindent} auf 0 und +\Length{parfillskip} auf 0 bis unendlich. Außerdem wird \Macro{@currext} auf +die aktuelle Dateierweiterung gesetzt, damit diese in den nachfolgend +ausgeführten Haken ausgewertet werden können. +% +\EndIndex{Cmd}{tocbasic@starttoc}% + + +\begin{Declaration} + \Macro{tocbasic@@before@hook}\\ + \Macro{tocbaisc@@after@hook} +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@@before@hook}% +\BeginIndex{Cmd}{tocbasic@@after@hook}% +Der Haken \Macro{tocbasic@@before@hook} wird unmittelbar vor dem Einlesen der +Verzeichnisdatei, aber noch vor den mit \Macro{BeforeStartingTOC} definierten +Anweisungen ausgeführt. Es ist erlaubt, diesen Haken mit Hilfe von +\Macro{g@addto@macro} zu erweitern. + +Ebenso wird \Macro{tocbaisc@@after@hook} unmittelbar nach der Verzeichnisdatei +aber noch vor den mit \Macro{AfterStartingTOC} definieren Anweisungen +ausgeführt. Es ist erlaubt, diesen Haken mit Hilfe von \Macro{g@addto@macro} +zu erweitern. + +\KOMAScript{} nutzt diese Haken, um die Verzeichnisse mit dynamischer +Anpassung an die Breite der Gliederungsnummern zu ermöglichen. Ihre Verwendung +ist Klassen und Paketen vorbehalten. Anwender sollten sich auf +\Macro{BeforeStartingTOC} und \Macro{AfterStartingTOC} beschränken. Paketautoren +sollten ebenfalls vorzugsweise diese beiden Anwenderanweisungen verwenden! +Ausgaben innerhalb der beiden Haken sind nicht gestattet! + +Werden für die Ausgabe der Verzeichnisse die Anweisungen \Macro{listoftoc}, +\Macro{listoftoc*} und \Macro{listofeachtoc} nicht verwendet, sollten die +beiden Anweisungen für die Haken trotzdem aufgerufen werden. +% +\EndIndex{Cmd}{tocbasic@@after@hook}% +\EndIndex{Cmd}{tocbasic@@before@hook}% + + +\begin{Declaration} + \Macro{tb@\PName{Dateierweiterung}@before@hook}\\ + \Macro{tb@\PName{Dateierweiterung}@after@hook} +\end{Declaration} +\BeginIndex{Cmd}{tb@\PName{Dateierweiterung}@before@hook}% +\BeginIndex{Cmd}{tb@\PName{Dateierweiterung}@after@hook}% +Diese Anweisungen werden unmittelbar nach \Macro{tocbasic@@before@hook} +bzw. vor \Macro{tocbaisc@@after@hook} für die einzelnen +\PName{Dateierweiterungen} ausgeführt. Sie dürfen keinesfalls von Klassen- und +Paketautoren verändert werden. Werden für die Ausgabe der Verzeichnisse die +Anweisungen \Macro{listoftoc}, \Macro{listoftoc*} und \Macro{listofeachtoc} +nicht verwendet, sollte diese die beiden Anweisungen für die Haken trotzdem +aufgerufen werden, soweit sie definiert sind. Die Anweisungen können auch +undefiniert sein. +% +\EndIndex{Cmd}{tb@\PName{Dateierweiterung}@after@hook}% +\EndIndex{Cmd}{tb@\PName{Dateierweiterung}@before@hook}% + + +\begin{Declaration} + \Macro{tocbasic@listhead}\Parameter{Titel} +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@listhead}% +Diese Anweisung wird von \Macro{listoftoc} und \Macro{listofeachtoc} +verwendet, um die Anweisung zum Setzen der Überschrift eines Verzeichnisses +aufzurufen. Das kann entweder die vordefinierte Anweisung des Pakets +\Package{tocbasic} oder eine individuelle Anweisung sein. Wenn Sie Ihre eigene +Anweisung für die Überschrift definieren, können Sie ebenfalls +\Macro{tocbasic@listhead} verwenden. In diesem Fall sollte vor dem Aufruf von +\Macro{tocbasic@listhead} die Anweisung \Macro{@currext} auf die +Dateinamenerweiterung, die zu diesem Verzeichnis gehört, gesetzt werden. +% +\EndIndex{Cmd}{tocbasic@listhead} + + +\begin{Declaration} + \Macro{tocbasic@listhead@\PName{Dateierweiterung}}\Parameter{Titel} +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@listhead@\PName{Dateierweiterung}}% +Ist diese individuelle Anweisung für das Setzen einer Verzeichnisüberschrift +definiert, so verwendet \Macro{tocbasic@listhead} diese. Anderenfalls +definiert \Macro{tocbasic@listhead} diese und ruft sie dann auf. +% +\EndIndex{Cmd}{tocbasic@listhead@\PName{Dateierweiterung}} + + +\section{Ein komplettes Beispiel} +\label{sec:tocbasic.example} + +In diesem Abschnitt finden Sie ein komplettes Beispiel, wie eine eigene +Gleitumgebung einschließlich Verzeichnis und \KOMAScript-Integration mit Hilfe +von \Package{tocbasic} definiert werden kann. In diesem Beispiel werden +interne Anweisungen, also solche mit »\texttt{@}« im Namen verwendet. Das +bedeutet, dass die Anweisungen entweder in einem eigenen Paket, einer Klasse +oder zwischen \Macro{makeatletter} und \Macro{makeatother} verwendet werden +müssen. + +Als erstes wird eine Umgebung benötigt, die diese neue Gleitumgebung +bereitstellt. Das geht ganz einfach mit: +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \newenvironment{remarkbox}{% + \@float{remarkbox}% + }{% + \end@float + } +\end{lstcode} +Die neue Umgebung heißt also \Environment{remarkbox}. + +Jede Gleitumgebung hat eine Standardplatzierung. Diese setzt sich aus +bekannten Platzierungsoptionen zusammen: +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \newcommand*{\fps@remarkbox}{tbp} +\end{lstcode} +Die neue Gleitumgebung soll also in der Voreinstellung nur oben, unten oder +auf einer eigenen Seite platziert werden dürfen. + +Gleitumgebungen haben außerdem einen nummerischen Gleittyp. Umgebungen, bei +denen das gleiche Bit im Gleittyp gesetzt ist, dürfen sich nicht gegenseitig +überholen. Abbildungen und Tabellen haben normalerweise den Typ~1 und 2. Sie +dürfen sich also gegenseitig überholen. +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \newcommand*{\ftype@remarkbox}{4} +\end{lstcode} +Die neue Umgebung hat den Typ~4, darf also Tabellen und Abbildungen überholen +und von diesen überholt werden. + +Gleitumgebungen haben außerdem eine Nummer. +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \newcounter{remarkbox} + \newcommand*{\remarkboxformat}{% + Merksatz~\theremarkbox\csname autodot\endcsname} + \newcommand*{\fnum@remarkbox}{\remarkboxformat} +\end{lstcode} +Hier wird zunächst ein neuer Zähler definiert, der unabhängig von Kapiteln +oder sonstigen Gliederungszählern ist. Dabei definiert \LaTeX{} auch gleich +\Macro{theremarkbox} mit der Standardausgabe als arabische Zahl. Diese wird +dann in der Definition der formatierten Ausgabe verwendet. Die formatierte +Ausgabe wird wiederum als Gleitumgebungsnummer für die Verwendung in +\Macro{caption} definiert. + +Gleitumgebungen haben Verzeichnisse und diese haben eine Datei mit dem Namen +\Macro{jobname} und einer Dateierweiterung. +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \newcommand*{\ext@remarkbox}{lor} +\end{lstcode} +Als Dateierweiterung verwenden wir also »\File{lor}«. + +Die Umgebung selbst steht damit. Es fehlt allerdings das Verzeichnis. Damit +wir dabei möglichst wenig selbst machen müssen, verwenden wir das Paket +\Package{tocbasic}. Dieses wird in Dokumenten mit +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \usepackage{tocbasic} +\end{lstcode} +geladen. Ein Klassen- oder Paketautor würde hingegen +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \RequirePackage{tocbasic} +\end{lstcode} +verwenden. + +Nun machen wir die neue Dateierweiterung dem Paket \Package{tocbasic} +bekannt. +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \addtotoclist[float]{lor} +\end{lstcode} +Dabei verwenden wir als Besitzer \PValue{float}, damit sich alle +anschließend aufgerufenen Optionen von \KOMAScript, die sich auf Verzeichnisse +von Gleitumgebungen beziehen, auch auf das neue Verzeichnis beziehen. + +Jetzt definieren wir noch einen Titel für dieses Verzeichnis: +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \newcommand*{\listoflorname}{Verzeichnis der Merksätze} +\end{lstcode} +Normalerweise würde man in einem Paket übrigens zunächst einen englischen +Titel definieren und dann beispielsweise mit Hilfe des Pakets +\Package{scrbase} Titel für andere Sprachen. + +Jetzt müssen wir nur noch definieren, wie ein einzelner Eintrag in dem +Verzeichnis aussehen soll: +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \newcommand*{\l@remarkbox}{\l@figure} +\end{lstcode} +Weil das die einfachste Lösung ist, wurde hier festgelegt, dass Einträge in +das Verzeichnis der Merksätze genau wie Einträge in das Abbildungsverzeichnis +aussehen sollen. Man hätte auch eine explizite Festlegung wie +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \newcommand*{\l@remarkbox}{\@dottedtocline{1}{1em}{1.5em}} +\end{lstcode} +verwenden können. + +Außerdem wollen Sie, das Kapiteleinträge sich auf das Verzeichnis auswirken. +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \setuptoc{lor}{chapteratlist} +\end{lstcode} +Das Setzen dieser Eigenschaft ermöglicht dies bei Verwendung einer +\KOMAScript-Klasse und jeder anderen Klasse, die diese Eigenschaft +unterstützt. Leider gehören die Standardklassen nicht dazu. + +Das genügt bereits. Der Anwender kann nun bereits wahlweise mit Hilfe der +Optionen einer \KOMAScript-Klasse oder \Macro{setuptoc} verschiedene Formen +der Überschrift (ohne Inhaltsverzeichniseintrag, mit +Inhaltsverzeichniseintrag, mit Nummerierung) wählen und das Verzeichnis mit +\Macro{listoftoc}\PParameter{lor} ausgeben. Mit einem schlichten +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \newcommand*{\listofremarkboxes}{\listoftoc{lor}} +\end{lstcode} +kann man die Anwendung noch etwas vereinfachen. + +Wie Sie gesehen haben, beziehen sich gerade einmal fünf einzeilige +Anweisungen, von denen nur drei bis vier wirklich notwendig sind, auf das +Verzeichnis selbst. Trotzdem bietet dieses Verzeichnis bereits die +Möglichkeit, es zu nummerieren oder auch nicht nummeriert in das +Inhaltsverzeichnis aufzunehmen. Es kann sogar per Eigenschaft bereits eine +tiefere Gliederungsebene gewählt werden. Kolumnentitel werden für \KOMAScript, +die Standardklassen und alle Klassen, die \Package{tocbasic} explizit +unterstützen angepasst gesetzt. Unterstützende Klassen beachten das neue +Verzeichnis sogar beim Wechsel zu einem neuen Kapitel. Sprachumschaltungen +durch Babel werden in dem Verzeichnis ebenfalls berücksichtigt. + +Natürlich kann ein Paketautor weiteres hinzufügen. So könnte er explizit +Optionen anbieten, um die Verwendung von \Macro{setuptoc} vor dem Anwender zu +verbergen. Andererseits kann er auch auf diese Anleitung zu \Package{tocbasic} +verweisen, wenn es darum geht, die entsprechenden Möglichkeiten zu +erklären. Vorteil ist dann, dass der Anwender automatisch von etwaigen +zukünftigen Erweiterungen von \Package{tocbasic} profitiert. Soll der Anwender +aber nicht mit der Tatsache belastet werden, dass für die Merksätze die +Dateierweiterung \File{lor} verwendet wird, so genügt +% Umbruchkorrektur: listings korrigiert! +\begin{lstcode}[belowskip=\dp\strutbox] + \newcommand*{\setupremarkboxes}{\setuptoc{lor}} +\end{lstcode} +um eine als Argument an \Macro{setupremarkboxes} übergebene Liste von +Eigenschaften direkt als Liste von Eigenschaften für \File{lor} zu setzen. +% +\EndIndex{Package}{tocbasic}% + + +\endinput + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "guide.tex" +%%% End: + diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea-experts.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea-experts.tex new file mode 100644 index 00000000000..c0f733376e1 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea-experts.tex @@ -0,0 +1,129 @@ +% ====================================================================== +% typearea-experts.tex +% Copyright (c) Markus Kohm, 2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% typearea-experts.tex +% Copyright (c) Markus Kohm, 2001-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Chapter about typearea of the KOMA-Script guide part II +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Kapitel über typearea in der KOMA-Script-Anleitung Teil II +% Verwaltet von Markus Kohm +% +% ====================================================================== + + +\ProvidesFile{typearea-experts.tex}[2008/09/11 KOMA-Script guide (chapter: +typearea for experts)] + +\chapter{Zusätzliche Informationen zum Paket \Package{typearea.sty}} +\labelbase{typearea-experts} + +In diesem Kapitel finden Sie zusätzliche Informationen zum Paket +\Package{typearea}. \iffree{Einige Teile des Kapitels sind dabei dem + \KOMAScript-Buch \cite{book:komascript} vorbehalten. Dies sollte kein + Problem sein, denn der}{Der} normale Anwender, der das Paket einfach nur +verwenden will, wird diese Informationen normalerweise nicht benötigen. Ein +Teil der Informationen richtet sich an Anwender, die ausgefallene Aufgaben +lösen oder eigene Pakete schreiben wollen, die auf \Package{typearea} +basieren. Ein weiterer Teil der Informationen behandelt Möglichkeiten von +\Package{typearea}, die aus Gründen der Kompatibilität zu den Standardklassen +oder früheren Versionen von \KOMAScript{} existieren. Die Teile, die nur aus +Gründen der Kompatibilität zu früheren Versionen von \KOMAScript{} existieren, +sind in serifenloser Schrift gesetzt und sollten nicht mehr verwendet werden. + + +\section{Anweisungen für Experten} +\label{sec:typearea-experts.experts} + +In diesem Abschnitt werden Anweisungen beschrieben, die für den normalen +Anwender kaum oder gar nicht von Interesse sind. Experten bieten diese +Anweisungen zusätzliche Möglichkeiten. Da die Beschreibungen für Experten +gedacht sind, sind sie kürzer gefasst. + +\BeginIndex{Cmd}{activateareas}% +\begin{Declaration} + \Macro{activateareas} +\end{Declaration}% +Diese Anweisung wird von \Package{typearea} genutzt, um die Einstellungen +für Satzspiegel und Ränder in die internen \LaTeX-Längen zu übertragen, wenn +der Satzspiegel innerhalb des Dokuments, also nach +\Macro{begin}\PParameter{document} neu berechnet wurde. Wurde die Option +\Option{pagesize} verwendet, so wird diese anschließend mit demselben Wert +neu aufgerufen. Damit kann beispielsweise innerhalb von PDF-Dokumenten die +Seitengröße tatsächlich variieren. + +Experten können diese Anweisung ebenfalls verwenden, wenn Sie aus +irgendwelchen Gründen, Längen wie \Length{textwidth} oder +\Length{textheight} innerhalb des Dokuments manuell geändert haben. Der +Experte ist dabei für ggf. notwendige Seitenumbrüche vor oder nach der +Verwendung jedoch selbst verantwortlich! Darüber hinaus sind alle von +\Macro{activateareas} durchgeführten Änderungen lokal!% +% +\EndIndex{Cmd}{activateareas} + +\BeginIndex{Cmd}{AfterCalculatingTypearea}% +\begin{Declaration} + \Macro{AfterCalculatingTypearea}\Parameter{Anweisungen} +\end{Declaration}% +Diese Anweisung dient der Verwaltung eines \emph{Hooks} und ermöglicht es dem +Experten jedes Mal, nachdem \Package{typearea} eine neue Aufteilung in +Satzspiegel und Ränder berechnet hat, also nach jeder impliziten oder +expliziten Ausführung von \Macro{typearea}, \PName{Anweisungen} ausführen zu +lassen. Diese \PName{Anweisungen} werden dabei unmittelbar vor +\Macro{activateareas} ausgeführt. \iffree{}{In \autoref{cha:modernletters} + wird von dieser Anweisung für die \emph{Letter-Class-Option} + \File{asymTypB.lco} Gebrauch gemacht, um die Randverteilung zu ändern.}% +% +\EndIndex{Cmd}{AfterCalculatingTypearea} + + +\section{Lokale Einstellungen durch die Datei \File{typearea.cfg}} +\label{sec:typearea-experts.cfg} +\BeginIndex{File}{typearea.cfg} + +\LoadNonFree{typearea-experts}{0} + +\section{Mehr oder weniger obsolete Optionen und Anweisungen} +\label{sec:typearea-experts.obsolete} + +\LoadNonFree{typearea-experts}{1} + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "../guide" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea.tex new file mode 100644 index 00000000000..2e8867f8895 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea.tex @@ -0,0 +1,1579 @@ +% ====================================================================== +% typearea.tex +% Copyright (c) Markus Kohm, 2001-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% typearea.tex +% Copyright (c) Markus Kohm, 2001-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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. +% ====================================================================== +% +% Chapter about typearea of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Kapitel über typearea in der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ====================================================================== + + +\ProvidesFile{typearea.tex}[2008/10/31 KOMA-Script guide (chapter: typearea)] +\chapter{Satzspiegelberechnung mit \Package{typearea.sty}} +\labelbase{typearea} + +Viele \LaTeX-Klassen, darunter auch die Standardklassen, bieten dem Anwender +eine weitgehend feste Auf"|teilung von Rändern und Textbereich. Bei den +Standardklassen ist die konkrete Auf"|teilung in engen Grenzen von der gewählten +Schriftgröße abhängig. Darüber hinaus gibt es Pakete wie +\Package{geometry}\IndexPackage{geometry} (siehe \cite{package:geometry}), die +dem Anwender die volle Kontrolle, aber auch die Verantwortung für die +Einstellungen des Textbereichs und der Ränder überlassen. + +\KOMAScript{} geht mit dem Paket \Package{typearea} einen etwas anderen +Weg. Hier werden basierend auf einer in der Typografie etablierten +Konstruktion Einstellmöglichkeiten und Automatismen geboten, die es dem +Anwender erleichtern, eine gute Wahl zu treffen. + +Es wird darauf hingewiesen, dass sich \Package{typearea} des Pakets +\Package{scrbase} bedient. Letzteres Paket ist im Expertenteil \iffree{dieser + Anleitung}{dieses Buches} in \autoref{cha:scrbase} ab +\autopageref{cha:scrbase} erklärt. Die Mehrzahl der dort dokumentierten +Anweisungen richten sich jedoch nicht an Anwender, sondern an Klassen- und +Paketautoren. + + +\section{Grundlagen der Satzspiegelkonstruktion} +\label{sec:typearea.basics} + +\begin{Explain} + Betrachtet man eine einzelne Seite eines Buches oder eines anderen + Druckwerkes, so besteht diese auf den ersten Blick aus den Rändern% + \iffalse% Umbruchkorrekturtext + \footnote{Der Autor und der Lektor haben an dieser Stelle überlegt, ob eine + Seite nicht nur einen umlaufenden Rand hat und daher von »dem Rand« die + Rede sein müsste. Da jedoch \LaTeX{} diesen einen Rand logisch in mehrere + Ränder unterteilt, die getrennt bestimmt werden, ist hier auch von »den + Rändern« die Rede.}% + \fi% + , einem Kopfbereich, einem Textkörper und einem Fußbereich. Genauer + betrachtet kommt noch ein Abstand zwischen Kopfbereich und Textkörper sowie + zwischen Textkörper und Fußbereich hinzu. Der Textkörper heißt in der + Fachsprache der Typografen und Setzer \emph{Satzspiegel}. Die Auf"|teilung + dieser Bereiche, sowie ihre Anordnung zueinander und auf dem Papier nennen + wir \emph{Satzspiegeldefinition} oder + \emph{Satzspiegelkonstruktion}.\Index[indexmain]{Satzspiegel} + + In der Literatur werden verschiedene Algorithmen und heuristische Verfahren + zur Konstruktion eines guten Satzspiegels vorgeschlagen und diskutiert + \ifx\BUCH\undefined\cite{DANTE:TK0402:MJK}\else(siehe + \autoref{cha:typeareaconstruction})\fi. Häufig findet man dabei ein + Verfahren, das mit verschiedenen Diagonalen und Schnittpunkten arbeitet. Das + gewünschte Ergebnis dabei ist, dass das Seitenverhältnis des Satzspiegels + dem Seitenverhältnis \emph{der Seite} entspricht. Bei einem + einseitigen\Index{einseitig} Dokument sollen außerdem der linke und der + rechte Rand gleich breit sein, während der obere zum unteren Rand im + Verhältnis 1:2 stehen sollte. Bei einem doppelseitigen\Index{doppelseitig} + Dokument, beispielsweise einem Buch, ist hingegen zu beachten, dass der + gesamte innere Rand genauso groß sein sollte wie jeder der beiden äußeren + Ränder. Eine einzelne Seite steuert dabei jeweils nur die Hälfte des inneren + Randes bei. + + Im vorherigen Absatz wurde \emph{die Seite} erwähnt und + hervorgehoben. Irrtümlich wird oftmals angenommen, das Format der Seite wäre + mit dem Format des Papiers gleichzusetzen.\Index[indexmain]{Seitenformat} + \Index[indexmain]{Papierformat} Betrachtet man jedoch ein gebundenes + Druckerzeugnis, so ist zu erkennen, dass ein Teil des Papiers in der + Bindung\Index[indexmain]{Bindung} verschwindet und nicht mehr als Seite zu + sehen ist. Für den Satzspiegel ist jedoch nicht entscheidend, welches Format + das Papier hat, sondern, was der Leser für einen Eindruck vom Format der + Seite bekommt. Damit ist klar, dass bei der Berechnung des Satzspiegels der + Teil, der durch die Bindung versteckt wird, aus dem Papierformat + herausgerechnet und dann zum inneren Rand hinzugefügt werden muss. Wir + nennen diesen Teil \emph{Bindekorrektur}.\Index[indexmain]{Bindekorrektur} + Die Bindekorrektur ist also rechnerischer Bestandteil des + \emph{Bundstegs}\Index[indexmain]{Bundsteg}, nicht jedoch des sichtbaren + inneren Randes. + + Die Bindekorrektur ist vom jeweiligen Produktionsvorgang abhängig und kann + nicht allgemein festgelegt werden. Es handelt sich dabei also um einen + Parameter, der für jeden Produktionsvorgang neu festzulegen ist. Im + professionellen Bereich spielt dieser Wert nur eine geringe Rolle, da + ohnehin auf größere Papierbögen gedruckt und entsprechend geschnitten + wird. Beim Schneiden wird dann wiederum sichergestellt, dass obige + Verhältnisse für die sichtbare Doppelseite eingehalten sind. + + Wir wissen nun also, wie die einzelnen Teile zueinander stehen. Wir wissen + aber noch nicht, wie breit und hoch der Satzspiegel ist. Kennen wir eines + dieser beiden Maße, so ergeben sich zusammen mit dem Papierformat und dem + Seitenformat oder der Bindekorrektur alle anderen Maße durch Lösung mehrerer + mathematischer Gleichungen. + \begin{align*} + \Var{Satzspiegelhöhe}\Index{Satzspiegel} : \Var{Satzspiegelbreite} &= + \Var{Seitenhöhe}\Index{Seite} : \Var{Seitenbreite} \\ + \Var{oberer~Rand}\Index{Rand} : \Var{unterer~Rand} &= + \text{1} : \text{2} \\ +% + \Var{linker~Rand} : \Var{rechter~Rand} &= \text{1} : \text{1} \\ +% + \Var{innerer~Randanteil} : \Var{äußerer~Rand} &= \text{1} : \text{2} \\ +% + \Var{Seitenbreite} &= + \Var{Papierbreite}\Index{Papier} - + \Var{Bindekorrektur}\Index{Bindekorrektur}\\ +% + \Var{oberer~Rand} + \Var{unterer~Rand} &= + \Var{Seitenhöhe} - \Var{Satzspiegelhöhe} \\ +% + \Var{linker~Rand} + \Var{rechter Rand} &= + \Var{Seitenbreite} - \Var{Satzspiegelbreite} \\ +% + \Var{innerer Randanteil} + \Var{äußerer Rand} &= + \Var{Seitenbreite} - \Var{Satzspiegelbreite} \\ +% + \Var{innerer~Randanteil} + \Var{Bindekorrektur} &= + \Var{Bundsteg}\index{Bundsteg} + \end{align*} + \Index[indexmain]{Rand}% + Dabei gibt es \Var{linker~Rand} und \Var{rechter~Rand} nur im einseitigen + Druck. Entsprechend gibt es \Var{innerer~Randanteil} und + \Var{äußerer~Rand} nur im doppelseitigen Druck. In den Gleichungen + wird mit \Var{innerer~Randanteil} gearbeitet, weil der ganze innere Rand zur + Doppelseite gehört. Zu einer Seite gehört also nur die Hälfte des inneren + Randes, \Var{innerer~Randanteil}. + + Die Frage nach der Breite des Satzspiegels wird in der Literatur + ebenfalls diskutiert. Die optimale Satzspiegelbreite ist von + verschiedenen Faktoren abhängig: + \begin{itemize} + \item Größe, Laufweite und Art der verwendeten Schrift + \item Verwendeter Durchschuss + \item Länge der Worte + \item Verfügbarer Platz + \end{itemize} + Der Einfluss der Schrift wird deutlich, wenn man sich bewusst macht, + wozu Serifen dienen. Serifen\Index[indexmain]{Serifen} sind kleine + Striche an den Linienenden der Buchstaben. Buchstaben, die mit + vertikalen Linien auf die Grundlinie der Textzeile treffen, + lösen diese eher auf, als dass sie das Auge auf der Linie halten. + Genau bei diesen Buchstaben liegen die Serifen horizontal auf + der Grundlinie und verstärken damit die Zeilenwirkung der Schrift. + Das Auge kann der Textzeile nicht nur beim Lesen der Worte, sondern + insbesondere auch beim schnellen Zurückspringen an den Anfang der + nächsten Zeile besser folgen. Damit darf die Zeile bei einer Schrift + mit Serifen genau genommen länger sein als bei einer Schrift ohne Serifen. + + Unter dem Durchschuss\Index[indexmain]{Durchschuss} versteht man den + Abstand zwischen Textzeilen. Bei \LaTeX{} ist ein Durchschuss von + etwa 20\,\% der Schriftgröße voreingestellt. Mit Befehlen wie + \Macro{linespread}\IndexCmd{linespread} oder besser mit Hilfe von + Paketen wie \Package{setspace}\IndexPackage{setspace} (siehe + \cite{package:setspace}) kann der Durchschuss verändert werden. Ein + großer Durchschuss erleichtert dem Auge die Verfolgung einer Zeile. + Bei sehr großem Durchschuss wird das Lesen aber dadurch gestört, + dass das Auge zwischen den Zeilen weite Wege zurücklegen muss. + Daneben wird sich der Leser des entstehenden Streifeneffekts sehr + deutlich und unangenehm bewusst. Der Graueindruck der Seite ist in + diesem Fall gestört. Dennoch dürfen bei großem Durchschuss die + Zeilen länger sein. + + Auf der Suche nach konkreten Werten für gute + Zeilenlängen\Index[indexmain]{Zeilenlaenge=Zeilenlänge} findet man in der + Literatur je nach Autor unterschiedliche Angaben. Teilweise ist dies auch in + der Muttersprache des Autors begründet. Das Auge springt nämlich + üblicherweise von Wort zu Wort, wobei kurze Worte diese Aufgabe + erleichtern. Über alle Sprachen und Schriftarten hinweg kann man sagen, dass + eine Zeilenlänge von 60 bis 70 Zeichen, einschließlich Leer- und + Satzzeichen, einen brauchbaren Kompromiss darstellen. Ein gut gewählter + Durchschuss wird dabei vorausgesetzt. Bei den Voreinstellungen von \LaTeX{} + braucht man sich über Letzteres normalerweise keine Sorgen zu + machen. Größere Zeilenlängen darf man nur Gewohnheitslesern zumuten, die + täglich viele Stunden lesend zubringen. Aber auch dann sind Zeilenlängen + jenseits von 80 Zeichen unzumutbar. In jedem Fall ist dann der Durchschuss + anzupassen. 5\,\% bis 10\,\% zusätzlich sind dabei als Faustregel + empfehlenswert. Bei Schriften wie Palatino, die bereits bei einer normalen + Zeilenlänge nach 5\,\% mehr Durchschuss verlangt, können es auch mehr sein. + + Bevor wir uns an die konkrete Konstruktion machen, fehlen jetzt nur noch + Kleinigkeiten, die man wissen sollte. \LaTeX{} beginnt die erste Zeile des + Textbereichs einer Seite nicht am oberen Rand des Textbereichs, sondern + setzt die Grundlinie der Zeile mit einem definierten Mindestabstand zum + oberen Rand des Textbereichs. Des Weiteren verfügt \LaTeX{} über die beiden + Befehle \Macro{raggedbottom}\IndexCmd{raggedbottom} und + \Macro{flushbottom}\IndexCmd{flushbottom}. Der erste dieser Befehle legt + fest, dass die letzte Zeile einer jeden Seite dort liegen soll, wo sie eben + zu liegen kommt. Das kann dazu führen, dass sich die Position der letzten + Zeile von Seite zu Seite vertikal um nahezu eine Zeile verändern kann -- bei + Zusammentreffen des Seitenendes mit Überschriften, Abbildungen, Tabellen + oder Ähnlichem auch mehr. Im doppelseitigen Druck ist das in der Regel + unerwünscht. Mit dem zweiten Befehl, \Macro{flushbottom}, wird hingegen + festgelegt, dass die letzte Zeile immer am unteren Rand des Textbereichs zu + liegen kommt. Um diesen vertikalen Ausgleich zu erreichen, muss \LaTeX{} + gegebenenfalls dehnbare vertikale Abstände über das erlaubte Maß hinaus + strecken. Ein solcher Abstand ist beispielsweise der Absatzabstand. Dies + gilt in der Regel auch, wenn man gar keinen Absatzabstand verwendet. Um + nicht bereits auf normalen Seiten, auf denen der Absatzabstand das einzige + dehnbare vertikale Maß darstellt, eine Dehnung zu erzwingen, sollte die Höhe + des Textbereichs ein Vielfaches der Textzeilenhöhe zuzüglich des Abstands + der ersten Zeile vom oberen Rand des Textbereichs sein. + + \looseness=-1 % Umbruchkorrektur + Damit sind alle Grundlagen der Satzspiegelberechnung, die bei + {\KOMAScript} eine Rolle spielen, erklärt. +\iffalse% Umbruchkorrektur + Wir können also mit der konkreten Konstruktion beginnen. +\fi + In den folgenden beiden Abschnitten werden die von {\KOMAScript} angebotenen + Konstruktionen vorgestellt. +\end{Explain} + + +\section{Satzspiegelkonstruktion durch Teilung} +\label{sec:typearea.divConstruction} + +\begin{Explain} + Der einfachste Weg, um zu erreichen, dass der Textbereich dasselbe + Verhältnis aufweist wie die Seite, ist folgender: Zunächst zieht man an der + Innenseite des Papiers den Teil \Var{BCOR}, der für die + Bindekorrektur\Index{Bindekorrektur} benötigt wird, ab und teilt die + restliche Seite vertikal in eine Anzahl \Var{DIV} gleich hoher + Streifen. Dann teilt man die Seite horizontal in die gleiche Anzahl + \Var{DIV} gleich breiter Streifen. Nun verwendet man den obersten + horizontalen Streifen als oberen und die beiden untersten horizontalen + Streifen als unteren Rand. Im doppelseitigen Druck verwendet man außerdem + den innersten vertikalen Streifen als inneren und die beiden äußersten + vertikalen Streifen als äußeren Rand. Zum inneren Rand gibt man dann noch + \Var{BCOR} hinzu. Was nun innerhalb der Seite noch übrig bleibt, ist der + Textbereich.\Index{Textbereich} Die Breite bzw. Höhe der Ränder und des + Textbereichs resultiert damit automatisch aus der Anzahl \Var{DIV} der + Streifen. Da für die Ränder insgesamt jeweils drei Streifen benötigt werden, + muss \Var{DIV} zwingend größer als drei sein. Damit der Satzspiegel + mindestens doppelt so viel Platz wie die Ränder einnimmt, sollte \Var{DIV} + sogar mindestens 9 betragen. Mit diesem Wert ist die Konstruktion auch als + \emph{klassische Neunerteilung} bekannt (siehe + \autoref{fig:typearea.nineparts}). + + \begin{figure} + \centering + \setlength{\unitlength}{.25mm} + \definecolor{komalight}{gray}{.75} + \definecolor{komamed}{gray}{.6} + \definecolor{komadark}{gray}{.3} + \begin{picture}(420,297) + % BCOR + \put(198,0){\color{komalight}\rule{24\unitlength}{297\unitlength}} + \multiput(198,2)(0,20){15}{\thinlines\line(0,1){10}} + \multiput(222,2)(0,20){15}{\thinlines\line(0,1){10}} + % Das Papier + \put(0,0){\thicklines\framebox(420,297){}} +% \put(210,0){\thicklines\framebox(210,297){}} + % Der Satzspiegel + \put(44,66){\color{komamed}\rule{132\unitlength}{198\unitlength}} + \put(244,66){\color{komamed}\rule{132\unitlength}{198\unitlength}} + % Hilfslinien + \multiput(0,33)(0,33){8}{\thinlines\line(1,0){198}} + \multiput(222,33)(0,33){8}{\thinlines\line(1,0){198}} + \multiput(22,0)(22,0){8}{\thinlines\line(0,1){297}} + \multiput(244,0)(22,0){8}{\thinlines\line(0,1){297}} + % Beschriftung + \put(198,0){\color{white}\makebox(24,297)[c]{% + \rotatebox[origin=c]{-90}{Bindekorrektur}}} + \put(44,66){\color{white}\makebox(132,198)[c]{Satzspiegel links}} + \put(244,66){\color{white}\makebox(132,198)[c]{Satzspiegel rechts}} + % Kästchennummern + \makeatletter + \multiput(1,27)(0,33){9}{\footnotesize\makebox(0,0)[l]{\the\@multicnt}} + \multiput(177,291)(-22,0){9}{% + \footnotesize\makebox(0,0)[l]{\the\@multicnt}} + \multiput(419,27)(0,33){9}{% + \footnotesize\makebox(0,0)[r]{\the\@multicnt}} + \multiput(243,291)(22,0){8}{% + \footnotesize\makebox(0,0)[r]{\the\numexpr\@multicnt+1\relax}} + \makeatother + \end{picture} + \caption{Doppelseite mit der Rasterkonstruktion für die klassische + Neunerteilung nach Abzug einer Bindekorrektur} + \label{fig:typearea.nineparts} + \end{figure} + + Bei {\KOMAScript} ist diese Art der Konstruktion im Paket \Package{typearea} + realisiert, wobei der untere Rand weniger als eine Textzeile kleiner + ausfallen kann, um die im vorherigen Abschnitt erwähnte Nebenbedingung für + die Satzspiegelhöhe einzuhalten und damit die dort erwähnte Problematik in + Bezug auf \Macro{flushbottom} zu mindern. Dabei sind für A4-Papier je nach + Schriftgröße unterschiedliche Werte für \Var{DIV} voreingestellt, die + \autoref{tab:typearea.div}, \autopageref{tab:typearea.div} zu entnehmen + sind. Bei Verzicht auf Bindekorrektur, wenn also \Var{BCOR} = 0\Unit{pt} + gilt, ergeben sich in etwa die Satzspiegelmaße aus + \autoref{tab:typearea.typearea}, \autopageref{tab:typearea.typearea}. + + Neben den voreingestellten Werten kann man \Var{BCOR} und \Var{DIV} direkt + beim Laden des Pakets als Option angeben (siehe + \autoref{sec:typearea.typearea} ab + \autopageref{sec:typearea.typearea}). Zusätzlich existiert ein Befehl, mit + dem man einen Satzspiegel explizit berechnen kann und dem man die beiden + Werte als Parameter übergibt (\iffalse siehe ebenfalls + \autoref{sec:typearea.typearea}, \fi\autopageref{desc:typearea.cmd.typearea}). + + Das \Package{typearea}-Paket bietet außerdem die Möglichkeit, den optimalen + \Var{DIV}-Wert automatisch zu bestimmen. Dieser ist von der Schrift und dem + Durchschuss abhängig, der zum Zeitpunkt der Satzspiegelberechnung + eingestellt ist% + \iffalse. Siehe hierzu ebenfalls \autoref{sec:typearea.typearea}, \else\ + (\fi\autopageref{desc:typearea.option.DIV.calc}\iftrue)\fi. +\end{Explain} + + +\section{Satzspiegelkonstruktion durch Kreisschlagen} +\label{sec:typearea.circleConstruction} + +\begin{Explain} + Neben der zuvor beschriebenen Satzspiegelkonstruktion\Index{Satzspiegel} + gibt es in der Literatur noch eine eher klassische oder sogar + mittelalterliche Methode. Bei diesem Verfahren will man die gleichen Werte + nicht nur in Form des Seitenverhältnisses wiederfinden; man geht außerdem + davon aus, dass das Optimum dann erreicht wird, wenn die Höhe des + Textbereichs der Breite der Seite entspricht. Das genaue Verfahren ist + beispielsweise in \cite{JTsch87} nachzulesen. + + Als Nachteil dieses spätmittelalterlichen Buchseitenkanons ergibt + sich, dass die Breite des Textbereichs nicht mehr von der Schriftart + abhängt. Es wird also nicht mehr der zur Schrift passende + Textbereich gewählt, stattdessen muss der Autor oder Setzer die zum + Textbereich passende Schrift wählen. Dies ist als zwingend zu + betrachten. + + Im \Package{typearea}-Paket wird diese Konstruktion dahingehend + abgewandelt, dass durch Auswahl eines ausgezeichneten -- normalerweise + unsinnigen -- \Var{DIV}-Wertes oder eine spezielle Paket-Option + derjenige \Var{DIV}-Wert ermittelt wird, bei dem der resultierende + Satzspiegel dem spätmittelalterlichen Buchseitenkanon am nächsten + kommt. Es wird also wiederum auf die Satzspiegelkonstruktion durch Teilung + zurückgegriffen. +\iftrue +% Umbruchkorrekturtext + Bei Wahl einer guten Schrift stimmt dieses Ergebnis nicht selten mit der + Suche nach dem optimalen \Var{DIV}-Wert überein. Siehe hierzu ebenfalls + \autoref{sec:typearea.typearea}, \autopageref{desc:typearea.option.DIV.calc}. +% +\fi +\end{Explain} + +\LoadCommon{0} % \section{Frühe oder späte Optionenwahl} + +\section{Einstellung des Satzspiegels und der \texorpdfstring{Seitenauf"|teilung}{Seitenaufteilung}} +\label{sec:typearea.typearea} + +Das Paket \Package{typearea} bietet zwei unterschiedliche +Benutzerschnittstellen, um auf die Satzspiegelkonstruktion Einfluss zu +nehmen. Die wichtigste Möglichkeit ist die Angabe von Optionen. Wie +im vorherigen Abschnitt erwähnt, können die Optionen dabei auf +unterschiedlichen Wegen gesetzt werden. + +In diesem Abschnitt wird die Klasse \Class{protokol} verwendet werden. Es +handelt sich dabei nicht um eine \KOMAScript-Klasse, sondern um eine +hypothetische Klasse. Diese\iffree{ Anleitung}{s Buch} geht von dem Idealfall +aus, dass für jede Aufgabe eine dafür passende Klasse zur Verfügung steht. + + +\BeginIndex{Option}{BCOR~=\PName{Wert}}% +\begin{Declaration} + \KOption{BCOR}\PName{Korrektur} +\end{Declaration}% +Mit Hilfe der Option +\KOption{BCOR}\PName{Korrektur}\ChangedAt{v3.00}{\Package{typearea}} geben Sie +den absoluten Wert der Bindekorrektur\Index{Bindekorrektur} an, also die +Breite des Bereichs, der durch die Bindung von der Papierbreite verloren +geht. Dieser Wert wird in der Satzspiegelkonstruktion automatisch +berücksichtigt und bei der Ausgabe wieder dem inneren beziehungsweise linken +Rand zugeschlagen. Als \PName{Korrektur} können Sie jede von \TeX{} +verstandene Maßeinheit angeben. + +\begin{Example} + Angenommen, Sie erstellen einen Finanzbericht. Das Ganze soll + einseitig in A4 gedruckt und anschließend in eine Klemmmappe + geheftet werden. Die Klemme der Mappe verdeckt 7,5\Unit{mm}. + Der Papierstapel ist sehr dünn, deshalb gehen beim Knicken und + Blättern durchschnittlich höchstens weitere 0,75\Unit{mm} + verloren. Sie schreiben dann also: +\begin{lstcode} + \documentclass[a4paper]{report} + \usepackage[BCOR=8.25mm]{typearea} +\end{lstcode} + oder +\begin{lstcode} + \documentclass[a4paper,BCOR=8.25mm]{report} + \usepackage{typearea} +\end{lstcode} + bei Angabe von \Option{BCOR} als globale Option. + + Bei Verwendung einer \KOMAScript-Klasse kann das explizite Laden von + \Package{typearea} entfallen: + \begin{lstcode} + \documentclass[BCOR=8.25mm]{scrreprt} + \end{lstcode} + Die Option \Option{a4paper} konnte bei \Class{scrreprt} entfallen, da diese + der Voreinstellung bei allen \KOMAScript-Klassen entspricht. + + Setzt man die Option erst später auf einen neuen Wert, verwendet man also + beispielsweise + \begin{lstcode} + \documentclass{scrreprt} + \KOMAoptions{BCOR=8.25mm} + \end{lstcode} + so werden bereits beim Laden der Klasse \Class{scrreprt} + Standardeinstellungen vorgenommen. Beim Ändern der Einstellung mit Hilfe der + Anweisung \Macro{KOMAoptions} oder \Macro{KOMAoption} wird dann automatisch + ein neuer Satzspiegel mit neuen Randeinstellungen berechnet. +\end{Example} + +Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer der +\KOMAScript-Klassen wie im Beispiel als Klassenoption oder per +\Macro{KOMAoptions} beziehungsweise \Macro{KOMAoption} nach dem Laden der +Klasse übergeben werden muss. Weder sollte das Paket \Package{typearea} bei +Verwendung einer \KOMAScript-Klasse explizit per \Macro{usepackage} geladen, +noch die Option dabei als optionales Argument angegeben werden. Wird die +Option per \Macro{KOMAoptions} oder \Macro{KOMAoption} nach dem Laden des +Pakets geändert, so werden Satzspiegel und Ränder automatisch neu berechnet.% +% +\EndIndex{Option}{BCOR~=\PName{Wert}} + + +\BeginIndex{Option}{DIV~=\PName{Wert}}% +\begin{Declaration} + \KOption{DIV}\PName{Faktor} +\end{Declaration}% +Mit Hilfe der Option +\KOption{DIV}\PName{Faktor}\ChangedAt{v3.00}{\Package{typearea}} wird +festgelegt, in wie viele Streifen die Seite horizontal und vertikal bei der +Satzspiegelkonstruktion eingeteilt wird. Die genaue Konstruktion ist +\autoref{sec:typearea.divConstruction} zu entnehmen. Wichtig zu wissen ist, +dass gilt: Je größer der \PName{Faktor}, desto größer wird der Textbereich und +desto kleiner die Ränder. Als \PName{Faktor} kann jeder ganzzahlige Wert ab 4 +verwendet werden. Bitte beachten Sie jedoch, dass sehr große Werte dazu führen +können, dass Randbedingungen der Satzspiegelkonstruktion, je nach Wahl der +weiteren Optionen, verletzt werden. So kann die Kopfzeile im Extremfall auch +außerhalb der Seite liegen. Bei Verwendung der Option +\KOption{DIV}\PName{Faktor} sind Sie für die Einhaltung der Randbedingungen +sowie eine nach typografischen Gesichtspunkten günstige Zeilenlänge selbst +verantwortlich. + +In \autoref{tab:typearea.typearea} finden Sie für das Seitenformat A4 +ohne Bindekorrektur die aus einigen \Var{DIV}-Faktoren +resultierenden Satzspiegelgrößen. Dabei werden die weiteren von der +Schriftgröße abhängigen Nebenbedingungen nicht berücksichtigt. + +\begin{table} + \centering + \caption{Satzspiegelma"se in Abh"angigkeit von \Var{DIV} bei A4} + \begin{tabular}{ccccc} + \toprule + & + \multicolumn{2}{c}{Satzspiegel} & \multicolumn{2}{c}{R"ander}\\ + %\raisebox{1.5ex}[0pt]{ + \Var{DIV} + %} + & + Breite [mm] & H"ohe [mm] & oben [mm] & innen [mm] \\ + \midrule + 6 & 105,00 & 148,50 & 49,50 & 35,00 \\ + 7 & 120,00 & 169,71 & 42,43 & 30,00 \\ + 8 & 131,25 & 185,63 & 37,13 & 26,25 \\ + 9 & 140,00 & 198,00 & 33,00 & 23,33 \\ + 10 & 147,00 & 207,90 & 29,70 & 21,00 \\ + 11 & 152,73 & 216,00 & 27,00 & 19,09 \\ + 12 & 157,50 & 222,75 & 24,75 & 17,50 \\ + 13 & 161,54 & 228,46 & 22,85 & 16,15 \\ + 14 & 165,00 & 233,36 & 21,21 & 15,00 \\ + 15 & 168,00 & 237,60 & 19,80 & 14,00 \\ + \bottomrule + \end{tabular} + \label{tab:typearea.typearea} +\end{table} + +\iffree{}{\clearpage}% Umbruchkorrektur +\begin{Example} + Angenommen, Sie schreiben ein Sitzungsprotokoll. Sie verwenden dafür die + Klasse \Class{protokol}. Das Ganze soll doppelseitig werden. In Ihrer Firma + wird die Schriftart Bookman in 12\Unit{pt} verwendet. Diese Schriftart, die + zu den Standard-PostScript-Schriften gehört, wird in {\LaTeX} mit der + Anweisung \verb|\usepackage{bookman}| aktiviert. Die Schriftart Bookman + läuft sehr weit, das heißt, die einzelnen Zeichen sind im Verhältnis zur + Höhe relativ breit. Deshalb ist Ihnen die Voreinstellung für den + \Var{DIV}-Wert in \Package{typearea} zu gering. Statt einem Wert von 12 sind + Sie nach gründlichem Studium dieses Kapitels einschließlich der + weiterführenden Abschnitte überzeugt, dass ein Wert 15 angebracht ist. Das + Protokoll wird nicht gebunden, sondern gelocht und in einen Ordner + abgeheftet. Eine Bindekorrektur ist deshalb nicht notwendig. Sie schreiben + also: +\begin{lstcode} + \documentclass[a4paper,twoside]{protokol} + \usepackage{bookman} + \usepackage[DIV=15]{typearea} +\end{lstcode} + Als Sie fertig sind, macht man Sie darauf aufmerksam, dass die + Protokolle neuerdings gesammelt und am Quartalsende alle zusammen + als Buch gebunden werden. Die Bindung erfolgt als + einfache Leimbindung, weil den Band ohnehin nie wieder jemand + anschaut und er nur wegen ISO\,9000 angefertigt wird. Für die Bindung + einschließlich Biegefalz werden durchschnittlich 12\Unit{mm} + benötigt. Sie ändern die Optionen von \Package{typearea} also + entsprechend ab und verwenden die Klasse für Protokolle nach + ISO\,9000: +\begin{lstcode} + \documentclass[a4paper,twoside]{iso9000p} + \usepackage{bookman} + \usepackage[DIV=15,BCOR=12mm]{typearea} +\end{lstcode} + Natürlich können Sie auch hier wieder eine \KOMAScript-Klasse + verwenden: +\begin{lstcode} + \documentclass[twoside,DIV=15,BCOR=12mm]{scrartcl} + \usepackage{bookman} +\end{lstcode} + Die Option \Option{a4paper} konnte bei der Klasse \Class{scrartcl} entfallen, + da diese der Voreinstellung bei allen \KOMAScript-Klassen entspricht. +\end{Example} + +Bitte beachten Sie unbedingt, dass die Option \Option{DIV} bei Verwendung +einer der \KOMAScript-Klassen wie im Beispiel als Klassenoption oder per +\Macro{KOMAoptions} beziehungsweise \Macro{KOMAoption} nach dem Laden der +Klasse übergeben werden muss. Weder sollte das Paket \Package{typearea} bei +Verwendung einer \KOMAScript-Klasse explizit per \Macro{usepackage} geladen, +noch die Option dabei als optionales Argument angegeben werden. Wird die +Option per \Macro{KOMAoptions} oder \Macro{KOMAoption} nach dem Laden des +Pakets geändert, so werden Satzspiegel und Rändern automatisch neu berechnet. + +\BeginIndex{Option}{DIV~=classic}% +\BeginIndex{Option}{DIV~=calc}% +\begin{Declaration} + \OptionValue{DIV}{calc}\\ + \OptionValue{DIV}{classic} +\end{Declaration}% +Wie\ChangedAt{v3.00}{\Package{typearea}} bereits in +\autoref{sec:typearea.divConstruction} erwähnt, gibt es nur für das +Papierformat A4 feste Voreinstellungen für den \Var{DIV}-Wert. Diese sind +\autoref{tab:typearea.div} zu entnehmen. Wird ein anderes Papierformat +gewählt, so berechnet \Package{typearea} selbst einen guten \Var{DIV}-Wert. +Natürlich können Sie diese Berechnung auch für A4 wählen. Hierzu verwenden Sie +einfach die Option \OptionValue{DIV}{calc} an Stelle von +\KOption{DIV}\PName{Faktor}. Selbstverständlich können Sie diese Option auch +explizit bei allen anderen Papierformaten angeben. Wenn Sie die automatische +Berechnung wünschen, ist diese Angabe sogar sinnvoll, da die Möglichkeit +besteht, in einer Konfigurationsdatei andere Voreinstellungen zu setzen (siehe +\autoref{sec:typearea-experts.cfg}). Eine explizit angegebene Option +\OptionValue{DIV}{calc} überschreibt diese Vorkonfiguration aber. + +\begin{table} + \centering + \caption{\label{tab:typearea.div}\PName{DIV}-Voreinstellungen f"ur A4} + \begin{tabular}{lccc} + \toprule + Grundschriftgr"o"se: & 10\Unit{pt} & 11\Unit{pt} & 12\Unit{pt} \\ + \Var{DIV}: & 8 & 10 & 12 \\ + \bottomrule + \end{tabular} +\end{table} + +Die in \autoref{sec:typearea.circleConstruction} erwähnte klassische +Konstruktion, der mittelalterliche Buchseitenkanon, ist ebenfalls auswählbar. +Verwenden Sie in diesem Fall an Stelle von \KOption{DIV}\PName{Faktor} oder +\OptionValue{DIV}{calc} einfach \OptionValue{DIV}{classic}. Es wird dann +ein \Var{DIV}-Wert ermittelt, der dem mittelalterlichen Buchseitenkanon +möglichst nahe kommt. + +\begin{Example} + In dem bei der Option \KOption{DIV}\PName{Faktor} aufgeführten + Beispiel mit der Schriftart Bookman gab es ja genau das Problem, + dass man einen zur Schriftart besser passenden \Var{DIV}-Wert haben + wollte. Man könnte also in Abwandlung des ersten Beispiels auch + einfach die Ermittlung dieses Wertes \Package{typearea} überlassen: +\begin{lstcode} + \documentclass[a4paper,twoside]{protokol} + \usepackage{bookman} + \usepackage[DIV=calc]{typearea} +\end{lstcode} +\end{Example} + +Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer der +\KOMAScript-Klassen % +\iftrue wie im Beispiel \fi% +als Klassenoption oder per \Macro{KOMAoptions} beziehungsweise +\Macro{KOMAoption} nach dem Laden der Klasse übergeben werden muss. Weder +sollte das Paket \Package{typearea} bei Verwendung einer \KOMAScript-Klasse +explizit per \Macro{usepackage} geladen, noch die Option dabei als optionales +Argument angegeben werden. Wird die Option per \Macro{KOMAoptions} oder +\Macro{KOMAoption} nach dem Laden des Pakets geändert, so werden Satzspiegel +und Rändern automatisch neu berechnet.% +% +\EndIndex{Option}{DIV~=classic}% +\EndIndex{Option}{DIV~=calc}% + + +\BeginIndex{Option}{DIV~=current}% +\BeginIndex{Option}{DIV~=last}% +\begin{Declaration} + \OptionValue{DIV}{current}\\ + \OptionValue{DIV}{last} +\end{Declaration}% +Wenn\ChangedAt{v3.00}{\Package{typearea}} Sie bis hier die Beispiele aufmerksam +verfolgt haben, wissen Sie eigentlich bereits, wie man die Berechnung eines +\Var{DIV}-Wertes in Abhängigkeit von der gewählten Schrift erreicht, wenn eine +\KOMAScript-Klasse zusammen mit einem Schriftpaket verwendet wird. + +\begin{Explain} + Das Problem dabei ist, dass die \KOMAScript-Klasse das Paket + \Package{typearea} bereits selbst lädt. Die Übergabe der Optionen als + optionale Argumente von \Macro{usepackage} ist also nicht möglich. Es würde + auch nichts nützen, die Option \OptionValue{DIV}{calc} als optionales Argument + von \Macro{documentclass} anzugeben. Diese Option würde direkt beim Laden + des Pakets \Package{typearea} ausgewertet. Damit würden Satzspiegel und + Ränder für die \LaTeX-Standardschrift und nicht für die später geladene + Schrift berechnet. + + Selbstverständlich ist es aber möglich, mit + \Macro{KOMAoptions}\PParameter{DIV=calc} oder + \Macro{KOMAoption}\PParameter{DIV}\PParameter{calc} nach dem Laden des + Schriftpakets Satzspiegel und Ränder neu berechnen zu lassen. Dabei wird + dann über den Wert \PValue{calc} direkt ein \Var{DIV}-Wert für eine gute + Zeilenlänge eingefordert. + + Da es aber häufig praktischer ist, die Einstellung für die Option + \Option{DIV} nicht erst nach dem Laden der Schrift vorzunehmen, sondern an + herausgehobener Stelle, beispielsweise beim Laden der Klasse, bietet + \Package{typearea} zwei weitere symbolische Werte für diese Option. +\end{Explain} + +Mit \KOption{DIV}\PName{current}\ChangedAt{v3.00}{\Package{typearea}} wird eine +Neuberechnung von Satzspiegel und Rändern angestoßen, wobei genau der +\Var{DIV}-Wert verwendet wird, der aktuell eingestellt ist. Dies ist weniger +für die Neuberechnung des Satzspiegels nach Wahl einer anderen Grundschrift +von Interesse. Vielmehr ist das dann nützlich, wenn man etwa nach Änderung des +Durchschusses bei Beibehaltung des Teilers \Var{DIV} die Randbedingung +sicherstellen will, dass \Length{textheight} abzüglich \Length{topskip} ein +Vielfaches von \Length{baselineskip} sein sollte. + +Mit \KOption{DIV}\PName{last}\ChangedAt{v3.00}{\Package{typearea}} wird eine +Neuberechnung von Satzspiegel und Rändern angestoßen, wobei genau dieselbe +Einstellung wie bei der letzten Berechnung verwendet wird. + +\begin{Example} + Gehen wir wieder davon aus, dass für die Schriftart Bookman ein Satzspiegel + mit guter Zeilenlänge berechnet werden soll. Gleichzeitig wird eine + \KOMAScript-Klasse verwendet. Dies ist mit dem symbolischen Wert + \PValue{last} und der Anweisung \Macro{KOMAoptions} sehr einfach möglich: +\begin{lstcode} + \documentclass[BCOR=12mm,DIV=calc,twoside]{scrartcl} + \usepackage{bookman} + \KOMAoptions{DIV=last} +\end{lstcode} + Wird später entschieden, dass ein anderer \Var{DIV}-Wert + verwendet werden soll, so muss nur die Einstellung im optionalen Argument + von \Macro{documentclass} geändert werden. +\end{Example} + +Eine Zusammenfassung aller möglichen symbolischen Werte für die Option +\Option{DIV} finden Sie in \autoref{tab:symbolicDIV}. Es wird an dieser Stelle +darauf hingewiesen, dass auch die Verwendung des Pakets +\Package{fontenc}\IndexPackage{fontenc} dazu führen kann, dass \LaTeX{} eine +andere Schrift lädt. + +\begin{table} + \caption[{Symbolische Werte für Option \Option{DIV} und das + \PName{DIV}-Argument von \Macro{typearea}}]{Mögliche symbolische Werte + für Option \Option{DIV} oder das \PName{DIV}-Argument von + \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}} + \label{tab:symbolicDIV} + \begin{desctabular} + \pventry{areaset}{Satzspiegel neu anordnen.\IndexOption{DIV~=areaset}}% + \pventry{calc}{Satzspiegelberechnung einschließlich Ermittlung eines guten + \Var{DIV}-Wertes erneut durchführen.\IndexOption{DIV~=calc}}% + \pventry{classic}{Satzspiegelberechnung nach dem mittelalterlichen + Buchseitenkanon (Kreisberechnung) erneut + durchführen.\IndexOption{DIV~=classic}}% + \pventry{current}{Satzspiegelberechnung mit dem aktuell gültigen + \Var{DIV}-Wert erneut durchführen.\IndexOption{DIV~=current}}% + \pventry{default}{Satzspiegelberechnung mit dem Standardwert für das + aktuelle Seitenformat und die aktuelle Schriftgröße erneut durchführen. + Falls kein Standardwert existiert, \PValue{calc} + anwenden.\IndexOption{DIV~=default}}% + \pventry{last}{Satzspiegelberechnung mit demselben \PName{DIV}-Argument, + das beim letzten Aufruf angegeben wurde, erneut + durchführen.\IndexOption{DIV~=last}}% + \end{desctabular} +\end{table} + +Häufig wird die Satzspiegelneuberechnung im Zusammenhang mit der +Ver"-änderung des Zeilenabstandes +(\emph{Durchschuss})\Index{Durchschuss} benötigt. Da der +Satzspiegel unbedingt so berechnet werden sollte, dass eine ganze +Anzahl an Zeilen in den Textbereich passt, muss bei Verwendung +eines anderen Durchschusses als des normalen der Satzspiegel für +diesen Zeilenabstand neu berechnet werden. + +\begin{Example} + Angenommen, für eine Diplomarbeit wird die Schriftgröße + 10\Unit{pt} bei eineinhalbzeiligem Satz zwingend gefordert. {\LaTeX} + setzt normalerweise bei 10\Unit{pt} mit 2\Unit{pt} Durchschuss, + also 1,2-zeilig. Deshalb muss als zusätzlicher Dehnfaktor der Wert + 1,25 verwendet werden. Gehen wir außerdem davon aus, dass eine + Bindekorrektur von 12\Unit{mm} benötigt wird. Dann könnte die Lösung + dieses Problems wie folgt aussehen: +\begin{lstcode} + \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt} + \linespread{1.25} + \KOMAoptions{DIV=last} +\end{lstcode}\IndexCmd{linespread} + Da \Package{typearea} selbst immer die Anweisung \Macro{normalsize} bei + Berechnung eines neuen Satzspiegels ausführt, ist es nicht notwendig, nach + \Macro{linespread} den gewählten Durchschuss mit \Macro{selectfont} zu + aktivieren, damit dieser auch tatsächlich für die Neuberechnung verwendet + wird. + + Das gleiche Beispiel sähe unter Verwendung des + \Package{setspace}-Pakets (siehe \cite{package:setspace}) wie folgt + aus: +\begin{lstcode} + \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt} + \usepackage{setspace} + \onehalfspacing + \KOMAoptions{DIV=last} +\end{lstcode} + Wie man sieht, spart man sich mit dem \Package{setspace}-Paket + das Wissen um den korrekten Dehnungswert. + + An dieser Stelle erscheint es mir angebracht, darauf hinzuweisen, + dass der Zeilenabstand für die Titelseite wieder auf den normalen + Wert zurückgesetzt werden sollte. +\iffalse% Umbruchkorrektur + Ein vollständiges Beispiel wäre also: +\fi +\begin{lstcode} + \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt} + \usepackage{setspace} + \onehalfspacing + \KOMAoptions{DIV=last} + \begin{document} + \title{Title} + \author{Markus Kohm} + \begin{spacing}{1} + \maketitle + \tableofcontents + \end{spacing} + \chapter{Ok} + \end{document} +\end{lstcode} + Siehe hierzu auch die Anmerkungen in \autoref{sec:typearea.tips}. +\end{Example} + +Bitte beachten Sie unbedingt, dass diese Optionen zur Verwendung mit +\Macro{KOMAoptions} oder \Macro{KOMAoption} nach dem Laden des Pakets +vorgesehen sind und dann eine automatische Neuberechnung von Satzspiegel und +Rändern auslösen.% +% +\EndIndex{Option}{DIV~=current}% +\EndIndex{Option}{DIV~=last}% +\EndIndex{Option}{DIV~=\PName{Wert}} + + +\BeginIndex{Cmd}{typearea}% +\BeginIndex{Cmd}{recalctypearea}% +\begin{Declaration} + \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}\\ + \Macro{recalctypearea} +\end{Declaration}% +\begin{Explain} +Wird die Option \Option{DIV} oder die Option \Option{BCOR} nach dem Laden des +Pakets \Package{typearea} gesetzt, so wird intern die Anweisung +\Macro{typearea} aufgerufen. Dabei wird beim Setzen der Option \Option{DIV} +für \PName{BCOR} intern der symbolische Wert \PValue{current} verwendet, der +aus Gründen der Vollständigkeit auch in \autoref{tab:symbolicBCOR} zu finden +ist. Beim Setzen der Option \Option{BCOR} wird für \PName{DIV} hingegen der +symbolische Wert \PValue{last} verwendet. Wollen Sie, dass Satzspiegel und +Rändern stattdessen mit dem symbolischen Wert \PValue{current} für \PName{DIV} +neu berechnet werden, so können Sie direkt +\Macro{typearea}\PParameter{current}\PParameter{current} verwenden. +\end{Explain} + +\begin{table} + \caption[{Symbolische \PName{BCOR}-Argumente für + \Macro{typearea}}]{Mögliche symbolische \PName{BCOR}-Argumente für + \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}} + \label{tab:symbolicBCOR} + \begin{desctabular} + \pventry{current}{Satzspiegelberechnung mit dem aktuell gültigen + \Var{BCOR}-Wert erneut durchführen.\IndexOption{BCOR~=current}} + \end{desctabular} +\end{table} + +Sollen sowohl \PName{BCOR} als auch \PName{DIV} geändert werden, so ist die +Verwendung von \Macro{typearea} zu empfehlen, da hierbei die Ränder und der +Satzspiegel nur einmal neu berechnet werden. Bei +\Macro{KOMAoptions}\PParameter{\KOption{DIV}\PName{DIV},% + \KOption{BCOR}\PName{BCOR}} werden Ränder und Satzspiegel hingegen zunächst +bei der Änderung für \PName{DIV} und dann zusätzlich bei der Änderung für +\PName{BCOR} neu berechnet. + +\begin{Explain} + Der Befehl \Macro{typearea} ist derzeit so definiert, dass es auch möglich + ist, mitten in einem Dokument den Satzspiegel zu wechseln. Dabei werden + allerdings Annahmen über den Aufbau des \LaTeX-Kerns gemacht und interne + Definitionen und Größen des \LaTeX-Kerns verändert. Es gibt zwar eine + gewisse Wahrscheinlichkeit, aber keine Garantie, dass dies in zukünftigen + Versionen von \LaTeXe{} noch funktionieren wird. Die Verwendung innerhalb + des Dokuments führt außerdem zu einem Seitenumbruch. +\end{Explain} + +Da \Macro{typearea}\PParameter{current}\PParameter{last} oder +\Macro{KOMAoptions}\PParameter{DIV=last} für die Neuberechnung des +Satzspiegels und der Ränder recht häufig benötigt +werden, gibt es dafür die abkürzende Anweisung +\Macro{recalctypearea}\ChangedAt{v3.00}{\Package{typearea}}. + +\begin{Example} + Wenn Ihnen die Schreibweisen + \begin{lstcode} + \KOMAoptions{DIV=last} + \end{lstcode} + oder + \begin{lstcode} + \typearea[current]{last} + \end{lstcode} + für die Neuberechnung von Satzspiegel und Rändern aufgrund der vielen + Sonderzeichen zu umständlich ist, können Sie einfach + \begin{lstcode} + \recalctypearea + \end{lstcode} + verwenden. +\end{Example}% +\EndIndex{Cmd}{recalctypearea}% +\EndIndex{Cmd}{typearea} + + +\BeginIndex{Option}{twoside~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Option}{twoside~=semi}% +\begin{Declaration} + \KOption{twoside}\PName{Ein-Aus-Wert}\\ + \OptionValue{twoside}{semi} +\end{Declaration}% +Wie bereits in \autoref{sec:typearea.basics} erklärt, hängt die Randverteilung +davon ab, ob ein Dokument einseitig oder zweiseitig gesetzt werden soll. Bei +einseitigem Satz sind der linke und der rechte Rand gleich breit, während bei +doppelseitigem Satz der innere Randanteil einer Seite nur halb so groß ist wie +der jeweilige äußere Rand. Um diese Unterscheidung vornehmen zu können, muss +\Package{typearea} mit der Option \Option{twoside} mitgeteilt werden, ob das +Dokument doppelseitig gesetzt wird. Als \PName{Ein-Aus-Wert} kann dabei einer +der Standardwerte für einfache Schalter aus \autoref{tab:truefalseswitch} +verwendet werden. Wird die Option ohne Wert-Angabe verwendet, so wird der Wert +\PValue{true} angenommen, also doppelseitiger Satz verwendet. Ein Deaktivieren +der Option führt zu einseitigem Satz. + +\begin{table} + \begin{minipage}{\textwidth} + \centering + \caption{Standardwerte für einfache Schalter in \KOMAScript} + \begin{tabular}{ll} + \toprule + Wert & Bedeutung \\ + \midrule + \PValue{true}\footnote{Dieser Wert wird auch + eingesetzt, wenn die entsprechende Option ohne Wertangabe verwendet + wird.} & aktiviert die Option\\ + \PValue{on} & aktiviert die Option \\ + \PValue{yes} & aktiviert die Option \\ + \PValue{false}& deaktiviert die Option \\ + \PValue{off} & deaktiviert die Option \\ + \PValue{no} & deaktiviert die Option \\ + \bottomrule + \end{tabular} + \label{tab:truefalseswitch} + \end{minipage} +\end{table} + +Außer den Werten aus \autoref{tab:truefalseswitch} kann jedoch auch noch der +Wert \PValue{semi}\ChangedAt{v3.00}{\Package{typearea}} angegeben +werden. Dieser Wert \PValue{semi} führt zu doppelseitigem Satz mit einseitigen +Rändern und einseitigen, also nicht alternierenden Marginalien. + +Die Option kann wahlweise als Klassenoption bei \Macro{documentclass}, als +Paketoption bei \Macro{usepackage} oder auch nach dem Laden von +\Package{typearea} per \Macro{KOMAoptions} oder \Macro{KOMAoption} gesetzt +werden. Eine Verwendung dieser Option nach dem Laden von \Package{typearea} +führt dabei automatisch zur Neuberechnung des Satzspiegels mittels +\Macro{recalctypearea} (siehe +\autopageref{desc:typearea.cmd.recalctypearea}). War vor der Option +doppelseitiger Satz aktiv, wird noch vor der Neuberechnung auf die nächste +ungerade Seite umbrochen.% +% +\EndIndex{Option}{twoside~=semi}% +\EndIndex{Option}{twoside~=\PName{Ein-Aus-Wert}} + + +\BeginIndex{Option}{twocolumn~=\PName{Ein-Aus-Wert}}% +\begin{Declaration} + \KOption{twocolumn}\PName{Ein-Aus-Wert} +\end{Declaration} +Für die Berechnung eines guten Satzspiegels mit Hilfe von +\OptionValue{DIV}{calc} ist es erforderlich zu wissen, ob das Dokument ein- +oder zweispaltig gesetzt wird. Da die Betrachtungen zur Zeilenlänge aus +\autoref{sec:typearea.basics} dann für jede einzelne Spalte gelten, darf der +Satzspiegel in doppelspaltigen Dokumenten bis zu doppelt so breit sein wie in +einspaltigen Dokumenten. + +Um diese Unterscheidung vornehmen zu können, muss +\Package{typearea} mit der Option \Option{twocolumn} mitgeteilt werden, ob das +Dokument doppelspaltig gesetzt wird. Als \PName{Ein-Aus-Wert} kann dabei einer +der Standardwerte für einfache Schalter aus \autoref{tab:truefalseswitch} +verwendet werden. Wird die Option ohne Wert-Angabe verwendet, so wird der Wert +\PValue{true} angenommen, also doppelspaltiger Satz verwendet. Ein Deaktivieren +der Option führt zu einspaltigem Satz. + +Die Option kann wahlweise als Klassenoption bei \Macro{documentclass}, als +Paketoption bei \Macro{usepackage} oder auch nach dem Laden von +\Package{typearea} per \Macro{KOMAoptions} oder \Macro{KOMAoption} gesetzt +werden. Eine Verwendung dieser Option nach dem Laden von \Package{typearea} +führt dabei automatischen zur Neuberechnung des Satzspiegels mittels +\Macro{recalctypearea} (siehe +\autopageref{desc:typearea.cmd.recalctypearea}).% +% +\EndIndex{Option}{twocolumn~=\PName{Ein-Aus-Wert}} + + +\BeginIndex{Option}{headinclude~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Option}{footinclude~=\PName{Ein-Aus-Wert}}% +\begin{Declaration} + \KOption{headinclude}\PName{Ein-Aus-Wert}\\ + \KOption{footinclude}\PName{Ein-Aus-Wert} +\end{Declaration}% +\begin{Explain}% + Bisher wurde zwar erklärt, wie die + Satzspiegelkonstruktion\Index{Satzspiegel} funktioniert und in welchem + Verhältnis die Ränder\Index{Rand} zueinander und der Textkörper zur Seite + steht, aber eine entscheidende Frage blieb ausgeklammert: Was ist denn + eigentlich unter dem Rand zu verstehen? + + Auf den ersten Blick wirkt diese Frage trivial: Der Rand ist der Teil der + Seite, der oben, unten, links und rechts frei bleibt. Doch das ist nur die + halbe Wahrheit. Der äußere Rand ist keineswegs immer leer. Teilweise findet + man darin noch gesetzte Randnotizen (siehe den Befehl \Macro{marginpar} + beispielsweise in \cite{l2kurz} bzw. \autoref{sec:maincls.marginNotes}). + + Beim oberen und unteren Rand stellt sich die Frage, wie Kopf- und + Fußzeile\Index{Seitenkopf}\Index{Seitenfuß} zu behandeln sind. Gehören + diese beiden zum Textkörper oder zum jeweiligen Rand? Die Frage ist nicht + einfach zu beantworten. Eindeutig ist, dass ein leerer Fuß und ein leerer + Kopf zum Rand zu rechnen sind. Schließlich können sie nicht vom restlichen + Rand unterschieden werden. Ein Fuß, der nur die + Paginierung\Index[indexmain]{Paginierung}\footnote{Unter der Paginierung + versteht man die Angabe der Seitenzahl.} enthält, wirkt optisch ebenfalls + eher wie Rand und sollte deshalb zu diesem gerechnet werden. Für die + optische Wirkung ist dabei unwesentlich, ob der Fuß beim Lesen oder + Überfliegen leicht als Fuß erkannt werden kann oder nicht. Entscheidend ist, + wie eine wohlgefüllte Seite bei \emph{unscharfer Betrachtung} wirkt. Dazu + bedient man sich beispielsweise seiner altersweitsichtigen Großeltern, denen + man die Brille stibitzt und dann die Seite etwa einen halben Meter von der + Nasenspitze entfernt hält. In Ermangelung erreichbarer Großeltern kann man + sich auch damit behelfen, dass man die eigenen Augen auf Fernsicht stellt, + die Seite aber nur mit ausgestreckten Armen hält. Brillenträger sind hier + deutlich im Vorteil. Hat man eine Fußzeile, die neben der Paginierung + weitere, weitschweifige Angaben enthält, beispielsweise einen + Copyright-Hinweis, so wirkt die Fußzeile eher wie ein etwas abgesetzter Teil + des Textkörpers. Bei der Berechnung des Satzspiegels sollte das + berücksichtigt werden. + + Bei der Kopfzeile sieht es noch schwieriger aus. In der Kopfzeile + wird häufig der + Kolumnentitel\Index[indexmain]{Kolumnentitel}\footnote{Unter dem + Kolumnentitel versteht man in der Regel die Wiederholung einer + Überschrift mit Titelcharakter. Er steht häufig im Seitenkopf, + seltener im Seitenfuß.} gesetzt. Arbeitet man mit einem + lebenden Kolumnentitel, also der Wiederholung der ersten bzw. + zweiten Gliederungsebene in der Kopfzeile, und hat gleichzeitig sehr + lange Überschriften, so erhält man automatisch sehr lange + Kopfzeilen. In diesem Fall wirkt der Kopf wiederum wie ein + abgesetzter Teil des Textkörpers und weniger wie leerer Rand. + Verstärkt wird dieser Effekt noch, wenn neben dem Kolumnentitel auch + die Paginierung im Kopf erfolgt. Dadurch erhält man einen links und + rechts abgeschlossenen Bereich, der kaum noch als leerer Rand wirkt. + Schwieriger ist es bei Paginierung im Fuß und Überschriften, deren + Länge sehr stark schwankt. Hier kann der Kopf der einen Seite wie + Textkörper wirken, der Kopf der anderen Seite jedoch eher wie Rand. + Keinesfalls sollte man die Seiten jedoch unterschiedlich behandeln. + Das würde zu vertikal springenden Köpfen führen und ist nicht einmal + für ein Daumenkino geeignet. Ich rate in diesem Fall dazu, den Kopf + zum Textkörper zu rechnen. + + Ganz einfach fällt die Entscheidung, wenn Kopf oder Fuß durch + eine Linie vom eigentlichen Textkörper abgetrennt sind. Dadurch + erhält man eine geschlossene Wirkung und der Kopf bzw. Fuß sollte + unbedingt zum Textkörper gerechnet werden. Wie gesagt: Die durch die + Trennlinie verbesserte Erkennung des Kopfes oder Fußes ist hier + unerheblich. Entscheidend ist die unscharfe Betrachtung.\par +\end{Explain} + +Das \Package{typearea}-Paket trifft die Entscheidung, ob ein Kopf oder Fuß zum +Textkörper gehört oder davon getrennt zum Rand gerechnet werden muss, nicht +selbst. Stattdessen kann mit den Optionen \Option{headinclude} und +\Option{footinclude} eingestellt werden, ob der Kopf und der Fuß zum +Textkörper gerechnet werden sollen. Die Optionen verstehen dabei als +\PName{Ein-Aus-Wert}\ChangedAt{v3.00}{\Package{typearea}} die Standardwerte +für einfache Schalter, die in \autoref{tab:truefalseswitch} angegeben +sind. Man kann die Optionen auch ohne Wertzuweisung verwenden. In diesem Fall +wird \PValue{true} als \PName{Ein-Aus-Wert} verwendet, also der Kopf oder Fuß +zum Satzspiegel gerechnet. + +Wenn Sie unsicher sind, was die richtige Einstellung ist, lesen Sie bitte +obige Erläuterungen. Voreingestellt sind normalerweise +\OptionValue{headinclude}{false} und +\OptionValue{footinclude}{false}. Dies kann sich jedoch bei den +\KOMAScript-Klassen je nach Klassenoption oder bei Verwendung anderer +\KOMAScript-Pakete generell ändern (siehe \autoref{sec:maincls.options} und +\autoref{cha:scrpage}). + +Bitte beachten Sie unbedingt, dass diese Optionen bei Verwendung einer der +\KOMAScript-Klassen als Klassenoptionen oder per \Macro{KOMAoptions} +beziehungsweise \Macro{KOMAoption} nach dem Laden der Klasse übergeben werden +müssen. Eine Änderung dieser Optionen nach dem Laden von \Package{typearea} +führt dabei nicht zu einer automatischen Neuberechnung des +Satzspiegels. Vielmehr wirkt sich die Änderung erst bei der nächsten +Neuberechnung des Satzspiegels aus. Zur Neuberechnung des Satzspiegels siehe +Option \Option{DIV} mit den Werten \PValue{last} oder \PValue{current} (siehe +\autopageref{desc:typearea.option.DIV.last}) oder die Anweisung +\Macro{recalctypearea} (siehe +\autopageref{desc:typearea.cmd.recalctypearea}).% +% +\EndIndex{Option}{headinclude~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{footinclude~=\PName{Ein-Aus-Wert}}% + + +\BeginIndex{Option}{mpinclude~=\PName{Ein-Aus-Wert}}% +\begin{Declaration} + \KOption{mpinclude}\PName{Ein-Aus-Wert} +\end{Declaration} +Neben\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} Dokumenten, bei denen der Kopf und der Fuß der Seite eher +zum Textbereich als zum Rand gehört, gibt es auch Dokumente, bei denen dies +für Randnotizen zutrifft. Mit der Option \Option{mpinclude} kann genau dies +erreicht werden. Die Optionen verstehen dabei als +\PName{Ein-Aus-Wert}\ChangedAt{v3.00}{\Package{typearea}} die Standardwerte +für einfache Schalter, die in \autoref{tab:truefalseswitch} angegeben +sind. Man kann die Optionen auch ohne Wertzuweisung verwenden. In diesem Fall +wird \PValue{true} als \PName{Ein-Aus-Wert} verwendet. + +Der Effekt von \OptionValue{mpinclude}{true} ist, dass eine Breiteneinheit vom +Textbereich weggenommen und als Bereich für die Randnotizen verwendet +wird. Mit \OptionValue{mpinclude}{false}, was der Voreinstellung entspricht, +wird hingegen ein Teil des Randes für Randnotizen verwendet. Dies ist, je +nachdem ob einseitig oder doppelseitig gearbeitet wird, ebenfalls eine +Breiteneinheit oder auch eineinhalb Breiteneinheiten. In der Regel ist die +Verwendung von \OptionValue{mpinclude}{true} nicht anzuraten und +sollte Experten vorbehalten bleiben. + +\begin{Explain} + In den meisten Fällen, in denen die Option \Option{mpinclude} sinnvoll ist, + werden außerdem breitere Randnotizen benötigt. In sehr vielen Fällen sollte + dabei aber nicht die gesamte Breite, sondern nur ein Teil davon dem + Textbereich zugeordnet werden. Dies ist beispielsweise der Fall, wenn der + Rand für Zitate verwendet wird. Solche Zitate werden üblicherweise im + Flattersatz gesetzt, wobei die bündige Kante an den Textbereich + anschließt. Da sich kein geschlossener optischer Eindruck ergibt, dürfen die + flatternden Enden also durchaus teilweise in den Rand ragen. Man kann das + einfach erreichen, indem man zum einen die Option \Option{mpinclude} + verwendet. Zum anderen vergrößert man die Länge \Length{marginparwidth} nach + der Berechnung des Satzspiegels noch mit Hilfe der + \Macro{addtolength}-Anweisung. Um welchen Wert man vergrößern sollte, hängt + vom Einzelfall ab und erfordert einiges Fingerspitzengefühl. Auch deshalb + ist die Option \Option{mpinclude} eher etwas für Experten. Natürlich kann + man auch festlegen, dass die Randnotizen beispielsweise zu einem Drittel in + den Rand hineinragen sollen, und das wie folgt erreichen: +% Umbruchkorrektur: listings macht das manchmal nicht optimal +\begin{lstcode}[belowskip=\dp\strutbox] + \setlength{\marginparwidth}{1.5\marginparwidth} +\end{lstcode} + + Da es derzeit keine Option gibt, um mehr Platz für die Randnotizen innerhalb + des Textbereichs vorzusehen, gibt es nur eine Möglichkeit, dies zu + erreichen. Man verzichtet auf die Option \Option{mpinclude} oder setzt + \Option{mpinclude} auf \PValue{false}, verringert nach der + Satzspiegelberechnung die Breite des Textbereichs \Macro{textwidth} und + setzt die Breite des Bereichs der Randnotizen auf den Wert, um den man die + Breite des Textbereichs verringert hat. Leider lässt sich dieses Vorgehen + nicht mit der automatischen Berechnung des \PName{DIV}-Wertes verbinden. + Demgegenüber wird \Option{mpinclude} bei + \OptionValue{DIV}{calc}\IndexOption{DIV=calc} (siehe + \autopageref{desc:typearea.option.DIV.calc}) berücksichtigt. +\end{Explain} + +Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer der +\KOMAScript-Klassen als Klassenoption oder per \Macro{KOMAoptions} +beziehungsweise \Macro{KOMAoption} nach dem Laden der Klasse übergeben werden +muss. Eine Änderung dieser Option nach dem Laden von \Package{typearea} führt +nicht zu einer automatischen Neuberechnung des Satzspiegels. Vielmehr wirkt +sich die Änderung erst bei der nächsten Neuberechnung des Satzspiegels +aus. Zur Neuberechnung des Satzspiegels siehe Option \Option{DIV} mit den +Werten \PValue{last} oder \PValue{current} (siehe +\autopageref{desc:typearea.option.DIV.last}) oder die Anweisung +\Macro{recalctypearea} (siehe +\autopageref{desc:typearea.cmd.recalctypearea}).% +% +\EndIndex{Option}{mpinclude~=\PName{Ein-Aus-Wert}}% + + +\BeginIndex{Option}{headlines~=\PName{Anzahl}}% +\BeginIndex{Option}{headheight~=\PName{Höhe}}% +\begin{Declaration} + \KOption{headlines}\PName{Zeilenanzahl}\\ + \KOption{headheight}\PName{Höhe} +\end{Declaration}% +Es ist nun also bekannt, wie man Satzspiegel mit dem \Package{typearea}-Paket +berechnet und wie man dabei angibt, ob der Kopf oder Fuß zum Textkörper oder +zum Rand gehört. Insbesondere für den Kopf fehlt aber noch die Angabe, wie +hoch er denn eigentlich sein soll. Hierzu dienen die Optionen +\Option{headlines} und +\Option{headheight}\ChangedAt{v3.00}{\Package{typearea}}. + +Die Option \Option{headlines} setzt man dabei auf die Anzahl der Kopfzeilen. +Normalerweise arbeitet das \Package{typearea}-Paket mit 1,25 +Kopfzeilen. Dieser Wert stellt einen Kompromiss dar. Zum einen ist er groß +genug, um auch für eine unterstrichene Kopfzeile (siehe +\autoref{sec:maincls.options}) Platz zu bieten, zum anderen ist er klein +genug, um das Randgewicht nicht zu stark zu verändern, wenn mit einer +einfachen, nicht unterstrichenen Kopfzeile gearbeitet wird. Damit ist der +voreingestellte Wert in den meisten Standardfällen ein guter Wert. In einigen +Fällen will oder muss man aber die Kopfhöhe genauer den tatsächlichen +Erfordernissen anpassen. + +\begin{Example} + Angenommen, es soll ein Text mit einem zweizeiligen Kopf erstellt + werden. Normalerweise würde dies dazu führen, dass auf jeder Seite + eine Warnung »\texttt{overfull} \Macro{vbox}« von {\LaTeX} + ausgegeben würde. Um dies zu verhindern, wird das + \Package{typearea}-Paket angewiesen, einen entsprechenden Satzspiegel + zu berechnen: +\begin{lstcode} + \documentclass[a4paper]{article} + \usepackage[headlines=2.1]{typearea} +\end{lstcode} + Es ist auch wieder möglich und bei Verwendung einer \KOMAScript-Klasse + empfehlenswert, diese Option direkt an die Klasse zu übergeben: +\begin{lstcode} + \documentclass[headlines=2.1]{scrartcl} +\end{lstcode} + Befehle, mit denen dann der Inhalt der zweizeiligen Kopfzeile + definiert werden kann, sind in \autoref{cha:scrpage} zu finden. +\end{Example} + +In einigen Fällen ist es nützlich, wenn man die Kopfhöhe nicht in Zeilen, +sondern direkt als Längenwert angeben kann. Dies ist mit Hilfe der alternativ +verwendbaren Option \Option{headheight} möglich. Als \PName{Höhe} sind alle +Längen und Größen verwendbar, die \LaTeX{} kennt. Es ist jedoch zu beachten, +dass bei Verwendung einer LaTeX-Länge wie \Length{baselineskip} nicht deren +Größe zum Zeitpunkt des Setzens der Option, sondern zum Zeitpunkt der +Berechnung des Satzspiegels und der Rändern entscheidend ist. + +Bitte beachten Sie unbedingt, dass diese Optionen bei Verwendung einer der +\KOMAScript-Klassen als Klassenoptionen oder per \Macro{KOMAoptions} +beziehungsweise \Macro{KOMAoption} nach dem Laden der Klasse übergeben werden +müssen. Eine Änderung dieser Optionen nach dem Laden von \Package{typearea} +führt nicht zu einer automatischen Neuberechnung des Satzspiegels. Vielmehr +wirkt sich die Änderung erst bei der nächsten Neuberechnung des Satzspiegels +aus. Zur Neuberechnung des Satzspiegels siehe Option \Option{DIV} mit den +Werten \PValue{last} oder \PValue{current} (siehe +\autopageref{desc:typearea.option.DIV.last}) oder die Anweisung +\Macro{recalctypearea} (siehe +\autopageref{desc:typearea.cmd.recalctypearea}).% +% +\EndIndex{Option}{headheight~=\PName{Höhe}}% +\EndIndex{Option}{headlines~=\PName{Anzahl}} + + +\BeginIndex{Cmd}{areaset}% +\begin{Declaration} + \Macro{areaset}\OParameter{BCOR}\Parameter{Breite}\Parameter{Höhe} +\end{Declaration}% +Bis hier wurde nun eine Menge darüber erzählt, wie man einen guten +Satzspiegel\Index{Satzspiegel} für Standardanwendungen erstellt und wie das +\Package{typearea}-Paket dem Anwender diese Arbeit erleichtert, ihm aber +gleichzeitig Möglichkeiten der Einflussnahme bietet. Es gibt jedoch auch +Fälle, in denen der Textkörper eine bestimmte Größe exakt einhalten soll, ohne +dass dabei auf gute Satzspiegelkonstruktion oder auf weitere Nebenbedingungen +zu achten ist. Trotzdem sollen die Ränder so gut wie möglich verteilt und +dabei gegebenenfalls auch eine Bindekorrektur berücksichtigt werden. Das +\Package{typearea}-Paket bietet hierfür den Befehl \Macro{areaset}, dem man +neben der optionalen Bindekorrektur als Parameter die Breite und Höhe des +Textbereichs übergibt. Die Ränder und deren Verteilung werden dann automatisch +berechnet, wobei gegebenenfalls auch die Paketoptionen \Option{headinclude}, +\Option{headexclude}, sowie \Option{footinclude} und \Option{footexclude} +berücksichtigt werden. Die Optionen \Option{headlines}\IndexOption{headlines} +und \Option{headheight}\IndexOption{headheight} bleiben in diesem Fall jedoch +unberücksichtigt! + +\begin{Example} + Angenommen, ein Text auf A4-Papier soll genau die Breite von 60 + Zeichen in der Typewriter-Schrift haben und exakt 30 Zeilen je Seite + besitzen. Dann könnte mit folgender Präambel gearbeitet werden: +\begin{lstcode} + \documentclass[a4paper,11pt]{article} + \usepackage{typearea} + \newlength{\CharsLX}% Breite von 60 Zeichen + \newlength{\LinesXXX}% Hoehe von 30 Zeilen + \settowidth{\CharsLX}{\texttt{1234567890}} + \setlength{\CharsLX}{6\CharsLX} + \setlength{\LinesXXX}{\topskip} + \addtolength{\LinesXXX}{29\baselineskip} + \areaset{\CharsLX}{\LinesXXX} +\end{lstcode} + Der Faktor von 29 statt 30 ist damit begründet, dass die Grundlinie der + obersten Zeile bereits am obersten Rand des um \Macro{topskip} verringerten + Satzspiegels liegt, solange die Höhe der obersten Zeile kleiner als + \Macro{topskip} ist. Die oberste Zeile benötigt damit keine Höhe. Die + Unterlängen der untersten Zeile ragen dafür unter den Satzspiegel. + +\item Soll stattdessen ein Gedichtband gesetzt werden, bei dem es nur + darauf ankommt, dass der Textbereich genau quadratisch mit einer + Seitenlänge von 15\Unit{cm} ist, wobei ein Binderand von + 1\Unit{cm} zu berücksichtigen ist, so kann dies wie folgt + erreicht werden: +\begin{lstcode} + \documentclass{gedichte} + \usepackage{typearea} + \areaset[1cm]{15cm}{15cm} +\end{lstcode} +\end{Example} +\EndIndex{Cmd}{areaset} + + +\BeginIndex{Option}{DIV~=areaset}% +\begin{Declaration} + \OptionValue{DIV}{areaset} +\end{Declaration}% +In\ChangedAt{v3.00}{\Package{typearea}} seltenen Fällen ist es nützlich, wenn +man den aktuell eingestellten Satzspiegel neu ausrichten lassen kann. Dies ist +mit der Option \OptionValue{DIV}{areaset} möglich, wobei +\Macro{KOMAoptions}\PParameter{DIV=areaset} der Anweisung +\begin{lstcode}[belowskip=\dp\strutbox] + \areaset[current]{\textwidth}{\textheight} +\end{lstcode} +entspricht. Dasselbe Ergebnis erhält man auch, wenn \OptionValue{DIV}{last} +verwendet wird und der Satzspiegel zuletzt per \Macro{areaset} eingestellt +wurde.% +% +\EndIndex{Option}{DIV~=areaset}% + +\iffalse% Umbruchkorrekturtext: Alternativen +Wenn Sie konkrete Vorgaben bezüglich der Ränder zu erfüllen haben, ist +\Package{typearea} nicht geeignet. In diesem Fall ist die Verwendung des +Paketes \Package{geometry}\IndexPackage{geometry} (siehe +\cite{package:geometry}) empfehlenswert. +% +\else +% +Das Paket \Package{typearea} ist nicht dafür gedacht, bestimmte Randbreiten +einzustellen. Dafür ist das Paket \Package{geometry}\IndexPackage{geometry} +(siehe \cite{package:geometry}) empfehlenswert. +% +\fi + + +\section{Einstellung des Papierformats}% +\label{sec:typearea.paperTypes}% +\BeginIndex{}{Papier>Format}% + +Das Papierformat ist ein entscheidendes Grundmerkmal eines Dokuments. Wie +bereits bei der Vorstellung der unterstützten Satzspiegelkonstruktionen (siehe +\autoref{sec:typearea.basics} bis \autoref{sec:typearea.circleConstruction} ab +\autopageref{sec:typearea.basics}) +aufgezeigt, steht und fällt die Auf"|teilung der Seite und damit das gesamte +Dokumentlayout mit der Wahl des Papierformats. Während die +\LaTeX-Standardklassen auf einige wenige Formate festgelegt sind, unterstützt +\KOMAScript{} mit dem Paket \Package{typearea} selbst ausgefallene +Seitengrößen. + + +\BeginIndex{Option}{paper~=\PName{Format}}% +\BeginIndex{Option}{paper~=\PName{Ausrichtung}}% +\begin{Declaration} + \KOption{paper}\PName{Format} +\end{Declaration}% +Die Option \Option{paper}\ChangedAt{v3.00}{\Package{typearea}} ist das +zentrale Element der Formatauswahl bei \KOMAScript. Als \PName{Format} wird +dabei zunächst das amerikanische \Option{letter}, \Option{legal} und +\Option{executive} unterstützt. Darüber hinaus sind die ISO-Formate der Reihen +A, B, C und D möglich, also beispielsweise \PValue{A4} oder -- klein +geschrieben -- \PValue{a4}. Querformate werden dadurch unterstützt, dass man +die Option ein weiteres Mal mit dem Wert +\PValue{landscape}\Index{Papier>Ausrichtung} angibt. Zusätzlich kann das +\PName{Format} auch in der Form \PName{Höhe}\texttt{:}\PName{Breite} angegeben +werden. + +\begin{Example} + Angenommen, es soll eine Karteikarte im Format ISO-A8 quer bedruckt + werden. Dabei sollen die Ränder sehr klein gewählt werden. Außerdem + wird auf eine Kopf- und eine Fußzeile verzichtet. +\begin{lstcode} + \documentclass{article} + \usepackage[headexclude,footexclude,% + paper=A8,paper=landscape]{typearea} + \areaset{7cm}{5cm} + \pagestyle{empty} + \begin{document} + \section*{Unterstützte Papiergrößen} + letter, legal, executive, a0, a1 \dots\ % + b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots + \end{document} +\end{lstcode} + Haben die Karteikarten das Sonderformat (H:B) 5\Unit{cm}\,:\,3\Unit{cm}, so + ist dies mit +\begin{lstcode} + \documentclass{article} + \usepackage[headexclude,footexclude,% + paper=A8,paper=5cm:3cm]{typearea} + \areaset{4cm}{2.4cm} + \pagestyle{empty} + \begin{document} + \section*{Unterstützte Papiergrößen} + letter, legal, executive, a0, a1 \dots\ % + b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots + \end{document} +\end{lstcode} + möglich. +\end{Example} + +In der Voreinstellung wird bei \KOMAScript{} mit A4-Papier in der Ausrichtung +portrait gearbeitet. Dies ist ein Unterschied zu den Standardklassen, bei denen +in der Voreinstellung das amerikanische Format letter verwendet wird. + +Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer der +\KOMAScript-Klassen als Klassenoption oder per \Macro{KOMAoptions} +beziehungsweise \Macro{KOMAoption} nach dem Laden der Klasse übergeben werden +muss. Eine Änderung des Papierformats oder der Papierausrichtung mit Hilfe +von \Macro{KOMAoptions} oder \Macro{KOMAoption} nach dem Laden von +\Package{typearea} führt nicht zu einer automatischen Neuberechnung des +Satzspiegels. Vielmehr wirkt sich die Änderung erst bei der nächsten +Neuberechnung des Satzspiegels aus. Zur Neuberechnung des Satzspiegels siehe +Option \Option{DIV} mit den Werten \PValue{last} oder \PValue{current} (siehe +\autopageref{desc:typearea.option.DIV.last}) oder die Anweisung +\Macro{recalctypearea} (siehe +\autopageref{desc:typearea.cmd.recalctypearea}).% +% +\EndIndex{Option}{paper~=\PName{Ausrichtung}}% +\EndIndex{Option}{paper~=\PName{Format}} + + +\BeginIndex{Option}{pagesize}% +\BeginIndex{Option}{pagesize~=\PName{Ausgabetreiber}}% +\begin{Declaration} + \KOption{pagesize}\PName{Ausgabetreiber} +\end{Declaration}% +\begin{Explain}% + Die oben genannten Mechanismen zur Auswahl des Papierformats haben nur + insofern einen Einfluss auf die Ausgabe, als interne {\LaTeX}-Maße gesetzt + werden. Das \Package{typearea} verwendet diese dann bei der Auf"|teilung der + Seite in Ränder und Textbereich. Die Spezifikation des + DVI-Formats\Index{DVI} sieht aber an keiner Stelle Angaben zum Papierformat + vor. Wird direkt aus dem DVI-Format in eine Low-Level-Druckersprache wie + PCL% + \iffalse% Umbruchkorrektur + \footnote{PCL ist die Druckersprache, die HP für seine Tinten- und + Laserdrucker verwendet.}% + \fi \ oder ESC/P2% + \iffalse% Umbruchkorrektur + \footnote{ESC/P2 ist die Druckersprache, die EPSON für seine Nadel-, Tinten- + und Laserdrucker benutzt.}% + \fi \ ausgegeben, spielt dies normalerweise keine Rolle, da auch bei diesen + Ausgaben der 0-Bezugspunkt wie bei DVI links oben liegt. Wird aber in + Sprachen wie PostScript\Index{PostScript} oder PDF\Index{PDF} übersetzt, bei + denen der 0-Bezugspunkt an anderer Stelle liegt und außerdem das + Papierformat in der Ausgabedatei angegeben werden sollte, so fehlt diese + Information. Als Lösung des Problems verwendet der entsprechende Treiber + eine voreingestellte Papiergröße, die der Anwender entweder per Option oder + durch entsprechende Angabe in der {\TeX}-Quelldatei verändern kann. Bei + Verwendung des DVI-Treibers \File{dvips} kann diese Angabe in Form einer + \Macro{special}-Anweisung erfolgen. Bei {pdf\TeX} oder {V\TeX} werden + stattdessen zwei Längen entsprechend gesetzt. +\end{Explain} +Mit der Option \OptionValue{pagesize}{dvips}\IndexOption{pagesize~=dvips} wird +erreicht, dass die Papiergröße als \Macro{special} in die DVI-Datei +geschrieben wird. Dieses \Macro{special} wird beispielsweise von \File{dvips} +ausgewertet. Demgegenüber schreibt die Option \OptionValue{pagesize}{pdftex} +die Papiergröße am Anfang des Dokuments in die {pdf\TeX}-Seitenregister, +\Length{pdfpagewidth}\IndexLength{pdfpagewidth} und +\Length{pdfpageheight}\IndexLength{pdfpageheight}, so dass später beim +Betrachten der erzeugten PDF-Datei das korrekte Format angegeben wird. Die +Option \OptionValue{pagesize}{auto} verhält sich flexibler und verwendet je +nachdem, ob eine PDF- oder eine DVI-Datei ausgegeben wird, den Mechanismus der +Option \OptionValue{pagesize}{dvips} oder der Option +\OptionValue{pagesize}{pdftex}. Mit Option \OptionValue{pagesize}{automedia} +werden ggf. auch \Length{mediawidth} und \Length{mediaheight} passend +gesetzt. Damit wird auch {V\TeX} berücksichtigt. Bei Verwendung der Option +\Option{pagesize} ohne Angabe eines \PName{Ausgabetreiber} wird \PValue{auto} +eingesetzt. +\begin{Example} + Angenommen, es soll ein Dokument sowohl als DVI-Datei verwendet + werden, als auch eine Online-Version im PDF-Format erstellt + werden. Dann könnte die Präambel beispielsweise so beginnen: +\begin{lstcode} + \documentclass{article} + \usepackage[paper=A4,pagesize]{typearea} +\end{lstcode} + Wird nun für die Bearbeitung {pdf\TeX} verwendet \emph{und} die + PDF-Ausgabe aktiviert, so werden die beiden Größen + \Macro{pdfpagewidth} und \Macro{pdfpageheight} entsprechend gesetzt. + Wird jedoch eine DVI-Datei erzeugt -- egal ob mit {\LaTeX} oder + {pdf\LaTeX} --, so wird ein \Macro{special} an den Anfang dieser + Datei geschrieben. +\end{Example}% +Es wird empfohlen, die Option immer anzugeben. In der Regel ist dabei die +Methode ohne \PName{Ausgabetreiber} oder mit \PValue{auto} oder +\PValue{automedia} günstig.% +\EndIndex{Option}{pagesize}% +\EndIndex{Option}{pagesize~=\PName{Ausgabetreiber}}% +% +\EndIndex{}{Papier>Format} + + +\section{Tipps} +\label{sec:typearea.tips} + +Insbesondere für die Erstellung von schriftlichen Arbeiten während des +Studiums findet man häufig Vorschriften, die einer typografischen Begutachtung +nicht nur in keiner Weise standhalten, sondern massiv gegen alle Regeln der +Typografie verstoßen. Ursache für solche Regeln ist oft typografische +Inkompetenz derjenigen, die sie herausgeben. Manchmal ist die Ursache auch im +Ausgangspunkt begründet, nämlich der Schreibmaschine. Mit einer +Schreibmaschine oder einer Textverarbeitung von 1980 ist es ohne erheblichen +Aufwand kaum möglich, typografisch perfekte Ergebnisse zu erzielen. Also +wurden einst Vorschriften erlassen, die leicht erfüllbar schienen und dem +Korrektor trotzdem entgegenkommen. Dazu zählen dann Randeinstellungen, die +für einseitigen Druck mit einer Schreibmaschine zu brauchbaren Zeilenlängen +führen. Um nicht extrem kurze Zeilen zu erhalten, die durch Flattersatz zudem +verschlimmert werden, werden die Ränder schmal gehalten und für Korrekturen +stattdessen ein großer Durchschuss in Form von eineinhalbzeiligem Satz +vorgeschrieben. Bevor moderne Textverarbeitungssysteme verfügbar wurden, wäre +-- außer mit {\TeX} -- einzeiliger Satz die einzige Alternative gewesen. Dabei +wäre dann selbst das Anbringen von Korrekturzeichen schwierig geworden. Als +die Verwendung von Computern für die Erstellung schriftlicher Arbeiten +üblicher wurde, hat sich manches Mal auch der Spieltrieb des einen oder +anderen Studenten gezeigt, der durch Verwendung einer Schmuckschrift seine +Arbeit aufpeppen und so eine bessere Note mit weniger Einsatz herausschinden +wollte. Nicht bedacht hat er dabei, dass solche Schriften schlechter zu lesen +und deshalb für den Zweck ungeeignet sind. Damit hielten zwei Brotschriften +Einzug in die Vorschriften, die weder zusammenpassen noch im Falle von Times +wirklich gut geeignet sind. Times ist eine relativ enge Schrift, die Anfang +des 20.~Jahrhunderts speziell für schmale Spalten im englischen Zeitungssatz +entworfen wurde. In modernen Schnitten ist dies etwas entschärft. Dennoch +passt die häufig vorgeschriebene Times meist nicht zu den gleichzeitig +gegebenen Randvorgaben. + +{\LaTeX} setzt bereits von sich aus mit ausreichendem Durchschuss. +Gleichzeitig sind die Ränder bei sinnvollen Zeilenlängen groß genug, um Platz +für Korrekturen zu bieten. Dabei wirkt die Seite trotz einer Fülle von Text +großzügig angelegt. + +Oft sind die typografisch mehr als fragwürdigen Satzvorschriften mit {\LaTeX} +auch außerordentlich schwierig umzusetzen. So kann eine feste Anzahl von +»Anschlägen« nur dann eingehalten werden, wenn keine proportionale Schrift +verwendet wird. Es gibt nur wenige gute nichtproportionale Schriften. Kaum +ein Text, der mit einer derartigen Schrift gesetzt ist, wirkt wirklich gut. So +wird häufig versucht, durch ausladende Serifen beispielsweise beim kleinen »i« +oder »l« die unterschiedliche Breite der Zeichen auszugleichen. Dies kann +nicht funktionieren. Im Ergebnis wirkt der Text unruhig und +zerrissen. Außerdem verträgt sich eine solche Schrift kaum mit dem im +deutschen Sprachraum üblichen und allgemein vorzuziehenden Blocksatz. Gewisse +Vorgaben können daher bei Verwendung von {\LaTeX} nur ignoriert oder großzügig +ausgelegt werden, etwa indem man »60~Anschläge pro Zeile« nicht als feste, +sondern als durchschnittliche oder maximale Angabe interpretiert. + +Wie ausgeführt, sind Satzvorschriften meist dazu gedacht, ein brauchbares +Ergebnis zu erhalten, auch wenn der Ausführende selbst nicht weiß, was dabei +zu beachten ist. Brauchbar bedeutet häufig: lesbar und korrigierbar. Nach +meiner Auf"|fassung wird ein mit {\LaTeX} und dem \Package{typearea}-Paket +gesetzter Text bezüglich des Satzspiegels diesen Anforderungen von vornherein +gerecht. Wenn Sie also mit Vorschriften konfrontiert sind, die offensichtlich +erheblich davon abweichen, so empfehle ich, dem Betreuer einen Textauszug +vorzulegen und nachzufragen, ob es gestattet ist, die Arbeit trotz der +Abweichungen in dieser Form zu liefern. Gegebenenfalls kann durch Veränderung +der Option \Option{DIV} der Satzspiegel moderat angepasst werden. Von der +Verwendung von \Macro{areaset} zu diesem Zweck rate ich jedoch +ab. Schlimmstenfalls verwenden Sie das nicht zu {\KOMAScript} gehörende +\Package{geometry}-Paket (siehe \cite{package:geometry}) oder verändern Sie +die Satzspiegelparameter von {\LaTeX} selbst. Die von \Package{typearea} +ermittelten Werte finden Sie in der \File{log}-Datei Ihres Dokuments. Damit +sollten moderate Anpassungen möglich sein. Achten Sie jedoch unbedingt darauf, +dass die Proportionen des Textbereichs mit denen der Seite unter +Berücksichtigung der Bindekorrektur annähernd übereinstimmen. + +Sollte es unbedingt erforderlich sein, den Text eineinhalbzeilig zu setzen, so +definieren Sie keinesfalls \Macro{baselinestretch} um. Dieses Vorgehen wird +zwar allzu häufig empfohlen, ist aber seit der Einführung von {\LaTeXe} im +Jahre 1994 obsolet. Verwenden Sie schlimmstenfalls den Befehl +\Macro{linespread}. Ich empfehle das Paket +\Package{setspace},\IndexPackage{setspace} das nicht zu {\KOMAScript} gehört +(siehe \cite{package:setspace}). Auch sollten Sie \Package{typearea} nach der +Umstellung des Zeilenabstandes den Satzspiegel für diesen Abstand berechnen +lassen, jedoch für den Titel, besser auch für die Verzeichnisse -- sowie das +Literaturverzeichnis und den Index -- wieder auf normalen Satz umschalten. Das +\Package{setspace}-Paket bietet dafür eine spezielle Umgebung und eigene +Befehle. + +Das \Package{typearea}-Paket berechnet auch bei der Option +\OptionValue{DIV}{calc} einen sehr großzügigen Textbereich. Viele konservative +Typografen werden feststellen, dass die resultierende Zeilenlänge noch zu groß +ist. Der berechnete \Var{DIV}-Wert ist ebenfalls in der \File{log}-Datei zum +jeweiligen Dokument zu finden. Sie können also leicht nach dem ersten +\LaTeX-Lauf einen kleineren Wert wählen. + +Nicht selten wird mir die Frage gestellt, warum ich eigentlich kapitelweise +auf einer Satzspiegelberechnung herumreite, während es sehr viel einfacher +wäre, nur ein Paket zur Verfügung zu stellen, mit dem man die Ränder wie bei +einer Textverarbeitung einstellen kann. Oft wird auch behauptet, ein solches +Paket wäre ohnehin die bessere Lösung, da jeder selbst wisse, wie gute Ränder +zu wählen seien, und die Ränder von {\KOMAScript} wären ohnehin nicht gut. Ich +erlaube mir zum Abschluss dieses Kapitels ein passendes Zitat von Hans Peter +Willberg und Friedrich Forssmann, zwei der angesehensten Typografen der +Gegenwart (siehe \cite{TYPO:ErsteHilfe}): +\begin{quote} + \phantomsection\label{sec:typearea.tips.cite}% + \textit{Das Selbermachen ist längst üblich, die Ergebnisse oft fragwürdig, + weil Laien-Typografen nicht sehen, was nicht stimmt und nicht wissen + können, worauf es ankommt. So gewöhnt man sich an falsche und schlechte + Typografie.} [\dots] \textit{Jetzt könnte der Einwand kommen, Typografie + sei doch Geschmackssache. Wenn es um Dekoration ginge, könnte man das + Argument vielleicht gelten lassen, da es aber bei Typografie in erster + Linie um Information geht, können Fehler nicht nur stören, sondern sogar + Schaden anrichten.} +\end{quote} + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "../guide" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/plength.dtx b/Master/texmf-dist/source/latex/koma-script/doc/plength.dtx index 214be64dbaa..3f005a98e22 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/plength.dtx +++ b/Master/texmf-dist/source/latex/koma-script/doc/plength.dtx @@ -2,7 +2,7 @@ % \iffalse % ====================================================================== % plength.dtx -% Copyright (c) Markus Kohm, 2005-2007 +% Copyright (c) Markus Kohm, 2005-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % plength.dtx -% Copyright (c) Markus Kohm, 2005-2007 +% Copyright (c) Markus Kohm, 2005-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -66,13 +66,14 @@ \generate{% \file{plength.drv}{\from{plength.dtx}{driver}}% - \file{plenDIN.mp}{\from{plength.dtx}{main,DIN,length,\languagename}}% + \file{plenDIN.mp}{\from{plength.dtx}{main,DIN,length,terms,\languagename}}% + \file{varDIN.mp}{\from{plength.dtx}{main,DIN,variables,\languagename}}% % Ebenfalls enthalten, derzeit aber nicht verwendet: -% \file{varDIN.mp}{\from{plength.dtx}{main,DIN,variables,\languagename}}% % \file{plenSN.mp}{\from{plength.dtx}{main,SN,length,\languagename}}% % \file{varSN.mp}{\from{plength.dtx}{main,SN,variables,\languagename}}% \file{plinc.mp}{\from{plength.dtx}{include}}% - \file{pltex.mp}{\from{plength.dtx}{tex}}% + \file{pltex-vars.mp}{\from{plength.dtx}{tex}}% + \file{pltex-terms.mp}{\from{plength.dtx}{tex,terms}}% \file{pllcoDIN.mp}{\from{plength.dtx}{DIN,values}}% % Ebenfalls enthalten, derzeit aber nicht verwendet: % \file{pllcoSN.mp}{\from{plength.dtx}{SN,values}}% @@ -86,7 +87,7 @@ \ProvidesFile{plength.drv}[2007/09/02 plength MetaPost graphics] \documentclass{ltxdoc} \usepackage{ngerman} -\usepackage[utf8]{inputenc} +\usepackage[latin1]{inputenc} \begin{document} \DocInput{plength.dtx} \end{document} @@ -94,7 +95,7 @@ %</driver> % \fi % -% \title{MetaPost-Grafiken für das Briefkapitel} +% \title{MetaPost-Grafiken für das Briefkapitel} % \author{Stephan Henig} % \date{2005-08-30} % \maketitle @@ -105,14 +106,14 @@ % \begin{flushleft} % \texttt{mpost --tex=latex} \meta{mp-file} % \end{flushleft} -% bearbeitet ergibt \texttt{1}-Dateien. Diese können als EPS-Dateien +% bearbeitet ergibt \texttt{1}-Dateien. Diese können als EPS-Dateien % geladen werden. Es kann aber auch mit % \begin{flushleft} % \texttt{mptopdf} \meta{1-Datei} % \end{flushleft} % eine PDF-Datei erzeugt werden. % -% Anpassungen werden ausschließlich in der \texttt{dtx}-Datei vorgenommen! +% Anpassungen werden ausschließlich in der \texttt{dtx}-Datei vorgenommen! % Wesentlich ist dabei der Abschnitt \texttt{main}. % %<*main> @@ -123,12 +124,12 @@ % Hinweise zu den Variablen: % \begin{itemize} % \item \texttt{input pllcoDIN} oder \texttt{input pllcoSN}\hfill\\ -% legt fest, ob die Maße für Briefe nach DIN oder SN -% geladen werden. Damit kann gewählt werden, welches Layout -% verdeutlicht werden soll. Sollen die Längen eingezeichnet werden, +% legt fest, ob die Maße für Briefe nach DIN oder SN +% geladen werden. Damit kann gewählt werden, welches Layout +% verdeutlicht werden soll. Sollen die Längen eingezeichnet werden, % ist pllcoDIN zu verwenden. % \item \texttt{grafikhoehe}\hfill\\ -% legt die Höhe der Ausgabedatei fest. +% legt die Höhe der Ausgabedatei fest. % \item \texttt{strichstaerke}\hfill\\ % bestimmt die Stiftbreite, die zum Zeichnen des % Briefbogens, der Faltmarken und der From-Rule benutzt wird. @@ -137,32 +138,32 @@ % Element-Rahmen (nicht der Hilfsrahmen). % \item \texttt{hilfsstrichstaerke}\hfill\\ % bestimmt die Stiftbreite zum Zeichnen der -% Bemaßung und der Hilfsrahmen. +% Bemaßung und der Hilfsrahmen. % \item \texttt{tickhoehe}\hfill\\ -% legt die Höhe der vertikalen Linien horizontaler -% Bemaßung fest (Makro hmeasure). Die Maßlinie wird auf halber Höhe -% von tickhoehe gezeichnet. Für die Makros vmeasure und dmeasure gilt -% ähnliches. In dmeasure wird jedoch ein Vielfaches von tickhoehe +% legt die Höhe der vertikalen Linien horizontaler +% Bemaßung fest (Makro hmeasure). Die Maßlinie wird auf halber Höhe +% von tickhoehe gezeichnet. Für die Makros vmeasure und dmeasure gilt +% ähnliches. In dmeasure wird jedoch ein Vielfaches von tickhoehe % verwendet. % \item \texttt{framed} und \texttt{filled}\hfill\\ % legen fest, ob die Elemente mit einem Rahmen -% versehen bzw. gefüllt werden sollen. +% versehen bzw. gefüllt werden sollen. % \item \texttt{drawcolor}\hfill\\ % legt die Farbe von Linien und Text fest. % \item \texttt{fillcolor}\hfill\\ -% legt die Füllfarbe fest, falls filled=true ist. +% legt die Füllfarbe fest, falls filled=true ist. % \item \texttt{latexlengths}\hfill\\ -% legt fest, ob die unveränderlichen LaTeX-Längen +% legt fest, ob die unveränderlichen LaTeX-Längen % angezeigt werden sollen. % \item \texttt{latexlengthcolor}\hfill\\ -% legt die Farbe fest, mit der LaTeX-Längen +% legt die Farbe fest, mit der LaTeX-Längen % gezeichnet werden. % \item \texttt{language}\hfill\\ % legt die Sprache der Beschreibung fest. % \item \texttt{ahlength}\hfill\\ -% Da foldmarkhpos sehr klein ist, können sich bei kleinen Grafiken -% die Pfeilspitzen der Bemaßung berühren. Um das zu verhindern, kann -% mit der MetaPost-internen Variablen ahlength die Pfeillänge +% Da foldmarkhpos sehr klein ist, können sich bei kleinen Grafiken +% die Pfeilspitzen der Bemaßung berühren. Um das zu verhindern, kann +% mit der MetaPost-internen Variablen ahlength die Pfeillänge % verringert werden. % \end{itemize} % @@ -171,7 +172,8 @@ prologues:=1; %<DIN>input pllcoDIN %<SN>input pllcoSN input plinc -input pltex +%<!terms>input pltex-vars +%<terms>input pltex-terms beginfig(1); numeric grafikhoehe; numeric tickhoehe; @@ -207,13 +209,13 @@ end %<*tex> % \section{Der Abschnitt \texttt{tex}} % -% Dieser Abschnitt enthält sozusagen den \TeX{}-Part der Grafiken. +% Dieser Abschnitt enthält sozusagen den \TeX{}-Part der Grafiken. % Hier werden beispielsweise die Fonts festgelegt. % % \begin{macrocode} verbatimtex \documentclass[8pt]{scrartcl} -\usepackage[utf8]{inputenc} +\usepackage[latin1]{inputenc} \usepackage{ngerman} \usepackage[T1]{fontenc} \IfFileExists{scrnonfree.tex}{% @@ -226,6 +228,18 @@ verbatimtex \newcommand*{\plength}{\fontsize{7}{8}\sffamily} \newcommand*{\descr}{\fontsize{7}{8}\itshape} \newcommand*{\latexlength}{\fontsize{7}{8}\ttfamily} +\newcommand*{\Macro}[1]{{\fontsize{7}{8}\ttfamily + \expandafter\string\csname #1\endcsname}} +\newcommand*{\Parameter}[1]{{\fontsize{7}{8}\ttfamily\itshape\{#1\}}} +\newcommand*{\PParameter}[1]{{\fontsize{7}{8}\ttfamily\{#1\}}} +\newcommand*{\Variable}[1]{{\fontsize{7}{8}\ttfamily\bfseries #1}} +\newcommand*{\Multi}[1]{% + {\def\and{, }% + \begin{tabular}{@{}l@{}} + #1 + \end{tabular} + }% +} \begin{document} etex @@ -264,33 +278,64 @@ enddef; def deflatexlengths = begingroup - latexlength[1] = btex \latexlength{}\textbackslash{}baselineskip etex; - latexlength[2] = btex \latexlength{}2\textbackslash{}baselineskip etex; - latexlength[3] = btex \latexlength{}\textbackslash{}textwidth etex; - latexlength[4] = btex \latexlength{}$\geq$\textbackslash{}footskip etex; + latexlength[1] = btex \latexlength{}\string\baselineskip etex; + latexlength[2] = btex \latexlength{}2\string\baselineskip etex; + latexlength[3] = btex \latexlength{}\string\textwidth etex; + latexlength[4] = btex \latexlength{}$\geq$\string\footskip etex; endgroup enddef; + def defdescriptionde = begingroup +%<*terms> description[1]=btex \descr{}Briefkopf etex; - description[2]=btex \descr{}Brief"|fuß etex; - description[3]=btex \descr{}Rücksendeadresse etex; + description[2]=btex \descr{}Brief"|fuß{} etex; + description[3]=btex \descr{}Rücksendeadresse etex; description[4]=btex \descr{}Versandart etex; - description[5]=btex \descr{}Empfängeradresse etex; - description[6]=btex \descr{}Geschäftszeile etex; + description[5]=btex \descr{}Empfängeradresse etex; + description[6]=btex \descr{}Geschäftszeile etex; description[7]=btex \descr{}Titel etex; description[8]=btex \descr{}Betreff etex; description[9]=btex \descr{}Anrede etex; description[10]=btex \descr{}Brieftext etex; - description[11]=btex \descr{}Grußfloskel etex; + description[11]=btex \descr{}Grußfloskel etex; description[12]=btex \descr{}Signatur etex; - description[13]=btex \descr{}\begin{tabular}{@{}c@{}}Absender-\\ergänzung\end{tabular} etex; + description[13]=btex \descr{}\begin{tabular}{@{}c@{}}Absender-\\ergänzung\end{tabular} etex; +%</terms> +%<*!terms> + description[1]=btex \Multi{\Macro{firsthead}\Parameter{Definition}\\ + \Variable{fromname}\and + \Variable{fromaddress}\and + \Variable{fromphone}\and + \Variable{fromfax}\and + \Variable{fromemail}\and + \Variable{fromurl}} etex; + description[2]=btex \Macro{firstfoot}\Parameter{Definition} etex; + description[3]=btex \Variable{backaddress} etex; + description[4]=btex \Variable{specialmail} etex; + description[5]=btex \Macro{begin}\PParameter{letter}\Parameter{Name und Adresse} etex; + description[6]=btex \Multi{\Variable{yourref}\and + \Variable{yourmail}\and + \Variable{myref}\and + \Variable{customer}\and + \Variable{invoice}\and + \Variable{place}\and + \Variable{date}} etex; + description[7]=btex \Variable{title} etex; + description[8]=btex \Variable{subject} etex; + description[9]=btex \Macro{opening}\Parameter{Anrede} etex; + description[10]=btex \descr{}Brieftext etex; + description[11]=btex \Macro{closing}\Parameter{Floskel} etex; + description[12]=btex \Variable{signature} etex; + description[13]=btex \Variable{location} etex; +%</!terms> endgroup enddef; def defdescriptionen = begingroup +%<*terms> description[1]=btex \descr{}letterhead etex; description[2]=btex \descr{}letter footer etex; description[3]=btex \descr{}return address etex; @@ -304,6 +349,34 @@ begingroup description[11]=btex \descr{}closing etex; description[12]=btex \descr{}signature etex; description[13]=btex \descr{}\begin{tabular}{@{}c@{}}supplemental\\data\end{tabular} etex; +%</terms> +%<*!terms> + description[1]=btex \Multi{\Macro{firsthead}\Parameter{definition}\\ + \Variable{fromname}\and + \Variable{fromaddress}\and + \Variable{fromphone}\and + \Variable{fromfax}\and + \Variable{fromemail}\and + \Variable{fromurl}} etex; + description[2]=btex \Macro{firstfoot}\Parameter{definition} etex; + description[3]=btex \Variable{backaddress} etex; + description[4]=btex \Variable{specialmail} etex; + description[5]=btex \Macro{begin}\PParameter{letter}\Parameter{addressee} etex; + description[6]=btex \Multi{\Variable{yourref}\and + \Variable{yourmail}\and + \Variable{myref}\and + \Variable{customer}\and + \Variable{invoice}\and + \Variable{place}\and + \Variable{date}} etex; + description[7]=btex \Variable{title} etex; + description[8]=btex \Variable{subject} etex; + description[9]=btex \Macro{opening}\Parameter{opening term} etex; + description[10]=btex \descr{}letter body etex; + description[11]=btex \Macro{closing}\Parameter{closing term} etex; + description[12]=btex \Variable{signature} etex; + description[13]=btex \Variable{location} etex; +%</!terms> endgroup enddef; % \end{macrocode} @@ -311,11 +384,11 @@ enddef; % %<*values> % \section{Der Abschnitt \texttt{values}} -% In diesem Abschnitt finden sich Maße für die unterschiedlichen Briefe +% In diesem Abschnitt finden sich Maße für die unterschiedlichen Briefe % ausgehend von \texttt{11pt}, \texttt{a4paper}. % %<*DIN> -% \section{Maße für DIN-Briefe} +% \section{Maße für DIN-Briefe} % %\begin{macrocode} numeric paperwidth; @@ -349,6 +422,9 @@ baselineskip = 13.6pt; numeric foldmarkhpos; numeric tfoldmarkvpos; numeric bfoldmarkvpos; +numeric tfoldmarklength; +numeric pfoldmarklength; +numeric bfoldmarklength; numeric toaddrvpos; numeric refvpos; numeric refaftervskip; @@ -372,6 +448,9 @@ numeric sigbeforevskip; foldmarkhpos = 3.5mm; tfoldmarkvpos = 105mm; bfoldmarkvpos = 210mm; +tfoldmarklength = 2mm; +pfoldmarklength = 4mm; +bfoldmarklength = 2mm; toaddrvpos = 45mm; refvpos = 98.5mm; refaftervskip = baselineskip; @@ -421,9 +500,6 @@ numeric typeareabottom; numeric sigvpos; numeric sigwidth; numeric sigheight; -numeric tfoldmarkwidth; -numeric mfoldmarkwidth; -numeric bfoldmarkwidth; firstheadhpos = 0.5*(paperwidth-firstheadwidth); firstheadheight = 5*baselineskip; firstfoothpos = 0.5*(paperwidth-firstfootwidth); @@ -453,14 +529,11 @@ typeareabottom = firstfootvpos-footskip; sigvpos = bodyvpos+bodyheight+baselineskip; sigwidth = 5cm; sigheight = baselineskip; -tfoldmarkwidth = 2mm; -mfoldmarkwidth = 4mm; -bfoldmarkwidth = 2mm; % \end{macrocode} %</DIN> % %<*SN> -% \section{Maße für SN-Briefe} +% \section{Maße für SN-Briefe} % \begin{macrocode} numeric paperwidth; numeric paperheight; @@ -493,6 +566,9 @@ baselineskip = 13.6pt; numeric foldmarkhpos; numeric tfoldmarkvpos; numeric bfoldmarkvpos; +numeric tfoldmarklength; +numeric pfoldmarklength; +numeric bfoldmarklength; numeric toaddrvpos; numeric refvpos; numeric refaftervskip; @@ -516,6 +592,9 @@ numeric sigbeforevskip; foldmarkhpos = 3.5mm; tfoldmarkvpos = 105mm; bfoldmarkvpos = 210mm; +tfoldmarklength = 2mm; +pfoldmarklength = 4mm; +bfoldmarklength = 2mm; toaddrvpos = 45mm; refvpos = 98.5mm; refaftervskip = baselineskip; @@ -567,9 +646,6 @@ numeric typeareabottom; numeric sigvpos; numeric sigwidth; numeric sigheight; -numeric tfoldmarkwidth; -numeric mfoldmarkwidth; -numeric bfoldmarkwidth; firstheadhpos = 0.5*(paperwidth-firstheadwidth); firstheadheight = 4*baselineskip; firstfoothpos = 0.5*(paperwidth-firstfootwidth); @@ -599,27 +675,24 @@ typeareabottom = firstfootvpos-footskip; sigvpos = bodyvpos+bodyheight+baselineskip; sigwidth = 5cm; sigheight = baselineskip; -tfoldmarkwidth = 2mm; -mfoldmarkwidth = 4mm; -bfoldmarkwidth = 2mm; % \end{macrocode} %</SN> %</values> % %<*include> % \section{Der Abschnitt \texttt{include}} -% \changes{}{2005-08-30}{Korrektur der Stiftstärken} +% \changes{}{2005-08-30}{Korrektur der Stiftstärken} % % Dieser Abschnitt erzeugt die Datei \texttt{plinc.mp} mit den wesentlichen -% Definitionen für die Erzeugung eines Elements. Eine Element ist -% beispielsweise eine Pseudolänge, eine Beschreibung (Variable), ein Feld, +% Definitionen für die Erzeugung eines Elements. Eine Element ist +% beispielsweise eine Pseudolänge, eine Beschreibung (Variable), ein Feld, % \dots). % % \begin{macrocode} def lengths = toaddrindent := 0.7cm; % \end{macrocode} -% Die Breite des \texttt{location}-Feldes wird später berechnet und deshalb +% Die Breite des \texttt{location}-Feldes wird später berechnet und deshalb % hier nicht mehr mit % \begin{verbatim} % locwidth := 3.7cm; @@ -669,7 +742,7 @@ def drawframedelements = pickup pencircle scaled framestrichstaerke; drawoptions(withcolor drawcolor); % \end{macrocode} -% Kopf und Fuß +% Kopf und Fuß % \begin{macrocode} draw unitsquare xscaled firstheadwidth yscaled firstheadheight shifted (firstheadhpos, firstheadvpos) transformed T; @@ -688,12 +761,12 @@ def drawframedelements = shifted (istoaddrhpos+toaddrindent, toaddrvpos+backaddrheight+specialmailheight) transformed T; % \end{macrocode} -% Absenderergänzung: +% Absenderergänzung: % \begin{macrocode} draw unitsquare xscaled locwidth yscaled toaddrheight shifted (lochpos, toaddrvpos) transformed T; % \end{macrocode} -% Geschäftszeile: +% Geschäftszeile: % \begin{macrocode} draw unitsquare xscaled refwidth yscaled refheight shifted (1in+oddsidemargin, refvpos) transformed T; @@ -736,7 +809,7 @@ def drawfilledelements = fi drawoptions (withcolor fillcolor); % \end{macrocode} -% Kopf und Fuß: +% Kopf und Fuß: % \begin{macrocode} fill unitsquare xscaled firstheadwidth yscaled firstheadheight shifted (firstheadhpos, firstheadvpos) transformed T; @@ -755,12 +828,12 @@ def drawfilledelements = shifted (istoaddrhpos+toaddrindent, toaddrvpos+backaddrheight+specialmailheight) transformed T; % \end{macrocode} -% Absenderergänzung: +% Absenderergänzung: % \begin{macrocode} fill unitsquare xscaled locwidth yscaled toaddrheight shifted (lochpos, toaddrvpos) transformed T; % \end{macrocode} -% Geschäftszeile: +% Geschäftszeile: % \begin{macrocode} fill unitsquare xscaled refwidth yscaled refheight shifted (refhpos, refvpos) transformed T; @@ -806,11 +879,11 @@ def drawpaperandfoldmarks = % Falzmarken: % \begin{macrocode} draw ((foldmarkhpos,tfoldmarkvpos)-- - (foldmarkhpos+tfoldmarkwidth,tfoldmarkvpos)) transformed T; + (foldmarkhpos+tfoldmarklength,tfoldmarkvpos)) transformed T; draw ((foldmarkhpos,0.5*paperheight)-- - (foldmarkhpos+mfoldmarkwidth,0.5*paperheight)) transformed T; + (foldmarkhpos+pfoldmarklength,0.5*paperheight)) transformed T; draw ((foldmarkhpos,bfoldmarkvpos)-- - (foldmarkhpos+bfoldmarkwidth,bfoldmarkvpos)) transformed T; + (foldmarkhpos+bfoldmarklength,bfoldmarkvpos)) transformed T; enddef; def drawboxes = @@ -988,12 +1061,12 @@ begingroup % \end{macrocode} % \texttt{tfoldmarkvpos}: % \begin{macrocode} - dmeasure((foldmarkhpos+tfoldmarkwidth,tfoldmarkvpos), plength[16], + dmeasure((foldmarkhpos+tfoldmarklength,tfoldmarkvpos), plength[16], (18pt,1.5*tickhoehe), bot); % \end{macrocode} % \texttt{bfoldmarkvpos}: % \begin{macrocode} - dmeasure((foldmarkhpos+bfoldmarkwidth,bfoldmarkvpos), plength[2], + dmeasure((foldmarkhpos+bfoldmarklength,bfoldmarkvpos), plength[2], (18pt,0pt), top); % \end{macrocode} % \texttt{firstfootvpos}: @@ -1010,7 +1083,7 @@ begingroup drawcolor := latexlengthcolor; pickup pencircle scaled hilfsstrichstaerke; % \end{macrocode} -% \LaTeX-Längen: +% \LaTeX-Längen: % \begin{macrocode} vmeasure((1in+oddsidemargin+openingwidth,subjectvpos-baselineskip), baselineskip, latexlength[1], origin, rt); @@ -1048,7 +1121,7 @@ begingroup draw (p--p shifted (0,-tickhoehe)) shifted (breite,0) transformed T; % \end{macrocode} % Messlinie; -% die Korrektur der Stiftstärke muss nach der Transformation +% die Korrektur der Stiftstärke muss nach der Transformation % in Zeichenkoordinaten erfolgen: % \begin{macrocode} pleft = p shifted (0,-0.5*tickhoehe) @@ -1080,7 +1153,7 @@ begingroup draw (p--p shifted (tickhoehe,0)) shifted (0,breite) transformed T; % \end{macrocode} % Messlinie; -% die Korrektur der Stiftstärke muss nach der Transformation +% die Korrektur der Stiftstärke muss nach der Transformation % in Zeichenkoordinaten erfolgen: % \begin{macrocode} ptop = p shifted (0.5*tickhoehe,0) @@ -1112,7 +1185,7 @@ begingroup ptop = p shifted (0,-1.5*tickhoehe) shifted (tickhoehe,0) transformed T; % \end{macrocode} -% Die Korrektur der Stiftstärke muss nach der Transformation +% Die Korrektur der Stiftstärke muss nach der Transformation % in Zeichenkoordinaten erfolgen. % \begin{macrocode} pbottom = p shifted (tickhoehe,0) @@ -1135,7 +1208,7 @@ def writedescription(expr lang) = fi drawoptions(withcolor drawcolor); % \end{macrocode} -% Kopf und Fuß: +% Kopf und Fuß: % \begin{macrocode} label(description[1], (firstheadhpos+0.5*firstheadwidth, firstheadvpos+0.5*firstheadheight) @@ -1157,12 +1230,12 @@ def writedescription(expr lang) = toaddrvpos+backaddrheight+specialmailheight+0.5*(toaddrheight-backaddrheight-specialmailheight)) transformed T); % \end{macrocode} -% Absenderergänzung: +% Absenderergänzung: % \begin{macrocode} label(description[13], (lochpos+0.5*locwidth, toaddrvpos+0.5*toaddrheight) transformed T); % \end{macrocode} -% Geschäftszeile: +% Geschäftszeile: % \begin{macrocode} label(description[6], (1in+oddsidemargin+0.5*refwidth, refvpos+0.5*refheight) @@ -1208,6 +1281,7 @@ enddef; \endinput %%% Local Variables: %%% mode: doctex +%%% coding: iso-latin-1 %%% TeX-master: t %%% End: % \fi diff --git a/Master/texmf-dist/source/latex/koma-script/doc/scrguide.cls b/Master/texmf-dist/source/latex/koma-script/doc/scrguide.cls index fca716d4663..a1067b91d27 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/scrguide.cls +++ b/Master/texmf-dist/source/latex/koma-script/doc/scrguide.cls @@ -1,6 +1,6 @@ % ====================================================================== % scrguide.cls -% Copyright (C) 2005-2007 Markus Kohm +% Copyright (C) 2005-2008 Markus Kohm % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrguide.cls -% Copyright (C) 2005-2007 Markus Kohm +% Copyright (C) 2005-2008 Markus Kohm % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -38,7 +38,7 @@ % \section{Identification} % % \begin{macrocode} -\ProvidesClass{scrguide}[2007/12/15 v1.0 internal KOMA-Script guide class] +\ProvidesClass{scrguide}[2008/09/04 v1.3b internal KOMA-Script guide class] % \end{macrocode} % % @@ -98,8 +98,17 @@ \LoadClassWithOptions{scrbook} \RequirePackage[latin1]{inputenc} \RequirePackage[TS1,T1]{fontenc} -\RequirePackage{babel} +\def\languages{} +\ifstr{\languagename}{english}{}{\g@addto@macro\languages{,english}} +\ifstr{\languagename}{ngerman}{\frenchspacing}{% + \g@addto@macro\languages{,ngerman}} +\g@addto@macro\languages{,\languagename} +\edef\uselanguage{\languagename} +\edef\languages{\languages} +\expandafter\RequirePackage\expandafter[\languages]{babel}% \RequirePackage[fixlanguage]{babelbib} +\expandafter\selectbiblanguage\expandafter{\uselanguage} +\RequirePackage{afterpage} \RequirePackage{makeidx} \RequirePackage{scrdate} \RequirePackage{scrtime} @@ -109,13 +118,15 @@ \RequirePackage{amsmath} \RequirePackage{listings} \RequirePackage{multicol} -\RequirePackage{hyperref} +\RequirePackage{xcolor,tocstyle}% hyperref needs xcolor with tocstyle +\RequirePackage[\uselanguage]{hyperref} % \end{macrocode} % % % \section{Free or Non-Free Version} % % \begin{macrocode} +\newif\ifshortversion\shortversionfalse \AtEndOfClass{% \InputIfFileExists{scrnonfree.tex}{}{% \typeout{^^J @@ -128,6 +139,14 @@ ^^J% }% \newcommand*{\iffree}{\@firstoftwo}% + \shortversiontrue + \newcommand*{\LoadNonFree}[2]{% + \par + Im \KOMAScript-Buch \cite{book:komascript} finden sich an dieser Stelle + weitere Informationen. + \par + }% + \AtBeginDocument{\InputIfFileExists{linkalias.tex}{}{}}% \usepackage{lmodern}% \@twosidefalse\@openrightfalse\@mparswitchfalse \RequirePackage{geometry}% @@ -184,6 +203,35 @@ \RequirePackage{textcomp} % \end{macrocode} % +% \section{Load common paragraphs} +% +% \begin{macrocode} +\newcounter{commonpar} +\newcommand*{\LoadCommon}[2][\label@base]{% + \setcounter{commonpar}{#2}% + \@ifundefined{ifCommon#1}{% + \expandafter\csname newif\expandafter\endcsname + \csname ifCommon#1\endcsname + }{}% + \csname Common#1true\endcsname + \input{common.tex}% + \csname Common#1false\endcsname +} +\newcommand*{\IfCommon}[1]{% + \ifstr{\label@base}{#1}{% + \@firstofone + }{% + \@gobble + }% +} +\newcommand*{\IfNotCommon}[1]{% + \ifstr{\label@base}{#1}{% + \@gobble + }{% + \@firstofone + }% +} +% \end{macrocode} % % \section{Language Dependencies} % @@ -191,16 +239,16 @@ % of the extensions to the language. % \begin{macrocode} \AtBeginDocument{% - \InputIfFileExists{\jobname-\languagename.tex}{% - \ClassInfo{scrguide}{Loading language dependencies for \languagename}% + \InputIfFileExists{\jobname-\uselanguage.tex}{% + \ClassInfo{scrguide}{Loading language dependencies for \uselanguage}% }{% - \ClassError{scrguide}{\languagename\space not supported}{% - You've tried to generate a guide for language `\languagename' but + \ClassError{scrguide}{\uselanguage\space not supported}{% + You've tried to generate a guide for language `\uselanguage' but language\MessageBreak - dependency file `\jobname-\language.tex' was not found.\MessageBreak + dependency file `\jobname-\uselanguage.tex' was not found.\MessageBreak This may result in a lot of errors and warnings, if you'll continue}% }% - \expandafter\addto\csname extras\languagename\endcsname + \expandafter\addto\csname extras\uselanguage\endcsname \GuideLanguageExtensions\GuideLanguageExtensions } % \end{macrocode} @@ -456,6 +504,8 @@ % % \begin{macro}{\Macro} % \begin{macro}{\Option} +% \begin{macro}{\KOption} +% \begin{macro}{\OptionValue} % \begin{macro}{\Environment} % \begin{macro}{\Counter} % \begin{macro}{\Length} @@ -470,9 +520,11 @@ % \begin{macro}{\OParameter} % \begin{macro}{\AParameter} % \begin{macro}{\PParameter} +% \begin{macro}{\POParameter} % \begin{description} % \item[\cs{Macro}] \LaTeX{} or \TeX{} macro % \item[\cs{Option}] class or package option +% \item[\cs{KOption}] |\KOMAoptions| option % \item[\cs{Environment}] \LaTeX{} environment % \item[\cs{Counter}] \LaTeX{} counter % \item[\cs{Length}] \LaTeX{} length @@ -491,6 +543,8 @@ % \begin{macrocode} \DeclareRobustCommand*{\Macro}[1]{\mbox{\texttt{\char`\\#1}}} \DeclareRobustCommand*{\Option}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\KOption}[1]{\mbox{\Option{#1}\texttt=}} +\DeclareRobustCommand*{\OptionValue}[2]{\mbox{\texttt{#1=#2}}} \DeclareRobustCommand*{\FloatStyle}[1]{\mbox{\texttt{#1}}} \DeclareRobustCommand*{\Pagestyle}[1]{\mbox{\texttt{#1}}} \DeclareRobustCommand*{\Environment}[1]{\mbox{\texttt{#1}}} @@ -511,6 +565,7 @@ }\PName{#1}\texttt{%( )}} \DeclareRobustCommand*{\PParameter}[1]{\texttt{\{#1\}}} +\DeclareRobustCommand*{\POParameter}[1]{\texttt{[#1]}} % \end{macrocode} % \end{macro} % \end{macro} @@ -528,6 +583,9 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\EMail} % An email adress. @@ -575,6 +633,11 @@ % \end{macrocode} % \end{macro} % +% Wie allow page breaks at display math. +% \begin{macrocode} +\allowdisplaybreaks[1] +% \end{macrocode} +% % % \section{Acronyms} % @@ -628,22 +691,38 @@ \expandafter\let\csname X##1\expandafter\endcsname \csname ##1\endcsname \expandafter\newcommand\expandafter*\csname new##1\endcsname[1]{% - \begingroup - \let\ensuremath\@firstofone - \let\textit\@firstofone - \lowercase{\def\@tempa{##1}}% - \pdfstringdef\@tempb{\label@base.\@tempa.####1}% - \xdef\@currentHref{\@tempb}% - \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}% - \label{desc:\label@base.\@tempa.####1}% - \endgroup +% \begingroup +% \let\ensuremath\@firstofone +% \let\textit\@firstofone +% \lowercase{\def\@tempa{##1}}% +% \pdfstringdef\@tempb{\label@base.\@tempa.####1}% +% \xdef\@currentHref{\@tempb}% +% \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}% +% \label{desc:\label@base.\@tempa.####1}% +% \endgroup \csname X##1\endcsname{####1}\ignorespaces }% \expandafter\let\csname ##1\expandafter\endcsname\csname new##1\endcsname }% + \newcommand*{\new@xelement}[2]{% + \expandafter\newcommand\expandafter*\csname X##1\endcsname{}% + \expandafter\let\csname X##1\expandafter\endcsname + \csname ##1\endcsname + \expandafter\newcommand\expandafter*\csname new##1\endcsname[2]{% +% \begingroup +% \let\ensuremath\@firstofone +% \let\textit\@firstofone +% \lowercase{\def\@tempa{##1}}% +% \pdfstringdef\@tempb{\label@base.\@tempa.####1.####2}% +% \xdef\@currentHref{\@tempb}% +% \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}% +% \label{desc:\label@base.\@tempa.####1.####2}% +% \endgroup + \csname X##1\endcsname{####1}{##2{####2}}\ignorespaces + }% + \expandafter\let\csname ##1\expandafter\endcsname\csname new##1\endcsname + }% % \end{macrocode} -% \begin{macro}{\newOption} -% \begin{macro}{\newMacro} % \begin{macrocode} \new@element{Option}% \new@element{Macro}% @@ -652,20 +731,20 @@ \new@element{FloatStyle}% \new@element{PLength}% \new@element{Variable}% + \new@xelement{OptionValue}{\PValue}% % \end{macrocode} % \end{macro} -% \end{macro} -% \end{macro} % \begin{macrocode} - \par\small\addvspace{2\baselineskip plus .5\baselineskip}% + \ifvmode\else\par\fi\small\addvspace{2\baselineskip}% \vspace{-\baselineskip}% + \vspace{\z@ plus \baselineskip}% \noindent\hspace{-1em}% \tabular{|l|}\hline\ignorespaces }{% \\\hline\endtabular\nobreak\par\nobreak - \vspace{1.5\baselineskip}\vspace{-\baselineskip}% - \vspace{0pt minus .5\baselineskip}% - \noindent\ignorespacesafterend + \vspace{1.5\baselineskip}\nobreak\vspace{-\baselineskip}\nobreak% + \vspace{0pt minus .5\baselineskip}\nobreak% + \aftergroup\@afterindentfalse\aftergroup\@afterheading } % \end{macrocode} % \end{environment} @@ -733,9 +812,9 @@ % \KOMAScript{} but not important for using \KOMAScript. % \begin{macrocode} \newenvironment{Explain}{% - \par\sffamily + \par\sffamily\ignorespaces }{% - \normalcolor\par + \par } % \end{macrocode} % \end{environment} @@ -832,7 +911,7 @@ % \begin{macrocode} \providecommand*{\ChangedAt}[2]{% \marginline{\footnotesize\fbox{\strut#1}}% - \glossary{#2>#1|indexrm}% + \glossary{#1|indexrm}% } % \end{macrocode} % \end{macro} @@ -962,10 +1041,97 @@ % % Setup listings: % \begin{macrocode} -\lstset{basicstyle=\ttfamily,% - aboveskip=.5\baselineskip,% - belowskip=.5\baselineskip,% - columns=fullflexible% fix for buggy version of LM fonts +\lstdefinestyle{basics}{% + basicstyle=\ttfamily,% + aboveskip=.4\baselineskip,% + belowskip=0\baselineskip% +} +\lstdefinestyle{code}{% + style=basics,% + language=[LaTeX]TeX,% + moretexcs={% + @auxout, + @currext, + @empty, + @float, + @ifpackagelater, + @ifundefined, + @rightmark, + @secondoftwo, + @tempswafalse,@tempswatrue, + AtBeginDocument, + AtEndDocument, + ClassWarningNoLine,CurrentOption, + DeclareOption,dimexpr, + end@float, + ExecuteOptions, + if@filesw,if@tempswa,if@twoside, + includegraphics, + MessageBreak, + onehalfspacing, + PackageError,PackageInfo,PackageWarning,PassOptionsToPackage, + ProcessOptions,ProvidesFile,ProvidesPackage, + RequirePackage, + setlength, + textsuperscript}% +} +\lstdefinestyle{output}{% + style=basics,breaklines,prebreak=\mbox{$\hookleftarrow$}% +} +\lstdefinestyle{KOMA}{% + style=code,% + moretexcs={% + @addtoplength,@setplength,@newplength, + addchap,addrentry,Address,addcontentslinetoeachtocfile,addtoeachtocfile, + addtokomafont,addtolengthplength,addtoreffields,addtotoclist, + adrchar,adrentry,AfterBibliographyPreamble,AfterFile,AfterPackage, + appendixmore,appendixname,areaset,autodot,automark,AtAddToTocList, + AtBeginLetter, + BeforeClosingMainAux,BeforePackage,bib@beginhook,bib@endhook, + cc,captionabove,captionformat,cefoot,cfoot,chapapp,chapappifchapterprefix, + chapter,chapterformat,chaptermarkformat,chapterpagestyle,chead, + cleardoubleevenemptypage,clearscrheadfoot,closing,cofoot,Comment, + dedication,deffootnote,deffootnotemark,DefineFamily,DefineFamilyKey, + DefineFamilyMember,defpagestyle,deftripstyle, + dictum,dictumauthorformat,dictumwidth,doforeachtocfile, + encl,extratitle, + FamilyBoolKey,FamilyExecuteOptions,FamilyNumericalKey,% + FamilyOption,FamilyOptions,FamilyProcessOptions,FamilySetBool, + figureformat,figurename,firstfoot,firsthead,FirstName,footfont,footref, + FreeI,FreeII,FreeIII,FreeIV, + headfont,headmark, + ifattoclist,ifoot,ihead,ifkomavarempty,ifstr,ifthispageodd,InputAddressFile, + KOMAoption,KOMAoptions,KOMAScript, + l@addto@macro,LastName,LetterOptionNeedsPapersize,listoffigures, + listoftables,listoftoc,LoadLetterOption,lohead,lowertitleback, + MakeMarkcase,maketitle,manualmark,marginline,minisec, + multfootsep,multiplefootnoteseparator, + Name,nameday,newbibstyle,newcaptionname,newkomavar,nexthead, + ofoot,ohead,opening,othersectionlevelsformat, + p@section,pagemark,part,partformat,partname,partpagestyle,pnumfont, + publishers,ps, + raggedsection,raggedpart,raggedsignature,recalctypearea,rehead, + removereffields,ReplaceInput,ReplacePackage, + sectionmarkformat,setbibpreamble,setcapindent,setcapwidth, + setchapterpreamble,setfootbotline,setfootsepline,setfootwidth, + setheadsepline,setheadtopline,setheadwidth,setindexpreamble,setkomafont, + setkomavar,setlengthtoplength,setparsizes,setpartpreamble,setuptoc, + subject,subsectionmarkformat,subtitle, + tableformat,tablename,tableofcontents,textsubscript,thechapter,thefigure, + thefootnotemark,thepart,thesection,thesubsection,thetable,thistime, + titlehead,tocbasic@extend@babel,todaysname,typearea, + unsettoc,usekomafont,useplength,usekomavar,uppertitleback + }% +} +\lstset{style=basics} +\lstnewenvironment{lstoutput}[1][]{% + \lstset{style=output,basicstyle=\ttfamily\small,#1}% +}{} +\lstnewenvironment{lstcode}[1][]{% + \lstset{style=KOMA,basicstyle=\ttfamily\small,#1}% +}{} +\newcommand*{\lstinputcode}[1][]{% + \lstinputlisting[style=KOMA,basicstyle=\ttfamily\small,#1]% } % \end{macrocode} % @@ -1067,10 +1233,22 @@ KOMAScript \endcsname % We have large page numbers, so better setup the needed width. And we like % other dot seperation. % \begin{macrocode} -\renewcommand*{\@pnumwidth}{1.67em} +\usetocstyle{classic} +\renewcommand*{\@pnumwidth}{1.8em}% 1.67 +\renewcommand*\@tocrmarg {2.70em}% 2.55em \renewcommand*\@dotsep{2.5} % \end{macrocode} % +% \section{Part} +% +% We want another vertical spacing at part headings. +% \begin{macrocode} +\renewcommand*{\partheadstartvskip}{\vspace*{.1\textheight}} +\renewcommand*{\partheadmidvskip}{\par\nobreak\vspace{.5\baselineskip}} +\renewcommand*{\partpagestyle}{empty} +% \end{macrocode} +% +% % \section{Appendix} % % \begin{macro}{\appendix} @@ -1106,13 +1284,22 @@ KOMAScript \endcsname \bibliographystyle{babalpha-fl}% \renewcommand*{\@openbib@code}{% \setlength{\parsep}{0pt}% - \renewcommand*{\btxauthorcolon}[1]{:\par}% - \renewcommand*{\btxurlfont}{\par\url}% + \renewcommand*{\btxauthorcolon}[1]{:\par\nobreak}% + \renewcommand*{\btxurlfont}{\par\nobreak\url}% \raggedright }% } % \end{macrocode} % +% The generated argument of thebibliography is to short: +% \begin{macrocode} +\newcommand*{\OrigTheBibliography}{} +\let\OrigTheBibliography\thebibliography +\renewcommand*{\thebibliography}[1]{% + \OrigTheBibliography{XXXX99}% +} +% \end{macrocode} +% % % \section{Index} % @@ -1351,7 +1538,12 @@ KOMAScript \endcsname % |\Define|\dots|Index| for more information about the kind of an index % entry. The third argument is the index entry. % \begin{macrocode} +\newif\ifnolabel +\def\nolabelfalse{\global\let\ifnolabel\iffalse}% +\def\nolabeltrue{\global\let\ifnolabel\iftrue}% +\newlength\PreserveSkip \newcommand*{\BeginIndex}[3][indexmain]{% + \ifvmode\PreserveSkip=\lastskip\else\PreserveSkip=\z@\fi \expandafter\ifx\csname Index#2\endcsname\relax \GenericError{(scrguide)\@spaces\@spaces\@spaces\@spaces}{% Document scrguide Error: \string\BeginIndex\space with unknown @@ -1363,6 +1555,38 @@ KOMAScript \endcsname \csname Index#2\endcsname[(%) #1]{#3}% \fi + \ifnolabel\nolabelfalse\else + \ifx\relax#2\relax\else + \begingroup + \def\SplitIndexValue##1~=##2~=##3\@nil{% + ##1\expandafter\ifx\expandafter\relax##2\relax\else.##2\fi + }% + \let\PName\@gobble + \let\PValue\@firstofone + \let\ensuremath\@firstofone + \let\textit\@firstofone + \def~{\string~}% + \lowercase{\def\@tempa{#2}}% + \edef\@tempa{\label@base.\@tempa.\SplitIndexValue#3~=~=\@nil}% + \pdfstringdef\@tempb{\@tempa}% + \expandafter\ifx\csname \@tempb\endcsname\relax + \expandafter\xdef\csname \@tempb\endcsname{\the\inputlineno}% + \xdef\@currentHref{\@tempb}% + \ClassInfo{scrguide}{Anchor: `\@currentHref'}% + \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}% + \label{desc:\@tempa}% + \else + \ClassWarning{scrguide}{% + Label \@tempa\space already defined at \csname + \@tempb\endcsname,\MessageBreak + ignored}% + \fi + \endgroup + \fi + \fi + \ifvmode\ifdim \PreserveSkip=\z@\else + \vskip -\PreserveSkip\vskip\PreserveSkip + \fi\fi \ignorespaces } \newcommand*{\EndIndex}[3][indexmain]{% @@ -1441,7 +1665,7 @@ KOMAScript \endcsname \expandafter\newcommand\expandafter*% \csname Index#2\endcsname[2][indexother]{% \Index[##1]{##2 (#1)=\UseIndex{gen}#4{##2} (\protect #1)}% - \Index[##1]{#2=\UseIndex{gen}\protect#1>##2=\UseIndex{gen}#4{##2}}% + \Index[##1]{\csname Guide#2IndexCategoryExpanded\endcsname=\UseIndex{gen}\expandafter\protect\csname Guide#2IndexCategory\endcsname>##2=\UseIndex{gen}#4{##2}}% \IndexSeeAt[#1]{##2}{#3}{gen}{\GuidegenIndex}{#4}% }% \fi @@ -1479,8 +1703,8 @@ KOMAScript \endcsname \else \expandafter\newcommand\expandafter*% \csname Index#2\endcsname[2][indexother]{% - \IndexSeeAt[#1]{##2}{gen}{#3}{#4}{#6}% - \Index[##1]{#1=\UseIndex{gen}\protect#1>##2=\UseIndex{gen}#6{##2}}% +% \IndexSeeAt[#1]{##2}{gen}{#3}{#4}{#6}% +% \Index[##1]{#1=\UseIndex{gen}\protect#1>##2=\UseIndex{gen}#6{##2}}% \IndexSeeAt[#1]{##2}{#5}{#3}{#4}{#6}% \Index[##1]{##2 (#1)=\UseIndex{#3}#6{##2} (\protect #1)}% }% diff --git a/Master/texmf-dist/source/latex/koma-script/doc/scrguide.gst b/Master/texmf-dist/source/latex/koma-script/doc/scrguide.gst index 2db49891291..f21904a24ac 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/scrguide.gst +++ b/Master/texmf-dist/source/latex/koma-script/doc/scrguide.gst @@ -1,6 +1,6 @@ % ====================================================================== % scrguide.gst -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrguide.gst -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/scrguide.ist b/Master/texmf-dist/source/latex/koma-script/doc/scrguide.ist index 087764eb3e7..dbc4670b327 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/scrguide.ist +++ b/Master/texmf-dist/source/latex/koma-script/doc/scrguide.ist @@ -1,6 +1,6 @@ % ---------------------------------------------------------------------- % scrguide.ist -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrguide.ist -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/japanlco.dtx b/Master/texmf-dist/source/latex/koma-script/japanlco.dtx index 1efa0e57797..9bd81fcaa15 100644 --- a/Master/texmf-dist/source/latex/koma-script/japanlco.dtx +++ b/Master/texmf-dist/source/latex/koma-script/japanlco.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % japanlco.dtx -% Copyright (c) Markus Kohm, 2007 +% Copyright (c) Markus Kohm, 2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % japanlco.dtx -% Copyright (c) Markus Kohm, 2007 +% Copyright (c) Markus Kohm, 2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scraddr.dtx b/Master/texmf-dist/source/latex/koma-script/scraddr.dtx index 3488133c419..f6236b07ef4 100644 --- a/Master/texmf-dist/source/latex/koma-script/scraddr.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scraddr.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % scraddr.dtx -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scraddr.dtx -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scraddr.ins b/Master/texmf-dist/source/latex/koma-script/scraddr.ins index 3800ba4e603..2b4d65218b8 100644 --- a/Master/texmf-dist/source/latex/koma-script/scraddr.ins +++ b/Master/texmf-dist/source/latex/koma-script/scraddr.ins @@ -1,6 +1,6 @@ % ====================================================================== % scraddr.ins -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scraddr.ins -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scrbeta.dtx b/Master/texmf-dist/source/latex/koma-script/scrbeta.dtx index 09e28ddca53..d14d91c225f 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrbeta.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrbeta.dtx @@ -1,8 +1,8 @@ -% \CheckSum{9} +% \CheckSum{19} % \iffalse meta-comment % ====================================================================== % scrbeta.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrbeta.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrbeta.dtx %<*driver> % \fi -\ProvidesFile{scrbeta.dtx}[2007/09/25 v1.1 KOMA-Script (beta warning)] +\ProvidesFile{scrbeta.dtx}[2008/05/01 v3.00 KOMA-Script (beta warning)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english]{babel} @@ -96,7 +96,7 @@ %% YOU SHOULD NOT USE THIS VERSION! %% YOU SHOULD NOT DISTRIBUTE THIS VERSION! %% YOU SHOULD INSTALL, USE AND DISTRIBUTE ONLY RELEASES OF KOMA-SCRIPT! -%% YOU MAY GET CURRENT RELEASE OF KOMA-SCRIPT FROM CTAN! +%% YOU MAY GET CURRENT RELEASE OF KOMA-SCRIPT FROM CTAN OR BERLIOS! %% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! % \end{macrocode} % @@ -105,10 +105,22 @@ % \begin{macrocode} %<class>\ClassWarningNoLine{% %<package>\PackageWarningNoLine{% +%<*clo> +\providecommand*{\CLOWarning}[2]{% + \GenericWarning{% + (#1)\@spaces\@spaces\@spaces\@spaces\@spaces + }{% + Option File #1 Warning: #2\@gobble% + }% +} +\CLOWarning{% +%</clo> %<lco>\LCOWarningNoLine{% % \end{macrocode} % Now, we need to show the file. % \begin{macrocode} +%<extend> scrextend% +%<scrbase> scrbase% %<scrkbase> scrkbase% %<book> scrbook% %<report> scrreprt% @@ -122,6 +134,7 @@ %<scrtime> scrtime% %<scrdate> scrdate% %<scraddr> scraddr% +%<tocbasic> tocbasic% %<DIN> DIN% %<DINmoretext> DINmtext% %<SN> SN% @@ -130,14 +143,17 @@ %<KOMAold> KOMAold% %<scrxfloat> scrxfloat% %<tocstyle> tocstyle% +%<10pt> scrsize10pt.clo% +%<11pt> scrsize11pt.clo% +%<12pt> scrsize12pt.clo% }{% THIS IS A BETA VERSION!\MessageBreak YOU SHOULD NOT USE THIS VERSION!\MessageBreak YOU SHOULD NOT DISTRIBUTE THIS VERSION!\MessageBreak YOU SHOULD INSTALL, USE AND DISTRIBUTE\MessageBreak ONLY RELEASES OF KOMA-SCRIPT!\MessageBreak - YOU MAY GET CURRENT RELEASE OF KOMA-SCRIPT\MessageBreak - FROM CTAN% + YOU MAY GET CURRENT RELEASE OF\MessageBreak + KOMA-SCRIPT FROM CTAN OR BERLIOS% } % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/koma-script/scrdoc.dtx b/Master/texmf-dist/source/latex/koma-script/scrdoc.dtx index df50594a97a..aaf384edefc 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrdoc.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrdoc.dtx @@ -1,6 +1,6 @@ % ====================================================================== % scrdoc.dtx -% Copyright (C) 2002-2007 Markus Kohm +% Copyright (C) 2002-2008 Markus Kohm % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrdoc.dtx -% Copyright (C) 2002-2007 Markus Kohm +% Copyright (C) 2002-2008 Markus Kohm % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scrextend.dtx b/Master/texmf-dist/source/latex/koma-script/scrextend.dtx new file mode 100644 index 00000000000..e8af790048f --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrextend.dtx @@ -0,0 +1,206 @@ +% \CheckSum{57} +% \iffalse meta-comment +% ====================================================================== +% scrextend.dtx +% Copyright (c) Markus Kohm, 2002-2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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. +% ---------------------------------------------------------------------- +% scrextend.dtx +% Copyright (c) Markus Kohm, 2002-2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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: scrextend.dtx +%<*driver> +% \fi +\ProvidesFile{scrextend.dtx}[2008/05/01 v2.98c KOMA-Script + (extend other classes)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrextend.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{v3.00}{2008/05/01}{neues Paket} +% +% \section{Erweiterungen für andere Klassen} +% +% Dieses Paket dient dazu, einige Möglichkeiten von \KOMAScript{} auch anderen +% Klassen zur Verfügung zustellen. Dafür darf dieses Paket nicht mit einer +% \KOMAScript-Klasse verwendet werden. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*prepare> +% \fi +% +% \subsection{Vorbereitung vor den Optionen} +% +% Die Vorbereitung ist einfach. Es wird nur getestet, ob bereits eine +% \KOMAScript-Klasse geladen ist. Falls dem so ist, wird eine Warnung +% ausgegeben und dafür gesorgt, dass das Paket nicht weiter abgearbeitet wird. +% +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname KOMAClassName\endcsname\relax\else + \PackageWarning{scrextend}{% + This package was made to extend other classes but\MessageBreak + KOMA-Script classes by some features of the\MessageBreak + KOMA-Script classes.\MessageBreak + It should never be used with a KOMA-Script class.\MessageBreak + Loading of the package will be aborted\@gobble% + }% + \expandafter\endinput +\fi +% \end{macrocode} +% +% \begin{macro}{\scr@ext@activate} +% \begin{macro}{\scr@ext@activateable} +% \begin{sloppypar} +% Einige Dinge werden nur dann definiert, wenn dies gefordert ist. Dazu werden +% die entsprechenden Definitionen in das zweite Argument von +% \cs{scr@ext@activateable}\marg{Kürzel} gepackt, wodurch sie als +% \cs{scr@ext@activate@}\meta{Kürzel} definiert werden, und anschließend +% \cs{csname}~\texttt{scr@ext@immediate@}\meta{Kürzel}\cs{endcsname} +% ausgeführt. Um das dann zu aktivieren wird +% \cs{scr@ext@activate}\marg{Kürzel} aufgerufen (beispielsweise innerhalb +% einer Option). Mit \cs{scr@ext@addto@activateable} können Aktivierungen +% entsprechend um weitere Definitionen erweitert werden. +% \end{sloppypar} +% \begin{macrocode} +\newcommand*{\scr@ext@activate}[1]{% + \scr@ifundefinedorrelax{scr@ext@activate@#1}{% + \@namedef{scr@ext@immediate@#1}{% + \expandafter\let\csname scr@ext@immediate@#1\endcsname\relax + \csname scr@ext@activate@#1\endcsname + }% + }{% + \csname scr@ext@activate@#1\endcsname + \expandafter\let\csname scr@ext@activate@#1\endcsname\relax + }% +} +\newcommand*{\scr@ext@activateable}[1]{% + \expandafter\newcommand\expandafter*\csname scr@ext@activate@#1\endcsname +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \iffalse +%</prepare> +%<*option> +% \fi +% +% \subsection{Optionen} +% +% Das Paket kennt eine universelle Option, um aktivierbare Möglichkeiten zu +% aktivieren. Diese Option steht aber nur während dem Laden des Pakets zur +% Verfügung! +% +% \begin{option}{extendedfeature} +% \begin{macrocode} +\KOMA@key{extendedfeature}{% + \scr@ext@activate{#1}% + \AtEndOfPackage{% + \scr@ifundefinedorrelax{scr@ext@immediate@#1}{}{% + \PackageErrorNoLine{unkown extended feature `#1'}{% + You have used option `extendedfeature' to activate an extended feature + named\MessageBreak + `#1', but there is no such extended feature.\MessageBreak + See the KOMA-Script manual for more infromation about known + activatable\MessageBreak + extended features% + }% + }% + }% +} +\AtEndOfPackage{% + \KOMA@key{extendedfeature}{% + \PackageError{scrextend}{% + Option `extendedfeature' too late% + }{% + Option `extendedfeature' my be used only while loading the + package.\MessageBreak + But you've tried to set it up later% + }% + }% +} +% \end{macrocode} +% \end{option} +% +% \iffalse +%</option> +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrextend.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrjura.dtx b/Master/texmf-dist/source/latex/koma-script/scrjura.dtx new file mode 100644 index 00000000000..b6be929fe1f --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrjura.dtx @@ -0,0 +1,1306 @@ +% \CheckSum{938} +% \iffalse meta-comment +% scrjura.sty +% +% Copyright (c) Markus Kohm, 2007-2008 +% This is a alpha verion, therefor: All rights reserved. +% +% Dieses Paket geht auf eine Anregung von cookie170 zurück. +% \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: scrjura.dtx +%<*dtx> +\def\LaTeXformat{LaTeX2e} +\ifx\fmtname\LaTeXformat\def\MainBodyWork{% +\ProvidesFile{scrjura.dtx} +%</dtx> +%<package>\NeedsTeXFormat{LaTeX2e}[1995/06/01] +%<driver>\ProvidesFile{scrjura.drv} +%<package>\ProvidesPackage{scrjura} +%<*dtx|package|driver> + [2008/01/23 v0.4b alpha +%</dtx|package|driver> +%<driver> (driver)% +%<package> (package)% +%<*dtx> + (dtx)% +%</dtx> +%<*dtx|package|driver> + ] +%</dtx|package|driver> +%<*dtx|driver> +\IfFileExists{scrdoc.cls}{% + \documentclass[halfparskip-]{scrdoc} +}{% + \documentclass{ltxdoc} +} +\providecommand*{\DescribeOption}{\DescribeMacro} +\providecommand*{\DescribeCounter}{\DescribeMacro} +\usepackage[latin1]{inputenc} +\usepackage[ngerman]{babel} +\IfFileExists{scrjura.sty}{% + \usepackage{scrjura} +}{} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrjura.dtx} +\DocInput{\filename} +\end{document} +%</dtx|driver> +%<*dtx> +}\else\let\MainBodyWork\relax\fi + +\MainBodyWork + +\def\batchfile{scrjura.dtx} +%</dtx> +%<ins>\def\batchfile{scrjura.ins} +%<*dtx|ins> +\input docstrip.tex + +\let\ifbeta=\iffalse + +\ifToplevel{\ifx\generate\undefined + \errhelp{Install a new version of docstrip.} + \errmessage{Old docstrip in input path} + \batchmode + \csname @@end\endcsname + \fi + \Msg{************************************************************} + \Msg{*} + \Msg{* KOMA-Script} + \Msg{* a versatile LaTeX2e bundle} + \Msg{*} + \Msg{* This is `\batchfile', a batchfile to unpack some or all} + \Msg{* parts of KOMA-Script. See `liesmich.txt' (german) or} + \Msg{* `readme.txt' (english) for additional information.} + \Msg{*} + \Msg{* If some - maybe old - files of KOMA-Script are already} + \Msg{* installed, you will be ask, if it is allowed to overwrite} + \Msg{* them. Answering `yes' doesn't mean, that `\batchfile'} + \Msg{* WILL overwrite such files. It means only, that} + \Msg{* `\batchfile' or installation MAY overwrite them.} + \Msg{*} + \Msg{************************************************************} +} + +% ---------- some docstrip switchs ------------------------------------- + +\ifToplevel{% + \keepsilent + \askforoverwritefalse + \ifx\askonceonly\undefined\else\askonceonly\fi +} + +% ---------- defining preambles ---------------------------------------- + +\preamble + +Copyright (c) 2007-2008 +Markus Kohm and any individual authors listed elsewhere in this file. + +This file was generated from file(s) of the KOMA-Script bundle. +--------------------------------------------------------------- + +This work may be distributed and/or modified under the conditions of +the LaTeX Project Public License, version 1.3b of the license. +The latest version of this license is in + http://www.latex-project.org/lppl.txt +and version 1.3b 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 file may only be distributed together with the files +`scrlogo.dtx' and `scrjura.dtx'. You may however distribute the files +`scrlogo.dtx' and `scrjura.dtx' without this file. +See also `scrjura.dtx' for additional information. + +If this file is a beta version, you are not allowed to distribute it. + +Currently there is only a short german manual at `scrjura.dtx', that +should also be found as `scrjura.pdf'. + +The KOMA-Script bundle (but maybe not this file) was based upon the +LaTeX2.09 Script family created by Frank Neukam 1993 and the LaTeX2e +standard classes created by The LaTeX3 Project 1994-1996. + +\endpreamble + +% ---------- File generation ------------------------------------------- + +\generate{\usepreamble\defaultpreamble + \file{scrjura.ins}{% + \from{scrjura.dtx}{ins}% + }% +% \file{scrjura.drv}{% +% \from{scrjura.dtx}{driver}% +% }% + \file{scrjura.sty}{% + \from{scrjura.dtx}{package}% + \from{scrlogo.dtx}{logo}% + }% +}% + +% ---------- end of docstrip process ----------------------------------- + +\ifToplevel{% + \Msg{************************************************************} + \Msg{*} + \Msg{* KOMA-Script} + \Msg{* a versatile LaTeX2e bundle} + \Msg{*} + \ifbeta + \Msg{* THIS IS AN ALPHA VERSION. YOU SHOULD NOT INSTALL OR USE IT!} + \Msg{* THERE MAY BE A LOT OF BUGS AT THIS VERSION!} +% \Msg{* PLEASE INSTALL THE RELEASE YOU CAN FIND AT CTAN!} + \else + \Msg{* To finish the installation you have to move some} + \Msg{* files into a directory searched by TeX.} + \Msg{* See INSTALL.TXT (english) or INSTALLD.TXT (german)} + \Msg{* from KOMA-Script bundle for additional information.} + \Msg{*} + \Msg{* You may also produce the implementation documentation} + \Msg{* including also a short version of the english manual.} + \Msg{* To produce it, do} + \Msg{* \space\space pdflatex scrjura.dtx} + \Msg{* \space\space mkindex scrjura} + \Msg{* \space\space pdflatex scrjura.dtx} + \Msg{* after finishing the installation.} + \Msg{*} + \Msg{* Happy TeXing} + \fi + \Msg{*} + \Msg{************************************************************} +} + +\bye +%</dtx|ins> +% \fi +% +% \title{\KOMAScript{} \partname\ \texttt{\filename}% +% \thanks{Diese Datei ist Version \fileversion\ von \texttt{\filename}.}} +% \date{\filedate} +% \author{Markus Kohm\thanks{Paketautor, mailto:komascript(at)gmx.info}\and +% Dr.\,Alexander +% Willand\thanks{Autor der Anleitung}} +% \begin{document} +% \maketitle +% \begin{abstract} +% Das scrjura-Paket ist für die Kautelarjurisprudenz gedacht. Es soll für +% Anwälte und Notare eine flexible Hilfe bei der Abfassung von Verträgen, +% Satzungen und juristischen Kommentaren bieten. Es ist in Zusammenarbeit +% mit Dr.\,Alexander Willand entstanden, bzw. noch immer in Entstehung +% begriffen. +% \end{abstract} +% +% \tableofcontents +% +% \section{Rechtlicher Hinweis} +% Dieser Teil von \KOMAScript{} darf ohne die restlichen Teile von +% \KOMAScript{} verteilt werden. Dazu dürfen die Dateien +% »\texttt{scrlogo.dtx}« und »\texttt{scrjura.dtx}« unter den Bedingungen der +% \LaTeX{} Project Public License, wahlweise Version 1.3b oder (nach Ihrer +% Entscheidung) jede spätere Version, verteilt und verändert werden. Die +% aktuelle Version dieser Lizenz ist unter +% \mbox{http://www.latex-project.org/lppl.txt} zu finden und Version~1.3b oder +% neuer ist Teil von \LaTeX{} Version 2005/12/01 oder neuer. Es ist nicht +% gestattet die Datei »\texttt{scrjura.dtx}« ohne die Datei +% »\texttt{scrlogo.dtx}« zu verteilen. Eine Verteilung ist nur zusammen +% gestattet. +% +% Zu \KOMAScript{} existiert eine ausführliche Anleitung in Deutsch und +% Englisch. Die Anleitung zum Paket \textsf{scrjura} existiert derzeit jedoch +% nur in dieser deutschen Kurzform. +% +% Das komplette \KOMAScript-Paket ist unter +% CTAN:/\mbox{macros}/""\mbox{latex}/""\mbox{contrib}/""\mbox{koma-script}/ zu +% finden, wobei »CTAN:« ein abkürzendes Synonym für das Verzeichnos +% »tex-archive« jedes CTAN-Servers oder -Spiegels, beispielsweise +% \mbox{ftp://ftp.dante.de/tex-archive/} darstellt. Siehe +% \mbox{http://www.ctan.org} für eine Liste aller CTAN-Server und -Spiegel. +% +% \section{Das Paket »scrjura«} +% \subsection{Überblick} +% Das Paket \textsf{scrjura} ist in erster Linie für den Satz von +% Verträgen gedacht. +% Über eine Reihe von Optionen kann die Wirkung des Pakets +% verändert werden. Innerhalb von Verträgen steht eine Reihe von Befehlen zur +% Verfügung. +% +% Wer juristische Dokumente verfasst, steht oft unter hohem +% Zeitdruck. Überraschende Fehlermeldungen von \LaTeXe{} kann man da nicht +% brauchen. Erfreulicherweise setzt \textsf{scrjura} lediglich das keyval"=Paket voraus. +% +% \textsf{scrjura} bietet zwei Modi: +% \begin{enumerate} +% \item den \glqq Vertragsmodus": das gesamte Dokument wird als Vertrag +% gesetzt; +% \item den \glqq Umgebungsmodus": Nur der Text innerhalb der +% |contract|"=Umgebung wird als Vertrag gesetzt. +% \end{enumerate} +% Der \emph{Vertragsmodus} wird durch die Option |contract| beim Laden des +% Pakets dauerhaft eingeschaltet. Also: Mit |\usepackage[contract]{scrjura}| +% wird Text nach |\begin{document}| als Vertrag gesetzt. Der +% \emph{Umgebungsmodus} wird dagegen wie jede andere Umgebung mit +% |\begin{contract}| begonnen und ist entsprechend mit |\end{contract}| zu +% beenden. Beide Modi können nicht im gleichen Dokument verwendet werden. +% +% Ein Inhaltsverzeichnis wird wie üblich mit |\tableofcontents| erzeugt und +% enthält -- neben etwaigen anderen Überschriften -- auch alle +% Paragraphentitel, sofern |scrjura| mit der Option |juratotoc| geladen +% wurde. Automatische Kolumnentitel sind ebenfalls möglich. +% +% Jeder Paragraph hat einen Titel, z.\,B.: |\Paragraph{title=Besitz}|. Die +% Nummerierung der Paragraphen erfolgt automatisch, kann aber auch manuell +% vorgenommen werden. +% +% Enthält ein Paragraph mehr als einen Absatz, werden alle Absätze automatisch +% nummeriert. Die Nummerierung kann fallweise abgeschaltet werden. Es ist +% darüber hinaus möglich, die Sätze eines Absatzes nummerieren zu lassen. +% +% Paragraphen, Absätze und Sätze können referenziert werden. Bei Absätzen +% besteht die Wahl, wie die Ausgabe erfolgt; es ist sowohl möglich, +% beispielsweise "`§ 16 Absatz 3 Satz 1"' als auch "`§ 16 III 1"' als Ausgabe +% zu erhalten. +% +% \textsf{scrjura} unterstützt das |hyperref|"=Paket, ist damit aber hier noch nicht ausfürlich +% getestet worden. Wie immer, wird |hyperref| zuletzt geladen. Andernfalls gibt es faszinierende +% Fehlermeldungen. Wird |hyperref| wieder entfernt, muss die *.aux-Datei gelöscht werden. +% +% \subsection{Die Optionen beim Laden des Pakets} +% +% \DescribeOption{contract}% +% Die Option \texttt{contract} sorgt dafür, dass das gesamte Dokument als +% Vertrag interpretiert wird. Innerhalb des Dokuments ist dann keine weitere +% Vertragsumgebung zu verwenden. Dasselbe Verhalten kann erreicht werden, +% indem unmittelbar nach |\begin{document}| eine \texttt{contract}-Umgebung +% begonnen und unmittelbar vor |\end{document}| wieder beendet wird. +% +% \DescribeOption{juratotoc}% +% \DescribeCounter{juratoclevel}% +% Die Option \texttt{juratotoc} sorgt dafür, dass die Paragraphen in das +% Inhaltsverzeichnis eingetragen werden. Dabei wird in der Voreinstellung die +% Gliederungstiefe 2 für diese Einträge verwendet. Über den Zähler +% |juratoclevel| kann auch eine andere Gliederungstiefe vorgegeben werden. Das +% Paket greift hier auf die Routinen von \LaTeX{} zur Erstellung eines +% Inhaltsverzeichnisses zurück. Bei dreistelligen Paragraphennummern kann im +% Inhaltsverzeichnis die Nummer in den Überschriftstext hineinragen. +% +% Die einfachste Abhilfe gegen diesen Fehler besteht darin, die Box mit der Gliederungsnummer zu +% verbreitern, beispielsweise mit +% +% |\renewcommand{\numberline}[1]{\makebox[6em][l]{#1}}|. +% +% Die Breite der Box lässt den jeweiligen Gegebenheiten anpassen. +% +% Eine andere Abhilfe bei der Verwendung einer Komascript"=Klasse besteht +% darin, die Option |tocleft| zu verwenden. Zuletzt kann man +% selbstverständlich auf die verschiedenen Pakete zurückgreifen, mit denen +% sich das Inhaltsverzeichnis anpassen lässt. Den Gewinn an Möglichkeiten +% erkauft man sich allerdings mit einem erhöhten Risiko, dass Fehler +% auftreten. +% +% Im deutschen Recht werden \textit{Absätze} in Normen zwar arabisch nummeriert, +% aber mit römischen Nummern referenziert. +% \DescribeOption{parcitename}% +% Mit der Option \texttt{parcitename} kann dafür gesorgt werden, dass +% \textsf{scrjura} Absätze anders, nämlich in der Form |\parname~|\meta{Nummer} referenziert. +% +% \DescribeOption{sentencecitename}% +% Normalerweise werden \textit{Sätze} mit arabischen Nummern gezählt und referenziert. Es kann +% jedoch mit der Option \texttt{sentencecitename} auch dafür gesorgt werden, +% dass sie in der Form |\sentencename~|\meta{Nummer} referenziert werden. +% +% +% \subsection{Der Paragraph} +% \label{sec:paragraph} +% \textsf{scrjura} führt zwei Gliederungsebenen ein: Paragraph und +% Subparagraph. Selbstverständlich funktioniert deren im folgenden +% beschriebene Befehle im \textit{Umgebungsmodus} nur innerhalb der +% Vertragsumgebung. +% +% \DescribeMacro{\Paragraph}% +% Für die Paragraphenüberschrift stehen verschiedene optionale Argumente zur +% Verfügung, die -- ungewohnterweise -- in einer durch Kommata zu trennenden +% key=value-Liste angegeben werden: +% +% \bigskip\renewcommand{\arraystretch}{1.3} +% \begin{tabular}{lp{0.4\linewidth}l}\hline +% Eintrag & Erklärung & Eintrag unterdrücken\\\hline +% |title = <Titel>| & Titel des Paragraphen & |dummy|\\ +% |head =| \dots & Kolumnentitel des Paragraphen & |nohead|\\ +% |entry =| \dots & Eintrag im Inhaltsverzeichnis& |noentry|\\ +% |number=| \dots & die Paragraphennummer & -\\ +% \end{tabular}\bigskip +% +% Beispiele: |\Paragraph{title=Gattungsschuld, number=244}| gibt "`§ 244 +% Gattungsschuld"' aus. |\Paragraph{title=Gattungsschuld}| als erster +% Paragraph gibt "`§ 1 Gattungsschuld"' aus, während |\Paragraph{}| an +% gleicher Stelle zu "`§ 1"' führt, also einer Paragraphenzählung ohne Titel. +% +% Will man aber beginnend von beispielsweise § 244 an eine Reihe von +% Paragraphen setzen, empfiehlt es sich nicht, die Option |number=| zu +% verwenden, denn die Option lässt den Zähler |Paragraph| unberührt. Will man +% nicht alle Paragraphen per Hand nummerieren, kann mit +% |\setcounter{Paragraph}{243}| der Startpunkt für eine automatische Zählung +% gesetzt werden. Bei |\SubParagraph| ist der Zähler natürlich mit einer +% arabischen Zahl anzugeben, auch wenn die Ausgabe dann in Kleinbuchstaben +% erfolgt. +% +% +% \DescribeMacro{\SubParagraph}% +% Sofern ein Paragraph eingeschoben werden soll, kann dieses Makro verwendet +% werden, es verhält sich im übrigen wie |\Paragraph|. Die Nummerierung fügt +% der zuletzt verwendeten Paragraphennummer einen Kleinbuchstaben hinzu. +% +% Die Nummerierung für |\SubParagraph| erfolgt in \textsf{scrjura.sty} über +% folgende Definition: +% +% |\renewcommand*{\thecontractSubParagraph}{%|\\ +% |{\theParagraph\alph{contractSubParagraph}}}| +% +% Wer zwischen Paragraphenzahl und dem Kleinbuchstaben einen Abstand wünscht, +% sowie nach dem Kleinbuchstaben eine runde Klammer, kann in die Präambel also +% einfügen: +% +% |\renewcommand*{\thecontractSubParagraph}{%|\\ +% |{\theParagraph~\alph{contractSubParagraph})}}|. +% +% \DescribeOption{preskip}% +% \DescribeOption{postskip}% +% Abstände vor und nach der Paragraphen-Überschrift können derzeit über +% |\setkeys{contract}{preskip=|\dots|, postskip=|\dots|}| gesetzt werden. +% +% Es ist möglich, einen Vertrag in Abschnitte zu unterteilen unter Verwendung +% z.\,B. von |\section{}|. Allerdings muss entweder vorher die +% contract"=Umgebung beendet und danach fortgesetzt werden (die +% Paragraphenzählung wird dadurch nicht zurückgesetzt), oder man setzt davor +% ein |\parnumberfalse| und danach ein |\parnumbertrue|. Vergisst man dies, +% wird der Abschnitt zum ersten als Paragraphenabsatz und dann als Abschnitt +% nummeriert. +% +% \subsection{Kolumnentitel} +% Bei langen Verträgen können automatische Kolumnentitel hilfreich +% sein. Allerdings hängt die Ausgabe hier davon ab, wie die diese erzeugt +% werden. \DescribeOption{markboth}% +% \DescribeOption{markright}% +% \textsf{scrjura} unterstützt diese \LaTeXe"=Befehle sowie die darauf +% aufbauenden |\rightmark| und |\leftmark|. Mit dem Paket |scrpage2| könnte +% beispielsweise in der Präambel angegeben werden +% +% |\usepackage[juratotoc, markboth]{scrjura}|\\ +% |\usepackage[automark]{scrpage2}|\\ +% |\pagestyle{scrheadings}|\\ +% |\ihead{\rightmark}|\\ +% |\chead{}|\\ +% |\ohead{\leftmark}|\\ +% +% \DescribeMacro{\Paragraphmark}% +% Hiermit können -- ähnlich wie bei |\chaptermark{}| -- Kolumnentitel per Hand +% gesetzt werden. +% +% \subsection{Verweise} +% \label{sec:referenzierung} +% \textsf{scrjura} verfügt über einige sehr praktische Möglichkeiten, sich im +% Vertragstext auf andere Paragraphen, Absätze und Sätze zu beziehen: +% \begin{itemize} +% \item |\ref{}| (in der Klammer ist jeweils das Label anzugeben) +% verweist in der Form Paragraph Absatz Satz (z.\,B. § 2 III 1) auf die +% genaue Stelle des Labels |\label{}|. +% \item |\refParagraph{}| druckt nur den Paragraphen, +% \item |\refPar{}| druckt nur den Absatz und +% \item |\refSentence{}| nur den Satz. +% \end{itemize} +% +% Daraus kann man problemlos Anweisungen wie: +% +% |\newcommand*{\refPARabs}[1]{\refParagraph{#1}~\refPar{#1}}| \\ +% ableiten. |\refPARabs{}| würde die Stelle des Labels mit Paragraph und +% Absatz beschreiben. + +% \subsection{Absatz- und Satznummerierung} +% \label{sec:abs-u-satznummerierung} +% \DescribeMacro{\parnumbertrue}% +% \DescribeMacro{\parnumberfalse}% +% Absätze in Paragraphen werden automatisch nummeriert. Mit |\parnumberfalse| +% kann die Nummerierung ab- und mit |\parnumbertrue| wieder eingeschaltet +% werden. +% +% \DescribeMacro{\Sentence} Auch alle einzelnen Sätze eines Absatzes können +% durch eine hochgestellte Ziffer nummeriert werden. Allerdings kann dies +% nicht automatisch geschehen. Am einfachsten gestaltet sich die +% Satznummerierung unter Zuhilfenahme des Befehls |\useshorthands| aus dem +% ohnehin bei deutschen Texten notwendigen babel"=Paket: +% +% \begin{verbatim} +% \usepackage[...]{babel} +% \useshorthands{'} +% \defineshorthand{'S}{\Sentence\ignorespaces} +% \defineshorthand{'.}{. \Sentence\ignorespaces} +% \end{verbatim} +% +% Die Sätze lassen sich mit einem vorangestellten |'S| nummerieren. Alternativ +% kann der Satzendepunkt apostrophiert gesetzt werden: |'.|, damit wird dann +% der nächste Satz nummeriert. +% % +% \subsection{kile anpassen} +% Bei langen Verträgen ist es sehr hilfreich, die Gliederung und die Paragraphentitel +% auf dem Bildschirm einblenden zu können. Wer kile als Editor verwendet, +% der kann sich -- Open Source sei Dank! -- selbst helfen. Bei Version 2.0.0 +% von kile genügt es, in der Datei |kiledocumentinfo.cpp| an geeigneter Stelle +% zwei Zeilen einzufügen: +% \begin{verbatim} +% m_dictStructLevel["\\Paragraph"]= +% KileStructData(5, KileStruct::Sect, "Paragraph"); +% +% m_dictStructLevel["\\SubParagraph"]= +% KileStructData(6, KileStruct::Sect, "SubParagraph"); +% \end{verbatim} +% (Einzufügen ohne Zeilenumbruch.) +% +% +% Zahlen über 7 sind eine schlechte Idee. Nach dem Speichern der Datei folgt der übliche +% Dreisprung: configure, make, make install (oder checkinstall \dots). kile zeigt danach +% Paragraphen und »Unterparagraphen« als Dokumentenstruktur an. Vielleicht +% findet ein Anwender ja heraus, wie dies mit tecniccenter zu bewerkstelligen ist. +% +% \subsection{Sonstiges} +%\label{sec:else} +% +% +% \DescribeMacro{\parname}% +% \DescribeMacro{\sentencename}% +% Sprachabhängiger Name von Absatz und Satz. +% +% \DescribeMacro{\thecontractParagraph}% +% \DescribeMacro{\thecontractSubParagraph}% +% Ausgabe der automatischen Zähler für Paragraph und eingeschobener Paragraph +% bei Verträgen. +% +% \DescribeMacro{\AutoPar}% +% \DescribeMacro{\ManualPar}% +% \DescribeMacro{\Par}% +% Automatische und manuelle Absatznummerierung. +% +% +% \DescribeMacro{\ifparnumber}% +% \DescribeMacro{\parnumbertrue}% +% \DescribeMacro{\parnumberfalse}% +% Absatznummern ein- und ausschalten. +% +% \DescribeCounter{par}% +% \DescribeMacro{\thepar}% +% \DescribeMacro{\parformat}% +% \DescribeMacro{\parciteformat}% +% Zähler für die Absatznummern und dessen Ausgabe und Formatierung und +% Formatierung der Referenz. ACHTUNG: |\thepar| muss bei unverändertem +% |\parciteformat| eine arabische Zahl sein! +% +% \DescribeMacro{\refParagraph}% +% So etwas wie |\ref| nur für den Paragraphen. +% +% \DescribeMacro{\refPar}% +% So etwas wie |\ref| nur für den Absatz. +% +% \DescribeMacro{\refSentence}% +% So etwas wie |\ref| nur für den Satz. +% +% \DescribeCounter{sentence}% +% \DescribeMacro{\thesentence}% +% \DescribeMacro{\sentenceciteformat}% +% Zähler für die Satznummer und dessen Ausgabe, sowie Formatierung der +% Referenz. ACHTUNG: |\thesentence| muss bei unverändertem +% |\sentenceciteformat| eine arabische Zahl sein! +% +% \DescribeMacro{\newmaxpar}% +% \DescribeMacro{\getmaxpar}% +% Werden intern verwendet und müssen deshalb allenfalls für Paketautoren +% dokumentiert werden. +% +% \section{Bekannte Probleme} +% +% Automatische Absatznummerierung kann gestört werden. Paket \textsf{hyperref} +% darf nicht vor \textsf{scrjura} geladen werden. Noch nicht alles +% implementiert. Kein Support, da Alpha-Version. +% +% +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \section{Implementierung} +% +% \iffalse +%<*package> +% \fi +% +% \begin{macrocode} +\@ifpackageloaded{hyperref}{% + \PackageError{scrjura}{Package hyperref already loaded}{% + If you want to use package scrjura with package hyperref, you have to + use\MessageBreak + package scrjura before package hyperref.\MessageBreak + To solve the problem, you just should move the loading of package + hyperref\MessageBreak + behind the loading of package scrjura.}% +} +% \end{macrocode} +% +% \begin{option}{contract} +% Mit der Option |contract| wird das gesamte Dokument zu einem Vertrag. Man +% darf dann keine der von diesem Paket bereit gestellten Umgebungen mehr +% innerhalb des Dokuments verwenden! Realisiert wird dies, indem ganz am +% Ende von |\begin{document}| noch |\contract| ausgeführt wird. +% \begin{macrocode} +\DeclareOption{contract}{% + \g@addto@macro\document\contract% +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{juratotoc} +% Mit dieser Option wird der Schalter |\if@juratotoc| auf |\iftrue| gesetzt. +% \begin{macro}{\if@juratotoc} +% Mit dem Schalter wiederum wird erreicht, dass Paragraphen in das +% Inhaltsverzeichnis ausgenommen werden. +% \begin{macrocode} +\newif\if@juratotoc +\DeclareOption{juratotoc}{\@juratotoctrue} +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{option}{markright} +% \begin{option}{markboth} +% \begin{macro}{\Paragraphmark} +% Mit diesen Optionen wird |\Paragraphmark| so umdefiniert, dass es entweder +% ein |\markright| oder ein |\markboth| ausführt. Im Gegensatz zu +% |\chaptermark| etc. erwartet |\Paragraphmark| neben dem Titel auch noch +% die zu verwendende Nummer (das könnte bei Bedarf noch geändert werden!) +% \begin{macrocode} +\newcommand*{\Paragraphmark}[1]{} +\DeclareOption{markright}{% + \renewcommand*{\Paragraphmark}[1]{\markright{#1}}% +} +\DeclareOption{markboth}{% + \renewcommand*{\Paragraphmark}[1]{\markboth{#1}{#1}}% +} +% \end{macrocode} +% \end{macro} +% \end{option} +% \end{option} +% +% \begin{option}{parcitename} +% \begin{option}{sentencecitename} +% In der Voreinstellung werden die Absätze über römische Zahlen zitiert. Man +% kann sie aber auch über den Namen zitieren, also in der Form »Absatz 3« +% statt »III«. Das gleiche gibt es dann auch noch für Sätze. +% \begin{macrocode} +\DeclareOption{parcitename}{% + \AtEndOfPackage{\renewcommand*{\parciteformat}[1]{\parname~#1}}% +} +\DeclareOption{sentencecitename}{% + \AtEndOfPackage{\renewcommand*{\sentenceciteformat}[1]{\sentencename~#1}}% +} +% \end{macrocode} +% \end{option} +% \end{option} +% +% Optionen ausführen. +% \begin{macrocode} +\ProcessOptions\relax +% \end{macrocode} +% +% Es wird das Paket \textsf{keyval} benötigt, weil alles weitere darauf +% aufbaut. +% \begin{macrocode} +\RequirePackage{keyval} +% \end{macrocode} +% +% \begin{environment}{contract} +% \begin{macro}{\contract} +% Die Umgebung \texttt{contract} wird als Anweisung \cs{contract} +% definiert. Nichts desto trotz handelt es sich dabei um eine Umgebung und +% sollte sie immer als Umgebung verwendet werden! +% Die Umgebung kann nicht geschachtelt werden. Sie darf aber enden und dann +% erneut verwendet werden. Die Paragraphen werden jedoch über alle Verträge +% hinweg nummeriert. Das Ende eines Vertrags ist also genau genommen nur eine +% Unterbrechung. +% \begin{macrocode} +\newcommand*{\contract}{% + \renewcommand*{\contract}{% + \contract@nest@error{contract}% + }% + \let\@doendpe\contract@doendpe + \let\Paragraph\contract@paragraph + \let\c@Paragraph\c@contractParagraph + \edef\cl@Paragraph{\cl@Paragraph\cl@contractParagraph}% + \let\SubParagraph\contract@subparagraph + \let\c@SubParagraph\c@contractSubParagraph + \edef\cl@SubParagraph{\cl@SubParagraph\cl@contractSubParagraph}% + \let\Par\contract@everypar + \let\Sentence\contract@sentence +} +\let\if@jura@skiphyperref\iftrue +\let\cl@Paragraph\@empty +\let\cl@SubParagraph\@empty +\newcounter{contractParagraph} +\renewcommand*{\thecontractParagraph}{% + {\S~\arabic{contractParagraph}}} +\newcounter{contractSubParagraph} +\@addtoreset{SubParagraph}{Paragraph} +\renewcommand*{\thecontractSubParagraph}{% + {\theParagraph\alph{contractSubParagraph}}} +% \end{macrocode} +% \end{macro} +% \end{environment} +% +% \begin{macro}{\contract@paragraph} +% Das ist das Macro, das in Verträgen |\Paragraph| zur Verfügung stellt. +% Ein Vertrag besteht aus mehreren Paragraphen. Jeder Paragraph hat einige +% optionale Elemente, die über das keyval-Paket geregelt werden. +% \begin{option}{title} +% \begin{option}{head} +% \begin{option}{entry} +% \begin{option}{nohead} +% \begin{option}{noentry} +% Der Titel, der Kolumnentitel und der Verzeichniseintrag des +% Paragraphen. Der Titel setzt dabei zunächst auch die anderen beiden. Man +% kann die beiden aber auf leer setzen. Insbesondere aber kann man sie mit +% den |no|-Optionen auch abschalten. +% \begin{macrocode} +\define@key{contract}{title}{% + \def\contract@title{#1}% + \ifx\contract@entry\relax\def\contract@entry{\contract@title}\fi + \ifx\contract@head\relax\def\contract@head{\contract@title}\fi +} +\define@key{contract}{entry}{\def\contract@entry{#1}} +\define@key{contract}{noentry}[]{\let\contract@entry\relax} +\define@key{contract}{head}{\def\contract@head{#1}} +\define@key{contract}{nohead}[]{\let\contract@head\relax} +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \begin{option}{number} +% Die Nummer kann mit dieser Option frei gestaltet werden. Es sind jedoch +% keine Paragraphen ohne Nummer erlaubt. Wird keine Nummer angegeben, so +% wird die Nummer automatisch gesetzt. +% \begin{macrocode} +\define@key{contract}{number}{\def\contract@number{#1}} +% \end{macrocode} +% \end{option} +% \begin{macro}{\contract@preskip} +% \begin{macro}{\contract@postskip} +% \begin{option}{preskip} +% \begin{option}{postskip} +% Über diese beiden Optionen kann der Abstand vor und nach einem Pragraphen +% gesetzt werden. Wird nichts angegeben, so wird die globale Voreinstellung +% verwendet, die übrigens mit |\setkeys{contract}{...}| gesetzt werden +% kann. +% \begin{macrocode} +\newcommand*{\contract@preskip}{2\baselineskip} +\newcommand*{\contract@postskip}{\baselineskip} +\define@key{contract}{preskip}{\def\contract@preskip{#1}} +\define@key{contract}{postskip}{\def\contract@postskip{#1}} +% \end{macrocode} +% \end{option} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{option}{dummy} +% Über dies Option wird der Schalter |\ifcontract@dummy| auf |\iftrue| +% gesetzt. +% \begin{macro}{\ifcontract@dummy} +% Ist der Schalter |\iftrue|, dann wird der Paragraph nicht gesetzt. Es ist +% jedoch darauf zu achten, dass Absätze und Sätze des Paragraphen auf diese +% Weise nicht entfernt werden können. Werden jedoch Paragraphen gelöscht, so +% kann man damit das Loch in der Nummerierung erzeugen. +% \begin{macrocode} +\newif\ifcontract@dummy +\define@key{contract}{dummy}[true]{\csname contract@dummy#1\endcsname} +% \end{macrocode} +% \end{macro} +% \end{option} +% \begin{macro}{\contract@paragraph@font} +% Das muss noch auf die Element-Schnittstelle von \KOMAScript{} umgestellt +% werden! +% \begin{macrocode} +\newcommand*{\contract@paragraph@font}{\sffamily\bfseries\large\@hangfrom} +% \end{macrocode} +% \end{macro} +% \begin{Counter}{@AbsParagraph} +% \begin{macro}{\theH@AbsParagraph} +% \begin{macro}{\theHParagraph} +% \begin{macro}{\theHSubParagraph} +% \begin{macrocode} +% \textsf{hyperref}-Code, der noch nicht getestet ist! +\newcounter{@AbsParagraph} +\newcommand*{\theH@AbsParagraph}{P-\arabic{@AbsParagraph}} +\newcommand*{\theHParagraph}{\theH@AbsParagraph} +\newcommand*{\theHSubParagraph}{\theH@AbsParagraph} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{Counter} +% Zunächst wird vorübergehend auf manuelle Absatznummern umgeschaltet, weil +% natürlich innerhalb der Überschrift keine Nummer gesetzt werden +% soll. Trotzdem werden generell die Absatznummern eingeschaltet. Dann werden +% die Optionen initialisiert und ausgeführt. +% \begin{macrocode} +\newcommand*{\contract@paragraph}[1]{% + \ManualPar\parnumbertrue + \let\contract@title\relax + \let\contract@entry\relax + \let\contract@head\relax + \let\contract@number\relax + \contract@dummyfalse + \ifx\relax#1\relax\else\setkeys{contract}{#1}\fi +% \end{macrocode} +% Wenn es kein Blindparagraph ist, werden Vorbereitung für nach der +% Überschrift getroffen und der vertikale Abstand eingefügt. +% \begin{macrocode} + \ifcontract@dummy\else + \@afterindentfalse + \addvspace{\contract@preskip}% + \fi +% \end{macrocode} +% Wenn die Nummer nicht manuell gesetzt wurde, wird die nächste Nummer +% verwendet. Im anderen Fall muss die Nummer gesetzt und auch dafür gesorgt +% werden, dass sowohl ein Label als auch hyperref diese Nummer verwenden. +% \begin{macrocode} + \ifx\contract@number\relax + \let\p@Paragraph\@empty + \let\theParagraph\thecontractParagraph + \refstepcounter{Paragraph}% + \else + \begingroup + \let\@elt\@stpelt + \cl@Paragraph + \endgroup + \protected@edef\theParagraph{\S~\contract@number}% + \protected@edef\@currentlabel{\theParagraph}% + \fi + \stepcounter{@AbsParagraph}% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname if@skiphyperref\endcsname\relax + \else + \expandafter\let\csname if@jura@skiphyperref\expandafter\endcsname + \csname if@skiphyperref\endcsname + \fi + \if@jura@skiphyperref\else + \hyper@refstepcounter{@AbsParagraph}% + \typeout{absolute Nummer: \the@AbsParagraph^^JLabel: `\@currentHref'}% + \fi +% \end{macrocode} +% Zwecks Vereinfachung wird ab hier so getan, als wäre es ein Unterabschnitt. +% \begin{macrocode} + \let\theSubParagraph\theParagraph +% \end{macrocode} +% Außer für Blindparagraphen wird dann die Überschrift gesetzt, die +% Verzeichniseinträge vorgenommen und der Kolumnentitel angepasst. +% \begin{macrocode} + \ifcontract@dummy\else + \begingroup + \contract@paragraph@font \theParagraph + \ifx\contract@title\relax\else\enskip\contract@title\fi + \endgroup + \ifx\contract@entry\relax\else + \addcontentsline{toc}{cpar}{% + \protect\numberline{\theParagraph}\contract@entry + }% + \addcontentsline{cpa}{cpar}{% + \protect\numberline{\theParagraph}\contract@entry + }% + \fi + \ifx\contract@head\relax\else + \expandafter\Paragraphmark\expandafter{% + \expandafter\theSubParagraph\expandafter\enskip\contract@head}% + \fi + \par\nobreak\vskip\contract@postskip +% \end{macrocode} +% Zum Schluss wird noch dafür gesorgt, dass auch die Absätze korrekt +% nummeriert werden können etc. +% \begin{macrocode} + \jura@afterheading{contract}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{contract@subparagraph} +% Das entspricht bis auf wenige Kleinigkeiten, die Unterparagraphen betreffen, +% |\contract@paragraph| +% \begin{macrocode} +\newcommand*{\contract@subparagraph}[1]{% + \ManualPar\parnumbertrue + \let\contract@title\relax + \let\contract@entry\relax + \let\contract@head\relax + \let\contract@number\relax + \contract@dummyfalse + \ifx\relax#1\relax\else\setkeys{contract}{#1}\fi + \ifcontract@dummy\else + \@afterindentfalse + \vskip\contract@preskip + \fi + \ifx\contract@number\relax + \let\p@SubParagraph\@empty + \let\theSubParagraph\thecontractSubParagraph + \refstepcounter{SubParagraph}% + \else + \begingroup + \let\@elt\@stpelt + \cl@SubParagraph + \endgroup + \protected@edef\theSubParagraph{\theParagraph\contract@number}% + \protected@edef\@currentlabel{\theSubParagraph}% + \fi + \stepcounter{@AbsParagraph}% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname if@skiphyperref\endcsname\relax + \else + \expandafter\let\csname if@jura@skiphyperref\expandafter\endcsname + \csname if@skiphyperref\endcsname + \fi + \if@jura@skiphyperref\else + \hyper@refstepcounter{@AbsParagraph}% + \typeout{absolute Nummer: \the@AbsParagraph^^JLabel: `\@currentHref'}% + \fi + \ifcontract@dummy\else + \begingroup + \contract@paragraph@font \theSubParagraph + \ifx\contract@title\relax\else\enskip\contract@title\fi + \endgroup + \ifx\contract@entry\relax\else + \addcontentsline{toc}{cpar}{% + \protect\numberline{\theSubParagraph}\contract@entry + }% + \addcontentsline{cpa}{cpar}{% + \protect\numberline{\theSubParagraph}\contract@entry + }% + \fi + \ifx\contract@head\relax\else + \expandafter\Paragraphmark\expandafter{% + \expandafter\theSubParagraph\expandafter\enskip\contract@head}% + \fi + \par\nobreak\vskip\contract@postskip + \jura@afterheading{contract}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AutoPar} +% \begin{macro}{\ManualPar} +% Automatische oder manuelle Absatznummern für alle Umgebungen aktivieren. +% \begin{macrocode} +\newcommand*{\AutoPar}{% + \expandafter\let\expandafter\jura@everypar + \csname \jura@type @everypar\endcsname +} +\newcommand*{\ManualPar}{% + \let\jura@everypar\relax +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\jura@afterheading} +% Entspricht |\afterheading| mit Erweiterungen für automatischen +% Absatznummern. +% \begin{macrocode} +\newcommand*{\jura@afterheading}[1]{% + \@nobreaktrue + \everypar{% + \if@nobreak + \@nobreakfalse + \clubpenalty \@M + \if@afterindent \else + {\setbox\z@\lastbox}% + \fi + \else + \clubpenalty \@clubpenalty + \everypar{% + \jura@everypar + }% + \fi + \jura@everypar + }% + \def\jura@type{#1}% + \AutoPar +} +% \end{macrocode} +% \begin{macro}{\jura@everypar} +% Die Anweisung, die am Anfang von jedem Absatz auszuführen ist, um die +% Nummer zu setzen. Außerhalb der Umgebungen ist das nichts. +% \begin{macrocode} +\newcommand*{\jura@everypar}{} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@doendpe} +% Diese Anweisung wird von \LaTeX{} verwendet, um am Ende von Umgebungen die +% kurz-, mittel- und langwirkenden Absatzaktionen zurückzusetzen. Damit hier +% nicht die automatische Absatznummerierung abgeschaltet wird, wird sie neu +% eingefügt. +% \begin{macrocode} +\CheckCommand*\@doendpe{\@endpetrue + \def\par{\@restorepar\everypar{}\par\@endpefalse}\everypar + {{\setbox\z@\lastbox}\everypar{}\@endpefalse}} +\newcommand*{\contract@doendpe}{% + \@endpetrue + \def\par{% + \@restorepar\everypar{% + \csname jura@everypar\endcsname + }% + \par\@endpefalse + }% + \everypar{% + {\setbox\z@\lastbox}\everypar{% + \csname jura@everypar\endcsname + }% + \@endpefalse + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\l@cpar} +% Verzeichnis-Eintrag für einen Vertrags-Paragraphen. +% \begin{macrocode} +\newcommand*{\l@cpar}[2]{% + \if@juratotoc + \@dottedtocline{\value{juratoclevel}}{1.5em}{2em}{#1}{#2}% + \fi +} +% \end{macrocode} +% \begin{Counter}{juratoclevel} +% Dieser Zähler gibt an, in welcher Ebene die Verzeichniseinträge für die +% Paragraphen erfolgen. Voreinstellung ist Ebene 2. +% \begin{macrocode} +\newcounter{juratoclevel} +\setcounter{juratoclevel}{2}% +% \end{macrocode} +% \end{Counter} +% \end{macro} +% +% \begin{macro}{\jura@separator} +% Wird verwendet, damit Leerzeichen am Anfang oder Ende entfernt werden können. +% \begin{macrocode} +\DeclareRobustCommand*{\jura@separator}[1]{#1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\contract@everypar} +% |\jura@everpar| für Verträge. +% \begin{macro}{\ifparnumber} +% \begin{Counter}{par} +% \begin{macro}{\thepar} +% \begin{macro}{\theHpar} +% \begin{macro}{\p@par} +% Der Schalter gibt an, ob überhaupt mit Absatznummern gearbeitet werden +% soll. Sind Absatznummern deaktiviert, werden auch keine manuellen +% Absatznummern gesetzt. Die Absätze werden dann auch nicht gezählt. Ansonsten +% werden die Absätze mit |\thepar| nummeriert. Wichtig ist, dass der +% Absatzzähler mit den Paragraphen und den Unterparagraphen zurückgesetzt +% wird. Außerdem muss beim Zitieren als Elternobjekt der Paragraph mit +% ausgegeben werden. +% \begin{macrocode} +\newif\ifparnumber +\newcounter{par} +\renewcommand*{\thepar}{\arabic{par}} +\newcommand*{\theHpar}{\theH@AbsParagraph-\Roman{par}} +\newcommand*{\parformat}{(\thepar)} +\renewcommand*\p@par{{\theSubParagraph\jura@separator{\nobreakspace}}} +\@addtoreset{par}{Paragraph} +\@addtoreset{par}{SubParagraph} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{macro} +% \begin{macrocode} +\newcommand*{\contract@everypar}{% + \ifparnumber + \refstepcounter{par}% + \refstepcounter{sentence}% + \begingroup + \protected@write\@auxout{}{% + \string\newmaxpar{contractpars}{\theSubParagraph}{\arabic{par}}}% + \getmaxpar\@tempa{contractpars}{\theSubParagraph}% + \typeout{Stored max is \@tempa}% + \ifnum \@tempa>\@ne + \parformat\nobreakspace + \fi + \endgroup + \else + \setcounter{sentence}{0}\refstepcounter{sentence}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\refParagraph} +% Zitiert nur den Paragraphen einer Paragraphen, eines Absatzes oder eines +% Satzes. +% \begin{macrocode} +\newcommand*{\refParagraph}[1]{% + \expandafter\ifx\csname r@#1\endcsname\relax + \ref{#1}% + \else + \begingroup +% \end{macrocode} +% Alle Teile der Referenz bis auf den ersten in |\@tempb| ablegen. +% \begin{macrocode} + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\@tempb + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter{% + \expandafter\expandafter\expandafter\@gobble\csname r@#1\endcsname}% +% \end{macrocode} +% Den ersten Teil der Referenz in |\@tempa| ablegen. +% \begin{macrocode} + \def\@tempc##1##2\@nil{##1}% + \let\jura@separator\@gobble + \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc + \csname r@#1\endcsname\noexpand\@nil}% +% \end{macrocode} +% Den ersten Teil von |\@tempa| in |\@tempa| ablegen. +% \begin{macrocode} + \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc + \@tempa\@nil}% + \let\@@protect\protect + \let\protect\noexpand + \expandafter\edef\csname r@#1\endcsname{{\@tempa}\@tempb}% + \let\protect\@@protect + \ref{#1}% + \endgroup + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\refPar} +% Zitiert nur den Absatz eines Absatzes oder eines Satzes. +% \begin{macrocode} +\newcommand*{\refPar}[1]{% + \expandafter\ifx\csname r@#1\endcsname\relax + \ref{#1}% + \else + \begingroup +% \end{macrocode} +% Alle Teile der Referenz bis auf den ersten in |\@tempb| ablegen. +% \begin{macrocode} + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\@tempb + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter{% + \expandafter\expandafter\expandafter\@gobble\csname r@#1\endcsname}% +% \end{macrocode} +% Den ersten Teil der Referenz in |\@tempa| ablegen. +% \begin{macrocode} + \def\@tempc##1##2\@nil{##1}% + \let\jura@separator\@gobble + \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc + \csname r@#1\endcsname\noexpand\@nil}% +% \end{macrocode} +% Den zweiten Teil von |\@tempa| in |\@tempa| ablegen. +% \begin{macrocode} + \def\@tempc##1##2##3\@nil{##2}% + \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc + \@tempa{% + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{Reference `#1' on page \thepage \space + with undefined par number}% + }\noexpand\@nil}% + \let\@@protect\protect + \let\protect\noexpand + \expandafter\edef\csname r@#1\endcsname{{\@tempa}\@tempb}% + \let\protect\@@protect + \ref{#1}% + \endgroup + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\refSentence} +% Zitiert nur den Satz eines Satzes. +% \begin{macrocode} +\newcommand*{\refSentence}[1]{% + \expandafter\ifx\csname r@#1\endcsname\relax + \ref{#1}% + \else + \begingroup +% \end{macrocode} +% Alle Teile der Referenz bis auf den ersten in |\@tempb| ablegen. +% \begin{macrocode} + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\@tempb + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter{% + \expandafter\expandafter\expandafter\@gobble\csname r@#1\endcsname}% +% \end{macrocode} +% Den ersten Teil der Referenz in |\@tempa| ablegen. +% \begin{macrocode} + \def\@tempc##1##2\@nil{##1}% + \let\jura@separator\@gobble + \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc + \csname r@#1\endcsname\noexpand\@nil}% +% \end{macrocode} +% Den dritten Teil von |\@tempa| in |\@tempa| ablegen. +% \begin{macrocode} + \def\@tempc##1##2##3##4\@nil{##3}% + \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc + \@tempa{}{% + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{Reference `#1' on page \thepage \space + with undefined sentence number}% + }\noexpand\@nil}% + \let\@@protect\protect + \let\protect\noexpand + \expandafter\edef\csname r@#1\endcsname{{\@tempa}\@tempb}% + \let\protect\@@protect + \ref{#1}% + \endgroup + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\contract@sentence} +% Sätze nummerieren. +% \begin{Counter}{sentence} +% \begin{macro}{\thesentence} +% \begin{macro}{\theHsentence} +% \begin{macro}{\p@sentence} +% Der Zähler wird für die Nummerierung der Sätze verwendet. Dabei ist wichtig, +% dass beim Zitieren der Sätze als Elternobjekt der Absatz mit ausgegeben wird. +% \begin{macrocode} +\newcounter{sentence}[par] +\renewcommand*{\thesentence}{\arabic{sentence}} +\newcommand*{\theHsentence}{\theHpar-\arabic{sentence}} +\renewcommand*{\p@sentence}{\expandafter\p@@sentence} +\newcommand*{\p@@sentence}[1]{\p@par{{\par@cite{\thepar}}% + \jura@separator{\nobreakspace}}{\sentence@cite{#1}}} +\newcommand*{\contract@sentence}{% + \refstepcounter{sentence}% + \ensuremath{^{\mbox{\fontsize\sf@size\z@\selectfont\thesentence}}}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{macro} +% +% \begin{macro}{\parciteformat} +% Zitierstil für Absätze. In der Voreinstellung ist das |\@Roman|. +% \begin{macrocode} +\DeclareRobustCommand*{\par@cite}[1]{\parciteformat{#1}} +\newcommand*{\parciteformat}[1]{\@Roman{\numexpr #1\relax}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sentenceciteformat} +% Zitierstil für Sätze. In der Voreinstellung ist das |\@arabic|. +% \begin{macrocode} +\DeclareRobustCommand*{\sentence@cite}[1]{\sentenceciteformat{#1}} +\newcommand*{\sentenceciteformat}[1]{\@arabic{\numexpr #1\relax}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\parname} +% \begin{macro}{\sentencename} +% Der Name eines Absatzes und eines Satzes. +% \begin{macrocode} +\newcommand*{\parname}{Paragraph} +\AtBeginDocument{% + \@ifundefined{captionsgerman}{}{% + \addto\captionsgerman{\def\parname{Absatz}}% + \addto\captionsgerman{\def\sentencename{Satz}}% + \ifnum \l@german=\language\selectlanguage{german}\fi + }% + \@ifundefined{captionsngerman}{}{% + \addto\captionsngerman{\def\parname{Absatz}}% + \addto\captionsngerman{\def\sentencename{Satz}}% + \ifnum \l@ngerman=\language\selectlanguage{ngerman}\fi + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\newmaxpar} +% \begin{macro}{\getmaxpar} +% Noch zwei Hilfsmakros, um Zähler in der aux-Datei zwischenzuspeichern und +% auch dann Werte zu holen, wenn sie nicht in der aux-Datei stehen. +% \begin{macrocode} +\newcommand*{\newmaxpar}[3]{% + \begingroup + \protected@edef\@tempa{#2}\@onelevel@sanitize\@tempa + \expandafter\xdef\csname max@#1@\@tempa\endcsname{#3}% + \endgroup +} +\newcommand*{\getmaxpar}[3]{% + \begingroup + \protected@edef\@tempa{#3}% + \@onelevel@sanitize\@tempa + \expandafter\ifx \csname max@#2@\@tempa\endcsname\relax + \edef\@tempa{\endgroup\edef\noexpand#1{\expandafter\the\value{par}}}% + \else + \edef\@tempa{\endgroup + \edef\noexpand#1{\csname max@#2@\@tempa\endcsname}}% + \fi + \@tempa +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \iffalse +%</package> +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrjura.dtx' +%%% Local Variables: +%%% mode: doctex +%%% coding: iso-latin-1 +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx b/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx index 87583206fd1..88d138a1c80 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx @@ -1,8 +1,8 @@ -% \CheckSum{989} +% \CheckSum{1213} % \iffalse meta-comment % ====================================================================== % scrkbase.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkbase.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,11 +58,16 @@ %%% From File: scrkbase.dtx %<*driver> % \fi -\ProvidesFile{scrkbase.dtx}[2007/10/03 v2.97d KOMA-Script (basics)] +\ProvidesFile{scrkbase.dtx}[2008/05/28 v3.00 KOMA-Script (basics)] % \iffalse %</driver> -%<package&option>\ProvidesPackage{scrkbase}[% -%<package&option> \KOMAScriptVersion\space package (basics and keyval use)] +%<package&option>\ProvidesPackage{% +%<package&option&base> scrbase% +%<package&option&koma> scrkbase% +%<package&option>}[% +%<package&option> \KOMAScriptVersion\space package +%<package&option&base> (KOMA-Script-independent basics and keyval usage)] +%<package&option&koma> (KOMA-Script-dependent basics and keyval usage)] %<*driver> \documentclass{scrdoc} \usepackage[english,ngerman]{babel} @@ -98,12 +103,13 @@ % werden hier Erweiterungen vorgenommen, die von \KOMAScript-Klassen % und \KOMAScript-Paketen verwendet werden können. % -% Darüber hinaus werden immer mehr Teile von \KOMAScript{} von mehr -% als einem Paket oder von Paketen und Klassen verwendet. Diese -% grundlegenden Dinge wurden daher in ein eigenes Paket, -% \textsl{scrkbase}, ausgegliedert. Dadurch werden die Pakete und -% Klassen selbst kleiner und die können trotzdem unabhängig -% voneinander verwendet werden. Selbstverständlich kann man dieses +% Darüber hinaus werden immer mehr Teile von \KOMAScript{} von mehr als einem +% Paket oder von Paketen und Klassen verwendet. Diese grundlegenden Dinge +% wurden daher in zwei Pakete, \textsf{scrbase} (für Dinge, die auch von +% anderen Klassen und Paketen genutzt werden können) und \textsf{scrkbase} +% (für Dinge, die \KOMAScript vorbehalten bleiben), ausgegliedert. Dadurch +% werden die Pakete und Klassen selbst kleiner und die können trotzdem +% unabhängig voneinander verwendet werden. Selbstverständlich kann man dieses % Paket auch ohne den Rest von \KOMAScript{} zum Einsatz bringen. % % \StopEventually{\PrintIndex\PrintChanges} @@ -124,16 +130,22 @@ %<*option> % \fi % +% \subsection{Der abhängige Teil lädt den unabhängigen Teil} +% +% \begin{macrocode} +%<koma>\RequirePackage{scrbase}[\KOMAScriptVersion] +% \end{macrocode} +% % \subsection{Laden von \textsf{keyval}} % % Hier wird nicht nur das Paket geladen, was ruckzuck mit: % \begin{macrocode} -\RequirePackage{keyval} +%<base>\RequirePackage{keyval} % \end{macrocode} % erledigt ist. % % -% \subsection{Anweisungen zur Abarbeitung von Optionen} +% \subsection{Test von Anweisungen} % % \begin{macro}{\scr@ifundefinedorrelax} % \changes{v2.95c}{2006/08/12}{neu (intern)} @@ -144,6 +156,7 @@ % ein undefiniertes Makro nicht als \cs{relax}. Es muss bereits hier definiert % werden, weil es gleich verwendet wird. % \begin{macrocode} +%<*base> \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname ifcsname\endcsname\relax \newcommand{\scr@ifundefinedorrelax}[1]{% @@ -167,6 +180,7 @@ \fi } \fi +%</base> % \end{macrocode} % \end{macro} % @@ -180,6 +194,80 @@ % Schlüssel jedes anderen Teils ausführen kann -- sobald sie definiert % sind. % +% \begin{macro}{\DefineFamily} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \begin{macro}{\DefineFamilyMember} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \begin{macro}{\DefineFamilyKey} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \begin{macro}{\scr@if@family} +% \changes{v3.00}{2008/04/30}{Neu (intern)} +% \begin{macro}{\scr@if@familymember} +% \changes{v3.00}{2008/04/30}{Neu (intern)} +% Familie, Familienmitglied und \textsf{keyval}-Schlüssel für ein +% Familienmitglied definieren. Dabei wird als Familienmitglied per Default der +% (Datei-)Name des aktuellen Pakets bzw. der aktuellen Klasse verwendet. +% \begin{macrocode} +%<*base> +\newcommand*{\DefineFamily}[1]{% + \scr@ifundefinedorrelax{#1@key@familylist}{% + \@namedef{#1@key@familylist}{}% + }{}% +} +\newcommand*{\scr@if@family}[2]{% + \scr@ifundefinedorrelax{#1@key@familylist}{% + \PackageError{scrbase}{% + unknown family `#1'% + }{% + You've tried to #2 for family `#1'.\MessageBreak + This my be done only for previous defined families.\MessageBreak + You should call `\string\DefineFamily{#1}' first.% + }% + }% +} +\newcommand*{\DefineFamilyMember}[2][.\@currname.\@currext]{% + \scr@if@family{#2}{define a family member}{% + \edef\reserved@a{% + \noexpand\in@{#2#1,}{\csname #2@key@familylist\endcsname}}% + \reserved@a + \ifin@\else + \expandafter\edef\csname #2@key@familylist\endcsname{% + \@nameuse{#2@key@familylist}#2#1,}% + \fi + }% +} +\newcommand*{\scr@if@familymember}[3]{% + \scr@if@family{#2}{#3}{% + \edef\reserved@a{% + \noexpand\in@{#2#1,}{\csname #2@key@familylist\endcsname}}% + \reserved@a + \ifin@ + \expandafter\@firstofone + \else + \PackageError{scrbase}{% + unknown member `#1' at family `#2'% + }{% + You've tried to #3 for member `#1' of family `#2'.\MessageBreak + This my be done only for previous defined family members.\MessageBreak + You should call `\string\DefineFamilyMember[{#1}]{#2}' first.% + }% + \expandafter\@gobble + \fi + }% +} +\newcommand*{\DefineFamilyKey}[2][.\@currname.\@currext]{% + \scr@if@familymember{#1}{#2}{define a key}{% + \define@key{#2#1}% + }% +} +%</base> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% % \begin{macro}{\KOMA@key} % \changes{v2.97c}{2007/04/19}{neues optionales Argument} % \begin{macro}{\KOMA@key@familylist} @@ -187,12 +275,12 @@ % definiert, damit auch die Familie korrekt gesetzt und ggf. der Liste der % Familien (\cs{KOMA@key@familylist}) hinzugefügt wird. % \begin{macrocode} +%<*koma> \newcommand*{\KOMA@key}[1][.\@currname.\@currext]{% - \edef\reserved@a{\noexpand\in@{KOMA#1,}{\KOMA@key@familylist}}\reserved@a - \ifin@\else\xdef\KOMA@key@familylist{\KOMA@key@familylist KOMA#1,}\fi - \define@key{KOMA#1}% + \DefineFamilyMember{KOMA}% + \DefineFamilyKey[#1]{KOMA}% } -\newcommand*{\KOMA@key@familylist}{} +%</koma> % \end{macrocode} % \end{macro} % \end{macro} @@ -216,6 +304,7 @@ % werden, weil ihr Defaultwert verwendet werden soll), wird hier ein eigenes % Makro definiert. % \begin{macrocode} +%<*base> \newcommand*{\@globaloptionslist}{} \let\@globaloptionslist\@classoptionslist \scr@ifundefinedorrelax{XKV@classoptionslist}{}{% @@ -223,21 +312,24 @@ \let\@globaloptionslist\XKV@classoptionslist \fi } +%</base> % \end{macrocode} % \end{macro} % -% \begin{macro}{\KOMAProcessOptions} -% \changes{v2.97c}{2007/04/18}{neu} +% \begin{macro}{\FamilyProcessOptions} +% \changes{v3.00}{2008/04/30}{Neue Anweisung}% % Diese Anweisung führt alle Optionen, sowohl normal deklarierte als auch -% keyval-Optionen eines Pakets bzw. einer Klasse in der Reihenfolge, in der -% sie verwendet wurden aus -- zuerst gloable Optionen, dann lokale -% Optionen. Das entspricht der Verwendung von \cs{ProcessOptions*} mit dem -% Unterschied, dass eben auch die keyval-Optionen abgearbeitet -% werden. keyval-Optionen, die keiner einzelnen Klasse und keinem einzelnen -% Paket zugeordnet werden, werden dabei vor gleichnamigen eigenen -% keyval-Optionen ausgeführt. +% \textsf{keyval}-Optionen für eine angegebene Familie (2. Argument) und das +% aktuelle Mitglied (1. optionales Argument) in der Reihenfolge, in der sie +% verwendet wurden aus -- zuerst globale Optionen, dann lokale Optionen. Das +% entspricht der Verwendung von \cs{ProcessOptions*} mit dem Unterschied, +% dass eben auch die \textsf{keyval}-Optionen abgearbeitet +% werden. \textsf{keyval}-Optionen, die keinem Mitglied zugeordnet, sondern +% universell sind, werden dabei vor gleichnamigen \textsf{keyval}-Optionen +% des aktuellen Mitglieds ausgeführt. % \begin{macrocode} -\newcommand*{\KOMAProcessOptions}[1][KOMA]{% +%<*base> +\newcommand*{\FamilyProcessOptions}[2][.\@currname.\@currext]{% \let\ds@\@empty \edef\@curroptions{\@ptionlist{\@currname.\@currext}}% \ifx\@currext\@clsextension\else @@ -248,14 +340,14 @@ \@use@ption \expandafter\let\csname ds@\CurrentOption\endcsname\@empty \else - \KOMA@optiontest{#1}\CurrentOption{}{% + \scr@optiontest{#2}\CurrentOption{}{% \@use@ption - \@expandtwoargs\setkeys{#1}% + \@expandtwoargs\setkeys{#2}% \CurrentOption }% - \KOMA@optiontest{#1.\@currname.\@currext}\CurrentOption{}{% + \scr@optiontest{#2#1}\CurrentOption{}{% \@use@ption - \@expandtwoargs\setkeys{#1.\@currname.\@currext}% + \@expandtwoargs\setkeys{#2#1}% \CurrentOption }% \fi @@ -265,20 +357,20 @@ \@for\CurrentOption:=\@curroptions\do{% \@use@ption \scr@ifundefinedorrelax{ds@\CurrentOption}{% - \KOMA@optiontest{#1}\CurrentOption{% - \KOMA@optiontest{#1.\@currname.\@currext}\CurrentOption{% + \scr@optiontest{#2}\CurrentOption{% + \scr@optiontest{#2#1}\CurrentOption{% \default@ds }{% - \let\scr@sr@co\CurrentOption - \@expandtwoargs\setkeys{#1.\@currname.\@currext}% - \CurrentOption - \let\CurrentOption\scr@sr@co + \edef\reserved@a{% + \noexpand\setkeys{#2#1}{\CurrentOption}% + \noexpand\def\noexpand\CurrentOption{\CurrentOption}% + }\reserved@a }% }{% - \@expandtwoargs\setkeys{#1}% + \@expandtwoargs\setkeys{#2}% \CurrentOption - \KOMA@optiontest{#1.\@currname.\@currext}\CurrentOption{}{% - \@expandtwoargs\setkeys{#1.\@currname.\@currext}% + \scr@optiontest{#2#1}\CurrentOption{}{% + \@expandtwoargs\setkeys{#2#1}% \CurrentOption }% }% @@ -291,50 +383,62 @@ \let\@fileswith@pti@ns\@@fileswith@pti@ns \AtEndOfPackage{\let\@unprocessedoptions\relax}% } -\@onlypreamble\KOMA@process@options -\@onlypreamble\KOMAProcessOptions +\@onlypreamble\FamilyProcessOptions % \end{macrocode} -% \begin{macro}{\KOMA@optiontest} +% \begin{macro}{\scr@optiontest} % \changes{v2.97c}{2007/04/18}{neu (intern)} -% \begin{macro}{\KOMA@pti@ntest} +% \begin{macro}{\scr@pti@ntest} % \changes{v2.97c}{2007/04/18}{neu (intern)} % Es werden zwei interne Makros benötigt, um zu testen, ob eine entsprechende % keyval-Option definiert ist. Grund der Übung ist, dass sowohl das % Familienargument als auch die Options selbst expandiert werden muss. % \begin{macrocode} -\newcommand*{\KOMA@optiontest}[2]{% - \edef\reserved@a{\noexpand\KOMA@pti@ntest{#1}#2=\noexpand\@nil}% +\newcommand*{\scr@optiontest}[2]{% + \edef\reserved@a{\noexpand\scr@pti@ntest{#1}#2=\noexpand\@nil}% \reserved@a } -\newcommand*{\KOMA@pti@ntest}{} -\def\KOMA@pti@ntest#1#2=#3\@nil{\scr@ifundefinedorrelax{KV@#1@#2}} +\newcommand*{\scr@pti@ntest}{} +\def\scr@pti@ntest#1#2=#3\@nil{\scr@ifundefinedorrelax{KV@#1@#2}} +%</base> % \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\scr@sr@co} -% \changes{v2.96}{2006/08/20}{neu (intern)} -% Da das \texttt{xkeyval}-Paket leider \cs{CurrentOption} vernichtet, das aber -% innerhalb von \cs{ProcessOptions} und \cs{KOMAProcessOptions} nach dem -% Ausführen der Option noch benötigt wird, muss die Anweisung gesichert -% werden. Dafür wird ein Hilfsmakro benötigt. +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\KOMAProcessOptions} +% \changes{v2.97c}{2007/04/18}{neu} +% \changes{v3.00}{2008/04/30}{kein optionales Argument mehr} +% Diese Anweisung führt alle Optionen, sowohl normal deklarierte als auch +% keyval-Optionen eines Pakets bzw. einer Klasse in der Reihenfolge, in der +% sie verwendet wurden aus -- zuerst globale Optionen, dann lokale +% Optionen. Das entspricht der Verwendung von \cs{ProcessOptions*} mit dem +% Unterschied, dass eben auch die keyval-Optionen abgearbeitet +% werden. keyval-Optionen, die keiner einzelnen Klasse und keinem einzelnen +% Paket zugeordnet werden, werden dabei vor gleichnamigen eigenen +% keyval-Optionen ausgeführt. % \begin{macrocode} -\newcommand*{\scr@sr@co}{} +%<*koma> +\newcommand*{\KOMAProcessOptions}{\FamilyProcessOptions{KOMA}} +\@onlypreamble\KOMAProcessOptions +%</koma> % \end{macrocode} % \end{macro} -% \end{macro} % % \begin{option}{internalonly} % \changes{v2.96}{2006/11/26}{neu} % \changes{v2.97c}{2007/06/20}{geht auch ohne Argument} % \begin{macro}{\dont@let@as@internal@defined} -% \changes{2.96}{2006/11/26}{neu (intern)} +% \changes{v2.96}{2006/11/26}{neu (intern)} % Anweisungen, die mit einem internen und einem Anwendername vorhanden sind, % können vor dem Anwender optional verborgen werden. Wird kein Argument % angegeben, so werden alle Anweisungen verborgen. % \begin{macrocode} +%<*base> \newcommand*{\dont@let@as@internal@defined}{/} \newif\if@let@as@internalonly@defined\@let@as@internalonly@definedfalse -\KOMA@key{internalonly}[\relax]{% +\DefineFamily{KOMA} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{internalonly}[\relax]{% \ifx\relax#1\relax \@let@as@internalonly@definedtrue \else @@ -345,6 +449,7 @@ \ifin@\else\g@addto@macro\dont@let@as@internal@defined{#1/}\fi \fi } +%</base> % \end{macrocode} % \end{macro} % \end{option} @@ -353,7 +458,8 @@ % \changes{v2.97c}{2007/04/18}{Optionen werden mit \cs{KOMAProcessOptions} % abgearbeitet} % \begin{macrocode} -\KOMAProcessOptions\relax +%<koma>\KOMAProcessOptions\relax +%<base>\FamilyProcessOptions{KOMA}\relax % \end{macrocode} % % \iffalse @@ -372,10 +478,12 @@ % unterschiedlich verhalten, je nachdem, ob sie in der Präambel oder % danach aufgerufen werden. % \begin{macrocode} +%<*base> \newif\if@atdocument \AtBeginDocument{\@atdocumenttrue} \@onlypreamble\@atdocumentrue \@onlypreamble\@atdocumentfalse +%</base> % \end{macrocode} % \end{macro} % \end{macro} @@ -394,6 +502,7 @@ % dokumentierten Makros wird als Parameter übergeben. Dies wird gleich % benötigt. % \begin{macrocode} +%<*base> \newcommand*{\let@as@internal@defined}[1]{% \begingroup \if@let@as@internalonly@defined @@ -404,7 +513,7 @@ \expandafter\endgroup \ifin@ \PackageInfo{% - scrkbase% + scrbase% }{% \expandafter\string\csname #1\endcsname\space excluded from being defined% @@ -423,7 +532,7 @@ \expandafter\ifx\csname #1\expandafter\endcsname \csname scr@#1\endcsname \else - \PackageWarning{scrkbase}{% + \PackageWarning{scrbase}{% \expandafter\string\csname #1\endcsname\space was redefined\MessageBreak at the document preamble.\MessageBreak @@ -436,20 +545,21 @@ \fi }{% \PackageInfo{% - scrkbase% + scrbase% }{% \expandafter\string\csname #1\endcsname\space already defined.\MessageBreak If \expandafter\string\csname #1\endcsname\space does not behave like\MessageBreak it was described at the KOMA-Script manual, try to\MessageBreak - load `scrkbase.sty' earlier or find out at which\MessageBreak + load `scrbase.sty' earlier or find out at which\MessageBreak package or class \expandafter\string\csname #1\endcsname\space was defined before\@gobble }% }% \fi } +%</base> % \end{macrocode} % \end{macro} % @@ -460,7 +570,9 @@ % Dieses Makro arbeitet wie \cs{@ifundefined}, definiert dabei aber % ein undefiniertes Makro nicht als \cs{relax}. % \begin{macrocode} +%<*base> \let@as@internal@defined{ifundefinedorrelax} +%</base> % \end{macrocode} % \end{macro} % @@ -471,6 +583,7 @@ % ist es ganz nützlich, auch das zu haben. Dieses Makro heißt nicht % \cs{ifdefined}, weil \eTeX\ bereits ein solches Primitiv bietet. % \begin{macrocode} +%<*base> \scr@ifundefinedorrelax{ifcsname}{% \newcommand{\ifnotundefined}[1]{% \begingroup\expandafter\expandafter\expandafter\endgroup @@ -489,6 +602,7 @@ \fi }% } +%</base> % \end{macrocode} % \end{macro} % @@ -497,6 +611,7 @@ % Dieses Makro vergleicht zwei Tokenfolgen. Eigentlich müsste es also % eher \cs{ifequal} oder ähnlich heißen. % \begin{macrocode} +%<*base> \newcommand\ifstr[2]{% \begingroup\edef\@tempa{#1}\edef\@tempb{#2}% \ifx\@tempa\@tempb @@ -505,6 +620,7 @@ \endgroup\expandafter\@secondoftwo \fi } +%</base> % \end{macrocode} % \end{macro} % @@ -513,6 +629,7 @@ % ganze Zahl ist. Ist dies der Fall, wird der zweite Parameter % ausgeführt, sonst der dritte. % \begin{macrocode} +%<*base> \newcommand\ifnumber[1]{% \begingroup\@tempswafalse\let\scr@next\test@number \expandafter\scr@next#1\scr@next @@ -557,6 +674,7 @@ % \begin{macrocode} \newcommand*{\gobble@till@scr@next}{} \def\gobble@till@scr@next#1\scr@next{} +%</base> % \end{macrocode} % \end{macro} % \end{macro} @@ -567,6 +685,7 @@ % ist und führt in Abhängigkeit davon den zweiten oder dritten % Parameter aus. % \begin{macrocode} +%<*base> \newcommand{\ifdimen}[1]{% \begingroup\@tempswatrue\let\scr@next\test@posdimen \expandafter\test@dimen#1\scr@next @@ -650,6 +769,7 @@ }% }% } +%</base> % \end{macrocode} % \end{macro} % \end{macro} @@ -665,10 +785,12 @@ % \changes{v2.95}{2002/08/19}{neu (intern)} % If-then-else-Konstrukt, um zu testen, ob pdf\TeX{} verwendet wird. % \begin{macrocode} +%<*base> \newcommand{\scr@ifpdftex}{\ifnotundefined{pdftexversion}} \let@as@internal@defined{ifpdftex} \BeforePackage{pdfcprot}{\let\ifpdftex\relax} \AfterPackage{pdfcprot}{\let@as@internal@defined{ifpdftex}} +%</base> % \end{macrocode} % \end{macro} % \end{macro} @@ -681,8 +803,10 @@ % \changes{v2.97c}{2007/06/20}{umdefiniert von \cs{scr@ifvtex}} % If-then-else-Konstrukt, um zu testen, ob V\TeX{} verwendet wird. % \begin{macrocode} +%<*base> \newcommand{\scr@ifVTeX}{\ifnotundefined{VTeXversion}} \let@as@internal@defined{ifVTeX} +%</base> % \end{macrocode} % \end{macro} % \end{macro} @@ -702,6 +826,7 @@ % ausgegeben wird oder nicht, Befehle auszuführen. Dieses Makro wird % für die Deklaration der Option \texttt{pagesize} benötigt. % \begin{macrocode} +%<*base> \newcommand{\scr@ifpdfoutput}{% \scr@ifundefinedorrelax{pdfoutput}{% \scr@ifundefinedorrelax{OpMode}{% @@ -722,6 +847,7 @@ }% }% \let@as@internal@defined{ifpdfoutput} +%</base> % \end{macrocode} % \end{macro} % \end{macro} @@ -734,6 +860,7 @@ % If-then-else-Konstrukt, um abhängig davon, ob früher oder später % \texttt{ps} ausgegeben wird oder nicht, Befehle auszuführen. % \begin{macrocode} +%<*base> \newcommand*{\scr@ifpsoutput}{% \ifnotundefined{if@dvips}{% \if@dvips @@ -754,6 +881,7 @@ }% } \let@as@internal@defined{ifpsoutput} +%</base> % \end{macrocode} % \end{macro} % \end{macro} @@ -766,6 +894,7 @@ % If-then-else-Konstrukt, um abhängig davon, ob \texttt{dvi} % ausgegeben wird oder nicht, Befehle auszuführen. % \begin{macrocode} +%<*base> \newcommand*{\scr@ifdvioutput}{% \scr@ifundefinedorrelax{pdfoutput}{% \scr@ifundefinedorrelax{OpMode}{% @@ -786,6 +915,7 @@ }% } \let@as@internal@defined{ifdvioutput} +%</base> % \end{macrocode} % \end{macro} % \end{macro} @@ -795,12 +925,14 @@ % Gibt Material aus, erzeugt dabei aber nur Höhe und Breite, jedoch keine % Tiefe. % \begin{macrocode} +%<*base> \newcommand*{\scr@smashdp}[1]{% \begingroup \def\finsm@sh{\dp\z@\z@\box\z@}% \smash{#1}% \endgroup } +%</base> % \end{macrocode} % \end{macro} % @@ -808,66 +940,248 @@ % \changes{v2.97d}{2007/10/03}{neu} % Arbeitet wie \cs{PackageInfo} aber ohne Ausgabe der Zeilennummer. % \begin{macrocode} +%<*base> \providecommand*{\PackageInfoNoLine}[2]{% \PackageInfo{#1}{#2\@gobble}% } +%</base> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ClassInfoNoLine} +% \changes{v2.98c}{2008/02/15}{neu} +% Arbeitet wie \cs{ClassInfo} aber ohne Ausgabe der Zeilennummer. +% \begin{macrocode} +%<*base> +\providecommand*{\ClassInfoNoLine}[2]{% + \ClassInfo{#1}{#2\@gobble}% +} +%</base> % \end{macrocode} % \end{macro} % % \subsection{Definition von KOMA-\textsf{keyval}-Schlüsseln (Hauptteil)} % -% \begin{macro}{\KOMAExecuteOptions} -% \changes{v2.97c}{2007/04/19}{neu (nur für Klassen- und Paketautoren)} -% Liste von Optionen ausführen +% \begin{macro}{\FamilyExecuteOptions} +% \changes{v3.00}{Neue Anweisung} +% Entspriche \cs{ExecuteOptions} jedoch \textsf{keyval}-Optionen. % \begin{macrocode} -\newcommand*{\KOMAExecuteOptions}[2][KOMA]{% +%<*base> +\newcommand*{\FamilyExecuteOptions}[3][.\@currname.\@currext]{% \def\reserved@a##1\@nil{% - \@for\KOMA@key@atlist:=#2\do{% - \expandafter\KOMA@key@split@name@value\KOMA@key@atlist==\@nil - \scr@ifundefinedorrelax{KV@#1@\KOMA@key@name}{}{% - \edef\reserved@a{\noexpand\setkeys{#1}{\KOMA@key@atlist}% + \@for\scr@key@atlist:=#3\do{% + \expandafter\scr@key@split@name@value\scr@key@atlist==\@nil + \scr@ifundefinedorrelax{KV@#2@\scr@key@name}{}{% + \edef\reserved@a{\noexpand\setkeys{#2}{\scr@key@atlist}% }% \reserved@a }% - \scr@ifundefinedorrelax{KV@#1.\@currname.\@currext @\KOMA@key@name}{}{% + \scr@ifundefinedorrelax{KV@#2#1@\scr@key@name}{}{% \edef\reserved@a{% - \noexpand\setkeys{#1.\@currname.\@currext}{\KOMA@key@atlist}% + \noexpand\setkeys{#2#1}{\scr@key@atlist}% }% \reserved@a }% - \let\CurrentOption\KOMA@key@atlist + \let\CurrentOption\scr@key@atlist \csname ds@\CurrentOption\endcsname }% \edef\CurrentOption{##1}% }% \expandafter\reserved@a\CurrentOption\@nil } +\@onlypreamble\FamilyExecuteOptions +%</base> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\KOMAExecuteOptions} +% \changes{v2.97c}{2007/04/19}{Neue Anweisung} +% \changes{v3.00}{2008/04/30}{Kein optionales Argument mehr} +% Liste von Optionen ausführen +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMAExecuteOptions}{\FamilyExecuteOptions{KOMA}} \@onlypreamble\KOMAExecuteOptions +%</koma> % \end{macrocode} % \end{macro} % +% \begin{macro}{\FamilyOptions} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% Es werden Schlüssel einer Familie verwendet. Existiert ein Schlüssel nicht, +% so wird eine Fehlermeldung ausgegeben. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyOptions}[2]{% + \Family@Options{#1}{#2}{% + \PackageError{scrbase}{% + option `\scr@key@name' unknown at family `#1'% + }{% + You have used \string\FamilyOptions{#1} to set + `\scr@key@atlist',\MessageBreak + but family `#1' does not know any option named + `\scr@key@name'.\MessageBreak + See the manual for the package or class using family `#1' for + more\MessageBreak + informations about options and their values.% + }% + }% +} +% \begin{macro}{\Family@Options} +% \changes{v3.00}{2008/04/30}{Neues Makro (intern)} +% Das interne Macro \cs{Family@Options} macht die eigentliche Arbeit. Das +% erste Argument ist dabei die Familie. Das zweite Argument ist die Liste der +% Optionen, das zweite Code, der im Fehlerfall ausgeführt werden soll. Dabei +% sind die Makros \cs{scr@key@atlist}, \cs{scr@key@name} und +% \cs{scr@key@value} gültig und können verwendet werden. +% +% Anmerkung: Es wird nicht auf \textsf{xkeyval} und den dortigen Befehl +% \cs{setkeys+} gesetzt, weil dieser die Optionen nicht in der Reihenfolge der +% Optionen, sondern in der Reihenfolge der Familien ausführt. Das passt mir +% aber hier gar nicht. +% +% In einer Schleife über alle Optionen werden die Optionen zunächst in Option +% und Wert aufgespaltet. +% \begin{macrocode} +\newcommand*{\Family@Options}[3]{% + \@for\scr@key@atlist:=#2\do{% + \expandafter\scr@key@split@name@value\scr@key@atlist==\@nil +% \end{macrocode} +% Dann wird in einer Schleife über alle Familien festgestellt, ob die Option +% in einer Familie bekannt ist und ggf. ausgeführt. +% \begin{macrocode} + \scr@key@found@false + \edef\@tempa{\csname #1@key@familylist\endcsname}% + \@for\@tempa:=\@tempa\do{% + \scr@ifundefinedorrelax{KV@\@tempa @\scr@key@name}{}{% + \scr@key@found@true + \edef\reserved@a{\noexpand\setkeys{\@tempa}{\scr@key@atlist}% + \noexpand\edef\noexpand\@tempa{\@tempa}% + \noexpand\edef\noexpand\scr@key@atlist{\scr@key@atlist}% + \noexpand\edef\noexpand\scr@key@name{\scr@key@name}% + \noexpand\edef\noexpand\scr@key@value{\scr@key@value}% + }% + \reserved@a + }% + }% + \ifscr@key@found@\else#3\fi + }% +} +% \end{macrocode} +% \begin{macro}{\ifscr@key@found@} +% \changes{v2.97c}{2007/04/19}{Neuer Schalter (intern)} +% \changes{v3.00}{2008/04/30}{umbenannt von \cs{ifKOMA@key@found}} +% \begin{macro}{\scr@key@atlist} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} +% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@atlist}} +% \begin{macro}{\scr@key@name} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} +% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@name}} +% \begin{macro}{\scr@key@value} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} +% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@value}} +% \begin{macro}{\scr@key@split@name@value} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} +% \changes{v2.97e}{2007/11/10}{verwendet \cs{KV@@sp@def} zur Entsorgung von +% Leerzeichen} +% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@split@name@value}} +% \begin{macrocode} +\newif\ifscr@key@found@ +\newcommand*{\scr@key@atlist}{} +\newcommand*{\scr@key@name}{} +\newcommand*{\scr@key@value}{} +\newcommand*{\scr@key@split@name@value}{} +\def\scr@key@split@name@value#1=#2=#3\@nil{% + \KV@@sp@def\scr@key@name{#1}% + \KV@@sp@def\scr@key@value{#2}% +} +%</base> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\FamilyOption} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \begin{macro}{\Family@Option} +% \changes{v3.00}{2008/04/30}{Neu (intern)} +% Im Gegensatz zu \cs{FamilyOptions} kann man mit dieser Anweisung nur eine +% einzige Option setzen. Dafür kann man gleich mehrere durch Komma getrennte +% Argumente für diese Option setzen. Das erste obligatorische Argument ist +% wieder die Familie, das zweite obligatorische Argument ist die Option, das +% dritte, obligatorische Argument ist die Liste der Werte für diese Option. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyOption}[3]{% + \Family@Option{#1}{#2}{#3}{% + \PackageError{scrbase}{% + unknown option `\scr@key@name' for familie `#1'% + }{% + You have used \string\FamilyOption{#1} to set + `\scr@key@name',\MessageBreak + but family '#1' does not know any option named + `\scr@key@name'.\MessageBreak + See the the manual of the class or package, that provides + family\MessageBreak + `#1' for more informations about options and their values.% + }% + }% +} +\newcommand*{\Family@Option}[4]{% + \expandafter\KV@@sp@def\expandafter\scr@key@name\expandafter{#2}% + \scr@key@found@false + \edef\@tempa{\csname #1@key@familylist\endcsname}% + \@for\@tempa:=\@tempa\do{% + \scr@ifundefinedorrelax{KV@\@tempa @\scr@key@name}{}{% + \scr@key@found@true + \let\@tempb\@tempa + }% + }% + \ifscr@key@found@ + \let\reserved@a\@empty + \@for\@tempa:=#3\do{% + \expandafter\KV@@sp@def\expandafter\@tempa\expandafter{\@tempa}% + \edef\reserved@a{\reserved@a,\scr@key@name=\@tempa}% + }% + \ifx\reserved@a\@empty + \edef\reserved@a{\noexpand\setkeys{\@tempb}{\scr@key@name}}% + \else + \edef\reserved@a{% + \noexpand\setkeys{\@tempb}{\expandafter\@gobble\reserved@a}}% + \fi + \reserved@a + \else + #4 + \fi +} +%</base> +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macro}{\KOMAoptions} % \changes{v2.96}{2006/08/20}{Neuer Hook nach den Optionen} % \changes{v2.97c}{2007/04/19}{Optionen aller KOMA-Familien abarbeiten} -% \begin{macro}{\post@kopt@hook} -% \changes{v2.96}{2006/08/20}{Neuer Hook nach den Optionen} -% \begin{macro}{\AfterKOMAoptions} -% \changes{v2.96}{2006/08/20}{Neuer Hook nach den Optionen} % Es werden Schlüssel verwendet und ggf. danach noch Dinge ausgeführt. % \begin{macrocode} +%<*koma> \newcommand*{\KOMAoptions}[1]{% \let\post@kopt@hook\@empty \KOMA@options{#1}{% -% Wenn der Schlüssel für keine der bekannten Familien definiert ist, wird ein -% Fehler ausgegeben. +% \end{macrocode} +% Wenn der Schlüssel für keines der bekannten Familienmitglieder definiert +% ist, wird ein Fehler ausgegeben. % \begin{macrocode} \PackageError{scrkbase}{% - unknown KOMA option `\KOMA@key@name'% + unknown KOMA option `\scr@key@name'% }{% You have used \string\KOMAoptions\space to set - `\KOMA@key@atlist',\MessageBreak + `\scr@key@atlist',\MessageBreak but KOMA-Script does not know any option named - `\KOMA@key@name'.\MessageBreak + `\scr@key@name'.\MessageBreak See the KOMA-Script manual for more informations about options and\MessageBreak their values.% @@ -892,53 +1206,17 @@ % In einer Schleife über alle Optionen werden die Optionen zunächst in Option % und Wert aufgespaltet. % \begin{macrocode} -\newcommand*{\KOMA@options}[2]{% - \@for\KOMA@key@atlist:=#1\do{% - \expandafter\KOMA@key@split@name@value\KOMA@key@atlist==\@nil -% \end{macrocode} -% Dann wird in einer Schleife über alle Familien festgestellt, ob die Option -% in einer Familie bekannt ist und ggf. ausgeführt. -% \begin{macrocode} - \KOMA@key@found@false - \@for\@tempa:=\KOMA@key@familylist\do{% - \scr@ifundefinedorrelax{KV@\@tempa @\KOMA@key@name}{}{% - \KOMA@key@found@true - \edef\reserved@a{\noexpand\setkeys{\@tempa}{\KOMA@key@atlist}% - \noexpand\edef\noexpand\@tempa{\@tempa}% - \noexpand\edef\noexpand\KOMA@key@atlist{\KOMA@key@atlist}% - \noexpand\edef\noexpand\KOMA@key@name{\KOMA@key@name}% - \noexpand\edef\noexpand\KOMA@key@value{\KOMA@key@value}% - }% - \reserved@a - }% - }% - \ifKOMA@key@found@\else#2\fi - }% -} +\newcommand*{\KOMA@options}{\Family@Options{KOMA}} +%</koma> % \end{macrocode} % \end{macro} -% \begin{macro}{\ifKOMA@key@found@} -% \changes{v2.97c}{2007/04/19}{Neuer Schalter (intern)} -% \begin{macro}{\KOMA@key@atlist} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} -% \begin{macro}{\KOMA@key@name} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} -% \begin{macro}{\KOMA@key@value} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} -% \begin{macro}{\KOMA@key@split@name@value} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} -% \changes{v2.97e}{2007/11/10}{verwendet \cs{KV@@sp@def} zur Entsorgung von -% Leerzeichen} +% \end{macro} +% +% \begin{macro}{\post@kopt@hook} +% \begin{macro}{\AfterKOMAoptions} +% Eine Option kann dafür sorgen, dass nach den Optionen noch etwas passiert. % \begin{macrocode} -\newif\ifKOMA@key@found@ -\newcommand*{\KOMA@key@atlist}{} -\newcommand*{\KOMA@key@name}{} -\newcommand*{\KOMA@key@value}{} -\newcommand*{\KOMA@key@split@name@value}{} -\def\KOMA@key@split@name@value#1=#2=#3\@nil{% - \KV@@sp@def\KOMA@key@name{#1}% - \KV@@sp@def\KOMA@key@value{#2}% -} +%<*koma> \newcommand*{\post@kopt@hook}{} \let\post@kopt@hook\relax \newcommand*{\AfterKOMAoptions}{% @@ -954,7 +1232,11 @@ \fi \post@kopt@hook } +%</koma> % \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macro}{\l@addto@macro} % \changes{v2.8p}{2001/09/22}{neu (intern)} % Damit \cs{AfterKOMAoptions} lokal möglich ist, wird eine lokal arbeitende @@ -963,6 +1245,7 @@ % Erweiterung um Makrodefinitonen mit Argumenten wie \cs{g@addto@macro} % verhält} % \begin{macrocode} +%<*base> \scr@ifundefinedorrelax{unexpanded}{% \newcommand*{\g@addto@macro@temp}{}% \newcommand{\l@addto@macro}[2]{% @@ -977,34 +1260,123 @@ \edef#1{\unexpanded\expandafter{#1#2}}% }% } +%</base> % \end{macrocode} % \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} +% +% \begin{macro}{\KOMAoption} +% \changes{v2.98c}{2008/03/12}{Neue Anweisung} +% Im Gegensatz zu \cs{KOMAoptions} kann man mit dieser Anweisung nur eine +% einzige Option setzen. Dafür kann man gleich mehrere durch Komma getrennte +% Argumente für diese Option setzen. Das erste obligatorische Argument ist die +% Option, das zweite, obligatorische Argument ist die Liste der Werte für +% diese Option. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMAoption}[2]{% + \let\post@kopt@hook\@empty + \Family@Option{KOMA}{#1}{#2}{% + \PackageError{scrkbase}{% + unknown KOMA option `\scr@key@name'% + }{% + You have used \string\KOMAoption\space to set + `\scr@key@name',\MessageBreak + but KOMA-Script does not know any option named + `\scr@key@name'.\MessageBreak + See the KOMA-Script manual for more informations about options + and\MessageBreak + their values.% + }% + }% + \post@kopt@hook\let\post@kopt@hook\relax +} +%</koma> +% \end{macrocode} % \end{macro} % -% \begin{macro}{\KOMA@unknown@keyval} +% \begin{macro}{\FamilyUnknownKeyValue} % Dieses Makro berichtet über Fehler wegen unbekannter Wertübergabe an -% einen Schlüssel. Das erste Argument ist der Schlüssel, das zweite -% der Wert und das dritte die Liste der möglichen Werte. +% einen Schlüssel. Das erste Argument ist die Familie, das zweit der +% Schlüssel, das dritte der Wert und das vierte die Liste der möglichen +% Werte. % \begin{macrocode} -\newcommand*{\KOMA@unknown@keyval}[3]{% +%<*base> +\newcommand*{\FamilyUnknownKeyValue}[4]{% \PackageError{% - scrkbase% + scrbase% }{% - KOMA option `#1' has no value `#2'% + option `#2' of family `#1' has no value `#3'% }{% - You've tried to set option `#1' to value `#2'.\MessageBreak + You've tried to set option `#2' of family '#1' to value `#3'.\MessageBreak But allowed values are only:\MessageBreak - #3.\MessageBreak - See the KOMA-Script manual for more information.% + #4\FamilyElseValues.\MessageBreak + See the manual of the class or package, that provides family + `#1'\MessageBreak + for more information about options and their values.% + }% +} +%</base> +% \end{macrocode} +% \begin{macro}{\FamilyElseValues} +% \changes{v3.00}{2008/05/02}{Neue Anweisung} +% Diese Anweisung kann vor dem Setzen eines Wertes definiert werden, um bei +% einer etwaigen Fehlermeldung weitere Werte als erlaubt auszugeben. Am Ende +% von \cs{FamilySetBool} und \cs{FamilySetNumerical} wird die Anweisung +% automatisch zu \cs{@empty}. Es ist zu beachten, dass bei der Definition der +% Anweisung als erstes ein Komma und ein Leerzeichen zu setzen ist! +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyElseValues}{} +%</base> +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\FamilyBoolKey} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% Dieses Makro definiert einen Schlüssel für eine Familie. Dieser Schlüssel +% ist ein Schalter, der über diverse Werte geschaltet werden kann. +% Das erste, optionale Argument ist das Familienmitglied, das zweite, +% obligatorische Argument ist die Familie, das dritte der Name des Schlüssels, +% das vierte der Schalter. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyBoolKey}[4][.\@currname.\@currext]{% + \@ifundefined{if#4}{% + \expandafter\newif\csname if#4\endcsname + }{}% + \DefineFamilyKey[{#1}]{#2}{#3}[true]{\FamilySetBool{#2}{#3}{#4}{##1}}% +} +\newcommand*{\FamilySetBool}[4]{% + \ifstr{#4}{true}{\@nameuse{#3true}}{% + \ifstr{#4}{on}{\@nameuse{#3true}}{% + \ifstr{#4}{yes}{\@nameuse{#3true}}{% + \ifstr{#4}{false}{\@nameuse{#3false}}{% + \ifstr{#4}{off}{\@nameuse{#3false}}{% + \ifstr{#4}{no}{\@nameuse{#3false}}{% + \FamilyUnknownKeyValue{#1}{#2}{#3}{% + `true', `on', `yes', `false', `off', `no'% + }% + }% + }% + }% + }% + }% }% + \let\FamilyElseValues\@empty } +%</base> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\KOMA@unknown@keyval} +% Dieses Makro berichtet über Fehler wegen unbekannter Wertübergabe an +% einen Schlüssel. Das erste Argument ist der Schlüssel, das zweite +% der Wert und das dritte die Liste der möglichen Werte. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@unknown@keyval}{\FamilyUnknownKeyValue{KOMA}} +%</koma> % \end{macrocode} % \end{macro} % @@ -1017,12 +1389,9 @@ % des Schküssels grundsätzlich "`true"' ist. Das erste Argument ist % der Name des Schlüssels, der zweite ist der Name des Schalters. % \begin{macrocode} -\newcommand*{\KOMA@ifkey}[2]{% - \@ifundefined{if#2}{% - \expandafter\newif\csname if#2\endcsname - }{}% - \KOMA@key{#1}[true]{\KOMA@set@ifkey{#1}{#2}{##1}}% -} +%<*koma> +\newcommand*{\KOMA@ifkey}{\FamilyBoolKey{KOMA}} +%</koma> % \end{macrocode} % \begin{macro}{\KOMA@set@ifkey} % Die eigentliche Arbeit bei der ganzen Sache wird von diesem internen @@ -1030,70 +1399,61 @@ % Name des Schalters zu Argument 2 und der Wert des Schlüssels wird % Argument 3. % \begin{macrocode} -\newcommand*{\KOMA@set@ifkey}[3]{% - \ifstr{#3}{true}{\@nameuse{#2true}}{% - \ifstr{#3}{on}{\@nameuse{#2true}}{% - \ifstr{#3}{yes}{\@nameuse{#2true}}{% - \ifstr{#3}{false}{\@nameuse{#2false}}{% - \ifstr{#3}{off}{\@nameuse{#2false}}{% - \ifstr{#3}{no}{\@nameuse{#2false}}{% - \KOMA@unknown@keyval{#1}{#3}{% - `true', `on', `yes', `false', `off', `no'% - }% - }% - }% - }% - }% - }% - }% -} +%<*koma> +\newcommand*{\KOMA@set@ifkey}{\FamilySetBool{KOMA}} +%</koma> % \end{macrocode} % \end{macro} % \end{macro} % -% \begin{macro}{\KOMA@ncmdkey} -% Ein ähnliches Makro definiert einen Schlüssel, der ein nummerisches -% Makro auf einen bestimmten Wert setzt. Dabei können auch -% verschiedene symbolische Werte auf denselben nummerischen Wert -% abgebildet werden. Das erste Argument ist obligatorisch und der Name -% des Schlüssels. Das zweite Argument ist optional und der Defaultwert -% für den Schlüssel. Das dritte Argument ist obligatorisch und der -% Name des Makros, das definiert werden soll. Der Defaultwert dafür -% ist 0. Das vierte Argument ist obligatorisch und die Liste der -% symbolischen und nummerischen Wert. Die Liste hat die Form: +% \begin{macro}{\FamilyNumericalKey} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \begin{macro}{\Family@Numerical@Key} +% \changes{v3.00}{2008/05/28}{Neu (intern)} +% Ein ähnliches Makro definiert einen Schlüssel, der ein nummerisches Makro +% auf einen bestimmten Wert setzt. Dabei können auch verschiedene symbolische +% Werte auf denselben nummerischen Wert abgebildet werden. Das erste, +% optionale Argument ist das Familienmitglied, das zweite, obligatorische +% Argument ist die Familie, das dritte, obligatorische Argument ist der Name +% der Option, das vierte, optionale Artument ist der Defaultwert für den +% Schlüssel, das fünfte, obligatorische Argument ist der Name des Makros, das +% (in der Voreinstellung als 0) definiert werden soll, das sechste, +% obligatorische Argument ist die Liste der symbolischen und nummerischen +% Werte. Die Liste hat die Form: % \{\emph{Symbol}\}\{\emph{Wert}\},\{\emph{Symbol}\}\{\emph{Wert}\}\dots -% \begin{macro}{\KOMA@@ncmdkey} -% Da nicht das erste, sondern das zweite Argument optional ist, wird -% ein Hilfsmakro benötigt. +% Das interne Makro wird benötigt, um das vierte, optionale Argument zu +% ermöglichen. Dabei ist dann das erste Argument nicht mehr optional, sondern +% obligatorisch. % \begin{macrocode} -\newcommand*{\KOMA@ncmdkey}[1]{% +%<*base> +\newcommand*{\FamilyNumericalKey}[3][.\@currname.\@currext]{% \@ifnextchar [%] - {\KOMA@@ncmdkey{#1}}{\KOMA@@ncmdkey{#1}[]}% + {\Family@Numerical@Key{#1}{#2}{#3}}{\Family@Numerical@Key{#1}{#2}{#3}[]}% } -\newcommand*{\KOMA@@ncmdkey}{} -\def\KOMA@@ncmdkey#1[#2]#3#4{% - \ifx\relax#2\relax\else - \@namedef{KV@KOMA@#1@default\expandafter}\expandafter{% - \csname KV@KOMA@#1\endcsname{#2}% - }% +\newcommand*{\Family@Numerical@Key}{} +\def\Family@Numerical@Key#1#2#3[#4]#5#6{% + \@ifundefined{#5}{\@namedef{#5}{0}}% + \ifx\relax#4\relax + \DefineFamilyKey[{#1}]{#2}{#3}{\FamilySetNumerical{#2}{#3}{#5}{#6}{##1}}% + \else + \DefineFamilyKey[{#1}]{#2}{#3}[{#4}]{% + \FamilySetNumerical{#2}{#3}{#5}{#6}{##1}}% \fi - \@ifundefined{#3}{\@namedef{#3}{0}}% - \KOMA@key{#1}{\KOMA@set@ncmdkey{#1}{#3}{#4}{##1}}% } % \end{macrocode} -% \begin{macro}{\KOMA@set@ncmdkey} +% \begin{macro}{\FamilySetNumerical} % Die eigentliche Arbeit dabei wird von diesem Makro erledigt. Dabei -% wird der Name des Schlüssels zu Argument 1, der Name des Makros, -% das definiert werden soll zu Argument 2, die Liste zu Argument 3 und -% der Wert, auf den gesetzt werden soll, zu Argument 4. +% wird die Familie zu Argument 1, der Name des Schlüssels zu Argument 2, der +% Name des Makros, das definiert werden soll zu Argument 3, die Liste zu +% Argument 4 und der Wert, auf den gesetzt werden soll, zu Argument 5. % \begin{macrocode} -\newcommand*{\KOMA@set@ncmdkey}[4]{% +\newcommand*{\FamilySetNumerical}[5]{% \begingroup - \edef\@searched{#4}% + \edef\@searched{#5}% \let\@tempa=\@empty \let\@tempb=\@empty \@tempswafalse - \@for\@valuelist:=#3\do{% + \@for\@valuelist:=#4\do{% \if@tempswa\else \edef\@tempc{\expandafter\@firstoftwo\@valuelist}% \edef\@tempa{\@tempa\@tempb`\@tempc'}% @@ -1106,40 +1466,100 @@ }% \if@tempswa \edef\@tempa{\endgroup - \noexpand\@namedef{#2}{\@tempa}% + \noexpand\@namedef{#3}{\@tempa}% }% \else - \KOMA@unknown@keyval{#1}{#4}{\@tempa}% + \FamilyUnknownKeyValue{#1}{#2}{#5}{\@tempa}% \let\@tempa=\endgroup \fi \@tempa + \let\FamilyElseValues\@empty } +%</base> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\KOMA@ncmdkey} +% Ein ähnliches Makro definiert einen Schlüssel, der ein nummerisches +% Makro auf einen bestimmten Wert setzt. Dabei können auch +% verschiedene symbolische Werte auf denselben nummerischen Wert +% abgebildet werden. Das erste Argument ist obligatorisch und der Name +% des Schlüssels. Das zweite Argument ist optional und der Defaultwert +% für den Schlüssel. Das dritte Argument ist obligatorisch und der +% Name des Makros, das definiert werden soll. Der Defaultwert dafür +% ist 0. Das vierte Argument ist obligatorisch und die Liste der +% symbolischen und nummerischen Wert. Die Liste hat die Form: +% \{\emph{Symbol}\}\{\emph{Wert}\},\{\emph{Symbol}\}\{\emph{Wert}\}\dots +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@ncmdkey}{\FamilyNumericalKey{KOMA}} +%</koma> +% \end{macrocode} +% \begin{macro}{\KOMA@set@ncmdkey} +% Die eigentliche Arbeit dabei wird wahlweise von diesem Makro erledigt. Dabei +% wird der Name des Schlüssels zu Argument 1, der Name des Makros, +% das definiert werden soll zu Argument 2, die Liste zu Argument 3 und +% der Wert, auf den gesetzt werden soll, zu Argument 4. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@set@ncmdkey}{\FamilySetNumerical{KOMA}} +%</koma> % \end{macrocode} -% \end{macro} % \end{macro} % \end{macro} % +% % \begin{macro}{\KOMA@DeclareObsoleteOption} % \changes{v2.96}{2006/08/20}{\cs{CurrentOption wir geschützt}} +% \begin{macro}{\KOMA@@DeclareObsoleteOption} +% \changes{v2.98c}{2008/02/18}{neu (intern)} +% \begin{macro}{\KOMA@@@DeclareObsoleteOption} +% \changes{v2.98c}{2008/02/18}{neu (intern)} +% \begin{macro}{\KOMA@iv@DeclareObsoleteOption} +% \changes{v2.98c}{2008/02/18}{neu (intern)} % Mit Hilfe dieses Makros kann eine Option definiert werden, die % eigentlich obsolete ist. Statt dieser Option wird dann ein Schlüssel % verwendet. Das erste Argument ist optional und muss dann entweder -% \cs{PackageInfo}, \cs{PackageInfoNoLine}, \cs{PackageWarning} oder -% \cs{PackageWarningNoLine} sein. Das zweite Argument ist der Name der -% Option. Das dritte Argument ist das Setzen des gewünschten Schlüssels. +% \cs{PackageInfo}, \cs{PackageInfoNoLine}, \cs{PackageWarning}, +% \cs{PackageWarningNoLine} oder das gleiche für Klassen sein. Das zweite +% Argument ist ebenfalls optional und der Name des Pakets oder der Klasse. Das +% dritte Argument ist der Name der Option. Das vierte Argument ist das Setzen +% des gewünschten Schlüssels. % \begin{macrocode} -\newcommand*{\KOMA@DeclareObsoleteOption}[3][\@gobbletwo]{% - \DeclareOption{#2}{\KOMA@UseObsoleteOption{#1}{#2}{#3}}% +%<*koma> +\newcommand*{\KOMA@DeclareObsoleteOption}{% + \@ifnextchar [%] + {\KOMA@@DeclareObsoleteOption}% + {\KOMA@@DeclareObsoleteOption[\@gobbletwo]}% +} +\newcommand*{\KOMA@@DeclareObsoleteOption}{} +\def\KOMA@@DeclareObsoleteOption[#1]{% + \@ifnextchar [%] + {\KOMA@@@DeclareObsoleteOption{#1}}% + {\KOMA@@@DeclareObsoleteOption{#1}[]}% +} +\newcommand*{\KOMA@@@DeclareObsoleteOption}{} +\def\KOMA@@@DeclareObsoleteOption#1[#2]#3#4{% + \ifstr{#2}{}{% + \KOMA@iv@DeclareObsoleteOption{#1}{\@currname}{#3}{#4}% + }{% + \KOMA@UseObsoleteOption{#1}{#2}{#3}{#4}% + }% +} +\newcommand*{\KOMA@iv@DeclareObsoleteOption}[4]{% + \DeclareOption{#3}{\KOMA@UseObsoleteOption{#1{#2}}{#3}{#4}}% } % \end{macrocode} % \begin{macro}{\KOMA@UseObsoleteOption} % \changes{v2.97c}{2007/04/19}{neu (intern)} % Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind -% dieselben. +% 1. Meldungsbefehl, 2. obsolete Option, 3. Setzen des Schlüssels. % \begin{macrocode} \newcommand*{\KOMA@UseObsoleteOption}[3]{% \let\scr@sr@co\CurrentOption - #1{scrkbase}{% + #1{% You've used obsolete option `#2'.\MessageBreak \protect\KOMAExecuteOptions{#3} will be\MessageBreak used instead.\MessageBreak @@ -1150,6 +1570,20 @@ \let\CurrentOption\scr@sr@co } % \end{macrocode} +% \begin{macro}{\scr@sr@co} +% \changes{v2.96}{2006/08/20}{neu (intern)} +% Da das \texttt{xkeyval}-Paket leider \cs{CurrentOption} vernichtet, das aber +% innerhalb von \cs{ProcessOptions} und \cs{KOMAProcessOptions} nach dem +% Ausführen der Option noch benötigt wird, muss die Anweisung gesichert +% werden. Dafür wird ein Hilfsmakro benötigt. +% \begin{macrocode} +\newcommand*{\scr@sr@co}{} +%</koma> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % \end{macro} % \end{macro} % @@ -1163,6 +1597,7 @@ % definierte Makro selbst hat Schaltercharakter, ist also nicht % \cs{long} und versteht auch keine Argumente. % \begin{macrocode} +%<*koma> \newcommand*{\KOMA@newobsoletecommand}[3][\@gobbletwo]{% \newcommand*{#2}{\KOMA@UseObsoleteCommand{#1}{\string#2}{#3}}% } @@ -1182,6 +1617,7 @@ }% \KOMAoptions{#3}% } +%</koma> % \end{macrocode} % \end{macro} % \end{macro} diff --git a/Master/texmf-dist/source/latex/koma-script/scrkbib.dtx b/Master/texmf-dist/source/latex/koma-script/scrkbib.dtx index 892bfb75b78..b62604c1261 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkbib.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkbib.dtx @@ -1,8 +1,8 @@ -% \CheckSum{144} +% \CheckSum{306} % \iffalse meta-comment % ====================================================================== % scrkbib.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkbib.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrkbib.dtx %<*driver> % \fi -\ProvidesFile{scrkbib.dtx}[2006/03/28 v2.95 KOMA-Script (bibliography)] +\ProvidesFile{scrkbib.dtx}[2008/10/16 v3.00 KOMA-Script (bibliography)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -101,94 +101,256 @@ % \iffalse %<*option> % \fi -% -% \subsection{Optionen für das Literaturverzeichnis} -% -% \begin{option}{openbib} -% \changes{v2.3g}{1996/01/14}{\cs{if@openbib} (\cs{@openbibtrue}, -% \cs{@openbibfalse}) entfernt} -% \changes{v2.3g}{1996/01/14}{Definition der openbib Option neu -% implementiert} -% \begin{macro}{\@openbib@code} -% \begin{macro}{\newblock} -% Mit dieser Option kann eine alternative Darstellung der -% Literatureinträge aktiviert werden. Dabei fügt \cs{newblock} keinen -% horizontalen Abstand mehr ein, sondern beginnt einen neuen Absatz -% (in Form einer neuen Zeile). +% \subsection{Anweisungen, die für die Optionen benötigt werden} +% +% Einige Anweisungen werden über Optionen verändert. Dazu müssen sie aber +% bereits vor der Abarbeitung der Optionen definiert sein. +% +% \subsubsection{Literaturverzeichnisstile} +% +% \begin{macro}{\newbibstyle} +% \changes{v2.98c}{2008/02/15}{Neu} +% Neue Literaturverzeichnisstile müssen mit dieser Anweisung definiert werden, +% wenn sie von der Fehlermeldung korrekt angezeigt werden sollen. Das erste, +% optionale Argument ist der Name eines Elternstils. Das zweite +% Argument ist der Name des Stils. Das dritte Argument ist Code für den +% Stil. Darin sollten normalerweise Umdefinierungen für \cs{@openbib@code}, +% \cs{newblock}, \cs{bib@beginhook}, \cs{bib@endhook} enthalten sein. Die +% genannten Makros werden am Anfang des Stils zurückgesetzt. Danach wird der +% Elternstil geladen und dann die eigenen Definitionen. % \begin{macrocode} -%<*!scrlettr> -\DeclareOption{openbib}{% - \AtEndOfPackage{% - \renewcommand*\@openbib@code{% - \advance\leftmargin\bibindent - \itemindent -\bibindent - \listparindent \itemindent - \parsep \z@ +\newcommand{\newbibstyle}[3][]{% + \scr@ifundefinedorrelax{scr@bibstyle@#2}{% + \scr@ifundefinedorrelax{scr@bibstyle@#1}{% + \ClassError{\KOMAClassName}{% + parent bibliography style `#1' does not exist}{% + You've told me to define the new bibliography style `#2'\MessageBreak + to be a child of bibliography style `#1', but bibliography + style\MessageBreak + `#1' does not exist.\MessageBreak + You have to remove the parent declaration or use an existing parent! + See the KOMA-Script manual for more information.% + }% + }{% + \@namedef{scr@bibstyle@#2}{% + \let\@openbib@code\@empty + \let\newblock\@empty + \let\bib@beginhook\@empty + \let\bib@endhook\@empty + \csname scr@bibstyle@#1\endcsname + #3% + }% + \g@addto@macro\scr@bibstylelist{, `#2'}% + }% + }{% + \ClassError{\KOMAClassName}{bibliography style `#2' already exists}{% + You've told me to define the new bibliography style `#2',\MessageBreak + but this style already exists.\MessageBreak + You have to use another bibliography style name.\MessageBreak + See the KOMA-Script manual for more information.% }% - \renewcommand*\newblock{\par}% }% } -%</!scrlettr> % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{option} +% \begin{macro}{\scr@bibstyle@} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% Nur ein Dummy, wenn kein Elternstil existiert. +% \begin{macrocode} +\newcommand*{\scr@bibstyle@}{} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\bib@beginhook} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% \begin{macro}{\bib@endhook} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% Die beiden Haken, wie sie durch den Literaturverzeichnisstil vorgegeben +% werden. +% \begin{macrocode} +\newcommand*{\bib@beginhook}{} +\newcommand*{\bib@endhook}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\scr@bibstylelist} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% Liste der mit \cs{newbibstyle} definierten und daher bekannten +% Literaturverzeichnisstile. +% \begin{macro}{\@openbib@code} +% \changes{v2.3g}{1996/01/14}{Neu (intern)} +% \changes{v2.98c}{2008/02/15}{wird nun früher definiert} +% Code, der am Anfang des Literaturverzeichnisses ausgeführt wird und +% normalerweise ursprünglich für die \texttt{openbib}-Funktionalität verwendet +% wurde. Inzwischen wird er für die komplette Stilauswahl verwendet. +% \begin{macro}{\newblock} +% \changes{v2.3g}{1996/01/14}{Grundeinstellung geändert} +% \changes{v2.98c}{2008/02/15}{wird nun früher definiert} +% \begin{macrocode} +\newcommand*{\scr@bibstylelist}{\@gobble} +\newcommand*{\@openbib@code}{} +\newcommand*{\newblock}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\scr@bibstyle@openstyle} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% Vordefiniert sind zwei Stile. Mit dem Bibliographystil \texttt{openstyle} +% kann eine alternative Darstellung der Literatureinträge aktiviert +% werden. Dabei fügt \cs{newblock} keinen horizontalen Abstand mehr ein, +% sondern beginnt einen neuen Absatz (in Form einer neuen Zeile). +% \begin{macro}{\scr@bibstyle@oldstyle} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% Der Stil \texttt{oldstyle} entspricht hingegen der Voreinstellung. +% \begin{macrocode} +\newbibstyle{openstyle}{% + \renewcommand*{\@openbib@code}{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% + \renewcommand*{\newblock}{\par}% +} +\newbibstyle{oldstyle}{% + \renewcommand*{\newblock}{\hskip .11em\@plus.33em\@minus.07em}% +} +\scr@bibstyle@oldstyle +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} % % -% \begin{option}{bibtotoc} -% \changes{v2.3h}{1995/01/21}{neue Option} -% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt} -% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt} -% \changes{v2.7}{2001/01/03}{Klammerung korrigiert} -% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die -% thebibliography-Umgebung verschoben} -% \begin{option}{bibtotocnumbered} -% \changes{v2.3h}{1995/01/21}{neue Option} -% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt} -% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt} -% \changes{v2.7}{2001/01/03}{Klammerung korrigiert} +% \subsubsection{Überschrift des Literaturverzeichnisses} +% +% \begin{macro}{\bib@heading} +% \changes{v2.3h}{1995/01/21}{neu (intern)} +% \changes{v2.6c}{2000/06/10}{die Präambel wird gesetzt} % \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird % verwendet} -% \changes{v2.7i}{2001/05/17}{\cs{chapter} statt \cs{addchap}} % \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die -% thebibliography-Umgebung verschoben} -% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel} -% Die Option \texttt{bibtotoc} sorgt dafür, dass das -% Literaturverzeichnis im Inhaltsverzeichnis aufgeführt wird. -% Demgegenüber erweitert die Option \texttt{bibtotocnumbered} zu einem -% normalen Kapitel einschließlich Nummerierung. -% \begin{macro}{\bib@heading} +% \texttt{thebibliography}-Umgebung verschoben} +% \changes{v2.98c}{2008/02/15}{wird nun früher definiert} +% Befehl zum Setzen der Überschrift des Literaturverzeichnisses. % \begin{macrocode} -\DeclareOption{bibtotoc}{% - \AtEndOfClass{% - \renewcommand*\bib@heading{% -%<*article> - \addsec{\refname}% - \@mkboth{\refname}{\refname}% +\newcommand*\bib@heading{% +%<*article> + \section*{\refname}% + \@mkboth{\refname}{\refname}% %</article> %<*book|report> - \addchap{\bibname}% - \@mkboth{\bibname}{\bibname}% + \chapter*{\bibname}% + \@mkboth{\bibname}{\bibname}% %</book|report> - }% - }% } -\DeclareOption{bibtotocnumbered}{% - \AtEndOfClass{% - \renewcommand*\bib@heading{% +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{Optionen für das Literaturverzeichnis} +% +% \begin{option}{bibliography} +% \changes{v2.98c}{2008/02/15}{Neu} +% Dies ist der Generalschlüssel für alle Optionen, die das +% Literaturverzeichnis betreffen. Neu ist, dass verschiedene Stile +% definiert werden können. Desweiteren kann man \texttt{totoc} und +% \texttt{totocnumbered} wieder mit \texttt{nottotoc} aufgeben. +% \begin{macrocode} +\KOMA@key{bibliography}{% + \scr@ifundefinedorrelax{scr@bibstyle@#1}{% + \let\FamilyElseValues\scr@bibstylelist + \KOMA@set@ncmdkey{bibliography}{@tempa}{% + {notoc}{0},{nottotoc}{0},{plainheading}{0},% + {totoc}{1},{toc}{1},{notnumbered}{1},% + {numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},% + {numberedtoc}{2}% + }{#1}% + \ifcase \@tempa\relax + \renewcommand*\bib@heading{% +%<*article> + \section*{\refname}% + \@mkboth{\refname}{\refname}% +%</article> +%<*book|report> + \chapter*{\bibname}% + \@mkboth{\bibname}{\bibname}% +%</book|report> + }% + \or% totoc + \renewcommand*\bib@heading{% %<*article> - \section{\refname}% - \@mkboth{\sectionmarkformat \refname}{\sectionmarkformat \refname}% + \addsec{\refname}% + \@mkboth{\refname}{\refname}% %</article> %<*book|report> - \chapter{\bibname}% - \@mkboth{\chaptermarkformat \bibname}{\chaptermarkformat \bibname}% + \addchap{\bibname}% + \@mkboth{\bibname}{\bibname}% %</book|report> - }% + }% + \or% numbered + \renewcommand*\bib@heading{% +%<*article> + \section{\refname}% + \@mkboth{\sectionmarkformat \refname}{\sectionmarkformat \refname}% +%</article> +%<*book|report> + \chapter{\bibname}% + \@mkboth{\chaptermarkformat \bibname}{\chaptermarkformat \bibname}% +%</book|report> + } + \fi + }{% + \csname scr@bibstyle@#1\endcsname }% } % \end{macrocode} -% \end{macro} +% \end{option} +% +% \begin{option}{openbib} +% \changes{v2.3g}{1996/01/14}{\cs{if@openbib} (\cs{@openbibtrue}, +% \cs{@openbibfalse}) entfernt} +% \changes{v2.3g}{1996/01/14}{Definition der openbib Option neu +% implementiert} +% \changes{v2.98c}{2008/02/15}{obsolete} +% Mit dieser Option kann eine alternative Darstellung der +% Literatureinträge aktiviert werden. Dabei fügt \cs{newblock} keinen +% horizontalen Abstand mehr ein, sondern beginnt einen neuen Absatz +% (in Form einer neuen Zeile). +% \begin{macrocode} +\KOMA@DeclareObsoleteOption[\ClassInfoNoLine]{openbib}{bibliography=openstyle} +% \end{macrocode} +% \end{option} +% +% \begin{option}{bibtotoc} +% \changes{v2.3h}{1995/01/21}{neue Option} +% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt} +% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt} +% \changes{v2.7}{2001/01/03}{Klammerung korrigiert} +% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die +% thebibliography-Umgebung verschoben} +% \changes{v2.98c}{2008/02/15}{obsolete} +% \begin{option}{bibtotocnumbered} +% \changes{v2.3h}{1995/01/21}{neue Option} +% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt} +% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt} +% \changes{v2.7}{2001/01/03}{Klammerung korrigiert} +% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird +% verwendet} +% \changes{v2.7i}{2001/05/17}{\cs{chapter} statt \cs{addchap}} +% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die +% thebibliography-Umgebung verschoben} +% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel} +% \changes{v2.98c}{2008/02/15}{obsolete} +% Die Option \texttt{bibtotoc} sorgt dafür, dass das +% Literaturverzeichnis im Inhaltsverzeichnis aufgeführt wird. +% Demgegenüber erweitert die Option \texttt{bibtotocnumbered} zu einem +% normalen Kapitel einschließlich Nummerierung. +% \begin{macrocode} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{bibtotoc}{bibliography=totoc} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{bibtotocnumbered}{% + bibliography=totocnumbered} +% \end{macrocode} % \end{option} % \end{option} % @@ -244,28 +406,6 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\bib@heading} -% \changes{v2.3h}{1995/01/21}{neu (intern)} -% \changes{v2.6c}{2000/06/10}{die Präambel wird gesetzt} -% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird -% verwendet} -% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die -% \texttt{thebibliography}-Umgebung verschoben} -% Befehl zum Setzen der Überschrift des Literaturverzeichnisses. -% \begin{macrocode} -\newcommand*\bib@heading{% -%<*article> - \section*{\refname}% - \@mkboth{\refname}{\refname}% -%</article> -%<*book|report> - \chapter*{\bibname}% - \@mkboth{\bibname}{\bibname}% -%</book|report> -} -% \end{macrocode} -% \end{macro} -% % \begin{Length}{bibindent} % Der Einzug der Einträge bei \texttt{openbib}. Voreingestellt sind % 1,5\,em. @@ -275,29 +415,52 @@ % \end{macrocode} % \end{Length} % -% \begin{environment}{thebibliography} -% \changes{v2.2a}{1995/02/01}{in \textsf{scrartcl} \cs{bibname} -% vollständig durch \cs{refname} ersetzt} -% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{bib@heading}} -% \changes{v2.8q}{2002/01/10}{Erkennung und gesonderte Behandlung -% leerer Präambeln} -% \changes{v2.9o}{2003/03/06}{Vergleich \cs{bibpreamble} mit \cs{@empty} -% korrigiert} +% \begin{environment}{thebibliography} +% \changes{v2.2a}{1995/02/01}{in \textsf{scrartcl} \cs{bibname} +% vollständig durch \cs{refname} ersetzt} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{bib@heading}} +% \changes{v2.8q}{2002/01/10}{Erkennung und gesonderte Behandlung +% leerer Präambeln} +% \changes{v2.9o}{2003/03/06}{Vergleich \cs{bibpreamble} mit \cs{@empty} +% korrigiert} +% \changes{v2.98c}{2008/02/15}{Neue Haken \cs{bib@before@hook} und +% \cs{bib@after@hook} eingefügt} % Nun werden noch die Umgebung für das Literaturverzeichnis und der % Befehl für die einzelnen Einträge definiert. % \begin{macrocode} \newenvironment{thebibliography}[1]{% -%<*book|report> - \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else - \setchapterpreamble{\bibpreamble}% - \fi\fi + \if@bib@break@ + \bib@beginhook + \else +%<*book|report> + \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else + \setchapterpreamble{\bibpreamble}% + \fi\fi %</book|report> - \bib@heading + \bib@heading %<*article> - \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else - \noindent\bibpreamble\par\nobreak - \fi\fi + \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else + \noindent\bibpreamble\par\nobreak + \fi\fi %</article> + \bib@beginhook + \bib@before@hook + \fi +% \end{macrocode} +% \begin{macro}{\BreakBibliography} +% \changes{v2.98c}{2008/02/15}{Neu} +% An dieser Stelle wird \cs{BreakBibliography} passend umdefiniert. +% \begin{macrocode} + \renewcommand{\BreakBibliography}[1]{% + \@bib@break + \end{thebibliography}% + \begingroup ##1\endgroup + \begin{thebibliography}{#1} + }% +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +% Hier geht es jetzt mit \texttt{thebibliography} weiter. \list{% \@biblabel{\@arabic\c@enumiv}% }{% @@ -305,40 +468,105 @@ \leftmargin\labelwidth \advance\leftmargin\labelsep \@openbib@code - \usecounter{enumiv}% + \if@bib@break@ + \edef\@tempa{% + \noexpand\usecounter{enumiv}% + \noexpand\setcounter{enumiv}{\the\c@enumiv}% + }\@tempa + \no@bib@break + \else + \usecounter{enumiv}% + \fi \let\p@enumiv\@empty \renewcommand*\theenumiv{\@arabic\c@enumiv}% }% \sloppy\clubpenalty4000 \widowpenalty4000 \sfcode`\.=\@m }{% - \def\@noitemerr{% - \@latex@warning{Empty `thebibliography' environment}% - }% + \if@bib@break@ + \def\@noitemerr{% + \@latex@warning{% + \string\BreakBibliography\space at begin of `thebibliography' + environment\MessageBreak + or following \string\BreakBibliography}% + }% + \else + \def\@noitemerr{% + \@latex@warning{% + Empty `thebibliography' environment or + \string\BreakBibliography\MessageBreak + before end of `thebibliography' environment}% + }% + \fi \endlist + \if@bib@break@ + \else + \bib@after@hook + \let\bib@before@hook\@empty + \let\bib@after@hook\@empty + \fi + \bib@endhook } % \end{macrocode} -% \end{environment} -% -% \begin{macro}{\newblock} -% \changes{v2.3g}{1996/01/14}{Grundeinstellung geändert} -% Makro für den nächsten Bereich innerhalb eines Eintrags. +% \begin{macro}{\if@bib@break@} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% \begin{macro}{\no@bib@break} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% \begin{macro}{\@bib@break} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% Dieser Hilfsschalter arbeitet immer global! % \begin{macrocode} -\newcommand*\newblock{\hskip .11em\@plus.33em\@minus.07em} +\newif\if@bib@break@ +\newcommand{\no@bib@break}{\global\let\if@bib@break@\iffalse} +\newcommand*{\@bib@break}{\global\let\if@bib@break@\iftrue} % \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@openbib@code} -% \changes{v2.3g}{1996/01/14}{neues Makro} -% Code, der am Anfang des Literaturverzeichnisses ausgeführt wird und -% normalerweise für die \texttt{openbib}-Funktionalität verwendet -% wird. +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\bib@before@hook} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% \begin{macro}{\bib@after@hook} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} % \begin{macrocode} -\let\@openbib@code\@empty +\newcommand*{\bib@before@hook}{} +\newcommand*{\bib@after@hook}{} % \end{macrocode} -% \end{macro} -% -% +% \end{macro} +% \end{macro} +% \end{environment} +% +% \begin{macro}{\BreakBibliography} +% \changes{v2.98c}{2008/02/15}{Neu} +% Diese Anweisung unterbricht normalerweise das Literaturverzeichnis für ein +% paar eigene Anweisungen (z. B. Unterüberschriften). Wenn jedoch nicht das +% \KOMAScript-Literaturverzeichnis verwendet wird, dann gibt es eine Warnung +% aus. +% \begin{macrocode} +\newcommand{\BreakBibliography}[1]{% + \ClassWarning{\KOMAClassName}{% + You've used \string\BreakBibliography\space either outside of\MessageBreak + the bibliography or `thebibliography' was redefined\MessageBreak + incompatible, e.g., using a bibliography package.\MessageBreak + \string\BreakBibliography\space ignored% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AfterBibliographyPreamble} +% \changes{v2.98c}{2008/02/15}{Neu} +% \begin{macro}{\AtEndBibliography} +% \changes{v2.98c}{2008/02/15}{Neu} +% Zwei neue Anweisungen, um am Anfang des Literaturverzeichnisses, nach +% Überschrift und Präambel, und am Ende des Literaturverzeichnisses, nach +% Abschluss der Liste, Code einschleusen zu können. Das funktioniert natürlich +% nur so lange, wie keine Paket verwendet wird, das die Umgebung umdefiniert. +% \begin{macrocode} +\newcommand{\AfterBibliographyPreamble}{\g@addto@macro\bib@before@hook} +\newcommand{\AtEndBibliography}{\g@addto@macro\bib@after@hook} +% \end{macrocode} +% \end{macro} +% \end{macro} % % \iffalse %</body> diff --git a/Master/texmf-dist/source/latex/koma-script/scrkcile.dtx b/Master/texmf-dist/source/latex/koma-script/scrkcile.dtx index 58a8735c666..ae23d2a0b1f 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkcile.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkcile.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % scrkcile.dtx -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkcile.dtx -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scrkcomp.dtx b/Master/texmf-dist/source/latex/koma-script/scrkcomp.dtx index eca345c3b13..4915e8ef067 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkcomp.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkcomp.dtx @@ -1,8 +1,8 @@ -% \CheckSum{59} +% \CheckSum{68} % \iffalse meta-comment % ====================================================================== % scrkcomp.dtx -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkcomp.dtx -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrkcomp.dtx %<*driver> % \fi -\ProvidesFile{scrkcomp.dtx}[2007/10/09 v2.97d KOMA-Script (compatibility)] +\ProvidesFile{scrkcomp.dtx}[2008/07/01 v3.00 KOMA-Script (compatibility)] % \iffalse \documentclass{scrdoc} \usepackage[english,ngerman]{babel} @@ -123,7 +123,8 @@ \KOMA@key{version}[last]{% \scr@ifundefinedorrelax{scr@v@#1}{% \def\scr@compatibility{0}% - \ClassWarningNoLine{\KOMAClassName}{% +%<class> \ClassWarningNoLine{\KOMAClassName}{% +%<package> \PackageWarningNoLine{scrextend}{% You have set option `version' to value `#1', but\MessageBreak this value of version is not supported.\MessageBreak Because of this, version was set to `first'% @@ -136,12 +137,16 @@ % Eine zusätzliche Bedingung gibt es noch: Die Kompatibilität kann nur beim % Laden gesetzt werden. Danach geht es nicht mehr: % \begin{macrocode} -\AtEndOfClass{% +%<class>\AtEndOfClass{% +%<package>\AtEndOfPackage{% \KOMA@key{version}[]{% - \ClassError{\KOMAClassName}{% +%<class> \ClassError{\KOMAClassName}{% +%<package> \PackageError{scrextend}{% 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> class.\MessageBreak +%<package> package.\MessageBreak But you've tried to set it up later.% }% }% @@ -180,6 +185,14 @@ % \changes{v2.97e}{2007/11/27}{Neues Macro} % \begin{macro}{\scr@v@2.98} % \changes{v2.98}{2007/12/24}{Neues Macro} +% \begin{macro}{\scr@v@2.98a} +% \changes{v2.98a}{2008/01/08}{Neues Macro} +% \begin{macro}{\scr@v@2.98b} +% \changes{v2.98b}{2008/01/30}{Neues Macro} +% \begin{macro}{\scr@v@2.98c} +% \changes{v2.98c}{2008/02/01}{Neues Macro} +% \begin{macro}{\scr@v@3.00} +% \changes{v3.00}{2008/11/04}{Neues Macro} % \begin{macro}{\scr@v@last} % \changes{v2.9u}{2005/03/05}{Neues Macro} % Nun die unterschiedlichen möglichen Werte (|\scr@v@last| ist jeweils die @@ -201,11 +214,19 @@ \@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} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % \end{macro} % \end{macro} % \end{macro} @@ -249,7 +270,7 @@ % nachgebildet. Dadurch ist es nicht absolut fehlerkompatibel, das es nun mehr % Werte versteht als vorher. % \begin{macrocode} -\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 diff --git a/Master/texmf-dist/source/latex/koma-script/scrkfloa.dtx b/Master/texmf-dist/source/latex/koma-script/scrkfloa.dtx index a4c1ec8e5cc..1b39c65cfa3 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkfloa.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkfloa.dtx @@ -1,8 +1,8 @@ -% \CheckSum{1082} +% \CheckSum{1133} % \iffalse meta-comment % ====================================================================== % scrkfloa.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkfloa.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrkfloa.dtx %<*driver> % \fi -\ProvidesFile{scrkfloa.dtx}[2007/11/23 v2.97e KOMA-Script (floats)] +\ProvidesFile{scrkfloa.dtx}[2008/05/02 v3.00 KOMA-Script (floats)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -99,44 +99,157 @@ % % \StopEventually{\PrintIndex\PrintChanges} % -% \subsection{Optionen für Titel von Gleitumgebungen} -% % \iffalse %<*option> % \fi % % \iffalse +%<*class> %<*!letter> % \fi % -% \begin{option}{tablecaptionabove} -% \changes{v2.8h}{2001/07/19}{neue Option} -% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen -% verschoben} -% \begin{option}{tablecaptionbelow} -% \changes{v2.8h}{2001/07/19}{neue Option} -% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen -% verschoben} +% \subsection{Einige Anweisungen und Einstellungen für die Optionen} +% +% Einige Anweisungen und Einstellungen werden bereits benötigt, bevor die +% Optionen abgearbeitet werden. +% +% \begin{macro}{\if@tablecaptionabove} +% \changes{v2.8h}{2001/07/19}{neu Option} +% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen +% verschoben} +% \changes{v2.98c}{2008/02/18}{Definition erfolgt etwas früher} +% \begin{macro}{\@tablecaptionabovetrue} +% \begin{macro}{\@tablecaptionabovefalse} +% Die Einstellung, ob es Tabellenüber- oder -unterschriften sind, wird in +% einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@tablecaptionabove\@tablecaptionabovefalse +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifonelinecaptions} +% \changes{v2.8q}{2001/11/17}{neuer Schalter} +% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher} +% \begin{macro}{\onelinecaptionstrue} +% \begin{macro}{\onelinecaptionsfalse} +% Die Entscheidung, ob die Sonderbehandlung für einzeilige caption-Texte +% durchgeführt werden soll, wird in einem Schalter gespeichert. In der +% Hoffnung, beim Laden von \textsf{caption2} Speicher zu sparen, wird +% der gleiche Name verwendet, den auch \textsf{caption2} +% verwendet. Trotzdem sollte man diesen Schalter als internen Schalter +% betrachten. +% \begin{macrocode} +\newif\ifonelinecaptions\onelinecaptionstrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\scap@pos} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher} +% Hier wird gespeichert, ob die Beschreibung bei |captionbeside| links oder +% rechts vom Rest stehen soll. Voreingestellt ist rechts davon +% (\emph{\textbf{r}ight}). Andere Möglichkeiten sind \emph{\textbf{l}eft}, +% \emph{\textbf{o}uter}, \emph{\textbf{i}nner}. +% \begin{macrocode} +\newcommand*{\scap@pos}{r} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@valign} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher} +% Hier wird gespeichert, ob bei |captionbeside| die beiden Boxen (siehe +% Definition der Umgebung) \emph{\textbf{t}op}, \emph{\textbf{b}ottem} oder +% \emph{\textbf{c}enter} ausgerichtet werden sollen. Andere Buchstaben +% sind nicht erlaubt. Voreingestellt ist \emph{\textbf{b}ottem}. +% \begin{macrocode} +\newcommand*{\scap@valign}{b} +% \end{macrocode} +% \end{macro} +% +% \subsection{Optionen für Titel von Gleitumgebungen} +% +% \begin{option}{captions} +% \changes{v2.98c}{2008/02/18}{Neuer Zentralschalter für caption} +% Dies ist nun die zentrale Option für Einstellungen zu \cs{caption}. Als +% besondere Schwierigkeit ergibt sich dabei jedoch, dass das Paket +% \textsf{caption} einige Sonderbehandlungen für \KOMAScript{} enthält, die +% darauf angewiesen sind, dass die alte Optionenschnittstelle verwendet +% wird. Erfreulicherweise funktioniert das aber ab Version~3.1g über eine +% Erweiterung der Schalter-Umschaltbefehle (|\@tablecaptionabovetrue|, +% |\@tablecaptionabovefalse|, |\onelinecaptionstrue|, +% |\onelinecaptionsfalse|), so dass lediglich dafür georgt werden muss, +% dass diese weiterhin verwendet werden. +% \begin{macrocode} +\KOMA@key{captions}{% + \KOMA@set@ncmdkey{captions}{@tempa}{% + {tableheading}{0},% + {tableabove}{0},{abovetable}{0},{abovetabular}{0},{topattable}{0},% + {tablesignature}{1},% + {tablebelow}{1},{belowtable}{1},{belowtabular}{1},{bottomattable}{1},% + {oneline}{2},% + {nooneline}{3},% + {rightbeside}{4},{besideright}{4},% + {leftbeside}{5},{besideleft}{5},% + {innerbeside}{6},{besideinner}{6},% + {outerbeside}{7},{besideouter}{7},% + {topbeside}{8},{besidetop}{8},% + {centeredbeside}{9},{besidecentered}{9},% + {middlebeside}{9},{besidemiddle}{9},% + {bottombeside}{10},{besidebottom}{10}% + }{#1}% + \ifcase \@tempa\relax + \@tablecaptionabovetrue + \or + \@tablecaptionabovefalse + \or + \onelinecaptionstrue + \or + \onelinecaptionsfalse + \or + \renewcommand*{\scap@pos}{r}% + \or + \renewcommand*{\scap@pos}{l}% + \or + \renewcommand*{\scap@pos}{i}% + \or + \renewcommand*{\scap@pos}{o}% + \or + \renewcommand*{\scap@valign}{t}% + \or + \renewcommand*{\scap@valign}{c}% + \or + \renewcommand*{\scap@valign}{b}% + \fi +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{tablecaptionabove} +% \changes{v2.8h}{2001/07/19}{neue Option} +% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen +% verschoben} +% \changes{v2.98c}{2008/02/18}{obsolete} +% \begin{option}{tablecaptionbelow} +% \changes{v2.8h}{2001/07/19}{neue Option} +% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen +% verschoben} +% \changes{v2.98c}{2008/02/18}{obsolete} % Es besteht nun die Wahl, ob \cs{caption} bei Tabellen für Unter- % oder Überschriften voreingestellt ist. Die Defaulteinstellung ist % aus Kompatibilitätsgründen die Tabellenunterschrift. -% \begin{macro}{\if@tablecaptionabove} -% \changes{v2.8h}{2001/07/19}{neu Option} -% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen -% verschoben} -% \begin{macro}{\@tablecaptionabovetrue} -% \begin{macro}{\@tablecaptionabovefalse} -% Die Einstellung wird in einem Schalter gespeichert. % \begin{macrocode} -\newif\if@tablecaptionabove\@tablecaptionabovefalse -\DeclareOption{tablecaptionabove}{\@tablecaptionabovetrue} -\DeclareOption{tablecaptionbelow}{\@tablecaptionabovefalse} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{tablecaptionabove}% + {captions=tableheading} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{tablecaptionbelow}% + {captions=tablesignature} % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% \end{option} +% \end{option} +% \end{option} % % \begin{option}{origlongtable} % \changes{v2.8l}{2001/08/16}{neue Option} @@ -159,41 +272,28 @@ % \end{macro} % \end{option} % -% \begin{option}{onelinecaption} -% \changes{v2.8q}{2001/11/17}{neue Option} -% \begin{option}{noonelinecaption} -% \changes{v2.8q}{2001/11/17}{neue Option} -% Genau wie beim \textsf{caption2}-Paket gibt es Optionen, mit denen -% die Sonderbehandlung für einzeilige Tabellen- und Abbildungstitel -% ein- und ausgeschaltet werden werden können. -% \begin{macro}{\ifonelinecaptions} -% \changes{v2.8q}{2001/11/17}{neuer Schalter} -% \begin{macro}{\onelinecaptionstrue} -% \begin{macro}{\onelinecaptionsfalse} -% Die Entscheidung wird in einem Schalter gespeichert. In der -% Hoffnung, beim Laden von \textsf{caption2} Speicher zu sparen, wird -% der gleiche Name verwendet, den auch \textsf{caption2} -% verwendet. Trotzdem sollte man diesen Schalter als internen Schalter -% betrachten. -% \begin{macrocode} -\newif\ifonelinecaptions\onelinecaptionstrue -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \begin{option}{onelinecaption} +% \changes{v2.8q}{2001/11/17}{neue Option} +% \changes{v2.98c}{2008/03/03}{obsolete} +% \changes{v2.98c}{2008/03/03}{keine Sonderbehandlung für \textsf{caption2} +% mehr} +% \begin{option}{noonelinecaption} +% \changes{v2.8q}{2001/11/17}{neue Option} +% \changes{v2.98c}{2008/03/03}{obsolete} +% \changes{v2.98c}{2008/03/03}{keine Sonderbehandlung für \textsf{caption2} +% mehr} % Da für diese Option nicht der gleiche Name verwendet wird, wie bei -% \textsf{caption2}, wird von den Optionen nicht nur der Schalter -% entsprechend gesetzt, sondern auch die korrespondierende Option an +% \textsf{caption2}, wurde von den Optionen bis Version~2.98b nicht nur der +% Schalter entsprechend gesetzt, sondern auch die korrespondierende Option an % \textsf{caption2} weitergeleitet. Der gleiche Name konnte schlecht % verwendet werden, weil er bei einer Klasse auch nicht ansatzweise -% als selbsterklärend bezeichnet werden kann. +% als selbsterklärend bezeichnet werden kann. Ab Version~2.98c entfällt die +% Sonderbehandlung von \textsf{caption2}. % \begin{macrocode} -\DeclareOption{onelinecaption}{\onelinecaptionstrue - \PassOptionsToPackage{oneline}{caption2}% -} -\DeclareOption{noonelinecaption}{\onelinecaptionsfalse - \PassOptionsToPackage{nooneline}{caption2}% -} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{onelinecaption} + {captions=oneline} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{noonelinecaption} + {captions=nooneline} % \end{macrocode} % \end{option} % \end{option} @@ -201,6 +301,7 @@ % % \iffalse %</!letter> +%</class> %</option> %<*body> % \fi @@ -224,6 +325,7 @@ % \end{macro} % % \iffalse +%<*class> %<*!letter> % \fi % @@ -294,26 +396,6 @@ % setzen. Dies funktioniert frundsätzlich auch nicht mit % \texttt{longtable}-Tabellen. % -% \begin{macro}{\scap@pos} -% \changes{v2.8q}{2001/11/22}{neu (intern)} -% Hier wird gespeichert, ob die Beschreibung links oder rechts vom -% Rest stehen soll. Voreingestellt ist rechts davon. -% \begin{macrocode} -\newcommand*{\scap@pos}{r} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\scap@valign} -% \changes{v2.8q}{2001/11/22}{neu (intern)} -% Hier wird gespeichert, ob die beiden Boxen (siehe Definition der -% Umgebung) \emph{\textbf{t}op}, \emph{\textbf{b}ottem} oder -% \emph{\textbf{c}enter} ausgerichtet werden sollen. Andere Buchstaben -% sind nicht erlaubt. Voreingestellt ist \emph{\textbf{b}ottem}. -% \begin{macrocode} -\newcommand*{\scap@valign}{b} -% \end{macrocode} -% \end{macro} -% % \begin{macro}{\scap@caption} % \changes{v2.8q}{2001/11/22}{neu (intern)} % Die Beschreibung, die der Umgebung als Parameter übergeben wird, @@ -450,12 +532,22 @@ % % \begin{macro}{\c@pti@nb@sid@} % \changes{v2.8q}{2001/11/22}{neu (intern)} +% \changes{v2.98c}{2008/03/11}{vertikale Ausrichtung korrigiert} % Hier wird nun die Umgebung eigentlich geöffnet, während zuvor nur % die Parameter ausgewertet wurden. % \begin{macrocode} \newcommand{\c@pti@nb@sid@}{} \long\def\c@pti@nb@sid@[#1]#2{% - \def\scap@caption{\captionbelow[{#1}]{#2}}% + \def\scap@caption{% + \if c\scap@valign + \setlength{\abovecaptionskip}{\z@}% + \setlength{\belowcaptionskip}{\z@}% + \else + \setlength{\abovecaptionskip}{-\ht\strutbox}% + \setlength{\belowcaptionskip}{-\dp\strutbox}% + \fi + \captionbelow[{#1}]{#2}% + }% \begin{lrbox}{\c@pti@nb@sid@b@x}% } % \end{macrocode} @@ -643,12 +735,12 @@ \AfterPackage{caption2}{% \renewcommand*{\setcapindent}{% \ClassWarning{\KOMAClassName}{% - You're using package caption2.\MessageBreak - Because of this you should also use \string\captionstyle\space + You're using package `caption2'.\MessageBreak + Because of this you should also use `\string\captionstyle' and\MessageBreak - set length \string\captionindent\space instead if + set length '\string\captionindent' instead of using\MessageBreak - \string\setcapindent + `\string\setcapindent'% }% \captionstyle{indent}% \@ifstar{\setlength{\captionindent}}{\setlength{\captionindent}}% @@ -669,10 +761,10 @@ \AfterPackage{caption2}{% \renewcommand*{\setcaphanging}{% \ClassWarning{\KOMAClassName}{% - You're using package caption2.\MessageBreak + You're using package `caption2'.\MessageBreak Because of this you should also use - \string\captionstyle\MessageBreak - instead of \string\setcaphang + `\string\captionstyle'\MessageBreak + instead of `\string\setcaphang'% } \captionstyle{hang}% }% @@ -810,11 +902,11 @@ \AfterPackage{caption2}{% \renewcommand*{\setcapwidth}[2][]{% \ClassWarning{\KOMAClassName}{% - Ignorring optional argument of \string\setcapwidth!\MessageBreak - You're using package caption2.\MessageBreak + Ignorring optional argument of `\string\setcapwidth'!\MessageBreak + You're using package `caption2'.\MessageBreak Because of this you should also use - \string\setcaptionwidth\MessageBreak - instead of \string\setcapwidth\MessageBreak + `\string\setcaptionwidth'\MessageBreak + instead of `\string\setcapwidth'% }% \setcaptionwidth{#2}% }% @@ -900,10 +992,10 @@ \ifdim\@tempdima\@tempdimb\else \ClassWarning{\KOMAClassName}{% Can set only centered caption!\MessageBreak - You're using package caption2.\MessageBreak + You're using package `caption2'.\MessageBreak Because of this you should also use - \string\setcaptionmargin\MessageBreak - instead of \string\setcapmargin + `\string\setcaptionmargin'\MessageBreak + instead of `\string\setcapmargin'% }% \fi \addtolength{\@tempdimb}{\@tempdimb}% @@ -1016,20 +1108,22 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\LT@makecaption} -% \changes{v2.8j}{2001/07/30}{neu (intern)} -% \changes{v2.8k}{2001/08/15}{keine Umdefinierung, wenn das -% \textsf{caption2}-Paket erkannt oder die Option -% \texttt{origlongtable} gesetzt wurde} -% \changes{v2.8q}{2001/11/18}{Breite und Anordnung wird über -% \KOMAScript-Makros bestimmt} -% \changes{v2.8q}{2001/11/18}{Verwendung von \cs{AfterPackage}} -% \changes{v2.9s}{2004/08/24}{vertikale Abstände durch verschieben von -% \cs{vskip} korrigiert} -% \begin{macro}{\LT@array} -% \changes{v2.8q}{2001/11/18}{neu (intern)} -% \begin{macro}{\LT@caption} -% \changes{v2.8q}{2001/11/18}{neu (intern)} +% \begin{macro}{\LT@makecaption} +% \changes{v2.8j}{2001/07/30}{neu (intern)} +% \changes{v2.8k}{2001/08/15}{keine Umdefinierung, wenn das +% \textsf{caption2}-Paket erkannt oder die Option +% \texttt{origlongtable} gesetzt wurde} +% \changes{v2.8q}{2001/11/18}{Breite und Anordnung wird über +% \KOMAScript-Makros bestimmt} +% \changes{v2.8q}{2001/11/18}{Verwendung von \cs{AfterPackage}} +% \changes{v2.9s}{2004/08/24}{vertikale Abstände durch verschieben von +% \cs{vskip} korrigiert} +% \begin{macro}{\LT@array} +% \changes{v2.8q}{2001/11/18}{neu (intern)} +% \begin{macro}{\LT@caption} +% \changes{v2.8q}{2001/11/18}{neu (intern)} +% \begin{macro}{\scr@caption@before@longtable@warning} +% \changes{v2.98c}{2008/03/03}{neu (intern)} % Ab Version 2.8j wird auf vielfachen Wunsch das % \textsf{longtable}-Paket berücksichtigt. Da Pakete aber nach % Klassen geladen werden, kann dies erst nach dem Laden des Pakets @@ -1039,20 +1133,22 @@ % \textsf{caption2} vor \textsf{longtable} geladen, so liegt % voraussichtlich eine Fehlbedienung vor, auf die hingewiesen wird. % \begin{macrocode} +\newcommand*{\scr@caption@before@longtable@warning}[1]{% + \ClassWarning{\KOMAClassName}{% + you've loaded package `#1' before package\MessageBreak + `longtable'!\MessageBreak + Because of this package `#1' isn't able to\MessageBreak + control `\string\caption' at longtables. \space After loading + \MessageBreak + package `#1' KOMA-Script also doesn't control\MessageBreak + `\string\caption'.\MessageBreak + I think, you should load package `caption' after\MessageBreak + package `longtable'% + }% +} \AfterPackage{longtable}{% \@ifpackageloaded{caption2}{\@komalongtablefalse - \ClassWarning{\KOMAClassName}{% - you've loaded package caption2 before package\MessageBreak - longtable!\MessageBreak - Because of this package caption2 isn't able to - control\MessageBreak - \string\caption\space at longtables. After loading package - caption2\MessageBreak - KOMA-Script also doesn't control \string\caption.\MessageBreak - I think, you should load package caption after - package\MessageBreak - longtable and use the new interface% - }% + \scr@caption@before@longtable@warning{caption2}% }{}% \if@komalongtable \renewcommand{\LT@makecaption}[3]{% @@ -1101,6 +1197,7 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\fs@komaabove} % \changes{v2.8j}{2001/07/30}{neu (intern)} @@ -1347,6 +1444,7 @@ % % \iffalse %</!letter> +%</class> %</body> % \fi % diff --git a/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx b/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx index fc8eaef42f1..c5610c6d405 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx @@ -1,8 +1,8 @@ -% \CheckSum{963} +% \CheckSum{1851} % \iffalse meta-comment % ====================================================================== % scrkfont.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkfont.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrkfont.dtx %<*driver> % \fi -\ProvidesFile{scrkfont.dtx}[2007/10/03 v2.97d KOMA-Script (font selection)] +\ProvidesFile{scrkfont.dtx}[2008/05/01 v3.00 KOMA-Script (font selection)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -115,10 +115,12 @@ % Schriftgröße wird in \cs{@ptsize} allerdings die tatsächliche Größe % angegeben, damit sich Rundungsfehler nicht so leicht summieren. % \begin{macrocode} +%<*!extend> \newcommand*\@ptsize{% %<!letter> 11% %<letter> 12% } +%</!extend> % \end{macrocode} % \end{macro} % \end{option} @@ -131,11 +133,14 @@ % \changes{v2.6}{2000/01/04}{neu (intern)} % \changes{v2.97c}{2007/05/12}{\cs{KOMA@UseObsolete} durch % \cs{KOMA@UseObsoleteOption} ersetzt} +% \changes{v2.98c}{2008/03/22}{Verwendung von \cs{KOMA@UseObsoleteOption} +% korrigiert} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch % \cs{PackageInfoNoLine} ersetzt} % Das Macro \cs{@pt@scan} wird benötigt, um die Schriftgröße nach der alten % Methode zu erkennen. % \begin{macrocode} +%<*!extend> \newcommand*{\@pt@scan}{% \expandafter\@pt@@scan\CurrentOption pt\@pt@@scan% } @@ -143,33 +148,78 @@ \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}% } +%</!extend> % \end{macrocode} % \end{macro} % \end{macro} % +% \begin{macro}{\@fontsizefilebase} +% \changes{v2.96}{2006/08/11}{neu (intern)} +% \changes{v3.00}{2008/05/01}{Definition für \textsf{scrextend} vorgezogen} +% Dieses Makro speichert den Präfix der primären +% Schriftgrößenoptionsdateien. Es wird nur definiert, wenn es nicht bereits +% definiert ist. Damit können Wrapperklassen komplett andere Größen vorgeben, +% ohne mit \cs{ReplaceInput} arbeiten zu müssen. +% \begin{macrocode} +\providecommand*{\@fontsizefilebase}{scrsize} +% \end{macrocode} +% \end{macro} +% % \begin{option}{fontsize} % \changes{v2.96}{2006/08/11}{Funktion komplett geändert} +% \changes{v2.98c}{2008/03/26}{lädt nach Möglichkeit die zugehörige +% Schriftgrößendatei} % Hier nun die Option, die tatsächlich verwendet wird. Es sei darauf % hingewiesen, dass damit auch Schriftgrößen wie \texttt{10.3pt} denkbar % wären. % \begin{macrocode} \KOMA@key{fontsize}{% +%<*!extend> \scr@ifundefinedorrelax{changefontsizes}{% \@defaultunits\@tempdima#1pt\relax\@nnil \edef\@ptsize{#1}% }{% - \changefontsizes{#1}% +%</!extend> + \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}{% +%<!extend> \noexpand\ClassInfo{\KOMAClassName}{% +%<extend> \noexpand\PackageInfo{scrextend}{% + File `\@fontsizefilebase\@tempa.clo' used to setup font sizes}% + }{% + \noexpand\InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{% +%<!extend> \noexpand\ClassInfo{\KOMAClassName}{% +%<extend> \noexpand\PackageInfo{scrextend}{% + 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`\@ + }% +%<extend> \scr@ifundefinedorrelax{changefontsizes}{% +%<extend> \expandafter\AtEndOfPackage\expandafter{\@tempa}% +%<extend> }{% + \@tempa }% } % \end{macrocode} % \end{option} % % -% % \iffalse %</option> %<*body> @@ -179,6 +229,319 @@ % % \changes{v2.6}{2000/01/04}{Einlesen der Schriftgrößen-Options-Datei % funktioniert nun mit diversen Größen} +% \changes{v2.98c}{2008/03/26}{Eigener \texttt{scrsize}-Datei definiert} +% +% \iffalse +%</body> +%<*10pt|11pt|12pt> +% \fi +% +% Trotzdem werden min. drei Schriftgrößendateien benötigt. Ab Version 2.98c +% verwendet \KOMAScript{} vorzugsweise eigene Dateien, die auch noch zu einem +% späteren Zeitpunkt geladen werden können. Ansonsten sind diese Dateien +% weitestgehend dem Quellcode der Standardklassen \texttt{classes.dtx} +% entnommen. +% +% \begin{macrocode} +\ProvidesFile{% +%<10pt> scrsize10pt.clo% +%<11pt> scrsize11pt.clo% +%<12pt> scrsize12pt.clo% +}[\KOMAScriptVersion\space font size class option % +%<10pt> (10pt)% +%<11pt> (11pt)% +%<12pt> (12pt)% +] +% \end{macrocode} +% +% \begin{macro}{\normalsize} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\small} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\footnotesize} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\scriptsize} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\tiny} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\large} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\Large} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\LARGE} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\huge} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\Huge} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% Siehe \texttt{classes.dtx}. +% \begin{macrocode} +\def\normalsize{% +%<*10pt> + \@setfontsize\normalsize\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ +%</10pt> +%<*11pt> + \@setfontsize\normalsize\@xipt{13.6}% + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ +%</11pt> +%<*12pt> + \@setfontsize\normalsize\@xiipt{14.5}% + \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ +%</12pt> + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI +} +\def\small{% +%<*10pt> + \@setfontsize\small\@ixpt{11}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% +%</10pt> +%<*11pt> + \@setfontsize\small\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% +%</11pt> +%<*12pt> + \@setfontsize\small\@xipt{13.6}% + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% +%</12pt> + \belowdisplayskip \abovedisplayskip +} +\def\footnotesize{% +%<*10pt> + \@setfontsize\footnotesize\@viiipt{9.5}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% +%</10pt> +%<*11pt> + \@setfontsize\footnotesize\@ixpt{11}% + \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% +%</11pt> +%<*12pt> + \@setfontsize\footnotesize\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% +%</12pt> + \belowdisplayskip \abovedisplayskip +} +%<*10pt> +\def\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt} +\def\tiny{\@setfontsize\tiny\@vpt\@vipt} +\def\large{\@setfontsize\large\@xiipt{14}} +\def\Large{\@setfontsize\Large\@xivpt{18}} +\def\LARGE{\@setfontsize\LARGE\@xviipt{22}} +\def\huge{\@setfontsize\huge\@xxpt{25}} +\def\Huge{\@setfontsize\Huge\@xxvpt{30}} +%</10pt> +%<*11pt> +\def\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}} +\def\tiny{\@setfontsize\tiny\@vipt\@viipt} +\def\large{\@setfontsize\large\@xiipt{14}} +\def\Large{\@setfontsize\Large\@xivpt{18}} +\def\LARGE{\@setfontsize\LARGE\@xviipt{22}} +\def\huge{\@setfontsize\huge\@xxpt{25}} +\def\Huge{\@setfontsize\Huge\@xxvpt{30}} +%</11pt> +%<*12pt> +\def\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}} +\def\tiny{\@setfontsize\tiny\@vipt\@viipt} +\def\large{\@setfontsize\large\@xivpt{18}} +\def\Large{\@setfontsize\Large\@xviipt{22}} +\def\LARGE{\@setfontsize\LARGE\@xxpt{25}} +\def\huge{\@setfontsize\huge\@xxvpt{30}} +\let\Huge=\huge +%</12pt> +\normalsize +% \end{macrocode} +% \begin{Length}{\footnotesep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\footins} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\floatsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\textfloatsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\intextsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\dblfloatsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\sbltextfloatsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\@fptop} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\@fpsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\@fpbot} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\@dblfptop} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\@dblfpsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\@dblfpbot} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\partopsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% Siehe \texttt{classes.dtx}. +% \begin{macrocode} +%<*10pt> +\setlength\footnotesep {6.65\p@} +\setlength{\skip\footins} {9\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop {0\p@ \@plus 1fil} +\setlength\@fpsep {8\p@ \@plus 2fil} +\setlength\@fpbot {0\p@ \@plus 1fil} +\setlength\@dblfptop {0\p@ \@plus 1fil} +\setlength\@dblfpsep {8\p@ \@plus 2fil} +\setlength\@dblfpbot {0\p@ \@plus 1fil} +\setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@} +%</10pt> +%<*11pt> +\setlength\footnotesep {7.7\p@} +\setlength{\skip\footins} {10\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop {0\p@ \@plus 1fil} +\setlength\@fpsep {8\p@ \@plus 2fil} +\setlength\@fpbot {0\p@ \@plus 1fil} +\setlength\@dblfptop {0\p@ \@plus 1fil} +\setlength\@dblfpsep {8\p@ \@plus 2fil} +\setlength\@dblfpbot {0\p@ \@plus 1fil} +\setlength\partopsep {3\p@ \@plus 1\p@ \@minus 1\p@} +%</11pt> +%<*12pt> +\setlength\footnotesep {8.4\p@} +\setlength{\skip\footins} {10.8\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {14\p@ \@plus 4\p@ \@minus 4\p@} +\setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop {0\p@ \@plus 1fil} +\setlength\@fpsep {10\p@ \@plus 2fil} +\setlength\@fpbot {0\p@ \@plus 1fil} +\setlength\@dblfptop {0\p@ \@plus 1fil} +\setlength\@dblfpsep {10\p@ \@plus 2fil} +\setlength\@dblfpbot {0\p@ \@plus 1fil} +\setlength\partopsep {3\p@ \@plus 2\p@ \@minus 2\p@} +%</12pt> +% \end{macrocode} +% \begin{macro}{\@listi} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\@listii} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\@listiii} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\@listiv} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\@listv} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\@listvi} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% Siehe \texttt{classes.dtx}. +% \begin{macrocode} +\def\@listi{\leftmargin\leftmargini +%<*10pt> + \parsep 4\p@ \@plus2\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep4\p@ \@plus2\p@ \@minus\p@} +%</10pt> +%<*11pt> + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \itemsep4.5\p@ \@plus2\p@ \@minus\p@} +%</11pt> +%<*12pt> + \parsep 5\p@ \@plus2.5\p@ \@minus\p@ + \topsep 10\p@ \@plus4\p@ \@minus6\p@ + \itemsep5\p@ \@plus2.5\p@ \@minus\p@} +%</12pt> +\let\@listI\@listi +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep +%<*10pt> + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ +%</10pt> +%<*11pt> + \topsep 4.5\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ +%</11pt> +%<*12pt> + \topsep 5\p@ \@plus2.5\p@ \@minus\p@ + \parsep 2.5\p@ \@plus\p@ \@minus\p@ +%</12pt> + \itemsep \parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep +%<10pt> \topsep 2\p@ \@plus\p@\@minus\p@ +%<11pt> \topsep 2\p@ \@plus\p@\@minus\p@ +%<12pt> \topsep 2.5\p@\@plus\p@\@minus\p@ + \parsep \z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep \topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +% \end{macrocode} +% \iffalse +%</10pt|11pt|12pt> +%<*body> +% \fi % % \begin{macro}{\changefontsizes} % \changes{v2.96}{2006/08/11}{neue Anweisung (benötigt \eTeX)} @@ -187,11 +550,13 @@ % Argument ist die gewünschte Grundschriftgröße. % \begin{macrocode} \newcommand*{\changefontsizes}[2][1.2\@tempdima]{% - \ClassWarning{\KOMAClassName}{% +%<!extend> \ClassWarning{\KOMAClassName}{% +%<extend> \PackageWarning{scrextend}{% Using fallback calculation to setup font sizes\MessageBreak for basic size `#2'}% \scr@ifundefinedorrelax{dimexpr}{% - \ClassError{\KOMAClassName}{% +%<!extend> \ClassError{\KOMAClassName}{% +%<extend> \PackageError{scrextend}{% feature only allowed using e-TeX% }{% The fallback calculation to setup font sizes was implemented @@ -441,16 +806,35 @@ } % \end{macrocode} % \end{macro} -% -% \begin{macro}{\@fontsizefilebase} -% \changes{v2.96}{2006/08/11}{neu (intern)} -% Dieses Makro speichert den Präfix der primären -% Schriftgrößenoptionsdateien. Es wird nur definiert, wenn es nicht bereits -% definiert ist. Damit können Wrapperklassen komplett andere Größen vorgeben, -% ohne mit \cs{ReplaceInput} arbeiten zu müssen. -% \begin{macrocode} -\providecommand*{\@fontsizefilebase}{scrsize} -% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % \end{macro} % % Zunächst wird die gewünschte Größe, die in \cs{@ptsize} abgelegt ist, als @@ -460,6 +844,7 @@ % abgelegt, damit die Standard-Dateien verwendet werden können. Dann wird % \cs{@ptsize} schon einmal richtig eingestellt. % \begin{macrocode} +%<*!extend> \expandafter\@defaultunits\expandafter\@tempdima\@ptsize pt\relax\@nnil \edef\@tempa{\@ptsize}% \setlength{\@tempdimb}{\@tempdima}% @@ -509,6 +894,7 @@ %<book> }% }% } +%</!extend> % \end{macrocode} % % @@ -537,6 +923,7 @@ % Der aus der \textsf{Script 2.0}-Familie bekannte Befehl \cs{sfb} ist % hier ebenfalls definiert. % \begin{macrocode} +%<*!extend> \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} @@ -546,6 +933,7 @@ \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} \DeclareOldFontCommand{\sfb}{\normalfont\sffamily\bfseries}{% \@nomath\sfb} +%</!extend> % \end{macrocode} % \end{macro} % \end{macro} @@ -572,8 +960,10 @@ % beiden den Klassen überlassen. Hier ist die Definition aus den % Standard-classes übernommen. % \begin{macrocode} +%<*!extend> \DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} \DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} +%</!extend> % \end{macrocode} % \end{macro} % \end{macro} @@ -589,7 +979,8 @@ \newcommand*{\setkomafont}[2]{% \@ifundefined{scr@fnt@#1}{% \@ifundefined{scr@fnt@instead@#1}{% - \ClassError{\KOMAClassName}{% +%<!extend> \ClassError{\KOMAClassName}{% +%<extend> \PackageError{scrextend}{% font of element `#1' can't be set}{% You've told me to redefine the font selection of the element,\MessageBreak% @@ -598,7 +989,8 @@ or the element does not use a special font selection% }% }{% - \ClassInfo{\KOMAClassName}{% +%<!extend> \ClassInfo{\KOMAClassName}{% +%<extend> \PackageInfo{scrextend}{% You've told me to redefine the font selection of the\MessageBreak element `#1' that is an alias of element\MessageBreak `\csname scr@fnt@instead@#1\endcsname'% @@ -610,7 +1002,8 @@ \expandafter\expandafter\expandafter\def\csname scr@fnt@#1\endcsname{#2}% }% \@ifundefined{scr@fnt@wrn@#1}{}{% - \ClassWarning{\KOMAClassName}{% +%<!extend> \ClassWarning{\KOMAClassName}{% +%<extend> \PackageWarning{scrextend}{% \csname scr@fnt@wrn@#1\endcsname{#1}% }% }% @@ -626,7 +1019,8 @@ \newcommand*{\addtokomafont}[2]{% \@ifundefined{scr@fnt@#1}{% \@ifundefined{scr@fnt@instead@#1}{% - \ClassError{\KOMAClassName}{% +%<!extend> \ClassError{\KOMAClassName}{% +%<extend> \PackageError{scrextend}{% font of element `#1' can't be extended% }{% You've told me to extend the font selection of the @@ -636,7 +1030,8 @@ or the element does not use a special font selection% }% }{% - \ClassInfo{\KOMAClassName}{% +%<!extend> \ClassInfo{\KOMAClassName}{% +%<extend> \PackageInfo{scrextend}{% You've told me to extend the font selection of the\MessageBreak element `#1' that is an alias of element\MessageBreak `\csname scr@fnt@instead@#1\endcsname'% @@ -649,7 +1044,8 @@ \csname scr@fnt@#1\endcsname{#2}% }% \@ifundefined{scr@fnt@wrn@#1}{}{% - \ClassWarning{\KOMAClassName}{% +%<!extend> \ClassWarning{\KOMAClassName}{% +%<extend> \PackageWarning{scrextend}{% \csname scr@fnt@wrn@#1\endcsname{#1}% }% }% @@ -666,7 +1062,8 @@ \newcommand*{\usekomafont}[1]{% \@ifundefined{scr@fnt@#1}{% \@ifundefined{scr@fnt@instead@#1}{% - \ClassError{\KOMAClassName}{% +%<!extend> \ClassError{\KOMAClassName}{% +%<extend> \PackageError{scrextend}{% font of element `#1' can't be used% }{% You've told me to use the font selection of the @@ -676,7 +1073,8 @@ or the element does not use a special font selection% }% }{% - \ClassInfo{\KOMAClassName}{% +%<!extend> \ClassInfo{\KOMAClassName}{% +%<extend> \PackageInfo{scrextend}{% You've told me to use the font selection of the element\MessageBreak `#1' that is an alias of element `\csname diff --git a/Master/texmf-dist/source/latex/koma-script/scrkftn.dtx b/Master/texmf-dist/source/latex/koma-script/scrkftn.dtx index 0ecf2864831..1f869f3bce0 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkftn.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkftn.dtx @@ -1,8 +1,8 @@ -% \CheckSum{111} +% \CheckSum{278} % \iffalse meta-comment % ====================================================================== % scrkftn.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkftn.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrkftn.dtx %<*driver> % \fi -\ProvidesFile{scrkftn.dtx}[2006/03/28 v2.95 KOMA-Script (footnotes)] +\ProvidesFile{scrkftn.dtx}[2008/05/02 v3.00 KOMA-Script (footnotes)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -97,7 +97,79 @@ % \fi % % \subsection{Option} -% Die Fußnoten werden nicht unmittelbar von Optionen beeinflusst. +% +% \begin{option}{footnotes} +% \changes{v2.98c}{2008/02/01}{Neue Option für Mehrfachfußnoten} +% Mehrfachfußnoten gibt es dann, wenn zu einer Textstelle mehrere Fußnoten +% hintereinander gesetzt werden. Normalerweise werden die einfach ohne Abstand +% hintereinander geklatscht. Man kann dann aber die beiden Fußnoten 1 und 2 +% beispielsweise nicht von der Fußnote 12 unterscheiden. Besser ist es, wenn +% mehrere Fußnoten automatisch durch ein Trennzeichen getrennt +% werden. Die Funktion ist \textsf{footmisc} entnommen und sollte inklusive +% Ein- und Ausschalten auch zusammen mit diesem Paket funktionieren. +% \begin{macrocode} +\KOMA@key{footnotes}{% + \ifx\@footnotemark\scr@saved@footnotemark + \else + \ifx\@footnotemark\scr@footnotemark + \else +%<class> \ClassWarning{\KOMAClassName}{% +%<package> \PackageWarning{scrextend}{% + 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'}% + }% + }% +} +% \end{macrocode} +% \begin{macro}{\scr@footmisc@options} +% \changes{v2.98c}{2008/02/14}{Neuer (intern)} +% Für etwas mehr Kompatibilität mit \textsf{footmisc}, wird die aktuelle +% Einstellung der \texttt{multifootnotes} an das Paket weitergereicht. +% \begin{macrocode} +\newcommand*{\scr@footmisc@options}{} +\PassOptionsToPackage{\noexpand\scr@footmisc@options}{footmisc} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\scr@saved@footnotemark} +% \changes{v2.98c}{2008/02/01}{Neu (intern)} +% \begin{macro}{\scr@footnotemark} +% \changes{v2.98c}{2008/02/01}{Neu (intern)} +% \begin{macrocode} +\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} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{option} % % % \iffalse @@ -120,11 +192,13 @@ % \cs{@textbottom} nicht \cs{relax} ist. Das kann natürlich auch % einmal schief gehen, ist dann aber auch nicht ganz so tragisch. % \begin{macrocode} +%<*class> \renewcommand*\footnoterule{% \kern-3\p@ \ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi \hrule\@width.4\columnwidth \kern 2.6\p@} +%</class> % \end{macrocode} % \end{macro} % @@ -252,11 +326,98 @@ % \end{macro} % \end{macro} % +% \begin{macro}{\FN@mf@check} +% \changes{v2.98c}{2008/02/01}{Neu (intern)} +% Dafür sorgen, dass hier ggf. der Trenner eingefügt wird. +% \begin{macrocode} +%<package>\providecommand*{\FN@mf@check}{% +%<class>\newcommand*{\FN@mf@check}{% + \ifdim\lastkern=\multiplefootnotemarker\relax + \edef\@x@sf{\the\spacefactor}% + \unkern\multiplefootnoteseparator + \spacefactor\@x@sf\relax + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scr@mf@prepare} +% \changes{v2.98c}{2008/02/01}{Neu (intern)} +% Damit |\FN@mf@check| informiert ist, dass es etwas zu tun hat. +% \begin{macrocode} +\newcommand*{\scr@mf@prepare}{% + \kern-\multiplefootnotemarker + \kern\multiplefootnotemarker\relax +} +% \end{macro} +% \begin{macro}{\F@mf@prepare} +% \changes{v2.98c}{2008/02/14}{Neu (intern)} +% Aus Gründen der Kompatibilität mit \textsf{footmisc} wird das dann +% vorsoglich auch noch definiert (und zwar als \cs{relax}, wenn es bisher noch +% nicht definiert ist). +\@ifundefined{FN@mf@prepare}{}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@footnotetext} +% \begin{macro}{\scr@saved@footnotetext} +% \changes{v2.98c}{2008/02/01}{Neu (intern)} +% Auch hier muss dafür gesorgt werden, dass die Markierung erfolgt. +% \begin{macrocode} +\newcommand*{\scr@saved@footnotetext}{} +\let\scr@saved@footnotetext\@footnotetext +\renewcommand*{\@footnotetext}[1]{% + \scr@saved@footnotetext{#1}% + \csname FN@mf@prepare\endcsname +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Es muss auch dafür gesorgt werden, dass \textsf{footmisc} nicht unnötig mit +% Warnung um sich wirft. +% \begin{macrocode} +\BeforePackage{footmisc}{% + \ifx\@footnotemark\scr@footnotemark + \let\@footnotemark\scr@saved@footnotemark + \fi + \let\@footnotetext\scr@saved@footnotetext +} +% \end{macrocode} +% +% \begin{macro}{\multiplefootnoteseparator} +% \changes{v2.98c}{2008/02/01}{Neu} +% Das ist der formatierte Separator! +% \begin{macrocode} +\newcommand*{\multiplefootnoteseparator}{% + \begingroup\let\thefootnotemark\multfootsep\@makefnmark\endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\multfootsep} +% \changes{v2.98c}{2008/02/01}{Neu} +% Und hier \textsf{footmisc}-kompatibel unformatiert +% \begin{macrocode} +%<class>\newcommand*{\multfootsep}{,} +%<package>\providecommand*{\multfootsep}{,} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\multiplefootnotemarker} +% \changes{v2.98c}{2008/02/01}{Neu} +% Das Markierungskerning wieder \textsf{footmisc}-kompatibel. +% \begin{macrocode} +\newcommand*{\multiplefootnotemarker}{3sp} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\thefootnotemark} % \changes{v2.4l}{1997/02/06}{neu} % Makro, damit \cs{@thefnmark} auf Anwenderebene verfügbar wird: % \begin{macrocode} -\newcommand*{\thefootnotemark}{\@thefnmark} +%<class>\newcommand*{\thefootnotemark}{\@thefnmark} +%<package>\providecommand*{\thefootnotemark}{\@thefnmark} % \end{macrocode} % \end{macro} % @@ -264,11 +425,34 @@ % Fußnotengestaltgebung} % \begin{macro}{\@makefnmark} % \begin{macrocode} +%<*class> \deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}} \deffootnotemark{\textsuperscript{\thefootnotemark}} +%</class> % \end{macrocode} % \end{macro} % +% \subsection{Fußnotenreferenz} +% +% \begin{macro}{\footref} +% \changes{v2.98c}{2008/02/01}{Neue Anweisung} +% Damit man nicht nur zu diesem Zweck das Paket \textsf{footmisc} laden muss, +% kann man jetzt auch mit \KOMAScript{} alleine Fußnoten setzen, die +% Referenzen auf andere Fußnoten sind. Der Code stammt einerseits aus footmisc +% andererseits auf der Usenet-Gruppe comp.text.tex. Wer den zuerst hatte, ist +% für mich nicht mehr reproduzierbar. Jedenfalls steht er in footmisc unter +% LPPL und \KOMAScript{} steht ebenfalls unter LPPL. Das sollte also im +% Zweifelsfall nicht das Problem sein. +% \begin{macrocode} +%<class>\newcommand*{\footref}[1]{% +%<package>\providecommand*{\footref}[1]{% + \begingroup + \unrestored@protected@xdef\@thefnmark{\ref{#1}}% + \endgroup + \@footnotemark +} +% \end{macrocode} +% \end{macro} % % \iffalse %</body> diff --git a/Master/texmf-dist/source/latex/koma-script/scrkidx.dtx b/Master/texmf-dist/source/latex/koma-script/scrkidx.dtx index d0a600216ec..b01b67cafdf 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkidx.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkidx.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % scrkidx.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkidx.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrkidx.dtx %<*driver> % \fi -\ProvidesFile{scrkidx.dtx}[2006/03/28 v2.95 KOMA-Script (index)] +\ProvidesFile{scrkidx.dtx}[2008/10/16 v3.00 KOMA-Script (index)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -102,61 +102,82 @@ %<*option> % \fi % +% \subsection{Anweisungen und Einstellungen für die Optionen} +% +% Einige Anweisungen und Einstellungen werden bereits benötigt, bevor die +% Optionen abgearbeitet werden. +% +% \begin{macro}{\idx@@heading} +% \changes{v2.98c}{2008/03/04}{neu (intern)} +% Diese Anweisung wird verwendet, um nur die Überschrift zu setzen (nichts +% weiter!). Sie hat genau ein Argument, nämlich den Text der Überschrift und +% wird innerhalb von |\idx@heading| verwendet. +% \begin{macrocode} +\newcommand*{\idx@@heading}{% +%<article> \section* +%<book|report> \chapter* +} +% \end{macrocode} +% \end{macro} +% +% % \subsection{Optionen für den Index} % -% \begin{option}{idxtotoc} -% \changes{v2.3h}{1995/01/21}{neue Option} +% \begin{option}{index} +% \changes{v2.98c}{2008/03/04}{Neue Option} +% \begin{macro}{\idx@@heading} % Die Option sorgt dafür, dass der Index auch im Inhaltsverzeichnis -% erscheint. -% \begin{macro}{\idx@heading} -% Dazu wird das interne Makro \cs{idx@heading} umdefiniert, über das -% die Überschrift gesetzt und der Kolumnentitel angepasst wird. -% \changes{v2.4c}{1996/04/04}{Kolumnentitel werden nun korrekt -% behandelt} -% \changes{v2.4g}{1996/11/04}{Index auch bei \textsf{scrartcl} -% wieder zweispaltig} -% \changes{v2.6c}{2000/06/10}{im Index kann nach der Überschrift -% eine Präambel gesetzt werden} -% \changes{v2.7a}{2001/01/04}{für \textsf{scrbook} und -% \textsf{scrreprt} die Link-Erzeugung mit \texttt{hyperref} -% verbessert} -% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die -% \texttt{theindex}-Umgebung verschoben} -% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch -% \cs{if@openright} ersetzt} +% erscheint. Dazu wird das interne Makro \cs{idx@@heading} umdefiniert, über +% das die Überschrift gesetzt und der Kolumnentitel angepasst wird. +% \changes{v2.4c}{1996/04/04}{Kolumnentitel werden nun korrekt +% behandelt} +% \changes{v2.4g}{1996/11/04}{Index auch bei \textsf{scrartcl} +% wieder zweispaltig} +% \changes{v2.6c}{2000/06/10}{im Index kann nach der Überschrift +% eine Präambel gesetzt werden} +% \changes{v2.7a}{2001/01/04}{für \textsf{scrbook} und +% \textsf{scrreprt} die Link-Erzeugung mit \texttt{hyperref} +% verbessert} +% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die +% \texttt{theindex}-Umgebung verschoben} +% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch +% \cs{if@openright} ersetzt} +% \changes{v2.98c}{2008/03/04}{statt \cs{idx@heading} wird nun +% \cs{idx@@heading} umdefiniert} % An dieser Stelle muss dafür gesorgt werden, dass im Falle von % \textsf{scrbook} und \textsf{scrreprt} das Makro \cs{@schapter} % verwendet wird. Damit dies hier möglich ist mussten tiefreifendere % Änderungen am \LaTeX-Kernel bzw. am Gliederungsbefehl \cs{chapter} % vorgenommen werden. -% -% Die ursprüngliche Definition sah so aus: -% \begin{verbatim} -% \renewcommand*\idx@heading{% -% \if@twoside\cleardoublepage\else\clearpage\fi% -% \@mkboth{\indexname}{\indexname}% -% %<report|book> \addcontentsline{toc}{chapter}{\indexname}% -% \twocolumn[% -% %<article> \addsec -% %<report|book> \@makeschapterhead -% {\indexname}\index@preamble]% -% } -% \end{verbatim}\vspace{-\baselineskip} -% Die neue Definition wurde wie folgt geändert: % \begin{macrocode} -\DeclareOption{idxtotoc}{% - \AtEndOfClass{% - \renewcommand*\idx@heading{% -%<report|book> \if@openright\cleardoublepage\else\clearpage\fi -%<article> \twocolumn[\addsec{\indexname}]% -%<report|book> \twocolumn[\addchap{\indexname}]% - \@mkboth{\indexname}{\indexname}% +\KOMA@key{index}{% + \KOMA@set@ncmdkey{index}{@tempa}{% + {notoc}{0},{nottotoc}{0},{default}{0},{plainheading}{0},% + {totoc}{1},{toc}{1},{notnumbered}{1}% + }{#1}% + \ifcase \@tempa\relax + \renewcommand*{\idx@@heading}{% +%<article> \section* +%<book|report> \chapter* }% - }% + \or + \renewcommand*{\idx@@heading}{% +%<article> \addsec +%<book|report> \addchap + }% + \fi } % \end{macrocode} -% \end{macro} -% \end{option} +% \end{macro} +% \end{option} +% +% \begin{option}{idxtotoc} +% \changes{v2.3h}{1995/01/21}{neue Option} +% \changes{v2.98c}{2008/03/04}{obsolete} +% \begin{macrocode} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{idxtotoc}{index=totoc} +% \end{macrocode} +% \end{option} % % % \iffalse @@ -185,18 +206,19 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\idx@heading} -% \changes{v2.3h}{1995/01/21}{neu (intern)} -% \changes{v2.4c}{1995/04/04}{Kolumnentitel werden nun korrekt -% behandelt} -% \changes{v2.4g}{1996/11/04}{Index auch bei \texttt{scrartcl} -% wieder zweispaltig} -% \changes{v2.6c}{2000/06/10}{Verwendung von \cs{index@preamble} -% eingefügt} -% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die -% \texttt{theindex}-Umgebung verschoben} -% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch -% \cs{if@openright} ersetzt} +% \begin{macro}{\idx@heading} +% \changes{v2.3h}{1995/01/21}{neu (intern)} +% \changes{v2.4c}{1995/04/04}{Kolumnentitel werden nun korrekt +% behandelt} +% \changes{v2.4g}{1996/11/04}{Index auch bei \texttt{scrartcl} +% wieder zweispaltig} +% \changes{v2.6c}{2000/06/10}{Verwendung von \cs{index@preamble} +% eingefügt} +% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die +% \texttt{theindex}-Umgebung verschoben} +% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch +% \cs{if@openright} ersetzt} +% \changes{v2.98c}{2008/03/04}{Verwendung von \cs{idx@@heading}} % Befehl zum Setzen der Überschrift des Indexes. % Bis Version 2.7a sah diese Definition so aus: % \begin{verbatim} @@ -221,12 +243,11 @@ % \begin{macrocode} \newcommand*{\idx@heading}{% %<report|book> \if@openright\cleardoublepage\else\clearpage\fi% -%<article> \twocolumn[\section*{\indexname}]% -%<report|book> \twocolumn[\chapter*{\indexname}]% + \twocolumn[\idx@@heading{\indexname}]% \@mkboth{\indexname}{\indexname}% } % \end{macrocode} -% \end{macro} +% \end{macro} % % \begin{environment}{theindex} % \changes{v2.8d}{2001/07/05}{\cs{indexpagestyle} statt diff --git a/Master/texmf-dist/source/latex/koma-script/scrklang.dtx b/Master/texmf-dist/source/latex/koma-script/scrklang.dtx index f2b0594014e..d40c981e2cd 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrklang.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrklang.dtx @@ -1,8 +1,8 @@ -% \CheckSum{1051} +% \CheckSum{1045} % \iffalse meta-comment % ====================================================================== % scrklang.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrklang.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -103,7 +103,7 @@ % Datum umzuschalten. % % \iffalse -%<*letter> +%<*class&letter> % \fi % % \begin{option}{numericaldate} @@ -139,7 +139,7 @@ % \end{option} % % \iffalse -%</letter> +%</class&letter> % \fi % % @@ -150,24 +150,34 @@ % % \subsection{Definitionen für sprachabhängige Bezeichner} % -% \begin{macro}{\providecaptionname} -% \changes{v2.8q}{2001/11/08}{neu} -% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte -% ist, wird die Anderung sofort aktiviert.} -% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert -% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.} -% \begin{macro}{\newcaptionname} -% \changes{v2.8q}{2001/11/08}{neu} -% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte -% ist, wird die Anderung sofort aktiviert.} -% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert -% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.} -% \begin{macro}{\renewcaptionname} -% \changes{v2.8q}{2001/11/08}{neu} -% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte -% ist, wird die Anderung sofort aktiviert.} -% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert -% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.} +% Dieser Teil ist so grundlegend, dass er ab Version~3.00 in das Paket +% \textsf{scrbase} ausgelagert wird. +% +% \iffalse +%<*package&base> +% \fi +% +% \begin{macro}{\providecaptionname} +% \changes{v2.8q}{2001/11/08}{neu} +% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte +% ist, wird die Anderung sofort aktiviert.} +% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert +% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.} +% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben} +% \begin{macro}{\newcaptionname} +% \changes{v2.8q}{2001/11/08}{neu} +% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte +% ist, wird die Anderung sofort aktiviert.} +% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert +% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.} +% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben} +% \begin{macro}{\renewcaptionname} +% \changes{v2.8q}{2001/11/08}{neu} +% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte +% ist, wird die Anderung sofort aktiviert.} +% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert +% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.} +% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben} % Drei Benutzerkommandos zur Definition sprachabhängiger Begriffe. % Es empfiehlt sich wegen \textsf{babel} diese Anweisungen innerhalb % von \cs{AtBeginDocument} zu verwenden. @@ -175,7 +185,7 @@ \newcommand*{\providecaptionname}[3]{% \@ifundefined{captions#1}{% \@ifundefined{cap@info@#1@done}{% - \ClassInfo{\KOMAClassName}{% + \PackageInfo{scrbase}{% No captions found for `#1'\MessageBreak --> skipped% }% @@ -202,7 +212,7 @@ }% \fi \else - \ClassInfo{\KOMAClassName}{% + \PackageInfo{scrbase}{% `\string#2' at language `#1' already defined\MessageBreak --> skipped% @@ -213,7 +223,7 @@ } \newcommand*{\newcaptionname}[3]{% \@ifundefined{captions#1}{% - \ClassInfo{\KOMAClassName}{% + \PackageInfo{scrbase}{% No captions found for `#1' --> defining% }% \@namedef{captions#1}{}% @@ -221,7 +231,7 @@ \begingroup \csname captions#1\endcsname \ifx #2\undefined\else - \ClassError{\KOMAClassName}{% + \PackageError{scrbase}{% `\string#2' at language `#1' already defined% }{% You've told me to define `\string#2' at language @@ -247,7 +257,7 @@ } \newcommand*{\renewcaptionname}[3]{% \@ifundefined{captions#1}{% - \ClassError{\KOMAClassName}{% + \PackageError{scrbase}{% No captions found for `#1'% }{% You've told me to redefine the caption `\string#2' at language @@ -261,7 +271,7 @@ \begingroup \csname captions#1\endcsname \ifx #2\undefined - \ClassError{\KOMAClassName}{% + \PackageError{scrbase}{% `\string#2' not defined at language `#1'% }{% You've told me to redefine `\string#2' at language @@ -290,6 +300,11 @@ % \end{macro} % \end{macro} % +% \iffalse +%</package&base> +%<*class> +% \fi +% % % \subsection{Definitionen für ein nummerisches Datum} % Bei Briefen kann ein nummerisches oder ein symbolisches Datum verwendet @@ -830,6 +845,7 @@ % % \iffalse %</letter> +%</class> % \fi % % diff --git a/Master/texmf-dist/source/latex/koma-script/scrklco.dtx b/Master/texmf-dist/source/latex/koma-script/scrklco.dtx index 287a3892e32..f279d9d5409 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrklco.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrklco.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % scrklco.dtx -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrklco.dtx -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scrkliof.dtx b/Master/texmf-dist/source/latex/koma-script/scrkliof.dtx index 51a2d01a22e..fd349939f53 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkliof.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkliof.dtx @@ -1,8 +1,8 @@ -% \CheckSum{277} +% \CheckSum{312} % \iffalse meta-comment % ====================================================================== % scrkliof.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkliof.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrkliof.dtx %<*driver> % \fi -\ProvidesFile{scrkliof.dtx}[2006/12/03 v2.96a KOMA-Script (lists of)] +\ProvidesFile{scrkliof.dtx}[2008/10/16 v3.00 KOMA-Script (lists of)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -105,32 +105,91 @@ %<*option> % \fi % +% % \subsection{Optionen für das Inhaltsverzeichnis} % -% \begin{option}{tocleft} -% \changes{v2.8q}{2001/11/14}{neue Option} -% \begin{option}{tocindent} -% \changes{v2.8q}{2001/11/14}{neue Option} -% Optionen für zwei unterschiedliche Darstellungen des -% Inhaltsverzeichnisses. Die Variante \texttt{tocindent} ist die -% altbekannte Variante. Bei \texttt{tocleft} hingegen wird eine -% tabellenartige Form verwendet, bei der die Nummern, Texte und -% Seitenzahlen jeweils untereinander stehen. Der für die Nummern -% benötigte Platz wird dabei automatisch ermittelt. -% \begin{macro}{\if@tocleft} -% \changes{v2.8q}{2001/11/14}{neuer Schalter} -% \begin{macro}{\@toclefttrue} -% \begin{macro}{\@tocleftfalse} -% Die Wahl der Darstellungsart wird in einem Schalter gespeichert. +% Einige Anweisungen und Einstellungen werden bereits für die Optionen +% benötigt und deshalb vorab definiert. +% +% \begin{macro}{\if@tocleft} +% \changes{v2.8q}{2001/11/14}{neuer Schalter} +% \changes{v2.98c}{2008/03/05}{wird früher definiert} +% \begin{macro}{\@toclefttrue} +% \begin{macro}{\@tocleftfalse} +% Die Wahl der Darstellungsart für das Inhaltsverzeichnis wird in einem +% Schalter gespeichert. % \begin{macrocode} \newif\if@tocleft % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{option}{toc} +% \changes{v2.98c}{2008/03/04}{Neue Option} +% Dies ist die zentrale Option für Einstellungen des Inhaltsverzeichnisses. +% \begin{macrocode} +\KOMA@key{toc}{% + \KOMA@set@ncmdkey{toc}{@tempa}{% +% \end{macrocode} +% Es gibt Werte, um zu bestimmen, welche Verzeichnisse ins Inhaltsverzeichis +% aufgenommen werden. Eigentlich sind das Optionen der jeweiligen +% Verzeichnisses, aber das muss sich der Anwender ja nicht unbedingt merken. % \begin{macrocode} -\DeclareOption{tocleft}{\@toclefttrue} -\DeclareOption{tocindent}{\@tocleftfalse} + {noindex}{0},{noidx}{0},% + {index}{1},{idx}{1},% + {nolistof}{2},% + {listof}{3},% + {listofnumbered}{4},{numberedlistof}{4},% + {nobibliography}{5},{nobib}{5},% + {bibliography}{6},{bib}{6},% + {bibliographynumbered}{7},{bibnumbered}{7},{numberedbibliography}{7},% + {numberedbib}{7},% +% \end{macrocode} +% Dann gibt es Optionen für die Darstellungsarten des +% Inhaltsverzeichnisses. Die Variante \texttt{graduated} ist die altbekannte +% Variante. Bei \texttt{flat} hingegen wird eine tabellenartige Form +% verwendet, bei der die Nummern, Texte und Seitenzahlen jeweils untereinander +% stehen. Der für die Nummern benötigte Platz wird dabei automatisch +% ermittelt. +% \begin{macrocode} + {flat}{8},{left}{8},% + {graduated}{9},{indent}{9},{indented}{9}% + }{#1}% + \ifcase \@tempa\relax + \KOMA@options{index=notoc}{}% + \or + \KOMA@options{index=totoc}{}% + \or + \KOMA@options{listof=notoc}{}% + \or + \KOMA@options{listof=totoc}{}% + \or + \KOMA@options{listof=numbered}{}% + \or + \KOMA@options{bibliography=nottotoc}{}% + \or + \KOMA@options{bibliography=totoc}{}% + \or + \KOMA@options{bibliography=totocnumbered}{}% + \or + \@toclefttrue + \or + \@tocleftfalse + \fi +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{tocleft} +% \changes{v2.8q}{2001/11/14}{neue Option} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \begin{option}{tocindent} +% \changes{v2.8q}{2001/11/14}{neue Option} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \begin{macrocode} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{tocleft}{toc=flat} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{tocindent}{toc=graduated} % \end{macrocode} % \end{option} % \end{option} @@ -138,100 +197,168 @@ % % \subsection{Optionen für die Gleitumgebungen} % -% \begin{option}{liststotoc} -% \changes{v2.3h}{1995/01/21}{neue Option} -% \changes{v2.8b}{2001/06/26}{Verwendung von \cs{float@headings}} -% \changes{v2.4a}{1996/03/13}{\cs{listtabelname} durch -% \cs{listtablename} ersetzt} -% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in -% \cs{float@listhead}} -% Die Option sorgt dafür, dass die Verzeichnisse der Gleitumgebungen -% im Inhalsverzeichnis aufgeführt werden. Dazu muss nur -% \cs{float@listhead} umdefiniert werden. -% \begin{macro}{\float@listhead} -% \begin{macrocode} -\DeclareOption{liststotoc}{% - \AtEndOfClass{% - \renewcommand*{\float@listhead}[1]{% -%<article> \addsec{#1} -%<report|book> \addchap{#1} - \@mkboth{#1}{#1}% - \if@dynlist - \newcommand*{\scr@starttoc}{}% - \let\scr@starttoc=\@starttoc - \renewcommand*{\@starttoc}[1]{% - \before@starttoc{##1}\scr@starttoc{##1}\after@starttoc{##1}}% - \fi - }% - }% -} -% \end{macrocode} -% \end{macro} -% \end{option} +% Einige Anweisungen und Einstellungen werden bereits für die Optionen +% benötigt und deshalb vorab definiert. % -% \begin{option}{liststotocnumbered} -% \changes{v2.8q}{2002/04/08}{dem langjährigen Druck nachgegeben} -% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel} -% Die Option sorgt dafür, dass die Verzeichnisse der Gleitumgebungen -% nummerierte Kapitel/Abschnitte werden. Dazu muss nur -% \cs{float@listhead} umdefiniert werden. Ich halte diese Option -% selbst für wenig sinnvoll. -% \begin{macro}{\float@listhead} -% \begin{macrocode} -\DeclareOption{liststotocnumbered}{% - \AtEndOfClass{% - \renewcommand*{\float@listhead}[1]{% -%<article> \section{#1} -%<report|book> \chapter{#1} -%<article> \@mkboth{\sectionmarkformat #1}{\sectionmarkformat #1}% -%<report|book> \@mkboth{\chaptermarkformat #1}{\chaptermarkformat #1}% - \if@dynlist - \newcommand*{\scr@starttoc}{}% - \let\scr@starttoc=\@starttoc - \renewcommand*{\@starttoc}[1]{% - \before@starttoc{##1}\scr@starttoc{##1}\after@starttoc{##1}}% - \fi - }% - }% +% \begin{macro}{\float@@listhead} +% \changes{v2.98c}{2008/03/05}{neu (intern)} +% Setzt nur die Überschrift und sonst nichts. Dabei wird die Überschrift als +% einziges Argument übergeben. +% \begin{macrocode} +\newcommand*{\float@@listhead}{% +%<article> \section* +%<report|book> \chapter* } % \end{macrocode} -% \end{macro} -% \end{option} +% \end{macro} % -% -% \begin{option}{listsleft} -% \changes{v2.8q}{2001/11/14}{neue Option} -% \begin{option}{listsindent} -% \changes{v2.8q}{2001/11/14}{neue Option} -% Optionen für zwei unterschiedliche Darstellungen der Verzeichnisses -% von Gleitumgebungen. Die Variante \texttt{listindent} ist die -% altbekannte Variante mit einem festen Einzug der Nummer. Bei -% \texttt{listleft} hingegen wird der für die Nummern benötigte Platz -% automatisch ermittelt. -% \begin{macro}{\if@dynlist} -% \changes{v2.8q}{2001/11/14}{neuer Schalter} -% \begin{macro}{\@dynlisttrue} -% \begin{macro}{\@dynlistfalse} +% \begin{macro}{\if@dynlist} +% \changes{v2.8q}{2001/11/14}{neuer Schalter} +% \begin{macro}{\@dynlisttrue} +% \begin{macro}{\@dynlistfalse} % Die Wahl der Darstellungsart wird in einem Schalter gespeichert. % \begin{macrocode} \newif\if@dynlist % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{option}{listof} +% \changes{v2.98c}{2008/03/05}{Neue Option} +% Dies ist die zentrale Option für die Gleitumgebungsverzeichnisse. % \begin{macrocode} -\DeclareOption{listsleft}{\@dynlisttrue} -\DeclareOption{listsindent}{\@dynlistfalse} +\KOMA@key{listof}{% + \KOMA@set@ncmdkey{listof}{@tempa}{% % \end{macrocode} -% \end{option} -% \end{option} +% Es gibt Werte, die dafür sorgen, dass die Verzeichnisse der Gleitumgebungen +% im Inhalsverzeichnis aufgeführt werden. Dazu muss nur \cs{float@@listhead} +% umdefiniert werden. +% \begin{macrocode} + {notoc}{0},{nottotoc}{0},{plainheading}{0},% + {totoc}{1},{toc}{1},{notnumbered}{1},% + {numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},% + {numberedtoc}{2},% +% \end{macrocode} +% Dann gibt es Optionen für die Darstellungsarten des +% Inhaltsverzeichnisses. Die Variante \texttt{graduated} ist die altbekannte +% Variante. Bei \texttt{flat} hingegen wird eine tabellenartige Form +% verwendet, bei der die Nummern, Texte und Seitenzahlen jeweils untereinander +% stehen. Der für die Nummern benötigte Platz wird dabei automatisch +% ermittelt. +% \begin{macrocode} + {flat}{3},{left}{3},% + {graduated}{4},{indent}{4},{indented}{4},% +% \end{macrocode} +% Dann gibt es eine Option, mit der die Gliederungsebene der Verzeichnisse +% verändert werden kann. +% \begin{macrocode} + {leveldown}{5}, +% \end{macrocode} +% Dann gibt es Optionen, für die Unterteilung auf Kapitelebene. Allerdings nur +% für \textsf{scrbook} und \textsf{scrreprt}. +% \begin{macrocode} +%<*book|report> + {chapterentry}{6},{withchapterentry}{6},% + {nochaptergap}{7},{ignorechapter}{7},% + {chaptergapsmall}{8},{smallchaptergap}{8},% + {chaptergapline}{9},{onelinechaptergap}{9}% +%</book|report> + }{#1}% + \ifcase \@tempa\relax + \renewcommand*{\float@@listhead}{% +%<article> \section* +%<report|book> \chapter* + }% + \doforeachtocfile[float]{% + \unsettoc{\@currext}{numbered}% + \unsettoc{\@currext}{totoc}% + }% + \or% totoc + \renewcommand*{\float@@listhead}{% +%<article> \addsec +%<report|book> \addchap + }% + \doforeachtocfile[float]{% + \unsettoc{\@currext}{numbered}% + \setuptoc{\@currext}{totoc}% + }% + \or% numbered + \renewcommand*{\float@@listhead}{% +%<article> \section +%<report|book> \chapter + }% + \doforeachtocfile[float]{% + \setuptoc{\@currext}{numbered}% + \setuptoc{\@currext}{totoc}% + }% + \or% flat + \@dynlisttrue + \or% graduated + \@dynlistfalse + \or% leveldown + \doforeachtocfile[float]{% + \setuptoc{\@currext}{leveldown}% + }% +%<*book|report> + \or% chapterentry + \KOMA@options{chapteratlists=entry}{}% + \or% chaptergap + \KOMA@options{chapteratlists=\z@}{}% + \or% chaptergapsmall + \KOMA@options{chapteratlists=10\p@}{}% + \or% chaptergapline + \KOMA@options{chapteratlists=\baselineskip}{}% +%</book|report> + \fi +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{liststotoc} +% \changes{v2.3h}{1995/01/21}{neue Option} +% \changes{v2.8b}{2001/06/26}{Verwendung von \cs{float@headings}} +% \changes{v2.4a}{1996/03/13}{\cs{listtabelname} durch +% \cs{listtablename} ersetzt} +% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in +% \cs{float@listhead}} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \begin{macrocode} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{liststotoc}{listof=totoc} +% \end{macrocode} +% \end{option} +% +% \begin{option}{liststotocnumbered} +% \changes{v2.8q}{2002/04/08}{dem langjährigen Druck nachgegeben} +% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \begin{macrocode} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{liststotocnumbered} + {listof=numbered} +% \end{macrocode} +% \end{option} +% % -% \begin{option}{chapteratlists} -% \changes{v2.96a}{2006/12/03}{neue Option} -% \begin{macro}{\if@chaptertolists} -% \changes{v2.96a}{2006/12/03}{neuer Schalter} -% \begin{macro}{\@chapterlistsgap} -% \changes{v2.96a}{2006/12/03}{neues Macro (intern)} +% \begin{option}{listsleft} +% \changes{v2.8q}{2001/11/14}{neue Option} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \begin{option}{listsindent} +% \changes{v2.8q}{2001/11/14}{neue Option} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \begin{macrocode} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{listsleft}{listof=flat} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{listsindent}{listof=graduated} +% \end{macrocode} +% \end{option} +% \end{option} +% +% \begin{option}{chapteratlists} +% \changes{v2.96a}{2006/12/03}{neue Option} +% \changes{v2.98c}{2008/03/05}{nicht mehr bei \textsf{scrartcl}} +% \begin{macro}{\if@chaptertolists} +% \changes{v2.96a}{2006/12/03}{neuer Schalter} +% \begin{macro}{\@chapterlistsgap} +% \changes{v2.96a}{2006/12/03}{neues Macro (intern)} % Option, um einzugstellen, ob Kapitel in den Verzeichnissen der % Gleitumgebungen Spuren hinterlassen. Man kann wahlweise Lücken einstellen % (Voreinstellung mit 10\,pt) oder die Kapitelüberschrift eintragen lassen. @@ -239,6 +366,7 @@ % soll. Das interne Hilfsmakro \cs{@chapterlistsgap} enthält den gewünschten % Abstand. % \begin{macrocode} +%<*book|report> \newcommand*{\@chapterlistsgap}{10\p@} \newif\if@chaptertolists\@chaptertolistsfalse \KOMA@key{chapteratlists}[entry]{% @@ -248,10 +376,11 @@ \@chaptertolistsfalse\renewcommand*{\@chapterlistsgap}{#1}% }% } +%</book|report> % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{option} +% \end{macro} +% \end{macro} +% \end{option} % % \iffalse %</option> @@ -375,15 +504,31 @@ % \end{macrocode} % \end{macro} % +% Dafür sorgen, dass die Verzeichnisse von \textsf{tocbasic} so gesetzt +% werden, wie wir das gerne hätten (wird über einen Trick auch für das +% Inhaltsverzeichnis verwendet): +% \begin{macrocode} +\g@addto@macro\tocbasic@@before@hook{% + \if@dynlist\expandafter\before@starttoc\expandafter{\@currext}\fi +} +\g@addto@macro\tocbasic@@after@hook{% + \if@dynlist\expandafter\after@starttoc\expandafter{\@currext}\fi +} +% \end{macrocode} +% % % \subsection{Definitionen für das Inhaltsverzeichnis} % -% \begin{macro}{\contentsname} +% \begin{macro}{\contentsname} +% \begin{macro}{\listoftocname} +% \changes{3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}} % Der Name des Verzeichnisses. % \begin{macrocode} \newcommand*\contentsname{Contents} +\newcommand*\listoftocname{\contentsname} % \end{macrocode} -% \end{macro} +% \end{macro} +% \end{macro} % % \begin{Counter}{tocdepth} % Der Zähler gibt an, bis zu welcher Gliederungebene Einträge in das @@ -397,22 +542,31 @@ % \end{macrocode} % \end{Counter} % -% \begin{macro}{\toc@heading} -% \changes{v2.3h}{1995/01/21}{neu (intern)} -% \changes{v2.95}{2002/06/28}{auch für \textsf{scrreprt} und -% \textsf{scrbook}} +% \begin{macro}{\toc@heading} +% \changes{v2.3h}{1995/01/21}{neu (intern)} +% \changes{v2.95}{2002/06/28}{auch für \textsf{scrreprt} und +% \textsf{scrbook}} +% \changes{v3.00}{2008/07/04}{Verwendung von \cs{toc@heading} ist nicht +% länger empfohlen} % Befehl, zum Setzen der Überschrift des % Inhaltsverzeichnisses. Eigentlich ist das überflüssig, weil es nur % einmal verwendet wird. Aus Gründen der Konsistenz mit den anderen % Verzeichnissen machen wir das hier aber genauso. % \begin{macrocode} \newcommand*\toc@heading{% + \ClassWarning{\KOMAClassName}{% + usage of deprecated \string\toc@heading!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\toc@heading.\MessageBreak + Definition of \string\toc@heading\space my be removed from\MessageBreak + KOMA-Script soon, so it should not be used + }% %<article> \section*{\contentsname}% %<book|report> \chapter*{\contentsname}% \@mkboth{\contentsname}{\contentsname}% } % \end{macrocode} -% \end{macro} +% \end{macro} % % \begin{macro}{\toc@l@number} % \changes{v2.8q}{2001/11/14}{neu} @@ -425,49 +579,37 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\tableofcontents} -% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{toc@heading}} -% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf -% 0 gesetzt} -% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}% -% \cs{@parskip@indent}} -% \changes{v2.8q}{2001/11/14}{\cs{if@tocleft} bearbeiten} -% \changes{v2.95}{2002/06/28}{\textsf{article} beachtet ebenfalls -% \texttt{tocleft}} -% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} -% ersetzt} +% \begin{macro}{\tableofcontents} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{toc@heading}} +% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf +% 0 gesetzt} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}% +% \cs{@parskip@indent}} +% \changes{v2.8q}{2001/11/14}{\cs{if@tocleft} bearbeiten} +% \changes{v2.95}{2002/06/28}{\textsf{article} beachtet ebenfalls +% \texttt{tocleft}} +% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} +% ersetzt} +% \changes{v3.00}{2008/07/04}{auf \textsf{tocbasic} umgestellt} % Die Ausgabe des Inhaltsverzeichnisses. % \begin{macrocode} \newcommand*{\tableofcontents}{% - \begingroup -%<*report|book> - \if@twocolumn - \@restonecoltrue\onecolumn - \else - \@restonecolfalse - \fi -%</report|book> - \toc@heading% - \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative - \if@tocleft\before@starttoc{toc}\fi - \@starttoc{toc}% - \if@tocleft\after@starttoc{toc}\fi -%<*report|book> - \if@restonecol\twocolumn\fi -%</report|book> - \endgroup + \begingroup\let\if@dynlist\if@tocleft\listoftoc{toc}\endgroup } % \end{macrocode} -% \end{macro} +% \end{macro} % % % \subsection{Definitionen für die Verzeichnisse der % Gleitumgebungen} % -% \begin{macro}{\float@listhead} -% \changes{v2.8b}{2001/06/26}{neu (für alle Paketautoren)} -% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in -% \cs{float@listhead}} +% \begin{macro}{\float@listhead} +% \changes{v2.8b}{2001/06/26}{neu (für alle Paketautoren)} +% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in +% \cs{float@listhead}} +% \changes{v2.98c}{2008/03/05}{\cs{float@@listhead} wird verwendet} +% \changes{v3.00}{2008/07/04}{Verwendung von \cs{float@listhead} ist nicht +% länger empfohlen} % In Absprache mit Anselm Lingnau, dem Autor des Pakets % \textsf{float}, wird ab Version 2.8b \cs{float@headings} zum Setzen % des Kolumnentitels bei den Verzeichnissen verwendet, die @@ -478,8 +620,14 @@ % \cs{float@listhead} zu nennen, wurde dies in Version 2.8g angepasst. % \begin{macrocode} \newcommand*{\float@listhead}[1]{% -%<article> \section*{#1}% -%<report|book> \chapter*{#1}% + \ClassWarning{\KOMAClassName}{% + usage of deprecated \string\float@listhead!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@listhead.\MessageBreak + Definition of \string\float@listhead\space my be removed from\MessageBreak + KOMA-Script soon, so it should not be used + }% + \float@@listhead{#1}% \@mkboth{#1}{#1}% % \end{macrocode} % \changes{v2.8q}{2001/11/14}{dynamische Anpassung an die Nummer} @@ -501,58 +649,38 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\listfigurename} -% \begin{macro}{\listtablename} -% Die Namen der Verzeichnisse. +% \begin{macro}{\listfigurename} +% \begin{macro}{\listtablename} +% \begin{macro}{\listoflofname} +% \changes{3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}} +% \begin{macro}{\listotlofname} +% \changes{3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}} +% Die Namen der Verzeichnisse auch für das Paket \textsf{tocbasic}. % \begin{macrocode} \newcommand*\listfigurename{List of Figures} +\newcommand*\listoflofname{\listfigurename} \newcommand*\listtablename{List of Tables} +\newcommand*\listoflotname{\listtablename} % \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\lof@heading} -% \changes{v2.3h}{1995/01/21}{neu (intern)} -% \changes{v2.4d}{1996/04/11}{\cs{addsec} durch \cs{section*} -% ersetzt} -% \changes{v2.8b}{2001/06/26}{Verwendung von \cs{float@headings}} -% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in -% \cs{float@listhead}} -% Befehl, zum Setzen der Überschrift des Abbildungsverzeichnisses. -% \begin{macrocode} -\newcommand*\lof@heading{\float@listhead{\listfigurename}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\listoffigures} -% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lof@heading}} -% \changes{v2.4k}{1996/12/13}{\cs{lof@heading} nicht nur bei -% \textsf{scrartcl}} -% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf -% 0 gesetzt} -% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}% -% \cs{@parskip@indent}} -% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} -% ersetzt} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\listoffigures} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lof@heading}} +% \changes{v2.4k}{1996/12/13}{\cs{lof@heading} nicht nur bei +% \textsf{scrartcl}} +% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf +% 0 gesetzt} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}% +% \cs{@parskip@indent}} +% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} +% ersetzt} +% \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}} % Die Ausgabe des Abbildungsverzeichnisses. % \begin{macrocode} -\newcommand*\listoffigures{% - \begingroup% -%<*report|book> - \if@twocolumn - \@restonecoltrue\onecolumn - \else - \@restonecolfalse - \fi -%</report|book> - \lof@heading% - \setparsizes{0}{0}{\z@\@plus 1fil}\par@updaterelative - \@starttoc{lof}% -%<*report|book> - \if@restonecol\twocolumn\fi -%</report|book> - \endgroup -} +\newcommand*\listoffigures{\listoftoc{lof}} % \end{macrocode} % % \begin{macro}{\l@figure} @@ -563,57 +691,29 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\lot@heading} -% \changes{v2.3h}{1995/01/21}{neu (intern)} -% \changes{v2.4a}{1996/03/13}{\cs{listtabelname} durch -% \cs{listtablename} ersetzt} -% \changes{v2.8b}{2001/06/26}{Verwendung von \cs{float@headings}} -% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in -% \cs{float@listhead}} -% Befehl zum Setzen der Überschrift des Tabellenverzeichnisses. -% \begin{macrocode} -\newcommand*\lot@heading{\float@listhead{\listtablename}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\listoftables} -% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lot@heading}} -% \changes{v2.4k}{1996/12/13}{\cs{lot@heading} nicht nur bei -% \textsf{scrartcl}} -% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf -% 0 gesetzt} -% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}% -% \cs{@parskip@indent}} -% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} -% ersetzt} +% \begin{macro}{\listoftables} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lot@heading}} +% \changes{v2.4k}{1996/12/13}{\cs{lot@heading} nicht nur bei +% \textsf{scrartcl}} +% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf +% 0 gesetzt} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}% +% \cs{@parskip@indent}} +% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} +% ersetzt} +% \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}} % Die Ausgabe des Tabellenverzeichnisses. % \begin{macrocode} -\newcommand*\listoftables{% - \begingroup -%<*report|book> - \if@twocolumn - \@restonecoltrue\onecolumn - \else - \@restonecolfalse - \fi -%</report|book> - \lot@heading - \setparsizes{0}{0}{\z@\@plus 1fil}\par@updaterelative - \@starttoc{lot}% -%<*report|book> - \if@restonecol\twocolumn\fi -%</report|book> - \endgroup -} +\newcommand*\listoftables{\listoftoc{lot}} % \end{macrocode} % -% \begin{macro}{\l@table} +% \begin{macro}{\l@table} % Befehl zur Formatierung eines Verzeichniseintrags. % \begin{macrocode} \let\l@table\l@figure % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % % % \iffalse diff --git a/Master/texmf-dist/source/latex/koma-script/scrklist.dtx b/Master/texmf-dist/source/latex/koma-script/scrklist.dtx index 715ec03680b..9083d48b552 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrklist.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrklist.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % scrklist.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrklist.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrklist.dtx %<*driver> % \fi -\ProvidesFile{scrklist.dtx}[2006/07/30 v2.95a KOMA-Script (lists and tabulars)] +\ProvidesFile{scrklist.dtx}[2008/05/02 v3.00 KOMA-Script (lists and tabulars)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -106,6 +106,7 @@ % \iffalse %</option> %<*body> +%<*class> % \fi % % @@ -284,6 +285,7 @@ % wird für die Ermittlung der Einrückung des Beschreibungstextes % bzw. des Trenntextes benötigt. % \begin{macrocode} +%</class> \newenvironment{labeling}[2][]{% \def\sc@septext{#1}% \list{}{\settowidth{\labelwidth}{#2#1}% @@ -293,6 +295,7 @@ \endlist } \newcommand\labelinglabel[1]{#1\hfil\sc@septext} +%<*class> % \end{macrocode} % \end{macro} % \end{environment} @@ -374,6 +377,7 @@ % \changes{v2.95a}{2006/07/20}{\cs{@tmpcnta} bleibt unverändert} % Der Rest wird von diesem Makro erledigt. % \begin{macrocode} +%</class> \newenvironment{addmargin}{% \@tempswafalse\@addmargin }{% @@ -411,6 +415,7 @@ }% \item\relax% } +%<*class> % \end{macrocode} % \end{macro} % \end{environment} @@ -440,6 +445,7 @@ % % % \iffalse +%</class> %</body> % \fi % diff --git a/Master/texmf-dist/source/latex/koma-script/scrkmisc.dtx b/Master/texmf-dist/source/latex/koma-script/scrkmisc.dtx index 4444e061ad5..a888ff25f26 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkmisc.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkmisc.dtx @@ -1,8 +1,8 @@ -% \CheckSum{183} +% \CheckSum{190} % \iffalse meta-comment % ====================================================================== % scrkmisc.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkmisc.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrkmisc.dtx %<*driver> % \fi -\ProvidesFile{scrkmisc.dtx}[2007/11/23 v2.97e KOMA-Script (misc)] +\ProvidesFile{scrkmisc.dtx}[2008/05/01 v2.98c KOMA-Script (misc)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -174,8 +174,10 @@ % Es können Gleichungsnummern links oder linksbündige Gleichungen % eingestellt werden. % \begin{macrocode} +%<*!extend> \DeclareOption{leqno}{\input{leqno.clo}} \DeclareOption{fleqn}{\input{fleqn.clo}} +%</!extend> % \end{macrocode} % \end{option} % \end{option} @@ -205,10 +207,15 @@ % entsprechen, werden nicht explizit gesetzt} % \changes{v2.97c}{2007/07/18}{Option \texttt{twoside} bei den % Voreinstellungen rausgenommen} +% \changes{v2.98c}{2008/03/10}{Option \texttt{headings!=big} zu den +% Voreinstellungen hinzugefügt} % \begin{macrocode} +%<*!extend> \KOMAExecuteOptions{% - parskip=false% + parskip=false,% + headings=big% } +%</!extend> \KOMAProcessOptions\relax % \end{macrocode} % @@ -238,7 +245,15 @@ % geschachtelt werden. Verwendung findet er beispielsweise für % Titelseiten und das Inhaltsverzeichnis. % \begin{macrocode} +%<*!extend> \newif\if@restonecol +%</!extend> +%<*extend> +\scr@ifundefinedorrelax{if@restonecol}{% + \expandafter\newif\csname if@restonecol\endcsname + \@restonecolfalse +}{} +%</extend> % \end{macrocode} % \end{macro} % \end{macro} @@ -334,9 +349,11 @@ % \cs{framebox} und dem Inhalt, \cs{fboxrule} ist die Dicke des % Rahmens. % \begin{macrocode} +%<*!extend> \setlength{\skip\@mpfootins}{\skip\footins} \setlength\fboxsep{3\p@} \setlength\fboxrule{.4\p@} +%</!extend> % \end{macrocode} % \end{Length} % \end{Length} @@ -354,6 +371,7 @@ % \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil} % Darstellung der Gleichungsnummer: % \begin{macrocode} +%<*!extend> %<book|report>\@addtoreset{equation}{chapter} \renewcommand*\theequation{% %<*book> @@ -365,6 +383,7 @@ %<book> \fi \@arabic\c@equation } +%</!extend> % \end{macrocode} % \end{macro} % @@ -428,7 +447,8 @@ \string\new@tpo@label{\scr@tpo}{\arabic{page}}}% \expandafter\ifx\csname tpo@\scr@tpo\endcsname\relax \protect\G@refundefinedtrue - \ClassWarning{\KOMAClassName}{% +%<!extend> \ClassWarning{\KOMAClassName}{% +%<extend> \PackageWarning{scrextend}{% odd/even page label number \scr@tpo\space undefined}% \edef\@tempa{\the\value{page}}% \else diff --git a/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx b/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx index f2b0f0764ff..7106f1d8f44 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx @@ -1,8 +1,8 @@ -% \CheckSum{2341} +% \CheckSum{2339} % \iffalse meta-comment % ====================================================================== % scrknpap.dtx -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrknpap.dtx -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrknpap.dtx %<*driver> % \fi -\ProvidesFile{scrknpap.dtx}[2007/11/22 v2.97e KOMA-Script (note-paper)] +\ProvidesFile{scrknpap.dtx}[2008/06/06 v3.00 KOMA-Script (note-paper)] % \iffalse \documentclass{scrdoc} \usepackage[english,ngerman]{babel} @@ -395,8 +395,8 @@ \@biglocfalse \fi } -\DeclareOption{wlocfield}{\@ObsoleteOption{locfield=wide}} -\DeclareOption{slocfield}{\@ObsoleteOption{locfield=narrow}} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{wlocfield}{locfield=wide} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{slocfield}{locfield=narrow} % \end{macrocode} % \end{option} % @@ -405,6 +405,8 @@ % % \begin{option}{foldmarks} % \changes{v2.8q}{2001/09/10}{Neu} +% \changes{v3.00}{2008/06/06}{es muss \cs{FamilyUnkownKeyVal} statt +% \cs{KOMA@unkown@keyval} lokal umdefiniert werden} % Die Faltmarken können mit \texttt{foldmarks} aktiviert und deaktiviert % werden. % \begin{macro}{\if@fold} @@ -417,12 +419,12 @@ % \end{macrocode} % \begin{macro}{\@usefolds} % Welche Faltmarken gesetzt werden sollen, wird in einem Makro gespeichert. -% \changes{v2.97e}{2007/11/08}{Neu} +% \changes{v2.97e}{2007/11/08}{Neu (intern)} % \begin{macrocode} \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 @@ -1144,7 +1146,7 @@ % \end{macro} % \end{macro} % \begin{macro}{\ltr@len@foldmarkthickness} -% \changes{2.97c}{2007/05/08}{Neu} +% \changes{v2.97c}{2007/05/08}{Neu} % Dicke der Faltmarken. % \begin{macrocode} \@newplength{foldmarkthickness} @@ -1796,6 +1798,8 @@ % \end{macrocode} % \changes{v2.97e}{2007/11/13}{Der Absender kann nun ebenfalls in der % Absenderergänzung stehen} +% \changes{v2.98b}{2008/01/30}{Absenderergänzung immer setzen, wenn +% verwendet} % Je nach Absenderanordnung muss hier nun ebenfalls etwas getan werden. % Der Fall 0, also linksbündiger Absender im Kopf spielt hier keine Rolle. % \begin{macrocode} @@ -1859,13 +1863,15 @@ % In einigen Fällen der Absenderanordnung muss hier nun eine ganze Menge getan % werden. In anderen ist hingegen nur wenig zu tun. % Im Fall 0, also linksbündiger Absender im Kopf wird nur die -% Absenderergänzung ausgegeben. +% Absenderergänzung ausgegeben (das erfolgt nach der Fallunterscheidung). % \begin{macrocode} \ifcase\@alignfrom - \usekomavar{location}% % \end{macrocode} % Im Fall 1, also zentrierter Absender im Kopf wird jedoch das Logo hier -% platziert, die Absenderergänzung wird hingegen ignorriert. +% platziert, die Absenderergänzung wird ggf. danach ausgegeben (das erfolgt +% nach der Fallunterscheidung). +% \changes{v2.98a}{2008/01/10}{bei zentriertem Absender wird die +% Absenderergänzung ggf. unter dem Logo ausgegeben} % \begin{macrocode} \or \if@logo @@ -1875,10 +1881,9 @@ \fi % \end{macrocode} % Im Fall 2, also rechtsbündiger Absender im Kopf, wird auch nur die -% Absenderergänzung ausgegeben. +% Absenderergänzung ausgegeben (das erfolgt nach der Fallunterscheidung). % \begin{macrocode} \or - \usekomavar{location}% % \end{macrocode} % Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier % sozusagen der linksbündige Kopf nachgebaut. Das Logo steht dabei @@ -1903,7 +1908,7 @@ % Pseudo-Längen \texttt{fromrulewidth} und \texttt{fromrulethickness} % verwendet. Ist \texttt{fromrulewidth} 0, so wird sie automatisch % bestimmt. Bei der automatischen Längenbestimmung wird einfach eine Linie -% über de Gesamtbreite der Absenderergänzung gesetzt. +% über die Gesamtbreite der Absenderergänzung gesetzt. % \begin{macrocode} {% \ifnum\@rulefrom=1\\[-.5\baselineskip]% @@ -1994,8 +1999,8 @@ % \end{macrocode} % In allen anderen Fällen wird ebenfalls die Absenderergänzung gesetzt. % \begin{macrocode} - \usekomavar{location}% \fi + \usekomavar{location}% % \end{macrocode} % Zum Schluss wird noch verhindert, dass wegen nicht vollen vertikalen Boxen % gemotzt wird. diff --git a/Master/texmf-dist/source/latex/koma-script/scrkpage.dtx b/Master/texmf-dist/source/latex/koma-script/scrkpage.dtx index 3b57670308b..aaf09f0ea63 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkpage.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkpage.dtx @@ -1,8 +1,8 @@ -% \CheckSum{511} +% \CheckSum{589} % \iffalse meta-comment % ====================================================================== % scrkpage.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkpage.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrkpage.dtx %<*driver> % \fi -\ProvidesFile{scrkpage.dtx}[2007/10/23 v2.97e KOMA-Script (page style)] +\ProvidesFile{scrkpage.dtx}[2008/08/05 v3.00 KOMA-Script (page style)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -98,27 +98,30 @@ % % \iffalse %<*option> +%<*class> % \fi % -% \begin{option}{headsepline} -% \changes{v2.95c}{2006/08/11}{BugFix: Argument bei -% \cs{PassOptionsToPackage} vertauscht} -% \changes{v2.97c}{2007/04/19}{Option \texttt{headinclude} wird nicht -% mehr an \textsf{typearea} geschickt} -% \begin{option}{headnosepline} +% \begin{option}{headsepline} +% \changes{v2.95c}{2006/08/11}{BugFix: Argument bei +% \cs{PassOptionsToPackage} vertauscht} +% \changes{v2.97c}{2007/04/19}{Option \texttt{headinclude} wird nicht +% mehr an \textsf{typearea} geschickt} +% \changes{v2.98c}{2008/03/26}{Option \texttt{headinclude} wird gesetzt, +% wobei kein Fehler ausgegeben wird, wenn sie nicht existiert.} +% \begin{option}{headnosepline} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} % Der Kopfteil kann mit einer Linie vom Textbereich getrennt werden. -% \begin{macro}{\if@hsl} -% \begin{macro}{\@hsltrue} -% \begin{macro}{\@hslfalse} +% \begin{macro}{\if@hsl} +% \begin{macro}{\@hsltrue} +% \begin{macro}{\@hslfalse} % Die Entscheidung wird in einem Schalter gespeichert. % \begin{macrocode} \newif\if@hsl % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % Gleichzeitig wird dem \textsf{typearea}-Paket mitgeteilt, dass der % Kopf zum Textbereich zu rechnen ist. Dies geschieht allerdings in % umgekehrter Richtung nicht. Die Optionen sind also nicht @@ -126,54 +129,51 @@ % \begin{macrocode} \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} % \end{macrocode} -% \end{option} -% \end{option} -% -% -% \begin{option}{footsepline} -% \changes{v2.0e}{1994/08/14}{bei \cs{PassOptionsToPackage} fehlte -% die Paket-Angabe} -% \changes{v2.95c}{2006/08/11}{BugFix: Argument bei -% \cs{PassOptionsToPackage} vertauscht} -% \changes{v2.97c}{2007/04/19}{Option \texttt{footinclude} wird nicht -% mehr an \textsf{typearea} geschickt} -% \begin{option}{footnosepline} +% \end{option} +% \end{option} +% +% +% \begin{option}{footsepline} +% \changes{v2.0e}{1994/08/14}{bei \cs{PassOptionsToPackage} fehlte +% die Paket-Angabe} +% \changes{v2.95c}{2006/08/11}{BugFix: Argument bei +% \cs{PassOptionsToPackage} vertauscht} +% \changes{v2.97c}{2007/04/19}{Option \texttt{footinclude} wird nicht +% mehr an \textsf{typearea} geschickt} +% \changes{v2.98c}{2008/03/26}{Option \texttt{footinclude} wird gesetzt, +% wobei kein Fehler ausgegeben wird, wenn sie nicht existiert.} +% \begin{option}{footnosepline} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} % Der Fußteil kann mit einer Linie vom Textbereich getrennt werden. -% \begin{macro}{\if@fsl} -% \begin{macro}{\@fsltrue} -% \begin{macro}{\@fslfalse} +% \begin{macro}{\if@fsl} +% \begin{macro}{\@fsltrue} +% \begin{macro}{\@fslfalse} % Die Entscheidung wird in einem Schalter gespeichert. % \begin{macrocode} \newif\if@fsl % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % Gleichzeitig wird dem \texttt{typearea}-Paket mitgeteilt, dass der % Fuß zum Textbereich zu rechnen ist. Auch hier sind die Optionen % nicht symmetrisch. % \begin{macrocode} -% \begin{macrocode} \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} % \end{macrocode} -% \end{option} -% \end{option} +% \end{option} +% \end{option} % % In früheren Versionen wurde noch die Option \texttt{mpinclude} von % den Klassen ausgewertet. Dies geschieht jetzt nur noch in @@ -194,10 +194,16 @@ % \end{macrocode} % \end{macro} % +% \iffalse +%</class> +% \fi +% % \begin{option}{cleardoublepage} % \changes{v2.95}{2004/08/24}{neuer Schalter} % \changes{v2.96a}{2007/01/03}{Wert \texttt{current} sollte nun % funktionieren} +% \changes{v2.98c}{2008/03/06}{verwendet \cs{def} statt \cs{let}, damit die +% Option \texttt{open} funktioniert} % \begin{option}{cleardoubleempty} % \changes{v2.8a}{2001/06/18}{neue Option} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} @@ -216,11 +222,34 @@ % \changes{v2.8a}{2001/06/18}{neu} % \changes{v2.96a}{2007/01/02}{korrekter Ersatzwert gesetzt} % \begin{macro}{\cleardoubleusingstyle} -% \changes{v2.95}{2004/08/24}{neue Anweisung} +% \changes{v2.95}{2004/08/24}{neu} % \begin{macro}{\cleardoubleemptypage} % \changes{v2.8a}{2001/06/18}{neu} % \begin{macro}{\cleardoubleplainpage} % \changes{v2.8a}{2001/06/18}{neu} +% \begin{macro}{\cleardoubleoddpage} +% \changes{v3.00}{2008/09/27}{neu} +% \begin{macro}{\cleardoubleoddstandardpage} +% \changes{v2.98c}{2008/03/06}{neu} +% \begin{macro}{\cleardoubleoddusingstyle} +% \changes{v2.98c}{2008/03/06}{neu} +% \begin{macro}{\cleardoubleoddemptypage} +% \changes{v2.98c}{2008/03/06}{neu} +% \begin{macro}{\cleardoubleoddplainpage} +% \changes{v2.98c}{2001/06/18}{neu} +% \begin{macro}{\cleardoubleevenpage} +% \changes{v3.00}{2008/09/27}{neu} +% \begin{macro}{\cleardoubleevenstandardpage} +% \changes{v2.98c}{2008/03/06}{neu} +% \begin{macro}{\cleardoubleevenusingstyle} +% \changes{v2.98c}{2008/03/06}{neu} +% \begin{macro}{\cleardoubleevenemptypage} +% \changes{v2.98c}{2008/03/06}{neu} +% \begin{macro}{\cleardoubleevenplainpage} +% \changes{v2.98c}{2001/06/18}{neu} +% \begin{macro}{\cleardoublepage} +% \changes{v2.98c}{2001/06/18}{wird immer neu definiert} +% \changes{v2.98c}{2008/04/11}{neue Voreinstellung für Versionen nach 2.98c} % Bei Verwendung von \texttt{twoside} und \texttt{openright} bei den % Klassen \textsf{scrbook} und \textsf{scrreprt} wird bei \cs{chapter} % implizit \cs{cleardoublepage} ausgeführt. Das führt ggf. @@ -240,37 +269,75 @@ }% \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% -} +%<*class> +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{cleardoubleempty}% + {cleardoublepage=empty} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{cleardoubleplain}% + {cleardoublepage=plain} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{cleardoublestandard}% + {cleardoublepage=current} +%</class> % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % \end{option} % \end{option} % \end{option} @@ -280,6 +347,7 @@ % \iffalse %</option> %<*body> +%<*class> % \fi % % @@ -378,43 +446,67 @@ % \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt} % \begin{macro}{\headfont} % \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt} +% \begin{macro}{\footfont} +% \changes{v2.98c}{2008/02/14}{Neu} % Kopf- und Fußzeile sowie die Seitennummer werden in einer speziellen -% Schriftart gesetzt. Die beiden Makros hier sind jedoch als interne +% Schriftart gesetzt. Die drei Makros hier sind jedoch als interne % Makros zu betrachten. % \begin{macrocode} -\newcommand*\pnumfont{\normalfont\normalcolor} -\newcommand*\headfont{\normalfont\normalcolor\slshape} +\newcommand*{\pnumfont}{\normalfont\normalcolor} +\newcommand*{\headfont}{\normalfont\normalcolor\slshape} +\newcommand*{\footfont}{} % \end{macrocode} % \end{macro} % \end{macro} -% \begin{macro}{\scr@fnt@pagenumber} +% \end{macro} +% \begin{KOMAfont}{pagenumber} % \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagenumber}} % \begin{KOMAfont}{pagination} % \changes{v2.8o}{2001/09/14}{neues Alias-Element} -% \begin{macro}{\scr@fnt@pagehead} +% \begin{KOMAfont}{pageheadfoot} +% \changes{v2.98c}{2008/02/14}{neues Element} +% \begin{KOMAfont}{pagehead} % \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagehead}} +% \changes{v2.98c}{2008/02/14}{neuer Alias} % \begin{macro}{\scr@fnt@wrn@pagehead} % \changes{v2.8o}{2001/09/14}{neue Warnung für Element \texttt{pagehead}} % \changes{v2.97c}{2007/09/25}{Warnung geändert} +% \changes{v2.98c}{2008/02/14}{Warnung geändert} % \begin{KOMAfont}{pagefoot} % \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagefoot}} +% \changes{v2.98c}{2008/02/14}{nicht länger ein Alias} +% \begin{macro}{\scr@fnt@wrn@pagefoot} +% \changes{v2.98c}{2008/02/14}{Neu (intern)} % Hier werden die Elemente definiert, deren Schriftart dann geändert % werden kann. % \begin{macrocode} \newcommand*{\scr@fnt@pagenumber}{\pnumfont} \aliaskomafont{pagination}{pagenumber} -\newcommand*{\scr@fnt@pagehead}{\headfont} +\newcommand*{\scr@fnt@pageheadfoot}{\headfont} +\aliaskomafont{pagehead}{pageheadfoot} +%<*letter> \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% +} +\newcommand*{\scr@fnt@pagefoot}{\footfont} +%</letter> +%<*!letter> +\newcommand*{\scr@fnt@pagefoot}{\footfont} +\newcommand*{\scr@fnt@wrn@pagefoot}[1]{% + This class does not use font element `pagefoot'!\MessageBreak + Maybe you should load package `scrpage2', before\MessageBreak + using this element% } -\aliaskomafont{pagefoot}{pagehead} +%</!letter> % \end{macrocode} -% \end{KOMAfont} -% \end{macro} % \end{macro} % \end{KOMAfont} % \end{macro} +% \end{KOMAfont} +% \end{KOMAfont} +% \end{KOMAfont} +% \end{KOMAfont} % % \begin{macro}{\pagemark} % \changes{v2.95}{2006/03/15}{nun für alle Klassen} @@ -590,7 +682,7 @@ \hrulefill\\ }% \fi - \vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\@nextfoot}}% + \vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\footfont\@nextfoot}}% }% }% \let\@evenfoot\@oddfoot @@ -610,6 +702,7 @@ % % So etwas gibt es derzeit nicht für Briefe. % \iffalse +%</class> %<*!letter> % \fi % @@ -617,6 +710,7 @@ % \changes{v2.8d}{2001/07/05}{neu} % \begin{macro}{\partpagestyle} % \changes{v2.8d}{2001/07/05}{neu} +% \changes{v3.00}{2008/08/05}{nicht mehr in \textsf{scrartcl} definiert} % \begin{macro}{\chapterpagestyle} % \changes{v2.8d}{2001/07/05}{neu} % \begin{macro}{\indexpagestyle} @@ -628,9 +722,9 @@ % Seitenstil \texttt{plain}. % \begin{macrocode} \newcommand*{\titlepagestyle}{plain} -\newcommand*{\partpagestyle}{plain} +%<book|report>\newcommand*{\partpagestyle}{plain} %<book|report>\newcommand*{\chapterpagestyle}{plain} -\newcommand*{\indexpagestyle}{plain} +%<class>\newcommand*{\indexpagestyle}{plain} % \end{macrocode} % \end{macro} % \end{macro} @@ -639,6 +733,7 @@ % % \iffalse %</!letter> +%<*class> % \fi % % \subsection{Standardeinstellungen} @@ -680,6 +775,7 @@ % % % \iffalse +%</class> %</body> % \fi % diff --git a/Master/texmf-dist/source/latex/koma-script/scrkpar.dtx b/Master/texmf-dist/source/latex/koma-script/scrkpar.dtx index 96d2244275e..a8a64dd2b32 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkpar.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkpar.dtx @@ -1,8 +1,8 @@ -% \CheckSum{530} +% \CheckSum{532} % \iffalse meta-comment % ====================================================================== % scrkpar.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkpar.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrkpar.dtx %<*driver> % \fi -\ProvidesFile{scrkpar.dtx}[2007/10/03 v2.97d KOMA-Script (paragraphs)] +\ProvidesFile{scrkpar.dtx}[2008/05/02 v3.00 KOMA-Script (paragraphs)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -322,14 +322,14 @@ \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} % \end{macrocode} % \end{option} % \end{option} @@ -538,45 +538,69 @@ % \end{macro} % % Absatzabstand und Absatzeinzug: -% \begin{macro}{\@listi} -% \begin{macro}{\@listI} -% \begin{macro}{\@listii} -% \begin{macro}{\@listiii} -% \begin{macro}{\@list@extra} -% \changes{v2.8q}{2001/11/06}{neu (intern)} -% \changes{v2.95c}{2006/08/03}{\cs{parsep} fixed} -% \begin{macro}{\add@extra@listi} -% \changes{v2.9h}{2002/09/03}{neu (intern)} -% \begin{macro}{\footnotesize} -% \changes{v2.9h}{2002/09/03}{etwas robuster} -% \begin{macro}{\small} -% \changes{v2.9h}{2002/09/03}{etwas robuster} +% \begin{macro}{\@list@extra} +% \changes{v2.8q}{2001/11/06}{neu (intern)} +% \changes{v2.95c}{2006/08/03}{\cs{parsep} fixed} +% \begin{macro}{\add@extra@listi} +% \changes{v2.9h}{2002/09/03}{neu (intern)} % Ab Version 2.8i wird hier optionsabhängig gearbeitet. Dabei müssen % auch die Befehle bei der Umschaltung der Schriftgröße für \cs{small} % und \cs{footnotesize} geändert werden. % \begin{macrocode} -\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 -} % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} +% \iffalse +%</body> +%<*body|10pt|11pt|12pt> +% \fi +% \changes{v2.98c}{2008/03/26}{Umstellung für die pt-Dateien} +% \begin{macro}{\@listi} +% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} +% ersetzt} +% \begin{macro}{\@listI} +% \begin{macro}{\@listii} +% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} +% ersetzt} +% \begin{macro}{\@listiii} +% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} +% ersetzt} +% \begin{macro}{\footnotesize} +% \changes{v2.9h}{2002/09/03}{etwas robuster} +% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} +% ersetzt} +% \begin{macro}{\small} +% \changes{v2.9h}{2002/09/03}{etwas robuster} +% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} +% ersetzt} +% \begin{macrocode} +%<10pt|11pt|12pt>\@ifundefined{@list@extra}{}{% + \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}}% +%<10pt|11pt|12pt> \@listi +%<10pt|11pt|12pt>} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \iffalse +%</body|10pt|11pt|12pt> +%<*body> +% \fi % % % \subsection{Umbruchsteuerung} diff --git a/Master/texmf-dist/source/latex/koma-script/scrkplen.dtx b/Master/texmf-dist/source/latex/koma-script/scrkplen.dtx index f667167e0dc..80977126c29 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkplen.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkplen.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % scrkplen.dtx -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkplen.dtx -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scrksect.dtx b/Master/texmf-dist/source/latex/koma-script/scrksect.dtx index feb0314ced6..95c64168190 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrksect.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrksect.dtx @@ -1,8 +1,8 @@ -% \CheckSum{1690} +% \CheckSum{1848} % \iffalse meta-comment % ====================================================================== % scrksect.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrksect.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrksect.dtx %<*driver> % \fi -\ProvidesFile{scrksect.dtx}[2007/11/23 v2.97e KOMA-Script (disposition)] +\ProvidesFile{scrksect.dtx}[2008/10/07 v3.00 KOMA-Script (disposition)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -108,253 +108,166 @@ % \fi % \subsection{Optionen für die Gliederung} % -% \begin{option}{openright} -% \begin{option}{openany} % \iffalse +%<*class> %<*book|report> % \fi -% Bei \textsf{scrreprt} und \textsf{scrbook} kann per Option -% eingestellt werden, ob Kapitel nur auf rechten Seiten beginnen -% dürfen oder auf jeder Seite. -% \begin{macro}{\if@openright} -% \begin{macro}{\@openrighttrue} -% \begin{macro}{\@openrightfalse} -% Der Zustand wird dann in einem Schalter gespeichert. +% \begin{option}{open} +% \changes{v2.98c}{2008/03/06}{Neue Option} +% Bei \textsf{scrreprt} und \textsf{scrbook} kann per Option eingestellt +% werden, ob Kapitel nur auf linken oder rechten Seiten beginnen dürfen oder +% auf jeder Seite. +% \begin{macro}{\if@openright} +% \begin{macro}{\@openrighttrue} +% \begin{macro}{\@openrightfalse} +% Der Zustand wird dann in einem Schalter und durch umdefinieren von +% \cs{cleardoublestandardpage} gespeichert. % \begin{macrocode} \newif\if@openright %<report>\@openrightfalse %<book>\@openrighttrue % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % \begin{macrocode} -\DeclareOption{openright}{\@openrighttrue} -\DeclareOption{openany}{\@openrightfalse} +\KOMA@key{open}{% + \KOMA@set@ncmdkey{open}{@tempa}{% + {any}{0},% + {right}{1},% + {left}{2}% + }{#1}% + \ifcase \@tempa\relax + \@openrightfalse + \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}% + \or + \@openrighttrue + \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}% + \or + \@openrighttrue + \renewcommand*{\cleardoublestandardpage}{\cleardoubleevenstandardpage}% + \fi +} % \end{macrocode} -% \iffalse -%</book|report> -% \fi -% \end{option} -% \end{option} -% -% -% \begin{option}{pointednumbers} -% \changes{v2.3h}{1995/01/19}{neue Option} -% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so, -% bei \texttt{pointednumber} wird explizit ein Fehler gemeldet} -% \changes{v2.4g}{1996/11/04}{\cs{@altsecnumformatfalse} wird -% direkt auf \cs{@altsecnumformattrue} gesetzt} -% \begin{option}{pointlessnumbers} -% \changes{v2.3h}{1995/01/19}{neue Option} -% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so, -% bei \texttt{pointlessnumber} wird explizit ein Fehler gemeldet} -% \changes{v2.4g}{1996/11/04}{\cs{@altsecnumformattrue} wird direkt -% auf \cs{@altsecnumformatfalse} gesetzt} -% Normalerweise wird automatisch entschieden, ob Nummern mit einem -% Punkt enden müssen oder nicht. Um dies abzuschalten, muss nur der -% gewünschte Zustand eingeschaltet und die Umschaltmöglichkeit -% entfernt werden. Dies kann jedoch erst am Ende der Klasse -% geschehen. +% \end{option} +% \begin{option}{openright} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \begin{option}{openany} +% \changes{v2.98c}{2008/03/05}{obsolet} % \begin{macrocode} -\DeclareOption{pointednumbers}{% - \AtEndOfClass{\@altsecnumformattrue - \global\let\@altsecnumformatfalse\@altsecnumformattrue}% -} -\DeclareOption{pointednumber}{% - \AtEndOfClass{\@altsecnumformattrue - \global\let\@altsecnumformatfalse\@altsecnumformattrue}% - \ClassError{\KOMAClassName}{% - undefined option `pointednumber' instead of `pointednumbers'% - }{% - You've used the class-option `pointednumber'.\MessageBreak - This name was an implementation-error at versions from 2.3h till - 2.4f.\MessageBreak - The correct name is `pointednumbers'. - Change this at your document.\MessageBreak - If you'll continue, the option `pointednumbers' will be used% - }% -} -\DeclareOption{pointlessnumbers}{% - \AtEndOfClass{\@altsecnumformatfalse - \global\let\@altsecnumformattrue\@altsecnumformatfalse}% -} -\DeclareOption{pointlessnumber}{% - \AtEndOfClass{\@altsecnumformatfalse - \global\let\@altsecnumformattrue\@altsecnumformatfalse}% - \ClassError{\KOMAClassName}{% - undefined option `pointlessnumber' instead of `pointlessnumbers'% - }{% - You've used the class-option `pointlessnumber'.\MessageBreak - This name was an implementation-error at versions from 2.3h till - 2.4f.\MessageBreak - The correct name is `pointlessnumbers'. - Change this at your document.\MessageBreak - If you'll continue, the option `pointlessnumbers' will be used% - }% -} +\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{openright}{open=right} +\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{openany}{open=any} % \end{macrocode} -% Übrigens weiß ich, wie blödsinnig die Namen der Optionen sind. Aber -% das ist nun nicht mehr zu ändern. -% \end{option} -% \end{option} -% -% -% \begin{option}{bigheadings} -% \changes{v2.3h}{1996/01/20}{neue Option} -% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei -% Verwendung des alten, falschen Namens wird ein Fehler -% ausgegeben} -% \begin{macro}{\@bigheadings} -% \begin{option}{normalheadings} -% \changes{v2.3h}{1996/01/20}{neue Option} -% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei -% Verwendung des alten, falschen Namens wird ein Fehler -% ausgegeben} -% \begin{macro}{\@normalheadings} -% \begin{option}{smallheadings} -% \changes{v2.3h}{1996/01/20}{neue Option} -% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei -% Verwendung des alten, falschen Namens wird ein Fehler -% ausgegeben} -% \begin{macro}{\@smallheadings} -% Es kann zwischen verschiedenen Überschriftgrößen umgeschaltet -% werden, wobei die ursprüngliche Größe als groß gilt und -% voreingestellt wird. -% \changes{v2.3h}{1996/01/20}{Größse von \cs{chapter} um eine Stufe -% verringert} -% \changes{v2.3h}{1996/01/20}{Verwendung von -% \cs{chapterheadstartvskip} und \cs{chapterheadendvskip} an -% Stelle von festen vertikalen Abständen am Anfang und am Ende -% eines Kapitels} -% \changes{v2.7c}{2000/01/19}{vertikale Abstände nach der -% Kapitelüberschrift geringfügig verändert und mit Leim versehen, -% um mit \cs{flushbottom} zu besseren Ergebnissen zu gelangen} -% \begin{macrocode} -\newcommand\@bigheadings{% - \AtEndOfClass{% -%<*book|report> - \renewcommand*{\chapterheadstartvskip}{% - \vspace*{2.3\baselineskip}% - }% - \renewcommand*{\chapterheadendvskip}{% - \vspace{1.725\baselineskip - \@plus .115\baselineskip \@minus .192\baselineskip}% - }% +% \end{option} +% \end{option} +% \iffalse %</book|report> - \let\size@part\Huge - \let\size@partnumber\huge -%<book|report> \let\size@chapter\huge - \let\size@section\Large - \let\size@subsection\large - \let\size@subsubsection\normalsize - \let\size@paragraph\normalsize - \let\size@subparagraph\normalsize - }% -} -\DeclareOption{bigheadings}{\@bigheadings} -\DeclareOption{bigheading}{% - \@bigheadings +%% \fi +% +% +% \begin{option}{numbers} +% \changes{v2.98c}{2008/03/07}{Neue Option} +% Dies ist die zentrale Option zur Konfiguration der Nummerierung. Dabei geht +% es primär um die Gliederungsnummern, es sind jedoch auch davon abgeleitete +% Nummern betroffen. +% \begin{macro}{scr@dotchangeatdocument} +% \changes{v2.98c}{2008/03/07}{Neu (intern)} +% Da die Umschaltung zwischen automatischem Endpunkt, immer Endpunkt und kein +% Endpunkt unbedingt \emph{vor} \cs{begin{document}} erfolgen muss, wird eine +% Fehlermeldung ausgegeben, falls das jemand zu einem späteren Zeitpunkt +% probiert. +% \begin{macrocode} +\newcommand*{\scr@dotchangeatdocument}[1]{% \ClassError{\KOMAClassName}{% - undefined option `bigheading' instead of `bigheadings'% + change of end dot feature after \string\begin{document}% }{% - You've used the old option name `bigheading'!\MessageBreak - The correct name of the option is `bigheadings'.\MessageBreak - The old name was an implementation error from\MessageBreak - version 2.3h till 2.4f.\MessageBreak - You should change this at your document!\MessageBreak - If you'll continue, option `bigheadings' will be used% + You've tried to set `numbers=#1' after \string\begin{document},\MessageBreak + but this option is only allowed at the document preamble.\MessageBreak + See KOMA-Script manual for more information about.% }% } -\newcommand\@normalheadings{% - \AtEndOfClass{% -%<*book|report> - \renewcommand*{\chapterheadstartvskip}{% - \vspace*{2\baselineskip}% - }% - \renewcommand*{\chapterheadendvskip}{% - \vspace{1.5\baselineskip - \@plus .1\baselineskip \@minus .167\baselineskip}% - }% -%</book|report> - \let\size@part\huge - \let\size@partnumber\huge -%<*book|report> - \let\size@chapter\LARGE - \let\size@section\Large - \let\size@subsection\large -%</book|report> -%<*article> - \let\size@section\large - \let\size@subsection\normalsize -%</article> - \let\size@subsubsection\normalsize - \let\size@paragraph\normalsize - \let\size@subparagraph\normalsize - }% -} -\DeclareOption{normalheadings}{\@normalheadings} -\DeclareOption{normalheading}{% - \@normalheadings - \ClassError{\KOMAClassName}{% - undefined option `normalheading' instead of `normalheadings'% - }{% - You've used the old option name `normalheading'!\MessageBreak - The correct name of the option is `normalheadings'.\MessageBreak - The old name was an implementation error from\MessageBreak - version 2.3h till 2.4f.\MessageBreak - You should change this at your document!\MessageBreak - If you'll continue, option `normalheadings' will be used% - }% +% \end{macrocode} +% \end{macro} +% Normalerweise wird automatisch entschieden, ob Nummern mit einem +% Punkt enden müssen oder nicht. Um dies abzuschalten, muss nur der +% gewünschte Zustand eingeschaltet und die Umschaltmöglichkeit +% entfernt werden. Die Umschaltung kann jedoch nicht direkt erfolgen, sondern +% erfolgt zeitverzögert in \cs{begin{document}}. Hier wird nur das Makro +% umgeschaltet, das dort verwendet wird. +% \begin{macrocode} +\KOMA@key{numbers}{% + \KOMA@set@ncmdkey{numbers}{@tempa}{% + {autoendperiod}{0},{autoenddot}{0},{auto}{0},% + {endperiod}{1},{withendperiod}{1},{periodatend}{1},% + {enddot}{1},{withenddot}{1},{dotatend}{1},% + {noendperiod}{2},{noperiodatend}{2},% + {noenddot}{2},{nodotatend}{2}% + }{#1}% + \ifcase \@tempa\relax + \if@atdocument\scr@dotchangeatdocument{#1}\else + \let\scr@altsecnumhook\@empty + \fi + \or + \if@atdocument\scr@dotchangeatdocument{#1}\else + \let\scr@altsecnumhook\scr@altsecnumhooktrue + \fi + \or + \if@atdocument\scr@dotchangeatdocument{#1}\else + \let\scr@altsecnumhook\scr@altsecnumhookfalse + \fi + \fi } -\newcommand\@smallheadings{% - \AtEndOfClass{ -%<*book|report> - \renewcommand*{\chapterheadstartvskip}{% - \vspace*{1.8\baselineskip}% - }% - \renewcommand*{\chapterheadendvskip}{% - \vspace{1.35\baselineskip - \@plus 0.09\baselineskip \@minus .15\baselineskip}% - }% -%</book|report> - \let\size@part\LARGE - \let\size@partnumber\LARGE -%<*book|report> - \let\size@chapter\Large - \let\size@section\large -%</book|report> -%<*article> - \let\size@section\normalsize -%</article> - \let\size@subsection\normalsize - \let\size@subsubsection\normalsize - \let\size@paragraph\normalsize - \let\size@subparagraph\normalsize - }% +% \end{macrocode} +% \begin{macro}{\scr@altsecnumhook} +% \changes{v2.98c}{2008/03/07}{Neu (intern)} +% \begin{macro}{\scr@altsecnumhooktrue} +% \changes{v2.98c}{2008/03/07}{Neu (intern)} +% \begin{macro}{\scr@altsecnumhookfalse} +% \changes{v2.98c}{2008/03/07}{Neu (intern)} +% Es werden drei Hilfsmakros benötigt. Das erste davon wird bei +% \cs{begin{document}} ausgeführt (nachdem die \texttt{aux}-Datei gelesen +% wurde!) und schaltet den gewünschten Zustand ein. Dazu wird es per Option +% ggf. auf die eine oder andere Bedeutung umgeschaltet. Im Auto-Fall ist es +% übrigens \cs{@empty}. +% \begin{macrocode} +\newcommand*{\scr@altsecnumhook}{} +\AtBeginDocument{\scr@altsecnumhook} +\newcommand*{\scr@altsecnumhooktrue}{% + \@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue } -\DeclareOption{smallheadings}{\@smallheadings} -\DeclareOption{smallheading}{% - \@smallheadings - \ClassError{\KOMAClassName}{% - undefined option `smallheading' instead of `smallheadings'% - }{% - You've used the old option name `smallheading'!\MessageBreak - The correct name of the option is `smallheadings'.\MessageBreak - The old name was an implementation error from\MessageBreak - version 2.3h till 2.4f.\MessageBreak - You should change this at your document!\MessageBreak - If you'll continue, option `smallheadings' will be used% - }% +\newcommand*{\scr@altsecnumhookfalse}{% + \@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse } -\@bigheadings % \end{macrocode} -% \end{macro} -% \end{option} -% \end{macro} -% \end{option} -% \end{macro} -% \end{option} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{pointednumbers} +% \changes{v2.3h}{1995/01/19}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so, +% bei \texttt{pointednumber} wird explizit ein Fehler gemeldet} +% \changes{v2.4g}{1996/11/04}{\cs{@altsecnumformatfalse} wird +% direkt auf \cs{@altsecnumformattrue} gesetzt} +% \changes{v2.98c}{2008/03/07}{obsolet} +% \begin{option}{pointlessnumbers} +% \changes{v2.3h}{1995/01/19}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so, +% bei \texttt{pointlessnumber} wird explizit ein Fehler gemeldet} +% \changes{v2.4g}{1996/11/04}{\cs{@altsecnumformattrue} wird direkt +% auf \cs{@altsecnumformatfalse} gesetzt} +% \changes{v2.98c}{2008/03/07}{obsolet} +% \begin{macrocode} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{pointednumbers}% + {numbers=enddot} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{pointlessnumbers}% + {numbers=noenddot} +% \end{macrocode} +% Übrigens weiß ich, wie blödsinnig die Namen der Optionen sind. Aber +% das ist nun nicht mehr zu ändern. +% \end{option} +% \end{option} % % % \begin{option}{chapterprefix} @@ -382,7 +295,8 @@ % \begin{macrocode} \newif\if@chapterprefix\@chapterprefixfalse \KOMA@ifkey{chapterprefix}{@chapterprefix} -\KOMA@DeclareObsoleteOption{nochapterprefix}{chapterprefix=false} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{nochapterprefix}% + {chapterprefix=false} % \end{macrocode} % \end{macro} % \end{macro} @@ -417,8 +331,8 @@ \def\appendixmore{\@chapterprefixfalse}% \fi } -\KOMA@DeclareObsoleteOption[\ClassInfo]{noappendixprefix}{% - appendixprefix=false} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{noappendixprefix}% + {appendixprefix=false} % \end{macrocode} % \iffalse %</book|report> @@ -427,7 +341,266 @@ % \end{option} % % +% \begin{macro}{\size@part} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, +% wenn es keine Auswirkung auf den Zeilen abstand hat} +% \begin{macro}{\size@partnumber} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, +% wenn es keine Auswirkung auf den Zeilen abstand hat} +% \begin{macro}{\size@chapter} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, +% wenn es keine Auswirkung auf den Zeilen abstand hat} +% \begin{macro}{\size@chapterprefix} +% \changes{v2.96a}{2006/12/02}{neu (intern)} +% \begin{macro}{\size@section} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \begin{macro}{\size@subsection} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \begin{macro}{\size@subsubsection} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \begin{macro}{\size@paragraph} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \begin{macro}{\size@subparagraph} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% Diese Makros werden intern von den Elementen benötigt (siehe unten). Darüber +% hinaus werden sie per Option geändert und sind deshalb vor der +% entsprechenden Option zu definieren. +% \begin{macrocode} +\newcommand*{\size@part}{} +\newcommand*{\size@partnumber}{} +%<book|report>\newcommand*{\size@chapter}{} +%<book|report>\newcommand*{\size@chapterprefix}{\size@chapter} +\newcommand*{\size@section}{} +\newcommand*{\size@subsection}{} +\newcommand*{\size@subsubsection}{} +\newcommand*{\size@paragraph}{} +\newcommand*{\size@subparagraph}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\chapterheadstartvskip} +% \begin{macro}{\chapterheadendvskip} +% Mit diesen Anweisungen wird üblicherweise der Abstand zwischen +% oberem Rand des Textbereichs und der Überschrift bzw. der Abstand +% zwischen der Überschrift und dem Text des Kapitels gesetzt. Man kann +% die Anweisungen aber zusätzlich auch für andere Zwecke +% missbrauchen. Das ist der Grund warum diese Makros keine Längen, +% sondern komplette Anweisungen enthalten. In der Voreinstellung +% enthalten sie jedoch gar nichts. Die tatsächlichen Werte werden +% durch die Optionen festgelegt. +% \begin{macrocode} +\newcommand*{\chapterheadstartvskip}{} +\newcommand*{\chapterheadendvskip}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{option}{headings} +% \changes{v2.3h}{1996/01/20}{Größe von \cs{chapter} um eine Stufe +% verringert} +% \changes{v2.3h}{1996/01/20}{Verwendung von +% \cs{chapterheadstartvskip} und \cs{chapterheadendvskip} an +% Stelle von festen vertikalen Abständen am Anfang und am Ende +% eines Kapitels} +% \changes{v2.7c}{2000/01/19}{vertikale Abstände nach der +% Kapitelüberschrift geringfügig verändert und mit Leim versehen, +% um mit \cs{flushbottom} zu besseren Ergebnissen zu gelangen} +% \changes{v2.98c}{2008/03/10}{Neue Option} +% Dies ist eine neue zentrale Option für Überschriften. Dabei ergibt sich nun +% auch das Problem, dass die Gesamtmenge der Überschriften mal \emph{headings} +% (Überschriften), mal \emph{sectioning} (Abschnittseinteilung) und mal +% \emph{disposition} (Gliederung) genannt wird. Es wäre gut gewesen, sich bei +% Zeiten Gedanken darüber zu machen, wie man das am besten einheitlich +% nennt. +% \begin{macrocode} +\KOMA@key{headings}{% + \KOMA@set@ncmdkey{headings}{@tempa}{% + {big}{0},% + {normal}{1},% + {small}{2}% +%<*book|report> + ,{openany}{3},% + {openright}{4},% + {openleft}{5}% + ,{twolinechapter}{6},{chapterprefix}{6},{chapterwithprefix}{6},% + {chapterwithprefixline}{6},% + {onelinechapter}{7},{nochapterprefix}{7},{chapterwithoutprefix}{7},% + {chapterwithoutprefixline}{7}% + ,{twolineappendix}{8},{appendixprefix}{8},{appendixwithprefix}{8},% + {appendixwithprefixline}{8},% + {onelineappendix}{9},{noappendixprefix}{9},{appendixwithoutprefix}{9},% + {appendixwithoutprefixline}{9}% +%</book|report> + }{#1}% + \ifcase \@tempa\relax +% \end{macrocode} +% Als erstes kümmern wir uns um die drei Größenabstufungen für die +% Überschriften, die \KOMAScript{} bietet, und zwar in der Reihenfolge +% \texttt{big}, \texttt{normal}, \texttt{small}. Es sei darauf hingewiesen, +% dass die Verwendung dieser Option alle Änderungen an +% \cs{chapterheadstartvskip} oder \cs{chapterheadendvskip} oder den +% Font-Elementen für die einzelnen Überschriften aufhebt macht! +% \begin{macrocode} +%<*book|report> + \renewcommand*{\chapterheadstartvskip}{% + \vspace*{2.3\baselineskip}% + }% + \renewcommand*{\chapterheadendvskip}{% + \vspace{1.725\baselineskip + \@plus .115\baselineskip \@minus .192\baselineskip}% + }% +%</book|report> + \renewcommand*{\size@part}{\Huge}% + \renewcommand*{\size@partnumber}{\huge}% +%<book|report> \renewcommand*{\size@chapter}{\huge}% + \renewcommand*{\size@section}{\Large}% + \renewcommand*{\size@subsection}{\large}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \or +%<*book|report> + \renewcommand*{\chapterheadstartvskip}{% + \vspace*{2\baselineskip}% + }% + \renewcommand*{\chapterheadendvskip}{% + \vspace{1.5\baselineskip + \@plus .1\baselineskip \@minus .167\baselineskip}% + }% +%</book|report> + \renewcommand*{\size@part}{\huge}% + \renewcommand*{\size@partnumber}{\huge}% +%<*book|report> + \renewcommand*{\size@chapter}{\LARGE}% + \renewcommand*{\size@section}{\Large}% + \renewcommand*{\size@subsection}{\large}% +%</book|report> +%<*article> + \renewcommand*{\size@section}{\large}% + \renewcommand*{\size@subsection}{\normalsize}% +%</article> + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \or +%<*book|report> + \renewcommand*{\chapterheadstartvskip}{% + \vspace*{1.8\baselineskip}% + }% + \renewcommand*{\chapterheadendvskip}{% + \vspace{1.35\baselineskip + \@plus 0.09\baselineskip \@minus .15\baselineskip}% + }% +%</book|report> + \renewcommand*{\size@part}{\LARGE}% + \renewcommand*{\size@partnumber}{\LARGE}% +%<*book|report> + \renewcommand*{\size@chapter}{\Large}% + \renewcommand*{\size@section}{\large}% +%</book|report> +%<*article> + \renewcommand*{\size@section}{\normalsize}% +%</article> + \renewcommand*{\size@subsection}{\normalsize}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% +% \end{macrocode} +% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die +% Möglichkeit, auch hierüber die Optionen \texttt{open=any}, +% \texttt{open=right} und \texttt{open=left} zu setzen. +% \begin{macrocode} + \or +%<*book|report> + \KOMA@options{open=any}{}% +%</book|report> + \or +%<*book|report> + \KOMA@options{open=right}{}% +%</book|report> + \or +%<*book|report> + \KOMA@options{open=left}{}% +%</book|report> +% \end{macrocode} +% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die +% Möglichkeit, auch hierüber die Optionen \texttt{chapterprefix} und +% \texttt{appendixprefix} zu setzen. +% \begin{macrocode} + \or +%<*book|report> + \KOMA@options{chapterprefix=true}{}% +%</book|report> + \or +%<*book|report> + \KOMA@options{chapterprefix=false}{}% +%</book|report> + \or +%<*book|report> + \KOMA@options{appendixprefix=true}{}% +%</book|report> + \or +%<*book|report> + \KOMA@options{appendixprefix=false}{}% +%</book|report> + \fi +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{bigheadings} +% \changes{v2.3h}{1996/01/20}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei +% Verwendung des alten, falschen Namens wird ein Fehler +% ausgegeben} +% \changes{v2.98c}{2008/03/10}{obsolet} +% \begin{macro}{\@bigheadings} +% \changes{v2.98c}{2008/03/10}{entfernt} +% \begin{option}{normalheadings} +% \changes{v2.3h}{1996/01/20}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei +% Verwendung des alten, falschen Namens wird ein Fehler +% ausgegeben} +% \changes{v2.98c}{2008/03/10}{obsolet} +% \begin{macro}{\@normalheadings} +% \changes{v2.98c}{2008/03/10}{entfernt} +% \begin{option}{smallheadings} +% \changes{v2.3h}{1996/01/20}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei +% Verwendung des alten, falschen Namens wird ein Fehler +% ausgegeben} +% \changes{v2.98c}{2008/03/10}{obsolet} +% \begin{macro}{\@smallheadings} +% \changes{v2.98c}{2008/03/10}{entfernt} +% \begin{macrocode} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{bigheadings}% + {headings=big} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{normalheadings}% + {headings=normal} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{smallheadings}% + {headings=small} +% \end{macrocode} +% \end{macro} +% \end{option} +% \end{macro} +% \end{option} +% \end{macro} +% \end{option} +% +% % \iffalse +%</class> %</option> %<*body> % \fi @@ -435,6 +608,7 @@ % % \subsection{Grobeinteilung von Büchern} % \iffalse +%<*class> %<*book> % \fi % @@ -455,40 +629,46 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\frontmatter} -% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten} -% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten} +% \begin{macro}{\frontmatter} +% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten} +% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten} +% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt +% \cs{cleardoublepage}} % Der Vorspann enthält bei Büchern oftmals Inhaltsverzeichnis, Vorwort % und dergleichen und wird mit kleinen römischen Seitenzahlen % versehen. % \begin{macrocode} \newcommand*\frontmatter{% - \if@twoside\cleardoublepage\else\clearpage\fi + \if@twoside\cleardoubleoddpage\else\clearpage\fi \@mainmatterfalse\pagenumbering{roman}% } % \end{macrocode} -% \end{macro} -% \begin{macro}{\mainmatter} -% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten} -% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten} +% \end{macro} +% \begin{macro}{\mainmatter} +% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten} +% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten} +% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt +% \cs{cleardoublepage}} % Der Hauptteil ist das Fleisch der Bücher. % \begin{macrocode} \newcommand*\mainmatter{% - \if@twoside\cleardoublepage\else\clearpage\fi + \if@twoside\cleardoubleoddpage\else\clearpage\fi \@mainmattertrue\pagenumbering{arabic}% } % \end{macrocode} -% \end{macro} -% \begin{macro}{\backmatter} +% \end{macro} +% \begin{macro}{\backmatter} +% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt +% \cs{cleardoublepage}} % Auch wenn nicht ganz einzusehen ist, warum das anders sein soll, % wird hier nicht nach der Option \texttt{twoside}, sondern nach % \texttt{openright} unterschieden. % \begin{macrocode} \newcommand*\backmatter{% - \if@openright\cleardoublepage\else\clearpage\fi\@mainmatterfalse + \if@openright\cleardoubleoddpage\else\clearpage\fi\@mainmatterfalse } % \end{macrocode} -% \end{macro} +% \end{macro} % \iffalse %</book> % \fi @@ -561,12 +741,17 @@ % \begin{macro}{\if@autodot} % \changes{v2.8e}{2001/07/10}{neuer Schalter} % \begin{macro}{\@autodottrue} +% \changes{v3.00}{2008/10/07}{arbeitet nun gobal} % \begin{macro}{\@autodotfalse} +% \changes{v3.00}{2008/10/07}{arbeitet nun gobal} % Damit die Umschaltung auch wieder zurück auf Regel~5 automatisch % erfolgen kann, wird ein zweiter Schalter benötigt. % \begin{macrocode} \newif\if@altsecnumformat\@altsecnumformatfalse -\newif\if@autodot\@autodotfalse +\newif\if@autodot +\renewcommand*{\@autodottrue}{\global\let\if@autodot\iftrue} +\renewcommand*{\@autodotfalse}{\global\let\if@autodot\iffalse} +\@autodotfalse % \end{macrocode} % \end{macro} % \end{macro} @@ -587,21 +772,23 @@ % \end{macrocode} % \begin{macro}{\@@maybeautodot} % \changes{v2.8e}{2001/07/10}{neu (intern)} +% \changes{v3.00}{2008/10/07}{neuerdings überflüssige \cs{aftergroup} +% entfernt} % Die expandierte Darstellung wird dann auf Darstellungsbefehle für % Zähler gescannt. % \begin{macrocode} \newcommand*{\@@maybeautodot}[1]{% \ifx #1\@stop\let\@@maybeautodot\relax \else - \ifx #1\Alph \aftergroup\@autodottrue\fi - \ifx #1\alph \aftergroup\@autodottrue\fi - \ifx #1\Roman \aftergroup\@autodottrue\fi - \ifx #1\roman \aftergroup\@autodottrue\fi - \ifx #1\@Alph \aftergroup\@autodottrue\fi - \ifx #1\@alph \aftergroup\@autodottrue\fi - \ifx #1\@Roman \aftergroup\@autodottrue\fi - \ifx #1\@roman \aftergroup\@autodottrue\fi - \ifx #1\romannumeral \aftergroup\@autodottrue\fi + \ifx #1\Alph \@autodottrue\fi + \ifx #1\alph \@autodottrue\fi + \ifx #1\Roman \@autodottrue\fi + \ifx #1\roman \@autodottrue\fi + \ifx #1\@Alph \@autodottrue\fi + \ifx #1\@alph \@autodottrue\fi + \ifx #1\@Roman \@autodottrue\fi + \ifx #1\@roman \@autodottrue\fi + \ifx #1\romannumeral \@autodottrue\fi \fi \@@maybeautodot } @@ -1078,6 +1265,7 @@ % \changes{v2.8c}{2001/06/29}{neu (intern)} % \changes{v2.8l}{2001/08/17}{erst eintragen, dann ausgeben} % \changes{v2.95}{2004/07/20}{kann Kolumnentitel erzeugen} +% \changes{v3.00}{2008/07/01}{Notlösung für \textsf{hyperref} eingefügt} % \begin{macro}{\@saddpart} % \changes{v2.8c}{2001/06/29}{neu (intern)} % \begin{macrocode} @@ -1102,7 +1290,13 @@ \secdef\@addpart\@saddpart } \newcommand*{\@addpart}{} -\def\@addpart[#1]#2{\addcontentsline{toc}{part}{#1}\@spart{#2}% +\def\@addpart[#1]#2{% +% \end{macrocode} +% Notlösung, damit \textsf{hyperref} halbwegs damit klar kommt. Das ist aber +% weit davon entfernt eine echte Lösung zu bringen. +% \begin{macrocode} + \csname phantomsection\endcsname + \addcontentsline{toc}{part}{#1}\@spart{#2}% \ifx\partmark\@gobble\else\@mkboth{#1}{}\fi } \newcommand*{\@saddpart}{\@spart} @@ -1130,6 +1324,8 @@ % \changes{v2.8g}{2001/07/18}{per \cs{float@addtolists} wird nun % auch ein vertikaler Abstand in Listen des \texttt{float}-Pakets % eingebaut} +% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere +% float-Verzeichnisse mit hyperref} % \begin{macro}{\@makechapterhead} % \changes{v2.7b}{2001/01/05}{Kapitel können grundsätzlich mit % einer Präambel versehen werden} @@ -1214,22 +1410,6 @@ } % \end{macrocode} % \end{macro} -% \begin{macro}{\chapterheadstartvskip} -% \begin{macro}{\chapterheadendvskip} -% Mit diesen Anweisungen wird üblicherweise der Abstand zwischen -% oberem Rand des Textbereichs und der Überschrift bzw. der Abstand -% zwischen der Überschrift und dem Text des Kapitels gesetzt. Man kann -% die Anweisungen aber zusätzlich auch für andere Zwecke -% missbrauchen. Das ist der Grund warum diese Makros keine Längen, -% sondern komplette Anweisungen enthalten. In der Voreinstellung -% enthalten sie jedoch gar nichts. Die tatsächlichen Werte werden -% durch die Optionen festgelegt. -% \begin{macrocode} -\newcommand*{\chapterheadstartvskip}{} -\newcommand*{\chapterheadendvskip}{} -% \end{macrocode} -% \end{macro} -% \end{macro} % Zurück zur Kapiteldefinition: % \begin{macrocode} \newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi @@ -1241,6 +1421,8 @@ % \end{macrocode} % Die Variante ohne Stern: % \begin{macrocode} +\setuptoc{lof}{chapteratlist} +\setuptoc{lot}{chapteratlist} \newcommand*{\@chapter}{} \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne %<book> \if@mainmatter @@ -1249,14 +1431,31 @@ \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}% \if@chaptertolists - \addcontentsline{lof}{chapteratlist}{% - \protect\numberline{\thechapter}#1}% - \addcontentsline{lot}{chapteratlist}{% - \protect\numberline{\thechapter}#1}% + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addcontentsline{\@currext}{chapteratlist}{% + \protect\numberline{\thechapter}#1}% + }{}% + }% \@ifundefined{float@addtolists}{}{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{% - \protect\numberline{\thechapter}#1}{\thepage}% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated \string\float@addtolists!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@addtolists.\MessageBreak + Definition of \string\float@addtolists\space may be removed + from\MessageBreak + KOMA-Script soon, so it should not be used + }% + \scr@ifundefinedorrelax{@currentHref}{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{% + \protect\numberline{\thechapter}#1}{\thepage}% + }% + }{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{% + \protect\numberline{\thechapter}#1}{\thepage}{\@currentHref}% + }% }% }% \fi @@ -1264,11 +1463,28 @@ \else \addcontentsline{toc}{chapter}{#1}% \if@chaptertolists - \addcontentsline{lof}{chapteratlist}{#1}% - \addcontentsline{lot}{chapteratlist}{#1}% + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addcontentsline{\@currext}{chapteratlist}{#1}% + }{}% + }% \@ifundefined{float@addtolists}{}{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{#1}{\thepage}% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated \string\float@addtolists!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@addtolists.\MessageBreak + Definition of \string\float@addtolists\space may be removed + from\MessageBreak + KOMA-Script soon, so it should not be used + }% + \scr@ifundefinedorrelax{@currentHref}{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{#1}{\thepage}% + }% + }{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{#1}{\thepage}{\@currentHref}% + }% }% }% \fi @@ -1277,20 +1493,48 @@ \else \addcontentsline{toc}{chapter}{#1}% \if@chaptertolists - \addcontentsline{lof}{chapteratlist}{#1}% - \addcontentsline{lot}{chapteratlist}{#1}% + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addcontentsline{\@currext}{chapteratlist}{#1}% + }{}% + }% \@ifundefined{float@addtolists}{}{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{#1}{\thepage}% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated \string\float@addtolists!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@addtolists.\MessageBreak + Definition of \string\float@addtolists\space may be removed + from\MessageBreak + KOMA-Script soon, so it should not be used + }% + \scr@ifundefinedorrelax{@currentHref}{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{#1}{\thepage}% + }% + }{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{#1}{\thepage}{\@currentHref}% + }% }% }% \fi \fi \chaptermark{#1}% \ifdim \@chapterlistsgap>\z@ - \addtocontents{lof}{\protect\addvspace{\@chapterlistsgap}}% - \addtocontents{lot}{\protect\addvspace{\@chapterlistsgap}}% + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}% + }{}% + }% \@ifundefined{float@addtolists}{}{% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated \string\float@addtolists!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@addtolists.\MessageBreak + Definition of \string\float@addtolists\space may be removed + from\MessageBreak + KOMA-Script soon, so it should not be used + }% \float@addtolists{\protect\addvspace{\@chapterlistsgap}}% }% \fi @@ -1387,6 +1631,7 @@ % \end{macro} % \end{macro} % +% % \begin{macro}{\addchap} % \changes{v2.0e}{1994/08/10}{\cs{sectdef} durch \cs{secdef} % ersetzt} @@ -1404,6 +1649,8 @@ % ersetzt} % \changes{v2.8d}{2001/07/05}{\cs{chapterpagestyle} statt % \texttt{plain}} +% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere +% float-Verzeichnisse mit hyperref} % \KOMAScript{} bietet in \textsf{scrbook} und \textsf{scrreprt} den % zusätzlichen Gliederungsbefehl \cs{addchap}. Es handelt sich dabei % um einen mit \cs{chapter*} vergleichbaren Befehl, bei dem jedoch der @@ -1454,31 +1701,59 @@ \global\@topnum\z@ \@afterindentfalse \secdef\@addchap\@saddchap% -} -\newcommand*{\@addchap}{} +}% +\newcommand*{\@addchap}{}% \def\@addchap[#1]#2{\@schapter{#2}% \addcontentsline{toc}{chapter}{#1}% \if@chaptertolists - \addcontentsline{lof}{chapteratlist}{#1}% - \addcontentsline{lot}{chapteratlist}{#1}% + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addcontentsline{\@currext}{chapteratlist}{#1}% + }{}% + }% \@ifundefined{float@addtolists}{}{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{#1}{\thepage}% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated \string\float@addtolists!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@addtolists.\MessageBreak + Definition of \string\float@addtolists\space may be removed + from\MessageBreak + KOMA-Script soon, so it should not be used + }% + \scr@ifundefinedorrelax{@currentHref}{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{#1}{\thepage}% + }% + }{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{#1}{\thepage}{\@currentHref}% + }% }% }% \fi - \ifnum \@nameuse{scr@v@2.96}<\scr@compatibility + \ifnum \@nameuse{scr@v@2.96}<\scr@compatibility\relax \ifdim \@chapterlistsgap>\z@ - \addtocontents{lof}{\protect\addvspace{\@chapterlistsgap}}% - \addtocontents{lot}{\protect\addvspace{\@chapterlistsgap}}% + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}% + }{}% + }% \@ifundefined{float@addtolists}{}{% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated \string\float@addtolists!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@addtolists.\MessageBreak + Definition of \string\float@addtolists\space may be removed + from\MessageBreak + KOMA-Script soon, so it should not be used + }% \float@addtolists{\protect\addvspace{\@chapterlistsgap}}% }% \fi \fi \if@twoside\@mkboth{#1}{}\else\@mkboth{}{#1}\fi -} -\newcommand*{\@saddchap}[1]{\@schapter{#1}\@mkboth{}{}} +}% +\newcommand*{\@saddchap}[1]{\@schapter{#1}\@mkboth{}{}}% % \end{macrocode} % \iffalse %<*book> @@ -1599,23 +1874,23 @@ \newcommand\section{\@startsection{section}{1}{\z@}% {-3.5ex \@plus -1ex \@minus -.2ex}% {2.3ex \@plus.2ex}% - {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\setlength{\parfillskip}{\z@ - plus 1fil}\fi + {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi \raggedsection\normalfont\sectfont\nobreak\size@section}% } \newcommand\subsection{\@startsection{subsection}{2}{\z@}% {-3.25ex\@plus -1ex \@minus -.2ex}% {1.5ex \@plus .2ex}% - {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\setlength{\parfillskip}{\z@ - plus 1fil}\fi + {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi \raggedsection\normalfont\sectfont\nobreak\size@subsection }% } \newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% {-3.25ex\@plus -1ex \@minus -.2ex}% {1.5ex \@plus .2ex}% - {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\setlength{\parfillskip}{\z@ - plus 1fil}\fi + {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi \raggedsection\normalfont\sectfont\nobreak\size@subsubsection }% } @@ -1696,7 +1971,9 @@ % ist als intern zu betrachten. Der Anwender sollte stattdessen das % entsprtechende Fontelement verwenden. % \begin{macrocode} +%</class> \newcommand*\sectfont{\normalcolor\sffamily\bfseries} +%<*class> % \end{macrocode} % \end{macro} % @@ -1755,52 +2032,6 @@ % \end{macrocode} % \end{KOMAfont} % -% \begin{macro}{\size@part} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, -% wenn es keine Auswirkung auf den Zeilen abstand hat} -% \begin{macro}{\size@partnumber} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, -% wenn es keine Auswirkung auf den Zeilen abstand hat} -% \begin{macro}{\size@chapter} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, -% wenn es keine Auswirkung auf den Zeilen abstand hat} -% \begin{macro}{\size@chapterprefix} -% \changes{v2.96a}{2006/12/02}{neu (intern)} -% \begin{macro}{\size@section} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \begin{macro}{\size@subsection} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \begin{macro}{\size@subsubsection} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \begin{macro}{\size@paragraph} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \begin{macro}{\size@subparagraph} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% Diese Makros werden intern von den Elementen benötigt (siehe unten). -% \begin{macrocode} -\newcommand*{\size@part}{} -\newcommand*{\size@partnumber}{} -%<book|report>\newcommand*{\size@chapter}{} -%<book|report>\newcommand*{\size@chapterprefix}{\size@chapter} -\newcommand*{\size@section}{} -\newcommand*{\size@subsection}{} -\newcommand*{\size@subsubsection}{} -\newcommand*{\size@paragraph}{} -\newcommand*{\size@subparagraph}{} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% % \begin{macro}{\scr@fnt@disposition} % \changes{v2.95b}{2006/07/30}{neues Element \texttt{disposition}} % \begin{macro}{\scr@fnt@sectioning} @@ -1833,7 +2064,10 @@ % Definition der Elemente der Gliederung, deren Schrift geändert % werden kann: % \begin{macrocode} +%</class> \newcommand*{\scr@fnt@disposition}{\sectfont} +\aliaskomafont{sectioning}{disposition} +%<*class> \newcommand*{\scr@fnt@part}{\size@part} \newcommand*{\scr@fnt@partnumber}{\size@partnumber} %<book|report>\newcommand*{\scr@fnt@chapter}{\size@chapter} @@ -1843,7 +2077,6 @@ \newcommand*{\scr@fnt@subsubsection}{\size@subsubsection} \newcommand*{\scr@fnt@paragraph}{\size@paragraph} \newcommand*{\scr@fnt@subparagraph}{\size@subparagraph} -\aliaskomafont{sectioning}{disposition} % \end{macrocode} % \end{KOMAfont} % \end{macro} @@ -2163,7 +2396,7 @@ % stattfinden kann. Ab Version~2.96a gilt das nur noch, wenn die nachfolgende % Überschrift wiederum eine \cs{part}-Überschrift ist. % \begin{macrocode} - \ifnum \scr@compatibility>\@nameuse{scr@v@2.96} + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax \endgroup \penalty20010 \else @@ -2234,7 +2467,7 @@ % \begin{macrocode} \hfill\nobreak \hb@xt@\@pnumwidth{\hss#2}}}\par - \ifnum \scr@compatibility>\@nameuse{scr@v@2.96} + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax \endgroup \penalty20009 \else @@ -2318,7 +2551,7 @@ \hfill\nobreak \hb@xt@\@pnumwidth{\hss#2}}}\par \endgroup - \ifnum \scr@compatibility>\@nameuse{scr@v@2.96} + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax \penalty20008 \fi \fi @@ -2387,7 +2620,7 @@ % Umbrüchen zwischen Eintrag und Unterebene zu schützen. % \begin{macrocode} \newcommand*{\bprot@dottedtocline}[5]{% - \ifnum \scr@compatibility>\@nameuse{scr@v@2.96} + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax \ifnum #1>\c@tocdepth \else \begingroup \@tempcnta 20010 @@ -2411,6 +2644,7 @@ % \end{macro} % % \iffalse +%</class> %</body> % \fi % diff --git a/Master/texmf-dist/source/latex/koma-script/scrktare.dtx b/Master/texmf-dist/source/latex/koma-script/scrktare.dtx index c10ea1eefac..f16463db079 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrktare.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrktare.dtx @@ -1,8 +1,8 @@ -% \CheckSum{1678} +% \CheckSum{1748} % \iffalse meta-comment % ====================================================================== % scrktare.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrktare.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrktare.dtx %<*driver> % \fi -\ProvidesFile{scrktare.dtx}[2007/11/26 v2.97e KOMA-Script (type area)] +\ProvidesFile{scrktare.dtx}[2008/10/08 v3.00 KOMA-Script (type area)] % \iffalse %</driver> %<package&identify>\ProvidesPackage{typearea}[% @@ -489,8 +489,8 @@ % % \subsubsection{Kopf-, Fuß-, Rand- und Textbereich} % -% \begin{option}{headlines} -% \changes{v2.95}{2002/12/06}{mit \textsf{keyval} neu implementiert} +% \begin{option}{headlines} +% \changes{v2.95}{2002/12/06}{mit \textsf{keyval} neu implementiert} % Neben der Auswertung der \meta{Wert}\texttt{headlines} Form über % Pattern Matching wird hier auch noch eine \textsf{keyval}-Option % definiert, die bevorzugt zu verwenden ist. @@ -502,7 +502,22 @@ \def\ta@hh{#1\baselineskip}% } % \end{macrocode} -% \end{option} +% \end{option} +% +% \begin{option}{headheight} +% \changes{v2.98c}{2008/04/06}{neue Option} +% Manchmal ist es nützlicher, wenn man die Höhe direkt setzen kann, statt sie +% über die Anzahl der Grundlinien zu setzen. In dem Fall nimmt man einfach +% diese Option. +% \begin{macrocode} +\KOMA@key{headheight}{% + \begingroup + \setlength{\@tempdima}{#1}% + \endgroup + \def\ta@hh{#1}% +} +% \end{macrocode} +% \end{option} % % \begin{option}{headinclude} % \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} @@ -671,15 +686,42 @@ % ersetzt} % \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die % Option an das Paket weiter} +% \changes{v3.00}{2008/07/09}{die Option kennt zusätzlich den Wert +% \texttt{semi}} +% \begin{macro}{if@semitwoside} +% \changes{v3.00}{2008/07/09}{neuer Schalter (intern)} +% \begin{macro}{if@twoside} +% \changes{v3.00}{2008/07/09}{Schalter setzt auch \cs{if@semitwoside}} % Einseitiger oder zweiseitiger Satzspiegel? % \begin{macrocode} +\newif\if@semitwoside +\g@addto@macro\@twosidetrue\@semitwosidefalse +\g@addto@macro\@twosidefalse\@semitwosidefalse %</package> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macrocode} \KOMA@key{twoside}[true]{% %<class> \if@atdocument\else\PassOptionsToPackage{twoside=#1}{typearea}\fi% %<*package> \if@atdocument\if@twoside\cleardoublepage\else\clearpage\fi\fi - \KOMA@set@ifkey{twoside}{@twoside}{#1}% - \if@twoside\@mparswitchtrue\else\@mparswitchfalse\fi% + \ifstr{#1}{semi}{% + \@twosidetrue + \@semitwosidetrue + }{% + \def\FamilyElseValue{, `semi'}% + \KOMA@set@ifkey{twoside}{@twoside}{#1}% + }% + \if@twoside + \if@semitwoside + \@mparswitchfalse + \else + \@mparswitchtrue + \fi + \else + \@mparswitchfalse + \fi% \csname recalctypearea\endcsname %</package> } @@ -701,11 +743,13 @@ % verlagert} % \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die % Option an das Paket weiter} +% \changes{v2.98a}{2007/01/08}{es wird die richtige Option an das Paket +% weitergereicht} % Einspaltiger oder zweispaltiger Satz? % \begin{macrocode} %</package> \KOMA@key{twocolumn}[true]{% -%<class> \if@atdocument\else\PassOptionsToPackage{twoside=#1}{typearea}\fi% +%<class> \if@atdocument\else\PassOptionsToPackage{twocolumn=#1}{typearea}\fi% %<*package> \if@atdocument\clearpage\fi \KOMA@set@ifkey{twocolumn}{@twocolumn}{#1}% @@ -846,16 +890,18 @@ % \end{option} % % -% \begin{option}{dvips} -% \changes{v2.7g}{2001/04/17}{neue Option} -% \changes{v2.95}{2002/08/27}{neu implementiert} +% \begin{option}{dvips} +% \changes{v2.7g}{2001/04/17}{neue Option} +% \changes{v2.95}{2002/08/27}{neu implementiert} +% \changes{v2.98c}{2008/04/09}{Ersatz geändert} +% \changes{v2.98c}{2008/04/09}{Info statt Warnung} % Die Option ist obsolete und wird nun über die Option -% \texttt{pagesize} implementiert. In diesem Fall wird eine Warnung -% verwendet, weil die Verwendung von \texttt{pagesize=dvips} selbst -% ebenfalls zu einer Warnung führen kann. +% \texttt{pagesize} implementiert. Obwohl die Verwendung von +% \texttt{pagesize=automedia} zu einer Warnung führen kann, wird hier nur +% informiert. % \begin{macrocode} -\KOMA@DeclareObsoleteOption[\PackageWarning]{dvips}{% - pagesize=dvips% +\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{dvips}{% + pagesize=automedia% } % \end{macrocode} % \end{option} @@ -1101,7 +1147,11 @@ % \begin{macrocode} \KOMAExecuteOptions{paper=A4} \if@twoside - \KOMAExecuteOptions{twoside} + \if@semitwoside + \KOMAExecuteOptions{twoside=semi} + \else + \KOMAExecuteOptions{twoside} + \fi \else \KOMAExecuteOptions{twoside=false} \fi @@ -1242,7 +1292,11 @@ \advance\marginparwidth by-\marginparsep \else \if@twoside - \marginparwidth=1.5\ta@hblk + \if@semitwoside + \marginparwidth=\ta@hblk + \else + \marginparwidth=1.5\ta@hblk + \fi \else \marginparwidth=\ta@hblk \fi @@ -1258,12 +1312,18 @@ \oddsidemargin=-1in \evensidemargin=-1in \if@twoside - \advance\oddsidemargin by\ta@hblk - \advance\oddsidemargin by\ta@bcor - \advance\evensidemargin by2\ta@hblk - \if@mincl - \advance\evensidemargin by\marginparwidth - \advance\evensidemargin by\marginparsep + \if@semitwoside + \advance\oddsidemargin by1.5\ta@hblk + \advance\oddsidemargin by\ta@bcor + \evensidemargin=\oddsidemargin + \else + \advance\oddsidemargin by\ta@hblk + \advance\oddsidemargin by\ta@bcor + \advance\evensidemargin by2\ta@hblk + \if@mincl + \advance\evensidemargin by\marginparwidth + \advance\evensidemargin by\marginparsep + \fi \fi \else \advance\oddsidemargin by1.5\ta@hblk @@ -1508,7 +1568,7 @@ \if@mincl \PackageInfo{typearea}{% With option `mpinclude' there are no predefined\MessageBreak - DIV-values. Using DIV calculation for good line\MessageBreak + DIV values. Using DIV calculation for good line\MessageBreak width% }% \ta@div=2 @@ -1869,6 +1929,8 @@ % \changes{v2.5}{1997/06/17}{"`arithmetic overflow"' bei landscape % behoben} % \changes{v2.95}{2004/01/30}{Warnung im Zweispaltenmodus korrigiert} +% \changes{v3.00}{2008/10/08}{Layout-Infos werden per \cs{ta@layoutinfo} +% in die \texttt{log}-Datei geschrieben} % Zum Schluss soll die Seitenaufteilung noch in die \texttt{log}-Datei % geschrieben werden. % \begin{macrocode} @@ -1893,58 +1955,28 @@ \fi \ifnum\@tempcnta <-15 \PackageWarningNoLine{typearea}{% - Bad DIV-value!\MessageBreak + Bad DIV value!\MessageBreak You should e.g. decrease DIV, increase fontsize\MessageBreak or change papersize% }% \else \ifnum\@tempcnta>15 \PackageWarningNoLine{typearea}{% - Bad DIV-value!\MessageBreak + Bad DIV value!\MessageBreak You should e.g. increase DIV, decrease fontsize\MessageBreak or change papersize% } \fi\fi \ifnum\ta@div <6 \PackageWarningNoLine{typearea}{% - Very low DIV-value!\MessageBreak - DIV-values less than 6 result in textwidth/-height\MessageBreak + Very low DIV value!\MessageBreak + DIV values less than 6 result in textwidth/-height\MessageBreak smaller than total marginwidth/-height.\MessageBreak You should e.g. increase DIV, increase fontsize or\MessageBreak change papersize% } \fi - \PackageInfo{typearea}{% - These are the values describing the layout:\MessageBreak - DIV\space\space=\space\number\ta@div\MessageBreak - BCOR\space=\space\the\ta@bcor\MessageBreak - \string\paperwidth\space\space\space\space\space\space=% - \space\the\paperwidth\MessageBreak - \space\string\textwidth\space\space\space\space\space\space=% - \space\the\textwidth\MessageBreak - \space DIV-departure\space\space\space=% - \space\the\@tempcnta/100\MessageBreak - \space\string\evensidemargin\space=% - \space\the\evensidemargin\MessageBreak - \space\string\oddsidemargin\space\space=% - \space\the\oddsidemargin\MessageBreak - \string\paperheight\space\space\space\space\space=% - \space\the\paperheight\MessageBreak - \space\string\textheight\space\space\space\space\space=% - \space\the\textheight\MessageBreak - \space\string\topmargin\space\space\space\space\space\space=% - \space\the\topmargin\MessageBreak - \space\string\headheight\space\space\space\space\space=% - \space\the\headheight\MessageBreak - \space\string\headsep\space\space\space\space\space\space\space\space=% - \space\the\headsep\MessageBreak - \space\string\topskip\space\space\space\space\space\space\space\space=% - \space\the\topskip\MessageBreak - \space\string\footskip\space\space\space\space\space\space\space=% - \space\the\footskip\MessageBreak - \space\string\baselineskip\space\space\space=% - \space\the\baselineskip\MessageBreak - }% + \ta@layoutinfo{\number\ta@div}{\the\@tempcnta}% \@typearea@end \activateareas \fi @@ -1952,6 +1984,51 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\ta@layoutinfo} +% \changes{v3.00}{2008/10/08}{neu (intern)} +% Schreibt die Layout-Information in die \texttt{log}-Datei. Dabei ist das +% erste Argument die Ausgabe für den DIV-Wert und das zweite Argument die +% DIV-Abweichung. Letztere wird nur ausgegeben, wenn das Argument nicht leer +% und nicht \cs{relax} ist. +% \begin{macrocode} +\newcommand*{\ta@layoutinfo}[2]{% + \PackageInfo{typearea}{% + These are the values describing the layout:\MessageBreak + DIV\space\space=\space#1\MessageBreak + BCOR\space=\space\the\ta@bcor\MessageBreak + \string\paperwidth\space\space\space\space\space\space=% + \space\the\paperwidth\MessageBreak + \space\string\textwidth\space\space\space\space\space\space=% + \space\the\textwidth\MessageBreak + \ifx\relax#2\relax\else + \space DIV departure\space\space\space=% + \space#2\@percentchar\MessageBreak + \fi + \space\string\evensidemargin\space=% + \space\the\evensidemargin\MessageBreak + \space\string\oddsidemargin\space\space=% + \space\the\oddsidemargin\MessageBreak + \string\paperheight\space\space\space\space\space=% + \space\the\paperheight\MessageBreak + \space\string\textheight\space\space\space\space\space=% + \space\the\textheight\MessageBreak + \space\string\topmargin\space\space\space\space\space\space=% + \space\the\topmargin\MessageBreak + \space\string\headheight\space\space\space\space\space=% + \space\the\headheight\MessageBreak + \space\string\headsep\space\space\space\space\space\space\space\space=% + \space\the\headsep\MessageBreak + \space\string\topskip\space\space\space\space\space\space\space\space=% + \space\the\topskip\MessageBreak + \space\string\footskip\space\space\space\space\space\space\space=% + \space\the\footskip\MessageBreak + \space\string\baselineskip\space\space\space=% + \space\the\baselineskip\MessageBreak + }% +} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\recalctypearea} % \changes{v2.95}{2002/12/04}{Neu} % Dieses Anweisung dient der Neuberechnung des Satzspiegels mit den @@ -1988,6 +2065,8 @@ % \end{macrocode} % Erst dann folgt die eigentlich Berechnung: % \changes{v2.96}{2006/09/12}{\cs{topskip} wird gesetzt} +% \changes{v3.00}{2008/10/08}{Layout-Infos werden per \cs{ta@layoutinfo} +% in die \texttt{log}-Datei geschrieben} % \begin{macrocode} \setlength{\textwidth}{#2}% \setlength{\textheight}{#3}% @@ -1999,9 +2078,15 @@ \oddsidemargin=-1in \evensidemargin=-1in \if@twoside - \advance\oddsidemargin by\ta@hblk - \advance\oddsidemargin by\ta@bcor - \advance\evensidemargin by2\ta@hblk + \if@semitwoside + \advance\oddsidemargin by1.5\ta@hblk + \advance\oddsidemargin by\ta@bcor + \evensidemargin\oddsidemargin + \else + \advance\oddsidemargin by\ta@hblk + \advance\oddsidemargin by\ta@bcor + \advance\evensidemargin by2\ta@hblk + \fi \else \advance\oddsidemargin by1.5\ta@hblk \advance\oddsidemargin by\ta@bcor @@ -2035,12 +2120,17 @@ \advance\topmargin by-\headsep \fi \if@twoside - \marginparwidth=1.5\ta@hblk + \if@semitwoside + \marginparwidth=\ta@hblk + \else + \marginparwidth=1.5\ta@hblk + \fi \else \marginparwidth=\ta@hblk \fi \marginparsep=1cc \marginparpush=0.45\baselineskip + \ta@layoutinfo{areaset}{}% \activateareas } % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/koma-script/scrktitl.dtx b/Master/texmf-dist/source/latex/koma-script/scrktitl.dtx index 0e3288236a9..e59d49474d7 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrktitl.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrktitl.dtx @@ -1,8 +1,8 @@ -% \CheckSum{623} +% \CheckSum{661} % \iffalse meta-comment % ====================================================================== % scrktitl.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrktitl.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrktitl.dtx %<*driver> % \fi -\ProvidesFile{scrktitl.dtx}[2007/08/31 v2.97c KOMA-Script (title pages)] +\ProvidesFile{scrktitl.dtx}[2008/06/19 v3.00 KOMA-Script (title pages)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -118,16 +118,42 @@ % \begin{macro}{\@titlepagefalse} % Die gewählte Einstellung wird in einem Schalter gespeichert. % \begin{macrocode} +%<*class> \newif\if@titlepage %<article>\@titlepagefalse %<report|book>\@titlepagetrue +%</class> +% \end{macrocode} +% Im Falle von \textsf{scrextend} ist die Option Teil der Erweiterung. +% \begin{macrocode} +%<*package&extend> +\scr@ext@activateable{title}{% + \scr@ifundefinedorrelax{if@titlepage}{% + \expandafter\newif\csname if@titlepage\endcsname + \@titlepagefalse + }{} +%</package&extend> % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \begin{macrocode} -\KOMA@ifkey{titlepage}{@titlepage} -\KOMA@DeclareObsoleteOption[\ClassInfo]{notitlepage}{titlepage=false} +%<*class|package> +\KOMA@ifkey{titlepage}{@titlepage}% +%<*extend> +% \end{macrocode} +% Diese Erweiterung soll dann auch tatsächlich sofort aktiviert werden: +% \begin{macrocode} + \def\scr@ext@immediate@title{% + \scr@ext@activate{title}% + \let\scr@ext@immediate@title\relax + }% +} +%</extend> +%</class|package> +\KOMA@DeclareObsoleteOption% +%<class> [\PackageInfoNoLine]% + {notitlepage}{titlepage=false} % \end{macrocode} % \end{option} % \end{option} @@ -144,6 +170,7 @@ % Titel kann aber auch unterdrückt werden. % % \iffalse +%<*class> %<*article|report> % \fi % Bei Büchern gibt es keine Zusammenfassung als gesonderte Umgebung. Als @@ -163,14 +190,15 @@ % % \begin{macrocode} \KOMA@ifkey{abstract}{@abstrt} -\KOMA@DeclareObsoleteOption[\ClassInfo]{abstracton}{abstract=true} -\KOMA@DeclareObsoleteOption[\ClassInfo]{abstractoff}{abstract=false} +\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{abstracton}{abstract=true} +\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{abstractoff}{abstract=false} % \end{macrocode} % \end{option} % \end{option} % \end{option} % \iffalse %</article|report> +%</class> % \fi % % @@ -208,22 +236,47 @@ % Zusatzbefehle \cs{long} deklariert, können also ganze Absätze % enthalten. % \begin{macrocode} -\newcommand*{\@extratitle}{} -\newcommand{\extratitle}[1]{\gdef\@extratitle{#1}} -\newcommand*{\@titlehead}{} -\newcommand{\titlehead}[1]{\gdef\@titlehead{#1}} -\newcommand*{\@subject}{} -\newcommand*{\subject}[1]{\gdef\@subject{#1}} -\newcommand*{\subtitle}[1]{\gdef\@subtitle{#1}} -\newcommand*{\@subtitle}{} -\newcommand*{\@publishers}{} -\newcommand{\publishers}[1]{\gdef\@publishers{#1}} -\newcommand*{\@uppertitleback}{} -\newcommand{\uppertitleback}[1]{\gdef\@uppertitleback{#1}} -\newcommand*{\@lowertitleback}{} -\newcommand{\lowertitleback}[1]{\gdef\@lowertitleback{#1}} -\newcommand*{\@dedication}{} -\newcommand{\dedication}[1]{\gdef\@dedication{#1}} +%<package&extend>\scr@ext@activateable{title}{% +\newcommand*{\@extratitle}{}% +\newcommand{\extratitle}[1]{\gdef\@extratitle{% +%<extend> ##1% +%<!extend> #1% +}}% +\newcommand*{\@titlehead}{}% +\newcommand{\titlehead}[1]{\gdef\@titlehead{% +%<extend> ##1% +%<!extend> #1% +}}% +\newcommand*{\@subject}{}% +\newcommand*{\subject}[1]{\gdef\@subject{% +%<extend> ##1% +%<!extend> #1% +}}% +\newcommand*{\subtitle}[1]{\gdef\@subtitle{% +%<extend> ##1% +%<!extend> #1% +}}% +\newcommand*{\@subtitle}{}% +\newcommand*{\@publishers}{}% +\newcommand{\publishers}[1]{\gdef\@publishers{% +%<extend> ##1% +%<!extend> #1% +}}% +\newcommand*{\@uppertitleback}{}% +\newcommand{\uppertitleback}[1]{\gdef\@uppertitleback{% +%<extend> ##1% +%<!extend> #1% +}}% +\newcommand*{\@lowertitleback}{}% +\newcommand{\lowertitleback}[1]{\gdef\@lowertitleback{% +%<extend> ##1% +%<!extend> #1% +}}% +\newcommand*{\@dedication}{}% +\newcommand{\dedication}[1]{\gdef\@dedication{% +%<extend> ##1% +%<!extend> #1% +}}% % \end{macrocode} % \end{macro} % \end{macro} @@ -248,7 +301,7 @@ % ersetzt} % Innerhalb eines Titels auf die nächste Seite umschalten. % \begin{macrocode} -\newcommand*{\next@tpage}{\clearpage\thispagestyle{empty}} +\newcommand*{\next@tpage}{\clearpage\thispagestyle{empty}}% % \end{macrocode} % \end{macro} % \begin{macro}{\maketitle} @@ -286,10 +339,14 @@ % \changes{v2.97c}{2007/08/31}{Vakatseiten in der Titelei immer im % Seitenstil \texttt{empty}} % \begin{macrocode} +%<package&extend>\let\maketitle\relax\let\@maketitle\relax \if@titlepage \newcommand*\maketitle[1][1]{% \begin{titlepage} - \setcounter{page}{#1}% + \setcounter{page}{% +%<extend> ##1% +%<!extend> #1% + }% \let\footnotesize\small \let\footnoterule\relax \let\footnote\thanks @@ -300,7 +357,8 @@ \noindent\@extratitle\next@tpage\cleardoubleemptypage \thispagestyle{empty}% \fi - \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative +%<!extend> \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative +%<extend> \parskip\z@ \parindent\z@ \parfillskip\z@\@plus 1fil \ifx\@titlehead\@empty \else \begin{minipage}[t]{\textwidth}% \@titlehead @@ -377,7 +435,7 @@ \global\let\dedication\relax \global\let\date\relax \global\let\and\relax - } + }% \else % \end{macrocode} % \changes{v2.3a}{1995/07/08}{Verwendung von \cs{@makefnmark} in @@ -395,8 +453,12 @@ % \texttt{plain}} % \begin{macrocode} \newcommand*\maketitle[1][1]{\par - \@tempcnta=#1\relax\ifnum\@tempcnta=1\else - \ClassWarning{\KOMAClassName}{% + \@tempcnta=% +%<extend> ##1% +%<!extend> #1% + \relax\ifnum\@tempcnta=1\else +%<class> \ClassWarning{\KOMAClassName}{% +%<package> \PackageWarning{scrextend}{% Optional argument of \string\maketitle\space ignored at\MessageBreak notitlepage-mode% @@ -452,7 +514,7 @@ \global\let\dedication\relax \global\let\date\relax \global\let\and\relax - } + }% \fi % \end{macrocode} % \begin{macro}{\@maketitle} @@ -465,7 +527,8 @@ \ifx\@extratitle\@empty \else \noindent\@extratitle \next@tpage \if@twoside \null\next@tpage \fi \fi - \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative +%<!extend> \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative +%<extend> \parskip\z@ \parindent\z@ \parfillskip\z@\@plus 1fil \ifx\@titlehead\@empty \else \begin{minipage}[t]{\textwidth} \@titlehead @@ -499,11 +562,46 @@ \end{center}% \par \vskip 2em -} +}% % \end{macrocode} % \end{macro} % \end{macro} % +% +% \subsection{Umgebung für die Titelseite} +% +% \begin{environment}{titlepage} +% Die Titelseite bedarf ebenfalls einer gesonderter Umgebung. Beim +% zweispaltigen Layout soll die Titelseite z.\,B. einspaltig gedruckt +% werden. +% \begin{macrocode} +%<package&extend>\scr@ifundefinedorrelax{titlepage}{% +\newenvironment{titlepage}{% +%<report|book> \cleardoublepage + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \if@compatibility + \setcounter{page}{0}% + \fi +}{% + \if@restonecol\twocolumn \else \newpage \fi +}% +%<package&extend>}{}% +% \end{macrocode} +% \end{environment} +% +% Im Fall von \textsf{scrextend} muss jetzt das Kürzel \emph{title} beendet +% werden: +% \begin{macrocode} +%<package&extend>}\csname scr@ext@immediate@title\endcsname +% \end{macrocode} +% +% \subsection{Fonts für den Titel} +% % \begin{macro}{\titlefont} % \changes{v2.8p}{2001/09/22}{neu} % Wie oben zu sehen ist, wird in der Titelei ein eigenes Schriftmakro @@ -517,8 +615,8 @@ % Ebenso verhält es sich mit den \emph{Subject} im Titel. Hier ist % aber von vornherein ein internes Makro definiert. % \begin{macrocode} -\newcommand*\titlefont{\sectfont} -\newcommand*{\subject@font}{\normalfont\normalcolor\bfseries\Large} +\newcommand*\titlefont{\sectfont}% +\newcommand*{\subject@font}{\normalfont\normalcolor\bfseries\Large}% % \end{macrocode} % \end{macro} % \end{macro} @@ -526,7 +624,7 @@ % \begin{KOMAfont}{subtitle} % \changes{v2.97c}{2007/06/20}{neu (intern)} % \begin{macrocode} -\newkomafont{subtitle}{\usekomafont{title}\large} +\newkomafont{subtitle}{\usekomafont{title}\large}% % \end{macrocode} % \end{KOMAfont} % @@ -539,13 +637,15 @@ % \textsf{scrreprt} und \textsf{scrartcl}} % Die beiden Elemente, deren Schrift geändert werden kann. % \begin{macrocode} -\newcommand*{\scr@fnt@title}{\titlefont} -\newcommand*{\scr@fnt@subject}{\subject@font} +\newcommand*{\scr@fnt@title}{\titlefont}% +\newcommand*{\scr@fnt@subject}{\subject@font}% % \end{macrocode} % \end{macro} % \end{macro} % % +% \subsection{Umgebung für die Zusammenfassung} +% % \begin{environment}{abstract} % \textsf{scrartcl} und \textsf{scrreprt} bieten die Möglichkeit einer % Zusammenfassung, eines sogenannten \emph{Abstracts}. Wenn eine @@ -554,6 +654,7 @@ % dieser Art. In Büchern werden Zusammenfassungen üblicherweise mit % Kapitelcharakter gesetzt. % \iffalse +%<*class> %<*article|report> % \fi % \changes{v2.3a}{1995/07/08}{\cs{@endparpenalty} zur Verhinderung @@ -601,35 +702,11 @@ % \end{macrocode} % \iffalse %</article|report> +%</class> % \fi % \end{environment} % % -% \subsection{Umgebung für die Titelseite} -% -% \begin{environment}{titlepage} -% Die Titelseite bedarf ebenfalls einer gesonderter Umgebung. Beim -% zweispaltigen Layout soll die Titelseite z.\,B. einspaltig gedruckt -% werden. -% \begin{macrocode} -\newenvironment{titlepage}{% -%<report|book> \cleardoublepage - \if@twocolumn - \@restonecoltrue\onecolumn - \else - \@restonecolfalse\newpage - \fi - \thispagestyle{empty}% - \if@compatibility - \setcounter{page}{0}% - \fi -}{% - \if@restonecol\twocolumn \else \newpage \fi -} -% \end{macrocode} -% \end{environment} -% -% % \iffalse %</body> % \fi diff --git a/Master/texmf-dist/source/latex/koma-script/scrkvars.dtx b/Master/texmf-dist/source/latex/koma-script/scrkvars.dtx index c57d41a6c8d..2313e580fac 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkvars.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkvars.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % scrkvars.dtx -% Copyright (c) Markus Kohm, 2007 +% Copyright (c) Markus Kohm, 2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkvars.dtx -% Copyright (c) Markus Kohm, 2007 +% Copyright (c) Markus Kohm, 2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scrkvers.dtx b/Master/texmf-dist/source/latex/koma-script/scrkvers.dtx index b01076d1c92..10bce657cc5 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkvers.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkvers.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % scrkvers.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkvers.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -112,7 +112,7 @@ \fi } \fi - \@CheckKOMAScriptVersion{2007/12/24 v2.98 KOMA-Script}% + \@CheckKOMAScriptVersion{2008/11/03 v3.00 KOMA-Script}% \endgroup % \end{macrocode} % \end{macro} diff --git a/Master/texmf-dist/source/latex/koma-script/scrlettr.dtx b/Master/texmf-dist/source/latex/koma-script/scrlettr.dtx index 7441dde4de4..7dd9b63b4fa 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrlettr.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrlettr.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % scrlettr.dtx -% Copyright (c) Axel Kielhorn and Markus Kohm, 1995-2007 +% Copyright (c) Axel Kielhorn and Markus Kohm, 1995-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlettr.dtx -% Copyright (c) Axel Kielhorn and Markus Kohm, 1995-2007 +% Copyright (c) Axel Kielhorn and Markus Kohm, 1995-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -2027,7 +2027,7 @@ % \begin{macro}{\fromname} % \begin{macro}{\frombranch} % \begin{macro}{\fromsig} -% \changes{2.2b}{1995/02/16}{Direkte Verwendung von {\cmd\fromname}} +% \changes{v2.2b}{1995/02/16}{Direkte Verwendung von {\cmd\fromname}} % \begin{macro}{\fromaddress} % \begin{macro}{\fromplace} % \begin{macro}{\fromlocation} @@ -2523,20 +2523,20 @@ % \end{macro} % % \begin{macro}{\closing} -% \changes{2.2b}{1995/02/16}{{\cmd\fromsig} wird nicht mehr auf {\cmd\empty} +% \changes{v2.2b}{1995/02/16}{{\cmd\fromsig} wird nicht mehr auf {\cmd\empty} % getestet sondern direkt eingesetzt} -% \changes{2.3b}{1996/01/14}{Abstand zwischen Schlu"sgru"s und Signatur +% \changes{v2.3b}{1996/01/14}{Abstand zwischen Schlu"sgru"s und Signatur % erh"oht} -% \changes{2.5d}{2000/06/10}{Abstand zwischen Schlu"sgru"s und +% \changes{v2.5d}{2000/06/10}{Abstand zwischen Schlu"sgru"s und % Signatur variabel} % Au"ser dem Er"offnungsgru"s mit |\opening| gibt es nat"urlich auch % einen Schlu"sgru"s mit |\closing|, bei dem au"serdem die % Unterschrift u."a. gesetzt wird. % \begin{macro}{\presig@skip} -% \changes{2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen +% \changes{v2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen % Schlu"sgru"s und Signatur beinhaltet} % \begin{macro}{\setpresigskip} -% \changes{2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen +% \changes{v2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen % Schlu"sgru"s und Signatur setzt} % Das Makro |\presig@skip| beinhaltet dabei den Abstand zwischen Schlu"sgru"s % und Signatur. Da der Wert "uber ein Benutzerinterface per |\setpresigskip| @@ -2829,8 +2829,8 @@ \endinput % % Ende der Datei `scrlettr.dtx' - +% %%% Local Variables: %%% mode: doctex -%%% Text-master: t +%%% TeX-master: t %%% End:
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scrlettr.ins b/Master/texmf-dist/source/latex/koma-script/scrlettr.ins index d16200141a6..b8f056de54f 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrlettr.ins +++ b/Master/texmf-dist/source/latex/koma-script/scrlettr.ins @@ -1,6 +1,6 @@ % ====================================================================== % scrlettr.ins -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlettr.ins -% Copyright (c) Markus Kohm, 2006-2007 +% Copyright (c) Markus Kohm, 2006-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scrlfile.dtx b/Master/texmf-dist/source/latex/koma-script/scrlfile.dtx index b2953f4b62f..37f6ebe0626 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrlfile.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrlfile.dtx @@ -1,8 +1,8 @@ -% \CheckSum{263} +% \CheckSum{296} % \iffalse meta-comment % ====================================================================== % scrlfile.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlfile.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrlfile.dtx %<*driver|scrlfile|load> % \fi -\def\scrlfileversion{2007/12/18 v2.98} +\def\scrlfileversion{2008/07/09 v3.00} % \iffalse %</driver|scrlfile|load> %<*driver> @@ -677,27 +677,46 @@ \ifx\reserved@a\reserved@b \let\scr@saved@clearpage=\clearpage \renewcommand*{\clearpage}{\scr@saved@clearpage - \scr@hook@bcma\let\clearpage=\scr@saved@clearpage}% + \scr@hook@bcma + \scr@restore@newpage + \let\clearpage=\scr@saved@clearpage}% \fi% }% } % \end{macrocode} -% \begin{macro}{\scr@saved@checkend} -% \changes{v2.95}{2002/09/03}{new (internal)} +% \begin{macro}{\scr@saved@checkend} +% \changes{v2.95}{2002/09/03}{new (internal)} % You may see above, that we need a save-to macro. % \begin{macrocode} \newcommand*{\scr@saved@checkend}{} % \end{macrocode} -% \end{macro} -% \begin{macro}{\scr@hook@bcma} -% \changes{v2.95}{2002/09/03}{new (internal)} -% We also need a macro, that saves the commands at the hook and is -% extendable using \cs{g@addto@macro}. Here we also warn, if we detect -% one more \cs{newpage}\,---\,maybe at a \cs{clearpage} or -% \cs{cleardoublepage}. +% \end{macro} +% \begin{macro}{\scr@redefine@newpage} +% \changes{v3.00}{2008/07/09}{new (internal)} +% Some classes (e.g. \textsf{letter}) write output to the aux file. +% Because of this, redefinition of \cs{newpage} will only be done, if +% \cs{BeforeClosingMainAux} is used. +% \begin{macro}{\scr@saved@newpage} +% \changes{v3.00}{2008/07/09}{new (internal)} +% And \cs{newpage} will be restored after the hook. +% \begin{macro}{\scr@restore@newpage} % \begin{macrocode} -\newcommand*{\scr@hook@bcma}{% - \renewcommand*{\BeforeClosingMainAux}[1]{##1}% +\newcommand*{\scr@redefine@newpage}{% + \let\scr@saved@newpage\newpage + \def\scr@restore@newpage{% + \renewcommand*{\newpage}{% + \PackageWarningNoLine{% + scrlfile% + }{% + \string\newpage\space at main aux file!\MessageBreak + You have output material at the main aux file.\MessageBreak + Note, that the \string\BeforeClosingMainAux\space commands\MessageBreak + are processed before the output from aux file% + }% + \let\newpage\scr@saved@newpage + \newpage + }% + }% \renewcommand*{\newpage}{% \PackageError{% scrlfile% @@ -713,11 +732,30 @@ }% }% } +\newcommand*{\scr@restore@newpage}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\scr@hook@bcma} +% \changes{v2.95}{2002/09/03}{new (internal)} +% We also need a macro, that saves the commands at the hook and is +% extendable using \cs{g@addto@macro}. Here we also warn, if we detect +% one more \cs{newpage}\,---\,maybe at a \cs{clearpage} or +% \cs{cleardoublepage}. +% \begin{macrocode} +\newcommand*{\scr@hook@bcma}{} % \end{macrocode} % \end{macro} % Now we are able to write the user command. % \begin{macrocode} \newcommand*{\BeforeClosingMainAux}{% + \ifx\scr@hook@bcma\@empty + \gdef\scr@hook@bcma{% + \renewcommand*{\BeforeClosingMainAux}[1]{####1}% + \scr@redefine@newpage + }% + \fi \g@addto@macro\scr@hook@bcma% } % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/koma-script/scrlfile.ins b/Master/texmf-dist/source/latex/koma-script/scrlfile.ins index e0f1f15c4fe..df701c65f42 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrlfile.ins +++ b/Master/texmf-dist/source/latex/koma-script/scrlfile.ins @@ -1,6 +1,6 @@ % ====================================================================== % scrlfile.ins -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlfile.ins -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scrlogo.dtx b/Master/texmf-dist/source/latex/koma-script/scrlogo.dtx index 61cb1d3f524..46f439142c5 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrlogo.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrlogo.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % scrlogo.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlogo.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scrmain.ins b/Master/texmf-dist/source/latex/koma-script/scrmain.ins index 5ef001df84d..d6a53d0403b 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrmain.ins +++ b/Master/texmf-dist/source/latex/koma-script/scrmain.ins @@ -1,6 +1,6 @@ % ====================================================================== % scrmain.ins -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrmain.ins -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -46,10 +46,51 @@ % ---------- File generation ------------------------------------------- \generate{\usepreamble\defaultpreamble + \file{scrextend.sty}{% + \from{scrextend.dtx}{package,extend,prepare}% + \ifbeta\from{scrbeta.dtx}{package,extend}\fi + \from{scrkvers.dtx}{package,extend}% + \from{scrkbase.dtx}{load}% + \from{scrextend.dtx}{package,extend,option}% + \from{scrkcomp.dtx}{package,extend,option}% + \from{scrkmisc.dtx}{package,extend,option}% + \from{scrkfont.dtx}{package,extend,option}% +% \from{scrktare.dtx}{package,extend,option}% +% \from{scrkpar.dtx}{package,extend,option}% + \from{scrktitl.dtx}{package,extend,option}% + \from{scrksect.dtx}{package,extend,option}% + \from{scrkpage.dtx}{package,extend,option}% + \from{scrkfloa.dtx}{package,extend,option}% + \from{scrkftn.dtx}{package,extend,option}% +% \from{scrkliof.dtx}{package,extend,option}% +% \from{scrkbib.dtx}{package,extend,option}% +% \from{scrkidx.dtx}{package,extend,option}% + \from{scrklist.dtx}{package,extend,option}% + \from{scrkmisc.dtx}{package,extend,execoption}% + \from{scrkcomp.dtx}{package,extend,body}% + \from{scrkfont.dtx}{package,extend,body}% +% \from{scrktare.dtx}{package,extend,body}% +% \from{scrkpar.dtx}{package,extend,body}% + \from{scrktitl.dtx}{package,extend,body}% + \from{scrksect.dtx}{package,extend,body}% + \from{scrkmisc.dtx}{package,extend,body}% + \from{scrkpage.dtx}{package,extend,body}% + \from{scrkfloa.dtx}{package,extend,body}% + \from{scrkftn.dtx}{package,extend,body}% +% \from{scrkliof.dtx}{package,extend,body}% +% \from{scrkbib.dtx}{package,extend,body}% +% \from{scrkidx.dtx}{package,extend,body}% + \from{scrklist.dtx}{package,extend,body}% + \from{scrlogo.dtx}{logo}% + }% +} + +\generate{\usepreamble\defaultpreamble \file{scrbook.cls}{% \ifbeta\from{scrbeta.dtx}{class,book}\fi \from{scrkvers.dtx}{class,book}% \from{scrkbase.dtx}{load}% + \from{tocbasic.dtx}{load}% \from{scrkcomp.dtx}{class,book,option}% \from{scrkmisc.dtx}{class,book,option}% \from{scrklang.dtx}{class,book,option}% @@ -87,6 +128,7 @@ \ifbeta\from{scrbeta.dtx}{class,report}\fi \from{scrkvers.dtx}{class,report}% \from{scrkbase.dtx}{load}% + \from{tocbasic.dtx}{load}% \from{scrkcomp.dtx}{class,report,option}% \from{scrkmisc.dtx}{class,report,option}% \from{scrklang.dtx}{class,report,option}% @@ -124,6 +166,7 @@ \ifbeta\from{scrbeta.dtx}{class,article}\fi \from{scrkvers.dtx}{class,article}% \from{scrkbase.dtx}{load}% + \from{tocbasic.dtx}{load}% \from{scrkcomp.dtx}{class,article,option}% \from{scrkmisc.dtx}{class,article,option}% \from{scrklang.dtx}{class,article,option}% @@ -160,6 +203,27 @@ }% \generate{\usepreamble\defaultpreamble + \file{scrsize10pt.clo}{% + \ifbeta\from{scrbeta.dtx}{clo,10pt}\fi + \from{scrkvers.dtx}{clo,10pt}% + \from{scrkfont.dtx}{clo,10pt}% + \from{scrkpar.dtx}{clo,10pt}% + }% + \file{scrsize11pt.clo}{% + \ifbeta\from{scrbeta.dtx}{clo,11pt}\fi + \from{scrkvers.dtx}{clo,11pt}% + \from{scrkfont.dtx}{clo,11pt}% + \from{scrkpar.dtx}{clo,11pt}% + }% + \file{scrsize12pt.clo}{% + \ifbeta\from{scrbeta.dtx}{clo,12pt}\fi + \from{scrkvers.dtx}{clo,12pt}% + \from{scrkfont.dtx}{clo,12pt}% + \from{scrkpar.dtx}{clo,12pt}% + }% +}% + +\generate{\usepreamble\defaultpreamble \file{scrlttr2.cls}{% \ifbeta\from{scrbeta.dtx}{class,letter}\fi \from{scrkvers.dtx}{class,letter}% @@ -284,12 +348,22 @@ } \generate{\usepreamble\defaultpreamble + \file{scrbase.sty}{% + \ifbeta\from{scrbeta.dtx}{package,scrbase}\fi + \from{scrkvers.dtx}{package,scrbase}% + \from{scrkbase.dtx}{package,option,base}% + \from{scrklang.dtx}{package,option,base}% + \from{scrlfile.dtx}{load}% + \from{scrkbase.dtx}{package,body,base}% + \from{scrklang.dtx}{package,body,base}% + \from{scrlogo.dtx}{logo}% + }% \file{scrkbase.sty}{% \ifbeta\from{scrbeta.dtx}{package,scrkbase}\fi \from{scrkvers.dtx}{package,scrkbase}% - \from{scrkbase.dtx}{package,option}% + \from{scrkbase.dtx}{package,option,koma}% \from{scrlfile.dtx}{load}% - \from{scrkbase.dtx}{package,body}% + \from{scrkbase.dtx}{package,body,koma}% \from{scrlogo.dtx}{logo}% }% } diff --git a/Master/texmf-dist/source/latex/koma-script/scrpage.dtx b/Master/texmf-dist/source/latex/koma-script/scrpage.dtx index 45c5ee7fde1..f7da3b44bbc 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrpage.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrpage.dtx @@ -1,8 +1,8 @@ -% \CheckSum{2553} +% \CheckSum{2568} % \iffalse % ====================================================================== % scrpage.dtx -% Copyright (c) Markus Kohm, 1995-2007 +% Copyright (c) Markus Kohm, 1995-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrpage.dtx -% Copyright (c) Markus Kohm, 1995-2007 +% Copyright (c) Markus Kohm, 1995-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -62,10 +62,10 @@ %<scrpage>\NeedsTeXFormat{LaTeX2e}[1995/06/01] %<driver> \ProvidesFile{scrpage.drv} %<*scrpage> -%<v1>\ProvidesPackage{scrpage}[2006/03/29 v1.3d KOMA-Script +%<v1>\ProvidesPackage{scrpage}[2008/02/29 v1.3e KOMA-Script %<v2>\ProvidesPackage{scrpage2} %<*!v1> - [2007/07/23 v2.2e LaTeX2e KOMA-Script + [2008/02/14 v2.2f LaTeX2e KOMA-Script %</!v1> %<scrpage> package] %<*driver> @@ -129,10 +129,17 @@ % % \DescribeMacro % \headfont\\ -% This font is used to write pageheads and -foots. You may change it using +% This font is used to write page heads and foots. You may change it using % |\renewcommand|, e.g. |\renewcommand\headfont{\normalfont\slshape}|. % % \DescribeMacro +% \footfont\\ +% This font is used to write page foots different from page heads. You may +% change it using |\renewcommand|, +% e.g. |\renewcommand\footfont{\normalfont\slshape}|. Only availabe at +% \texttt{scrpage2}. +% +% \DescribeMacro % \headmark\\ % Using \texttt{twoside}-option this is |\leftmark| at left/even pages and % |\rightmark| at right/odd pages. Using \texttt{oneside}-option there are @@ -716,6 +723,7 @@ % chapter- and sectionmark} % \changes{v1.0b}{1995/05/25}{Use CJK at \cs{chaptermark}, % \cs{sectionmark} and \cs{subsectionmark}} +% \changes{v1.3e}{2008/02/29}{usage of \cs{if@mainmatter} fixed} % \changes{v2.0}{2001/04/20}{Version 2 uses \cs{automark} and % \cs{manualmark}, so star and non-star version are same} % \changes{v2.1a}{2002/10/30}{Use \cs{if@automark}} @@ -744,7 +752,7 @@ \markboth {\ifnum \c@secnumdepth >\z@% \if@mainmatter\sectionmarkformat\fi\fi ####1}{% \ifnum \c@secnumdepth >\z@% - \ifmainmatter\sectionmarkformat\fi\fi ####1}}% + \if@mainmatter\sectionmarkformat\fi\fi ####1}}% \def\subsectionmark####1{% \markright {\ifnum \c@secnumdepth >\@ne% \subsectionmarkformat\fi ####1}}% @@ -900,11 +908,14 @@ % \end{macro} % \end{macro} % \begin{macro}{\def@twosidefoot} -% \changes{v1.3}{2001/03/30}{Use of \cmd\@footwidth instead of -% \cmd\textwidth} % \changes{v2.0}{2001/04/20}{Thickness and length of the lines are % optional} +% \changes{v1.3}{2001/03/30}{Use of \cmd\@footwidth instead of +% \cmd\textwidth} +% \begin{macro}{\def@@twosidefoot} +% \begin{macro}{\def@@@twosidefoot} % \changes{v2.0j}{2001/08/18}{Use of \cs{scr@nouppercase}} +% \changes{v2.2f}{2008/02/14}{Use of \cs{footfont}} % And last twosided and onesided foot: % \begin{macrocode} %<*v2> @@ -926,17 +937,19 @@ \hss\hskip\@evenfootshift\vbox{\hsize=\@footwidth\relax \topfoot@rule{#1}{#2}\hb@xt@\@footwidth{{% %<v2> \scr@nouppercase - \headfont\strut #3}}% + \headfont\footfont\strut #3}}% \botfoot@rule{#6}{#7}}\hskip\@oddfootshift\hss}% \def\@oddfoot{\let\headmark\rightmark \hss\hskip\@oddfootshift\vbox{\hsize=\@footwidth\relax \topfoot@rule{#1}{#2}\hb@xt@\@footwidth{{% %<v2> \scr@nouppercase - \headfont\strut #4}}% + \headfont\footfont\strut #4}}% \botfoot@rule{#6}{#7}}\hskip\@evenfootshift\hss}% } % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % \begin{macro}{\def@onesidefoot} % \changes{v1.3}{2001/03/30}{Use of \cmd\@footwidth instead of % \cmd\textwidth} @@ -946,6 +959,7 @@ % \begin{macro}{\def@@onesidefoot} % \begin{macro}{\def@@@onesidefoot} % \changes{v2.0l}{2001/09/30}{\cs{vbox} bereits nach der Linie beendet} +% \changes{v2.2f}{2008/02/14}{Use of \cs{footfont}} % \begin{macrocode} %<*v2> \def\def@onesidefoot{% @@ -967,7 +981,7 @@ \hss\hskip\@oddfootshift\vbox{\hsize=\@footwidth\relax \topfoot@rule{#1}{#2}\hb@xt@\@footwidth{{% %<v2> \scr@nouppercase - \headfont\strut #5}} + \headfont\footfont\strut #5}} \botfoot@rule{#6}{#7}}\hskip\@evenfootshift\hss}% } % \end{macrocode} @@ -1705,7 +1719,7 @@ % of this macro may already be defined by a \textsf{KOMA}-script-class, we % have to do this, using |\providecommand| % \begin{macrocode} -\providecommand\pnumfont{\normalfont} +\providecommand*{\pnumfont}{\normalfont} % \end{macrocode} % \end{macro} % @@ -1713,12 +1727,36 @@ % There is also a macro used by |\@evenhead|, |\@oddhead| and |\@evenfoot|, % |\@oddfoot|: % \begin{macrocode} -\providecommand\headfont{\normalfont% +\providecommand*{\headfont}{\normalfont% %<v2> \slshape% } +%<*v2> +\def\scr@fnt@wrn@pagehead#1{% + `pagehead' is only an alias of `pageheadfoot'.\MessageBreak + Font of page foot may also be changed% +} +%</v2> % \end{macrocode} % \end{macro} % +% \begin{macro}{\footfont} +% \changes{v2.2f}{2008/02/14}{New} +% \begin{macro}{\scr@fnt@pagefoot} +% \changes{v2.2f}{2008/02/14}{New (internal)} +% \begin{macro}{\scr@fnt@wrn@pagefoot} +% \changes{v2.2f}{2008/02/14}{deactivated} +% There is also a macro used by |\@evenfoot|, |\@oddfoot| after |\headfont|: +% \begin{macrocode} +%<*v2> +\providecommand*{\footfont}{\normalfont} +\providecommand*{\scr@fnt@pagefoot}{\footfont} +\let\scr@fnt@wrn@pagefoot\relax +%</v2> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% % % \subsection{Length and thickness of lines at head and foot} % \begin{macro}{\setheadtopline} diff --git a/Master/texmf-dist/source/latex/koma-script/scrpage.ins b/Master/texmf-dist/source/latex/koma-script/scrpage.ins index d5d74744cc9..d887bee7d13 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrpage.ins +++ b/Master/texmf-dist/source/latex/koma-script/scrpage.ins @@ -1,6 +1,6 @@ % ====================================================================== % scrpage.ins -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrpage.ins -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scrsource.tex b/Master/texmf-dist/source/latex/koma-script/scrsource.tex index a93ffb48b15..4bbad53a922 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrsource.tex +++ b/Master/texmf-dist/source/latex/koma-script/scrsource.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrsource.tex -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrsource.tex -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -95,6 +95,7 @@ \DocInclude{scrkvers} \DocInclude{scrkbase} +% \DocInclude{tocbasic} \DocInclude{scrkmisc} \DocInclude{scrklang} \DocInclude{scrkfont} @@ -118,6 +119,7 @@ \DocInclude{scrklco} \DocInclude{japanlco} \DocInclude{scrkcile} + \DocInclude{scrextend} \PrintIndex \PrintChanges diff --git a/Master/texmf-dist/source/latex/koma-script/scrstrip.inc b/Master/texmf-dist/source/latex/koma-script/scrstrip.inc index ce325831d7f..626c68a3fca 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrstrip.inc +++ b/Master/texmf-dist/source/latex/koma-script/scrstrip.inc @@ -1,6 +1,6 @@ % ====================================================================== % scrstrip.inc -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrstrip.inc -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scrstrop.inc b/Master/texmf-dist/source/latex/koma-script/scrstrop.inc index 56986db999e..9dc63178f3d 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrstrop.inc +++ b/Master/texmf-dist/source/latex/koma-script/scrstrop.inc @@ -1,6 +1,6 @@ % ====================================================================== % scrstrop.inc -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrstrop.inc -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scrtime.dtx b/Master/texmf-dist/source/latex/koma-script/scrtime.dtx index 1cd9fc550cd..49a6fd6f05d 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrtime.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrtime.dtx @@ -2,7 +2,7 @@ % \iffalse % ====================================================================== % scrtime.dtx -% Copyright (c) Markus Kohm, 1995-2007 +% Copyright (c) Markus Kohm, 1995-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrtime.dtx -% Copyright (c) Markus Kohm, 1995-2007 +% Copyright (c) Markus Kohm, 1995-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/scrtime.ins b/Master/texmf-dist/source/latex/koma-script/scrtime.ins index 7e5e44dcf34..4af103544d6 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrtime.ins +++ b/Master/texmf-dist/source/latex/koma-script/scrtime.ins @@ -1,6 +1,6 @@ % ====================================================================== % scrtime.ins -% Copyright (c) Markus Kohm, 1994-2007 +% Copyright (c) Markus Kohm, 1994-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrtime.ins -% Copyright (c) Markus Kohm, 1994-2007 +% Copyright (c) Markus Kohm, 1994-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/tocbasic.dtx b/Master/texmf-dist/source/latex/koma-script/tocbasic.dtx new file mode 100644 index 00000000000..b75ceb7e0e2 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/tocbasic.dtx @@ -0,0 +1,1770 @@ +% \CheckSum{645} +% \iffalse meta-comment +% ====================================================================== +% tocbasic.dtx +% Copyright (c) Markus Kohm, 2008 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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 files `tocbasic.dtx' and `scrlogo.dtx' at least. +% +% To create `tocbasic.sty' run `tex tocbasic.dtx'. Using LaTeX instead +% of TeX would generate the implementation documentation. +% ---------------------------------------------------------------------- +% tocbasic.dtx +% Copyright (c) Markus Kohm, 2008 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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 mindestens aus den Dateien `tocbasic.dtx' und +% `scrlogo.dtx'. +% +% `tocbasic.sty' kann durch den Aufruf `tex tocbasic.dtx' erzeugt +% werden. Bei Verwendung von LaTeX statt TeX wird hingegen die +% Implementierungsdokumentation erzeugt. +% ====================================================================== +% \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: tocbasic.dtx +%<*dtx|package|driver|doc|load> +% \fi +\def\tocbasicversion{2008/10/06 v1.0} +% \iffalse +%</dtx|package|driver|doc|load> +%<*dtx> +\def\LaTeXformat{LaTeX2e} +\ifx\fmtname\LaTeXformat\def\MainBodyWork{% +\ProvidesFile{tocbasic.dtx} +%</dtx> +%<package>\NeedsTeXFormat{LaTeX2e}[1995/06/01] +%<driver>\ProvidesFile{tocbasic.drv} +%<doc>\ProvidesFile{tocbasic.tex} +%<package>\ProvidesPackage{tocbasic} +%<*dtx|package|driver|doc> + [\tocbasicversion +%</dtx|package|driver|doc> +%<driver> (driver)% +%<package> (package)% +%<doc> (manual)% +%<*dtx> + (dtx)% +%</dtx> +%<*dtx|package|driver|doc> + ] +%</dtx|package|driver|doc> +%<*dtx|driver> +\IfFileExists{scrdoc.cls}{% + \documentclass[halfparskip-]{scrdoc} +}{% + \documentclass{ltxdoc} + \DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em% + M\kern.05em A\kern.1em-\kern.1em Script}} +} +\usepackage[latin1]{inputenc} +\usepackage[english]{babel} +\usepackage{listings} +\lstset{breaklines,prebreak=\mbox{$\hookleftarrow$},language=[LaTeX]TeX, + basicstyle=\small} +\CodelineIndex +\RecordChanges +\GetFileInfo{tocbasic.dtx} +\sloppy +\DocInput{\filename} +\end{document} +%</dtx|driver> +%<*dtx> +}% +\else + \let\MainBodyWork\relax +\fi + +\MainBodyWork + +\def\batchfile{tocbasic.dtx} +%</dtx> +%<ins>\def\batchfile{tocbasic.ins} +%<*dtx|ins> +\input docstrip.tex + +\let\ifbeta=\iffalse + +\ifToplevel{\ifx\generate\undefined + \errhelp{Install a new version of docstrip.} + \errmessage{Old docstrip in input path} + \batchmode + \csname @@end\endcsname + \fi + \Msg{************************************************************} + \Msg{*} + \Msg{* KOMA-Script} + \Msg{* a versatile LaTeX2e bundle} + \Msg{*} + \Msg{* This is `\batchfile', a batchfile to unpack some or all} + \Msg{* parts of KOMA-Script. See `liesmich.txt' (german) or} + \Msg{* `readme.txt' (english) for additional information.} + \Msg{*} + \Msg{* Files of an old KOMA-Script installation may be} + \Msg{* overwritten without asking!} + \Msg{*} + \Msg{************************************************************} +} + +% ---------- some docstrip switchs ------------------------------------- + +\ifToplevel{% + \keepsilent + \askforoverwritefalse +} + +% ---------- defining preambles ---------------------------------------- + +\preamble + +Copyright (c) 2007-2008 +Markus Kohm and any individual authors listed elsewhere in this file. + +This file was generated from file(s) of the KOMA-Script bundle. +--------------------------------------------------------------- + +This work may be distributed and/or modified under the conditions of +the LaTeX Project Public License, version 1.3b of the license. +The latest version of this license is in + http://www.latex-project.org/lppl.txt +and version 1.3b 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 file may only be distributed together with the files +`scrlogo.dtx' and `tocbasic.dtx'. You may however distribute the files +`scrlogo.dtx' and `tocbasic.dtx' without this file. +See also `tocbasic.dtx' for additional information. + +If this file is a beta version, you are not allowed to distribute it. + +Currently there is only a short english manual at `tocbasic.dtx', that +should also be found as `tocbasic.pdf'. + +The KOMA-Script bundle (but maybe not this file) was based upon the +LaTeX2.09 Script family created by Frank Neukam 1993 and the LaTeX2e +standard classes created by The LaTeX3 Project 1994-1996. + +\endpreamble + +% ---------- File generation ------------------------------------------- + +\generate{\usepreamble\defaultpreamble + \file{tocbasic.ins}{% + \from{tocbasic.dtx}{ins}% + }% +% \file{tocbasic.drv}{% +% \from{tocbasic.dtx}{driver}% +% }% + \file{tocbasic.tex}{% + \from{tocbasic.dtx}{doc}% + }% +} + +\generate{\usepreamble\defaultpreamble + \file{tocbasic.sty}{% + \ifbeta\from{scrbeta.dtx}{package,tocbasic}\fi + \from{tocbasic.dtx}{package}% + \from{scrlogo.dtx}{logo}% + }% +}% + +% ---------- end of docstrip process ----------------------------------- + +\ifToplevel{% + \Msg{************************************************************} + \Msg{*} + \Msg{* KOMA-Script} + \Msg{* a versatile LaTeX2e bundle} + \Msg{*} + \Msg{* To finish the installation you have to move some} + \Msg{* files into a directory searched by TeX.} + \Msg{* See INSTALL.TXT (english) or INSTALLD.TXT (german)} + \Msg{* from KOMA-Script bundle for additional information.} + \Msg{*} + \Msg{* You may also produce the implementation documentation} + \Msg{* including also a short version of the english manual.} + \Msg{* To produce it, do} + \Msg{* \space\space pdflatex tocbasic.dtx} + \Msg{* \space\space mkindex tocbasic} + \Msg{* \space\space pdflatex tocbasic.dtx} + \Msg{* after finishing the installation.} + \Msg{*} + \Msg{* Happy TeXing} + \Msg{*} + \Msg{************************************************************} +} + +\bye +%</dtx|ins> +%<*dtx> +% \fi +% +% \providecommand*{\DescribeCounter}{\DescribeMacro} +% \let\Macro\cs +% \let\Class\textsf +% \let\Package\textsf +% \let\File\texttt +% \let\Parameter\marg +% \let\OParameter\oarg +% \let\PName\meta +% \let\PValue\texttt +% \newenvironment{Example}{\quote +% \hspace*{-\leftmargin}\textbf{Example:}\enskip\ignorespaces +% }{\endquote} +% \newlength\descwidth +% \newenvironment{desctabular}{ +% \setlength{\descwidth}{\linewidth} +% \addtolength{\descwidth}{-1em} +% \addtolength{\descwidth}{-2\tabcolsep} +% \tabular{@{}lp{\descwidth}@{}} +% \hline +% }{% +% \hline +% \endtabular +% } +% \newcommand{\pventry}[2]{\multicolumn{2}{@{}l@{}}{\PValue{#1}}\\ +% ~ & #2 \\ } +% \providecommand*{\autoref}[1]{\expandafter\AUTOREF#1:} +% \newcommand*{\AUTOREF}{} +% \makeatletter +% \def\AUTOREF#1:#2:{\edef\@tempa{#1}\edef\@tempb{tab}\ifx\@tempa\@tempb +% table~\fi +% \edef\@tempb{sec}\ifx\@tempa\@tempb section~\fi +% \ref{#1:#2}} +% \makeatother +% +% \begin{document} +% \title{\KOMAScript{} \partname\ \texttt{\filename}% +% \thanks{Diese Datei ist Version \fileversion\ von \texttt{\filename}.}} +% \date{\filedate} +% \author{Markus Kohm\thanks{mailto:komascript(at)gmx.info}} +% \maketitle +% \begin{abstract} +% \iffalse +%</dtx> +%<*doc> + +\chapter{Package \Package{tocbasic} for Class and Package Authors} +\labelbase{tocbasic} + +\textsc{Note: This is only a short version of the documentation. The german + \KOMAScript{} guide does contain a long version with usefull examples, that + should also be translated!} + +%</doc> +%<*doc|dtx> +% \fi +If a package creates it's list ``list of something''---something like ``list +of figures'', ``list of tables'', ``list of listings'', ``list of +algorithms'', etc. also known as \emph{toc-files}---have to do some +operations, that are equal for all those packages. Also it may be usefull +for classes and other packages to know about these additional +toc-files. This packages implements some basic functionality for all those +packages. Using this package will also improve compatibility with +\KOMAScript{} and---let us hope---other classes and packages. +% \iffalse +%<*dtx> +% \fi +% \end{abstract} +% +% \tableofcontents +% +% \iffalse +%</dtx> +% \fi +% + +\section{Legal Note} +\label{sec:tocbasic.legalnote} + +You are allowed to destribute this part of \KOMAScript{} without the main +part of \KOMAScript{}. The files ``\File{scrlogo.dtx}'' and +``\File{tocbasic.dtx}'' may be distributed together under the conditions +of the \LaTeX{} Project Public License, either version~1.3b of this license +or (at your option) any later version. + +The latest version of this license is in +\mbox{http://www.latex-project.org/lppl.txt} and version~1.3b or later is +part of all distributions of \LaTeX{} version~2005/12/01 or later. + +% \iffalse +%<*dtx> +% \fi +% \KOMAScript{} comes with a detailed manual in English and German. But for +% this package theres currently only this short English manual, because this +% package should be used by package authors, not users. +% +% The \KOMAScript{} bundle may be found at +% CTAN:/\mbox{macros}/\linebreak[3]\mbox{latex}/\linebreak[3]\mbox{contrib}/% +% \linebreak[3]\mbox{koma-script}/. +% ``CTAN:'' is a shortcut for every ``tex-archive'' directory at every +% CTAN-server or CTAN-mirror. See \mbox{http://www.ctan.org} for a list of all +% those servers and mirrors. +% \iffalse +%</dtx> +% \fi + +\section{Using Package \Package{tocbasic}} +\label{sec:tocbasic.usage} + +This package was made to be used by class and package authors. Because of +this the package has no options. If different packages would load it with +different options a option clash would be the result. So using options +would'nt be a good idea. + +There are two kind of commands. The first kind are basic command. Those +are used to inform other packages about the extensions used for files that +represent a list of something. Classes or packages may use this information +e.g, for putting something to every of those files. Packages may also ask, +if an extension is already in use. This does even work, if \Macro{nofiles} +was used. The second kind are commands to create the list of something. + + +\subsection{Basic Commands} +\label{sec:tocbasic.basics} + +Basic commands are used to handle a list of all extensions known for files +representing a list of something. Entries to such files are written using +\Macro{addtocontents} or \Macro{addcontentsline} typically. There are also +commands to do something for all known extensions. And there are commands to +set or unset features of an extension or the file represented by the +extension. Typically an extension also has an owner. This owner may be a +class or package or a term decided by the author of the class or package +using \Package{tocbasic}, e.g., \KOMAScript{} uses the owner \texttt{float} +for list of figures ans list of tables and the default owner for the table of +contents. + +% \iffalse +\begin{Declaration} + \Macro{ifattoclist}\Parameter{extension}\Parameter{true + part}\Parameter{false part} +\end{Declaration} +\BeginIndex{Cmd}{ifattoclist}% +This command +%<*dtx> +%\fi +\DescribeMacro{\ifattoclist} +Command \Macro{ifattoclist}\Parameter{extension}\Parameter{true + part}\Parameter{false part} +% \iffalse +%</dtx> +% \fi +may be used to ask, wether a \PName{extension} is already a known extension or +not. If the \PName{extension} is already known the \PName{true part} will be +used, otherwise the \PName{false part} will be used. +\begin{Example} + Maybe you want to know if the extension ``\File{foo}'' is already in use to + report an error, if you can not use it: + \begin{lstlisting} + \ifattoclist{foo}{% + \PackageError{bar}{% + extension `foo' already in use% + }{% + Each extension may be used only + once.\MessageBreak + The class or another package already + uses extension `foo'.\MessageBreak + This error is fatal!\MessageBreak + You should not continue!}% + }{% + \PackageInfo{bar}{using extension `foo'}% + } + \end{lstlisting} +\end{Example} +% \iffalse +\EndIndex{Cmd}{ifattoclist}% + +\begin{Declaration} + \Macro{addtotoclist}\OParameter{owner}\Parameter{extension} +\end{Declaration} +\BeginIndex{Cmd}{addtotoclist}% +This command +%<*dtx> +%\fi +\DescribeMacro{\addtotoclist} +Command \Macro{addtotoclist}\OParameter{owner}\Parameter{extension} +% \iffalse +%</dtx> +% \fi +adds the \PName{extension} to the list of known extensions. If the optional +argument, \OParameter{owner}, was given this \PName{owner} will be stored to +be the owner of the \PName{extension}. If you omit the optional argument, +\Package{tocbasic} tries to find out the filename of the current processed +class or package and stores this as owner. This will fail if +\Macro{addtotoclist} was not used, loading a class or package but using a +command of a class or package after loading this class or package. In this +case the owner will be set to ``\PValue{.}''. Note that an empty +\PName{owner} is not the same like omitting the optional argument, but an +empty owner. + +\begin{Example} + You want to add the extension ``\File{foo}'' to the list of known extension, + while loading your package with file name ``\File{bar.sty}'': + \begin{lstlisting} + \addtotoclist{foo} + \end{lstlisting}% + This will add the extension ``\PValue{foo}'' with owner ``\PValue{bar.sty}'' + to the list of known extensions, if it was not already at the list of known + extensions. If the class or another package already added the extension you + will get the error: + \begin{lstlisting} + Package tocbasic Error: file extension `#2' cannot be used twice + + See the tocbasic package documentation for explanation. + Type H <return> for immediate help. + \end{lstlisting} + and after typing \texttt{H <return>} you will get the help: + \begin{lstlisting} + File extension `foo' is already used by a toc-file, while bar.sty + tried to use it again for a toc-file. + This may be either an incompatibility of packages, an error at a package, + or a mistake by the user. + \end{lstlisting} + + Maybe you package has a command, that creates list of files dynamically. In + this case you should use the optional argument of \Macro{addtotoclist} to + set the owner. + \begin{lstlisting} + \newcommand*{\createnewlistofsomething}[1]{% + \addtotoclist[bar.sty]{#1}% + % Do something more to make this list of something available + } + \end{lstlisting} + If the user calls know, e.g. + \begin{lstlisting} + \createnewlistofsomething{foo} + \end{lstlisting} + this would add the extension ``\PValue{foo}'' with the owner + ``\PValue{bar.sty}'' to the list of known extension or report an error, if the + extension is already in use. You may use any owner you want. But it should + be unique! So, if you are the author of package \Package{float} you may + use for example owner ``\PValue{float}'' instead of owner + ``\PValue{float.sty}'', so the \KOMAScript{} options for list of figure and + list of table will also handle the lists of this package, that are already + added to the known extensions, when the option is used. +\end{Example} +% \iffalse +\EndIndex{Cmd}{addtotoclist}% + +\begin{Declaration} + \Macro{AtAddToTocList}\OParameter{owner}\Parameter{commands} +\end{Declaration} +\BeginIndex{Cmd}{AtAddToTocList}% +This command +%<*dtx> +%\fi +\DescribeMacro{\AtAddtoTocList} +Command \Macro{AtAddToTocList}\OParameter{owner}\Parameter{commands} +% \iffalse +%</dtx> +% \fi +adds the \PName{commands} to a internal list of commands, that should be +processed, if a toc-file with the given \PName{owner} will be added to the +list of known extensions using \Macro{addtoloclist}. If you omit the optional +argument, \Package{tocbasic} tries to find out the filename of the current +processed class or package and stores this as owner. This will fail if +\Macro{AtAddToTocList} was not used, loading a class or package but using a +command of a class or package after loading this class or package. In this +case the owner will be set to ``\PValue{.}''. Note that an empty +\PName{owner} is not the same like omitting the optional argument. With an +empty \PName{owner} you may add \Parameter{commands}, that will be processed +at every succefull \Macro{addtotoclist}, after processing the commands for the +indivdual owner. While processing the \PValue{commands}, \Macro{@currext} wil +be set to the extension of the currently added extension. +\begin{Example} +\Package{tocbasic} itself uses +\begin{lstlisting} + \AtAddToTocList[]{% + \expandafter\tocbasic@extend@babel + \expandafter{\@currext}% + } +\end{lstlisting} +to add every extension to the \Package{tocbasic}-internal babel handling of +toc-files. The \Macro{expandafter} are needed, because the argument of +\Macro{tocbasic@extend@babel} has to expanded! See the description of +\Macro{tocbasic@extend@babel} at \autoref{sec:tocbasic.internals}% +% \iffalse +, \autopageref{desc:tocbasic.cmd.tocbasic@extend@babel} +% \fi +for more information. +\end{Example} +% \iffalse +\EndIndex{Cmd}{AtAddToTocList}% + +\begin{Declaration} + \Macro{removefromtoclist}\OParameter{owner}\Parameter{extension} +\end{Declaration} +\BeginIndex{Cmd}{removefromtoclist}% +This command +%<*dtx> +%\fi +\DescribeMacro{\removefromtoclist} +Command \Macro{removefromtotoclist}\OParameter{owner}\Parameter{extension} +% \iffalse +%</dtx> +% \fi +removes the \PName{extension} from the list of known extensions. If the +optional argument, \OParameter{owner}, was given the \PName{extension} will +only be removed, if it was added by this \PName{owner}. If you omit the +optional argument, \Package{tocbasic} tries to find out the filename of the +current processed class or package and use this as owner. This will fail if +\Macro{removefromtoclist} was not used, loading a class or package but using a +command of a class or package after loading this class or package. In this +case the owner will be set to ``\PValue{.}''. Note that an empty +\PName{owner} is not the same like omitting the optional argument, but removes +the \PName{extension} without any owner test. +% \iffalse +\EndIndex{Cmd}{removefromtoclist}% + +\begin{Declaration} + \Macro{doforeachtocfile}\OParameter{owner}\Parameter{commands} +\end{Declaration} +\BeginIndex{Cmd}{doforeachtocfile}% +This command +%<*dtx> +% \fi +\DescribeMacro{\doforeachtocfile} +Command \Macro{doforeachtocfile}\OParameter{owner}\Parameter{commands} +% \iffalse +%</dtx> +% \fi +processes \PName{commands} for every known toc-file of the given +\PName{owner}. While processing the \PName{commands} \Macro{@currext} ist the +extension of the current toc-file for every known toc-file. If you omit the +optional argument, \OParameter{owner}, every known toc-file will be used. If +the optional argument is empty, only toc-files with an empty owner will be +used. +\begin{Example} + If you want to type out all known extensions, you may simply write: + \begin{lstlisting} + \doforeachtocfile{\typeout{\@currext}} + \end{lstlisting} + and if only the extensions of owner ``\PValue{foo}'' should be typed out: + \begin{lstlisting} + \doforeachtocfile[foo]{\typeout{\@currext}} + \end{lstlisting} +\end{Example} +% \iffalse +\EndIndex{Cmd}{doforeachtocfile}% + +%<*dtx> +% \fi +\DescribeMacro{\tocbasicautomode} +Command +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{tocbasicautomode} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{tocbasicautomode}% +This command +% \fi +redefines \LaTeX{} kernel macro \Macro{@starttoc} to add all not yet added +extensions to the list of known extensions and use \Macro{tocbasic@starttoc} +instead of \Macro{@starttoc}. +% \iffalse +\EndIndex{Cmd}{tocbasicautomode}% +% \fi + +\subsection{Creating a List of Something} +\label{sec:tocbasic.more} + +At the previous section you've seen commands to handle a list of known +extensions and to trigger commands while adding a new extension to this +list. You've also seen a command to do something for all known extensions or +all known extensions of one owner. In this section you will see commands to +handle the file corresponding with an extension or the list of known +extensions. + +% \iffalse +\begin{Declaration} + \Macro{addtoeachtocfile}\OParameter{owner}\Parameter{contents} +\end{Declaration} +\BeginIndex{Cmd}{addtoeachtocfile}% +This command +%<*dtx> +% \fi +\DescribeMacro{\addtoeachtocfile} +Command \Macro{addtoeachtocfile}\OParameter{owner}\Parameter{contents} +% \iffalse +%</dtx> +% \fi +writes \PName{contents} to every known toc-file of \PName{owner}. If you omit +the optional argument, \PName{contents} it written to every known +toc-file. While writing the contents, \Macro{@currext} is the extension of +the currently handled toc-file. +\begin{Example} + You may add a vertical space of one text line to all toc-files. + \begin{lstlisting} + \addtoeachtocfile{% + \protect\addvspace{\protect\baselineskip}% + } + \end{lstlisting} + And if you want to do this, only for the toc-files of owner + ``\PValue{foo}'': + \begin{lstlisting} + \addtoeachtocfile[foo]{% + \protect\addvspace{\protect\baselineskip}% + } + \end{lstlisting} +\end{Example} +% \iffalse +\EndIndex{Cmd}{addtoeachtocfile}% + +\begin{Declaration} + \Macro{addcontentslinetoeachtocfile}\OParameter{owner}\Parameter{level}% + \Parameter{contentsline} +\end{Declaration} +\BeginIndex{Cmd}{addcontentslinetoeachtocfile}% +This command +%<*dtx> +% \fi +\DescribeMacro{\addcontentslinetoeachfile} +Command \Macro{addcontentslinetoeachtocfile}\OParameter{owner}%^^A +\Parameter{level}\Parameter{contentsline} +% \iffalse +%</dtx> +% \fi +is something like \Macro{addcontentsline} not only for one file, but all known +toc-files or all known toc-files of a given owner. +\begin{Example} + You are a class author and want to write the chapter entry not only to the + table of contents toc-file but to all toc-files, while \texttt{\#1} is the + title, that should be written to the files. + \begin{lstlisting} + \addcontentslinetoeachtocfile{chapter}{% + \protect\numberline{\thechapter}#1} + \end{lstlisting} +\end{Example} +% \iffalse +\EndIndex{Cmd}{addcontentslinetoeachtocfile}% + +%<*dtx> +% \fi +\DescribeMacro{\listoftoc} +\DescribeMacro{\listoftoc*} +Commands +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{listoftoc*}\Parameter{extension} +% \iffalse +\\ +%<*dtx> +% \fi +and +% \iffalse +%</dtx> +% \fi + \Macro{listoftoc}\OParameter{list of title}\Parameter{extension} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{listoftoc*}% +\BeginIndex{Cmd}{listoftoc}% +This commands +% \fi +may be used to set the ``list of'' of a toc-file. The star version +\Macro{listoftoc*} needs only one argument, the extension of the toc-file. It +does setup the vertical and horizontal spacing of paragraphs, calls before and +after hooks and reads the toc-file. You may use it as direct replacement of +the \LaTeX{} kernel macro \Macro{@starttoc}. + +The version without star, sets the whole toc-file with title, optional table +of contents entry, and running heads. If the optional argument +\OParameter{list of title} was given, it will be used as title term, optional +table of contents entry and running head. Note: If the optional argument is +empty, this term will be empty, too! If you omit the optional argument, but +\Macro{listof\PName{extension}name} was defined, that will be used. + +\begin{Example} + You have a new ``list of algorithms'' with extension \PValue{loa} and want to + show it. + \begin{lstlisting} + \listof[list of algorithm]{loa} + \end{lstlisting} + Maybe you want, that the ``list of algorithms'' will create an entry at the + table of contents. You may set + \begin{lstlisting} + \setuptoc{loa}{totoc} + \end{lstlisting} + But maybe the ``list of algorithms'' should not be set with a title. So you + may use + \begin{lstlisting} + \listof*{loa} + \end{lstlisting} + Note that in this case no entry at the table of contents will be created, + even if you'd used the setup command above. +\end{Example} + +The default heading new following features using \Macro{setuptoc}: +\begin{description} +\item[\texttt{totoc}] writes the title of the list of to the table of contents +\item[\texttt{numbered}] uses a numbered headings for the list of +\item[\texttt{leveldown}] uses not the top level heading (e.g., \Macro{chapter} + with book) but the first sub level (e.g., \Macro{section} with book). +\end{description} +% \iffalse +\EndIndex{Cmd}{listoftoc*}% +\EndIndex{Cmd}{listoftoc}% + +%<*dtx> +% \fi +\DescribeMacro{\BeforeStartingTOC} +\DescribeMacro{\AfterStartingTOC} +The Commands +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{BeforeStartingTOC}\OParameter{extension}\Parameter{commands} +% \iffalse +\\ +%<*dtx> +% \fi +and +% \iffalse +%</dtx> +% \fi + \Macro{AfterStartingTOC}\OParameter{extension}\Parameter{commands} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{BeforeStartingTOC}% +\BeginIndex{Cmd}{AfterStartingTOC}% +This commands +% \fi +may be used to process \PName{commands} before or after loading the toc-file +with given \PName{extension} using \Macro{listoftoc*} or \Macro{listoftoc}. If +you omit the optional argument (or set an empty one) the general hooks will be +set. The general before hook will be called before the individuel one and the +general after hook will be called after the individuel one. While calling the +hooks \Macro{@currext} is the extension of the toc-file and should not be +changed. +% \iffalse +\EndIndex{Cmd}{AfterStartingTOC}% +\EndIndex{Cmd}{BeforeStartingTOC}% + +%<*dtx> +% \fi +\DescribeMacro{\BeforeTOCHead} +\DescribeMacro{\AfterTOCHead} +The Commands +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{BeforeTOCHead}\OParameter{extension}\Parameter{commands} +% \iffalse +\\ +%<*dtx> +% \fi +and +% \iffalse +%</dtx> +% \fi + \Macro{AfterTOCHead}\OParameter{extension}\Parameter{commands} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{BeforeTOCHead}% +\BeginIndex{Cmd}{AfterTOCHead}% +This commands +% \fi +may be used to process \PName{commands} before or after setting the title of a +toc-file with given \PName{extension} using \Macro{listoftoc*} or +\Macro{listoftoc}. If you omit the optional argument (or set an empty one) the +general hooks will be set. The general before hook will be called before the +individuel one and the general after hook will be called after the individuel +one. While calling the hooks \Macro{@currext} is the extension of the toc-file +and should not be changed. +% \iffalse +\EndIndex{Cmd}{AfterTOCHead}% +\EndIndex{Cmd}{BeforeTOCHead}% + +%<*dtx> +% \fi +\DescribeMacro{\listofeachtoc} +Command +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{listofeachtoc}\OParameter{owner} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{listofeachtoc}% +This command +% \fi +sets all toc-files or all toc-files of the given \PName{owner} using +\Macro{listoftoc}. You should have defined +\Macro{listof\PName{extension}name} for each toc-file, otherwise you'll get a +warning. +% \iffalse +\EndIndex{Cmd}{listofeachtoc}% + +%<*dtx> +% \fi +\DescribeMacro{\MakeMarkcase} +Command +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{MakeMarkcase} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{MakeMarkcase}% +This command +% \fi +will be used to change the case of the letters at the running +head. The default is, to use \Macro{@firstofone} for \KOMAScript{} classes and +\Macro{MakeUppercase} for all other classes. If you are the class author you +may define \Macro{MakeMarkcase} on your own. If \Package{scrpage2} or another +package, that defines \Macro{MakeMarkcase} will be used, \Package{tocbasci} +will not overwrite that Definition. +% \iffalse +\EndIndex{Cmd}{MakeMarkcase}% + +%<*dtx> +% \fi +\DescribeMacro{\deftocheading} +Command +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{deftocheading}\Parameter{extension}\Parameter{definition} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{deftocheading}% +This command +% \fi +defines a heading command, that will be used instead of the +default heading using \Macro{listoftoc}. The heading command has exactly one +argument. You may reference to that argument using \texttt{\#1} at your +\PName{defintion}. +% \iffalse +\EndIndex{Cmd}{deftocheading}% + +%<*dtx> +% \fi +\DescribeMacro{\setuptoc} +\DescribeMacro{\unsettoc} +The Commands +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{setuptoc}\Parameter{extension}\Parameter{featurelist} +% \iffalse +\\ +%<*dtx> +% \fi +and +% \iffalse +%</dtx> +% \fi + \Macro{unsettoc}\Parameter{extension}\Parameter{featurelist} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{setuptoc}% +\BeginIndex{Cmd}{unsettoc}% +This commands +% \fi +set up and unset features binded to an \PName{extension}. The +\PName{featurelist} is a comma seperated list of single +features. \Package{tocbasic} does know following features: +\begin{description} +\item[\texttt{totoc}] writes the title of the list of to the table of contents +\item[\texttt{numbered}] uses a numbered headings for the list of +\item[\texttt{leveldown}] uses not the top level heading (e.g., \Macro{chapter} + with book) but the first sub level (e.g., \Macro{section} with book). +\item[\texttt{nobabel}] prevents the extension to be added to the babel + handling of toc-files. To make this work, you have to set the feature + before adding the extension to the list of known extension. +\end{description} +Classes and packages may know features, too, e.g, the \KOMAScript{} classes +know following additional features: +\begin{description} +\item[\texttt{chapteratlist}] activates special code to be put into the list + at start of a new chapter. This code may either be vertical space or the + heading of the chapter. +\end{description} +% \iffalse +\EndIndex{Cmd}{unsettoc}% +\EndIndex{Cmd}{setuptoc}% + +%<*dtx> +% \fi +\DescribeMacro{\iftocfeature} +Command +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{iftocfeature}\Parameter{extension}\Parameter{feature}%^^A + \Parameter{true-part}\Parameter{false-part} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{iftocfeature}% +This command +% \fi +may be used, to test, if a \PName{feature} was set for \PName{extension}. If +so the \PName{true-part} will be processed, otherwise the \PName{false-part} +will be. +% \iffalse +\EndIndex{Cmd}{iftocfeature}% +% \fi + + +\subsection{Internal Commands for Class and Package Authors} +\label{sec:tocbasic.internals} + +Commands with prefix \Macro{tocbasic@} are internal but class and package +authors may use them. But even if you are a class or package author you +should not change them! + +% \iffalse +%<*dtx> +% \fi +\DescribeMacro{\tocbasic@extend@babel} +Command +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{tocbasic@extend@babel}\Parameter{extension} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@extend@babel}% +This command +% \fi +extends the babel handling of toc-files. By default babel writes language +selections only to \PValue{toc}, \PValue{lot} and +\PValue{lof}. \Package{tocbasic} adds every \PName{extension} added to the +list of known extensions (see \Macro{addtotoclist}, \autoref{sec:tocbasic.basics}% +% \iffalse +, \autopageref{desc:tocbasic.cmd.addtotoclist}% +% \fi +) using \Macro{tocbasic@extend@babel}. Note: This should be called only once +per \PName{extension}. \Macro{tocbasic@extend@babel} does nothing, if the +feature \PValue{nobabel} was set for \PName{extension} before using +\Macro{addtotoclist}. +% \iffalse +\EndIndex{Cmd}{tocbasic@extend@babel}% + +%<*dtx> +% \fi +\DescribeMacro{\tocbasic@starttoc} +Command +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{tocbasic@starttoc}\Parameter{extension} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@starttoc} +This command is something like the \LaTeX{} kernel macro \Macro{@starttoc}, +but does some additional settings before using \Macro{@starttoc}. It does set +\Macro{parskip} zu zero, \Macro{parindent} to zero, \Macro{parfillskip} to +zero plus one fil, \Macro{@currext} to the \PName{extension}, and processes +hooks before and after reading the toc-file. +\EndIndex{Cmd}{tocbasic@starttoc} +% \fi +% + + +% \iffalse +%<*dtx> +% \fi +\DescribeMacro{\tocbasic@@before@hook} +\DescribeMacro{\tocbasic@@after@hook} +\def\\{ and }%^^A +Macros +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{tocbasic@@before@hook}\\ + \Macro{tocbasic@@after@hook} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@@before@hook}% +\BeginIndex{Cmd}{tocbasic@@after@hook}% +This macros +% \fi +are processed before and after loading a toc-file. If you don't use +\Macro{listoftoc} or \Macro{listoftoc*} or \Macro{tocbasic@starttoc} to load +the toc-file, you should call these, too. But you should not redefine them! +% \iffalse +\EndIndex{Cmd}{tocbasic@@before@hook}% +\EndIndex{Cmd}{tocbasic@@after@hook}% + +%<*dtx> +% \fi +\DescribeMacro{\tocbasic@\PName{extension}@before@hook} +\DescribeMacro{\tocbasic@\PName{extension}@after@hook} +\def\\{ and }%^^A +Macros +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{tocbasic@\PName{extension}@before@hook}\\ + \Macro{tocbasic@\PName{extension}@after@hook} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@\PName{extension}@before@hook}% +\BeginIndex{Cmd}{tocbasic@\PName{extension}@after@hook}% +This macros +% \fi +are processed before and after loading a toc-file. If you don't use +\Macro{listoftoc} or \Macro{listoftoc*} or \Macro{tocbasic@starttoc} to load +the toc-file, you should call these, too. But you should not redefine them! +The first macro is processed just before \Macro{tocbasic@@before@hook}, the +second one just after \Macro{tocbasic@@after@hook} +% \iffalse +\EndIndex{Cmd}{tocbasic@\PName{extension}@after@hook}% +\EndIndex{Cmd}{tocbasic@\PName{extension}@before@hook}% + +%<*dtx> +% \fi +\DescribeMacro{\tocbasic@listhead} +Command +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{tocbasic@listhead}\Parameter{title} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@listhead}% +This command +% \fi +is used by \Macro{listoftoc} to set the heading of the list, either the +default heading or the indiviually defined heading. If you define your own +list command not using \Macro{listoftoc} you may use +\Macro{tocbasic@listhead}. In this case you should define \Macro{@currext} to +be the extension of the toc-file before using \Macro{tocbasic@listhead}. +% \iffalse +\EndIndex{Cmd}{tocbasic@listhead}% + +%<*dtx> +% \fi +\DescribeMacro{\tocbasic@listhead@\PName{extension}} +Command +% \iffalse +%</dtx> +\begin{Declaration} +% \fi + \Macro{tocbasic@listhead@\PName{extension}}\Parameter{title} +% \iffalse +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@listhead@\PName{extension}}% +This command +% \fi +is used in \Macro{tocbasic@listhead} to set the individual headings, optional +toc-entry, and running head, if it was defined. If it was not defined it will +be defined and used in \Macro{tocbasic@listhead}. +% \iffalse +\EndIndex{Cmd}{tocbasic@listhead@\PName{extension}}% +%</doc|dtx> +% \fi +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% +% \section{Implementation} +% \label{sec:implementation} +% +% All macros with prefix \texttt{tb@} or \texttt{@} are internal macros and +% should not be used by package and class authors. Macros with prefix +% \texttt{tocbasic@} are internal macros, that may be used by class and +% packages authors. Macros without \texttt{@} are interface macros and may be +% used by class and package authors and users. +% +% \iffalse +%<*package> +% \fi +% +% \subsection{Options} +% \label{sec:options} +% +% There are no options because the package should be used by class and package +% authors not by users. So the package will be loaded using +% \Macro{RequiresPackage}. Using different options by different packages would +% result in an option clash. +% +% +% \subsection{Having a List of All Tocs} +% \label{sec:listoftocs} +% +% If we have a list of all toc-files we may do commands for all +% toc-files. Somethimes it may be usefull to known the package, that created +% the toc-file, so this information will be stored additionally. +% +% \begin{macro}{\tb@listoftocs} +% This is the list of toc-files. The list will be: +% \begin{quote} +% \cs{do}\marg{extension}\marg{class or +% package}\cs{do}\marg{extension}\marg{class or package}\dots +% \end{quote} +% With this, adding and processing the list will be very fast but removing +% an element will be very slow. +% +% The initial state of the list will be \emph{empty}. +% \begin{macrocode} +\newcommand*{\tb@listoftocs}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifattoclist} +% This command tests, if an extension is already at the list of +% toc-files. The extension has to be the first argument. The second argument +% will be done, if the extension is already at the list of toc-files. The +% third argument will be done, if the extension is at the list of toc-files +% not yet. +% \begin{macrocode} +\newcommand{\ifattoclist}[1]{% + \begingroup + \def\do##1##2{% + \edef\reserved@a{##1}% + \ifx\reserved@a\reserved@b\@tempswatrue\fi + }% + \edef\reserved@b{#1}\@tempswafalse\tb@listoftocs + \if@tempswa\aftergroup\@firstoftwo\else\aftergroup\@secondoftwo\fi + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addtotoclist} +% This command adds an extension to the list of toc-files. The first, +% optional argument is the class or package name with the corresponding +% extension of class or package files. If this argument was omitted +% \textsf{tocbasic} tries to get it automatically. This should be +% successfull while loading a class or package but not while processing any +% command of a class or package after loading the class or package. The +% second, mandatory argument is the extension of the toc-file. NOTE: An +% empty first argument is not the same like omitting the first argument! +% \begin{macrocode} +\newcommand*{\addtotoclist}{% + \@ifnextchar [%] + \@@addtotoclist\@addtotoclist +} +\newcommand*{\@addtotoclist}{% + \ifx\@currname\@empty + \def\reserved@a{\@@addtotoclist[]}% + \else + \edef\reserved@a{\noexpand\@@addtotoclist[\@currname.\@currext]}% + \fi + \reserved@a +} +\newcommand*{\@@addtotoclist}[2][]{% + \ifattoclist{#2}{% + \PackageError{tocbasic}{% + file extension `#2' cannot be used twice + }{% + File extension `#2' is already used by a toc-file, while + \ifx\relax#1\relax someone\else #2\fi\MessageBreak + tried to use it again for a toc-file.\MessageBreak + This may be either an incompatibility of packages, an error at a + package,\MessageBreak + or a mistake by the user.\MessageBreak + }% + }{% + \g@addto@macro\tb@listoftocs{\do{#2}{#1}}% + \ifx\relax #1\relax\else + \@ifundefined{tb@#1@add@hook}{}{% + \edef\reserved@a{% + \noexpand\def\noexpand\@currext{#2}% + \noexpand\@nameuse{tb@#1@add@hook}% + \noexpand\def\noexpand\@currext{\@currext}% + }\reserved@a + }% + \fi + \edef\reserved@a{% + \noexpand\def\noexpand\@currext{#2}% + \noexpand\@nameuse{tb@@add@hook}% + \noexpand\def\noexpand\@currext{\@currext}% + }\reserved@a + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtAddToTocList} +% Action to be done, when adding a toc-file of a known owner. The first +% optional argument is the owner. The second, mandatory argument is the +% action. While doing the action \cs{@currext} will be the extension of the +% added toc-file. If the first argument was omitted \textsf{tocbasic} tries +% to get it automatically. This should be successfull while loading a class +% or package but not while processing any command of a class or package +% after loading the class or package. The second, mandatory argument is the +% extension of the toc-file. NOTE: An empty first argument is not the same +% like omitting the first argument, but set's up the general hook. The +% general hook will be done for every adding after the individual hook (this +% means, you may dactivate features at the individual hook before processing +% the general hook). But the individual hook will not be processed for +% toc-files without any owner! +% \begin{macrocode} +\newcommand*{\AtAddToTocList}{% + \@ifnextchar [%] + \@@AtAddToTocList\@AtAddToTocList +} +\newcommand*{\@AtAddToTocList}{% + \ifx\@currname\@empty + \def\reserved@a{\@@AtAddToTocList[]}% + \else + \edef\reserved@a{\noexpand\@@AtAddToTocList[\@currname.\@currext]}% + \fi + \reserved@a +} +\newcommand*{\@@AtAddToTocList}[1][]{% + \@ifundefined{tb@#1@add@hook}{\@namedef{tb@#1@add@hook}{}}{}% + \expandafter\g@addto@macro\csname tb@#1@add@hook\endcsname +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tocbasic@extend@babel} +% NOTE: To extend the original \cs{bbl@set@language} the argument of +% \cs{tocbasic@extend@babel} must not be a local macro (like \cs{@currext}) +% \begin{macrocode} +\newcommand*{\tocbasic@extend@babel}[1]{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \ifx\csname bbl@set@language\endcsname\relax + \PackageInfo{tocbasic}{babel extension for `#1' omitted\MessageBreak + because of missing \string\bbl@set@language}% + \else + \iftocfeature{#1}{nobabel}{% + \PackageInfo{tocbasic}{omitting babel extension for `#1'\MessageBreak + because of feature `nobabel' available\MessageBreak + for `#1'}% + }{% + \PackageInfo{tocbasic}{setting babel extension for `#1'}% + \expandafter\gdef\expandafter\bbl@set@language\expandafter##\expandafter1% + \expandafter{% + \bbl@set@language{##1}% + \addtocontents{#1}{\xstring\select@language{\languagename}}% + }% + }% + \fi +} +% \end{macrocode} +% This feature should be used for all toc-files (unless feature +% \texttt{nobabl} was set for the toc-file. +% \begin{macrocode} +\AtAddToTocList[]{\expandafter\tocbasic@extend@babel\expandafter{\@currext}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\removefromtoclist} +% This command will remove an extension from the list of toc-files. If the +% first, optional argument is given, the extension will only be removed, if +% it was added by the given owner. NOTE: An empty first argument is not the +% same like omitting the first argument! +% \begin{macrocode} +\newcommand*{\removefromtoclist}{% + \@ifnextchar [%] + \@removefromtoclist\@@removefromtoclist +} +\newcommand*{\@removefromtoclist}[2][]{% + \begingroup + \let\tb@oldlist\tb@listoftocs + \def\do##1##2{% + \edef\reserved@a{##1}% + \ifx\reserved@a\reserved@b + \begingroup + \edef\reserved@a{##2}% + \edef\reserved@b{#1}% + \ifx\reserved@a\reserved@b\else + \g@addto@macro\tb@listoftocs{\do{##1}{##2}}% + \fi + \endgroup + \else + \g@addto@macro\tb@listoftocs{\do{##1}{##2}}% + \fi + }% + \edef\reserved@b{#2}\let\tb@listoftocs\@empty + \tb@oldlist + \endgroup +} +\newcommand*{\@@removefromtoclist}[1]{% + \begingroup + \let\tb@oldlist\tb@listoftocs + \def\do##1##2{% + \edef\reserved@a{##1}% + \ifx\reserved@a\reserved@b\else + \g@addto@macro\tb@listoftocs{\do{##1}{##2}}% + \fi + }% + \edef\reserved@b{#1}\let\tb@listoftocs\@empty + \tb@oldlist + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\doforeachtocfile} +% This command does the second, mandatory argument for each toc-file at the +% list of toc-files. If the first, optional argument was given this will be +% done only for the toc-files of that owner. NOTE: An empty first argument +% is not the same like omitting the first argument! +% +% While processing the second argument \cs{@currext} is the extension of +% the toc-file. The second argument will be processed with increased group +% level! +% +% See \cs{addtoeachtocfile} for an example of usage of +% \cs{doforeachtocfile}. +% \begin{macrocode} +\newcommand{\doforeachtocfile}{% + \@ifnextchar [%] + \@doforeachtocfile\@@doforeachtocfile +} +\newcommand{\@doforeachtocfile}[2][]{% + \def\do##1##2{% + \edef\reserved@a{#1}\edef\reserved@b{##2}\ifx\reserved@a\reserved@b + \edef\@currext{##1}#2% + \fi + }% + \edef\reserved@a{% + \noexpand\tb@listoftocs + \noexpand\def\noexpand\@currext{\@currext}% + }\reserved@a + \let\do\relax +} +\newcommand{\@@doforeachtocfile}[1]{% + \def\do##1##2{% + \edef\@currext{##1}#1% + }% + \edef\reserved@a{% + \noexpand\tb@listoftocs + \noexpand\def\noexpand\@currext{\@currext}% + }\reserved@a + \let\do\relax +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addtoeachtocfile} +% This command calls \cs{addtocontents} with the section, mandatory +% argument for each toc-file at the list of toc-files. If the first, +% optional argument was given this will be done only for the toc-files of +% that owener. NOTE: An empty first argument is not the same like omitting +% the first argument! And don't forget to protect the commands, that should +% not be expanded, at the mandatory argument. +% \begin{macrocode} +\newcommand{\addtoeachtocfile}{% + \@ifnextchar [%] + \@addtoeachtocfile\@@addtoeachtocfile +} +\newcommand{\@addtoeachtocfile}[2][]{% + \doforeachtocfile[{#1}]{\addtocontents{\@currext}{#2}}% +} +\newcommand{\@@addtoeachtocfile}[1]{% + \doforeachfocfile{\addtocontents{\@currext}{#1}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addcontentslinetoeachtocfile} +% Something like a combination of \cs{addtoeachtocfile} and +% \cs{addcontentsline}. +% \begin{macrocode} +\newcommand{\addcontentslinetoeachtocfile}{% + \@ifnextchar [%] + \@addcontentslinetoeachtocfile\@@addcontentslinetoeachtocfile +} +\newcommand{\@addcontentslinetoeachtocfile}[3][]{% + \doforeachtocfile[{#1}]{\addcontentsline{\@currext}{#2}{#3}}% +} +\newcommand{\@@addcontentslinetoeachtocfile}[2]{% + \doforeachtocfile{\addcontentsline{\@currext}{#1}{#2}}% +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Show List of Toc-File} +% \label{sec:showlistoftocfile} +% +% If you have a toc-file you want a list-of-command for this toc-file, +% too. Here are basics and high level commands for this. +% +% \begin{macro}{\tocbasic@starttoc} +% Some basics are done like setting up \cs{parskip}, \cs{parindent} and +% \cs{parfillskip}, a general hook will be called, an individual hook will +% be called, the toc will be started, an individual hook will be called, an +% general hook wil be called, that's it. +% \begin{macrocode} +\newcommand*{\tocbasic@starttoc}[1]{% + \begingroup + \setlength{\parskip}{\z@}% + \setlength{\parindent}{\z@}% + \setlength{\parfillskip}{\z@\@plus 1fil}% + \def\@currext{#1}% + \csname tocbasic@@before@hook\endcsname + \csname tb@#1@before@hook\endcsname + \@starttoc{#1}% + \csname tb@#1@after@hook\endcsname + \csname tocbasic@@after@hook\endcsname + \endgroup +} +% \end{macrocode} +% \begin{macro}{\tocbasic@@before@hook} +% \begin{macro}{\tocbasic@@after@hook} +% These are the general hooks. They may be used by classes and packages for +% commands, that should be used for all lists of not only the own lists of, +% e.g., \KOMAScript{} may use it to handle option \texttt{tocleft}. +% \begin{macrocode} +\newcommand*{\tocbasic@@before@hook}{} +\newcommand*{\tocbasic@@after@hook}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\BeforeStartingTOC} +% \begin{macro}{\AfterStartingTOC} +% These are the commands to add code to the general or individual hooks. If +% the first, optional argument was given, the second, mandatory argument +% will be added to the individual hook, otherwise the general hook will be +% extended. +% \begin{macrocode} +\newcommand{\BeforeStartingTOC}[2][]{% + \expandafter\g@addto@macro\csname tb@#1@before@hook\endcsname{#2}% +} +\newcommand{\AfterStartingTOC}[2][]{% + \expandafter\g@addto@macro\csname tb@#1@after@hook\endcsname{#2}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\listoftoc} +% \begin{macro}{\listoftoc*} +% Command to handle the hole list of something. There are additional hooks +% for this. The first optional argument is the title for this list. If the +% optional argument was omitted \cs{listof\#2name} will be used. The star +% version does not set up a heading or switch the column number! +% \begin{macrocode} +\newcommand*{\listoftoc}{% + \@ifstar \tocbasic@starttoc\@listoftoc +} +\newcommand*{\@listoftoc}[2][\list@fname]{% + \begingroup + \@ifundefined{listof#2name}{% + \PackageWarning{tocbasic}{% + You should either define \expandafter\string\csname + listof#2name\endcsname\MessageBreak + or use the optional argument of \string\listoftoc\space\MessageBreak + to set the term to be used for the\MessageBreak + heading of list of #2}% + \def\list@fname{\listofname~#2}% + }{% + \expandafter\let\expandafter\list@fname\csname listof#2name\endcsname + }% + \if@twocolumn + \aftergroup\twocolumne\onecolumn + \fi + \def\@currext{#2}% + \tocbasic@listhead{#1}% + \tocbasic@starttoc{#2}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\listofname} +% While this is only an emergancy command, we don't support languages. +% \begin{macrocode} +\newcommand*{\listofname}{List of} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\listofeachtoc} +% Another example of using \cs{doforeachtoc}. +% \begin{macrocode} +\newcommand*{\listofeachtoc}{% + \@ifnextchar [%] + \@listofeachtoc\@@listofeachtoc +} +\newcommand{\@listofeachtoc}[1][]{% + \doforeachtocfile[{#1}]{\listoftoc{\@currext}}% +} +\newcommand{\@@listofeachtoc}[1]{% + \doforeachfocfile{\listoftoc{\@currext}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tocbasic@listhead} +% Setting the headings of a list of something. The heading is the only +% argument. +% \begin{macrocode} +\newcommand*{\tocbasic@listhead}[1]{% + \@ifundefined{tocbasic@listhead@\@currext}{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname chapter\endcsname\relax + \expandafter\def\csname tocbasic@listhead@\@currext\endcsname##1{% + \iftocfeature{\@currext}{leveldown}{% + \iftocfeature{\@currext}{numbered}{% + \subsection[##1]{##1}% + }{% + \subsection*{##1}% + \iftocfeature{\@currext}{totoc}{% + \addcontentsline{toc}{subsection}{##1}% + }{}% + }% + \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{##1}}\fi + }{% + \iftocfeature{\@currext}{numbered}{% + \section[##1]{##1\@mkboth{##1}{##1}}% + }{% + \section*{##1}% + \iftocfeature{\@currext}{totoc}{% + \addcontentsline{toc}{section}{##1}% + }{}% + }% + \@mkboth{\MakeMarkcase{##1}}{\MakeMarkcase{##1}}% + }% + }% + \else + \expandafter\def\csname tocbasic@listhead@\@currext\endcsname##1{% + \iftocfeature{\@currext}{leveldown}{% + \iftocfeature{\@currext}{numbered}{% + \section{##1}% + }{% + \section*{##1}% + \iftocfeature{\@currext}{totoc}{% + \addcontentsline{toc}{section}{##1}% + }{}% + }% + \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{##1}}\fi + }{% + \iftocfeature{\@currext}{numbered}{% + \chapter[##1]{##1\@mkboth{##1}{##1}}% + }{% + \chapter*{##1}% + \iftocfeature{\@currext}{totoc}{% + \addcontentsline{toc}{chapter}{##1}% + }{}% + }% + \@mkboth{\MakeMarkcase{##1}}{\MakeMarkcase{##1}}% + }% + }% + \fi + }{}% + \csname tb@@beforehead@hook\endcsname + \csname tb@\@currext @beforehead@hook\endcsname + \csname tocbasic@listhead@\@currext\endcsname{#1}% + \csname tb@\@currext @afterhead@hook\endcsname + \csname tb@@afterhead@hook\endcsname +} +% \end{macrocode} +% \begin{macro}{\BeforeTOCHead} +% \begin{macro}{\AfterTOCHead} +% These are the commands to add code to the general or individual hooks. If +% the first, optional argument was given, the second, mandatory argument +% will be added to the individual hook, otherwise the general hook will be +% extended. +% \begin{macrocode} +\newcommand{\BeforeTOCHead}[2][]{% + \expandafter\g@addto@macro\csname tb@#1@beforehead@hook\endcsname{#2}% +} +\newcommand{\AfterTOCHead}[2][]{% + \expandafter\g@addto@macro\csname tb@#1@afterhead@hook\endcsname{#2}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\MakeMarkcase} +% Use upper-case or not? +% \begin{macrocode} +\AtBeginDocument{% + \@ifundefined{MakeMarkcase}{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname KOMAClassName\endcsname\relax + \let\MakeMarkcase\MakeUppercase + \else + \let\MakeMarkcase\@firstofone + \fi + }{}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\deftocheading} +% Define a toc headings command with one argument (the title). +% \begin{macrocode} +\newcommand*{\deftocheading}[1]{% + \@namedef{tocbasic@listhead@#1}##1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\setuptoc} +% \begin{macro}{\unsettoc} +% Known features are: +% \begin{description} +% \item[\texttt{totoc}] writes the title of the list of to the table of +% contents +% \item[\texttt{numbered}] uses a numbered headings for the list of +% \item[\texttt{leveldown}] uses not the top level heading (e.g., +% \cs{chapter} with book) but the first sub level (e.g., \cs{section} with +% book). +% \item[\texttt{nobabel}] prevents the extension to be added to the babel +% handling of toc-files. To make this work, you have to set the feature +% before adding the extension to the list of known extension. +% \end{description} +% Other features may be package dependent. You may test the feature using: +% \begin{quote} +% \cs{@ifundefined}\texttt{\{tocbasic@\meta{toc}@feature@\meta{feature}\}}\\ +% \phantom{\cs{@ifundefined}}\marg{do if feature not set}\\ +% \phantom{\cs{@ifundefined}}\marg{do if feature set} +% \end{quote} +% See \cs{tocbasic@listhead} for an example of this. +% \begin{macrocode} +\newcommand*{\setuptoc}[2]{% + \@for\@tempa:=#2\do{% + \expandafter\tb@@sp@def\expandafter\@tempa\expandafter{\@tempa}% + \@namedef{tocbasic@#1@feature@\@tempa}{}% + }% +} +\newcommand*{\unsettoc}[2]{% + \@for\@tempa:=#2\do{% + \expandafter\tb@@sp@def\expandafter\@tempa\expandafter{\@tempa}% + \expandafter\let\csname tocbasic@#1@feature@\@tempa\endcsname\relax + }% +} +\def\@tempa#1{% + \def\tb@@sp@def##1##2{% + \futurelet\tb@sp@tempa\tb@@sp@d##2\@nil\@nil#1\@nil\relax##1}% + \def\tb@@sp@d{% + \ifx\tb@sp@tempa\@sptoken + \expandafter\tb@@sp@b + \else + \expandafter\tb@@sp@b\expandafter#1% + \fi}% + \def\tb@@sp@b#1##1 \@nil{\tb@@sp@c##1}% +} +\@tempa{ } +\def\tb@@sp@c#1\@nil#2\relax#3{\@temptokena{#1}\edef#3{\the\@temptokena}} +% \end{macrocode} +% Do not add the files, that babel handles by default. +% \begin{macrocode} +\setuptoc{toc}{nobabel} +\setuptoc{lof}{nobabel} +\setuptoc{lot}{nobabel} +% \end{macrocode} +% \begin{macro}{\iftocfeature} +% We need a test for the features +% \begin{macrocode} +\newcommand*{\iftocfeature}[2]{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname tocbasic@#1@feature@#2\endcsname\relax + \expandafter\@secondoftwo + \else + \expandafter\@firstoftwo + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\tocbasicautomode} +% \Package{tocbasic} can overtake \Macro{@starttoc} to automaticly add all +% used extensions to the list of known extensions and use +% \Macro{tocbasic@starttoc} instead of \Macro{@starttoc} from \LaTeX{} +% kernel. +% \begin{macrocode} +\newcommand*{\tocbasicautomode}{% + \let\tb@saved@starttoc\@starttoc + \BeforeStartingTOC{% + \let\@starttoc\tb@saved@starttoc + \expandafter\ifattoclist\expandafter{\@currext}{}{% + \@addtotoclist[tocbasicautomode]{\@currext}% + }% + }% +} +% \end{macrocode} +% \end{macro} +% +% \iffalse +%</package> +%<*load> +% Used at \KOMAScript{} classes to load and initialize the package. +% \begin{macrocode} +\edef\@tempa{\noexpand\RequirePackage{tocbasic}[\tocbasicversion]} +\@tempa +% \end{macrocode} +% Tell the package, what files are used: +% \begin{macrocode} +\addtotoclist{toc} +\addtotoclist[float]{lof} +\addtotoclist[float]{lot} +% \end{macrocode} +%</load> +% \fi +% +% \Finale +% +\endinput +% +% end of file `tocbasic.dtx' +%%% Local Variables: +%%% mode: doctex +%%% coding: iso-latin-1 +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/tocstyle.dtx b/Master/texmf-dist/source/latex/koma-script/tocstyle.dtx index d42327d2899..33e28c6779f 100644 --- a/Master/texmf-dist/source/latex/koma-script/tocstyle.dtx +++ b/Master/texmf-dist/source/latex/koma-script/tocstyle.dtx @@ -1,8 +1,8 @@ -% \CheckSum{1629} +% \CheckSum{1662} % \iffalse meta-comment % ====================================================================== % tocstyle.dtx -% Copyright (c) Markus Kohm, 2007 +% Copyright (c) Markus Kohm, 2007-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -29,7 +29,7 @@ % at least three times. % ---------------------------------------------------------------------- % tocstyle.dtx -% Copyright (c) Markus Kohm, 2007 +% Copyright (c) Markus Kohm, 2007-2008 % % Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. % @@ -104,7 +104,7 @@ \preamble -Copyright (c) 2007 by Markus Kohm <komascript(at)gmx.info> +Copyright (c) 2007-2008 by Markus Kohm <komascript(at)gmx.info> Copyright (c) 1994-2007 Markus Kohm and any individual authors listed elsewhere in this file. @@ -203,7 +203,7 @@ THERE IS NO SUPPORT, IF YOU USE THIS PACKAGE! %<driver>\ProvidesFile{tocstyle.drv} %<doc>\ProvidesFile{tocstyle.tex} %<*dtx|package|driver|doc> - [2007/12/21 v0.2alpha LaTeX2e KOMA-Script package (versatile toc styles)] + [2008/10/20 v0.2c-alpha LaTeX2e KOMA-Script package (versatile toc styles)] %</dtx|package|driver|doc> %<*driver> \documentclass{scrdoc} @@ -532,12 +532,12 @@ shortcuts are shown at \autoref{tab:tocstyle.shortcuts}. face, too. All other depth will be set in normal font. Depth -1 (part) will be set using \Macro{large}. The font changes are valid for the page numbers, too.}% - \pventry{KOMAScript}{A style similar to the \KOMAScript{} classes. This is + \pventry{KOMAlike}{A style similar to the \KOMAScript{} classes. This is almost the same like \PValue{standard}, but instead of bold face \Macro{usekomafont}\PParameter{disposition} will be used if \Macro{usekomafont} was defined and sans serif, bold face (\Macro{sffamily}\Macro{bfseries}) if not.}% - \pventry{classic}{Like \PValue{KOMAScript} but all page numbers are set + \pventry{classic}{Like \PValue{KOMAlike} but all page numbers are set using normal font.}% \pventry{allwithdot}{Like \PValue{classic} but dots between entry text and page numbers are used at all depths.}% @@ -741,8 +741,8 @@ usefull to define your own toc styles. % \subsubsection{\PValue{standard} with Option \Option{tocgraduated}} % \usetocstyle[toc]{standard} % \showtoc{toc}\clearpage -% \subsubsection{\PValue{KOMAScript} with Option \Option{tocgraduated}} -% \usetocstyle[toc]{KOMAScript} +% \subsubsection{\PValue{KOMAlike} with Option \Option{tocgraduated}} +% \usetocstyle[toc]{KOMAlike} % \showtoc{toc}\clearpage % \subsubsection{\PValue{classic} with Option \Option{tocgraduated}} % \usetocstyle[toc]{classic} @@ -762,8 +762,8 @@ usefull to define your own toc styles. % \subsubsection{\PValue{standard} with Option \Option{tocflat}} % \usetocstyle[toc]{standard} % \showtoc{toc}\clearpage -% \subsubsection{\PValue{KOMAScript} with Option \Option{tocflat}} -% \usetocstyle[toc]{KOMAScript} +% \subsubsection{\PValue{KOMAlike} with Option \Option{tocflat}} +% \usetocstyle[toc]{KOMAlike} % \showtoc{toc}\clearpage % \subsubsection{\PValue{classic} with Option \Option{tocflat}} % \usetocstyle[toc]{classic} @@ -785,8 +785,8 @@ usefull to define your own toc styles. % \subsubsection{\PValue{standard} with Option \Option{tocfullflat}} % \usetocstyle[toc]{standard} % \showtoc{toc}\clearpage -% \subsubsection{\PValue{KOMAScript} with Option \Option{tocfullflat}} -% \usetocstyle[toc]{KOMAScript} +% \subsubsection{\PValue{KOMAlike} with Option \Option{tocfullflat}} +% \usetocstyle[toc]{KOMAlike} % \showtoc{toc}\clearpage % \subsubsection{\PValue{classic} with Option \Option{tocfullflat}} % \usetocstyle[toc]{classic} @@ -930,15 +930,19 @@ usefull to define your own toc styles. % % \begin{macrocode} \ifcsname if@tocleft\endcsname - \if@tocleft - \PackageWarningNoLine{tocstyle}{% - You should not use class option `tocleft'!\MessageBreak - This may result in errors or unexpected results.\MessageBreak - I'll try to deactivate `tocleft', now.\MessageBreak - You may use options `tocflat' and\MessageBreak - `tocindentauto' instead of `tocleft'}% - \csname @tocleftfalse\endcsname - \fi + \expandafter\let\csname if@tempswa\expandafter\endcsname + \csname if@tocleft\endcsname +\else + \@tempswafalse +\fi +\if@tempswa + \PackageWarningNoLine{tocstyle}{% + You should not use class option `toc=flat'!\MessageBreak + This may result in errors or unexpected results.\MessageBreak + I'll try to deactivate `toc=flat', now.\MessageBreak + You may use package options `tocflat' and\MessageBreak + `tocindentauto' instead of `toc=flat'}% + \csname @tocleftfalse\endcsname \fi % \end{macrocode} % @@ -1588,16 +1592,16 @@ usefull to define your own toc styles. % \end{macro} % % Different commands will be defined: -% \begin{macro}{\tocstyle@feature@<feature>@@} +% \begin{macro}{\tocstyle@feature@!<feature!>@@} % Global feature (all TOCs all depths). % \end{macro} -% \begin{macro}{\tocstyle@feature@<feature>@<TOC>@} +% \begin{macro}{\tocstyle@feature@@!<feature!>@!<TOC!>@} % All depth feature for one TOC. % \end{macro} -% \begin{macro}{\tocstyle@feature@<feature>@@<depth>} +% \begin{macro}{\tocstyle@feature@@!<feature!>@@!<depth!>} % All TOCs feature for one depth. % \end{macro} -% \begin{macro}{\tocstyle@feature@<feature>@<TOC>@<depth>} +% \begin{macro}{\tocstyle@feature@@!<feature!>@!<TOC!>@!<depth!>} % One depth of one TOC feature. % \end{macro} % @@ -1694,42 +1698,65 @@ usefull to define your own toc styles. % % \begin{macro}{\usetocstyle} % \begin{macro}{\@usetocstyle} -% Use the predefined TOC style. +% \changes{v0.2a}{2008/02/14}{extended for deprecated TOC styles} +% Use the predefined TOC style. You may define +% |\tocstyle@deprecated@style@foo| to mark TOC style |foo| to be +% deprecated. If |\tocstyle@deprecated@style@foo| is |\@empty| TOC style +% |deprecated@foo| will be used instead almost silently. Otherwise TOC +% style |\tocstyle@deprecated@style@foo| will be used instead and the user +% will be told about this change. % \begin{macrocode} \newcommand*{\usetocstyle}[2][]{% - \@ifundefined{tocstyle@style@#2}{% - \PackageError{tocstyle}{unknown TOC style `#2'}{% - You've told me to use TOC style `#2',\MessageBreak - but there's no TOC style `#2' defined.}% - }{% - \def\settocfeature{% - \@ifnextchar[ {\@@settocfeature[{#1}]}{\@@settocfeature[{#1}][]}% - }% - \let\settocstylefeature\settocfeature + \@ifundefined{tocstyle@deprecated@style@#2}{% + \@ifundefined{tocstyle@style@#2}{% + \PackageError{tocstyle}{unknown TOC style `#2'}{% + You've told me to use TOC style `#2',\MessageBreak + but there's no TOC style `#2' defined.}% + }{% + \def\settocfeature{% + \@ifnextchar[ {\@@settocfeature[{#1}]}{\@@settocfeature[{#1}][]}% + }% + \let\settocstylefeature\settocfeature % \end{macrocode} % Deactivate all known features for this TOC % \begin{macrocode} - \expandafter\ifx\csname tocstyle@commandlist@#1\endcsname\relax - \else - \expandafter\expandafter\expandafter\@for - \expandafter\expandafter\expandafter\@tempa - \expandafter\expandafter\expandafter:% - \expandafter\expandafter\expandafter=% - \csname tocstyle@commandlist@#1\endcsname - \do{% - \expandafter\let\csname \@tempa\endcsname\relax - }% + \expandafter\ifx\csname tocstyle@commandlist@#1\endcsname\relax + \else + \expandafter\expandafter\expandafter\@for + \expandafter\expandafter\expandafter\@tempa + \expandafter\expandafter\expandafter:% + \expandafter\expandafter\expandafter=% + \csname tocstyle@commandlist@#1\endcsname + \do{% + \expandafter\let\csname \@tempa\endcsname\relax + }% % \end{macrocode} % So there are no more known features for this TOC. % \begin{macrocode} - \expandafter\let\csname tocstyle@commandlist@#1\endcsname\relax - \fi + \expandafter\let\csname tocstyle@commandlist@#1\endcsname\relax + \fi % \end{macrocode} % Activate all known features for this style and TOC % \begin{macrocode} - \@usetocstyle{#2}% - \let\settocfeature\@settocfeature - \let\settocstylefeature\@settocstylefeature + \@usetocstyle{#2}% + \let\settocfeature\@settocfeature + \let\settocstylefeature\@settocstylefeature + }% + }{% + \expandafter\ifx\csname tocstyle@deprecated@style@#2\endcsname\@empty + \PackageWarning{tocstyle}{% + deprecated TOC style `#2'!\MessageBreak + You should not longer use this style,\MessageBreak + because it will be removed soon.\MessageBreak + You should select another TOC style}% + \usetocstyle[{#1}]{deprecated@#2}% + \else + \PackageWarning{tocstyle}{% + deprecated TOC style `#2'!\MessageBreak + You should use TOC style '\csname + tocstyle@deprecated@style@#2\endcsname'\MessageBreak + instead of `#2'}% + \fi }% } \newcommand*{\@usetocstyle}[1]{% @@ -1840,10 +1867,11 @@ usefull to define your own toc styles. } \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname sectfont\endcsname\relax - \newtocstyle{KOMAScript}{% + \newtocstyle{KOMAlike}{% \settocfeature{dothook}{\normalfont}% \settocfeature[-1]{entryhook}{\sffamily\bfseries}% \settocfeature[-1]{entryvskip}{2.25em\@plus\p@}% + \settocfeature[-1]{leaders}{\hfill}% \settocfeature[0]{entryvskip}{1em\@plus\p@}% \settocfeature[0]{leaders}{\hfill}% \settocfeature[0]{entryhook}{% @@ -1865,10 +1893,11 @@ usefull to define your own toc styles. \fi } \else - \newtocstyle{KOMAScript}{% + \newtocstyle{KOMAlike}{% \settocfeature{dothook}{\normalfont}% \settocfeature[-1]{entryhook}{\sectfont}% \settocfeature[-1]{entryvskip}{2.25em\@plus\p@}% + \settocfeature[-1]{leaders}{\hfill}% \settocfeature[0]{entryvskip}{1em\@plus\p@}% \settocfeature[0]{leaders}{\hfill}% \settocfeature[0]{entryhook}{% @@ -1890,7 +1919,8 @@ usefull to define your own toc styles. \fi } \fi -\newtocstyle[KOMAScript]{classic}{% +\newcommand*{\tocstyle@deprecated@style@KOMAScript}{KOMAlike}% +\newtocstyle[KOMAlike]{classic}{% \settocfeature{pagenumberhook}{\normalfont\normalcolor}% \settocfeature{raggedhook}{\raggedright}% } |