diff options
author | Karl Berry <karl@freefriends.org> | 2006-08-20 00:02:10 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-08-20 00:02:10 +0000 |
commit | 524b07990fd2040ab6ce24b015b9a2bd4544a3c1 (patch) | |
tree | 93d7c1e1089e6c5df66ce81b57ed93482321baaa /Master/texmf-dist/source/latex/koma-script/doc | |
parent | affc79c45bfab740028ac1e6b8480c5465a42b01 (diff) |
koma-script 2.95b, using provided texmf zip
git-svn-id: svn://tug.org/texlive/trunk@1990 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/doc')
35 files changed, 30706 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/doc/Makefile b/Master/texmf-dist/source/latex/koma-script/doc/Makefile new file mode 100644 index 00000000000..d0755713c53 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/Makefile @@ -0,0 +1,202 @@ +# ====================================================================== +# Makefile +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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 +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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. +# ====================================================================== + +# ---------------------------------------------------------------------- +# Directory with basics +BASEDIR ?= $(PWD)/../ +export BASEDIR + +# ---------------------------------------------------------------------- +# All directories with Makefiles +SUBDIRS = german english + +# ---------------------------------------------------------------------- +# Default rules +.PHONY: default clean default_local install_local \ + uninstall_local clean_local dist_local \ + distclean_local maintainclean_local + +# Recursive make function +ifdef SUBDIRS +define make_recursive + for dir in $(SUBDIRS); \ + do \ + $(MAKE) -C $$dir $@ || exit $$?; \ + done +endef +else +define make_recursive +endef +endif + +default: default_local + +clean: clean_local + +# Load variable definitions +include $(BASEDIR)Makefile.baseinit +include 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)/doc +endif +ifdef MAINTAINDIR +export MAINTAINDIR := $(MAINTAINDIR)/doc +endif +ifdef INSTALLSRCDIR +export INSTALLSRCDIR := $(INSTALLSRCDIR)/doc +endif + +# ---------------------------------------------------------------------- + +# ---------------------------------------------------------------------- +# List of all Makefiles +MAKE_FILES = Makefile Makefile.latexinit Makefile.guide + +# ---------------------------------------------------------------------- +MISC_SRC = $(MAKE_FILES) + +STATIC_DOC_SRC = koma-script.html + +STATIC_DOC_LINKS= komascript.html komascr.html \ + scrbook.html scrreprt.html scrartcl.html scrlttr2.html \ + typearea.html scrpage2.html scraddr.html scrlfile.html \ + scrtime.html scrdate.html + +DOC_SRC = scrguide.cls scrguide.ist scrguide.gst \ + guide.tex guide.bib plength.dtx + +STATIC_DOC = $(STATIC_DOC_SRC) $(STATIC_DOC_LINKS) + +DIST_SRC = $(MISC_SRC) $(DOC_SRC) $(STATIC_DOC_SRC) + +DIST_FILES = $(DIST_SRC) $(STATIC_DOC_LINKS) + +BIN_DIR = bin + +BIN_FILES = $(BIN_DIR)/genhtmlidx.pl $(BIN_DIR)/genindex.pl + +MAINTAIN_FILES = $(DIST_FILES) +# ---------------------------------------------------------------------- + +# ---------------------------------------------------------------------- +# local rules +default_local: $(STATIC_DOC) + $(make_recursive) + +$(STATIC_DOC_LINKS): $(STATIC_DOC_SRC) + $(SYMLINK) $< $@ + +install_local: $(DIST_FILES) + @if ! $(MKDIR) $(INSTALLSRCDIR) || \ + ! $(MKDIR) $(INSTALLSRCDIR)/$(BIN_DIR) || \ + ! $(MKDIR) $(INSTALLDOCDIR) ; then \ + echo '--------------------------------------------------'; \ + echo '| Cannot install to' $(INSTALLSRCDIR) or $(INSTALLSRCDIR)/$(BIN_DIR) or $(INSTALLDOCDIR)!; \ + echo '| You should try:'; \ + echo '| sudo "make install"'; \ + echo '--------------------------------------------------'; \ + exit 1; \ + fi + $(INSTALL) $(DIST_SRC) $(INSTALLSRCDIR) + $(foreach file,$(STATIC_DOC),$(SYMLINK) ../../../../doc/latex/koma-script/$(file) $(INSTALLSRCDIR)/$(file);) + $(INSTALL) $(BIN_FILES) $(INSTALLSRCDIR)/$(BIN_DIR) + $(INSTALL) $(STATIC_DOC) $(INSTALLDOCDIR) + $(make_recursive) + $(SECHO) ------------------------------------------------------------ + $(SECHO) Installed files at $(INSTALLSRCDIR): + $(SECHO) $(DIST_SRC) + $(SECHO) ------------------------------------------------------------ + $(SECHO) Installed files at $(INSTALLSRCDIR)/$(BIN_DIR): + $(SECHO) $(BIN_FILES) + $(SECHO) ------------------------------------------------------------ + $(SECHO) Installed files at $(INSTALLDOCDIR): + $(SECHO) $(STATIC_DOC) + $(SECHO) ------------------------------------------------------------ + $(SECHO) Links at $(INSTALLSRCDIR): + $(SECHO) $(SATIC_DOC) + $(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,$(STATIC_DOC),$(INSTALLDOCDIR)/$(file)); \ + else \ + echo "$(INSTALLDOCDIR) not found --> nothing to uninstall!"; \ + fi + $(make_recursive) + +clean_local: + $(make_recursive) + +dist_local: + -$(RMDIR) $(DISTDIR) + $(MKDIR) $(DISTDIR) + $(MKDIR) $(DISTDIR)/$(BIN_DIR) + $(CP) $(DIST_FILES) $(DISTDIR) + $(CP) $(BIN_FILES) $(DISTDIR)/$(BIN_DIR) + $(make_recursive) + +maintain_local: + -$(RMDIR) $(MAINTAINDIR) + $(MKDIR) $(MAINTAINDIR) + $(MKDIR) $(MAINTAINDIR)/$(BIN_DIR) + $(CP) $(MAINTAIN_FILES) $(MAINTAINDIR) + $(CP) $(BIN_FILES) $(MAINTAINDIR)/$(BIN_DIR) + $(make_recursive) + +distclean_local: + $(make_recursive) + +maintainclean_local: + $(make_recursive) + +edit: + $(EDITOR) guide.tex diff --git a/Master/texmf-dist/source/latex/koma-script/doc/Makefile.guide b/Master/texmf-dist/source/latex/koma-script/doc/Makefile.guide new file mode 100644 index 00000000000..a56f004c1a0 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/Makefile.guide @@ -0,0 +1,227 @@ +# ====================================================================== +# Makefile.guide +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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-2006 +# +# 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 + +# ---------------------------------------------------------------------- +GUIDENAME = scrgui$(LANGUAGESHORTCUT) + +GENERATED_SRC = plenDIN.mps + +plenDIN_SRC = plenDIN.mp plinc.mp pllcoDIN.mp pltex.mp + +TEX_CHAPTERS = introduction.tex typearea.tex \ + scrbookreportarticle.tex scrpage2.tex \ + scrdatetime.tex scrlttr2.tex scraddr.tex \ + adrconvnote.tex scrlfile.tex + +TEX_SRC = guide-$(LANGUAGELONG).tex $(TEX_CHAPTERS) + +MISC_SRC = $(MAKE_FILES) htmlsetup + +DIST_SRC = $(MISC_SRC) $(TEX_SRC) + +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) + +clean_local: + $(RM) *.aux *.bbl *.blg *.glo *.idx *.ilg *.ind *.log *.lot \ + *.dvi *.tmp mpxerr.tex \ + *.md5 *.out *.toc *.mpx *.drv *.chn *.xref $(plenDIN_SRC) + +distclean_local: clean_local + $(RM) $(GENERATED_SRC) + +maintainclean_local: distclean_local + $(RM) guide.pdf $(GUIDENAME).pdf + +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 + +# ---------------------------------------------------------------------- + +# ---------------------------------------------------------------------- +# file rules + +CKSUMFILES = $(DOCDIR)plength.dtx $(DOCDIR)guide.tex $(DOCDIR)scrguide.cls \ + $(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),$(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 ) \ + && $(MAKEINDEX) guide.ind guide.idx \ + && $(INDEXPOSTOP) guide \ + && $(MAKECHANGE) guide.chn guide.glo \ + || exit 1;\ + done + $(SMV) guide.pdf $@ +endef + +$(GUIDENAME).html: guide.aux + $(GENHTMLINDEX) $(addsuffix .aux,$(basename $(TEX_CHAPTERS))) >$@ + +$(GUIDENAME).pdf: $(DOCDIR)scrguide.cls $(DOCDIR)guide.tex $(GENERATED_SRC)\ + guide.aux guide.bbl $(BIBTEX_SRC) \ + $(MAKEINDEXSTYLE) guide.ind guide.idx \ + $(MAKECHANGESTYLE) guide.chn guide.glo \ + $(TEX_SRC) + $(latex) + +plenDIN.mps: $(plenDIN_SRC) + $(MPOST) $< + $(MV) $(basename $@).1 $@ + +$(plenDIN_SRC): $(DOCDIR)plength.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) + +guide.glo guide.idx guide.aux: ../guide.tex $(TEX_SRC) + $(PDFLATEX) guide.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 new file mode 100644 index 00000000000..3b9a5864895 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/Makefile.latexinit @@ -0,0 +1,39 @@ +# Makefile.latexinit +# Copyright (c) Markus Kohm, 2002-2005 +# +# Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +# +# Diese Datei kann nach den Regeln der LaTeX Project Public +# Licence Version 1.0, wie sie zusammen mit dieser Datei verteilt +# wird, weiterverbreitet und/oder modifiziert werden. Siehe dazu +# auch LEGAL.TXT oder LEGALDE.TXT. +# ====================================================================== + +# Read input first from basedir and doc dir +TEXINPUTS := ./:$(DOCDIR):$(BASEDIR):$(TEXINPUTS) + +BIBINPUTS = $(DOCDIR):$(shell kpsewhich -expand-var=\$$BIBINPUTS) +BSTINPUTS = $(DOCDIR):$(shell kpsewhich -expand-var=\$$BSTINPUTS) +BIBTEX_SRC = $(DOCDIR)guide.bib + +MAKEINDEXSTYLE = $(DOCDIR)scrguide.ist +MAKEINDEXOPT = -r -s $(MAKEINDEXSTYLE) -o +MAKEINDEX = makeindex $(MAKEINDEXOPT) + +MAKECHANGESTYLE = $(DOCDIR)scrguide.gst +MAKECHANGEOPT = -r -s $(MAKECHANGESTYLE) -o +MAKECHANGE = makeindex $(MAKECHANGEOPT) + +PDFLATEX = $(LATEX) $(NONSTOPMODE) \ + '\def\languagename{'$(LANGUAGELONG)'}' \ + $(PDFOUTPUT) +INDEXPOSTOP = $(DOCDIR)/bin/genindex.pl +GENHTMLINDEX = $(DOCDIR)/bin/genhtmlidx.pl +#BIBTEX = bibtex8 +#BIBTEXNOERROR = 1 # BibTeX8 returns 1 after warnings +BIBTEX = bibtex +BIBTEXNOERROR = 0 # BibTeX returns 0 on ok + +MPOST = mpost -tex=latex -interaction=batchmode + +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 new file mode 100644 index 00000000000..d4f41542888 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl @@ -0,0 +1,158 @@ +#! /usr/bin/perl -w +eval 'exec perl -S $0 ${1+"$@"}' + if 0; #$running_under_some_shell + +# ====================================================================== +# genhtmlidx.pl +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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. +# ---------------------------------------------------------------------- +# genhtmlidx.pl +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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. +# ====================================================================== +# This perl script generates a html file with an index using the +# \newlabel entries at the aux files. +# +# Usage: genhtmlidx.pl <aux-file> ... +# ---------------------------------------------------------------------- +# Dieses perl-Script erzeugt aus den \newlabel-Eintraegen der +# aux-Dateien eine html-Datei mit einer Art Index. +# +# Verwendung: genhtmlidx.pl <aux-file> ... +# ====================================================================== + +use strict; + +my $auxfile; +my @option; +my @macro; +my @environment; +my @plength; +my @variable; +my @pagestyle; +my @counter; +my @floatstyle; + +my $baselink; +my $htmlhead; +my $htmlend; +my %titles; + +my $setup=""; +open SETUP,"<htmlsetup" || die "Cannot open htmlsetup!\n"; +while (<SETUP>) { + $setup .= $_; +} +close SETUP; +eval $setup; + +while ( $auxfile=shift ) { + open AUX,"<$auxfile" or die "Cannot read $auxfile!\n"; + while (<AUX>) { + my $line=$_; + if ( /^\\newlabel{desc:[^}]+}{{[^}]*}{([^}]*)}{[^}]*}{([^}]*)}/ ) { + my $anchor=$2; + my $page=$1; + my $entry; + if ( $anchor =~ /^([^.]+)\.([^.]+)\.([^.]+)$/ ) { + $entry = "$3.$page.$1.$2"; + if ( "$2" eq "option" ) { + push @option,$entry; + } elsif ( "$2" eq "macro" ) { + push @macro,$entry; + } elsif ( "$2" eq "environment" ) { + push @environment,$entry; + } elsif ( "$2" eq "plength" ) { + push @plength,$entry; + } elsif ( "$2" eq "variable" ) { + push @variable,$entry; + } elsif ( "$2" eq "pagestyle" ) { + push @pagestyle,$entry; + } elsif ( "$2" eq "counter" ) { + push @counter,$entry; + } elsif ( "$2" eq "floatstyle" ) { + push @floatstyle,$entry; + } else { + print STDERR "Unknown type $2!\n"; + } + } + } + } + close AUX; +} + +sub process { + my $group=shift; + my $prefix=shift; + my $arrayref=shift; + my @entries=sort { $a cmp $b } @$arrayref; + my $entry=""; + if ( @entries > 0 ) { + print "<h2><a name=\"$group\">$titles{$group}</a></h2>\n"; + print "<ul>\n"; + map { + $_ =~ /^([^.]+)\.([^.]+)\.([^.]+)\.([^.]+)$/; + if ( $entry ne $1 ) { + print "</li>\n" if ( $entry ne "" ); + $entry=$1; + print "<li><a name=\"$4.$entry\"></a><a href=\"\#$4.$entry\">$prefix$entry</a> --> "; + } else { + print ", "; + } + print "<a href=\"$baselink\#$3.$4.$1\">$2</a>"; + } @entries; + print "</li>\n" if ( $entry ne "" ); + print "</ul>\n"; + } +} + +print $htmlhead; + +print "<ul>\n"; +print "<li><a href=\"#option\">$titles{option}</a></li>" if ( @option ); +print "<li><a href=\"#macro\">$titles{macro}</a></li>" if ( @macro ); +print "<li><a href=\"#environment\">$titles{environment}</a></li>" if ( @environment ); +print "<li><a href=\"#plength\">$titles{plength}</a></li>" if ( @plength ); +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 "</ul>\n"; + +process "option","",\@option; +process "macro","\\",\@macro; +process "environment","",\@environment; +process "plength","",\@plength; +process "variable","",\@variable; +process "pagestyle","",\@pagestyle; +process "counter","",\@counter; +process "floatstyle","",\@floatstyle; +print $htmlend; diff --git a/Master/texmf-dist/source/latex/koma-script/doc/bin/genindex.pl b/Master/texmf-dist/source/latex/koma-script/doc/bin/genindex.pl new file mode 100644 index 00000000000..6b3a976c905 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/bin/genindex.pl @@ -0,0 +1,204 @@ +#! /usr/bin/perl -w +eval 'exec perl -S $0 ${1+"$@"}' + if 0; #$running_under_some_shell + +# ====================================================================== +# genindex.pl +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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. +# ---------------------------------------------------------------------- +# genindex.pl +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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. +# ====================================================================== +# This perl scripts splits the index of scrguide or scrguien into +# several files, each with one index section. +# +# Usage: genindex.pl <ind-file> +# +# If <ind-file> has no extension ``.ind'', this extension will be added. +# ---------------------------------------------------------------------- +# Dieses perl Script spaltet den Index des scrguide in mehrere getrennte +# Dateien auf, von denen jede jeweils einen Index-Abschnitt enthält. +# +# Verwendung: genindex.pl <ind-Datei> +# +# Wenn die <ind-Datei> ohne Endung ".ind" angegeben wird, so wird diese +# Endung automatisch angehängt. +# ====================================================================== + +use strict; +use Fcntl; + +my $indexinput = $ARGV[0]; +my $indexbase; +my $line; +my $entry = ""; +my %indfile; + +$indexinput = "$indexinput.ind" if ( ! ( $indexinput =~ /^.*\.ind\z/ ) ); +$indexbase = $1 if $indexinput =~ /^(.*)\.ind/; + +print "Generate multiindex for $indexinput\n"; + +# pass 1: search for and open destination index files +open (IDX, "<$indexinput") || + die "Cannot open $indexinput for reading\n"; +print "Search for index:\n"; +while ( <IDX> ) { + if ( /\\UseIndex *\{([^\}]*)\}/ ) { + my $file; + if ( !$indfile{"$1"} ) { + print " Open new index $indexbase-$1.ind\n"; + open ( $file, ">$indexbase-$1.ind" ) || + die "Cannot open $indexbase-$1.ind for writing\n"; + $indfile{"$1"} = $file; + } + } +} +# we must have a general index +if ( !$indfile{"gen"} ) { + print " Open new index $indexbase-gen.ind\n" ; + open ( $indfile{"gen"}, ">$indexbase-gen.ind" ) || + die "Cannot open $indexbase-gen.ind for writing\n"; +} + +# pass 2: copy to destination index files +seek (IDX, 0, 0) || + die "Cannot rewind $indexinput\n"; +print "Copy entries:\n"; +# step 1: copy to every index file until first \indexsectione +while ( defined( ( $line = <IDX> ) ) + && ( ! ( $line =~ /^( *\\indexsection *\{)/ ) ) ) { + printtoallind( "$line" ); + $line = ""; +} +# copy also \indexsection-line +printtoallind( "$line" ) if ( $line ); + +# step 2: read complete \indexsection, \indexspace, \item, \subitem or +# \subsubitem and process it (= copy it to destination index files) +while ( $line = <IDX> ) { + if ( $line =~ /^ *((\\indexsection|\\end) *\{|\\indexspace)/ ) { + processentry( "$entry" ); + $entry = ""; + printtoallind( "$line" ); + } elsif ( $line =~ /^ *\\(sub(sub)?)?item +/ ) { + processentry( "$entry" ); + $entry = $line; + } else { + $entry = "$entry$line"; + } +} + +close (IDX); +closeallind (); + +# post optimization of all destination index files +print "Optimize every index:\n"; +optimizeallind (); + +exit; + +# close all destination index files +sub closeallind { + my $name; + my $file; + while (($name,$file) = each %indfile) { + print " Close $indexbase-$name.ind\n" ; + close ($file); + $indfile{"$name"}=0; + } +} + +# optimize all destination index files +sub optimizeallind { + my $name; + my $file; + while (($name,$file) = each %indfile) { + print " $indexbase-$name.ind\n"; + optimizeind( "$name" ); + } +} + +# print arg 1 to all destination index files +sub printtoallind { + my $line = shift; + my $name; + my $file; + while (($name,$file) = each %indfile) { + print ($file $line); + } +} + +# process an index entry (copy it to valid destination index files) +sub processentry { + my $line = shift; + my $file = $indfile{"gen"}; + if ( $line =~ /\\UseIndex *\{([^\}]*)\} *(.*)/ ) { + $file = $indfile{"$1"}; + print ($file $line); + } else { + print ($file $line); + } +} + +# optimize an index files (remove \indexsection without \item) +sub optimizeind { + my $idx = shift; + my $interstuff = ""; + my $line; + + open (IN, "<$indexbase-$idx.ind" ) || + die "Cannot open $indexbase-$idx.ind for reading"; + open (OUT, ">$indexbase-$idx.new" ) || + die "Cannot open $indexbase-$idx.new for writing"; + + while ( $line=<IN> ) { + if ( $line =~ /^ *\\indexspace/ ) { + $interstuff = "\n$line"; + } elsif ( ( $line =~ /^ *\\indexsection *\{/ ) || + ( $line =~ /^$/ ) ) { + $interstuff = "$interstuff$line"; + } else { + print (OUT $interstuff) if ( !( $interstuff =~ /^$/ ) + && !( $line =~ /^ *\\end\{theindex\}/ ) ); + $interstuff = ""; + print (OUT $line); + } + } + + close (OUT); + close (IN); + unlink "$indexbase-$idx.ind" || + die "Cannot delete $indexbase-$idx.ind"; + rename "$indexbase-$idx.new", "$indexbase-$idx.ind" || + die "Cannot rename $indexbase-$idx.new to §indexbase-$idx.ind"; +} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/Makefile b/Master/texmf-dist/source/latex/koma-script/doc/english/Makefile new file mode 100644 index 00000000000..651ac8e7daa --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/Makefile @@ -0,0 +1,50 @@ +# ====================================================================== +# Makefile +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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 +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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. +# ====================================================================== + +# ---------------------------------------------------------------------- +# Directory with basics +BASEDIR ?= $(PWD)/../../ +DOCDIR = $(BASEDIR)doc/ +# language +LANGUAGE = english +LANGUAGESHORTCUT = en +LANGUAGELONG = english + +include $(DOCDIR)Makefile.guide + +# +# end of file `Makefile' 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 new file mode 100644 index 00000000000..66dea8ddbf7 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/adrconvnote.tex @@ -0,0 +1,96 @@ +% ====================================================================== +% adrconvnote.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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. +% ---------------------------------------------------------------------- +% adrconvnote.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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 adrconv of the KOMA-Script guide +% Maintained by Jens-Uwe Morawski (with help from Markus Kohm) +% +% ---------------------------------------------------------------------- +% +% Kapitel ĂĽber adrconv in der KOMA-Script-Anleitung +% Verwaltet von Jens-Uwe Morawski (mit UnterstĂĽtzung von Markus Kohm) +% +% ====================================================================== + +\ProvidesFile{adrconvnote.tex}[{2005/11/27 KOMA-Script guide (chapter: + adrconv)}] +% Date of translated german file: 2005/08/10 + +\chapter{Creating Address Files from a Address Database}% +\labelbase{addrconv}% +\index{address file}% +\index{address database}% +\IndexPackage{addrconv} + +In former versions of \KOMAScript{} the package \Package{addrconv} was a +permanent part of the \KOMAScript{} sytem. The chief involvment with +\KOMAScript{} was that with the help of \Package{addrconv} it was possible to +create address files from a address database in \BibTeX{} format. Next the +address file could be used for the \KOMAScript{} letter class or with the +package \Package{scraddr}. + +\begin{lstlisting} + @address{HMUS, + name = {Carl McExample}, + title = {Dr.}, + city = {Anywhere}, + zip = 01234, + country = {Great Britain}, + street = {A long Road}, + phone = {01234 / 5 67 89}, + note = {always forget his birthday}, + key = {HMUS}, + } +\end{lstlisting} + +From entries, as can be seen above, address files can be generated. For this +\Package{addrconv} employs \BibTeX{} and some \BibTeX{} styles. Additionally +there are some \LaTeX{} files which help to create various telephon and +address lists for printing. + +The package \Package{addrconv} was indeed a separate package, since besides +what is required for \KOMAScript{} it includes some interessting features +more. Therefore the package \Package{addrconv}, as announced in the previous +\KOMAScript{} release, is removed from the \KOMAScript{} system. + +The package \Package{adrconv}, only one \emph{d}, replaces \Package{addrconv} +entirely. If it is not included in your \TeX{} distribution then it can be +downloaded from \cite{package:adrconv} and you can install it separately. + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../guide" +%%% End: 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 new file mode 100644 index 00000000000..bfec76cae44 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/guide-english.tex @@ -0,0 +1,424 @@ +% ====================================================================== +% guide-english.tex +% Copyright (c) Markus Kohm, 2002-2006 +% +% 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-english.tex +% Copyright (c) Markus Kohm, 2002-2006 +% +% 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. +% ====================================================================== +% +% Language dependencies (english) of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Sprachabhängigkeiten (english) der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ====================================================================== +% +\ProvidesFile{guide-english.tex}[{2006/05/10 + KOMA-Script guide language dependencies}] +% +% \section{Title} +% +% \begin{macro}{\GuideSubject} +% \begin{macro}{\GuideTitle} +% \begin{macro}{\GuideSubTitle} +% \begin{macro}{\GuideAuthorHeadline} +% \begin{macro}{\GuideWarrantyHeadline} +% \begin{macro}{\GuideWarranty} +% \begin{macro}{\GuideCopyright} +% \begin{macro}{\GuideDedication} +% Language dependencies of all the title pages. +% \begin{macrocode} +\newcommand*{\GuideSubject}{The Guide}% +\newcommand*{\GuideTitle}{\KOMAScript}% +\newcommand*{\GuideSubTitle}{a versatile \LaTeXe{} bundle}% +\newcommand*{\GuideAuthorHeadline}{Authors of the \KOMAScript{} Bundle}% +\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 + responsibility for errors or omissions. No liability is assumed for + incidental or consequential damages in connection with or arising out of the + use of the inromation or programs contained here.\par\medskip% + Many of the designations used by manufacturers and sellers to distinguish + their products are claimed as trademarks. Where those designations appear in + this book, and the authors were aware ot a trademark claim, the designations + have been printed with initial capital letters or in all capitals.}% +\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 + \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 + explicit, additional authorization by the authors.}% +\newcommand*{\GuideDedication}{To All Friends of Typography!}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \section{CTAN Server to be Used} +% +% \begin{macro}{\GuideCTANserver} +% \begin{macrocode} +\newcommand*{\GuideCTANserver}{ftp.ctan.org} +% \end{macrocode} +% \end{macro} +% +% +% \section{Terms} +% +% Some terms, e.g. used at index notes. +% +% \begin{macro}{\GuideClass} +% The term »class«. +% \begin{macrocode} +\newcommand*{\GuideClass}{class} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideCounter} +% The term »counter«. +% \begin{macrocode} +\newcommand*{\GuideCounter}{counter} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideEnvironment} +% The term »environment«. +% \begin{macrocode} +\newcommand*{\GuideEnvironment}{environment} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideExample} +% The term »Example« used at a kind of heading, so it should be upper case. +% \begin{macrocode} +\newcommand*{\GuideExample}{Example} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideFile} +% The term »file«. +% \begin{macrocode} +\newcommand*{\GuideFile}{file} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideFloatstyle} +% The term »\Package{float} style«. +% \begin{macrocode} +\newcommand*{\GuideFloatstyle}{\Package{float} style} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideFontElement} +% The term »element«. +% \begin{macrocode} +\newcommand*{\GuideFontElement}{element} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideLength} +% The term »length«. +% \begin{macrocode} +\newcommand*{\GuideLength}{length} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideMacro} +% \begin{macro}{\GuideCommand} +% The term »command«. +% \begin{macrocode} +\newcommand*{\GuideMacro}{command} +\let\GuideCommand\GuideMacro +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\GuideOption} +% The term »option«. +% \begin{macrocode} +\newcommand*{\GuideOption}{option} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuidePackage} +% The term »package«. +% \begin{macrocode} +\newcommand*{\GuidePackage}{package} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuidePagestyle} +% The term »page style«. +% \begin{macrocode} +\newcommand*{\GuidePagestyle}{page style} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuidePLength} +% \begin{macro}{\GuidePseudoPrefix} +% The prefix »pseudo« at the term »pseudo length« and the term itself. +% \begin{macrocode} +\newcommand*{\GuidePseudoPrefix}{pseudo } +\newcommand*{\GuidePLength}{\GuidePseudoPrefix\GuideLength} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\GuideVariable} +% The termo »variable«. +% \begin{macrocode} +\newcommand*{\GuideVariable}{variable} +% \end{macrocode} +% \end{macro} +% +% +% \section{Index} +% +% \begin{macro}{\GuidegenIndex} +% \begin{macro}{\GuidecmdIndex} +% \begin{macro}{\GuidecmdIndexShort} +% \begin{macro}{\GuidelenIndex} +% \begin{macro}{\GuidelenIndexShort} +% \begin{macro}{\GuideelmIndex} +% \begin{macro}{\GuideelmIndexShort} +% \begin{macro}{\GuidefilIndex} +% \begin{macro}{\GuidefilIndexShort} +% \begin{macro}{\GuideoptIndex} +% \begin{macro}{\GuideoptIndexShort} +% The titles and short titles of each single index. +\newcommand*{\GuidegenIndex}{General Index}% +\newcommand*{\GuidecmdIndex}{Index of Commands, Environments, and Variables}% +\newcommand*{\GuidecmdIndexShort}{Index of Commands etc.}% +\newcommand*{\GuidelenIndex}{Index of Lengths and Counters}% +\newcommand*{\GuidelenIndexShort}{Index der Lengths etc.}% +\newcommand*{\GuideelmIndex}{Index of Elements with Capability of + Font Adjustment}% +\newcommand*{\GuideelmIndexShort}{Index of Elements}% +\newcommand*{\GuidefilIndex}{Index of Files, Classes, and Packages}% +\newcommand*{\GuidefilIndexShort}{Index of Files etc.}% +\newcommand*{\GuideoptIndex}{Index of Class and Package Options}% +\newcommand*{\GuideoptIndexShort}{Index of Options}% +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\GuideIndexPreamble} +% The preamble text of the whole index. +\newcommand*{\GuideIndexPreamble}{% + There are two kinds of page numbers at this index. The bold printed numbers + show the pages of declaration or explanation of the topic. The normal + printed numbers show the pages of using a topic.% +} +% \end{macro} +% +% +% \section{Bibliography} +% +% \begin{macro}{\GuideBibPreamble} +% \begin{macrocode} +\newcommand*{\GuideBibPreamble}{% + In the following you can find many references. All of them are referenced + from the main text. In many cases the reference points to documents or + directories which can be accessed via Internet. In these cases the + reference includes a URL instead of a publisher. If the reference points to + a \LaTeX{} package then the URL is written in the form + ``\url{CTAN://}\emph{destination}''. The prefix ``\url{CTAN://}'' means the + \TeX{} archive on a CTAN server or mirror. For example, you can substitude + the prefix with \url{ftp://\GuideCTANserver/tex-archive/}. For \LaTeX{} + packages it is also important to mention that we have tried to give a + version number appropriate to the text that cites the reference. But for + some packages is is very difficult to find a consistent version number and + release date. Additionally the given version is not always the current + version. If you want install new packages take care that the package is the + most up-to-date version and check first whether the package is already + available on your system or not.% +} +% \end{macrocode} +% \end{macro} +% +% +% \section{Change Log} +% +% \begin{macro}{\GuideChangeLogPreamble} +% The preamble of the change log index. +% \begin{macrocode} +\newcommand*{\GuideChangeLogPreamble}{% + At this list of changes you will find all significant changes of the user + interface of the \KOMAScript{} bundle at the last few versions. The list was + sorted about the names of the classes and packages and their version. The + numbers behind the versions are the pages, where the changes are + described. At the margins of these pages you will find corresponding version + marks.% +} +% \end{macrocode} +% \end{macro} +% +% +% \section{Jens-Uwe's Example Text} +% +% TODO: These should be merged with other example text. +% \begin{macro}{\XmpText} +% Example text command; the default definition (50) returns the whole text. +% \begin{macrocode} +\newcommand*{\XmpText}[1][50]{% + \ifnum #1<51 + This f\/ill text is currently seized by 130 million receptors + in your retina. + \ifnum #1>1 + Thereby the nerve cells are put in a state of stimulation, + which spreads + \ifnum #1>2 + into the rear part of your brain originating from + \ifnum #1>3 + the optic nerve. + From there the stimulation is transmitted in a split second + also in other parts of your cerebrum. + Your frontal lobe becomes stimulated. + Intention-impulses spread from there, which your + central nervous + \fi\fi\fi + \fi + \ifnum #1>49 + system transforms in actual deeds. + Head and eyes already react. + They follow the text, taking the informations present there + and transmit them via the optic nerve. + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\XmpTopText} +% \begin{macro}{\XmpBotText} +% These two commands are language-dependent, since in some languages +% additional commands may required. +% \begin{macrocode} +\newcommand*{\XmpTopText}{\XmpText[3]} +\newcommand*{\XmpBotText}{\XmpText[2]} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\XmpMarginTextA} +% \begin{macro}{\XmpMarginTextB} +% Margin notes. +% \begin{macrocode} +\newcommand*{\XmpMarginTextA}{Retina} +\newcommand*{\XmpMarginTextB}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \section{Language Extensions} +% +% Some terms should be part of the captions of the language. +% \begin{macro}{\GuideLanguageExtensions} +% This macro has to be defined, because the class will add it to the language +% at |\begin{document}| and it will also call it. +% \begin{macrocode} +\newcommand*{\GuideLanguageExtensions}{% +% \end{macrocode} +% \begin{macro}{\pageautorefname} +% The term »page« that will be put before the reference of a page set by +% |\autopageref|. +% \begin{macrocode} + \def\pageautorefname{page}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\subsectionautorefname} +% \begin{macro}{\subsubsectionautorefname} +% \begin{macro}{\paragraphautorefname} +% \begin{macro}{\subparagraphautorefname} +% I'll call them all »section«. +% \begin{macrocode} + \def\figureautorefname{figure}% + \def\tableautorefname{table}% + \def\appendixautorefname{appendix}% + \let\subsectionautorefname=\sectionautorefname + \let\subsubsectionautorefname=\sectionautorefname + \let\paragraphautorefname=\sectionrefname + \let\subparagraphautorefname=\sectionrefname +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\changelogname} +% The name of the change log index. +% \begin{macrocode} + \def\changelogname{Change Log} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +} +% \end{macrocode} +% \end{macro} +% +% +% \section{Hyphenation} +% +% This is not realy a good place to put them~-- but better late than never: +% \begin{macrocode} +\hyphenation{% +} +% \end{macrocode} +% +% +% +\endinput +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: "guide" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/htmlsetup b/Master/texmf-dist/source/latex/koma-script/doc/english/htmlsetup new file mode 100644 index 00000000000..c0c6857792b --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/htmlsetup @@ -0,0 +1,63 @@ +# ====================================================================== +# htmlsetup +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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. +# ---------------------------------------------------------------------- +# htmlsetup +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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. +# ====================================================================== + +$baselink="scrguien.pdf"; +$htmlhead="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\"> +<html> +<head><title>Index</title> +<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"> +</head> +<body> +<h1>Index of the KOMA-Script Guide</h1> +<p>This is an index of the elements defined at KOMA-Script. This index is related to the <a href=\"scrguien.pdf\">KOMA-Script guide</a>. To improve the survey this index has serveral functional sections:</p> +"; +$htmlend="<p> +<a href=\"http://validator.w3.org/check?uri=referer\"><img +src=\"http://www.w3.org/Icons/valid-html40\" +alt=\"Valid HTML 4.0 Strict\" height=\"31\" width=\"88\"></a> +</p> +</body></html>"; +%titles=( "option" => "Options", + "macro" => "Commands", + "environment" => "Environments", + "plength" => "Pseudolengths", + "variable" => "Variables", + "pagestyle" => "Page Styles", + "counter" => "Counter", + "floatstyle" => "Styles for the float Package" ); + +# 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 new file mode 100644 index 00000000000..4bd76279e91 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/introduction.tex @@ -0,0 +1,228 @@ +% ====================================================================== +% introduction.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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. +% ---------------------------------------------------------------------- +% introduction.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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. +% ====================================================================== +% +% Introduction of the KOMA-Script guide +% Maintained by Markus Kohm +% Translation: Kevin Pfeiffer, Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Einleitung der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% Übersetzung: Kevin Pfeiffer, Markus Kohm +% +% ====================================================================== + +\ProvidesFile{introduction.tex}[2006/07/04 KOMA-Script guide introduction] +% Date of translated german file: 2006-07-01 + +\chapter{Introduction} +\labelbase{introduction} + +\section{Preface}\label{sec:introduction.preface} + +The {\KOMAScript} bundle is actually several packages and classes. It +provides counterparts or replacements for the standard \LaTeX{} classes such +as \emph{article}, \emph{book}, etc. (see \autoref{cha:maincls}), but offers +many additional features and its own unique look and feel. + +The \KOMAScript{} user guide is intended to serve the advanced as well as the +inexperienced \LaTeX{} user and is accordingly quite large. The result is a +compromise and we hope that you will keep this in mind when using it. +Your suggestions for improvement are, of course, always welcome. + + +\section{Structure of the Guide}\label{sec:introduction.structure} + +The \KOMAScript{} user guide is not intended to be a \LaTeX{} primer. +Those new to \LaTeX{} should look at \emph{The Not So Short Introduction +to \LaTeXe{}} \cite{lshort} or \emph{\LaTeXe{} for Authors} +\cite{latex:usrguide} or a \LaTeX{} reference book. You will also find +useful information in the many \LaTeX{} FAQs, including the \emph{TeX +Frequently Asked Questions on the Web} \cite{UK:FAQ}. + +\begin{Explain} + In this guide you will find supplemental information about \LaTeX{} and + \KOMAScript{} in (san serif) paragraphs like this one. + The information given in these explanatory sections is not essential for + using \KOMAScript{}, but if you experience problems you should + take a look at it -- particularly before sending a bug report. +\end{Explain} + +If you are only interested in using a single \KOMAScript{} class or +package you can probably successfully avoid reading the entire guide. +Each class and package typically has its own chapter; however, the three +main classes (\Class{scrbook}, \Class{scrrprt}, and \Class{scrartcl}) +are introduced together in chapter three. Where an example or note only +applies to one or two of the three classes, it is called out in the +margin. \OnlyAt{\Class{Like this.}} + +\begin{Explain} + The primary documentation for \KOMAScript is in German and has been + translated for your convenience; like most of the \LaTeX{} world, its + commands, environments, options, etc., are in English. In a few cases, the + name of a command may sound a little strange, but even so, we hope and + believe that with the help of this guide \KOMAScript{} will still be usable + and useful to you. +\end{Explain} + + +\section{History of \KOMAScript}\label{sec:introduction.history} + +In the early 1990s, Frank Neukam needed a method to publish an +instructor's lecture notes. At that time \LaTeX was \LaTeX2.09 and there +was no distinction between classes and packages -- there were only +\emph{styles}. Frank felt that the standard document styles were not +good enough for his work; he wanted additional commands and +environments. At the same time he was interested in typography and, +after reading Tschichold's \emph{Ausgewählte Aufsätze über Fragen der +Gestalt des Buches und der Typographie} (Selected Articles on the +Problems of Book Design and Typography) \cite{JTsch87}, he decided to +write his own document style -- and not just a one-time solution to his +lecture notes, but an entire style family, one specifically designed for +European and German typography. Thus \Script{} was born. + +Markus Kohm, the developer of \KOMAScript{}, came across {\Script} in +December 1992 and added an option to use the A5 paper format. This and +other changes were then incorporated in to\ScriptII{}, released by Frank +in December 1993. + +Beginning in mid-1994, \LaTeXe{} became available and brought with it +many changes. Users of \ScriptII{} were faced with either limiting their +usage to \LaTeXe{}'s compatibility mode or giving up \Script{} +altogether. This situation lead Markus to put together a new \LaTeXe{} +package, released on 7~July 1994 as \KOMAScript{}; a few months later +Frank declared \KOMAScript{} to be the official successor to \Script{}. +\KOMAScript{} originally provided no \emph{letter} class, but this +deficiency was soon remedied by Axel Kielhorn, and the result became part +of \KOMAScript{} in December 1994. Axel also wrote the first true +German-language user guide, which was followed by an English-language +guide by Werner Lemberg. + +Since then much time has passed. \LaTeX{} has changed in only minor ways, but +the \LaTeX{} lanscape has changed a great deal; many new packages and classes +are now available and \KOMAScript{} itself has grown far beyond what it was in +1994. The initial goal was to provide good \LaTeX classes for German-language +authors, but today its primary purpose is to provide more-flexible +alternatives to the standard classes. \KOMAScript{}'s success has lead to +e-mail from users all over the world and this has lead to many new macros -- all +needing documentation; hence this ``small guide.'' + + +\section{Special Thanks}\label{sec:introduction.thanks} + +Acknowledgements in the introduction? No, the proper acknowledgements can be +found in the addendum. My comments here are not intended for the authors of +this guide -- and those thanks should rightly come from you, the reader, +anyhow. I, the author of \KOMAScript, would like to extend my personal thanks +to Frank Neukam. Without his \Script{} family, \KOMAScript{} would not have +come about. I am indebted to the many persons who have contributed to +{\KOMAScript}, but with their indulgence, I would like to specifically mention +Jens-Uwe Morawski and Torsten Kr\"uger. The English translation of the guide +is, among many other things, due to Jens's untiring commitment. Torsten was +the best beta-tester I ever had. His work has particularly enhanced the +usability of \Class{scrlttr2} und \Class{scrpage2}. Many thanks to all who +encouraged me to go on, to make things better and less error-prone, or to +implement additional features. + +Thanks go as well to DANTE, Deutschsprachige +Anwendervereinigung \TeX~e.V\kern-.18em, (the German-Language TeX User Group). +Without the DANTE server, \KOMAScript{} could not have been released and +distributed. Thanks as well to everybody in the \TeX{} newsgroups and mailing +lists who answer questions and have helped me to provide support for +\KOMAScript{}. + +\section{Legal Notes}\label{sec:introduction.legal} + +{\KOMAScript} was released under the {\LaTeX} Project Public License. You +will find it in the file \File{lppl.txt}. An unofficial German-language +translation is also available in \File{lppl-de.txt} and is valid for all +German-speaking countries. + +\iffree{This document and the \KOMAScript{} bundle are provided ``as is'' and +without warranty of any kind.}% +{Please note: the printed version of this guide is not free under the +conditions of the LaTeX{} Project Public Licence. If you need a free version +of this guide, use the version that is provided as part of the \KOMAScript{} +bundle.} + +\section{Installation}\label{sec:introduction.installation} +Installation information can be found in the file \File{INSTALL.txt}. You +should also read the documentation that comes with the \TeX{} distribution you +are using. + +\section{Bugreports and Other Requests} +\label{sec:introduction.errors} + +If you think you have found an error in the documentation or a bug in one of +the \KOMAScript{} classes, one of the \KOMAScript{} packages, or another +part of \KOMAScript{}, please do the following: first have a look at +CTAN to see if a newer version of \KOMAScript{} is available; in this case +install the applicable section and try again. + +If you are using the most recent version of \KOMAScript and still have a +bug, please provide a short \LaTeX{} document that demonstrates the problem. You +should only use the packages and definitions needed to demonstrate the +problem; do not use any unusual packages. + +By preparing such an example it often becomes clear whether the problem is +truly a \KOMAScript{} bug or something else. Please report \KOMAScript{} (only) +bugs to the author of \KOMAScript{}. Please use \File{komabug.tex}, an +interactive \LaTeX{} document, to generate your bug report and send it to the +address you may find at \File{komabug.tex}. + +If you want to ask your question in a newsgroup or mailing list, you +should also include such an example as part of your question, but in this +case, using \File{komabug.tex} is not necessary. To find out the version +numbers of all packages in use, simply put \Macro{listfiles} in the preamble of +your example and read the end of the \File{log}-file. + + +\section{Additional Informations} +\label{sec:introduction.moreinfos} + +Once you become an experienced \KOMAScript{} user you may want to look at some +more advanced examples and information. These you will find on the +\KOMAScript{} documentation web site \cite{homepage}. The main +language of the site is German, but nevertheless English is +welcome. + +\endinput +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../guide.tex" +%%% End: 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 new file mode 100644 index 00000000000..50d661953d5 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scraddr.tex @@ -0,0 +1,235 @@ +% ====================================================================== +% scraddr.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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. +% ---------------------------------------------------------------------- +% scraddr.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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 scraddr of the KOMA-Script guide +% Maintained by Jens-Uwe Morawski (with help from Markus Kohm) +% +% ---------------------------------------------------------------------- +% +% Kapitel ĂĽber scraddr in der KOMA-Script-Anleitung +% Verwaltet von Jens-Uwe Morawski (mit UnterstĂĽtzung von Markus Kohm) +% +% ====================================================================== + +\ProvidesFile{scraddr.tex}[2005/11/27 KOMA-Script guide (chapter: scraddr)] +% Date of translated german file: 2002/10/15 + +\chapter{Access to Address Files with \Package{scraddr}}% +\labelbase{scraddr}% +\BeginIndex{Package}{scraddr} + +\section{Overview}\label{sec:scraddr.overview} +The package \Package{scraddr} is a small extension to +the \KOMAScript{} letter class. +Its aim is to make access to the data of address files +more flexible and easier. +Basically the package implements a new loading mechanism +for address files, which contain address entries of the kind +described in the previous chapter. + +\begin{Declaration} +\Macro{InputAddressFile}\Parameter{file name} +\end{Declaration}% +\BeginIndex{Cmd}{InputAddressFile}% +% +The command \Macro{InputAddressFile} reads the content +of the address file, given as its parameter. +If the file does not exist the command returns an +error message. + +For every entry in the address file the command generates a +set of macros for accessing the data. +First a short reminder of how an address entry is structured. + +\begin{Declaration}% + \Macro{adrentry}\Parameter{Lastname}\Parameter{Firstname}% + \Parameter{Address}\Parameter{Telephone}\Parameter{F1}\Parameter{F2}% + \Parameter{Comment}\Parameter{Key}\\ + \Macro{addrentry}\Parameter{Lastname}\Parameter{Firstname}% + \Parameter{Address}\Parameter{Telephone}\Parameter{F1}\Parameter{F2}% + \Parameter{F3}\Parameter{F4}\Parameter{Key} +\end{Declaration}% +The last parameter is the identifier of an entry, thus the +\PName{Key} has to be unique and not blank. If the file contains more +than one entry with the same \PName{Key} value, the last occurrence +will be used. The \PName{Key} should only be composed of letters. +\begin{Declaration} +\Macro{Name}\Parameter{Key}\\ +\Macro{FirstName}\Parameter{Key}\\ +\Macro{LastName}\Parameter{Key}\\ +\Macro{Address}\Parameter{Key}\\ +\Macro{Telephone}\Parameter{Key}\\ +\Macro{FreeI}\Parameter{Key}\\ +\Macro{FreeII}\Parameter{Key}\\ +\Macro{Comment}\Parameter{Key}\\ +\Macro{FreeIII}\Parameter{Key}\\ +\Macro{FreeIV}\Parameter{Key} +\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}{Comment}% +% +These commands give access to data of your address file. +The parameter \PName{Key} is the same as in the +\Macro{adrentry} or \Macro{addrentry} command. +In the address of letters often both, first-name and +last-name, are required. +The command \Macro{Name}\PParameter{Key} is an abridgement for +\Macro{FirstName}\PParameter{Key} \Macro{LastName}\PParameter{Key}. + +\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{Usage}\label{sec:scraddr.usage} + +First of all, we need an address file with valid address entries. +In this example the file has the name \emph{lotr.adr} and contains +the following entries. +\begin{lstlisting} + \addrentry{Baggins}{Frodo}% + {The Hill\\ Bag End/Hobbiton in the Shire}{}% + {Bilbo Baggins}{pipe-weed}% + {the Ring-bearer}{Bilbo's heir}{FRODO} + \adrentry{Gamgee}{Samwise}% + {Bagshot Row 3\\Hobbiton in the Shire}{}% + {Rosie Cotton}{taters}% + {the Ring-bearer's faithful servant}{SAM} + \adrentry{Bombadil}{Tom}% + {The Old Forest}{}% + {Goldberry}{trill queer songs}% + {The Master of Wood, Water and Hill}{TOM} +\end{lstlisting} + +The 4\textsuperscript{th} parameter, the telephone number, has been left +blank. If you know the story behind these addresses you +will agree that a telephone number makes no sense here. +The command \Macro{InputAddressFile} is used to load +the address file shown above. +\begin{lstlisting} + \InputAddressFile{lotr} +\end{lstlisting} + + +With the help of the commands introduced in this chapter +we can now write a letter to the old \textsc{Tom Bombadil}. +In this letter we ask him, if he can remember two +fellow-travelers from Elder Days. +\begin{lstlisting} + \begin{letter}{\Name{TOM}\\\Address{TOM}} + \opening{Dear \FirstName{TOM} \LastName{TOM},} + + or \FreeIII{TOM}, how your delightful \FreeI{TOM} calls + you. + Can you remember Mr.\,\LastName{FRODO}, + strictly speaking \Name{FRODO}, since there was + Mr.\,\FreeI{FRODO} too. + He was \Comment{FRODO} in the Third Age + and \FreeIV{FRODO} + \Name{SAM}, \Comment{SAM}, has attended him. + + Their pasions were very wordly. + \FirstName{FRODO} enjoyed to smoke \FreeII{FRODO}, + his attendant has appreciate a good meal with + \FreeII{SAM}. + + Do you remember? Certainly Mithrandir has told you much + about their deeds and adventures . + \closing{``O spring-time and summer-time + and spring again after!\\ + O wind on the waterfall, + and the leaves' laughter!''} + \end{letter} +\end{lstlisting} +The 5\textsuperscript{th} and 6\textsuperscript{th} parameter of the +\Macro{adrentry} or \Macro{adrentry} command are for free use. They are +accessible with the commands \Macro{FreeI} and \Macro{FreeII}. In this +example the 5\textsuperscript{th} parameter contains the name of a person who +is the most important in the life of the entry's person, the +6\textsuperscript{th} contains the person's passion. The +7\textsuperscript{th} parameter is a comment or in general also a free +parameter. The commands \Macro{Comment} or \Macro{FreeIII} give access to the +data. Using \Macro{FreeIV} is only valid for \Macro{addrentry} entries; for +\Macro{adrentry} entries it results in a warning. +\EndIndex{Package}{scraddr} + +\section{Package Warning Options} + +As mentioned above the command \Macro{FreeIV} leads +to a fault if it is used for \Macro{adrentry} entries. + +Therefore \Package{scraddr} supports package options +in order to give the user the possibility to +choose how the package should react in such situation. +It is possible to choose different settings between +\emph{ignore} and \emph{rupture} of the \LaTeX{} run. + +\begin{Declaration} +\Option{adrFreeIVempty}\\ +\Option{adrFreeIVshow}\\ +\Option{adrFreeIVwarn}\\ +\Option{adrFreeIVstop} +\end{Declaration} +% +\BeginIndex{Option}{adrFreeIVempty}\BeginIndex{Option}{adrFreeIVshow} +\BeginIndex{Option}{adrFreeIVwarn}\BeginIndex{Option}{adrFreeIVstop} +% +One of these options can be given in the optional argument +of the \Macro{usepackage} command. The default setting is +\Option{adrFreeIVshow}. + +\begin{labeling}[\,--]{\Option{adrFreeIVempty}} +\item[\Option{adrFreeIVempty}] + the command \Macro{FreeIV} will be ignored +\item[\Option{adrFreeIVshow}] + ``(entry FreeIV undefined at \PName{Key})'' will be + written as warning in the text +\item[\Option{adrFreeIVwarn}] + writes a warning in the log-file +\item[\Option{adrFreeIVstop}] + the \LaTeX{} run will be interrupted with an error message +\end{labeling} +\EndIndex{Option}{adrFreeIVempty}\EndIndex{Option}{adrFreeIVshow} +\EndIndex{Option}{adrFreeIVwarn}\EndIndex{Option}{adrFreeIVstop} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../guide" +%%% End: 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 new file mode 100644 index 00000000000..7dd0e09f809 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrbookreportarticle.tex @@ -0,0 +1,4788 @@ +% ====================================================================== +% scrbookreportarticle.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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-2006 +% +% 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}[2006/07/01 KOMA-Script guide (chapter: +scrbook, scrreprt, scrartcl)] +% Date of translated german file: 2005-11-26 + +% TODO: See further TODO comments + +\chapter{The Main Classes \Class{scrbook}, \Class{scrrprt} and + \Class{scrartcl}} +\labelbase{maincls} + +\AddSeeIndex{command}{gen}{\GuidecmdIndexShort}{cmd} +\AddSeeIndex{macro}{gen}{\GuidecmdIndexShort}{cmd}% + +\begin{Explain} + The main classes of the {\KOMAScript} bundle are designed as + counterparts to the standard {\LaTeX} classes. This means that the + {\KOMAScript} bundle contains replacements for the three standard + classes \Class{book}\IndexClass{book}, + \Class{report}\IndexClass{report} and + \Class{article}\IndexClass{article}. There is also a replacement for + the standard class \Class{letter}\IndexClass{letter}. The + document class for letters is described in a separate chapter, + because it is fundamentally different from the three main classes + (see \autoref{cha:scrlttr2}).The names of the {\KOMAScript} + classes are composed of the prefix "\texttt{scr}" and the + abbreviated name of the corresponding standard class. In order to + restrict the length of the names to eight letters, the vowels, + starting with the last one, are left off if necessary. The + \autoref{tab:maincls.overview} shows an overview. The table also + includes the names of the \LaTeX2.09 style files that were used in + {\KOMAScript}. +\end{Explain} + +The simplest way to use a \KOMAScript-class instead of a standard one +is to substitute the class name in the \verb|\documentclass| command +according to \autoref{tab:maincls.overview}. Normally the document +should be processed without errors by \LaTeX{}, just like before the +substitution. The look however should be different. Additionally, the +\KOMAScript{} classes provide new possibilities and options that are +described in the following sections. + +\begin{table}[htbp] + \centering + \caption[Class correspondence]{Correspondence between + standard classes, \KOMAScript{} classes and + \Script{} styles.} + \begin{tabular}{ll} + \toprule + standard class & \KOMAScript{} class \\%& \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{scrlettr} \\%& \File{script\textunderscore l} \\ + \bottomrule + \end{tabular} + \label{tab:maincls.overview} +\end{table} + + +\section{The Options} +\label{sec:maincls.options} + + +This section describes the global options of the three main classes. +The majority of the options can also be found in the standard classes. +Since experience shows that many options of the standard classes are +unknown, their description is included here. This is a departure from +the rule that the \File{scrguide} should only describe those aspects +whose implementation differs from the standard one. + +Table~\ref{tab:maincls.stdOptions} lists those options that are set by +default in at least one of the {\KOMAScript} classes. The table shows +for each {\KOMAScript} main class if the option is set by default and +if it is even defined for that class. An undefined option cannot be +set, either by default or by the user. + +\begin{table}[htbp] + \centering + \caption{Default options of the \KOMAScript{} classes} + \begin{tabular}{llll} + 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{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 & & \\ + \Option{parindent} & + default & default & default \\ + \Option{tablecaptionbelow} & + default & default & default \\ + \Option{titlepage} & + default & default \\ + \Option{tocindent} & + default & default & default \\ + \Option{twoside} & + default & & \\ + \end{tabular} + \label{tab:maincls.stdOptions} +\end{table} + +\begin{Explain} + Allow me an observation before proceeding with the descriptions of + the options. It is often the case that at the beginning of a + document one is often unsure which options to choose for that + specific document. Some options, for instance the choice of paper + size, may be fixed from the beginning. But already the question of + which \Var{DIV} value to use could be difficult to answer initially. + On the other hand, this kind of information should be initially + irrelevant for the main tasks of an author: design of the document + structure, text writing, preparation of figures, tables and index. + As an author you should concentrate initially on the contents. When + that is done, you can concentrate on the fine points of + presentation. Besides the choice of options, this means correcting + things like hyphenation, page breaks, and the distribution of tables + and figures. As an example consider the + \autoref{tab:maincls.stdOptions} that I have moved repeatedly + between the beginning and the end of this section. The choice of the + actual position will only be made during the final production of the + document. +\end{Explain} +\par + +\subsection{Options for Page Layout} +\label{sec:maincls.typeareaOptions} + +With the standard classes the page layout\Index{page layout} is established by +the option files \File{size10.clo}, \File{size11.clo}, \File{size12.clo} (or +\File{bk10.clo}, \File{bk11.clo}, \File{bk12.clo} for the book class) and by +fixed values in the class definitions. The \KOMAScript{} classes, however, do +not use a fixed page layout, but one that depends on the paper +format\Index{paper format} and font size. For this task all three main classes +use the \Package{typearea} package\IndexPackage{typearea} (see +\autoref{cha:typearea}). The package is automatically loaded by the +\KOMAScript{} main classes. Therefore it is not necessary to use the command +\Macro{usepackage}\OParameter{package options}\PParameter{typearea} +explicitly. + + +\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}% +The basic options for the choice of paper format are not processed directly by +the classes. They are automatically processed by the \Package{typearea} +package as global options (see \autoref{sec:typearea.options}, +\autopageref{desc:typearea.option.letterpaper}). The options \Option{a5paper}, +\Option{a4paper}, \Option{letterpaper}, \Option{legalpaper} and +\Option{executivepaper} correspond to the options of the standard classes that +have the same name and define the same paper format. The page layout +calculated for each is different, however. +% +\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} + The options for the A, B, C or D format are actually not processed + by the \Package{typearea}, because they are global options, but + because the \KOMAScript{} classes explicitly pass them to the + \Package{typearea} package. This is caused by the way option + processing is implemented in the \Package{typearea} package and by + the operation of the underlying option passing and processing + mechanism of \LaTeX. + + This is also valid for the options, described subsequently, that set + the binding correcting, the divisor and the number of header lines. +\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} + +This subsection collects all the options that affect the document +layout, not only the page layout. Strictly speaking all page layout +options (see \autoref{sec:maincls.typeareaOptions}) are also +document layout options. The reverse is also partially true. + +\begin{Declaration} + \Option{oneside}\\ + \Option{twoside} +\end{Declaration}% +\BeginIndex{Option}{oneside} +\BeginIndex{Option}{twoside}% +These two options have the same effect as with 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 the 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 there +the main unit below ``part'' is the ``section''. The chapter level is +not available in \Class{scrartcl}. + +A chapter always begins with a new page. When the option +\Option{openany} is active, any page can be used. The option +\Option{openright} causes the chapter to begin with 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, +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} + + +\begin{Declaration} + \Option{cleardoublestandard}\\ + \Option{cleardoubleplain}\\ + \Option{cleardoubleempty} +\end{Declaration}% +\BeginIndex{Option}{cleardoublestandard}% +\BeginIndex{Option}{cleardoubleplain}% +\BeginIndex{Option}{cleardoubleempty}% +If one wishes the empty pages created by the \Macro{cleardoublepage} +command to have no headers or footers while using the standard +classes, the only possibility is to redefine the command +appropriately. {\KOMAScript} provides options that avoid this. The +option \Option{cleardoublestandard} enables the default +\Macro{cleardoublepage} behaviour. If the option +\Option{cleardoubleplain} is used, then the +\PValue{plain}\IndexPagestyle{plain} page style is applied to the +empty left page. The option \Option{cleardoubleempty} 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}% + + +\begin{Declaration} + \Option{titlepage}\\ + \Option{notitlepage} +\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}% + + +\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}% + The standard classes normally set + paragraphs\Index[indexmain]{paragraph} indented and without any + vertical inter-paragraph space. This is the best solution when + using a regular page layout, like the ones produced with the + \Package{typearea} package. If there where no indentation and no + vertical space, only the length of last line would give the reader a + reference point. In extreme cases, it is very difficult to detect if + a line is full or not. Furthermore, it is found that a marker at the + paragraph's end tends to be easily forgotten. A marker at the + paragraph's beginning is easily remembered. Inter-paragraph spacing + has the drawback of disappearing in some contexts. For instance, + after a displayed formula it would be impossible to detect if the + previous paragraph continues or if a new one begins. Also, when + starting to read at a new page it might be necessary to look at the + previous page in order determine if a new paragraph has been started + or not. All these problems disappear when using indentation. A + combination of indentation and vertical inter-paragraph spacing is + redundant and should be rejected. The + indentation\Index[indexmain]{indentation} is perfectly sufficient by + itself. The only drawback of indentation is the reduction of the + line length. The use of inter-paragraph spacing is therefore + justified when using short lines, for instance in a newspaper. +\end{Explain} + + +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 define an inter-paragraph spacing of +one line. The four \Option{halfparskip} options 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 full. The variants +without plus or star sign ensure a free space of 1\Unit{em}. The plus +variant ensures that at least a third of the line 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 change the spacing before, after and inside list +environments. This avoids the problem of having these environments or +the paragraphs inside them with 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}{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}% +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 approximating +header and text body. That doesn't mean that the header must be put +farther apart from the text body. Instead, the header should be +considered to belong 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. +% +\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}% +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 +"Chapter"\footnote{When using another language the word + "Chapter" is naturally translated to the appropriate language.}% +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 +running titles in the headers (see +\autoref{sec:maincls.pageStyle}). +% +\EndIndex{Option}{chapterprefix}% +\EndIndex{Option}{nochapterprefix}% + + +\begin{Declaration} + \Option{appendixprefix}\\ + \Option{noappendixprefix} +\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" +followed by the appendix letter. This is achieved by using the +\Option{appendixprefix} option. 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}% + + +\begin{Declaration} + \Option{onelinecaption}\\ + \Option{noonelinecaption} +\end{Declaration} +\BeginIndex{Option}{onelinecaption}% +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. + +\begin{Explain} + The avoidance of a special treatment for the caption has an + additional effect that is sometimes greatly desired. Footnotes + that appear inside a \Macro{caption} command often have a wrong + number assigned to them. This happens because the footnote counter + is incremented once when the line is measured. When the + \Option{noonelinecaption} 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 + effect. \KOMAScript{} classes contain a workaround, so if you have + footnotes at captions you simply should put the contents of the + figure or table into a minipage and everything will be nice. +\end{Explain} +% +\EndIndex{Option}{onelinecaption}% +\EndIndex{Option}{noonelinecaption}% + +\subsection{Options for Font Selection} +\label{sec:maincls.fontOptions} + +Font options are those options that affect the font size of the +document or the fonts of individual elements. Options that affect the +font style are also theoretically font options. However {\KOMAScript} +currently has no such options. + +\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}% +The options \Option{10pt}, \Option{11pt} and \Option{12pt} have the +same effect as the corresponding standard options. In contrast to the +standard classes, {\KOMAScript} can be used to choose other font +sizes\Index[indexmain]{font size}. However {\LaTeX} provides the +necessary class option files only for 10\Unit{pt}, 11\Unit{pt} und +12\Unit{pt}, so that the user must provide any other class option +files. The package \Package{extsizes} (see +\cite{package:extsizes})\IndexPackage{extsizes} can be used for that +task. Very big font sizes may lead to arithmetic overflow inside the +page layout calculations of the \Package{typearea} package. +% +\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}% +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 smaller +title font sizes. The resulting font sizes for headings at \Class{scrbook} and +\Class{scrreprt} shows\autoref{tab:maincls.structureElementsFont}, +\autopageref{tab:maincls.structureElementsFont}. At \Class{scrartcl} smaller +font sizes are 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 them +are described in \autoref{sec:maincls.layoutOptions}, +\autopageref{desc:maincls.option.chapterprefix}. +% +\EndIndex{Option}{smallheadings}% +\EndIndex{Option}{normalheadings}% +\EndIndex{Option}{bigheadings}% + +\subsection{Options Affecting the Table of Contents} +\label{sec:maincls.tocOptions} + +{\KOMAScript} has several options that affect the entries in the table +of contents\Index[indexmain]{table of contents}. The form of the table +of contents is fixed but several variations of the contents can be +obtained with the options provided. + +\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}% + Lists of tables and figures, index and bibliography are not normally + included in the table of contents. These entries are omitted in + classical typography because it is silently assumed that, if at all, + lists of figures and tables come after the table of contents, the + index comes at the end and the bibliography comes before the index. + Books with all these parts often include ribbons that can be used to + mark the location of these parts in the book, so that the reader + only has to look for them once. +\end{Explain} + +It is becoming increasingly common to find entries in the table of +contents for the lists of tables and figures, for the bibliography, +and, sometimes, even for the index. This is certainly related to the +recent trend of putting lists of figures and tables at the end of the +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 aforementioned lists +in the table of contents, there exists only one option +\Option{liststotoc} 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 +included in the table of contents. The index is also unnumbered since +it only includes references to the contents of the other sectional +units. + +The bibliography is a different kind of listing. It does not list the +contents of the present document but refers instead to external +documents. On these reasons it could be argued that it is a different +chapter (or section) and, as such, should be numbered. The option +\Option{bibtotocnumbered} has this effect, including the generation of +the corresponding entry in the table of contents. I think that a +similar reasoning would lead us to consider a classical list of +sources to be a separate chapter. Also, the bibliography is 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. + +The author of \KOMAScript{} doesn't like option +\Option{bibtotocnumbered}. He almost detests option +\Option{liststotocnumbered}. Because of this you won't find a detailed +description of this option. Nevertheless it exists. +% +\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}% +The table of contents is normally\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} setup 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}. + +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 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 column. +The space necessary for the unit numbers is determined 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 + 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 + using packages that affect the format of the table of contents, it + is possible that the use of options \Option{tocleft} and + \Option{tocindent} may lead to problems. In that case, one should + use neither of these global (class) option. + + If the \Option{tocleft} 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}% + +\subsection{Options for Lists of Floats} +\label{sec:maincls.listsOptions} + +The best known lists of floats are the list of figures and the list of tables. +With help from the \Package{float}\IndexPackage{float} package, for instance, +it is possible to produce new float environments with the corresponding lists. + +\begin{Explain} + Whether \KOMAScript{} options have any effect on lists of floats + produced by other packages depends mainly on those packages. This is + generally the case with the lists of floats produced by the + \Package{float}\IndexPackage{float} package. + + Besides the options described here, there are others that affect the + lists of floats though not their formatting or contents. Instead + they affect what is included in the table of contents. The + corresponding descriptions can therefore be found in + \autoref{sec:maincls.tocOptions}. +\end{Explain} + +\begin{Declaration} + \Option{listsindent}\\ + \Option{listsleft} +\end{Declaration}% +\BeginIndex{Option}{listsindent}% +\BeginIndex{Option}{listsleft}% +Lists of figures and tables\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} are +generally setup so that their numbering uses a fixed space. This +corresponds to the use of option \Option{listsindent}. + +If the numbers get 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 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} option are equally valid in this case. Please note +that when using the \Option{listsleft} option several \LaTeX{} runs are +necessary before the lists of floats achieve their final form. +% +\EndIndex{Option}{listsindent}% +\EndIndex{Option}{listsleft}% + + + +\subsection{Options Affecting the Formatting} +\label{sec:maincls.formattingOptions} + +Formatting options are all those options that affect the form or +formatting of the document and are not assigned to other sections. +They are the \emph{remaining options}. + +\begin{Declaration} + \Option{abstracton}\\ + \Option{abstractoff} +\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 the +normal procedure in the past. In the meantime, newspaper reading has +trained the readers to recognize a displayed text at the beginning of +an article or report as the abstract. This is even more so when the +abstract comes before the table of contents. It is also surprising +that 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}. + +\begin{Explain} + Books typically use another type of summary. In that case there is + usually a dedicated summary chapter at the beginning or end of the + book. This chapter is often combined with the introduction or with a + description of further aspects. Therefore, the class \Class{scrbook} + has no \Environment{abstract} environment. A summary chapter is also + recommended for reports in a wider sense, like a Master's or Ph.D. + thesis. +\end{Explain} +% +\EndIndex{Option}{abstracton}% +\EndIndex{Option}{abstractoff}% + + +\begin{Declaration} + \Option{pointednumbers}\\ + \Option{pointlessnumbers} +\end{Declaration}% +\BeginIndex{Option}{pointednumbers}% +\BeginIndex{Option}{pointlessnumbers}% +\begin{Explain}% + According to {\small DUDEN}, the numbering of sectional units should + have no point at the end if only arabic numbers are used (see + \cite[R\,3]{DUDEN}). On the other hand, if roman numerals or letters + are used, then a point should appear at the end of the numbering (see + \cite[R\,4]{DUDEN}). {\KOMAScript} has an internal mechanisms that + tries to implement these rules. The resulting effect is that, + normally, after the sectional commands \Macro{part} and + \Macro{appendix} a switch is made to numbering with a point at the + end. The information is saved in the \File{aux} file and takes + effect on the next \LaTeX{} run. +\end{Explain} + +In some cases the mechanism that switches the end point may fail or +other languagues may have different rules. Therefore it is possible to +activate the use of the end point with the option +\Option{pointednumbers} or to deactivate it with +\Option{pointlessnumbers}. + +Please note that the mechanism only takes effect on the next \LaTeX{} +run. When trying to use these options to control the numbering +format, a run without changing any options should be made. + +Calling these options \Option{dottednumbers}\IndexOption{dottednumbers} and +\Option{dotlessnumbers}\IndexOption{dotlessnumbers} or similar would be more +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}% + +\begin{Declaration} + \Option{leqno} +\end{Declaration}% +\BeginIndex{Option}{leqno}% +Equations\Index{equation} are normally numbered on the right. The +standard option \Option{leqno} causes the standard option file +\File{leqno.clo} to be loaded. The equations are then numbered on the +left. +% +\EndIndex{Option}{leqno}% + + +\begin{Declaration} + \Option{fleqn} +\end{Declaration}% +\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. +% +\EndIndex{Option}{fleqn}% + +\begin{Declaration} + \Option{tablecaptionbelow}\\ + \Option{tablecaptionabove} +\end{Declaration}% +\BeginIndex{Option}{tablecaptionbelow}% +\BeginIndex{Option}{tablecaptionabove}% +As described in \autoref{sec:maincls.floats}, +\autopageref{desc:maincls.macro.caption}, the +\Macro{caption}\IndexCmd{caption} command acts with figures like the +\Macro{captionbelow}\IndexCmd{captionbelow} command. The behaviour with tables +depends on two options. With the default \Option{tablecaptionbelow} options, +the \Macro{caption} macro acts like the \Macro{captionbelow} command. With the +\Option{tablecaptionabove} option, \Macro{caption} acts like the +\Macro{captionabove}\IndexCmd{captionabove} command. + +Note that using any of these options does not changes the possition of the +caption from above the top of the table to the bottom of the table or vica +versa. It only changes the spacing between caption and e.g. tabular. + +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 the +\Macro{refloatstyle} is applied to tables. More details of the \Package{float} +package's \Macro{refloatstyle} can be obtained from +\cite{package:float}. Additional support for \Package{float} may be found at +\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}% +The package\OnlyAt{\Package{longtable}} +\Package{longtable}\IndexPackage{longtable} (see \cite{package:longtable}) +sets table captions internally by calling 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 details. The +redefinition is performed with help of the command \Macro{AfterPackage} +immediately after the loading of package \Package{longtable}. If the package +\Package{caption2}\IndexPackage{caption2} (see \cite{package:caption}) has +been previously loaded, the redefinition is not made in order not to interfere +with the \Package{caption2} package. +\end{Explain} +If the table captions produced by the \Package{longtable} package +should not be redefined by the \KOMAScript{}, activate the +\Option{origlongtable} option. +% +\EndIndex{Option}{origlongtable}% + + +\begin{Declaration} + \Option{openbib} +\end{Declaration}% +\BeginIndex{Option}{openbib}% +The standard option \Option{openbib} switches to an alternative +bibliography format. The effects are twofold: The first line of a +bibliography entry, normally containing the author's name, gets a +smaller indentation; and the command \Macro{newblock} is redefined to +produce a paragraph. Without this option, \Macro{newblock} introduces +only a stretchable horizontal space. +% +\EndIndex{Option}{openbib} + + +\begin{Declaration} + \Option{draft}\\ + \Option{final} +\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. 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 +workings. 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}% + + +\section{General Document Characteristics} +\label{sec:maincls.general} + +Some document characteristics do not apply to a particular section of +the document like the titling, the text body or the bibliography, but +they affect the entire document. Some of these characteristics were +already described in \autoref{sec:maincls.options}. + +\subsection{Changing Fonts} +\label{sec:maincls.font} + +\BeginIndex{}{font}\BeginIndex{}{font size}% +\begin{Explain} + \KOMAScript{} does not use fixed fonts and attributes to emphasize + different elements of the text. Instead there are variables + that contain the commands used for changing fonts and other text + attributes. In previous versions of \KOMAScript{} the user had to + use \Macro{renewcommand} to redefine those variables. It was also + not easy to determine the name of the variable affecting an element + given the element's name. It was also often necessary to determine + the original definition before proceeding to redefine it. + + These difficulties were actually intended, since the interface was not + for users, but only for package authors building their + packages on top of \KOMAScript{}. The years have shown that the + interface was mainly used by document authors. So a new, simpler + interface was created. However, the author advises explicitly the + typographically inexperienced user against changing font sizes and + other graphical characteristics according to his taste. Knowledge + and feeling are basic conditions for the selection and mixture of + different font sizes, attributes and families. +\end{Explain} + +\begin{Declaration} + \Macro{setkomafont}\Parameter{element}\Parameter{commands}\\ + \Macro{addtokomafont}\Parameter{element}\Parameter{commands}\\ + \Macro{usekomafont}\Parameter{element} +\end{Declaration}% +\BeginIndex{Cmd}{setkomafont}% +\BeginIndex{Cmd}{addtokomafont}% +\BeginIndex{Cmd}{usekomafont}% +With\ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} the help of the two commands \Macro{setkomafont} +and \Macro{addtokomafont} it is possible to define the +\PName{commands} that change the characteristics of a given +\PName{element}. Theoretically all possible statements including +literal text could be used as \PName{commands}. You should however +absolutely limit yourself to those statements that really switch only +one font attribute. This are usually the commands \Macro{normalfont}, +\Macro{rmfamily}, \Macro{sffamily}, \Macro{ttfamily}, +\Macro{mdseries}, \Macro{bfseries}, \Macro{upshape}, \Macro{itshape}, +\Macro{slshape}, \Macro{scshape} and the font size commands +\Macro{Huge}, \Macro{huge}, \Macro{LARGE} etc. The description of +these commands can be found in \cite{lshort}, \cite{latex:usrguide} or +\cite{latex:fntguide}. Color switching commands like +\Macro{normalcolor} (see \cite{package:graphics}) are also acceptable. +The behavior when using other commands, specially those that make +redefinitions or generate output, is not defined. Strange behavior is +possible and does not represent a bug. + + +The command \Macro{setkomafont } provides a font switching command +with a completely new definition. In contrast to this the +\Macro{addtokomafont} commands extends the existing definition. + +It is not recommended to use both statements in the same +document. Usage examples can be found in the paragraphs on the +corresponding element. Names and meanings of the individual items are +listed in \autoref{tab:maincls.elementsWithoutText}. The default +values are shown in the corresponding paragraphs. + +The command \Macro{usekomafont} can change the current font +specification to the one used with the specified \PName{element}. +\begin{Example} + Assume that you want to use for the element + \FontElement{captionlabel} the same font specification that is used + with \FontElement{descriptionlabel}. This can be easily done with: +\begin{lstlisting} + \setkomafont{captionlabel}{\usekomafont{descriptionlabel}} +\end{lstlisting} + You can find other examples in the paragraphs on each element. +\end{Example} + +\begin{desctable} + \caption{Elements, whose type style can be + changed with the {\KOMAScript} command \Macro{setkomafont} or + \Macro{addtokomafont}\label{tab:maincls.elementsWithoutText}}\\ + \Endfirsthead + \caption[]{Elements, whose type style can be + changed (\emph{pursuit})}\\ + \Endhead + \standardfoot% + \feentry{caption}{Text of a table or figure caption}% + \feentry{captionlabel}{Label of a table or figure caption; used according to + the element \FontElement{caption}}% + \feentry{chapter}{Title of the sectional unit \Macro{chapter}}% + \feentry{descriptionlabel}{Labels, i.e. the optional argument of + \Macro{item}, in the \Environment{description} environment}% + \feentry{dictumauthor}{Author of a smart saying; used according to the + element \FontElement{dictumtext}}% + \feentry{dictumtext}{Text of a smart saing (see command \Macro{dictum})}% + \feentry{footnote}{Footnote text and marker}% + \feentry{footnotelabel}{Mark of a footnote; used according to the element + \FontElement{footnote}}% + \feentry{footnotereference}{Footnote reference in the text}% + \feentry{pagefoot}{The foot of a page, but also the head of a page}% + \feentry{pagehead}{The head of a page, but also the foot of a page}% + \feentry{pagenumber}{Page number in the header or footer}% + \feentry{paragraph}{Title of the sectional unit \Macro{paragraph}}% + \feentry{part}{Title of the \Macro{part} sectional unit, without the line + with the part number}% + \feentry{partnumber}{Line with the part number in a title of the sectional + unit \Macro{part}}% + \feentry{section}{Title of the sectional unit \Macro{section}}% + \feentry{sectioning}{All sectional unit titles, i.e. the arguments of + \Macro{part} down to \Macro{subparagraph} and \Macro{minisec}, including + the title of the abstract; used before the element of the corresponding + unit}% + \feentry{subparagraph}{Title of the sectional unit \Macro{subparagraph}}% + \feentry{subsection}{Title of the sectional unit \Macro{subsection}}% + \feentry{subsubsection}{Title of the sectional unit \Macro{subsubsection}}% + \feentry{title}{Main title of the document, i.e. the argument of + \Macro{title} (for details about the size see the additional note at the + text on \autopageref{desc:maincls.macro.title})}% +\end{desctable} +% +\EndIndex{Cmd}{setkomafont}% +\EndIndex{Cmd}{addtokomafont}% +\EndIndex{Cmd}{usekomafont}% +\EndIndex{}{font}\EndIndex{}{font size}% + +\subsection{Page Style} +\label{sec:maincls.pageStyle} + +\begin{Declaration} + \Macro{pagestyle}\PParameter{empty}\\ + \XMacro{pagestyle}\PParameter{plain}\\ + \XMacro{pagestyle}\PParameter{headings}\\ + \XMacro{pagestyle}\PParameter{myheadings}\\ + \Macro{thispagestyle}\Parameter{local page style} +\end{Declaration}% +\BeginIndex{Cmd}{pagestyle}% +\BeginIndex{Cmd}{thispagestyle}% +\BeginIndex{Pagestyle}{empty}% +\BeginIndex{Pagestyle}{plain}% +\BeginIndex{Pagestyle}{headings}% +\BeginIndex{Pagestyle}{myheadings}% +One of the general characteristics of a document is the page +style\Index[indexmain]{page style}. In {\LaTeX} this means mostly the +contents of headers and footers. Usually one distinguishes four +different page styles. +\begin{description} +\item[\phantomsection\label{desc:maincls.pagestyle.empty}empty] is the page + style with entirely empty headers and footers. In {\KOMAScript} this is + completely identical to the standard classes. +\item [plain] is the page style with empty head and only a page number + in the foot. With the standard classes this page number is + always centered in the foot. With {\KOMAScript} the page number + appears on double-sided\Index {double-sided} layout on the outer + side of the foot. The one-sided page style behaves like the + standard setup. +\item[headings] is the page style with running titles in the head. + With the classes \Class{scrbook}\IndexClass{scrbook} and + \Class{scrreprt}\IndexClass{scrreprt} the titles of chapters and + sections are repeated in the head\,---\,with {\KOMAScript} on the outer + side, with the standard classes on the inner side. The page number + comes with {\KOMAScript} on the outer side of the foot, with the + standard classes it comes on the inner side of the head. In + one-sided layouts only the headings of the chapters are used and + are, with {\KOMAScript}, centered in the head. The page numbers are + set with {\KOMAScript} centered in the foot. + \OnlyAt{\Class{scrartcl}}\Class{scrartcl}\IndexClass{scrartcl} + behaves similarly, but starting a level deeper in the section + hierarchy with sections and subsections, because the chapter level + does not exist in this case. + + While the standard classes automatically set running headings always + in capitals, {\KOMAScript} applies the style of the title. This has + several typographic reasons. Capitals as a decoration are actually + too strong. If one applies them nevertheless, they should be set + with a smaller type size and tighter spacing. The standard classes + don't take these points in consideration. +\item [myheadings] corresponds mostly to the page style + \PValue{headings}, but the running headings s are not automatically + produced, but have to be defined by the user. The commands \Macro + {markboth}\IndexCmd{markboth} and + \Macro{markright}\IndexCmd{markright} can be used for that purpose. +\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}, +\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} +changes only the style of the current page. + +The page style can be set at any time with the help of the +\Macro{pagestyle} command and takes effect with the next page that is +output. Usually one sets the page style only once at the beginning of the +document or in the preamble. To change the page style of the current +page one uses the \Macro{thispagestyle} command. This also happens at +some places in the document automatically. For example, the +instruction \Macro{thispagestyle}\PParameter{plain} is issued +implicitly on the first page of a chapter. + +Please note that the change between automatic and manual running +headings is not performed by page style changes when using the +\Package{scrpage2} package, but instead special instructions must be +used. The page styles \PValue{headings} and \PValue{myheadings} should +not be used together with this package (see +\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]{}{type style}% +In order to change the type style used in the head, foot or for the +page number\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}% +, please use the interface described in +\autoref{sec:maincls.font}. The same element is used for head and +foot, which you can designate equivalently with +\FontElement{pagehead}\IndexFontElement{pagehead} or +\FontElement{pagefoot}\IndexFontElement{pagefoot}. The element for +the page number within the head or foot is called +\FontElement{pagenumber}\IndexFontElement{pagenumber}. The default +settings can be found in \autoref{tab:maincls.defaultFontsHeadFoot}. +% +% +\begin{table} + \centering% + \caption{Default values for the elements of a page style} + \begin{tabular}{ll} + \toprule + Element & Default value \\ + \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}% + Assume that you want to set head and foot in a smaller type size and + in italics. However, the page number should not be set in italics + but bold. Apart from the fact that the result will look horribly, + you can reach this as follows: +\begin{lstlisting} + \setkomafont{pagehead}{% + \normalfont\normalcolor\itshape\small + } + \setkomafont{pagenumber}{\normalfont\bfseries} +\end{lstlisting} + If you want only that in addition to the default slanted variant a + smaller type size is used, it is sufficient to use the following: +\begin{lstlisting} + \addtokomafont{pagefoot}{\small} +\end{lstlisting} + As you can see, the last example uses the element + \FontElement{pagefoot}. You can achieve the same result using + \PValue{pagehead} instead (see + \autoref{tab:maincls.elementsWithoutText} on + \autopageref{tab:maincls.elementsWithoutText}). +\end{Example} +It is not possible to use these methods to force capitals to be used +automatically for the running headings. For that, please use the +\Package{scrpage2} package (see \autoref{cha:scrpage}, +\autopageref{desc:scrpage.option.markuppercase}). + +If you define your own page styles, the commands +\Macro{usekomafont}\PParameter{pagehead} and +\Macro{usekomafont}\PParameter {pagenumber} can find a meaningful use. +If you use for that not the \KOMAScript{} package \Package{scrpage2} +(see \autoref{cha:scrpage}), but, for example, the package +\Package{fancyhdr}\IndexPackage{fancyhdr} (see +\cite{package:fancyhdr}), you can use these commands in your +definitions. Thereby you can remain compatible with \KOMAScript. If +you do not use these commands in your own definitions, changes like +those shown in the previous examples have no effect. The packages +\Package{scrpage}\IndexPackage{scrpage} and +\Package{scrpage2}\IndexPackage {scrpage2} take care to keep the +maximum possible compatibility with other packages. +% +\EndIndex[indexother]{}{type style}% + + +\begin{Declaration} + \Macro{titlepagestyle}\\ + \Macro{partpagestyle}\\ + \Macro{chapterpagestyle}\\ + \Macro{indexpagestyle} +\end{Declaration}% +\BeginIndex{Cmd}{titlepagestyle}% +\BeginIndex{Cmd}{partpagestyle}% +\BeginIndex{Cmd}{chapterpagestyle}% +\BeginIndex{Cmd}{indexpagestyle}% +For some pages a different page style is chosen with the help of the +command \Macro{thispagestyle}. Which page style this actually is, is +defined by these four macros. The default values for all four cases is +\PValue{plain}. The meaning of these macros can be taken from +\autoref{tab:specialpagestyles}. +% +\begin{table} + \centering + \caption{Macros to set up page style of special pages} + \label{tab:specialpagestyles} + \begin{desctabular} + \mentry{titlepagestyle}{Page style for a title page when using + \emph{in-page} titles.}% + \mentry{partpagestyle}{Page style for the pages with \Macro{part} + titles.}% + \mentry{chapterpagestyle}{Page style for the first page of a chapter.}% + \mentry{indexpagestyle}{Page style for the first page of the index.}% + \end{desctabular} +\end{table} +% +The page styles can be redefined with the \Macro{renewcommand} macro. +\begin{Example} + Assume that you want the pages with a \Macro{part} heading to have + no number. Then you can use the following command, for example in + the preamble of your document: +\begin{lstlisting} + \renewcommand*{\partpagestyle}{empty} +\end{lstlisting} + As mentioned previously, the page style \PValue{empty} is exactly + what is required in this example. Naturally you can also use a + user-defined page style. + + Assume you have defined your own page style for initial chapter pages + with the package \Package{scrpage2} (see + \autoref{cha:scrpage}). You have given to this page style the + fitting name \PValue{chapter}. To actually use this style, you must + redefine the macro \Macro{chapterpagestyle} accordingly: +\begin{lstlisting} + \renewcommand*{\chapterpagestyle}{chapter} +\end{lstlisting} + + Assume that you want that the table of contents of a book to + have no page numbers. However, everything after the table of + contents should work + again with the page style \PValue{headings}, as well as with + \PValue{plain} on every first page of a chapter. You can use the + following commands: +\begin{lstlisting} + \clearpage + \pagestyle{empty} + \renewcommand*{\chapterpagestyle}{empty} + \tableofcontents + \clearpage + \pagestyle{headings} + \renewcommand*{\chapterpagestyle}{plain} +\end{lstlisting} + Instead of the above you may do a local redefinition using a group. The + advantage will be that you don't need to know the current page style before + the change to switch back at the end. +\begin{lstlisting} + \clearpage + \begingroup + \pagestyle{empty} + \renewcommand*{\chapterpagestyle}{empty} + \tableofcontents + \clearpage + \endgroup +\end{lstlisting} + But notice that you never should put a numbered head into a group. Otherwise + you may get funny results with commands like \Macro{label}. +\end{Example} + + + +\begin{Explain} + Whoever thinks that it is possible to put running headings on the + first page of a chapter by using the command +\begin{lstlisting} + \renewcommand*{\chapterpagestyle}{headings} +\end{lstlisting} + will be surprised at the results. + For sure, the page style \PValue{headings} is thereby applied to the + initial page of a chapter. But nevertheless no running headings appear + when using the \Option{openright} option. + The reason for this behaviour can be found in the \LaTeX{} + core. There, the command \Macro{rightmark}, that generates the marks + for right-hand pages, is defined with; +\begin{lstlisting} + \let\@rightmark\@secondoftwo + \def\rightmark{\expandafter\@rightmark + \firstmark\@empty\@empty} +\end{lstlisting} + The right-hand mark is set with \Macro{firstmark}. \Macro{firstmark} + contains the left-hand and right-hand marks that were first set + for a page. Within \Macro{chapter}, \Macro{markboth} is used to set + the left mark to the chapter header and the right mark to empty. + Hence, the first right + mark on a chapter beginning with a right-hand page is empty. Therefore, + the running heading is also empty on those pages. + + You could redefine \Macro{rightmark} in the preamble so that the + last mark on the page is used instead of the first: +\begin{lstlisting} + \makeatletter + \renewcommand*{\rightmark}{% + \expandafter\@rightmark\botmark\@empty\@empty} + \makeatother +\end{lstlisting} + This would however cause the running heading of the first page of a + chapter to use the title of the last section in the page. This is + confusing and should be avoided. + + It is also confusing (and hence should be avoided) to have as + running heading of the first page of a chapter the chapter title + instead of the the section title. Therefore, the current behavior + should be considered to be correct. +\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}% +The \LaTeX{} core contains the \Macro{clearpage} command, which takes +care of the fact that all floats that have not yet been output and +starts a new page. There exists the instruction +\Macro{cleardoublepage} which works like \Macro{clearpage} but that, +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 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 title. 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 +\autoref{sec:maincls.layoutOptions}, +\autopageref{desc:maincls.option.cleardoublestandard} and acts according to the +active option. +% +\EndIndex{Cmd}{clearpage}% +\EndIndex{Cmd}{cleardoublepage}% +\EndIndex{Cmd}{cleardoublestandardpage}% +\EndIndex{Cmd}{cleardoubleplainpage}% +\EndIndex{Cmd}{cleardoubleemptypage}% + + +\begin{Declaration} + \Macro{ifthispageodd}\Parameter{true}\Parameter{false} + \Macro{ifthispagewasodd} \PName{true}\Macro{else} \PName{false}\Macro{fi} +\end{Declaration}% +\BeginIndex{Cmd}{ifthispageodd}% +\BeginIndex{Cmd}{ifthispagewasodd}% +\begin{Explain}% + A peculiarity of \LaTeX{} consists in the fact that it is not + possible to determine on which page the current text will fall. It + is also difficult to say whether the current page has an odd or an + even page number. Now some will argue that there is, nevertheless, + the \TeX test macro \Macro{ifodd} which one needs only to apply to + the current page counter. However, this is an error. At the time of + the evaluation of such a test \LaTeX{} does not know at all whether + the text just processed will be typeset on the current page or only + on the next. The page breaks take place not while reading the paragraph, + but only in the \emph{output} routine of \LaTeX{}. However, at that + moment a command of the form \verb|\ifodd\value{page}| would already + have been completely evaluated. + + To find out reliably whether a text falls on an even or odd + page, one must usually work with a label and a page reference to + this label. One must also take special precautionary measures during + the first \LaTeX{} run, when the label is not yet known. +\end{Explain} +If one wants to find out with {\KOMAScript} whether a text falls on an +even or odd page, one can use the \Macro {ifthispageodd} command. The +\PName{true} argument is executed only if the command falls on an odd +page. Otherwise the \PName{false} argument is executed. + +\begin{Explain} + More precisely stated, the question is not where the text is, but + whether a page reference to a label placed in this location would + refer to an odd or an even page. +\end{Explain} +\begin{Example} + Assume that you want to indicate if an odd or even page is + output. This could be achieved with the command: +\begin{lstlisting} + This is a page with an \ifthispageodd{odd}{even} + page number. +\end{lstlisting} + The output would then be: + \begin{quote} + This is a page with an \ifthispageodd{odd}{even} + page number. + \end{quote} +\end{Example} + +Because the \Macro{ifthispageodd} command uses a mechanism that is +very similar to a label and a reference to it, at least two \LaTeX{} +runs are required after every text modification. Only then the +decision is correct. In the first run a heuristic is used to make the +first choice. + + +\begin{Explain} + There are situations where the \Macro{ifthispageodd} command never + leads to the correct result. Suppose that the command is used within + a box. A box is set by \LaTeX{} always as a whole. No page breaks + take place inside. Assume further that the \PName{true} part is very + big, but the \PName{false} part is empty. If we suppose further that + the box with the \PName {false} part still fits on the current, even + page, but that with the \PName{true} part it does not. Further + assume that \KOMAScript{} heuristically decides for the first run + that the \PName{true} part applies. The decision is wrong and is + revised in the next run. The \PName{false} part is thereby + processed, instead of the \PName{true} part. The decision must again + be revised in the next run and so on. + + These cases are rare. Nevertheless it should not be said that I have + not pointed out that they are possible. + + Sometimes you need to know the state of the last decision. This may be done + using the expert command \Macro{ifthispagewasodd}. This is either same like + \Macro{iftrue} or \Macro{iffalse} and may be used like those. +\end{Explain} +% +\EndIndex{Cmd}{ifthispageodd}% +\EndIndex{Cmd}{ifthispagewasodd}% + +\begin{Declaration} + \Macro{pagenumbering}\Parameter{numbering style} +\end{Declaration} +\BeginIndex{Cmd}{pagenumbering}% +This command works the same way in \KOMAScript{} as in the standard +classes. More precisely it is a command from the \LaTeX{} kernel. You +can specify with this command the \PName{numbering style} of page +numbers. The changes take effect immediately, hence starting with the +page that contains the command. The possible settings can be found in +\autoref{tab:numberKind}. Using the command \Macro{pagenumbering} +also resets the page counter\Index{page counter}\Index{page number}. +Thus the page number of the next page which \TeX{} outputs will have +the number 1 in the style \PName{numbering style}. +% +\begin{table} + \centering + \caption{Available numbering styles of page numbers} + \begin{tabular}{lll} + \toprule + numbering style & example & description \\ + \midrule + \PValue{arabic} & 8 & Arabic numbers \\ + \PValue{roman} & viii & lower-case Roman numbers \\ + \PValue{Roman} & VIII & upper-case Roman numbers \\ + \PValue{alph} & h & letters \\ + \PValue{Alph} & H & capital letters \\ + \bottomrule + \end{tabular} + \label{tab:numberKind} +\end{table} +% +\EndIndex{Cmd}{pagenumbering} + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Titles} +\label{sec:maincls.titles} + +\begin{Explain} + After having described the options and some general issues, we begin + the document where it usually begins: with the titles. The titles + comprise everything that belongs in the widest sense to the title of + a document. Like already mentioned in + \autoref{sec:maincls.layoutOptions}, + \autopageref{desc:maincls.option.titlepage}, we can distinguish + between title pages and \emph{in-page} titles. Article classes like + \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}. +\end{Explain} + + +\begin{Declaration} + \Environment{titlepage} +\end{Declaration}% +\BeginIndex{Env}{titlepage}% +With the standard classes and with {\KOMAScript} all title pages are +defined in a special environment, the \Environment{titlepage} +environment. This environment always starts a new page\,---\,in the +two-sided layout a new right page. For this page, the style is changed +as by \Macro{thispagestyle}\PParameter{empty}, so that neither page +number nor running title are output. At the end of the environment the +page is automatically shipped out. Should you not be able to use the +automatic layout of the title page, it is advisable to design a new +one with the help of this environment. + + +\begin{Example} + Assume you want a title page on which only the word " ` Me " ' + stands at the top on the left, as large as possible and in bold -- + no author, no date, nothing else. The following document makes just + that: +\begin{lstlisting} + \documentclass{scrbook} + \begin{document} + \begin{titlepage} + \textbf{\Huge Me} + \end{titlepage} + \end{document} +\end{lstlisting} + Simple? Right. +\end{Example} +% +\EndIndex{Env}{titlepage} + +\begin{Declaration} + \Macro{maketitle}\OParameter{page number} +\end{Declaration}% +\BeginIndex{Cmd}{maketitle}% +While the the standard classes produce a title page that may have the three +items title, author and date, with {\KOMAScript} the \Macro{maketitle} command +can produce up to six pages. + +In contrast to the standard classes, the \Macro{maketitle} macro in +{\KOMAScript} accepts an optional numeric argument. If it is used, the number +is made the page number of the first title page. However, this page number is +not output, but affects only the numbering. You should choose an odd number, +because otherwise the whole counting gets mixed up. In my opinion there are +only two meaningful applications for the optional argument. On the one hand, +one could give to the half-title\Index[indexmain]{half-title} the logical page +number \(-1\) in order to give the full title page the number 1. On the other +hand it could be used to start at a higher page number, for instance, 3, 5, or +7 to accommodate other title pages added by the publishing house. 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}. + +The following commands do not lead necessarily to the production of the +titles. The typesetting of the title pages is always done by +\Macro{maketitle}. The commands explained below only define the contents of +the title pages. It is however not necessary, and when using the +\Package{babel} package\IndexPackage{babel} not recommended, to use these in +the preamble before \Macro{begin}\PParameter{document} (see +\cite{package:babel}). Examples can be found at the end of this section. + +\begin{Explain}% +\begin{Declaration} + \Macro{extratitle}\Parameter{half-title} +\end{Declaration}% +\BeginIndex{Cmd}{extratitle}% + In earlier times the inner book was often not protected from dirt by a cover. + This task was then taken over by the first page of the book which + carried mostly a shortened title, precisely the \emph{half-title}. + Nowadays the extra page is often applied before the real full title + and contains information on the publisher, series number and similar + information. +\end{Explain} + +With {\KOMAScript} it is possible to include a page before the real +title page. The \PName{half-title} can be arbitrary text\,---\,even +several paragraphs. The contents of the \PName {half-title} are output +by {\KOMAScript} without additional formatting. Their organisation is +completely left to the user. The back of the half-title remains empty. +The half-title has its own title page even when \emph{in-page} titles +are used. The output of the half-title defined with \Macro{extratitle} +takes place as part of the titles produced by \Macro{maketitle}. + + +\begin{Example} + Let's go back to the previous example and assume + that the spartan "Me" is the half-title. The full title should + still follow the half-title. One can proceed as follows: +\begin{lstlisting} + \documentclass{scrbook} + \begin{document} + \extratitle{\textbf{\Huge Me}} + \title{It's me} + \maketitle + \end{document} +\end{lstlisting} + You can center the half-title and put it a little lower down the page: +\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} + The command \Macro{title} is necessary in order to make the examples + above work correctly. It is explained next. +\end{Example} +% +\EndIndex{Cmd}{extratitle} + + +\begin{Declaration} + \Macro{titlehead}\Parameter{Titlehead}\\ + \Macro{subject}\Parameter{Subject}\\ + \Macro{title}\Parameter{Title}\\ + \Macro{author}\Parameter{Author}\\ + \Macro{date}\Parameter{Date}\\ + \Macro{publishers}\Parameter{Publisher}\\ + \Macro{and}\\ + \Macro{thanks}\Parameter{Footnote} +\end{Declaration}% +\BeginIndex{Cmd}{titlehead}% +\BeginIndex{Cmd}{subject}% +\BeginIndex{Cmd}{title}% +\BeginIndex{Cmd}{author}% +\BeginIndex{Cmd}{date}% +\BeginIndex{Cmd}{publishers}% +\BeginIndex{Cmd}{and}% +\BeginIndex{Cmd}{thanks}% +The contents of the full title page are defined by six elements. The +\PName{title head}\Index[indexmain]{title head} is defined with the +command \Macro {titlehead}. It is typeset in regular paragraph style +and full width at the top of the page. It can be freely designed by +the user. + +The \PName{Subject}\Index[indexmain]{subject} is output immediately +above the \PName{Title}. A slightly larger font size than the regular +one is used. + +The \PName{Title} is output with a very large font size. +Besides\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} the change +of size, the settings for the element +\FontElement{title}\IndexFontElement{title} also take effect. By +default these settings are identical to the settings for the element +\FontElement{sectioning}\IndexFontElement{sectioning} (see +\autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}). The font size is however +not affected (see \autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.mainTitle}). The +default settings can be changed with the commands of +\autoref{sec:maincls.font}. + +Below the \PName{Title} appears the +\PName{Author}\Index[indexmain]{author}. Several authors can be +specified in the argument of \Macro{author}. They should be separated +by \Macro{and}. + +Below the author or authors appears the date\Index{date}. The default +value is the present date, as produced by +\Macro{today}\IndexCmd{today}. The \Macro{date} command accepts +arbitrary information or even an empty argument. + +Finally comes the \PName{Publisher}\Index[indexmain]{publisher}. Of +course this command can also be used for any other information of +little importance. If necessary, the \Macro{parbox} command can be +used to typeset this information over the full page width like a +regular paragraph. Then it is to be considered equivalent to the +title head. However, note that this field is put above any existing +footnotes. + +Footnotes\Index{footnotes} on the title page are produced not with +\Macro{footnote}, but with \Macro{thanks}. They serve typically for +notes associated with the authors. Symbols are used as footnote +markers instead of numbers. + +With the exception of \PName{titlehead} and possible footnotes, all +the items are centered horizontally. The information is summarised in +\autoref{tab:maincls.mainTitle}. +\begin{table} + \centering + \caption[Main title]{Font size and horizontal positioning of the + elements in the main title page in the order of their vertical + position from top to bottom when typeset with \Macro{maketitle}} + \begin{tabular}{llll} + \toprule + Element & Command & Font & Justification \\ + \midrule + Title head & \Macro{titlehead} & \Macro{normalsize} & Regular paragraph \\ + Subject & \Macro{subject} & \Macro{Large} & centered \\ + Title & \Macro{title} & \Macro{huge} & centered \\ + Authors & \Macro{author} & \Macro{Large} & centered \\ + Date & \Macro{date} & \Macro{Large} & centered \\ + Publishers & \Macro{publishers} & \Macro{Large} & centered \\ + \bottomrule + \end{tabular} + \label{tab:maincls.mainTitle} +\end{table} + + +\begin{Example} + Assume you are writing a dissertation. The title page should have + the university's name and address at the top, flush left, and the + semester flush right. As usual a title is to be used, including + author and delivery date. + The advisor must also be indicated, together with the fact that the + document is a dissertation. This can be obtained as follows: +\begin{lstlisting} + \documentclass{scrbook} + \begin{document} + \titlehead{{\Large Unseen University + \hfill SS~2002\\} + Higher Analytical Institut\\ + Mythological Rd\\ + 34567 Etherworld} + \subject{Dissertation} + \title{Digital space simulation with the DSP\,56004} + \author{Fuzzy George} + \date{30. February 2002} + \publishers{Advisor Prof. John Excentric Doe} + \maketitle + \end{document} +\end{lstlisting} +\end{Example} + + +\begin{Explain} +A frequent misunderstanding concerns the role of the full title side. +It is often erroneous assumed that the cover (or dust cover) is meant. +Therefore, it is frequently expected that the title page does not follow +the normal page layout, but have equally large left and right margins. + +However if one takes a book and opens it, one hits very quickly on at +least one title page under the cover within the so-called inner book. +Precisely these title pages are produced by \Macro{maketitle}. Like it +happens with the half-title, the full title page belongs to the inner +book, and therefore should have the same page layout as the rest of +the document. A cover is actually something that should be created in +a separate document. The cover often has a very individual format. It +can also be designed with the help of a graphics or DTP program. A +separate document should also be used because the cover will be +printed on a different medium, possibly cardboard, and possibly with +another printer. +\end{Explain} +% +\EndIndex{Cmd}{titlehead}% +\EndIndex{Cmd}{subject}% +\EndIndex{Cmd}{title}% +\EndIndex{Cmd}{author}% +\EndIndex{Cmd}{date}% +\EndIndex{Cmd}{publishers}% +\EndIndex{Cmd}{and}% +\EndIndex{Cmd}{thanks}% + + + +\begin{Declaration} + \Macro{uppertitleback}\Parameter{titlebackhead}\\ + \Macro{lowertitleback}\Parameter{titlebackfoot} +\end{Declaration}% +\BeginIndex{Cmd}{uppertitleback}% +\BeginIndex{Cmd}{lowertitleback}% +% +With the standard classes, the back of the title page is left empty. +However, with {\KOMAScript} the back of the full title page can be +used for other information. Exactly two elements which the user can +freely format are recognized: \PName {titlebackhead} and \PName +{titlebackfoot}. The head can reach up to the foot and vice versa. If +one takes this manual as an example, the exclusion of liability was +set with the help of the \Macro{uppertitleback} command. +\EndIndex{Cmd}{uppertitleback}% +\EndIndex{Cmd}{lowertitleback}% + + +\begin{Declaration} + \Macro{dedication}\Parameter{dedication} +\end{Declaration}% +\BeginIndex{Cmd}{dedication}% +{\KOMAScript} provides a page for dedications. The +dedication\Index{dedication} is centered and uses a slightly larger +type size. The back is empty like the back page of the half-title. +The dedication page is produced by \Macro{maketitle} and must +therefore be defined before this command is issued. + +\begin{Example} + This time assume that you have written a poetry book and you want to + dedicate it to your wife. A solution would look like this: +\begin{lstlisting} + \documentclass{scrbook} + \begin{document} + \extratitle{\textbf{\Huge In Love}} + \title{In Love} + \author{Prince Ironheart} + \date{1412} + \lowertitleback{This poem book was set with% + the help of {\KOMAScript} and {\LaTeX}} + \uppertitleback{Selfmockery Publishers} + \dedication{To my treasure hazel-hen\\ + in eternal love\\ + from your dormouse.} + \maketitle + \end{document} +\end{lstlisting} + Please use your own favorite pet names. +\end{Example} +% +\EndIndex{Cmd}{dedication} +% +\EndIndex{Cmd}{maketitle} + + +\begin{Declaration} + \Environment{abstract} +\end{Declaration}% +\BeginIndex{Env}{abstract}% +Particularly\OnlyAt{\Class{scrartcl}\and\Class{scrreprt}} with +articles, more rarely with reports, there is a summary\Index{summary} +directly under the title and before the table of contents. Therefore, +this is often considered a part of the titles. Some {\LaTeX} classes +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 +\autoref{sec:maincls.formattingOptions}, +\autopageref{desc:maincls.option.abstracton}) + +With books (\Class{scrbook}) the summary is frequently a component of +the introduction or a separate chapter at the end of the document. +Therefore no \Environment{abstract} environment is provided. When +using the class \Class{scrreprt} it is surely worth considering +whether one should not proceed likewise. +% +\EndIndex{Env}{abstract} + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{The Table of Contents} +\label{sec:maincls.toc} + +The titles are normally followed by the table of contents\Index{table +of contents}. +Often the table of contents is followed by lists of floats, e.g. lists +of tables and figures, see \autoref{sec:maincls.floats}). + +\begin{Declaration} + \Macro{tableofcontents}\\ + \Macro{contentsname} +\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 finds the +bibliography included in the table of contents a little bit 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}. + +\begin{Explain} + The table of contents is set as a not numbered chapter and is therefore + subjected 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 + titles\Index{running title} for left and right pages are correctly filled + with the heading of the table of contents. The text of the heading is given + by the macro \Macro{contentsname}. +\end{Explain}% +\EndIndex{Cmd}{tableofcontents}% +\EndIndex{Cmd}{contentsname}% + + +There is only one variant for the construction of the table of +contents. The titles of the sectional units are indented so that the +unit number is flush left to the edge of the title of the next upper +unit. However, the place for the numbers is thereby limited and is +only sufficient for a little bit more than 1.5 places per level. +Should this become a problem, help can be found in \cite{DANTE:FAQ}. + +\begin{Explain} +The entry for the highest sectional unit below \Macro{part}, i.e., +\Macro{chapter} with \Class{scrbook}\IndexClass{scrbook} and +\Class{scrreprt}\IndexClass{scrreprt} or \Macro{section} with +\Class{scrartcl}\IndexClass {scrartcl} is not indented. It is however +affected by the settings of the element +\FontElement{sectioning}\IndexFontElement{sectioning} (see +\autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}). There is no point +between the text of the sectional unit heading and the page number. The +typographic reasons for this are that the font is usually different +and the desire for appropriate emphasis. The table of contents of this +manual is a good example of these considerations.% +\end{Explain} + +\begin{Declaration} + \Counter{tocdepth} +\end{Declaration}% +\BeginIndex{Counter}{tocdepth}% +Normally, the units included in the table of contents are all the +units from \Macro{part} to \Macro{subsection} (for the classes +\Class{scrbook} and \Class{scrreprt}) or from \Macro{part} to +\Macro{subsubsection} (for the class \Class{scrartcl}). The inclusion +of a sectional unit in the table of contents is controlled by the +counter \Counter{tocdepth}. It has the value \(-1\) for \Macro{part}, +\(0\) for \Macro{chapter} and so on. Since the class \Class{scrartcl} has +no \Macro{chapter}, the counter starts with 0 for the \Macro{part}. By +setting, incrementing or decrementing the counter, one can choose the +lowest sectional unit level to be included in the table of contents. +The same happens with the standard classes. + +The user of the \Package{scrpage2}\IndexPackage{scrpage2} package (see +\autoref{cha:scrpage}) does not need to remember the numerical +values of each sectional unit. They are given by the values of the +macros \Macro{chapterlevel}, \Macro{sectionlevel} and so on down to +\Macro{subparagraphlevel}. +\begin{Example} + Assume that you are preparing an article that uses the sectional + unit \Macro{subsubsection}. However, you don't want this sectional + unit to appear in the table of contents. The preamble of your + document might contain the following: +\begin{lstlisting} + \documentclass{scrartcl} + \setcounter{tocdepth}{2} +\end{lstlisting} +You set the counter \Counter{tocdepth} to 2, because you know that +this is the value for \Macro{subsection}. If you know that +\Class{scrartcl} normally includes all levels up to +\Macro{subsubsection} in the table of contents, you can simply +decrement the counter \Counter{tocdepth} by one: +\begin{lstlisting} + \documentclass{scrartcl} + \addtocounter{tocdepth}{-1} +\end{lstlisting} +How much you should add to or take from the \Counter{tocdepth} counter +can also be found by looking at the table of contents after the first +\LaTeX{} run. +\end{Example} +% +\EndIndex{Counter}{tocdepth}% + +\section{Lists of Floats} + +As a rule, the lists of floats\index{float environments}, +e.g. list of tables\index{list of tables} and +list of figures\index{list of figures}, can be found directly +after the table of contents. +In some documents, they even can be found in the appendix. +However, the author of this manual prefers the location +after the table of contents, therefore it is discussed here. + +\begin{Declaration} + \Macro{listoftables}\\ + \Macro{listoffigures}\\ + \Macro{listtablename}\\ + \Macro{listfigurename} +\end{Declaration} +\BeginIndex{Cmd}{listoftables}% +\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 +\autoref{sec:maincls.listsOptions}, +\autopageref{desc:maincls.option.listsleft}. Moreover, the options +\Option{liststotoc} and \Option{liststotocnumbered} have indirect influence, +see \autoref{sec:maincls.tocOptions}, +\autopageref{desc:maincls.option.liststotoc}). + +\begin{Explain} +The terms of the titles of this tables are stored at the macros +\Macro{listtablename} and \Macro{listfigurename}. If you're using a language +package like \Package{babel} and want to change these terms, you should read +the documentation of the language package. +\end{Explain} +% +\EndIndex{Cmd}{listoftables}% +\EndIndex{Cmd}{listoffigures}% +\EndIndex{Cmd}{listtablename}% +\EndIndex{Cmd}{listfigurename}% + + +\section{Main Text} +\label{sec:maincls.mainText} + +This section explains everything provided by \KOMAScript{} +in order to write the main text. The main text is the +part that the author should focus on first. +Of course this includes tables, figures and comparable +information as well. + +\subsection{Separation}{Separation\protect\OnlyAt{\Class{scrbook}}} +\label{sec:maincls.separation} + +Before\OnlyAt{\Class{scrbook}} getting to the main text eventually we will +have a short look at three commands which exist both in the standard class +\Class{book} and the {\KOMAScript} class \Class{scrbook}. They are used for +separation of the \emph{font matter}\Index{front matter}, the \emph{main + matter}\Index{main matter} and the \emph{back matter}\Index{back matter} of +a book. + +\begin{Declaration} + \Macro{frontmatter}\\ + \Macro{mainmatter}\\ + \Macro{backmatter} +\end{Declaration}% +\BeginIndex{Cmd}{frontmatter}% +\BeginIndex{Cmd}{mainmatter}% +\BeginIndex{Cmd}{backmatter}% +The macro \Macro{frontmatter} introduces the font matter in which roman +numbers are used for the page numbers. Chapter headings in a front matter +don't have any numbers. The foreword can be set as a normal chapter. +A foreword should never be divided into sections but kept short. +Therefore there is no need for a deeper structuring than chapter. + +\Macro{mainmatter} introduces the main matter with the main text. If there is +no fton matter this command can be omitted. The default in the main matter is +arabic page numbering (re)starting with 1. + +The back matter is introduced with \Macro{backmatter}. Opinions differ in +what should be part of the back matter. So in some cases you will only find +the bibliography\Index{bibliography}, in some cases only the +index\Index{index} and in other cases both of it and the appendix. +Besides, the chapters at the back matter are similar to the chapters at the +front matter, but page numbering doesn't change. Nevertheless you may use +command \Macro{pagenumbering} from \autoref{sec:maincls.pageStyle}, +\autopageref{desc:maincls.macro.pagenumbering} of you want to change this. +% +\EndIndex{Cmd}{frontmatter}% +\EndIndex{Cmd}{mainmatter}% +\EndIndex{Cmd}{backmatter}% + + +\subsection{Structuring the Document}\Index[indexmain]{structuring} +\label{sec:maincls.structure} + +There are several commands to structure a document into parts, chapters, +sections and so on. + +\begin{Declaration} + \Macro{part}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{chapter}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{section}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{subsection}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{subsubsection}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{paragraph}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{subparagraph}\OParameter{Short version}\Parameter{Heading} +\end{Declaration}% +\BeginIndex{Cmd}{part}% +\BeginIndex{Cmd}{chapter}% +\BeginIndex{Cmd}{section}% +\BeginIndex{Cmd}{subsection}% +\BeginIndex{Cmd}{subsubsection}% +\BeginIndex{Cmd}{paragraph}% +\BeginIndex{Cmd}{subparagraph}% +The standard sectioning commands in {\KOMAScript} work quite similar +to the standard classes. Normally the section headings show up in the +table of contents exactly as they are entered in the text. The entry +for the table of contents can be specified as an optional argument in +front of the actual heading. +\OnlyAt{\Class{scrartcl}}\Macro{chapter} only exists in book or +report classes but not in article classes. In addition to this, the +command \Macro{chapter} in {\KOMAScript} differs substantially from +the version in the standard class. While in the standard classes every +chapter number is used together with the prefix ``Chapter'' on a +separate line above the heading, {\KOMAScript} only places the chapter +number in front of the heading. + +Please note that \Macro{part} and \Macro{chapter} change the page +style for one page. The applied page style in \KOMAScript{} is defined +in \Macro{partpagestyle} and \Macro{chapterpagestyle} (see +\autoref{sec:maincls.pageStyle}, +\autopageref{desc:maincls.macro.titlepagestyle}). + +\BeginIndex[indexother]{}{font}% +\BeginIndex[indexother]{}{font size}% +The font of all headings\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % +can be changed with the commands +\Macro{setkomafont}\IndexCmd{setkomafont} and +\Macro{addtokomafont}\IndexCmd{addtokomafont} described in +\autoref{sec:maincls.font}. First of all the element +\FontElement{sectioning}\IndexFontElement{sectioning} is used, which +is followed by a specific element for every section level (see +\autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}). The font for the element +\FontElement{sectioning}\IndexFontElement{sectioning} 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 listed in \autoref{tab:maincls.structureElementsFont} +% +\begin{table} + \centering% + \caption[{Default font sizes for different levels of document + structuring}]{Default font sizes for different levels of document + structuring at \Class{scrbook} and \Class{scrreprt}} + \begin{tabular}{lll} + \toprule + class option & element & default\\ + \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} + Suppose you are using the class option \Option{bigheadings} and notice + that the very big headings of document parts are to bold. You could change + this as follows: +\begin{lstlisting} + \setkomafont{sectioning}{\normalcolor\sffamily} + \part{Appendices} + \addtokomafont{sectioning}{\bfseries} +\end{lstlisting} + Using the command above you only switch off the font attribute + \textbf{bold} for the heading ``Appendices''. A much more comfortable + and elegant solution is to change all \Macro{part} headings in one go. + This is done either by: +\begin{lstlisting} + \addtokomafont{part}{\normalfont\sffamily} + \addtokomafont{partnumber}{\normalfont\sffamily} +\end{lstlisting} + or using: +\begin{lstlisting} + \addtokomafont{part}{\mdseries} + \addtokomafont{partnumber}{\mdseries} +\end{lstlisting} + The last version is to be preferred because it gives you the correct + result even when you change the \FontElement{sectioning} + element\IndexFontElement{sectioning} as follows: +\begin{lstlisting} + \setkomafont{sectioning}{\normalcolor\bfseries} +\end{lstlisting} + With this change it is possible to set all section levels at once to not + longer use sans serif fonts. +\end{Example} + +Please be warned of using the possibilities of font switching to mix fonts, +font sizes and font attributes excessively. Picking the most suitable font for +a given task is a hard thing even for professionals and has nothing to do with +personal taste of beginners. Please refer to the citation at the end of +\autoref{sec:typearea.tips}, \autopageref{sec:typearea.tips.cite} and the +following explanation. + +\begin{Explain} + It is possible to use different font types for different section levels + in {\KOMAScript}. As a typographical beginner you should refrain from + using these possibilities for typographical reasons. + + There is a rule which states that you should mix fonts only as few as + possible. Using sans serif for headings seems already a breach of this + rule. However, you should know that bold, huge and serif letters are much to + heavy for headings. In general you would have to use a normal instead of a + bold or semi bold font. However, in deeper levels of the structuring a + normal font appears rather leight weighted. On the other hand sans serif + fonts in headings have a very pleasant appearance and are to be used only in + headings. That's why sans serif is the default in {\KOMAScript}. + + More variety should be avoided. Font mixing is only for professionals. In + case you want to use other fonts than the standard \TeX-Fonts\,---\,no matter + whether using CM \Index{CM fonts} or EC fonts\Index{EC fonts}\,---\,you should + consult an expert or redefine the font for the element + \FontElement{sectioning}\IndexFontElement{sectioning} as seen in the example + above. You often find the combinations Times and Helvetica or Palatino with + Helvetica. The author of this documentation does not favour these + combinations. +\end{Explain} +\EndIndex[indexother]{}{font}% +\EndIndex[indexother]{}{font size}% +% +\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{Heading}\\ + \Macro{chapter*}\Parameter{Heading}\\ + \Macro{section*}\Parameter{Heading}\\ + \Macro{subsection*}\Parameter{Heading}\\ + \Macro{subsubsection*}\Parameter{Heading}\\ + \Macro{paragraph*}\Parameter{Heading}\\ + \Macro{subparagraph*}\Parameter{Heading} +\end{Declaration}% +\BeginIndex{Cmd}{part*}% +\BeginIndex{Cmd}{chapter*}% +\BeginIndex{Cmd}{section*}% +\BeginIndex{Cmd}{subsection*}% +\BeginIndex{Cmd}{subsubsection*}% +\BeginIndex{Cmd}{paragraph*}% +\BeginIndex{Cmd}{subparagraph*}% +All sectioning commands exist as ``starred'' versions. They produce +section headings which do not show up in the table of +contents\Index{table of contents}, in the page header\Index{header} +and which are not numbered\Index{numbering}. Not using a headline +often has an unwanted side effect. For example, if a chapter which is +set using \Macro{chapter*} spans over several pages the headline of +the chapter before comes up again. {\KOMAScript} offers a solution +which is described below. +\OnlyAt{\Class{scrartcl}}\Macro{chapter*} only exists in book and +report classes which includes \Class{book}, \Class{scrbook}, +\Class{report} and \Class{scrreport}, but not the article classes +\Class{article} and \Class{scrartcl}. + +Please note that \Macro{part} and \Macro{chapter} change the page +style for one page. The applied style is defined in +\Macro{partpagestyle} and \Macro{chapterpagestyle} in \KOMAScript{} +(see \autoref{sec:maincls.pageStyle}, +\autopageref{desc:maincls.macro.titlepagestyle}). + +As for the possibilities of font switching\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % +the same explanations apply which were given above with the normal +sectioning commands. The elements of structuring are named in the same +way as the ``unstarred'' versions. +% +\EndIndex{Cmd}{part*}% +\EndIndex{Cmd}{chapter*}% +\EndIndex{Cmd}{section*}% +\EndIndex{Cmd}{subsection*}% +\EndIndex{Cmd}{subsubsection*}% +\EndIndex{Cmd}{paragraph*}% +\EndIndex{Cmd}{subparagraph*}% + +\iffalse In the standard classes there are no further sectioning commands. In +particular, there are no commands which produce unnumbered chapters or +sections which show up in the table of contents or in the page header. \fi + +\begin{Declaration} + \Macro{addpart}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{addpart*}\Parameter{Heading}\\ + \Macro{addchap}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{addchap*}\Parameter{Heading}\\ + \Macro{addsec}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{addsec*}\Parameter{Heading} +\end{Declaration}% +\BeginIndex{Cmd}{addpart}% +\BeginIndex{Cmd}{addpart*}% +\BeginIndex{Cmd}{addchap}% +\BeginIndex{Cmd}{addchap*}% +\BeginIndex{Cmd}{addsec}% +\BeginIndex{Cmd}{addsec*}% +In addition to the standard classes {\KOMAScript} offers the new +commands \Macro{addsec} and \Macro{addchap}. They are similar to the +standard commands \Macro{chapter} und \Macro{section} except the +missing numbering. The produce both a running headline and an entry in +the table of contents. The starred versions \Macro{addchap*} and +\Macro{addsec*} are similar to the standard commands \Macro{chapter*} +and \Macro{section*} apart from a tiny but important difference: The +headlines are deleted. This eliminates the side effect of obsolete +headers mentioned above. \OnlyAt{\Class{scrartcl}}\Macro{addchap} +and \Macro{addchap*} of course only exist in book and report classes, +namely \Class{book}, \Class{scrbook}, \Class{report} and +\Class{scrreport}, but not in the article classes \Class{article} and +\Class{scrartcl}. + +Similar to this, the command \Macro{addpart} produces an unnumbered +document part with an entry in the table of contents. Since the +headers are already deleted by \Macro{part} and \Macro{part*} the +problem of obsolete headers doesn't exist. The starred version +\Macro{addpart*} is identical to \Macro{part*} and is only defined for +consistency reasons. + +Please note that \Macro{addpart} and \Macro{addchap} including 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}). + +As for the possibilities of font switching\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % +the same explanations apply which were given above with the normal +sectioning commands. The elements of structuring are named in the same +way as the ``unstarred'' versions. +% +\EndIndex{Cmd}{addpart}% +\EndIndex{Cmd}{addpart*}% +\EndIndex{Cmd}{addchap}% +\EndIndex{Cmd}{addchap*}% +\EndIndex{Cmd}{addsec}% +\EndIndex{Cmd}{addsec*}% + + +\begin{Declaration} + \Macro{minisec}\Parameter{Heading} +\end{Declaration}% +\BeginIndex{Cmd}{minisec}% +Sometimes a heading\Index{heading} is wanted which is highlighted but +closely linked to the following text. Such a heading shouldn't be +separated by a vertical skip. + +The command \Macro{minisec} is designed for this situation. This heading +isn't linked to a level of structuring. Such a \emph{Mini-section} +does not produce an entry in the table of contents nor does it receive +any numbering. +\begin{Example} + You have developed a kit for building a mouse trap and want the + documentation separated into the things needed and an assembly + description. Using \Macro{minisec} you could write the following: +\begin{lstlisting} + \minisec{Items needed} + + \begin{flushleft} + 1 plank ($100\times 50 \times 12$)\\ + 1 spring-plug of a beer-bottle\\ + 1 spring of a ball-point pen\\ + 1 drawing pin\\ + 2 screws\\ + 1 hammer\\ + 1 knife + \end{flushleft} + + \minisec{Assembly} + At first one searches the mouse-hole and puts the + drawing pin directly behind the hole. + Thus the mouse cannot escape meanwhile the following + actions. + + Afterwards one knocks in the spring-plug with the hammer + in the mouse-hole. + If the spring-plug's size is not big enough in order to + shut the mouse-hole entirely, then one can utilize + the plank instead and fasten it with the two screws + employing the knife on the mouse-hole. + Instead of the knife one can use a screw-driver as well. +\end{lstlisting} + Which gives: + \begin{ShowOutput}[\baselineskip]\setlength{\parindent}{1em} + \minisec{Items needed} + + \begin{flushleft} + 1 plank ($100\times 50 \times 12$)\\ + 1 spring-plug of a beer-bottle\\ + 1 spring of a ball-point pen\\ + 1 drawing pin\\ + 2 screws\\ + 1 hammer\\ + 1 knife + \end{flushleft} + + \minisec{Assembly} + At first one searches the mouse-hole and puts the drawing pin + directly behind the hole. Thus the mouse cannot escape + meanwhile the following actions. + + Afterwards one knocks in the spring-plug with the hammer + in the mouse-hole. + If the spring-plug's size is not big enough in order to + shut the mouse-hole entirely, then one can utilize + the plank instead and fasten it with the two screws + employing the knife on the mouse-hole. + Instead of the knife one can use a screw-driver as well. + \end{ShowOutput} +\end{Example} + +The font type of the sectioning command \Macro{minisec} can only be +changed using the element +\FontElement{sectioning}\IndexFontElement{sectioning} (see +\autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}). There is no specific +element for \Macro{minisec}. This means you can't change the font size +manually. +% +\EndIndex{Cmd}{minisec}% + + +\begin{Declaration} + \Macro{raggedsection} +\end{Declaration}% +\BeginIndex{Cmd}{raggedsection}% +In the standard classes headings are set as justified text. That means +that hyphenated words can occur and headings with more than one line +are stretched up to the text border. This is a rather uncommon +approach in typography. {\KOMAScript} formats the headings left +aligned with hanging indentation using \Macro{raggedsection} with the +definition: +\begin{lstlisting} + \newcommand*{\raggedsection}{\raggedright} +\end{lstlisting} +This command can be redefined with \Macro{renewcommand}. +\begin{Example} + You prefer justified headings. You write in the preamble of your document: +\begin{lstlisting} + \renewcommand*{\raggedsection}{} +\end{lstlisting} + or short: +\begin{lstlisting} + \let\raggedsection\relax +\end{lstlisting} + You will get a formatting of the headings which is very close to the + standard classes. Even closer it will get when you combine this change + with the change of the element + \FontElement{sectioning}\IndexFontElement{sectioning} mentioned + above. +\end{Example} +% +\EndIndex{Cmd}{raggedsection}% + + +\begin{Explain}% +\begin{Declaration} + \Macro{partformat}\\ + \Macro{chapterformat}\\ + \Macro{othersectionlevelsformat}\Parameter{section name}\\ + \Macro{autodot} +\end{Declaration}% +\BeginIndex{Cmd}{partformat}% +\BeginIndex{Cmd}{chapterformat}% +\BeginIndex{Cmd}{othersectionlevelsformat}% +\BeginIndex{Cmd}{autodot}% + As you might know, for every counter in {\LaTeX} there is a command + \Macro{the}\PName{counter name}, which gives you the value of the + counter. Depending on the class the counter for a particular level + starting from \Macro{section} (\Class{book}, \Class{scrbook}, + \Class{report}, \Class{scrreprt}) or \Macro{subsection} + (\Class{article}, \Class{scrartcl}) is composed of the counter for the + higher level followed by a dot and the arabic number of the + \PName{counter name} of the respective level.\par +\end{Explain} + +\KOMAScript{} has added to the output of the section number a further +logical level. The counter for the respective heading are formatted +using \Macro{partformat}, \Macro{chapterformat} and +\Macro{othersectionlevelsformat}. +\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Of course the command +\Macro{chapterformat} doesn't exist in the class \Class{scrartcl}. + +As described in \autoref{sec:maincls.formattingOptions}, +\autopageref{desc:maincls.option.pointlessnumbers} +{\KOMAScript} handles dots in section numbers according to +\cite{DUDEN}. The command \Macro{autodot} makes sure that these rules +are being followed. Except from \Macro{part} in all levels a dot is +followed by a \Macro{enskip}. This is similar to a horizontal skip of +\(0.5\Unit{em}\). + +The command \Macro{othersectionlevelsformat} takes the name of the +section level, such as ``\PName{section}'', ``\PName{subsection}'' +\dots{}, as parameter. As default, only the levels \Macro{part} and +\Macro{chapter} have formatting commands on their own, while all other +section levels are covered by one formatting command only. This has +historical reasons. At the time Werner Lemberg suggested a suitable +extension of {\KOMAScript} for his \Package{CJK} package, only this +differentiation was needed. + +The formatting commands can be redefined using \Macro{renewcommand} to +fit them to your personal needs. The following original definitions +are used by the {\KOMAScript} classes: +\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} + Assume you don't want the word ``Part'' written in front of the part number. + You could use the following command in the preamble of your document: +\begin{lstlisting} + \renewcommand*{\partformat}{\thepart\autodot} +\end{lstlisting} + In fact, you could do without \Macro{autodot} at this point and insert + a fixed point instead. As \Macro{part} is numbered with roman numbers, + according to \cite{DUDEN} a dot has to be applied. However, you would + give up the possibility to use one of the options + \Option{pointednumbers} und \Option{pointlessnumbers} then. More + details concerning class options you can find in + \autoref{sec:maincls.formattingOptions}, + \autopageref{desc:maincls.option.pointlessnumbers}). + + An additional possibility could be to place the section numbers + in the left margin. That can be done in a way that the heading + text is left aligned with the surrounding text. + This can be accomplished with: +\begin{lstlisting} + \renewcommand*{\othersectionlevelsformat}[1]{% + \llap{\csname the#1\endcsname\autodot\enskip}} +\end{lstlisting} + The almost unknown command \Macro{llap} in the definition above, + puts its argument left to the current possition without changing the + position. A much better \LaTeX{} solution would be: +\begin{lstlisting} + \renewcommand*{\othersectionlevelsformat}[1]{% + \makebox[0pt][r]{% + \csname the#1\endcsname\autodot\enskip}} +\end{lstlisting} + See \cite{latex:usrguide} for more information about the optional arguments + of \Macro{makebox}. +\end{Example} +% +\EndIndex{Cmd}{partformat}% +\EndIndex{Cmd}{chapterformat}% +\EndIndex{Cmd}{othersectionlevelsformat}% +\EndIndex{Cmd}{autodot}% + + +\begin{Declaration} + \Macro{chapappifchapterprefix}\Parameter{additional text}\\ + \Macro{chapapp} +\end{Declaration}% +\BeginIndex{Cmd}{chapappifchapterprefix}% +\BeginIndex{Cmd}{chapapp}% +These\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% +\ChangedAt{v2.8o}{\Class{scrbook}\and\Class{scrreprt}} two commands +are used internally by {\KOMAScript} and are also provided at the user +interface. Using the layout option \Option{chapterprefix} (see +\autoref{sec:maincls.layoutOptions}, +\autopageref{desc:maincls.option.chapterprefix}) +\Macro{chapappifchapterprefix} issues the word +``Chapter''\Index{chapter} in the main part of your document in the +current language followed by \PName{additional text}. In the +appendix\Index{appendix} instead, the word ``Appendix'' in the current +language followed by \PName{additional text} is issued. Having set the +option \Option{nochapterprefix} there is no additional output. + +The command \Macro{chapapp} always issues the word ``Chapter'' or +``Appendix''. In this case the options \Option{chapterprefix} and +\Option{nochapterprefix} have no effect. + +Since chapters only exist in the classes \Class{scrbook} and +\Class{scrreprt} these commands only exist in these classes. +% +\EndIndex{Cmd}{chapappifchapterprefix}% +\EndIndex{Cmd}{chapapp}% + + +\begin{Declaration} + \Macro{chaptermark}\Parameter{Running head}\\ + \Macro{sectionmark}\Parameter{Running head}\\ + \Macro{subsectionmark}\Parameter{Running head}\\ + \Macro{chaptermarkformat}\\ + \Macro{sectionmarkformat}\\ + \Macro{subsectionmarkformat} +\end{Declaration}% +\BeginIndex{Cmd}{chaptermark}% +\BeginIndex{Cmd}{sectionmark}% +\BeginIndex{Cmd}{subsectionmark}% +\BeginIndex{Cmd}{chaptermarkformat}% +\BeginIndex{Cmd}{sectionmarkformat}% +\BeginIndex{Cmd}{subsectionmarkformat}% +\begin{Explain}% + As mentioned in \autoref{sec:maincls.pageStyle} the page style + \PValue{headings} works with running heads\Index{running + head}. For this, the commands \Macro{chaptermark} and + \Macro{sectionmark} as well as \Macro{sectionmark} and + \Macro{subsectionmark} respectively are defined. Every sectioning + command (\Macro{chapter}, \Macro{section}, \Macro{subsection} \dots) + automatically carries out the respective \Macro{\dots mark} command. + The parameter handed over takes the text of the section + heading\Index{heading}. The respective section number is added + automatically to the \Macro{\dots mark} command. The formatting is done + according to the section level with the command + \Macro{chaptermarkformat}, \Macro{sectionmarkformat} or + \Macro{subsectionmarkformat}. + \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Of course there is no + command \Macro{chaptermark} or \Macro{chaptermarkformat} in + \Class{scrartcl}. \OnlyAt{\Class{scrartcl}}Accordingly + \Macro{subsectionmark} and the command \Macro{subsectionmarkformat} + only exist in \Class{scrartcl}. This changes when you use the + \Package{scrpage2} package (see \autoref{cha:scrpage}).\par +\end{Explain} +Similar to \Macro{chapterformat} and \Macro{othersectionlevelsformat} the +commands \Macro{chaptermarkformat} (not at \Class{scrartcl}), +\Macro{sectionmarkformat} and the command \Macro{subsectionmarkformat} +(only at \Class{scrartcl}) define the formatting of the section numbers +in running heads. They can be adapted to your personal needs with +\Macro{renewcommand}. The original definitions from the {\KOMAScript} +classes are: +\begin{lstlisting} + \newcommand*{\chaptermarkformat}{% + \chapappifchapterprefix{\ }\thechapter\autodot\enskip} + \newcommand*{\sectionmarkformat}{\thesection\autodot\enskip} + \newcommand*{\subsectionmarkformat}{% + \thesubsection\autodot\enskip} +\end{lstlisting} +\begin{Example} + Suppose you want to combine the chapter number in the header with the word + ``Chapter''. For example you could insert in the preamble of your + document the following definition: +\begin{lstlisting} + \renewcommand*{\chaptermarkformat}{% + \chapapp~\thechapter\autodot\enskip} +\end{lstlisting} +\end{Example} +As you can see both the commands \Macro{chapappifchapterprefix} and +\Macro{chapapp} explained above are used. +% +\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{}{numbering}% +As default in the classes \Class{scrbook}\IndexClass{scrbook} and +\Class{scrreprt}\IndexClass{scrreprt} the section levels from +\Macro{part}\IndexCmd{part}\IndexCmd{chapter}\IndexCmd{section} down +to \Macro{subsection}\IndexCmd{subsection} and in the class +\Class{scrartcl}\IndexClass{scrartcl} the levels from \Macro{part} +down to \Macro{subsubsection}\IndexCmd{subsubsection} are numbered. +This is controlled by the \LaTeX\ counter \Counter{secnumdepth}. The +value \(-1\) represents \Macro{part}, \(0\) the level \Macro{chapter} +and so on. Since in \Class{scrartcl} there is no \Macro{chapter} the +counting in this class starts with \(0\) at the level \Macro{part}. By +way of defining, decrementing or incrementing this counter you can +determine down to which level the headings are numbered. The same +applies in the standard classes. Please refer also to the explanations +concerning the counter \Counter{tocdepth} in +\autoref{sec:maincls.toc}, \autopageref{desc:maincls.counter.tocdepth}. +% +\EndIndex{Counter}{secnumdepth}\EndIndex{}{numbering} + + +\begin{Declaration} + \Macro{setpartpreamble}% + \OParameter{position}\OParameter{width}\Parameter{preamble}\\ + \Macro{setchapterpreamble}% + \OParameter{position}\OParameter{width}\Parameter{preamble} +\end{Declaration}% +\BeginIndex{Cmd}{setpartpreamble}% +\BeginIndex{Cmd}{setchapterpreamble}% +Parts\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} and chapters in +{\KOMAScript} can be started with a \PName{preamble}. This is +particularily useful when you are using a two column layout with the +class option \Option{twocolumn}\IndexOption{twocolumn}. Together with +the heading the \PName{preamble} is always set in a one column layout. +The \PName{preamble} can comprise more than one paragraph. The command +for issuing the \PName{preamble} has to be put in front of the +respective \Macro{part}, \Macro{addpart}, \Macro{chapter} or +\Macro{addchap} command. +\begin{Example} + You are writing a report on the situation of a company. You organize + the report in such a way that every department gets its own partial report. + Every one of these parts should be introduced by a short abstract on the + title page. You could write the following: +\begin{lstlisting} + \setpartpreamble{% + \begin{abstract} + This is a blind text. This text should show, how a + printed text will look like at this place. If you + read this text, you will get no information. + \end{abstract} + } + \part{Department for Word Processing} +\end{lstlisting} + Depending on the settings for the heading\Index{heading} (see + \autoref{sec:maincls.fontOptions}, + \autopageref{desc:maincls.option.smallheadings}) size and the + \Environment{abstract} environment\IndexEnv{abstract} (see + \autoref{sec:maincls.formattingOptions}, + \autopageref{desc:maincls.option.abstracton}), the result would look similar + to: + \begin{ShowOutput}\centering + {\LARGE\usekomafont{sectioning} Part III.\par\vspace{20pt}} + {\LARGE\usekomafont{sectioning} Department for Word Processing\strut\par} + \begin{quote}\small + \vspace{3ex} + \begin{center} + \usekomafont{sectioning}\abstractname + \end{center} + \vspace{2ex} This is a blind text. This text should show, how a + printed text will look like at this place. If you read this text, + you will get no information. + \end{quote} + \end{ShowOutput} +\end{Example} +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}). + +The\ChangedAt{v2.8p}{\Class{scrbook}\and\Class{scrreprt}} first +optional argument \PName{position} determines the position at which +the preamble is placed with the help of one or two letters. For the +vertical placement there are two possibilities at present: +\begin{description} +\item [\quad\texttt{o}:] above the heading +\item [\quad\texttt{u}:] below the heading +\end{description} +You can insert a preamble both above and below a heading. For the +horizontal placement you have the choice between three alignments: +\begin{description} +\item [\quad\texttt{l}:] left-aligned +\item [\quad\texttt{r}:] right-aligned +\item [\quad\texttt{c}:] centered +\end{description} +However, this does not issue the text of the \PName{preamble} but +inserts a box whose width is determined by the second optional +argument \PName{width}. If you leave out this second argument the +whole text width is used. In this case the option for horizontal +positioning will have no effect. You can combine one letter from the +vertical with one letter from the horizontal positioning. +% +\EndIndex{Cmd}{setpartpreamble}% +\EndIndex{Cmd}{setchapterpreamble}% + + +\begin{Declaration} + \Macro{dictum}\OParameter{author}\Parameter{dictum}\\ + \Macro{dictumwidth}\\ + \Macro{dictumauthorformat}\Parameter{author}\\ + \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}% +Apart\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% +\ChangedAt{v2.8q}{\Class{scrbook}\and\Class{scrreprt}} from an +introducing paragraph you can use \Macro{setpartpreamble} or +\Macro{setchapterpreamble} for a kind of +\PName{aphorism}\Index{aphorism} (also known as ``dictum'') at the +beginning of a chapter or section. The command \Macro{dictum} inserts +such an aphorism. This macro can be used as obligatory argument of +either the command \Macro{setchapterpreamble} or +\Macro{setpartpreamble}. However, this is not obligatory. + +The dictum together with an optional \PName{author} is inserted in a +\Macro{parbox}\IndexCmd{parbox} (see \cite{latex:usrguide}) of the +width \Macro{dictumwidth}. Yet \Macro{dictumwidth} is not a length +which is set with \Macro{setlength}. It is a macro that can be +redefined using \Macro{renewcommand}. Default setting is +\verb;0.3333\textwidth;, which is a third of the textwidth. The box +itself is positioned with the command \Macro{raggeddictum}. Default +here is \Macro{raggedleft}\IndexCmd{raggedleft}. The command +\Macro{raggeddictum} can be redefined using \Macro{renewcommand}. + +Within the box the \PName{dictum} is set using +\Macro{raggeddictumtext}. Default setting is +\Macro{raggedright}\IndexCmd{raggedright}. Similar to +\Macro{raggeddictum} it can be redefined with \Macro{renewcommand}. +The output uses the default font which is set for the element +\FontElement{dictumtext}. It can be changed with the commands from +\autoref{sec:maincls.font}. Default settings are listed in +\autoref{tab:maincls.dictumfont}. + +If there is an \PName{author} it is separated from the \PName{dictum} +by a line with the width of the \Macro{parbox}. This is defined by the +macro \Macro{raggeddictumauthor}. Default is \Macro{raggedleft}. This +command can also be redefined using \Macro{renewcommand}. The format +of the output is defined with \Macro{dictumauthorformat}. This macro +expects the \Macro{author} as argument. As default +\Macro{dictumauthorformat} is defined as: +\begin{lstlisting} + \newcommand*{\dictumauthorformat}[1]{(#1)} +\end{lstlisting} +Thus the \PName{author} is set in in round parenthesis. For the +element \FontElement{dictumauthor} a different font as for the element +\FontElement{dictumtext} can be defined. Default settings are listed +in \autoref{tab:maincls.dictumfont}. Changes can be made using the +commands from \autoref{sec:maincls.font}. +% +\begin{table} + \centering% + \caption{Default settings for the elements of a dictum} + \begin{tabular}{ll} + \toprule + Element & Default \\ + \midrule + \FontElement{dictumtext} & + \Macro{normalfont}\Macro{normalcolor}\Macro{sffamily}\Macro{small}\\ + \FontElement{dictumauthor} & + \Macro{itshape}\\ + \bottomrule + \end{tabular} + \label{tab:maincls.dictumfont} +\end{table} +% +If \Macro{dictum} is used within the macro \Macro{setchapterpreamble} +or \Macro{setpartpreamble} you have to take care of the following: The +horizontal positioning is always done with \Macro{raggeddictum}. +Therefore, the optional argument for horizontal positioning, which is +implemented for these two commands, has no effect. \Macro{textwidth} +is not the width of the whole text corpus but the actually used text +width. If \Macro{dictumwidth} is set to \verb;.5\textwidth; and +\Macro{setchapterpreamble} has an optional width of +\verb;.5\textwidth; too, you will get a box with a width of a quarter +of the text width. Therefore, if you use \Macro{dictum} it is +recommended to refrain from setting the optional width for +\Macro{setchapterpreamble} or \Macro{setpartpreamble}. + +If you have more than one dictum you should separate them by an +additional vertical space. You could easely use the command +\Macro{bigskip}\IndexCmd{bigskip} for that. + +\begin{Example} + You are writing a chapter on an aspect of weather forecasting. You + have come across an aphorism which you would like to place at the + beginning of the chapter beneath the heading. You could write: +\begin{lstlisting} + \setchapterpreamble[u]{% + \dictum[Anonymous]{Forecasting is the art of saying + what is going to happen and then to explain + why it didn't.}} + \chapter{Weather forecasting} +\end{lstlisting} + The output would look as follows: + \begin{ShowOutput} + {\usekomafont{sectioning}\usekomafont{chapter}% + 17\enskip Weather forecasting\par} \vspace{\baselineskip} + \dictum[Anonymous]{Forecasting is the art of saying what is going to + happen and then to explain why it didn't.} + \end{ShowOutput} + + If you would rather prefer the dictum to span over only a quarter of + the text width you can redefine \Macro{dictumwidth}: +\begin{lstlisting} + \renewcommand*{\dictumwidth}{.25\textwidth} +\end{lstlisting} +\end{Example} + +For a somewhat more sophisticated formatting of left- or right-aligned +paragraphs including hyphenation you can use the +package~\Package{ragged2e}~\cite{package:ragged2e}. +\EndIndex{Cmd}{dictum}% +\EndIndex{Cmd}{dictumwidth}% +\EndIndex{Cmd}{dictumauthorformat}% +\EndIndex{Cmd}{raggeddictum}% +\EndIndex{Cmd}{raggeddictumtext}% +\EndIndex{Cmd}{raggeddictumauthor}% + + +\subsection{Footnotes} +\label{sec:maincls.footnotes} + +Footnotes are not limited to the main part of the document. Since +footnotes\Index{footnotes} are mainly used in the main text they are +being covered in this section. + +\begin{Declaration} + \Macro{footnote}\OParameter{number}\Parameter{text}\\ + \Macro{footnotemark}\OParameter{number}\\ + \Macro{footnotetext}\OParameter{number}\Parameter{text} +\end{Declaration}% +\BeginIndex{Cmd}{footnote}% +\BeginIndex{Cmd}{footnotemark}% +\BeginIndex{Cmd}{footnotetext}% +Similar to the standard classes footnotes in {\KOMAScript} are +produced with the \Macro{footnote} command. +An alternative is the usage in pairs of the commands +\Macro{footnotemark} and \Macro{footnotetext}. +As in the standard classes it is possible that a page break occurs +within a footnote. Normally this happens if the footnote mark is +placed near the bottom of a page thus leaving \LaTeX\ no choice as to +break the page at this point. +% +\EndIndex{Cmd}{footnote}% +\EndIndex{Cmd}{footnotemark}% +\EndIndex{Cmd}{footnotetext}% + + +\begin{Declaration} + \Macro{deffootnote}\OParameter{mark width}\Parameter{indent}% + \Parameter{parindent}\Parameter{definition}\\ + \Macro{deffootnotemark}\Parameter{definition}\\ + \Macro{thefootnotemark}\\ + \Macro{textsuperscript}\Parameter{text} +\end{Declaration}% +\BeginIndex{Cmd}{deffootnote}% +\BeginIndex{Cmd}{deffootnotemark}% +\BeginIndex{Cmd}{thefootnotemark}% +\BeginIndex{Cmd}{textsuperscript}% +Formatting footnotes in {\KOMAScript} is slightly different to the +standard classes. As in the standard classes the footnote mark in the +text is formed as a small number in superscript. The same formatting +is used in the footnote itself. + +The mark in the footnote is type-set right-aligned in a box +with width \PName{mark width}. The first line of the footnote +follows directly. + +All following lines will be indented by the length of +\PName{indent}. If the optional parameter \PName{mark width} +was not specified, then it defaults to \PName{indent}. +If the footnote consists of more than one paragraph, then the +first line of a paragraph is indented in addition to \PName{indent} +by the value of \PName{parindent}. +\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]{\textsf{first paragraph of a footnote}}} + \put(45,5){\makebox(0,0)[l]{\textsf{next paragraph of a footnote}}} + % 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{parindent}}} + % + \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{indent}}} + % + \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{mark width}}} +\end{picture} +\caption{Parameters that control the footnote layout} +\label{fig:maincls.deffootnote} +\end{figure} + +Figure \ref{fig:maincls.deffootnote} illustrates the layout parameters +ones more. The default configuration of \KOMAScript{} is: +\begin{lstlisting} + \deffootnote[1em]{1.5em}{1em} + {\textsuperscript{\thefootnotemark}} +\end{lstlisting} +\Macro{textsuperscript} causes both the superscript and the smaller +font size. \Macro{thefootnotemark} is the current footnote mark +without any formatting. + +The\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} font element +\FontElement{footnote}\IndexFontElement{footnote} determines the font +of the footnote including the footnote mark. Using the element +\FontElement{footnotelabel}\IndexFontElement{footnotelabel} the font +of the footnote mark can be changed separately with the commands +mentioned in \autoref{sec:maincls.font} Please refer also to the +\autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}. Default setting is no +changing of the font. + +The footnote mark in the text is defined separately with +\Macro{deffootnotemark}. Default setting is: +\begin{lstlisting} + \deffootnotemark{% + \textsuperscript{\thefootnotemark}} +\end{lstlisting} +Above\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} the font +for the element +\FontElement{footnotereference}\IndexFontElement{footnotereference} is +applied (see \autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}). Thus the +footnote marks in the text and the footnote itself are identical. The +font can be changed with the commands described in +\autoref{sec:maincls.font}. + +\begin{Example} + A feature often asked for are footnote marks which are neither in + superscript nor in a smaller font size. They should not touch the + footnote text but have a small space in between. This can be + accomplished as follows: +\begin{lstlisting} + \deffootnote{1em}{1em}{\thefootnotemark\ } +\end{lstlisting} + The footnote mark and the space is set right-aligned into a + box of the width 1\Unit{em}. The following lines of the footnote + text is also indented by 1\Unit{em} from the left margin. + + Another often requested footnote layout are left-aligned + footnote marks. These can be reached with: +\begin{lstlisting} + \deffootnote{1.5em}{1em}{% + \makebox[1.5em][l]{\thefootnotemark}} +\end{lstlisting} + + If you want however change the font for all footnotes, for example + to sans serif, you can simply solve this problem using the commands + from \autoref{sec:maincls.fontOptions}: +\begin{lstlisting} + \setkomafont{footnote}{\sffamily} +\end{lstlisting} +\end{Example} +As demonstrated with the examples above the simple user interface of +{\KOMAScript} provides a great variety of different footnote +formattings. +% +\EndIndex{Cmd}{deffootnote}% +\EndIndex{Cmd}{deffootnotemark}% +\EndIndex{Cmd}{thefootnotemark}% +\EndIndex{Cmd}{textsuperscript}% + + +\subsection{Lists} +\label{sec:maincls.lists} \BeginIndex[indexother]{}{lists} + +Both {\LaTeX} and the standard classes offer different environments +for lists. Though slightly changed or extended all these list are of +course offered in {\KOMAScript} as well. In general all lists\,---\,even +of different kind\,---\,can be nested up to four levels. From a +typographical view, anything more would make no sense. Even more than +three levels are hard to perceive. Recommendation in these cases is to +split your huge list in several small ones. + +\begin{Declaration} + \Environment{itemize}\\ + \Macro{item}\\ + \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}% +The most simple form of a list is an \Environment{itemize} list. +Depending on the level {\KOMAScript} uses the following marks: +"`{\labelitemi}"', "`{\labelitemii}"', "`{\labelitemiii}"' and +"`{\labelitemiv}"'. The definition of these symbols is specified in +the macros \Macro{labelitemi}, \Macro{labelitemii}, +\Macro{labelitemiii} and \Macro{labelitemiv}. All of this macros can +be redefined using \Macro{renewcommand}. Every item is introduced with +\Macro{item}. +\begin{Example} + You have a simple list which is nested in several levels. You write + for example: +\begin{lstlisting} + \minisec{Vehicles} + \begin{itemize} + \item aeroplans + \begin{itemize} + \item biplane + \item jets + \item transport planes + \begin{itemize} + \item single-engined + \begin{itemize} + \item{jet-driven} + \item{propeller-driven} + \end{itemize} + \item multi-engined + \end{itemize} + \item helicopter + \end{itemize} + \item automobiles + \begin{itemize} + \item racing car + \item private car + \item lorry + \end{itemize} + \item bicycles + \end{itemize} +\end{lstlisting} + As output you get: + \begin{ShowOutput}[\baselineskip] + \minisec{Vehicles} + \begin{itemize} + \item aeroplans + \begin{itemize} + \item biplane + \item jets + \item transport planes + \begin{itemize} + \item single-engined + \begin{itemize} + \item{jet-driven} + \item{propeller-driven} + \end{itemize} + \item multi-engined + \end{itemize} + \item helicopter + \end{itemize} + \item automobiles + \begin{itemize} + \item racing car + \item private car + \item lorry + \end{itemize} + \item bicycles + \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} + \Environment{enumerate}\\ + \XMacro{item}\\ + \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}% +Another form of a list often used is a numbered list which is already +implemented by the {\LaTeX} kernel. Depending on the level the +numbering\Index{numbering} uses the following characters: arabic +numbers, small letters, small roman numerals and capital letters. The +kind of numbering is defined with the macros \Macro{theenumi} down to +\Macro{theenumiv}. The output format is determined by the macros +\Macro{labelenumi} to \Macro{labelenumiv}. While the small letter of +the second level is followed by a round parenthesis, the values of all +other levels are followed by a dot. Every item is introduced with +\Macro{item}. +\begin{Example} + Replacing every occurence of an \Environment{itemize} environment + with an \Environment{enumerate} environment in the example above we + get the following result: + \begin{ShowOutput}[\baselineskip] + \minisec{Vehicles} + \begin{enumerate} + \item aeroplans + \begin{enumerate} + \item biplane + \item jets + \item transport planes + \begin{enumerate} + \item single-engined + \begin{enumerate} + \item{jet-driven}\label{xmp:maincls.jets} + \item{propeller-driven} + \end{enumerate} + \item multi-engined + \end{enumerate} + \item helicopter + \end{enumerate} + \item automobiles + \begin{enumerate} + \item racing car + \item private car + \item lorry + \end{enumerate} + \item bicycles + \end{enumerate} + \end{ShowOutput} + Using \Macro{label} within a list you can set labels which are + referenced with \Macro{ref}. In the example above a label + was set after the jet-driven, single-engined transport plane with + \Macro{label}\PParameter{xmp:jets}. The \Macro{ref} value is then + \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} + \Environment{description}\\ + \XMacro{item}\OParameter{item} +\end{Declaration}% +\BeginIndex{Env}{description}% +\BeginIndex{Cmd}{item}% +Another list form is the description list. Its main use is the +description of several items. The item itself is an optional parameter +in \Macro{item}. The font\Index{font}\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}% +, which is responsible for emphasizing the item can be changed with +the commands for the element +\FontElement{descriptionlabel}\IndexFontElement{descriptionlabel} (see +\autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}) described in +\autoref{sec:maincls.font}. Default setting is +\Macro{sffamily}\Macro{bfseries}. +\begin{Example} + Instead of items in sans serif and bold you want them printed in the + standard font in bold. Using +\begin{lstlisting} + \setkomafont{descriptionlabel}{\normalfont\bfseries} +\end{lstlisting} + you redefine the font accordingly. + + An example for a description list is the output of the page styles + listed in \autoref{sec:maincls.pageStyle}. The heavily + abbreviated source code is: +\begin{lstlisting} + \begin{description} + \item[empty] is the page style without + any header or footer + \item[plain] is the page style without running headline. + \item[headings] is the page style with running headline. + \item[myheadings] is the page style for manual headline. + \end{description} +\end{lstlisting} + This abbreviated version gives: + \begin{ShowOutput} + \begin{description} + \item[empty] is the page style without any header or footer + \item[plain] is the page style without running headline. + \item[headings] is the page style with running headline. + \item[myheadings] is the page style for manual headline. + \end{description} + \end{ShowOutput} +\end{Example} +% +\EndIndex{Env}{description}% +\EndIndex{Cmd}{item}% + + +\begin{Declaration} + \Environment{labeling}\OParameter{delimiter}\Parameter{widest pattern}\\ + \XMacro{item}\OParameter{key word} +\end{Declaration}% +\BeginIndex{Env}{labeling}% +\BeginIndex{Cmd}{item}% +An additional form of a description list in {\KOMAScript} is the +\Environment{labeling} environment. In difference to the +\Environment{description} environment you can provide a pattern, which +determines the indentation of all items. Furthermore you can put an +optional \PName{delimiter} between item and description. +\begin{Example} + Slightly changing the example from the \Environment{description} + environment we could write: +\begin{lstlisting} + \begin{labeling}[~--]{% + \usekomafont{descriptionlabel}myheadings} + \item[\usekomafont{descriptionlabel}empty] + Page style without header and footer + \item[\usekomafont{descriptionlabel}plain] + Page style for chapter beginnings without headline + \item[\usekomafont{descriptionlabel}headings] + Page style for running headline + \item[\usekomafont{descriptionlabel}myheadings] + Page style for manual headline + \end{labeling} +\end{lstlisting} + As result we get: + \begin{ShowOutput} + \begin{labeling}[~--]{\usekomafont{descriptionlabel}myheadings} + \item[\usekomafont{descriptionlabel}empty] + Page style without header and footer + \item[\usekomafont{descriptionlabel}plain] + Page style for chapter beginnings without headline + \item[\usekomafont{descriptionlabel}headings] + Page style for running headline + \item[\usekomafont{descriptionlabel}myheadings] + Page style for manual headline + \end{labeling} + \end{ShowOutput} + As can be seen in this example a font changing command has to be + repeated both in the pattern and in the optional parameter in every + \Macro{item} command in this environment. +\end{Example} +Originally this environment was implemented for things like ``Given +is\dots, Asked is\dots, Solution'' that are often used in hand-outs. +By now this environment has found many different applications. For +example the environment for examples in this guide was defined with +the \Environment{labeling} environment. +% +\EndIndex{Env}{labeling}% +\EndIndex{Cmd}{item}% + + +\begin{Declaration} + \Environment{verse} +\end{Declaration}% +\BeginIndex{Env}{verse}% +Normally the \Environment{verse} environment isn't perceived as a list +environment because you don't work with \Macro{item} commands. Instead +fixed line breaks are used like within the \Environment{flushleft} +environment. Yet internally in both the standard classes as well +as {\KOMAScript} it is a list environment. + +In general the \Environment{verse} environment is used for +poems\Index{poems}. Lines are indented both left and right. Single +verses are ended by a fixed line break \verb|\\|. Verses are set as a +paragraph, thus separated by an empty line. Often also +\Macro{medskip}\IndexCmd{medskip} or \Macro{bigskip}\IndexCmd{bigskip} +is used instead. To avoid a page break at the end of a line you insert +\verb|\\*| instead of \verb|\\|. +\begin{Example} + As example the first lines of ``Little Red Riding Hood and the + Wolf'' by Roald Dahl: +\begin{lstlisting} + \begin{verse} + As soon as Wolf began to feel\\* + that he would like a decent meal,\\* + He went and knocked on Grandma's door.\\* + When Grandma opened it, she saw\\* + The sharp white teeth, the horrid grin,\\* + And Wolfie said, 'May I come in?' + \end{verse} +\end{lstlisting} + The result would like as follows: + \begin{ShowOutput} + \begin{verse} + As soon as Wolf began to feel\\* + That he would like a decent meal,\\* + He went and knocked on Grandma's door.\\* + When Grandma opened it, she saw\\* + The sharp white teeth, the horrid grin,\\* + And Wolfie said, 'May I come in?' + \end{verse} + \end{ShowOutput} + Yet if you have very long lines \verb|\\*| can not prevent a page + break within a verse. That would be possible here for example: + \begin{ShowOutput} + \begin{verse} + Both the philosoph and the house-owner\nopagebreak + have always something to repair\\ + \bigskip + Don't trust a men, my son, who tells you\nopagebreak + that he has never lain. + \end{verse} + \end{ShowOutput} + + These two verses were separated by a \Macro{bigskip}. +\end{Example} +% +\EndIndex{Env}{verse}% + + +\begin{Declaration} + \Environment{quote}\\ + \Environment{quotation} +\end{Declaration}% +\BeginIndex{Env}{quote}% +\BeginIndex{Env}{quotation}% +These two environments are also list environments and can be found +both in the standard and the {\KOMAScript} classes. Both environments +use justified text which is indented both on the left and right side. +Usually they are used to separate long citations\Index{citations} from +the main text. The difference between these two lies in the matter how +paragraphs are typeset. While \Environment{quote} paragraphs are +highlighted by vertical space, in \Environment{quotation} paragraphs +the first line is indented. This is also true for the first line of a +\Environment{quotation} environment. To get around this behaviour you +have to insert a \Macro{noindent} command\IndexCmd{noindent} in front. +\begin{Example} + You want to highlight a short anecdote. You write the following + \Environment{quotation} environment for this: + % +\begin{lstlisting} + A small example for a short anecdote: + \begin{quotation} + The old year was turning brown; the West Wind was + calling; + + Tom caught the beechen leaf in the forest falling. + ``I've caught the happy day blown me by the breezes! + Why wait till morrow-year? I'll take it when me pleases. + This I'll mend my boat and journey as it chances + west down the withy-stream, following my fancies!'' + + Little Bird sat on twig. ``Whillo, Tom! I heed you. + I've a guess, I've a guess where your fancies lead you. + Shall I go, shall I go, bring him word to meet you?'' + \end{quotation} +\end{lstlisting} + The result is: + \begin{ShowOutput} + A small example for a short anecdote: + \begin{quotation} + The old year was turning brown; the West Wind was + calling; + + Tom caught the beechen leaf in the forest falling. + ``I've caught the happy day blown me by the breezes! + Why wait till morrow-year? I'll take it when me pleases. + This I'll mend my boat and journey as it chances + west down the withy-stream, following my fancies!'' + + Little Bird sat on twig. ``Whillo, Tom! I heed you. + I've a guess, I've a guess where your fancies lead you. + Shall I go, shall I go, bring him word to meet you?'' + \end{quotation} + \end{ShowOutput} + % + Using a \Environment{quote} environment instead you get: + % + \begin{ShowOutput} + A small example for a short anecdote: + \begin{quote}\setlength{\parskip}{4pt plus 2pt minus 2pt} + The old year was turning brown; the West Wind was + calling; + + Tom caught the beechen leaf in the forest falling. + ``I've caught the happy day blown me by the breezes! + Why wait till morrow-year? I'll take it when me pleases. + This I'll mend my boat and journey as it chances + west down the withy-stream, following my fancies!'' + + Little Bird sat on twig. ``Whillo, Tom! I heed you. + I've a guess, I've a guess where your fancies lead you. + Shall I go, shall I go, bring him word to meet you?'' + \end{quote} + \end{ShowOutput} + % +\end{Example} +% +\EndIndex{Env}{quote}% +\EndIndex{Env}{quotation}% + + + +\begin{Declaration} + \Environment{addmargin}\OParameter{left indentation}\Parameter{indentation}\\ + \Environment{addmargin*}\OParameter{inner indentation}\Parameter{indentation} +\end{Declaration} +\BeginIndex{Env}{addmargin}% +Similar to \Environment{quote} and \Environment{quotation} the +\Environment{addmargin} environment changes the margin\Index{margin}. +Different to the first two environments using \Environment{addmargin} +the user can influence the width of the indentation. Furthermore this +environment doesn't change the indentation of the first line and the +vertical spacing between paragraphs. + +If only the obligatory argument \PName{indentation} is given, both the +left and right margin are expanded by this value. If the optional +argument \PName{indentation} is given the value \PName{left + indentation} is added to \PName{indentation} at the left margin. + +The starred \Environment{addmargin*} only differs from the normal +version in a twoside layout. In addition the difference only occurs if +the optional argument \PName{inner indentation} is used. In this case +this value is added to the normal inner indentation. Then the value of +\PName{indentation} determines the width of the opposite margin. + +Both versions of this environment take also negative values for all +parameters. This has the effect of expanding the environment into the +margin. +\begin{Example} + Suppose you write a documentation which includes short source code + examples. To highlight these you want them separated from the text + by a horizontal line and slightly spanning into the outer + margin. First you define the environment: +\begin{lstlisting} + \newenvironment{SourceCodeFrame}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% + }{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% + } +\end{lstlisting} + If you now put your source code in such an environment it will show + up as: + \begin{ShowOutput} + \newenvironment{SourceCodeFrame}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% + }{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% + } + You define yourself the following environment: + \begin{SourceCodeFrame} +\begin{lstlisting} +\newenvironment{\SourceCodeFrame}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% +}{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% +} +\end{lstlisting} + \end{SourceCodeFrame} + This may be feasible or not. In any way it shows the usage of this + environment. + \end{ShowOutput} + The optional argument of the \Environment{addmargin*} environment + makes sure that the inner margin is extended by 1\Unit{em}. In turn + the outer margin is decreased by 1\Unit{em}. The result is a shift + by 1\Unit{em} to the outside. Instead of \PValue{1em} you can use a + length of, for example, \PValue{2\Macro{parindent}} of course. +\end{Example} +There is one problem with the \Environment{addmargin*} which you +should be aware of. If a page break occurs within an +\Environment{addmargin*} environment the indentation on the following +page is on the wrong side. This means that suddenly the \PName{inner + indentation} is applied on the outside of the page. Therefore it is +recommended to prevent page breaks within this environment. This can +be achieved by using an additional \Macro{parbox} or, as in the +example above, a \Environment{minipage}. This makes use of the fact +that neither the argument of a \Macro{parbox} nor the content of a +\Environment{minipage} is broken at the end of a page. Unfortunately +this is not without disadvantages: In some cases pages can't be filled +correctly which has the effect of several warnings. + +By the way, whether a page is going to be on the left or right side of the +book can't be determined in the first \LaTeX\ compiling for sure. For details +please refer to the explanation for the command \Macro{ifthispageodd} and +\Macro{ifthispagewasodd} at \autoref{sec:maincls.pageStyle}, +\autopageref{desc:maincls.macro.ifthispageodd}. +% +\EndIndex{Env}{addmargin}% + + +\begin{Explain} + One concluding note to the list environments: In the internet and + support it is often asked why such an environment is followed by a + indented\Index{indentation} paragraph. In fact this is the result of + demanding a new paragraph. In \LaTeX\ empty lines are interpreted as + a new paragraph. This is also the case before and after list + environments. Thus, if you want a list environment to be set within + a paragraph you have to omit empty lines before and after. To + separate this environment from the rest of your text nevertheless, + you can insert a comment line which only consists of a percent + character in the {\LaTeX} source. +\end{Explain} +\EndIndex[indexother]{}{lists} + +\subsection{Margin Notes} +\label{sec:maincls.marginNotes} + +\begin{Declaration} + \Macro{marginpar}\OParameter{margin note left}\Parameter{margin note}\\ + \Macro{marginline}\Parameter{margin note} +\end{Declaration}% +\BeginIndex{Cmd}{marginpar}% +\BeginIndex{Cmd}{marginline}% +Usually margin notes\Index[indexmain]{margin notes} in {\LaTeX} are +inserted with the command \Macro{marginpar}. They are placed in the +outer margin. In documents with oneside layout the right border is +used. Though \Macro{marginpar} optionally can take a different margin +note in case the output is on the left margin, margin notes are always +in justified layout. But many users prefer left- or right-aligned +margin notes instead. {\KOMAScript} offers the command +\Macro{marginline} for that. +\begin{Example} + At several places in this documentation you find the classes mentioned + written in the margin. This can be produced\footnote{In fact, instead + of \Macro{texttt}, a semantic highlighting was used. To avoid confusion + this was replaced in the example.} with: +\begin{lstlisting} + \marginline{\texttt{scrartcl}} +\end{lstlisting} + + Instead of \Macro{marginline} you could have used \Macro{marginpar} + too. In fact the first command is implemented internally as: +\begin{lstlisting} + \marginpar[\raggedleft\texttt{scrartcl}] + {\raggedright\texttt{scrartcl}} +\end{lstlisting} + Eventually \Macro{marginline} is only an abbreviating writing of the + code above. +\end{Example} +% +\begin{Explain} + Unfortunately \Macro{marginpar} doesn't always work correctly in the + twoside\Index{twoside} layout. Whether a margin note is going to show + up on the left or right is already decided while evaluating the command + \Macro{marginpar}. If the output routine now shifts the margin note + onto the next page the alignment isn't correct anymore. This behaviour + is deeply founded within {\LaTeX} and was therefore declared a feature + by the \LaTeX3 team. \Macro{marginline} suffers from this ``feature'' + too. The package \Package{mparhack}\IndexPackage{mparhack} (see + \cite{package:mparhack}) would be a solution for this problem with both + \Macro{marginpar} and \Macro{marginline}. + + Note that you may not use \Macro{marginpar} or \Macro{marginnote} within + float environemnts like tables or figures. And you may not use these + commands at displayed math. +\end{Explain} +% +\EndIndex{Cmd}{marginpar}% +\EndIndex{Cmd}{marginline}% + + +\subsection{Tables and Figures} +\label{sec:maincls.floats} + +\begin{Explain} + With the floating environments {\LaTeX} offers a very capable and + comfortable mechanism for automatic placement of + figures\Index{figures} and tables\Index{tables}. But often these + floating environments\Index[indexmain] {floating environments} are + slightly misunderstood by beginners. They often ask for a fixed + position of a table or figure within the text. As these floating + environments are being referenced in the text this is not necessary + in most cases. It is not sensible too because such an object can + only be set on the page if there is enough space left. If this is + not the case the object would have to be shifted onto the next page + leaving a huge space on the page before. + + % TODO: Translate this: +% Haeufig werden die Fliessumgebungen\Index[indexmain]% +% {Fliessumgebung=Fliessumgebung} von Anfaengern 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 Fliessumgebungen im Text ueber +% 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 genuegend Platz fuer das Objekt vorhanden ist. Ist +% dies nicht der Fall, muesste das Objekt auf die naechste Seite +% umbrochen werden und auf der aktuellen Seite wuerde ein +% moeglicherweise sehr grosser leerer Raum bleiben. + + Often in many documents the same optional argument for positioning + an object is found with every floating object. This also makes no + sense. In such cases you should change the standard parameters + globally. For more details refer to \cite{DANTE:FAQ}.\par +\end{Explain} + +One last important note before starting this section: The most +mechanisms described here which extend the capabilities of the +standard classes do not work correctly when used together with +packages which interfere with the typesetting of captions of figures +and tables. This should be without saying but is often neglected. + +\begin{Declaration} + \Macro{caption}\OParameter{entry}\Parameter{title}\\ + \Macro{captionbelow}\OParameter{entry}\Parameter{title}\\ + \Macro{captionabove}\OParameter{entry}\Parameter{title} +\end{Declaration}% +\BeginIndex{Cmd}{caption}% +\BeginIndex{Cmd}{captionabove}% +\BeginIndex{Cmd}{captionbelow}% +In the standard classes captions of tables and figures are inserted +with the \Macro{caption} command below the table or figure. In general +this is correct with figures. Opinions differ as to whether captions +of tables are to be placed above or together with captions of +figures\Index{captions of figures} below the table\Index{captions of + tables}. That's the reason why \KOMAScript{}, unlike the standard +classes, offers \Macro{captionbelow} for captions below and +\Macro{captionabove} for captions above tables or figures. Using +\Macro{caption} together with figures always produces captions below +the figure whereas the behaviour of \Macro{captionbelow} can be +modified using the options +\Option{tablecaptionabove}\IndexOption{tablecaptionabove} and +\Option{tablecaptionbelow}\IndexOption{tablecaptionbelow} (see +\autoref{sec:maincls.formattingOptions}, +\autopageref{desc:maincls.option.tablecaptionabove}). For compatibility +reasons the default behaviour of \Macro{caption} together with tables +is similar to \Macro{captionbelow}. +% +\begin{Example} + Instead of using captions below the table you want to place your + captions above it\Index{table caption}, because you have tables + which span over more then one page. In the standard classes you + could only write: +\begin{lstlisting} + \begin{table} + \caption{This is an example table} + \begin{tabular}{llll} + This & is & an & example.\\\hline + This & is & an & example.\\ + This & is & an & example. + \end{tabular} + \end{table} +\end{lstlisting} + Then you would get the unsatisfying result: + \begin{ShowOutput}\centering + {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:} + This is an example table.}\\ + \begin{tabular}{llll} + This & is & an & example.\\\hline + This & is & an & example.\\ + This & is & an & example. + \end{tabular} +\end{ShowOutput} + Using \KOMAScript{} you write instead: +\begin{lstlisting} + \begin{table} + \captionabove{This is just an example table} + \begin{tabular}{llll} + This & is & an & example.\\\hline + This & is & an & example.\\ + This & is & an & example. + \end{tabular} + \end{table} +\end{lstlisting} + Then you get: + \begin{ShowOutput}\centering + {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:} + This is just an example table}\\\vskip\abovecaptionskip + \begin{tabular}{llll} + This & is & an & example.\\\hline + This & is & an & example.\\ + This & is & an & example. + \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 + \autoref{sec:maincls.formattingOptions}, + \autopageref{desc:maincls.option.tablecaptionabove}). 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} + +\begin{Explain} + Some would argue that you could achieve the same result using the + \Macro{topcaption} from the \Package{topcapt} + package\IndexPackage{topcapt} (see \cite{package:topcapt}). But that + is not the case. The command \Macro{topcaption} is neglected by + packages which directly redefine the \Macro{caption} macro. The + \Package{hyperref} package (see \cite{package:hyperref}) is one example + for this. In \KOMAScript{} \Macro{captionabove} and + \Macro{captionbelow} are implemented so, that the changes have an + effect on both of these commands. + + If the \Package{longtable} package\IndexPackage{longtable} is used + \KOMAScript{} makes sure that captions above tables which are placed within + a \Environment{longtable} environment have the same appearance as in a + normal \Environment{table} environment. This also means that you can apply + the same settings as in a \Environment{table} environment. Please note that + in the \Package{longtable} package the maximum width of a table caption can + be limited and the default is set to 4\Unit{in} (see + \cite{package:longtable}). Using \KOMAScript{} this mechanism in + \Package{longtable} only works when the class option \Option{origlongtable} + is set (see \autoref{sec:maincls.formattingOptions}, + \autopageref{desc:maincls.option.origlongtable}). If + \Package{caption2}\IndexPackage{caption2} (see \cite{package:caption}) is + loaded, table captions are handled by this package. + + Please note that \Macro{captionabove} and \Macro{captionbelow} if placed + within a \Environment{float} environment which was defined using the + \Package{float}\IndexPackage{float} package have the same behaviour as + described in \cite{package:float} for the \Macro{caption} command. In this + case, only the float style determines whether it is a caption below or above + the figure or table. +\end{Explain} + + +\begin{Declaration} + \Environment{captionbeside}\OParameter{entry}% + \Parameter{title}\OParameter{placement}\OParameter{width}% + \OParameter{offset}\\% + \XEnvironment{captionbeside}\OParameter{entry}% + \Parameter{title}\OParameter{placement}\OParameter{width}% + \OParameter{offset}\PValue{*} +\end{Declaration} +\BeginIndex{Env}{captionbeside}% +Apart\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} from +captions above and below the figure you often find captions, in +particular with small figures, which are placed beside the figure. In +general in this case both the baseline of the figure and the caption +are aligned at the bottom. With some fiddling and the use of two +\Macro{parbox} commands this could be achieved in the standard +classes. But \KOMAScript{} offers a special environment for this +problem. This environment can be used within the floating environment. +The first optional parameter \PName{entry} and the obligatory +parameter \PName{title} are similar to the parameters of +\Macro{caption}, \Macro{captionabove} or \Macro{captionbelow}. The +\PName{title} is placed beside the content of the environment in this +case. + +Whether the \PName{title} is placed left or right can be determined by +the parameter \PName{placement}. One of the following letters is +accepted: +\begin{labeling}[--~]{\PValue[o]} +\item[\PValue{l}] left +\item[\PValue{r}] right +\item[\PValue{i}] inner margin in twoside layout +\item[\PValue{o}] outer margin in twoside layout +\end{labeling} +Default setting is at the right side of the content of the +environment. If either \PValue{o} or \PValue{i} are used you have to +run {\LaTeX} twice to get the correct placement. + +As default the content of the environment and the \PName{title} fill +the whole available text width. However, using the optional parameter +\PName{width} it is possible to adjust the used width. This width +could even be more than the current text width. + +When supplying a \PName{width} the used width is centered with respect +to the text width. Using the optional parameter \PName{offset} you can +shift the environment relative to the left margin. A positive value +corresponds to a shift to the right whereas a negative value +corresponds to a shift to the left. An \PName{offset} of 0\Unit{pt} +gives you a left-aligned output. + +Adding a star to the optional parameter \PName{offset} the value means +a shift relative to the right margin on left pages in double sided +layout. A positive value corresponds to a shift towards the outer +margin whereas a negative value corresponds to a shift towards the +inner margin. An \PName{offset} of 0\Unit{pt} means alignment with the +inner margin. As mentioned before, in some cases it takes two \LaTeX{} +runs for this to work correctly. + +\begin{Example} + An example for the usage of the \Environment{captionbeside} environment + can be found in \autoref{fig:maincls.captionbeside}. + This figure was typeset with: +\begin{lstlisting} + \begin{figure} + \begin{captionbeside}[Example for a figure description]% + {A figure description which is neither above nor + below, but beside the figure}[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}[Example for a figure description]% + {A figure description which is neither above nor + below, but beside the figure}[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} + Thus, the width is the current available width + \PValue{\Macro{linewidth}}. However, this width is shifted + \PValue{2em} to the outside. The title or the description is placed + inside beside the figure. Therefore, the figure itself is shifted + 2\Unit{em} into the margin. +\end{Example} +% +\EndIndex{Env}{captionbeside} + + +\BeginIndex[indexother]{}{font style} +The font style\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} for the description +and the label\,---\,``Figure'' or ``Table'' followed by the number and the +delimiter\,---\,can be changed with the commands mentioned in +\autoref{sec:maincls.font}. The respective elements for this are +\FontElement{caption}\IndexFontElement{caption} and +\FontElement{captionlabel}\IndexFontElement{captionlabel} (see +\autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}). First the font style for the +element \FontElement{caption} is applied on the element +\FontElement{captionlabel} too. After this the font style of +\FontElement{captionlabel} is applied on the respective element. The default +settings are listed in \autoref{tab:maincls.captionFont}. +% +\begin{table} + \centering% + \caption{Font defaults for the elements of figure or table captions} + \begin{tabular}{ll} + \toprule + element & default \\ + \midrule + \FontElement{caption} & \Macro{normalfont} \\ + \FontElement{captionlabel} & \Macro{normalfont}\\ + \bottomrule + \end{tabular} + \label{tab:maincls.captionFont} +\end{table} +% +\begin{Example} + You want the table and figure descriptions typeset in a smaller font + size. Thus you could write the following in the preamble of your + document: +\begin{lstlisting} + \addtokomafont{caption}{\small} +\end{lstlisting} + Furthermore, you would like the labels to be printed in sans serif and + bold. You add: +\begin{lstlisting} + \setkomafont{captionlabel}{\sffamily\bfseries} +\end{lstlisting} + As you can see, simple extensions of the default definitions are + possible. +\end{Example} +\EndIndex[indexother]{}{font style} +% +\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}% +Using\OnlyAt{\Package{float}} the \Package{float}\IndexPackage{float} package +the appearance of the float environments is solely defined by the \emph{float} +style. This includes the fact whether captions above or below are used. In the +\Package{float} package there is no predefined style which gives you the same +output and offers the same setting options (see below) as \KOMAScript{}. +Therefore \KOMAScript{} defines the two additional styles \PValue{komaabove} +and \PValue{komabelow}. When using the \Package{float} package both these +styles can be activated as the styles \PValue{plain}\IndexFloatstyle{plain}, +\PValue{boxed}\IndexFloatstyle{boxed} or \PValue{ruled}\IndexFloatstyle{ruled} +in \Package{float} are defined. For details refer to \cite{package:float}. +The style \PValue{komaabove} inserts \Macro{caption}, \Macro{captionabove} and +\Macro{captionbelow} above whereas \PValue{komabelow} inserts them below the +float content. +% +\EndIndex{Floatstyle}{komaabove}% +\EndIndex{Floatstyle}{komabelow}% +\end{Explain} + + +\begin{Declaration} + \Macro{captionformat} +\end{Declaration}% +\BeginIndex{Cmd}{captionformat}% +In {\KOMAScript} there are different ways to change the formatting of +the description. The definition of different font styles was already +explained above. This or the caption delimiter between the label and +the label text itself is specified in the macro \Macro{captionformat}. +In difference to all other \Macro{\dots}format commands in this case +it doesn't contain the counter but the items which follow it. The +original definition is: +\begin{lstlisting} + \newcommand*{\captionformat}{:\ } +\end{lstlisting} +This too can be changed with \Macro{renewcommand}. +\begin{Example} + For some inexplicable reasons you want a dash with spaces before and + after instead of a colon followed by a space as label delimiter. You + define: +\begin{lstlisting} + \renewcommand*{\captionformat}{~--~} +\end{lstlisting} + This definition you should put in the preamble of your document. +\end{Example} +% +\EndIndex{Cmd}{captionformat}% + + +\begin{Declaration} + \Macro{figureformat}\\ + \Macro{tableformat} +\end{Declaration}% +\BeginIndex{Cmd}{figureformat}% +\BeginIndex{Cmd}{tableformat}% +It was already mentioned that \Macro{captionformat} doesn't contain a +formatting for the label itself. But this label shouldn't in any case +be changed using redefinitions of the commands for the output of +counters, \Macro{thefigure} or \Macro{thetable}. Such a redefinition +would have unwanted side effects on the output of \Macro{ref} or, for +example, of the list of figures. For this case {\KOMAScript} offers +two \Macro{\dots format} commands instead. These are predefined as +follows: +\begin{lstlisting} + \newcommand*{\figureformat}{\figurename~\thefigure\autodot} + \newcommand*{\tableformat}{\tablename~\thetable\autodot} +\end{lstlisting} +They also can be adapted to your personal preferences with +\Macro{renewcommand}. +\begin{Example} + From time to time label texts without any label and delimiter are + wanted. In {\KOMAScript} it takes only the following definitions to + achieve this: +\begin{lstlisting} + \renewcommand*{\figureformat}{} + \renewcommand*{\tableformat}{} + \renewcommand*{\captionformat}{} +\end{lstlisting} +\end{Example} +% +\EndIndex{Cmd}{figureformat}% +\EndIndex{Cmd}{tableformat}% + +\begin{Declaration} + \Macro{setcapindent}\Parameter{indent}\\ + \Macro{setcapindent*}\Parameter{xindent}\\ + \Macro{setcaphanging} +\end{Declaration}% +\BeginIndex{Cmd}{setcapindent}% +\BeginIndex{Cmd}{setcapindent*}% +\BeginIndex{Cmd}{setcaphanging}% +As mentioned previously, in the standard classes the captions are set +in a not-hanging style. That means that in descriptions with more than +one line the second and subsequent lines start directly beneath the +label. There is no straight way in the standard classes to change +this behaviour. In {\KOMAScript}, on the contrary, beginning at the +second line all lines are indented by the width of the label. + +This behaviour which corresponds to the usage of \Macro{setcaphanging} +can easily be changed by using the command \Macro{setcapindent} or +\Macro{setcapindent*}. Here the parameter \PName{Einzug} determines +the indentation of the second and subsequent lines. + +If you want a line break before the label and the description you +define the indentation \PName{xindent} of the description with the +starred version of the command instead: \Macro{setcapindent*}. + +Using a negative value of \PName{indent} instead, a page break is +inserted and only the first line but not the subsequent lines are +indented by \(-\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 +please refer to the explanations of this options in +\autoref{sec:maincls.layoutOptions}, +\autopageref{desc:maincls.option.noonelinecaption}. + +\begin{Example} + As examples please refer to the + figures~\ref{fig:maincls.caption.first} to + \ref{fig:maincls.caption.last}. As you can see the usage of a + complete hanging indentation is not preferable together with a small + column width: +\begin{lstlisting} + \begin{figure} + \setcapindent{1em} + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption{Examples with slightly indented caption + starting at the second line} + \end{figure} +\end{lstlisting} + As can be seen the formatting can also be changed locally within the + \Environment{figure} environment\IndexEnv{figure}. + \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[Example for figure caption]% + {\sloppy Equivalent to the standard setting, similar to the + usage of \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[Example for figure caption]% + {With slightly hanging indentation starting at the second line + using \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[Example for a figure caption]% + {With hanging indentation starting at the second line and line + break before the description using + \Macro{setcapindent*}\PParameter{1em}} + \end{minipage} + \hspace{.02\linewidth} + \begin{minipage}[t]{.48\linewidth}\sloppy + \setcapindent{-1em} + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption[Example for a figure caption]% + {With indentation in the second line only and line break + before the description using + \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{justification}\Parameter{width}\\ + \Macro{setcapmargin}\OParameter{margin left}\Parameter{margin}\\ + \Macro{setcapmargin*}\OParameter{margin inside}\Parameter{margin} +\end{Declaration} +\BeginIndex{Cmd}{setcapwidth}% +\BeginIndex{Cmd}{setcapmargin}% +\BeginIndex{Cmd}{setcapmargin*}% +Using\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} these three +commands you can specify the width and justification of the label +text. In general the whole text or column width is available for the +description. + +With the command \Macro{setcapwidth} you can decrease this +\PName{width}. The obligatory argument determines the \PName{with} of +the description. As an optional argument you can supply one letter +which specifies the horizontal justification. The possible +justifications are given in the following list. +\begin{labeling}[--~]{\PValue[o]} +\item[\PValue{l}] left-aligned +\item[\PValue{c}] centered +\item[\PValue{r}] right-aligned +\item[\PValue{i}] alignment at the inner margin in a double sided output +\item[\PValue{o}] alignment at the outer margin in a double sided output +\end{labeling} +The justification inside and outside corresponds to left-aligned and +right-aligned respectively in single sided output. Within +\Package{longtable}\IndexPackage{longtable} tables the justification +inside or outside doesn't work correctly. In particular the captions +of tables of subsequent pages are aligned corresponding to the first +part of the table. This is a problem which has its roots in the +implementation of \Package{longtable}. + +With the command \Macro{setcapmargin} you can specify a \PName{margin} +which is to be left free next to the description in addition to the +normal text margin. If you want margins with different widths at the +left and right side you can specify these using the optional argument +\PName{margin left}. The starred version \Macro{setcapmargin*} defines +instead of a \PName{margin left} a \PName{margin inside} in a double +sided layout. In case of \Package{longtable}\IndexPackage{longtable} +tables you have to deal 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 the option \Option{noonelinecaption} (see +\autoref{sec:maincls.layoutOptions}, +\autopageref{desc:maincls.option.noonelinecaption}) for the descriptions which +are typeset with this margin setting. + +\begin{Explain} + \Package{longtable} places the description in a box, which is issued + again at the subsequent pages if needed. While treating a box the + macros needed for the creation of it aren't run through + again. That's why it is not possible for \KOMAScript{} to swop + margin settings in double sided layout on even pages. This would be + necessary to produce a justification which is shifted towards the + outside or inside. + + You can also submit negative values for \PName{margin} and + \PName{margin right} or \PName{margin outside}. This has the effect + of the description spanning into the margin. +\end{Explain} + +\begin{Example} + A rather odd problem is a figure caption which is both centered and + of the same width as the figure itself. If the width of the figure + is known the solution with \KOMAScript{} is quite easy. Suppose the + figure has a width of 8\Unit{cm}, it only takes: +\begin{lstlisting} + \setcapwidth[c]{8cm} +\end{lstlisting} + directly in front of \Macro{caption} or \Macro{captionbelow}. If it + is unknown first you have to define a length in the preamble of your + document: +\begin{lstlisting} + \newlength{\Figurewidth} +\end{lstlisting} + Having done this you can calculate the width directly with the + \LaTeX{} command \Macro{settowidth} (see \cite{latex:usrguide}) + in many cases. A possible solution would look as follows: +\begin{lstlisting} + \begin{figure} + \centering% + \settowidth{\Figurewidth}{% + \fbox{\quad\KOMAScript\qaud}% + }% + \fbox{\quad\KOMAScript\quad}% + \setcapwidth[c]{\Figurewidth} + \caption{Example of a centered caption below the figure} + \end{figure} +\end{lstlisting} + However, it is awkward to write the content twice and to use + \Macro{setcapwidth} with every figure. But nothing is easier than + defining a new command in the preamble of your document which + hides the three steps: + \begin{enumerate} + \item Defining the width of the argument + \item Specifying the width of the caption + \item Output of the argument + \end{enumerate} + in: +\begin{lstlisting} + \newcommand{\Figure}[1]{% + \settowidth{\Figurewidth}{#1}% + \setcapwidth[c]{\Figurewidth}% + #1} +\end{lstlisting} + Using this command the example abbreviates to: +\begin{lstlisting} + \begin{figure} + \centering% + \Figure{\fbox{\quad\KOMAScript\quad}}% + \caption{Example of a centered caption below the figure} + \end{figure} +\end{lstlisting} + + But a command has the disadvantage that errors in the macros of the + argument in case of arguments with more than one line aren't + reported with the very correct line number by \LaTeX{}. In these + cases the usage of an environment has advantages. But then the + question is raised how the width of the content of the environment + can be determined. The solution offers the \Environment{lrbox} + environment, which is described in \cite{latex:usrguide}: +\begin{lstlisting} + \newsavebox{\Figurebox} + \newenvironment{FigureDefinesCaptionWidth}{% + \begin{lrbox}{\Figurebox}% + }{% + \end{lrbox}% + \global\setbox\Figurebox=\box\Figurebox% + \aftergroup\Setfigurebox% + } + \newcommand{\Setfigurebox}{% + \Figure{\usebox{\Figurebox}}} +\end{lstlisting} + This definition uses the macro \Macro{Figure} defined above. In + the main text you write: +\begin{lstlisting} + \begin{figure} + \centering% + \begin{FigureDefinesCaptionWidth} + \fbox{\hspace{1em}\KOMAScript\hspace{1em}} + \end{FigureDefinesCaptionWidth} + \caption{Example of a centered caption below the figure} + \end{figure} +\end{lstlisting} + Admittingly, the environment in this example is not necessary. But + its definition using \Macro{global} is quite clever. Most users + wouldn't be able to define such an environment without help. But as + this can be very useful, it was introduced in the example above. + + If the \Environment{captionbeside} environment wouldn't exist you + could nevertheless place the figure caption beside the figure in a + quite simple way. For this \Macro{Setfigurebox} from the example + above would have to be redefined first: +\begin{lstlisting} + \renewcommand{\Setfigurebox}{% + \settowidth{\captionwidth}{\usebox{\Figurebox}}% + \parbox[b]{\captionwidth}{\usebox{\Figurebox}}% + \hfill% + \addtolength{\captionwidth}{1em}% + \addtolength{\captionwidth}{-\hsize}% + \setlength{\captionwidth}{-\captionwidth}% + \setcapwidth[c]{\captionwidth}% + } +\end{lstlisting} + As the next step you only have to put the \Macro{caption} command in + a \Macro{parbox} too: +\begin{lstlisting} + \begin{figure} + \centering% + \begin{FigureSetsCaptionWidth} + \fbox{\rule{0pt}{5\baselineskip}% + \hspace{1em}\KOMAScript\hspace{1em}} + \end{FigureSetsCaptionWidth} + \parbox[b]{\Figurewidth}{% + \caption{Example of a centered caption + below the figure} + } + \end{figure} +\end{lstlisting} + The \Macro{rule} command in this example only serves as an unvisible + support to produce an example figure with a greater vertical height. +\end{Example} +% +\EndIndex{Cmd}{setcapwidth}% +\EndIndex{Cmd}{setcapmargin}% +\EndIndex{Cmd}{setcapmargin*}% + + +\subsection{Logical Markup of Text} +\label{sec:maincls.emphasis} + +\begin{Explain} + \LaTeX{} offers different possibilities for logical + markup\Index{logical markup}\Index{markup} of text. In a sense, a + heading is a kind of markup too. However, in this section we are + only concerned with direct markup, i.e. markup which doesn't have an + additional meaning and which can be used for different + purposes. More details to the normally defined possibilities you can + find in \cite{lshort}, \cite{latex:usrguide} and + \cite{latex:fntguide}. +\end{Explain} + +\begin{Declaration} + \Macro{textsubscript}\Parameter{text} +\end{Declaration} +\BeginIndex{Cmd}{textsubscript}% +In \autoref{sec:maincls.footnotes}, +\autopageref{desc:maincls.macro.textsuperscript} the command +\Macro{textsuperscript}\IndexCmd{textsuperscript} was already +introduced which is a part of the \LaTeX{} kernel. Unfortunately +\LaTeX{} itself doesn't offer a command to produce a text in +subscript\Index{text, subscript}\Index{subscript} instead of +superscript\Index{text, superscript}\Index{superscript}. \KOMAScript{} +defines \Macro{textsubscript} for this. +% +\begin{Example} + You are writing a text on the human metabolism. From time to time + you have to mention some simple sum formulas in which the + numbers are in subscript. Being convinced from logical markup you + first define in the document preamble or in a separate package: +\begin{lstlisting} + \newcommand*{\Molek}[2]{#1\textsubscript{#2}} +\end{lstlisting} + \newcommand*{\Molek}[2]{#1\textsubscript{#2}} + Using this you then write: +\begin{lstlisting} + The cell produces its energy from reaction of + \Molek C6\Molek H{12}\Molek O6 and \Molek O2 to + \Molek H2\Molek O{} and \Molek C{}\Molek O2. + However, Arsenic (\Molek{As}{}) has a detrimental + effect on the metabolism. +\end{lstlisting} + The output looks as follows: + \begin{ShowOutput} + The cell produces its energy from reaction of \Molek C6\Molek + H{12}\Molek O6 and \Molek O2 to \Molek H2\Molek O{} and \Molek + C{}\Molek O2. However, Arsenic (\Molek{As}{}) has a detrimental + effect on the metabolism. + \end{ShowOutput} + Some time later you decide that the sum formulas should be + typeset in sans serif. Now you can see the advantages of a + consequent logical markup. You only have the redefine the + \Macro{Molek} command: +\begin{lstlisting} + \newcommand*{\Molek}[2]{\textsf{#1\textsubscript{#2}}} +\end{lstlisting} + \renewcommand*{\Molek}[2]{\textsf{#1\textsubscript{#2}}} + Now the output in the whole document changes to: + \begin{ShowOutput} + The cell produces its energy from reaction of \Molek C6\Molek + H{12}\Molek O6 and \Molek O2 to \Molek H2\Molek O{} and \Molek + C{}\Molek O2. However, Arsenic (\Molek{As}{}) has a detrimental + effect on the metabolism. + \end{ShowOutput} +\end{Example} +\begin{Explain} + In the example above the writing ``\verb|\Molek C6|'' is used. This + makes use of the fact that arguments which consist of only one + character doesn't have to be enclosed in parenthesis. That's why + ``\verb|\Molek C6|'' is similar to ``\verb|\Molek{C}{6}|''. You + might already know this from indices or powers in mathematical + environments, such as ``\verb|$x^2$|'' instead of ``\verb|$x^{2}$|'' + for ``$x^2$''. +\end{Explain} +% +\EndIndex{Cmd}{textsubscript}% + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Appendix} +\label{sec:maincls.appendix} + +The last part of a document usually contains the +appendix\Index{appendix}, the bibliography\Index{bibliography} and, if +necessary, the index\Index{index}. + +\begin{Declaration} + \Macro{appendix} +\end{Declaration}% +\BeginIndex{Cmd}{appendix}% +The appendix in the standard as well as the {\KOMAScript} classes is +introduced with \Macro{appendix}. This command switches, among other +things, the chapter numbering to upper case letters thus making sure +that the rules according to \cite{DUDEN} are being followed. 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}. + +Please note that \Macro{appendix} is a command, \emph{not} an +environment! This command does not need an argument. The sectioning +commands in the appendix are used in the same way as in the main part. + +% +\EndIndex{Cmd}{appendix} + + +\begin{Declaration} + \Macro{appendixmore} +\end{Declaration}% +\BeginIndex{Cmd}{appendixmore}% +There is a peculiarity within the \Macro{appendix} command in the +{\KOMAScript} classes. In case the command \Macro{appendixmore} is +defined, \Macro{appendix} is executed too. Internally the +{\KOMAScript} classes \Class{scrbook} and \Class{scrreprt} take +advantage of this behaviour for implementing the options +\Option{appendixprefix} and \Option{noappendixprefix} (see +\autoref{sec:maincls.layoutOptions}, +\autopageref{desc:maincls.option.appendixprefix}). You should take care of this +in case you are going to define or redefine the \Macro{appendixmore} +by yourself. In case one of these options is set, you will receive an +error message when using +\verb|\newcommand{\appendixmore}{|\dots\verb|}|. This is thought to +prevent you from changing options without noticing. + +\begin{Example} + 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}, + \autopageref{desc:maincls.option.chapterprefix}). For being consistent you + 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 layout options \Option{appendixprefix} or + \Option{noappendixprefix}, you would define in the document preamble: +% +\begin{lstlisting} + \newcommand*{\appendixmore}{% + \renewcommand*{\chapterformat}{% + \appendixname~\thechapter\autodot\enskip} + \renewcommand*{\chaptermarkformat}{% + \appendixname~\thechapter\autodot\enskip} + } +\end{lstlisting} +% + In case you are going to change your mind and want to use the option + \Option{appendixprefix} at a later state, you will get an error + message because of the already defined \Macro{appendixmore} command. + This prevents the definition mentioned above from changing the + settings already set using \Option{chapterprefix} and + \Option{nochapterprefix}. + + It is also possible to get a similar behaviour of the appendix for + the class \Class{scrartcl}. You would write in the preamble of your + document: +\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} + In addition the package \Package{ifthen}\IndexPackage{ifthen} (see + \cite{package:ifthen}) is required. + + Redefined commands are explained in more detail in + \autoref{sec:maincls.structure}, \autopageref{desc:maincls.macro.partformat} + and \autopageref{desc:maincls.macro.chaptermark}. +\end{Example} +% +\EndIndex{Cmd}{appendixmore}% + + +\begin{Declaration} + \Macro{setbibpreamble}\Parameter{preamble} +\end{Declaration}% +\BeginIndex{Cmd}{setbibpreamble}% +The command \Macro{setbibpreamble} can be used for setting a preamble +for the bibliography\Index{bibliography}. This can be achieved by +placing the preamble before the command for issuing the bibliography. +However, it doesn't 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 haven't loaded a package which prevents +this by redefining the \Environment{thebibliography} environment. +Though the \Package{natbib} package \IndexPackage{natbib} unauthorized +uses internal macros of {\KOMAScript} it could be made sure 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 + bibliography is not according to their occuring in the text but in + alphabetical order. You use the following command: +\begin{lstlisting} + \setbibpreamble{References are in alphabetical order. + References with more than one author are sorted + according to the first author.} +\end{lstlisting} + The \Macro{bigskip}\IndexCmd{bigskip} command makes sure that the + preamble and the first reference are separated by a big skip. + + Another usage of the preamble in the bibliography would be setting + the references ragged right. Just put the preamble as follows: +\begin{lstlisting} + \setbibpreamble{\raggedright} +\end{lstlisting} + You can have a look at the result in the bibliography of this guide. +\end{Example} +% +\EndIndex{Cmd}{setbibpreamble} + + +\begin{Declaration} + \Macro{setindexpreamble}\Parameter{preamble} +\end{Declaration}% +\BeginIndex{Cmd}{setindexpreamble}% +Similar to the bibliography you can use a preamble in the index. This +is often the case if you have more than one index or if you use +different kinds of referencing by highlighting the page numbers in +different ways. + +\begin{Example} + You have a document in which terms are both defined an used. The + page numbers of definitions are in bold. Of course you want to make + your reader aware of this fact. Thus you insert a preamble in the + index: +\begin{lstlisting} + \setindexpreamble{In \textbf{bold} printed page numbers + are references to the definition of terms.\par\bigskip} +\end{lstlisting} +\end{Example} +% +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}). + +The production, sorting and output of the index is done by the +standard \LaTeX{} packages and additional programs. Similar to the +standard classes {\KOMAScript} only provides the basic macros and +environments. +% +\EndIndex{Cmd}{setindexpreamble}% + + +\section{Obsolete Commands} +\label{sec:maincls.obsolete} + +\begin{Explain} + In this section you will find commands, which should not be used any + more. They are part of older \KOMAScript{} versions. For compatibility + reasons they can still be used in the new \KOMAScript{} release. There + are new mechanisms and user interfaces however, which you should use + instead. The reason for listing the obsolete macros in this + documentation is to aid users with understanding old documents. + Furthermore, package authors are free to use these macros in the future. + + \begin{Declaration} + \Macro{sectfont} + \end{Declaration} + \BeginIndex{Cmd}{sectfont}% + This macro sets the font which is used for all section headings, the + main title an the highest level below \Macro{part} in the table of + contents. Use element \FontElement{sectioning} instead, which is + described in more detail in \autoref{sec:maincls.font}.% + \EndIndex{Cmd}{sectfont}% + + \begin{Declaration} + \Macro{capfont} \\ + \Macro{caplabelfont} + \end{Declaration} + \BeginIndex{Cmd}{capfont}% + \BeginIndex{Cmd}{caplabelfont}% + The macro \Macro{capfont} sets the font which is used for captions + in tables and figures. The macro \Macro{caplabelfont} sets the font + which is used for the label and numbering of tables and pictures. + Please use element \FontElement{caption} and + \FontElement{captionlabel} of the current \KOMAScript{} instead + which are described in \autoref{sec:maincls.font}.% + \EndIndex{Cmd}{capfont}% + \EndIndex{Cmd}{caplabelfont}% + + \begin{Declaration} + \Macro{descfont} + \end{Declaration} + \BeginIndex{Cmd}{descfont}% + This macro sets the font for the optional item arguments of an + \Environment{description} environment. Please use element + \FontElement{descriptionlabel} instead, which are described in + section ~\ref{sec:maincls.font}.% + \EndIndex{Cmd}{descfont}% + +\end{Explain} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../guide" +%%% End: 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 new file mode 100644 index 00000000000..021dd9172fc --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrdatetime.tex @@ -0,0 +1,233 @@ +% ====================================================================== +% scrdatetime.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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. +% ---------------------------------------------------------------------- +% scrdatetime.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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 scrpage2 of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Kapitel ĂĽber scrpage2 in der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\ProvidesFile{scrdatetime.tex}[{2005/11/27 KOMA-Script guide (chapter: + scrdate, scrtime)}] +% Date of translated german file: 2005-11-27 + +\chapter{Week-Day and Time Using \Package{scrdate} and \Package{scrtime}} +\labelbase{datetime} + +There are two packages at \KOMAScript{} to improve and extend the +handling of date\Index{date} and time\Index{time}. So you have not +only the standard commands \Macro{today} and \Macro{date}. Like all +the other packages from \KOMAScript{} bundle these two packages may be used +not only with \KOMAScript{} classes but also with standard and many +other classes. + +\section{The Name of the Current Day of Week Using \Package{scrdate}} +\label{sec:sec:datetime.scrdate} +\BeginIndex{Package}{scrdate} + +The first problem is the question about the current day of week. The answer +may be given by the package \Package{scrdate}. + +\begin{Declaration} + \Macro{todaysname} +\end{Declaration}% +\BeginIndex{Cmd}{todaysname}% +You should know, that you may get the current date with +\Macro{today}\IndexCmd{today} in a language dependend +spelling. \Package{scrdate} offers you the command \Macro{todaysname}. This +results in the name of the current day of week in a language dependend +spelling. + +\begin{Example} + At your document you want to show the name of the week-day at which + the \File{dvi}-file was generated using \LaTeX. To do this, you + write: +\begin{lstlisting} + I've done the \LaTeX-run of this document on a \todaysname. +\end{lstlisting} + This will result in e.g.: + \begin{quote} + I've done the \LaTeX-run of this document on a \todaysname. + \end{quote} +\end{Example} + +Note that the package isn't able to decline. The known terms are the nominativ +singular that may be used e.g. at the date of a letter. For this the example +above is correct only at some languages. + +\begin{Explain} + \textbf{Tip:} The names of the week-days are saved in + capitalization. So the first letter is a capital letter, all the + others are small letters. But at some languages you also need the + names with a first letter in lower case. You may achieve this using + the standard \LaTeX{} command \Macro{MakeLowercase}. You simply have + to write \Macro{MakeLowercase}\PParameter{\Macro{todaysname}}. +\end{Explain} +\EndIndex{Cmd}{todaysname} + +\begin{Declaration} + \Macro{nameday}\Parameter{name} +\end{Declaration}% +\BeginIndex{Cmd}{nameday}% +You should know, that you may change the output of \Macro{today} using +\Macro{date}\IndexCmd{date}. In a analogous way you can change the +output of \Macro{todaysname} using \Macro{nameday} into \PName{name}. +\begin{Example} + You're changing the current date into a fix value using + \Macro{date}. You are not interested in the name of the day, but + you want to show, that it is a workday. So you set: +\begin{lstlisting} + \nameday{workday} +\end{lstlisting} + After this the previous example will result in: + \begin{quote} + I've done the \LaTeX-run of this document on a workday. + \end{quote} +\end{Example} +\EndIndex{Cmd}{nameday} + +Package \Package{scrdate} knows the languages english (english, american, +USenglish, UKenglish and british), german (german, ngerman and austrian), +french, italian, spanish, croatian, and finnish. If you want to configure it +for other languages, see \File{scrdate.dtx}. + +At current implementation it doesn't matter, if you're loading +\Package{scrdate} before or after +\Package{german}\IndexPackage{german}, +\Package{ngerman}\IndexPackage{ngerman}, +\Package{babel}\IndexPackage{babel} or similar packages. The current +language will be setup at \Macro{begin}\PParameter{document}. + +\begin{Explain} + To explain it a little bit more exactly: While you are using a + language selection, which works in a compatible way to + \Package{babel}\IndexPackage{babel} or + \Package{german}\IndexPackage{german}, the correct language will be + used by \Package{scrdate}. If you are using another language + selection you will get english caption names. At \File{scrdate.dtx} + you will find the description of the \Package{scrdate}-commands for + defining the names. +\end{Explain} +\EndIndex{Package}{scrdate} + + +\section{Getting the Time with Package \Package{scrtime}} +\label{sec:datetime.scrtime} +\BeginIndex{Package}{scrtime} + +The second problem is the question about current time. The solution may be +found using package \Package{scrtime}. + +\begin{Declaration}% + \Macro{thistime}\OParameter{delimiter}\\ + \Macro{thistime*}\OParameter{delimiter} +\end{Declaration}% +\BeginIndex{Cmd}{thistime}\BeginIndex{Cmd}{thistime*}% +\Macro{thistime} results in the current\Index{time}. +The delimiter between the values of hour and minute +can be given in the optional argument. +The default symbol of the delimiter is "\PValue{:}". + +\Macro{thistime*} works in the same way as \Macro{thistime}. +The difference between both is that the value of the minute +using \Macro{thistime*} is not preceded with zero when its value +is less than 10, thus using \Macro{thistime} the minute-value +has always two places. +\begin{Example} + The line +\begin{lstlisting} + Your train departs at \thistime . +\end{lstlisting} + results for example in: + \begin{quote} + Your train departs at \thistime . + \end{quote} + or: + \begin{quote} + Your train departs at 23:09. + \end{quote} + \bigskip + In contrast to the prevous example a line like: +\begin{lstlisting} + This day is already \thistime*[\ hours and\ ] minutes old. +\end{lstlisting} + results in: + \begin{quote} + This day is already \thistime*[\ hours and\ ] minutes old. + \end{quote} + or: + \begin{quote} + This day is already 12 hours and 25 minutes old. + \end{quote} +\end{Example} +\EndIndex{Cmd}{thistime}\EndIndex{Cmd}{thistime*} + +\begin{Declaration}% + \Macro{settime}\Parameter{Time} +\end{Declaration}% +\BeginIndex{Cmd}{settime}% +\Macro{settime} sets the output \Macro{thistime} and +\Macro{thistime*} on the value of \PName{Time}. +Afterwards the optinal parameter of \Macro{thistime} or +\Macro{thistime*} is ignored, since the result +of \Macro{thistime} or \Macro{thistime*} +was completely determined using \Macro{settime}.% +\EndIndex{Cmd}{settime} + +\begin{Declaration} + \Option{12h}\\ + \Option{24h} +\end{Declaration}% +\BeginIndex{Option}{12h}\BeginIndex{Option}{24h}% +Using the options \Option{12h} and \Option{24h} one can +select whether the result of \Macro{thistime} and \Macro{thistime*} +is in 12- or in 24-hour format. The default is \Option{24h}.% + +The option has no effect on the results of +\Macro{thistime} and \Macro{thistime*} if \Macro{settime} +has been used.% +\EndIndex{Option}{12h}\EndIndex{Option}{24h} +\EndIndex{Package}{scrtime} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../guide" +%%% End: 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 new file mode 100644 index 00000000000..52e3f8e610a --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlfile.tex @@ -0,0 +1,310 @@ +% ====================================================================== +% scrlfile.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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-2006 +% +% 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}[2005/11/27 KOMA-Script guide (chapter: scrlfile)] +% Date of translated german file: 2005/08/10 + +\chapter{Control Package Dependencies with \Package{scrlfile}} +\labelbase{scrlfile} + +\BeginIndex{Package}{scrlfile} + +\begin{Explain} + The introduction of \LaTeXe{} in 1994 brought many changes in the handling + with \LaTeX-extensions. Today the package author has many macros in order + to determine if another package or class is employed and whether specific + options are used. The author can load other packages or can specify options + in the the case the package is loaded later. This has led to the + expectation that the order of package-loading will be not important. But + this hope has not been fulfilled. +\end{Explain} + +\section{About Package Dependencies} +\label{sec:scrlfile.dependency} +\begin{Explain} + Often different packages define or redefine one macro again and again. In + such a case the order of package-loading becomes very important. For the + user this is sometimes difficult to understand the behaviour and in some + cases the user wants only react on the loading of a package. This is also + not really simple. + + Assuming the simple example that loads the package \Package{longtable} with + a \KOMAScript{} document-class employed. The \Package{longtable} package + defines table captions suitable for the standard classes, but the captions + are totally unsuitable for documents using \KOMAScript{} and thus the + provided configuration commands have no influence. In order to solve this + problem the commands which are responsible for the table captions of the + \Package{longtable} package have to be re-defined. But at the moment when + the \Package{longtable} is loaded the \KOMAScript{} class is already + processed. + + The only chance for \KOMAScript{} was to delay the re-definition until the + begin of the document with help of the macro \Macro{AtBeginDocument}. If + the user wants to change the definitions too, it is recommended to do this + in the preamble of the document. But this is impossible since later at + \Macro{begin}\PParameter{document} \KOMAScript will again overwrite the + user-definition with its own. Therefore the user has to delay his + definition with \Macro{AtBeginDocument} as well. + + However, \KOMAScript{} shouldn't delay the re-definition until + \Macro{begin}\PParameter{document}. It would be enough to delay until the + package \Package{longtable} has been loaded. But unfortunately the basic + \LaTeX{} does not define appropriate commands. The package + \Package{scrlfile} provides redress here. + + Likewise, it might be conceivable that before a package is loaded one would + like to save the definition of a macro in a help-macro, in order to restore + its meaning after the package has been loaded. The package + \Package{scrlfile} allows this too. + + The employment of \Package{scrlfile} is not limited to package dependencies + only. Even dependencies with any other file can be attended. For example + the user can be warned if the not uncritical file \File{french.ldf} has been + loaded. + + Though the package is particularly interesting for package authors, there + are of course applications for normal \LaTeX{} users too. Therefore this + chapter gives and explains examples for both groups of users. +\end{Explain} + + +\section{Actions Prior and After Loading} +\label{sec:scrlfile.macros} + +\begin{Declaration} + \Macro{BeforeFile}\Parameter{file}\Parameter{instructions}\\ + \Macro{AfterFile}\Parameter{file}\Parameter{instructions} +\end{Declaration}% +\BeginIndex{Cmd}{BeforeFile}% +\BeginIndex{Cmd}{AfterFile}% +The macro \Macro{BeforeFile} enables to execute \PName{instructions} +the next time the \PName{file} is loaded. +In the same way works \Macro{AfterFile}, but here the +\PName{instructions} will be executed after the \PName{file} +has been loaded. +If \PName{file} will never be loaded then the \PName{instructions} +will never be executed. + +\begin{Explain} + In order to implement those features \Package{scrlfile} + re-defines the well known \LaTeX{} command + \Macro{InputIfFileExists}. + If this macro has not the expected definition \Package{scrlfile} + gives a warning. + This is for the case that in future \LaTeX{} versions + the macro can have a different definition or an other package + has already re-defined it. + + The command \Macro{InputIfFileExists} is used + everytime \LaTeX{} has to load a file. + This is independent from whether the actual command was \Macro{LoadClass}, + \Macro{documentclass}, \Macro{usepackage}, \Macro{RequiresPackage}, + or \Macro{include}. Exclusively the command +\begin{lstlisting} + \input foo +\end{lstlisting} + loads the file \texttt{foo} without to utilize + \Macro{InputIfFileExists}. Therefore one should always use +\begin{lstlisting} + \input{foo} +\end{lstlisting} + instead. Notice the parentheses surrounding the file name! +\end{Explain} +% +\EndIndex{Cmd}{BeforeFile}% +\EndIndex{Cmd}{AfterFile}% + +\begin{Declaration} + \Macro{BeforeClass}\Parameter{class}\Parameter{instructions}\\ + \Macro{BeforePackage}\Parameter{package}\Parameter{instructions} +\end{Declaration}% +\BeginIndex{Cmd}{BeforeClass}% +\BeginIndex{Cmd}{BeforePackage}% +These both commands work the same way as \Macro{BeforeFile}. +The only difference is that the document class \PName{class} +and the \LaTeX{} package \PName{package} are specified +with their names and not with their file names. +That means the file extensions \File{.cls} and \File{.sty} +can be omitted. +% +\EndIndex{Cmd}{BeforeClass}% +\EndIndex{Cmd}{BeforePackage}% + +\begin{Declaration} + \Macro{AfterClass}\Parameter{class}\Parameter{instructions}\\ + \Macro{AfterClass*}\Parameter{class}\Parameter{instructions}\\ + \Macro{AfterPackage}\Parameter{package}\Parameter{instructions}\\ + \Macro{AfterPackage*}\Parameter{package}\Parameter{instructions} +\end{Declaration}% +\BeginIndex{Cmd}{AfterClass}% +\BeginIndex{Cmd}{AfterClass*}% +\BeginIndex{Cmd}{AfterPackage}% +\BeginIndex{Cmd}{AfterPackage*}% +The commands \Macro{AfterClass} und \Macro{AfterPackage} +work the same way as \Macro{AfterFile}. +The only difference is that the document class \PName{class} +and the \LaTeX{} package \PName{package} are specified +with their names and not with their file names. +That means the file extensions \File{.cls} and \File{.sty} +can be omitted. +The starred versions execute the \PName{instructions} not +only next time the class or package is loaded, but also +immediately if the class or package has been loaded already. +% +\EndIndex{Cmd}{AfterClass}% +\EndIndex{Cmd}{AfterClass*}% +\EndIndex{Cmd}{AfterPackage}% +\EndIndex{Cmd}{AfterPackage*}% + +\begin{Example} + In the following an example for class and package authors + shall be given. + It shows how \KOMAScript{} itself employs the new commands. + The class \Class{scrbook} contains: +\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} + Old versions of the \Package{hyperref} package re-define + a macro of the \Class{scrbook} class in a way that does not + work with newer \KOMAScript{} versions. + New versions of \Package{hyperref} neglect these changes + if a new \KOMAScript{} version is detected. + For the case that \Package{hyperref} is loaded the code + in \Class{scrbook} verifies that a appropriate + \Package{hyperref} version is used. If not the command gives + a warning. + + At other places in three \KOMAScript{} classes following can be found: +\begin{lstlisting} + \AfterPackage{caption2}{% + \renewcommand*{\setcapindent}{% +\end{lstlisting} + Next the package \Package{caption2} has been loaded, and only + if the package has been loaded really, \KOMAScript{} re-defines + its own command \Macro{setcapindent}. + The exact code of the definition is not important. + It should only be noted that \Package{caption2} claims the + control over the \Macro{caption} macro. + Thus the normal definition of the \Macro{setcapindent} macro + would not work as expected. + The re-definition improves the collaboration with \Package{caption2}. + + There are of course useful examples for normal \LaTeX{} user too. + Suppose a document that should be availbale as PS file, using + LaTeX{} and dvips, and as PDF file, using pdf\LaTeX. + The document should contain hyper-links. + In the List of Tables there are entries longer than one line. + This is not a problem for the pdf\LaTeX{} way, since here + hyper-links can run across multiple lines. + But if a \Package{hyperref} driver for dvips or + hyper\TeX{} is used then this is not possible. + In this case one wants that for the \Package{hyperref} setup + the \Option{linktocpage} is used. + + The decision what \Package{hyperref} driver has to be used + happens automatically via \File{hyperref.cfg}. + The file has for example the content below. +\begin{lstlisting} + \ProvidesFile{hyperref.cfg} + \@ifundefined{pdfoutput}{\ExecuteOptions{dvips}} + {\ExecuteOptions{pdftex}} + \endinput +\end{lstlisting} + + All following is now the task of \Macro{AfterFile}. +\begin{lstlisting} + \documentclass{article} + \usepackage{scrlfile} + \AfterFile{hdvips.def}{\hypersetup{linktocpage}} + \AfterFile{hypertex.def}{\hypersetup{linktocpage}} + \usepackage{hyperref} + \begin{document} + \listoffigures + \clearpage + \begin{figure} + \caption{This is an example for a long figure caption, + but even though it does not employ the optional + caption argument that would allow to write + a short caption in the List of Figures.} + \end{figure} + \end{document} +\end{lstlisting} + If now \Package{hyperref} drivers \Option{hypertex} or + \Option{dvips} are used then the useful \Package{hyperref} option + \Option{linktocpage} will be set. + In the pdf\LaTeX{} case the option will not be set, since + in that case an other \Package{hyperref} driver \File{hpdftex.def} + will be used. That means neither \File{hdvips.def} nor + \File{hypertex.def} will be loaded. +\end{Example} + +\begin{Explain} + Furthermore the loading of package \Package{scrlfile} + and the \Macro{AfterFile} statement can be written + in the private \File{hyperref.cfg}. + But then instead of \Macro{usepackage} the macro + \Macro{RequiresPackage} ought be used, see \cite{latex:clsguide}. + The new lines have to be inserted directly after + \Macro{ProvidesFile} line, thus prior to the execution + of the options \Option{dvips} or \Option{pdftex}. +\end{Explain}% +\EndIndex{Package}{scrlfile} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../guide" +%%% End: 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 new file mode 100644 index 00000000000..cb23e248da3 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlttr2.tex @@ -0,0 +1,3586 @@ +% ====================================================================== +% scrlttr2.tex +% Copyright (c) Markus Kohm, 2002-2006 +% +% 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-2006 +% +% 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 +% Translation: Harald Bongartz, Georg Grandke, Raimund Kohl, +% Jens-Uwe Morawski, Markus Kohm. Stephan Hennig +% +% ---------------------------------------------------------------------- +% +% Kapitel über scrlttr2 in der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% Übersetzung: Harald Bongartz, Georg Grandke, Raimund Kohl, +% Jens-Uwe Morawski, Markus Kohm, Stephan Hennig +% +% ============================================================================ + +\ProvidesFile{scrlttr2.tex}[2006/07/06 KOMA-Script guide (chapter: scrlttr2)] +% Date of translated german file: 2006-04-24 +% + +\chapter{The New Letter Class \Class{scrlttr2}} +\labelbase{scrlttr2} + +\BeginIndex{Class}{scrlttr2}\BeginIndex{}{Letters}% +\begin{Explain} +Since June 2002 release \KOMAScript{} provides a completely +rewritten letter class\ChangedAt{v2.8q}{\Class{scrlttr2}}. Although part +of the code is identical to main classes described in \autoref{cha:maincls}, +letters are quite different from articles, reports, books, and such. +That alone justifies a separate chapter about the letter class. But +there is another reason for a chapter on \Class{scrlttr2}. This class has +been redeveloped from scratch and provides a new user interface different +from every other class the author knows. This new user interface may be +uncommon but the author is convinced both old and new \KOMAScript{} users +will benefit from its advantages. + +\section{Looking Back on the Old Letter Class} +\label{sec:scrlttr2.scrlettr} + +With June 2002 release the old letter class +\Class{scrlettr}\IndexClass{scrlettr} became obsolete. It is recommended +not to use that class for new applications. There is no development on +the old letter class anymore, and support is very restricted. However, +if you really need the documentation of the old letter class, you can +still find it in file \File{scrlettr.dtx}, but only in German. You can +run it through \LaTeX{} some times, like that: +\begin{lstlisting} + latex scrlettr.dtx + latex scrlettr.dtx + latex scrlettr.dtx +\end{lstlisting} +You get file \File{scrlettr.dvi} containing the old German manual. + +To facilitate the transition to the new class, there is a compatibility +option. In general, the complete functionality still remains in the new class. +Without that compatibility option, the user interface and the defaults will be +different. More detail on this option is provided in +\autoref{sec:scrlttr2.options} and \autoref{sec:scrlttr2.fromscrlettr}. +\end{Explain} + +\section{Options} +\label{sec:scrlttr2.options} + +The letter class \Class{scrlttr2} uses the package +\Package{keyval}\IndexPackage{keyval} to handle options. This is part of +the \Package{graphics} package (see \cite{package:graphics}). Since +\Package{graphics} is part of the \emph{required} section of \LaTeX, it +should be found in every \LaTeX{} distribution. Should your \TeX{} +distribution contain \LaTeX, but not the packages \Package{graphics} +and \Package{keyval}, please complain to your \TeX{} distributor. If you +want to use \Class{scrlttr2}, you will have to install the +\Package{graphics} package yourself in that case. + +\begin{Explain} + The special feature of the \Package{keyval} package is the possibility to + accompany options by values. You do not only need a lot less options, but + maybe even 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 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}. +\end{Explain} + +\subsection{Defining Options Later} +\label{sec:scrlttr2.options.late} + +This section anticipates a feature of the new letter class. The meaning +of this feature will not become clear until the structure of a document +with more than one letter inside and another feature of \Class{scrlttr2} +will be understood. But to keep the number of forward references low, it +is reasonable to describe them this early. + +\begin{Declaration} + \Macro{KOMAoptions}\Parameter{option list} +\end{Declaration} +\BeginIndex{Cmd}{KOMAoptions}% +The possibility to change many options after loading the class is a +special feature of the \Class{scrlttr2} class. The \Macro{KOMAoptions} +command serves this purpose, taking options and their values as +arguments. You can list multiple options, separated by commas, like in +the optional argument of \Macro{documentclass}. If an option is only +available when loading the class, i.\,e.\ as an optional argument to +\Macro{documentclass}, there will be an explicit remark in the option's +description. + +\begin{Explain} +If you set an option to an illegal value within the \PName{option +list}, \LaTeX{} will stop and show an error message. By entering +``\texttt{h}'' you will get an explanation that will also list possible +values for that particular option. +\end{Explain} +% +\EndIndex{Cmd}{KOMAoptions}% + +\subsection{Page Layout Options} +\label{sec:scrlttr2.typeareaOptions} + +In contrast to the old \Class{scrlettr} class, but in correspondence +with the other \KOMAScript{} classes, the \Class{scrlttr2} class refers +to the \Package{typearea} package for the construction of the page +layout (see \autoref{cha:typearea}). The package will be loaded +by the class automatically, and the class controls the package. The +necessary options will be explained in this section. + +\begin{Declaration} + \Option{paper}=\PName{format} +\end{Declaration} +\BeginIndex{Option}{paper}% +This option defines the paper format. Theoretically, all paper formats +the \Package{typearea} package knows about are supported. But you have +to 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 with small 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 by now. That is not a matter of the class concept, but there +exist only parameter sets for ISO A4 at this time. Unfortunately, there +are no general rules to define the placement of the address field and +similar for an arbitrary paper size. But it is possible to define +additional parameter sets. See \autoref{sec:lcoFile} for more +information. + +\end{Explain} +% +\EndIndex{Option}{paper}% + +\begin{Declaration} + \Option{BCOR}=\PName{length}\\ + \Option{DIV}=\PName{value}\\ + \Option{headlines}=\PName{count} +\end{Declaration} +\BeginIndex{Option}{BCOR}% +\BeginIndex{Option}{DIV}% +\BeginIndex{Option}{headlines}% +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. 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}{headlines}% + +\begin{Declaration} + \Option{enlargefirstpage} +\end{Declaration} +\BeginIndex{Option}{enlargefirstpage}% +As described later in this chapter, the first page of a letter always +uses a different page layout. The \Class{scrlttr2} class provides a +mechanism to calculate height and vertical alignment of head and foot +of the first page independently of the following pages. If, as a +result, the foot of the first page would reach into the text area, +this text area would automatically be made smaller using the +\Macro{enlargethispage}\IndexCmd{enlargethispage} macro. On the other +hand, if the text area should become larger, supposed the foot on the +first page allows that, you could use this option. At best, some more +text would fit on the first page. See also the description of pseudo +length \PLength{firstfootvpos} at \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 +\PValue{false}. +% +\EndIndex{Option}{enlargefirstpage}% + +\begin{table} + \centering + \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} + \caption{Standard values for simple switches in \Class{scrlttr2}} + \label{tab:scrlttr2.simpleSwitchValues} +\end{table} + +\subsection{Other Layout Options} +\label{sec:scrlttr2.layout} + +In this subsection, you will find all options that have influence on +the layout in general, except page layout. Strictly speaking, all page +layout options (see~\ref{sec:scrlttr2.typeareaOptions}) are also layout +options, and vice versa for some of them. + +\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 get the possibility to have different margins +on left and right pages, but it 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 +unreasonable. + +\begin{Declaration} + \Option{cleardoublepage}=\PName{style} +\end{Declaration} +\BeginIndex{Option}{cleardoublepage}% +If you want pages inserted by the \Macro{cleardoublepage} command to +just contain a page number in head and foot or to be empty, this can be +accomplished with this option. There are three different styles +supported that are listed at \autoref{tab:scrlttr2.cleardoublepage}. Default +is \PValue{standard}. + +\begin{table} + \caption[{Possible values of option \Option{cleardoublepage} with + \Class{scrlttr2}}]{Possible values of option \Option{cleardoublepage} for + selection of page style of empty left pages with \Class{scrlttr2}} + \label{tab:scrlttr2.cleardoublepage} + \begin{desctabular} + \pventry{empty}{switches to page style\Index{page style} + \PValue{empty}\IndexPagestyle{empty} for inserted pages}% + \pventry{plain}{switches to page style + \PValue{plain}\IndexPagestyle{plain} for inserted pages} + \pventry{standard}{keeps the current page style for inserted pages} + \end{desctabular} +\end{table} +% +\EndIndex{Option}{cleardoublepage}% + +\begin{Declaration} + \Option{headsepline}\\ + \Option{footsepline} +\end{Declaration} +\BeginIndex{Option}{headsepline}% +\BeginIndex{Option}{footsepline}% +These two options insert a separator line below the head or above the +foot, resp., on consecutive pages. In the lingo 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 +\PValue{false}. If one of the options is used without value, like in the +declaration above, this evaluates as \PValue{true}, so the separator +line will be activated. When used as a \Macro{documentclass} option, the +\Package{typearea} package will be called with the option +\Option{headinclude} or \Option{footinclude}, resp.\ +(see~\ref{sec:typearea.options}). +% +\EndIndex{Option}{headsepline}% +\EndIndex{Option}{footsepline}% + +\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{pagenumber}=\PName{position} +\end{Declaration} +\BeginIndex{Option}{pagenumber}% +This option defines if and where a page number will be placed on +consecutive pages. All pages without a letter-head are consecutive +pages. This option effects the page layouts\Index{page layout} +\PValue{headings} and \PValue{plain}. It also effects the default page +styles of the \Package{scrpage2} package, if set before loading the +package (see \autoref{cha:scrpage}). It can take values only +influencing horizontal, only vertical, or both positions. Possible value +are shown in \autoref{tab:scrlttr2.pagenumber}. Default is \PValue{botcenter}. + +\begin{table} + \caption[{Possible values of option \Option{pagenumber} with + \Class{scrlttr2}}]{Possible values of option \Option{pagenumber} for the + position of the page number at page styles \PValue{headings} and + \PValue{plain} with \Class{scrlttr2}} + \label{tab:scrlttr2.pagenumber} + \begin{desctabular} + \entry{\PValue{bot}, \PValue{foot}}{% + page number in foot, horizontal position not changed}% + \entry{\PValue{botcenter}, \PValue{botcentered}, \PValue{botmittle}, + \PValue{footcenter}, \PValue{footcentered}, \PValue{footmiddle}}{% + page number in foot, centered}% + \entry{\PValue{botleft}, \PValue{footleft}}{% + page number in foot, left justified}% + \entry{\PValue{botright}, \PValue{footright}}{% + page number in foot, right justified}% + \entry{\PValue{center}, \PValue{centered}, \PValue{middle}}{% + page number centered horizontally, vertical position not changed}% + \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% + no page number}% + \entry{\PValue{head}, \PValue{top}}{% + page number in head, horizontal position not changed}% + \entry{\PValue{headcenter}, \PValue{headcentered}, \PValue{headmiddle}, + \PValue{topcenter}, \PValue{topcentered}, \PValue{topmiddle}}{% + page number in head, centered}% + \entry{\PValue{headleft}, \PValue{topleft}}{% + page number in head, left justified}% + \entry{\PValue{headright}, \PValue{topright}}{% + page number in head, right justified}% + \entry{\PValue{left}}{% + page number left, vertical position not changed}% + \entry{\PValue{right}}{% + page number right, vertical position not changed}% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{pagenumber}% + +\begin{Declaration} + \Option{parskip}=\PName{value} +\end{Declaration}% +\BeginIndex{Option}{parskip}% +\begin{Explain}% +Especially in letters you often encounter paragraphs marked not with +indentation of the first line, but with a vertical skip between them. It +is a matter of tradition. Apparently it has been easier for a secretary +to operate the carriage return lever twice than setting an indentation +using a tab stop or the space bar. Correct justification is almost +impossible using a typewriter, so letters are traditionally typeset +unjustified. + +However, typographers like Jan Tschichold take the view that letters, +written using means of modern typesetting, should take advantage of +their possibilities like other documents do. Under these circumstances, +letters should also be typeset using paragraph indentation and +justification. The author of \Class{scrlttr2} shares this point of view, +but nevertheless refrains from imposing to many restrictions upon the +user. +\end{Explain} + +As as reaction to many serious requests, \Class{scrlttr2} offers the +possibility to mark paragraphs not only by indentation of the first +line, but alternatively by vertical skip. You can choose between full or +half a line of vertical space. When using paragraph spacing, it seems +often useful to keep the last line of a paragraph shorter, so that +paragraph recognition will be eased. All these features are controlled +by different values for the \Option{parskip} option shown at +\autoref{tab:scrlttr2.parskip}. Default is \PValue{false}. + +\begin{table} + \caption[{Possible values of option \Option{parskip} with + \Class{scrlttr2}}]{Possible values of option \Option{parskip} to select + the paragraph mark with \Class{scrlttr2}} + \label{tab:scrlttr2.parskip} + \begin{desctabular} + \entry{\PValue{false}, \PValue{off}}{% + paragraph indentation instead of vertical space; the last line of a + paragraph may be arbitrarily filled}% + \entry{\PValue{full}, \PValue{on}, \PValue{true}}{% + one line vertical space between paragraphs; there must be at least + 1\Unit{em} free space in the last line of a paragraph}% + \pventry{full*}{one line vertical space between paragraphs; there must be + at least a quarter of a line free space at the end of a paragraph}% + \pventry{full+}{one line vertical space between paragraphs; there must be + at least a third of a line free space at the end of a paragraph}% + \pventry{full-}{one line vertical space between paragraphs; the last line + of a paragraph may be arbitrarily filled}% + \pventry{half}{half a line vertical space between paragraphs; there must + be at least 1\Unit{em} free space in the last line of a paragraph}% + \pventry{half*}{half a line vertical space between paragraphs; there must + be at least a quarter of a line free space at the end of a paragraph}% + \pventry{half+}{half a line vertical space between paragraphs; there must + be at least a third of a line free space at the end of a paragraph}% + \pventry{half-}{one line vertical space between paragraphs}% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{parskip}% + +\subsection{Font Options} +\label{sec:scrlttr2.fontOptions} + +Fonts options are any options with influence on the size of the base +font or of fonts for letter parts. In theory, 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} +\end{Declaration} +\BeginIndex{Option}{fontsize}% +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 using the +\Option{fontsize} option. The functionality is the same. This option can +only be used with \Macro{documentclass}, not with \Macro{KOMAoptions}. +Default is \PValue{12pt}. +% +\EndIndex{Option}{fontsize}% + +\subsection{Options for Letter-Head and Address} +\label{sec:scrlttr2.headoptions} + +The \Class{scrlttr2} class offers lots of extensions for the design of +the letter-head. There are also options for address formatting, +extending the possibilities of the standard letter class, although these +features could already be found in the now obsolete \Class{scrlettr} +class. + +\begin{Declaration} + \Option{fromalign} +\end{Declaration} +\BeginIndex{Option}{fromalign}% +This option defines the placement of the from address in the letter-head +of the first page. At the same time, this option serves as a switch to +activate or deactivate the extended letter-head options. If these +extensions are deactivated, some other options will have no effect. This +will be noted with the respecting options. Possible values for +\Option{fromalign} are shown at \autoref{tab:scrlttr2.fromalign}. Default is +\PValue{left}. + +\begin{table} + \caption[{Possible values of option \Option{fromalign} with + \Class{scrlttr2}}]{Possible values of option \Option{fromalign} for + setting the position of the from address at the letter head with + \Class{scrlttr2}} + \label{tab:scrlttr2.fromalign} + \begin{desctabular} + \entry{\PValue{center}, \PValue{centered}, \PValue{middle}}{% + return address centered; an optional logo will be on top of the extended + return address; letter-head extensions will be activated}% + \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% + standard design will be used for the return address; the letter-head + extensions are deactivated}% + \entry{\PValue{left}}{% + left justified return address; an optional logo will be right justified; + letter-head extensions will be activated}% + \entry{\PValue{right}}{% + right justified return address; an optional logo will be left justified; + letter-head extensions will be activated}% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{fromalign}% + +\begin{Declaration} + \Option{fromrule} +\end{Declaration} +\BeginIndex{Option}{fromrule}% +This option is part of the letter-head extensions (see option +\Option{fromalign} above). It allows you to place a horizontal line within the +return address. The possible values are shown at +\autoref{tab:scrlttr2.fromrule}. Default is \PValue{false}. You can not +activate more than one line at a time. + +\begin{table} + \caption[{Possible values of option \Option{fromrule} with + \Class{scrlttr2}}]{Possible values of option \Option{fromrule} for the + position of the rule at the from address with + \Class{scrlttr2}} + \label{tab:scrlttr2.fromrule} + \begin{desctabular} + \entry{\PValue{afteraddress}, \PValue{below}, \PValue{on}, \PValue{true}, + \PValue{yes}}{% + rule below the return address}% + \entry{\PValue{aftername}}{% + rule right below the sender's name}% + \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% + no rule}% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{fromrule}% + +\begin{Declaration} + \Option{fromphone} +\end{Declaration} +\BeginIndex{Option}{fromphone}% +This option is part of the letter-head 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 \PValue{false}. +% +\EndIndex{Option}{fromphone}% + +\begin{Declaration} + \Option{fromfax} +\end{Declaration} +\BeginIndex{Option}{fromfax}% +This option is part of the letter-head 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 \PValue{false}. +% +\EndIndex{Option}{fromfax}% + +\begin{Declaration} + \Option{fromemail} +\end{Declaration} +\BeginIndex{Option}{fromemail}% +This option is part of the letter-head 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}. +% +\EndIndex{Option}{fromemail}% + +\begin{Declaration} + \Option{fromurl} +\end{Declaration} +\BeginIndex{Option}{fromurl}% +This option is part of the letter-head 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}. +% +\EndIndex{Option}{fromurl}% + +\begin{Declaration} + \Option{fromlogo} +\end{Declaration} +\BeginIndex{Option}{fromlogo}% +This option is part of the letter-head 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}. Default is \PValue{false}. +% +\EndIndex{Option}{fromlogo}% + +\begin{Declaration} + \Option{addrfield} +\end{Declaration} +\BeginIndex{Option}{addrfield}% +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 \PValue{true}. +% +\EndIndex{Option}{addrfield}% + +\begin{Declaration} + \Option{backaddress} +\end{Declaration} +\BeginIndex{Option}{backaddress}% +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}. +Default is \PValue{true}. +% +\EndIndex{Option}{backaddress}% + +\begin{Declaration} + \Option{subject} +\end{Declaration} +\BeginIndex{Option}{subject}% +This option serves two purposes: First, you can choose if your subject should +have a title, given by the \PName{subject} variable (see +\autoref{tab:scrlttr2.subjectTerm}, +\autopageref{tab:scrlttr2.subjectTerm}). Second, you can choose if the subject +should be set before or after the opening. Possible values for this option +are shown at \autoref{tab:scrlttr2.subject}. Defaults are +\PValue{beforeopening} and \PValue{untitled}. + +\begin{table} + \caption[{Possible values of option \Option{subject} with + \Class{scrlttr2}}]{Possible values of option \Option{subject} for the + position of the subject with + \Class{scrlttr2}} + \label{tab:scrlttr2.subject} + \begin{desctabular} + \pventry{afteropening}{set subject after opening}% + \pventry{beforeopening}{set subject before opening}% + \pventry{titled}{add title to subject}% + \pventry{untitled}{do not add title to subject}% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{subject}% + +\begin{Declaration} + \Option{locfield} +\end{Declaration} +\BeginIndex{Option}{locfield}% +\Class{scrlttr2} places a field with additional sender attributes next +to the address field. This can be used for bank accounts or similar. +Depending on the \Option{fromalign} option, it will also be used for the +sender logo. The width of this field may be defined within an \File{lco} +file (see \autoref{sec:lcoFile}). If the width is set to 0 in that +file, then the \Option{locfield} option can toggle between two presets +for the field width. See the explanation on the \Variable{locwidth} +pseudo length in \autoref{sec:scrlttr2.locationField}, +\autopageref{desc:scrlttr2.plength.locwidth}. Possible +values for this option are shown at \autoref{tab:scrlttr2.locfield}. Default +is \PValue{narrow}. + +\begin{table} + \caption[{Possible values of option \Option{locfield} with + \Class{scrlttr2}}]{Possible values of option \Option{locfield} for setting + the width of the field with additional sender attributes with + \Class{scrlttr2}} + \label{tab:scrlttr2.locfield} + \begin{desctabular} + \pventry{narrow}{small sender supplement field}% + \pventry{wide}{large sender supplement field}% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{locfield}% + +\begin{Declaration} + \Option{foldmarks} +\end{Declaration} +\BeginIndex{Option}{foldmarks}% +This option activates fold marks for two or three panel folding of the +letter. The exact placement of the fold marks for three panel letter fold +depends on user settings or the \File{lco} file, resp.\ (see +\autoref{sec: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 +\PValue{true}, which implies setting the fold marks. +% +\EndIndex{Option}{foldmarks}% + +\begin{Declaration} + \Option{numericaldate} +\end{Declaration} +\BeginIndex{Option}{numericaldate}% +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 +like \Package{german}\IndexPackage{german}, +\Package{babel}\IndexPackage{babel}, or +\Package{isodate}\IndexPackage{isodate}. The short, numerical +presentation will be 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 +\PValue{false}, which results in standard date presentation. In the +now obsolete \Class{scrlettr} class, this was achieved using the +\Option{orgdate} option, but with opposite results. +% +\EndIndex{Option}{numericaldate}% + +\begin{Declaration} + \Option{refline} +\end{Declaration} +\BeginIndex{Option}{refline}% +With the \Class{scrlttr2} class, the head, foot, address, and +sender attributes may extend beyond the normal type area to the left +and to the right. This option defines if that also applies to the +reference line. Normally, the reference line contains at least the date, +but it can hold additional data. Possible values for this option are shown at +\autoref{tab:scrlttr2.refline}. Default is \PValue{narrow}. + +\begin{table} + \caption[{Possible value of option \Option{refline} with + \Class{scrlttr2}}]{Possible value of option \Option{refline} for setting + the width of the reference line with + \Class{scrlttr2}} + \label{tab:scrlttr2.refline} + \begin{desctabular} + \pventry{narrow}{reference line restricted to type area}% + \pventry{wide}{reference line corresponds to address and sender + attributes}% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{refline}% + +\subsection{Format Options} +\label{sec:scrlttr2.formatingOptions} + +Format options are those, which influence form or format of the +output and do not belong to another section. You might also call them +the \emph{miscellaneous options}. + +\begin{Declaration} + \Option{draft} +\end{Declaration} +\BeginIndex{Option}{draft}% +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 +will be drawn at the end of overfull lines. For the unpracticed eye, +these boxes ease the identification of paragraphs that need manual +improvement. 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 \PValue{false}, as usual. But I strongly recommend enabling +the \Option{draft} option when designing a letter, as for every other +document. +% +\EndIndex{Option}{draft}% + +\subsection{The Letter Class Option Files} +\label{sec:lcoFile} + +\BeginIndex{}{lco=\File{lco}}% +Normally, you would not redefine parameters like the distance between +the address field and the top edge of the paper every time you write a +letter. Instead, you would reuse a whole set of parameters for certain +occasions. It will be much the same for the letter-head and foot used on +the first page. Therefore, it is reasonable to save these settings in a +separate file. For this purpose, the \Class{scrlttr2} class offers the +\File{lco} files. The \File{lco} suffix is an abbreviation for +\emph{\emph{l}etter \emph{c}lass \emph{o}ption}. + +In an \File{lco} file you can use all commands available to the document +at the time the \File{lco} file is loaded. Additionally, it can contain +internal commands available to package writers. For \Class{scrlttr2}, +these are in particular the commands \Macro{@newplength}, \Macro{@setplength}, +\Macro{@addtoplength} and \Macro{addtolengthplength} (see +\autoref{sec:scrlttr2.pseudoLength}). + +There are already some \File{lco} files included in the \KOMAScript{} +distribution. The \File{DIN.lco}, \File{DINmtext.lco}, \File{SNleft.lco}, and +\File{SN.lco} files serve to adjust \KOMAScript{} to different layout +standards. They are well suited as templates for your own parameter sets. The +\File{KOMAold.lco} file, however, serves to improve compatibility with the old +letter class \Class{scrlettr}. Because it contains internal commands not open +to package writers, you should not use them as a template for your own +\File{lco} files. You can find a list of predefined \File{lco} files in +\autoref{tab:lcoFiles}, \autopageref{tab:lcoFiles}. + +\begin{Explain} +If you have defined a parameter set for a letter standard not yet +supported by \KOMAScript{}, you are explicitly invited to send this +parameter set to the \KOMAScript{} support address. Please do not forget +to include the permission for distribution under the \KOMAScript{} +license (see the \File{lppl.txt} file). If you know the necessary +metrics for an unsupported letter standard, but are not able to write a +corresponding \File{lco} file yourself, you can also contact the \KOMAScript{} +author. +\end{Explain} + +\begin{Declaration} + \Macro{LoadLetterOption}\Parameter{name} +\end{Declaration} +\BeginIndex{Cmd}{LoadLetterOption}% +Usually, the \File{lco} files will be loaded by the +\Macro{documentclass} command. You enter the name of the \File{lco} file +without suffix as an option. The \File{lco} file will be loaded right +after the class file. + +But it is also possible to load an \File{lco} file later, or even from +within another \File{lco} file. This can be done with the +\Macro{LoadLetterOption} command, which gets the \PName{name} of the +\File{lco} file without suffix as a parameter. +\begin{Example} +You write a document containing several letters. Most of them should +comply with the German DIN standard. So you start with: +\begin{lstlisting} + \documentclass{scrlttr2} +\end{lstlisting} +But one letter should use the \File{DINmtext} variant, with the address +field placed more to the top, which results in more text fitting on the +first page. The folding will be modified so that the address field still +matches the address window in a DIN~C6/5 envelope. +You can achieve this as follows: +\begin{lstlisting} + \begin{letter}{Markus Kohm\\ + Fichtenstra\ss e 63\\68535 Edingen-Neckarhausen} + \LoadLetterOption{DINmtext} + \opening{Hello,} +\end{lstlisting} +Since construction of the page does not start before the +\Macro{opening}, it is sufficient to load the \File{lco} file before the +\Macro{opening} command. In particular, this need not be done before +\Macro{begin}\PParameter{letter}. So the changes made by loading the +\File{lco} file are local to the corresponding letter. +\end{Example} + +\begin{Explain} +If an \File{lco} file is loaded via \Macro{documentclass}, it may +nevertheless take the name of an option, provided it is an option that +does not take an argument. However, it would be possible to give the +name \File{fromalign=left.lco} to an \File{lco} file. It will get +loaded every time the \Macro{documentclass} option \Option{fromalign} +is used with the value \PValue{left}. Admittedly, this is quite +academic. Of course you can use this feature only if your operating and +file system support this kind of file names. Otherwise you have to +choose another file name and add the corresponding option, if +needed. +\end{Explain} + +\begin{Example} + You do not want to enter your sender address every time, so you + create an \File{lco} file with the necessary data, like this: +\begin{lstlisting} + \ProvidesFile{mkohm.lco}[2002/02/25 letter class option] + \setkomavar{fromname}{Markus Kohm} + \setkomavar{fromaddress}{Fichtenstra\ss e 63\\ + 68535 Edingen-Neckarhausen} +\end{lstlisting} + Please note that the German sharp s, ``\ss'', was entered using the + \TeX{} macro \Macro{ss}, because right after \Macro{documentclass} + no packages for input encoding, for example + \Macro{usepackage}\PValue{[latin1]}\PParameter{inputenc} for Unix or + \Macro{usepackage}\PValue{[ansinew]}\PParameter{inputenc} for + Windows, and no language packages, like + \Macro{usepackage}\PParameter{ngerman}\IndexPackage{ngerman} for the + new German orthography, are loaded. + + But if you would always use the same input encoding, you could also + include it into your \File{lco} file. This would look like this: +\begin{lstlisting} + \ProvidesFile{mkohm.lco}[2002/02/25 letter class option] + \RequirePackage[latin1]{inputenc} + \setkomavar{fromname}{Markus Kohm} + \setkomavar{fromaddress}{Fichtenstraße 63\\ + 68535 Edingen-Neckarhausen} +\end{lstlisting} + There is one problem with this usage: you cannot load this + \File{lco} file later in your document. If you want to have letters + with different senders in one document, you should refrain from + loading packages in your \File{lco} file. + + Let us further assume that I always typeset letters using the preset + \File{KOMAold}. Then I could add the following line to my + \File{mkohm.lco} file: +\begin{lstlisting} + \LoadLetterOption{KOMAold} +\end{lstlisting} + + Anyway, now you can preset my sender address using +\begin{lstlisting} + \documentclass[mkohm]{scrlttr2} +\end{lstlisting} +\end{Example} + +In \autoref{tab:lcoFiles}, \autopageref{tab:lcoFiles} you find a list of all +predefined \File{lco} files. If you use a printer that has large unprintable +areas on the left or right side, you might have problems with the +\Option{SN}\IndexOption{SN} option. The Swiss standard SN~101\,130 defines the +address field to be placed 8\,mm from the right paper edge, so the headline +and the sender attributes will be set with the same small distance to the +paper edge. This also applies to the reference line when using the +\Option{refline}\PValue{=wide} option (see \autoref{sec:scrlttr2.headoptions}, +\autopageref{desc:scrlttr2.option.refline}). If you have this kind of problem, +create your own \File{lco} file that loads \Option{SN} first and then changes +\PLength{toaddrhpos}\IndexPLength{toaddrhpos} (see +\autoref{sec:scrlttr2.addressee}, +\autopageref{desc:scrlttr2.plength.toaddrvpos}) to a smaller value. Please +also reduce \PLength{toaddrwidth} accordingly. +% +\EndIndex{Cmd}{LoadLetterOption}% + +\begin{table} +\centering +\caption{The predefined \File{lco} files} +\begin{tabular}{lp{.7\textwidth}} + \toprule + \File{lco} file & Description and features \\ + \midrule + \Option{DIN}\IndexOption[indexmain]{DIN}% + & parameter set for letters on A4 size paper, + complying with German standard DIN~676; + suitable for window envelopes in the sizes C4, C5, C6, + and C6/5 (C6 long).\\ + \Option{DINmtext}\IndexOption[indexmain]{DINmtext}% + & parameter set for letters on A4 size paper, + complying with DIN~676, but using an alternate layout + with more text on the first page; + only suitable for window envelopes in the sizes C6 and + C6/5 (C6 long).\\ + \Option{KOMAold}\IndexOption[indexmain]{KOMAold}% + & parameter set for letters on A4 size paper using a + layout close to the now obsolete \Class{scrlettr} + letter class; suitable for window envelopes in the sizes + C4, C5, C6, and C6/5 (C6 long); + some additional commands to improve compatibility with + obsolete \Class{scrlettr} commands are defined; + \Class{scrlttr2} may behave slightly different when + used with this \File{lco} file than with the other + \File{lco} files.\\ + \Option{SN}\IndexOption[indexmain]{SN}% + & parameter set for Swiss letters with address field on + the right side, according to SN~010\,130; suitable for + Swiss window envelopes in the sizes C4, C5, C6, and + C6/5 (C6 long).\\ + \Option{SNleft}\IndexOption[indexmain]{SNleft}% + & parameter set for Swiss letters with address field on + the left side; + suitable for Swiss window envelopes with window on the + left side in the sizes C4, C5, C6, and C6/5 (C6 long). + \\ + \bottomrule +\end{tabular} +\label{tab:lcoFiles} +\end{table} + +\begin{Explain} +\begin{Declaration} + \Macro{LetterOptionNeedsPapersize}% + \Parameter{option name}\Parameter{paper size} +\end{Declaration} +\BeginIndex{Cmd}{LetterOptionNeedsPapersize} +As mentioned in \autoref{sec:scrlttr2.typeareaOptions}, there are +only parameter sets and \File{lco} files for A4 sized paper. But in +every \File{lco} file distributed with \KOMAScript{} you will find a +\Macro{LetterOptionNeedsPapersize} command so that you will be warned +when using another \PName{paper size}. The first argument is the name of +the \File{lco} file without the ``\File{.lco}'' suffix. Second argument +is the paper size the \File{lco} file is designed for. + +If several \File{lco} files are loaded, the +\Macro{LetterOptionNeedsPapersize} command can be contained in each of +them, but the \Macro{opening} +command will only check the last given \PName{paper size}. As shown in +the following example, an experienced user can thus easily write +\File{lco} files with parameter sets for other paper sizes. If you do +not plan to set up \File{lco} files yourself, you may just forget about +this option and skip the example. + +\begin{Example} +Supposed you use A5 sized paper in normal, i.\,e.\ upright or +portrait, orientation for your letters. We further assume that you want +to put them into standard C6 window envelopes. Then, the position of the +address field would be the same as for a DIN standard letter on A4 sized +paper. The main difference is that A5 paper needs only one fold. So you +want to disable the upper and lower fold marks. The easiest way to +achieve this is to place the marks outside the paper area. +\begin{lstlisting} + \ProvidesFile{paper=a5.lco}[2002/05/02 letter class option] + \LetterOptionNeedsPapersize{paper=a5}{a5} + \@setplength{tfoldmarkvpos}{\paperheight} + \@setplength{bfoldmarkvpos}{\paperheight} +\end{lstlisting} +Besides, the placement of the foot must be adjusted. It is left to the +reader to find an appropriate value. When using such an \File{lco} file, +you must only take care that other \File{lco} file options, like +\File{SN}, are declared before the paper size, i.\,e.\ before loading +``\File{paper=a5.lco}''. This seems too complicated? Only before you +used it the first time. Anyway, how often do you write letters not using +your standard format? +\end{Example} +% +\EndIndex{Cmd}{LetterOptionNeedsPapersize} +\end{Explain} + +By the way, the \File{DIN} \File{lco} file will always be loaded as the +first \File{lco} file. This ensures that all pseudo lengths will have +more or less reasonable default values. + +Please note that it is not possible to use \Macro{PassOptionsToPackage} +to pass options to packages from within an \File{lco} file that have +already been loaded by the class. Normally, this only applies to the +\Package{typearea}, \Package{scrlfile}, and \Package{keyval} packages. +% +\EndIndex{}{lco=\File{lco}}% + +\section{General Document Properties} +\label{sec:scrlttr2.general} + +Some document properties aren't assigned to a certain part of the +document such as the letter-head or the letter body. Several of +these properties have already been mentioned in +\autoref{sec:scrlttr2.options}. + + +\subsection{Font Selection} +\label{sec:scrlttr2.font} + +\BeginIndex{}{font style}\BeginIndex{}{font size}% +\begin{Explain} +Commands for defining, extending and querying the font of a specific +element can be found~\ref{sec:maincls.font}. These commands work exactly +the same in \Class{scrlttr2}. The elements which can be influenced in +this way are listed in \autoref{tab:scrlttr2.elementsWithoutText}. +% +\begin{table} + \centering% + \caption{Alphabetical list of the elements, whose font can be + changed in \Class{scrlttr2} using the commands \Macro{setkomafont} and + \Macro{addtokomafont}} + \begin{desctabular} + \feentry{backaddress}{% + return address for a window envelope}% + \feentry{descriptionlabel}{% + label, i.e. the optional argument of \Macro{item}, in a + \Environment{description} environment}% + \feentry{fromaddress}{% + sender's address in the letter-head}% + \feentry{fromname}{% + sender's address in the letter-head if different from + \FontElement{fromaddress}}% + \feentry{pagefoot}{% + in most cases the footer, sometimes the header of a page}% + \feentry{pagehead}{% + in most cases the header, sometimes the footer of page}% + \feentry{pagenumber}{% + page number in the footer or header which is inserted with + \Macro{pagemark}}% + \feentry{subject}{% + subject in the opening of the letter}% + \feentry{title}{% + headline in the opening of the letter}% + \end{desctabular} + \label{tab:scrlttr2.elementsWithoutText} +\end{table} +\end{Explain} +% +\EndIndex{}{font style}\EndIndex{}{font size}% + + +\subsection{Page Style} +\label{sec:scrlttr2.pageStyle} One of the general properties of a +document is the page style. Please refer also the +\autoref{sec:maincls.pageStyle} and \autoref{cha:scrpage}. + +\begin{Declaration} +\Macro{pagestyle}\PParameter{empty}\\ +\XMacro{pagestyle}\PParameter{plain}\\ +\XMacro{pagestyle}\PParameter{headings}\\ +\XMacro{pagestyle}\PParameter{myheadings}\\ +\XMacro{thispagestyle}\Parameter{local page style} +\end{Declaration} +\BeginIndex{Cmd}{pagestyle}% +\BeginIndex{Cmd}{thispagestyle}% +\BeginIndex{Pagestyle}{empty}% +\BeginIndex{Pagestyle}{plain}% +\BeginIndex{Pagestyle}{headings}% +\BeginIndex{Pagestyle}{myheadings}% +In letters written with \Class{scrlttr2} there are four different +page styles. +\begin{description} +\item[empty] is the page style, in which the header and footer of + subsequent pages (all pages apart from the first) are completely + empty. This page style is also used for the first page, because + header and footer of this page are set using the macro + \Macro{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 + determined by the option \Option{pagenumber} (see + \autoref{sec:scrlttr2.layout}). + +\item[headings] is the page style for automatic page headings of + subsequent pages. The inserted marks are the sender's name from the + variable \Variable{fromname}\IndexVariable{fromname} and the subject + from the variable \Variable{subject}\IndexVariable{subject} (see + \autoref{sec:scrlttr2.firstHead} and + \autoref{sec;scrlttr2.titleSubject}). At which position these + marks and the page numbers are placed depends on the option + \Option{pagenumber} (see \autoref{sec:scrlttr2.layout}). Apart + from that, the author can change these marks after \Macro{opening} + manually. +\item[myheadings] is the page style for manual page headings of + subsequent pages. This is very similar to \PValue{headings}, but + here the marks are set by the author using the commands + \Macro{markboth}\IndexCmd{markboth} and + \Macro{markright}\Index{markright}. +\end{description} + +Page styles are also influenced by the option +\Option{headsepline}\IndexOption{headsepline} or +\Option{footsepline}\IndexOption{footsepline} (see +\autoref{sec:scrlttr2.layout}). The page style beginning with +the current page is switched with \Macro{pagestyle}. In contrast, +\Macro{thispagestyle} changes only the page style of the current +page. The letter class itself uses +\Macro{thispagestyle}\PParameter{empty} within +\Macro{opening}\IndexCmd{opening} for the first page of the +letter. +% +\EndIndex{Cmd}{pagestyle}% +\EndIndex{Cmd}{thispagestyle}% +\EndIndex{Pagestyle}{empty}% +\EndIndex{Pagestyle}{plain}% +\EndIndex{Pagestyle}{headings}% +\EndIndex{Pagestyle}{myheadings}% + +\BeginIndex[indexother]{}{font style}% +For changing the font style of headers or footers you should use the +user interface described in \autoref{sec:maincls.font}. For +header and footer the same element is used which you can name either +\FontElement{pagehead}\IndexFontElement{pagehead} or +\FontElement{pagefoot}\IndexFontElement{pagefoot}. The element for the +page number within the header or footer is named +\FontElement{pagenumber}\IndexFontElement{pagenumber}. Default +settings are listed in \autoref{tab:maincls.defaultFontsHeadFoot}, +\autopageref{tab:maincls.defaultFontsHeadFoot}. +Please have also a look at the example in +\autoref{sec:maincls.pageStyle}, +\autopageref{sec:maincls.pageStyle.example}. +% +\EndIndex[indexother]{}{font style}% + +\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}% +Please refer to \autoref{sec:maincls.pageStyle}, +\autopageref{desc:maincls.macro.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}, +\autopageref{desc:scrlttr2.option.cleardoublepage}. +% +\EndIndex{Cmd}{clearpage}% +\EndIndex{Cmd}{cleardoublepage}% +\EndIndex{Cmd}{cleardoublestandardpage}% +\EndIndex{Cmd}{cleardoubleplainpage}% +\EndIndex{Cmd}{cleardoubleemptypage}% + + + +\subsection{Variables} +\label{sec:scrlttr2.variables} + +\BeginIndex{}{Variables}% +Apart from options, commands, environments, counters and lengths +additional elements have already been introduced in \KOMAScript{}. +A typical property of an element is the font style and the option +to change it (see \autoref{sec:maincls.font}). At this point +we now are going to introduce variables. Variables have a name by +which they are called and they have a content. The content of a +variable can be set independently from time and location of the +actual usage. The main difference between a command and a variable +is that a command usually triggers an action whereas a variable +only consist of plain text. Furthermore a variable can have an +additional description, which can be set and issued. + +This section only gives a short introduction to the term variable. +The following examples have no special meaning. More detailed +examples can be found in the explanation of predefined variables +of the letter class in the following sections. An overview of all +variables is given in \autoref{tab:scrlttr2.variables}. + +\begin{desctable} + \caption{Alphabetical list of all supported variables in + \Class{scrlttr2}\label{tab:scrlttr2.variables}}\\ + \Endfirsthead + \caption[]{Alphabetical list of all supported variables in + \Class{scrlttr2} (\emph{pursuit})}\\ + \Endhead% + \standardfoot% + \ventry{backaddress}{return address for window envelopes + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.variable.backaddress})}% + \ventry{backaddressseparator}{separator within the return address + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.variable.backaddressseparator})}% + \ventry{ccseparator}{separator between title of additional addressees and + additional addressees + (\autoref{sec:scrlttr2.afterClosing}, + \autopageref{desc:scrlttr2.variable.ccseparator})}% + \ventry{customer}{customer number + (\autoref{sec:scrlttr2.refLine}, + \autopageref{desc:scrlttr2.variable.customer})}% + \ventry{date}{date + (\autoref{sec:scrlttr2.refLine}, + \autopageref{desc:scrlttr2.variable.date})}% + \ventry{emailseparator}{separator between e-mail name and e-mail address + (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.variable.emailseparator})}% + \ventry{enclseparator}{separator between title of enclosure and enclosures + (\autoref{sec:scrlttr2.afterClosing}, + \autopageref{desc:scrlttr2.variable.enclseparator})}% + \ventry{faxseparator}{separator between title of fax and fax number + (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.variable.faxseparator})}% + \ventry{fromaddress}{sender's address without its name + (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.variable.fromaddress})}% + \ventry{frombank}{sender's bank account + (\autoref{sec:scrlttr2.other}, + \autopageref{desc:scrlttr2.variable.frombank})}% + \ventry{fromemail}{sender's e-mail + (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.variable.fromemail})}% + \ventry{fromfax}{sender's fax number + (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.variable.fromfax})}% + \ventry{fromlogo}{commands for inserting the sender's logo + (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.variable.fromlogo})}% + \ventry{fromname}{complete name of the sender + (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.variable.fromname})}% + \ventry{fromphone}{sender's telephone number + (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.variable.fromphone})}% + \ventry{fromurl}{one url of the sender + (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.variable.fromurl})}% + \ventry{invoice}{invoice number + (\autoref{sec:scrlttr2.refLine}, + \autopageref{desc:scrlttr2.variable.invoice})}% + \ventry{location}{more details of the sender + (\autoref{sec:scrlttr2.locationField}, + \autopageref{desc:scrlttr2.variable.location})}% + \ventry{myref}{ sender's reference + (\autoref{sec:scrlttr2.refLine}, + \autopageref{desc:scrlttr2.variable.myref})}% + \ventry{place}{place + (\autoref{sec:scrlttr2.refLine}, + \autopageref{desc:scrlttr2.variable.place})}% + \ventry{placeseparator}{separator between place and date + (\autoref{sec:scrlttr2.refLine}, + \autopageref{desc:scrlttr2.variable.placeseparator})}% + \ventry{phoneseparator}{separator between title of telephone and telephone + number + (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.variable.phoneseparator})}% + \ventry{signature}{signature beneath the ending of the letter + (\autoref{sec:scrlttr2.closing}, + \autopageref{desc:scrlttr2.variable.signature})}% + \ventry{specialmail}{special mail + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.variable.specialmail})}% + \ventry{subject}{subject + (\autoref{sec:scrlttr2.titleSubject}, + \autopageref{desc:scrlttr2.variable.subject})}% + \ventry{subjectseparator}{separator between title of subject and subject + (\autoref{sec:scrlttr2.titleSubject}, + \autopageref{desc:scrlttr2.variable.subjectseparator})}% + \ventry{title}{letter title + (\autoref{sec:scrlttr2.titleSubject}, + \autopageref{desc:scrlttr2.variable.title})}% + \ventry{toname}{complete name of addressee + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.variable.toname})}% + \ventry{toaddress}{address of addressee without its name + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.variable.toaddress})}% + \ventry{yourmail}{date of addressee's mail + (\autoref{sec:scrlttr2.refLine}, + \autopageref{desc:scrlttr2.variable.yourmail})}% + \ventry{yourref}{addressee's reference + (\autoref{sec:scrlttr2.refLine}, + \autopageref{desc:scrlttr2.variable.yourref})}% +\end{desctable} + +\begin{Declaration} + \Macro{newkomavar}\OParameter{description}\Parameter{name}\\ + \Macro{newkomavar*}\OParameter{description}\Parameter{name}\\ + \Macro{addtoreffields}\Parameter{name} +\end{Declaration} +\BeginIndex{Cmd}{newkomavar}\BeginIndex{Cmd}{newkomavar*}% +\BeginIndex{Cmd}{addtoreffields}% +With \Macro{newkomavar} a new variable is defined. This variable +is addressed via \PName{name}. As an option you can define a +\PName{description} for the variable \PName{name}. Using the +command \Macro{addtoreffields} you can add the variable +\PName{name} to the reference fields (see +\autoref{sec:scrlttr2.refLine}). The \PName{description} and +the content of the variable are added at the end of the reference +fields. The starred version \Macro{newkomavar*} is similar to the +one without star with a subsequent call of the command +\Macro{addtoreffields}. Thus, the starred version automatically +adds the variable to the reference fields. +\begin{Example} + Suppose you need an additional field for a direct dialling. You + can define this field either with +\begin{lstlisting} + \newkomavar[Direct dialling]{myphone} + \addtoreffields{myphone} +\end{lstlisting} + or more concise with +\begin{lstlisting} + \newkomavar*[direct dialling]{myphone} +\end{lstlisting} + +\end{Example} +When you define a variable for the reference fields you should +always give them a description. +% +\EndIndex{Cmd}{newkomavar}\EndIndex{Cmd}{newkomavar*}% +\EndIndex{Cmd}{addtoreffields}% + + +\begin{Declaration} + \Macro{setkomavar}% + \Parameter{name}\OParameter{description}\Parameter{content}\\ + \Macro{setkomavar*}\Parameter{name}\Parameter{description} +\end{Declaration} +\BeginIndex{Cmd}{setkomavar}\BeginIndex{Cmd}{setkomavar*}% +With the command \Macro{setkomavar} you determine the +\PName{content} of the variable \PName{name}. Using an optional +argument you can at the same time change the \PName{description} +of the variable. In contrast, \Macro{setkomavar*} can only set the +\PName{description} of the variable \PName{name}. +\begin{Example} + Suppose you have defined a direct dialling as mentioned above + and you now want to set the content. You write: +\begin{lstlisting} + \setkomavar{myphone}{-\,11} +\end{lstlisting} + In addition, you want to replace the term ``direct dialling'' + with ``Connexion''. Thus you add the description +\begin{lstlisting} + \setkomavar*{myphone}{Connexion} +\end{lstlisting} + or you can put both in one command: +\begin{lstlisting} + \setkomavar{myphone}[Connexion]{-\,11} +\end{lstlisting} +\end{Example} +By the way: You may delete the content of a variable using an empty +\PName{content} argument. You can also delete the description using an +empty \PName{description} argument. +\begin{Example} + Suppose you have defined a direct dialling as mentioned above and + you now don't want a description to be set. You write: +\begin{lstlisting} + \setkomavar*{myphone}{} +\end{lstlisting} + You can combine this with the definition of the content: +\begin{lstlisting} + \setkomavar{myphone}[]{-\,11} +\end{lstlisting} + So you may setup the content and delete the description using only + one command. +\end{Example} +% +\EndIndex{Cmd}{setkomavar}\EndIndex{Cmd}{setkomavar*}% + + +\begin{Declaration} + \Macro{usekomavar}\OParameter{command}\Parameter{name}\\ + \Macro{usekomavar*}\OParameter{command}\Parameter{name} +\end{Declaration} +\BeginIndex{Cmd}{usekomavar}\BeginIndex{Cmd}{usekomavar*}% +In\ChangedAt{v2.9i}{\Class{scrlttr2}} some cases it is necessary that +the user can access the content or the description of a variable. This +is specially important when you have defined a variable which is not +added to the reference fields. Using the command \Macro{usekomavar} you +have access to the content of the variable \PName{name} whereas the +starred version \Macro{usekomavar*} gives you the description. + +\begin{Explain} + The commands \Macro{usekomavar} and \Macro{usekomavar*} are, similar + to all commands where a starred version or an optional argument + exists, not fully expandable. Nevertheless if used within + \Macro{markboth}\IndexCmd{markboth}, + \Macro{markright}\IndexCmd{markright} or similar commands you + needn't insert a \Macro{protect}\IndexCmd{protect} before using + them. Of course this is also true in \Package{scrpage2} for + \Macro{markleft}\IndexCmd{markleft}. But they couldn't be used at + commands like \Macro{MakeUppercase}\IndexCmd{MakeUppercase}. + \Macro{MakeUppercase}\PParameter{\Macro{usekomavar}\Parameter{name}} + would result in \Macro{usekomavar}\Parameter{NAME}. To avoid this + problem you may use commands like \Macro{MakeUppercase} as optional + argument of \Macro{usekomavar} or \Macro{usekomavar*}. So you'll get + the upper case content of a variable using + \Macro{usekomavar}\PValue{[\Macro{MakeUppercase}]}\Parameter{name}. +\end{Explain} +% +\EndIndex{Cmd}{usekomavar}\EndIndex{Cmd}{usekomavar*}% +% +\EndIndex{}{variables} + +\begin{Declaration} + \Macro{ifkomavarempty}\Parameter{name}\Parameter{true}\Parameter{false}\\ + \Macro{ifkomavarempty*}\Parameter{name}\Parameter{true}\Parameter{false} +\end{Declaration} +\BeginIndex{Cmd}{ifkomavarempty}% +With\ChangedAt{v2.9i}{\Class{scrlttr2}} these commands you may check +whether or not the expanded contents or description of a variable is +empty. The \PName{true} argument will be executed if the contents or +description is empty. Otherwise the \PName{false} argument will be +executed. The variant with star sign handles the description of a +variable, the variant without star the contents. + +\begin{Explain} + Maybe it is important to know, that the contents or description of + the variable will be expanded using \Macro{edef}. If this results in + spaces or unexpandable macros like \Macro{relax}, it is not + empty. This is even true, if the use of the variable would not + result in any output. + + Both variants of the command must not be used at the argument of + \Macro{MakeUppercase}\IndexCmd{MakeUppercase} or commands, which + have similar effects to their arguments. See the description of + \Macro{usekomavar} above for more information about using commands + like \Macro{usekomavar} or \Macro{ifkomavarempty} at the argument of + \Macro{MakeUppercase}. But they are robust enough to be used at the + argument of e.g. \Macro{markboth} or \Macro{footnote}. +\end{Explain} + + +\subsection{The Pseudo Lengths} +\label{sec:scrlttr2.pseudoLength} + +\begin{Explain} + \TeX{} works with a fixed number of registers. There are registers + for tokens, for boxes, for counters, for skips and for dimensions. + Overall there are 256 for each of them. For \LaTeX{} lengths, which + are addressed with \Macro{newlength} skip registers are used. If all + of these registers are in use you can not define additional lengths. + The letter class \Class{scrlttr2} only for the first page would use + up more than 20 of such registers. \LaTeX{} itself already uses 40 + of these registers. The \Package{typearea} package needs some of + them too. Thus approximately a quarter of the precious registers is + already in use. That's the reason why lengths specific to letters in + \Class{scrlttr2} are defined with macros instead of lengths. The + drawback of this is that computations withs macros is somewhat more + complicated than with real lengths. +\end{Explain} + +A list of all pseudo length at \Class{scrlttr2} is shown at +\autoref{tab:scrlttr2.pseudoLength} from +\autopageref{tab:scrlttr2.pseudoLength}. The meaning is shown at +\autoref{fig:scrlttr2.pseudoLength}. + +\begin{figure} + \centering + \includegraphics{plenDIN} + \caption{Schematic of letter paper's pseudo lengths} + \label{fig:scrlttr2.pseudoLength} +\end{figure} + +\begin{desctable} + \caption{Pseudo lengths provided by class \Class{scrlttr2}% + \label{tab:scrlttr2.pseudoLength}}\\ + \Endfirsthead % + \caption[]{Pseudo lengths provided by class \Class{scrlttr2} + (\emph{pursuit})}\\% + \Endhead% + \standardfoot% + \pentry{foldmarkhpos}{% + horizontal distance of all foldmarks from left paper edge + (\autoref{sec:scrlttr2.other}, + \autopageref{desc:scrlttr2.plength.foldmarkhpos})}% + \pentry{tfoldmarkvpos}{% + vertical distance of upper foldmark from top paper edge + (\autoref{sec:scrlttr2.other}, + \autopageref{desc:scrlttr2.plength.tfoldmarkvpos})}% + \pentry{bfoldmarkvpos}{% + vertical distance of lower foldmark from top paper edge + (\autoref{sec:scrlttr2.other}, + \autopageref{desc:scrlttr2.plength.bfoldmarkvpos})}% + \pentry{firstheadvpos}{% + vertical distance of letter-head from top paper edge + (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.plength.firstheadvpos})}% + \pentry{firstheadwidth}{% + width of letter-head; letter-head is centered horizontally + on letter paper (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.plength.firstheadwidth})}% + \pentry{fromrulewidth}{% + length of an optional horizontal rule in letter-head + (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.plength.fromrulewidth})}% + \pentry{toaddrvpos}{% + vertical distance of address field from top paper edge + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.plength.toaddrvpos})}% + \pentry{toaddrhpos}{% + horizontal distance of address field from left paper edge + -- for positive values -- or negative horizontal distance of address + field from right paper edge -- for negative values -- + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.plength.toaddrhpos})}% + \pentry{toaddrindent}{% + left and right indentation of address within address field + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.plength.toaddrindent})}% + \pentry{toaddrwidth}{% + width of address field (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.plength.toaddrwidth})}% + \pentry{toaddrheight}{% + height of address field (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.plength.toaddrheight})}% + \pentry{backaddrheight}{% + height of return address field on top of address field + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.plength.backaddrheight})}% + \pentry{specialmailindent}{% + left indentation of special mail within address field + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.plength.specialmailindent})}% + \pentry{specialmailrightindent}{% + right indentation of special mail within address field + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.plength.specialmailrightindent})}% + \pentry{locwidth}{% + width of supplemental data field; for zero value width is + calculated automatically with respect to option \Option{locfield} + that is described in \autoref{sec:scrlttr2.headoptions} + (\autoref{sec:scrlttr2.locationField}, + \autopageref{desc:scrlttr2.plength.locwidth})}% + \pentry{refvpos}{% + vertical distance of business line from top paper edge + (\autoref{sec:scrlttr2.refLine}, + \autopageref{desc:scrlttr2.plength.refvpos})}% + \pentry{refwidth}{% + width of business line + (\autoref{sec:scrlttr2.refLine}, + \autopageref{desc:scrlttr2.plength.refwidth})}% + \pentry{refhpos}{% + horizontal distance of business line from left paper edge; for zero + value business line is centered horizontally on letter paper + (\autoref{sec:scrlttr2.refLine}, + \autopageref{desc:scrlttr2.plength.refhpos})}% + \pentry{refaftervskip}{% + vertical skip below business line + (\autoref{sec:scrlttr2.refLine}, + \autopageref{desc:scrlttr2.plength.refaftervskip})}% + \pentry{sigbeforevskip}{% + vertical skip between closing and signature + (\autoref{sec:scrlttr2.closing}, + \autopageref{desc:scrlttr2.plength.sigbeforevskip})}% + \pentry{sigindent}{% + indentation of signature with respect to text body + (\autoref{sec:scrlttr2.closing}, + \autopageref{desc:scrlttr2.plength.sigindent})}% + \pentry{firstfootvpos}{% + vertical distance of letter foot from top paper edge + (\autoref{sec:scrlttr2.firstFoot}, + \autopageref{desc:scrlttr2.plength.firstfootvpos})}% + \pentry{firstfootwidth}{% + width of letter foot; letter foot is centered horizontally + on letter paper + (\autoref{sec:scrlttr2.firstFoot}, + \autopageref{desc:scrlttr2.plength.firstfootwidth})}% +\end{desctable} + + +\begin{Declaration} + \Macro{@newplength}\Parameter{name} +\end{Declaration} +\BeginIndex{Cmd}{@newplength}% +This command defines an new pseudo length. This new pseudo length +can clearly identified with its \PName{name}. It is made sure that +every \PName{name} can only be given once. + +Since the user in general doesn't define its own pseudo lengths it +is not intended as a user command. Thus, it can not be used within +a document, but for example within a \File{lco} file. +% +\EndIndex{Cmd}{@newplength}% + +\begin{Declaration} + \Macro{useplength}\Parameter{name} +\end{Declaration} +\BeginIndex{Cmd}{useplength}% +Using this command you can access the value of the pseudo length +with the given \PName{name}. This is the only user command in +connection with pseudo lengths. Of course this command can also be +used with a \File{lco} file. +% +\EndIndex{Cmd}{useplength}% + +\begin{Declaration} + \Macro{setlengthtoplength}% + \OParameter{factor}\Parameter{length}\Parameter{pseudo length}\\ + \Macro{addtolengthplength}% + \OParameter{factor}\Parameter{length}\Parameter{pseudo length} +\end{Declaration} +\BeginIndex{Cmd}{setlengthtoplength}% +\BeginIndex{Cmd}{addtolengthplength}% +\begin{Explain}% +While you can combine a length with a factor this is not possible +with pseudo lengths. Suppose you have a length \Macro{test} with +the value 2\Unit{pt}, then \texttt{3\Macro{test}} gives you the +value 6\Unit{pt}. Using pseudo lengths instead +\texttt{3\Macro{useplength}\PParameter{test}} would give you +32\Unit{pt}. This is especially annoying if you want a real +\PName{length} assign the value of a \PName{pseudo length}. +\end{Explain} +Using the command \Macro{setlengthtoplength} you can assign a +multiple of a \PName{pseudo length} to a real \PName{length}. +Instead of putting the \PName{factor} in front of the +\PName{pseudo length} it is given as an optional argument. You +should also use this command when you want to assign a negative +value of a \PName{pseudo length} to a \PName{length}. In this case +you can either use a minus sign or \PValue{-1} as the +\PName{factor}. The command \Macro{addtolengthplength} works very +similar to that. It adds a multiple of \PName{pseudo length} to +\PName{length}. +% +\EndIndex{Cmd}{setlengthtoplength}% +\EndIndex{Cmd}{addtolengthplength}% + +\begin{Declaration} + \Macro{@setplength}% + \OParameter{factor}\Parameter{pseudo length}\Parameter{value}\\ + \Macro{@addtoplength}% + \OParameter{factor}\Parameter{pseudo length}\Parameter{value} +\end{Declaration} +\BeginIndex{Cmd}{@setplength}% +\BeginIndex{Cmd}{@addtoplength}% +Using the command \Macro{@setplength} you assign a multiple of a +\PName{value} to a \PName{pseudo length}. The \PName{factor} is +given as an optional argument. +The command \Macro{@addtoplength} +adds the \PName{value} to a \PName{pseudo length}. For assigning +or adding the multiple of \PName{pseudo length} to another pseudo +length the command \Macro{useplength} is used within \PName{value}. +To subtract the value of a \PName{pseudo length} from another +\PName{pseudo length} a minus sign or \PValue{-1} as +\PName{factor} is used. + +Since the user in general doesn't define its own pseudo lengths it +is not intended as a user command. Thus, it can not be used within +a document, but for example within a \File{lco} file. +% +\EndIndex{Cmd}{@setplength}% +\EndIndex{Cmd}{@addtoplength}% + + + +\subsection{The General Structure of a Letter Document} +\label{sec:scrlttr2.document} + +The general structure of a letter document differs somewhat from +the structure of a normal document. Whereas a book document in +general contains only one book, a letter document can contain +several 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 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})). General settings such as the +loading of packages and the setting of options should be placed before +\Macro{begin}\PParameter{document} only. All settings that comprise +the setting of variables or other text features should be done after +\Macro{begin}\PParameter{document}. This is particularly recommend +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 the standard closing for the +end of a document. Of course you can also insert additional +comments at this point. + +\begin{figure} +\centering\small\setlength{\fboxsep}{1.5ex} +\fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{documentclass}\OParameter{\dots}\PParameter{scrlttr2}\\ + \dots\\ + {\centering\emph{Settings for all letters}\\} + \dots\\ + \Macro{begin}\PParameter{document}\\ + \dots\\ + {\centering\emph{Settings for all letters}\\} + \dots\\ + }}\\ +\fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{begin}\PParameter{letter}\Parameter{addressee}\\ + \dots\\ + {\centering\emph{Content of the individual letter}\\} + \dots\\ + \Macro{end}\PParameter{letter}\\ + }}\\ +\parbox{.667\linewidth}{\raggedright\vspace{-.5ex}\vdots\vspace{1ex}}\\ +\fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{end}\PParameter{document}\\ + }}\\ +\caption{General structure of a letter document with several +individual letters (the structure of a single letter is shown in + \autoref{fig:scrlttr2.letter})} +\label{fig:scrlttr2.document} +\vspace{2\abovecaptionskip} +\fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{begin}\PParameter{letter}% + \OParameter{options}\Parameter{addressee}\\ + \dots\\ + {\centering\emph{Settings for this letter}\\} + \dots\\ + \Macro{opening}\Parameter{opening}\\ + }}\\ +\fbox{\parbox{.667\linewidth}{\raggedright% + \dots\\ + {\centering\emph{letter text}\\} + \dots\\ + }}\\ +\fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{closing}\Parameter{closing}\\ + \Macro{ps}\\ + \dots\\ + {\centering\emph{postscript}\\} + \dots\\ + \Macro{encl}\Parameter{enclosures}\\ + \Macro{cc}\Parameter{additional addressees}\\ + \Macro{end}\PParameter{letter}\\ + }}\\ +\caption{General structure of a single letter within a letter +document (see also \autoref{fig:scrlttr2.document})} +\label{fig:scrlttr2.letter} +\end{figure} + +As shown in \autoref{fig:scrlttr2.letter} every single letter +itself consists of an introduction, the letter body and the +closing. In the introduction all settings for only this letter are +defined. It is important that this introduction always ends with +\Macro{opening}. Similarly the closing starts with +\Macro{closing}. If needed both arguments \PName{opening} and +\PName{closing} can be left empty. Nevertheless both commands have +to be used and must have an argument. + +\begin{Explain} +There are further settings that can be changed between the +individual letters. These settings have an effect on all +subsequent letters. For reasons of maintainability of your letter +documents it is not recommended to use further general settings +with limited validity between the letters. +\end{Explain} + +As already mentioned you can use all settings in the preamble of a +letter document in the preamble of the individual letters apart +from the font size. Therefore you will not find more detailed +explanations for the possible settings at this point. Please refer +to \autoref{sec:scrlttr2.startLetter}. + + +\section{The Letter Declaration} +\label{sec:scrlttr2.startLetter} + +The letter declaration gives all settings for the letter itself as well +as for the first page of the body. The first page consists of more than just the +prelims of the letter; it consists of several different parts. + +\subsection{The Letter-Head} +\label{sec:scrlttr2.firstHead} + +The term letter-head here refers to all of the sender's data and is printed +above the addressee's address. It usually is expected to have all this set via +the page style setting. The earlier version of letter class \Class{scrlettr} +worked that way. But with \Class{scrlttr2}, the letter-head has gotten +independent of the page style setting and is run by the command +\Macro{opening}. +% Fuellmaterial +\iftrue +The position of the letter-head is absolute and independent of the type +area. In fact the first page of a letter, that page that holds the letter-head, +is set by \PValue{empty}. +\fi +% Ende des Fuellmaterials + +\begin{Declaration} + \PLength{firstheadvpos} +\end{Declaration} +\BeginIndex{PLength}{firstheadvpos}% +The pseudo length \PLength{firstheadvpos} gives the distance between the top of +the sheet and the letter-head. This value is set differently in the predefined +\File{lco}-files. A typical value is 8\Unit{mm}. +% +\EndIndex{PLength}{firstheadvpos} + +\begin{Declaration} + \PLength{firstheadwidth} +\end{Declaration} +\BeginIndex{PLength}{firstheadwidth}% +The pseudo length \PLength{firstheadwidth} gives the width of the +letter-head. This value is set differently in the predefined +\File{lco}-files. While this value usually depends on the paper width and the +distance between the left side of the sheet and the address' field, it was +the type area width in \Option{KOMAold}. +% +\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}% +% +These variables give all statements concerning the sender necessary to create +the letter-head. Which variable will be used to build the letter-head in the +end can be chosen by use of the letter-head extensions (see option +\Option{fromalign} in \autoref{sec:scrlttr2.headoptions}, +\autopageref{desc:scrlttr2.option.fromalign}) and the options +given there. The variables \Variable{fromname}, and \Variable{fromaddress}, +and \Variable{fromlogo} will be set in the letter-head without their label; +the variables \Variable{fromphone}, \Variable{fromfax}, \Variable{fromemail} +and \Variable{fromurl} will be set with it's label. The labels are taken from +\autoref{tab:scrlttr2.fromTerm}, +\autopageref{tab:scrlttr2.fromTerm}. +% +\begin{table} + \centering + \caption{The sender's predefined labels for the letter head} + \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} + +An important hint concerns the sender's address. Within the sender's address, +parts such as Street, P.O.~Box, State, Country etc, are separated with a +double backslash. Depending on how the sender's address is used this double +backslash will be interpreted differently and therefore not strictly as a line +break. Paragraphs, vertical distances and the like usually aren't allowed within +the sender's address declaration. One has to have very good knowledge of +\Class{scrlttr2} to use things like those mentioned above, intelligently. + +It's possible, by the way, to load an external picture to use it as a logo. In +this case then put the content of \Variable{fromlogo} to a +\Macro{includegraphics}-command. The corresponding package (see +\cite{package:graphics}) of course has to be given with the letter declaration +(see \autoref{sec:scrlttr2.document}). +% +\EndIndex{Variable}{fromname}% +\EndIndex{Variable}{fromaddress}% +\EndIndex{Variable}{fromphone}% +\EndIndex{Variable}{fromfax}% +\EndIndex{Variable}{fromemail}% +\EndIndex{Variable}{fromurl}% +\EndIndex{Variable}{fromlogo}% + +\begin{Declaration} + \PLength{fromrulewidth} +\end{Declaration} +\BeginIndex{PLength}{fromrulewidth}% +Depending on class options \Option{fromrule} and \Option{fromalign} a +horizontal rule is drawn in the letter-head (see +\autoref{sec:scrlttr2.headoptions}, +\autopageref{desc:scrlttr2.option.fromrule}). If pseudo length +\PLength{fromrulewidth} has a value of 0\Unit{pt}, which is the default, rule +length is calculated automatically taking into account, e.\,g., letter-head +width or an optional logo. Users can adjust rule length manually by setting +this pseudo length to positive values using \Macro{\@setplength} (see +\autoref{sec:scrlttr2.pseudoLength}, +\autopageref{desc:scrlttr2.macro.@setplength}) in a \File{lco}-file on his +own. +% +\EndIndex{PLength}{fromrulewidth}% + +\begin{Declaration} + \Variable{phoneseparator}\\ + \Variable{faxseparator}\\ + \Variable{emailseparator}\\ + \Variable{urlseparator} +\end{Declaration} +\BeginIndex{Variable}{phoneseparator}% +\BeginIndex{Variable}{faxseparator}% +\BeginIndex{Variable}{emailseparator}% +\BeginIndex{Variable}{urlseparator}% +With these variables, hyphens are defined. If applicable they are used with the +sender's data in the letter-head (see \autoref{tab:scrlttr2.fromTerm}). As +a feature, they are labeled and used in the sender's details +of the letter-head. To look up the predefined labels +and their contents, see \autoref{tab:scrlttr2.fromSeparator}. +% +% table moved in following paragraph (JUM) >>> +% +\EndIndex{Variable}{phoneseparator}% +\EndIndex{Variable}{faxseparator}% +\EndIndex{Variable}{emailseparator}% +\EndIndex{Variable}{urlseparator}% + + +\begin{Declaration} + \Macro{firsthead}\Parameter{construction} +\end{Declaration} +\BeginIndex{Cmd}{firsthead}% +Mostly \Class{scrlttr2} and its variables offer enough possibilities to create +a letter-head. In very rare situations one may wish to have more freedom to +create. In those situations one will have to do without predefined +letter-heads, which could have been chosen via options. Instead one is to +create freely. Therefore one has to define the preferred \PName{construction} +with the command \Macro{firsthead}. Within \Macro{firsthead} and with the help +of the \Macro{parbox}-command (see \cite{latex:usrguide}) one can set several +boxes side by side or one underneath the other. An advanced user will thus be +able to create a letter-head on his own. And doing this of course the +\PName{construct} may use variables with the help of \Macro{usekomavar}. +% +% <<< table of previous paragraph +\begin{table} + \centering + \caption{predefined labels and contents of hyphens for sender's data in the + letter-head} + \begin{tabular}{lll} + \toprule + name & label & content \\ + \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.fromSeparator} +\end{table} +% +\EndIndex{Cmd}{firsthead}% + + +\subsection{The Footer} +\label{sec:scrlttr2.firstFoot} +As the first page holds a letter-head of its own it holds a footer of its own +too. And, same as with the letter-head, it will be printed independent of the +page style settings but with the use of \Macro{opening}. + +\begin{Declaration} + \PLength{firstfootvpos} +\end{Declaration} +\BeginIndex{PLength}{firstfootvpos}% +% +This pseudo length gives the distance between the footer and the upper +border of the sheet. This value is set different in the predefined +\File{lco}-files. Also it takes care of preventing text jutting into the +footer area. If needed, it can help to shorten the text height on the first page +using \Macro{enlargethispage}. +Likewise and if it is needed the textheight can +be extended with help of the option \Option{enlargefirstpage}. This way, the +distance between text area and the first page's footer can be reduced to +the value \Length{footskip}. See also \autoref{sec:scrlttr2.typeareaOptions}, +\autopageref{desc:scrlttr2.option.enlargefirstpage}. +% +\EndIndex{PLength}{firstfootvpos}% + + +\begin{Declaration} + \PLength{firstfootwidth} +\end{Declaration} +\BeginIndex{PLength}{firstfootwidth}% +This pseudo length gives the width of the letter's first page footer. The +value is set in dependency of the pseudo length \PLength{firstheadwidth} in the +\File{lco} files. +% +\EndIndex{PLength}{firstfootwidth}% + + +\begin{Declaration} + \Macro{firstfoot}\Parameter{construction} +\end{Declaration} +\BeginIndex{Cmd}{firstfoot}% +The first page's footer is preset to empty. But with the +\Macro{firstfoot} command it is possible to give definitions the same +way as with defining the letter-head with \Macro{firsthead}. +\begin{Example} + As the first page's footer, you may want to set the content of the variable + \Variable{bank} (the bank account). The double backslash shall be exchanged + with a comma at the same time: +\begin{lstlisting} + \firstfoot{% + \parbox[b]{\linewidth}{% + \centering\def\\{, }\usekomavar{frombank}% + }% + } +\end{lstlisting} + For the hyphen you might define a variable of your own if you like. Consider + that has been left to the reader as an exercise. + + Nowadays it has become very common to create a proper footer to have + some balance to the letter-head. This can be done like this: +\begin{lstlisting} + \firstfoot{% + \parbox[t]{\textwidth}{\footnotesize + \begin{tabular}[t]{l@{}}% + \multicolumn{1}{@{}l@{}}{partners:}\\ + Jim Smith\\ + Russ Mayer + \end{tabular}% + \hfill + \begin{tabular}[t]{l@{}}% + \multicolumn{1}{@{}l@{}}{Manager:}\\ + Jane Fonda\\[1ex] + \multicolumn{1}{@{}l@{}}{Court Of Jurisdiction:}\\ + Great Plains + \end{tabular}% + \ifkomavarempty{frombank}{}{% + \hfill + \begin{tabular}[t]{l@{}}% + \multicolumn{1}{@{}l@{}}{\usekomavar*{frombank}:}\\ + \usekomavar{frombank} + \end{tabular}% + }% + }% + } +\end{lstlisting} + This example, by the way, came from Torsten Kr\"uger. With +\begin{lstlisting} + \setkomavar{frombank}{Account No. 12\,345\,678\\ + at Citibank\\ + bank code no: 876\,543\,21} +\end{lstlisting} + the bank account can be set accordingly. If the footer will have a + height like that it might happen that you have to shift its position. You + do this with the pseudo length + \PLength{firstfootvpos}\IndexPLength{firstfootvpos}, which is described + above in this section. +\end{Example} +% +\EndIndex{Cmd}{firstfoot}% + + +\subsection{The Address} +\label{sec:scrlttr2.addressee} +The term address here refers to addressee's name and address which are +output in an address field. Additional information can be output within +this address field such as dispatch type or a return address. The latter +being especially useful when using window envelopes. The address is +centered vertically within the remaining part of the address field below +dispatch type information. + +\begin{Declaration} + \PLength{toaddrvpos}\\ + \PLength{toaddrhpos} +\end{Declaration} +\BeginIndex{PLength}{toaddrvpos}% +\BeginIndex{PLength}{toaddrhpos}% +These pseudo lengths define vertical and horizontal position of the +address field. Values should be set in \File{lco} files according to +standard envelopes window's measures. Care must be taken to avoid +letter-head and address field to overlap. Whether address field is +output or not can be controlled by class option \Option{addrfield} +(see \autoref{sec:scrlttr2.headoptions}). +% +\EndIndex{PLength}{toaddrhpos}% +\EndIndex{PLength}{toaddrvpos}% + + +\begin{Declaration} + \PLength{toaddrwidth} +\end{Declaration} +\BeginIndex{PLength}{toaddrwidth}% +Pseudo length \PLength{toaddrwidth} defines the width of the address +field. It should be set in an \File{lco} file according to standard +envelopes window's measures. Typical values are 70\Unit{mm} to +100\Unit{mm}. +% +\EndIndex{PLength}{toaddrwidth}% + + +\begin{Declaration} + \PLength{toaddrindent} +\end{Declaration} +\BeginIndex{PLength}{toaddrindent}% +Additional indentation of addressee within address field can be +controlled by pseudo length \PLength{toaddrindent}. Its value applies +to both left and right margin. Default value is 0\Unit{pt}. +% +\EndIndex{PLength}{toaddrindent}% + + +\begin{Declaration} + \Variable{backaddress}\\ + \Variable{backaddressseparator}\\ + \PLength{backaddrheight} +\end{Declaration} +\BeginIndex{Variable}{backaddress}\BeginIndex{Variable}{backaddressseparator}% +\BeginIndex{PLength}{backaddrheight}% +When using window envelopes sender's address is often included within +the window. This information, called return address, is placed at the +top of the window above addressee and dispatch type information, +separated by a horizontal rule and set at a smaller font size. Variable +\Variable{backaddress} is usually built automatically from variables +\Variable{fromname} and \Variable{fromaddress}. During output double +backslashes within return address are replaced by content of variable +\Variable{backaddressseparator}, whose default value is a +comma followed by a white space. Return address field's height is +defined by pseudo length \PLength{backaddrheight}, which should be set +in a proper \File{lco} file. DIN and SN values are 5\Unit{mm}. Document +class options \Option{addrfield} and \Option{backaddress} control +whether return address is output or not (see +\autoref{sec:scrlttr2.headoptions}). +% +\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}% +An optional dispatch type can be output within address field above +the addressee by setting variable \Variable{specialmail}. Left and +right alignment are determined by pseudo lengths +\PLength{specialmailindent} and \PLength{specialmailrightindent}. +In the \File{lco} files provided by \KOMAScript{} +\PLength{specialmailindent} is set to rubber length \Macro{fill}, +while \PLength{specialmailrightindent} is set to 1\Unit{em}. Thus +dispatch type is printed 1\Unit{em} off address field's right margin. +% +\EndIndex{PLength}{specialmailindent}% +\EndIndex{PLength}{specialmailrightindent}% +\EndIndex{Variable}{specialmail}% + + +\begin{Declaration} + \Variable{toname}\\ + \Variable{toaddress} +\end{Declaration} +\BeginIndex{Variable}{toname}% +\BeginIndex{Variable}{toaddress}% +These two variables contain addressee's name and address as output in +the address field. Usually you won't access these variables manually, +but their values are taken from the argument to the +\Environment{letter}-environment\IndexEnv{letter}. Hints on +address formatting given in \autoref{sec:scrlttr2.firstHead} apply +here as well. +% +\EndIndex{Variable}{toname}% +\EndIndex{Variable}{toaddress}% + + +\begin{Declaration} + \Environment{letter}\OParameter{options}\Parameter{addressee} +\end{Declaration} +\BeginIndex{Env}{letter}% +As in standard letter class \Environment{letter} environment is the +key environment of \Class{scrlttr2}. A special \Class{scrlttr2} feature +are optional arguments to the \Environment{letter} environment. These +\PName{options} are executed via \Macro{KOMAoptions} command. +Mandatory \Environment{letter} environment argument is +\PName{addressee}. Addressee's parts have to be separated by double +backslashes. These parts are output on individual lines in the address +field. First part of \PName{addressee} is stored in variable +\Variable{toname}, while the rest is stored in variable +\Variable{toaddress} for further use. Vertical material such as +paragraphs or vertical space is not permitted within \PName{addressee}. The \Environment{letter} environment doesn't actually start +letter output. This is done by the \Macro{opening} command. +\EndIndex{Env}{letter}% + + +\begin{Declaration} + \Macro{AtBeginLetter}\Parameter{commands} +\end{Declaration} +\BeginIndex{Cmd}{AtBeginLetter}% +\LaTeX{} enables the user to declare \PName{commands} whose execution +is delayed until a determined point. Such points are called +\emph{hooks}. Known macros for using hooks are \Macro{AtBeginDocument} +and \Macro{AtEndOfClass}. Letter class \Class{scrlttr2} provides an +additional hook that can be used via macro \Macro{AtBeginLetter}. +Originally, hooks were provided for package and class authors, as they +are documented in \cite{latex:clsguide} only. But in letters there are +useful applications of \Macro{AtBeginLetter} as the following example +may illustrate: +% +\begin{Example} + Given one has to set multiple letters with questionnaires within one + document. Questions are numbered automatically within single letters + using a counter. Since, in contrast to page numbering, that counter is + not known by \Class{scrlttr2}, it wouldn't be reset at each start of a + new letter. Given each questionnaire contains ten questions, question~1 + would get number~11 in the second letter. Solution is to reset this + counter at the beginning of each new letter: +\begin{lstlisting} + \newcounter{Question} + \newcommand{\Question}[1]{% + \refstepcounter{Question}\par + \@hangfrom{\makebox[2em][r]{\theQuestion:~}}{#1}} + \AtBeginLetter{\setcounter{Question}{0}} +\end{lstlisting} + This way question~1 remains question~1, even in the 1001st letter. Of course + definitions like those mentioned above need to be stated either between + macros \Macro{makeatletter} and \Macro{makeatother} (see \cite{DANTE:FAQ}) + in letter declarations (see \autoref{sec:scrlttr2.document} and + \autoref{fig:scrlttr2.document}, \autopageref{fig:scrlttr2.document}), + in a unique package, or in an \File{lco}-file + (see \autoref{sec:lcoFile}). +\end{Example} +% +\EndIndex{Cmd}{AtBeginLetter}% + + +\subsection{The Sender's Extensions} +\label{sec:scrlttr2.locationField} + +Often, especially with business letters, the space for letter-head or page foot +seems to be too tight to put all you want to have set. To give more details +about the sender, often the space right beside the addressee's field is +used. In this manual this field is called \emph{sender's extension} + + +\begin{Declaration} + \PLength{locwidth} +\end{Declaration} +\BeginIndex{PLength}{locwidth}% +This pseudo length \PLength{locwidth} declares the width of the sender's +extensions. Its value is set typically 0\Unit{pt} in the predefined +\File{lco} files. This value takes on a special position. It does not mean +that the sender's extension has no width. Instead it's actual width is set +with the \Macro{opening} when paper width, address window width, and distance +between left border of the sheet and address window is given. With it the +option \Option{locfield} (see \autoref{sec:scrlttr2.headoptions}, +\autopageref{desc:scrlttr2.option.locfield}) is +taken into account. +% +\EndIndex{PLength}{locwidth} + + +\begin{Declaration} + \Variable{location} +\end{Declaration} +\BeginIndex{Variable}{location}% +The content of the sender's extension is determined by the variable +\Variable{location}. To set this variable's content it's allowed to use +formatting commands like \Macro{raggedright}. One has to consider that +depending on the use of the options \Option{fromalign} and \Option{fromlogo}, +a part of the space for the sender's extension may be in use already (see +\autoref{sec:scrlttr2.headoptions}, +\autopageref{desc:scrlttr2.option.fromalign} and +\autopageref{desc:scrlttr2.option.fromlogo}). +% +\begin{Example} + Given you like to put the names of your partners, manager, or court of + jurisdiction with the sender's extension, you can do this like: +\begin{lstlisting} + \KOMAoptions{locfield=wide} + \setkomavar{location}{\raggedright + \textbf{Partners:}\\ + \quad Hugo Mayer\\ + \quad Bernd Miller\\[1ex] + \textbf{Manager:}\\ + \quad Liselotte Mayer\\[1ex] + \textbf{Court of jurisdiction:}\\ + \quad Washington, DC + } +\end{lstlisting} + The option \Option{locfield=wide} is set to make the details fit in + horizontally. Sender details like those mentioned in the above example, + can be given together with the common sender address with your own + \File{lco}-file. +\end{Example} +% +\EndIndex{Variable}{location}% + + +\subsection{The Business Line} +\label{sec:scrlttr2.refLine} + +Especially with business letters, a line can be found that gives initials, dial +code, customer number, invoice number, or a reference to a previous letter. +In this manual this line is called \emph{business line}. The business line can +consist of more than just one line and is set only if one of those variables +mentioned above is given. Only those fields will be set that are given. To set +a seemingly empty field, one needs to give as value at least a white space or +\Macro{null}. If you want to have your letter without a business line, then +just the variable \Variable{date} will be set instead. + + +\begin{Declaration} + \PLength{refvpos} +\end{Declaration} +\BeginIndex{PLength}{refvpos}% +This pseudo length gives the distance between the upper border of the sheet +and the business line. It's value is set differently in the predefined +\File{lco} files. Typical values are between 80{,}5\Unit{mm} and +98{,}5\Unit{mm}. +% +\EndIndex{PLength}{refvpos}% + + +\begin{Declaration} + \PLength{refwidth} +\end{Declaration} +\BeginIndex{PLength}{refwidth}% +This pseudo length gives the width that is available for the business line. +The value is set typically to 0\Unit{pt} in the predefined \File{lco}-files. +This value has a special meaning. In no way does it determine that there is +no available width for the business line. Instead this value means that the +width will be calculated with the \Macro{opening}. Thus the calculated width +depends on the determination of the options \Option{refline} (see +\autoref{sec:scrlttr2.headoptions}, +\autopageref{desc:scrlttr2.option.refline}). +% +\EndIndex{PLength}{refwidth}% + + +\begin{Declaration} + \PLength{refaftervskip} +\end{Declaration} +\BeginIndex{PLength}{refaftervskip}% +This pseudo length gives the vertical space that has to be inserted beneath +the business line. The value is set in the predefined \File{lco} files. It +effects directly the textheight of the first page. A typical value is +something between one and two lines. +% +\EndIndex{PLength}{refaftervskip}% + + +\begin{Declaration} + \Variable{place}\\ + \Variable{placeseparator} +\end{Declaration} +\BeginIndex{Variable}{place}% +\BeginIndex{Variable}{placeseparator}% +As said before in the introduction of this paragraph, the business line can be +left out. This happens if all variables of the business line are empty with +the exception of the variable for the date. In this case, the content of +\Variable{place} and \Variable{placeseparator} will be set, followed by the +content of \Variable{date}. The predefined content of the +\Variable{placeseparator} is a comma followed by a white space. If this +variable \Variable{place} has no value then the hyphen remains unset also. +The predefined subject of \Variable{date} is \Macro{today} and depends on the +setting of the option \Option{numericaldate} (see +\autoref{sec:scrlttr2.headoptions}). +% +\EndIndex{Variable}{place}% +\EndIndex{Variable}{placeseparator}% + + +\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}% +These variables are typical for business line fields. To find out about their +meaning, see table~\ref{tab:scrlttr2.variables} on +\autopageref{tab:scrlttr2.variables}. Each variable covers a predefined label +that can be seen at \autoref{tab:scrlttr2.reflineTerm}. The field width that +belongs to each variable, adjusts itself automatically to its label and +content. +% +\begin{table} + \centering + \caption{predefined labels of the business line's typical variables. The + content of the macros depend on language.} + \begin{tabular}{lll} + \toprule + name & label & in english \\ + \midrule + \Variable{yourref} & \Macro{yourrefname} & Your reference \\ + \Variable{yourmail} & \Macro{yourmailname} & Your letter from \\ + \Variable{myref} & \Macro{myrefname} & Our reference \\ + \Variable{customer} & \Macro{customername} & Customer No.: \\ + \Variable{invoice} & \Macro{invoicename} & Invoice No.: \\ + \Variable{date} & \Macro{datename} & date \\ + \bottomrule + \end{tabular} + \label{tab:scrlttr2.reflineTerm} +\end{table} +% +\EndIndex{Variable}{yourref}% +\EndIndex{Variable}{yourmail}% +\EndIndex{Variable}{myref}% +\EndIndex{Variable}{customer}% +\EndIndex{Variable}{invoice}% +\EndIndex{Variable}{date}% + + + +\subsection{The Title and the Subject Line} +\label{sec;scrlttr2.titleSubject} +Business letters most often carry a subject line. The subject line indicates +in short of what that letter is about. Usually the subject should be short and +precise and not run across several lines. The letter may also carry a title. +Titles find usage with unregular letters like an Invoice or a Reminder. + + +\begin{Declaration} + \Variable{title} +\end{Declaration} +\BeginIndex{Variable}{title}% +With \Class{scrlttr2} a letter can carry an additional title. The title +becomes centered and set with letter size \Macro{LARGE} right +after and beneath the business line. +The predefined font setup for this element +(\Macro{normalcolor}\Macro{sffamily}\Macro{bfseries}) can be changed with +help of the interface described in \autoref{sec:maincls.font}. Font size +declarations are allowed. +\begin{Example} + Given you are to write a reminder. Thus you put the title: +\begin{lstlisting} + \setkomavar{title}{Reminder} +\end{lstlisting} + This way the addressee will recognize a reminder as such. +\end{Example} +% +\EndIndex{Variable}{title} + + +\begin{Declaration} + \Variable{subject}\\ + \Variable{subjectseparator} +\end{Declaration} +\BeginIndex{Variable}{subject}% +\BeginIndex{Variable}{subjectseparator}% +In case a subject should be set then you have to determine the variable +\Variable{subject} fit. Depending on what the option \Option{subject} is set +to a label can be put in front of the subject issue; also the vertical +position of the subject issue can be changed (see +\autoref{sec:scrlttr2.headoptions}, +\autopageref{desc:scrlttr2.option.subject}). To see the predetermined labels +look at \autoref{tab:scrlttr2.subjectTerm}. The predefined value of +\Variable{subjectseparator} is a colon followed by a white space. +% +\begin{table} + \centering + \caption{Predefined Labels Of The Subject's Variables.} + \begin{tabular}{lll} + \toprule + name & label \\ + \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} + +The subject line is set in a separate type face. To change this use +the user interface described in \autoref{sec:maincls.font}. For +the element \FontElement{subject}\IndexFontElement{subject} the +predetermined type face in \Class{scrlttr2} is +\Macro{normalfont}\Macro{normalcolor}\Macro{bfseries}. +\begin{Example} + Given you are a board member and want to write a letter to another member of + that board about a few internals of the organization. You want to + clarify with your subject line what this letter is all about, but without + labeling it thus. You can do this that way: +\begin{lstlisting} + \setkomavar{subject}[Subject ]{% + organization's internals} +\end{lstlisting} + or easier: +\begin{lstlisting} + \setkomavar{subject}[]{% + about organization's internals} +\end{lstlisting} + More than just that you may want to have set the subject line not only bold but + also with sans serif types: +\begin{lstlisting} + \addtokomafont{subject}{\sffamily} +\end{lstlisting} + As you can see, it's really easy to solve this problem. +\end{Example} +% +\EndIndex{Variable}{subject}% +\EndIndex{Variable}{subjectseparator}% + + +\subsection{Further Issues} +In this paragraph variables and settings are listed which couldn't be assigned +to any other paragraph of the letter declaration but somehow belong to this +chapter. + +\begin{Declaration} + \PLength{tfoldmarkvpos}\\ + \PLength{bfoldmarkvpos} +\end{Declaration} +\BeginIndex{PLength}{tfoldmarkvpos}% +\BeginIndex{PLength}{bfoldmarkvpos}% +The letterclass \Class{scrlttr2} all in all has 3 fold marks. The one in the +middle serves to halve the paper and is therefore printed always in the middle +of paper height. The position of the upper fold mark, seen from the upper +sheet's border, is determined by the pseudo length \PLength{tfoldmarkvpos}; the +lower one is determined by the pseudo length \PLength{bfoldmarkvpos}. All three +fold marks do not serve to exactly fold to a standard 3 panel letter +fold. Instead the idea is to have the paper folded so that the address +field is seen in the window of a window envelope. The settings therefore are +different in the predefined \File{lco}-files. A special case is +\Option{DINmtext}. In this case the envelope format C6/5 (also called +``C6~long'') is necessary. Letters produced in this format aren't compatible +with neither format C~5 nor C~4. +% +\EndIndex{PLength}{tfoldmarkvpos}% +\EndIndex{PLength}{bfoldmarkvpos}% + + +\begin{Declaration} + \PLength{foldmarkhpos} +\end{Declaration} +\BeginIndex{PLength}{foldmarkhpos}% +This pseudo length gives the distance between all of the three fold marks +and the sheet's left border. Usually it's 3{,}5\Unit{mm}. In case you work +with a printer with a broader unprintable left margin this value can be +changed in your own \File{lco}-file. The length of the upper and lower +fold mark is the same and 4\Unit{mm} long. The thickness of all three is +2\Unit{pt}. At the moment there are no plans to change this value. If the fold +marks will be set at all depends on the option \Option{foldmarks} (see +\autoref{sec:scrlttr2.headoptions}, +\autopageref{desc:scrlttr2.option.foldmarks}). +% +\EndIndex{PLength}{foldmarkhpos}% + + +\begin{Declaration} + \Variable{frombank} +\end{Declaration} +\BeginIndex{Variable}{frombank}% +This variable at the moment takes on a special position. Not in use internally +up to this moment it can come into usage if one e.g. wants to have set his +bank account within the sender's extension field or the footer. +% +\EndIndex{Variable}{frombank}% + + +\begin{Declaration} + \Macro{nexthead}\Parameter{construction}\\ + \Macro{nextfoot}\Parameter{construction} +\end{Declaration} +\BeginIndex{Cmd}{nexthead}% +\BeginIndex{Cmd}{nextfoot}% +The possibilities that are offered with variables and options in +\Class{scrlttr2} should be good enough in most of the cases to create +letter-heads and foots for those pages that follow the first letter page. This +even more since you can additionally change the sender's statements with +\Macro{markboth} and \Macro{markright} that \Class{scrlttr2} uses to create +the letter head. With the term ``follow up pages'' in this manual all pages +are meant excepted the first letter page. The commands +\Macro{markboth}\IndexCmd{markboth} and \Macro{markright}\IndexCmd{markright} +can be used all together with pagestyle\Index{page style} +\PValue{myheadings}\IndexPagestyle{myheadings}. If the package +\Package{scrpage2}\IndexPackage{scrpage2} is used this, of course, is valid +also for pagestyle \PValue{scrheadings}\IndexPagestyle{scrheadings}. Then too +the command \Macro{markleft}\IndexCmd{markleft} is available. + +At times one wants to have more freedom with creating letter head or foot of +the follow up pages. Then one has to let go of the possibilities of predefined +letter heads or foots, that could have been chosen via option. Instead one is +free to create it just the way one wants to have them set. Therefore one is to +create the desired \PName{construction} with use of the command +\Macro{nexthead} or \Macro{nextfoot} respectively. Within \Macro{nexthead} and +\Macro{nextfoot} for example you can have several boxes side by side or one +beneath the other by use of \Macro{parbox}-command (see +\cite{latex:usrguide}). With this a more advanced user should have no problems +with creating letter heads of foots of his own. With \PName{construction} of +course you can make use of the variables of \Macro{usekomavar} too. +% +\EndIndex{Cmd}{nexthead}% +\EndIndex{Cmd}{nextfoot}% + + + +\section{The Text} +\label{sec:scrlttr2.text} + +In contrast to an article, a report or a book the letter has +no chapter or section structure. +Even float environments with tables and figure are unusual. +Therefore a letter has no table of contents, lists of +figures and tables, index, bibliography, glossary or other things. +The letter texts mainly consist of an opening and the main +text. Thereupon follows the signature, a postscript +and different listings. + + +\subsection{The Opening} +\label{sec:scrlttr2.opening} + +\begin{Explain} +In the early days of computer generated letters the programs didn't +have many capabilities, therefore the letters seldom had +an opening. +Today the capabilities have been enhanced. Thus personal +openings are very common, even in mass-production +advertising letters. +\end{Explain} + +\begin{Declaration} + \Macro{opening}\Parameter{opening} +\end{Declaration} +\BeginIndex{Cmd}{opening}% +This is the most important command in \Class{scrlttr2}. +For the user it seems that only the opening will be typeset, +but the command also typesets the folding marks, headings, +address field, subject, the page foot and others. +That means: without \Macro{opening} there is no letter. +% +\EndIndex{Cmd}{opening}% + +\subsection{Footnotes} +\label{sec:scrlttr2.footnotes} + +In letters footnotes should be used more sparingly than in normal +documents. However, \Class{scrlttr2} is equipped with all +mechanisms mentioned in \autoref{sec:maincls.footnotes} for +the main document classes. Therefore it will not be discussed +here again. + +\subsection{Lists} +\label{sec:scrlttr2.lists} + +Lists have the same validity in letters as in normal documents. +Thus \Class{scrlttr2} provides the same possibilities +as mentioned in \autoref{sec:maincls.lists} for the +main document classes. + +\subsection{Margin Notes} +\label{sec:scrlttr2.marginNotes} + +Margin notes are quite uncommon in letters. Therefore the +option \Option{mpinclude} is not supported by \Class{scrlttr2}. +However, \Class{scrlttr2} is equipped with all +mechanisms mentioned in \autoref{sec:maincls.marginNotes} for +the main document classes. Therefore it will not be discussed +here again. + +\subsection{Text Emphasis} +\label{sec:scrlttr2.emphasis} + +The distinction of text has the same importance in letters as in +other documents. Thus the same rules apply that means: emphasize +text sparingly. Even letters should be readable and a letter +where each word is typeset in an other font is indeed unreadable. + +The class \Class{scrlttr2} is equipped with all +mechanisms mentioned in \autoref{sec:maincls.emphasis} for +the main document classes. Therefore it will not be discussed +here again. + +\section{The Closing Part} +\label{sec:scrlttr2.backend} + +A letter always ends with a closing phrase. +Even computer generated letters without signature +have this phrase. +Sometimes this is a sentence like ``This letter has been +generated automatically.''. +Sometimes a sentence like this will even be used as signature. +Thereupon can follow a postscript and some listings. + +\subsection{Closing} +\label{sec:scrlttr2.closing} + +The closing consists of three parts. Besides the closing phrase +there are a hand-written inscription and the signature, an explanation +for the inscription. + +\begin{Declaration} + \Variable{signature} +\end{Declaration} +\BeginIndex{Variable}{signature}% +The variable \Variable{signature} includes an explanation +for the inscription. Their content is predefined as +\Macro{usekomavar}\PParameter{fromname}. +The explanation can consist of multiple lines. The lines +should be separated by a double backslash. Paragraphs +in the explanation are not permitted. +% +\EndIndex{Variable}{signature}% + +\begin{Declaration} + \Macro{closing}\Parameter{closing phrase} +\end{Declaration} +\BeginIndex{Cmd}{closing}% +The command \Macro{closing} does not only typeset the +closing phrase, but moreover it typesets the phrase followed +by a vertical space and the content of the variable \Variable{signature}. +The closing phrase can consists of multiple lines, but +paragraphs are not permitted. +% +\EndIndex{Cmd}{closing}% + + +\begin{Declaration} + \PLength{sigindent}\\ + \PLength{sigbeforevskip}\\ + \Macro{raggedsignature} +\end{Declaration} +\BeginIndex{PLength}{sigindent}% +\BeginIndex{PLength}{sigbeforevskip}% +\BeginIndex{Cmd}{raggedsignature}% +Closing phrase, inscription and signature will be typeset +in a box. The width of the box is determined by the length +of the longest line of the closing phrase or signature. + +The box will be typeset with indentation of the length +in pseudo-length \PLength{sigindent}. In the default +\File{lco} file this length is set to 0\Unit{mm}. + +The command \Macro{raggedsignature} defines the alignment +inside the box. In the default \File{lco} file the command +is either defined as \Macro{centering} (all besides \Option{KOMAold}) +or \Macro{raggedright} (\Option{KOMAold}). +In order to get 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}). + +Between closing phrase and signature a vertical space is +inserted. The height of this space is defined in the pseudo-length +\PLength{sigbeforevskip}. It defaults to 2 lines. +In this space you can write your inscription. +\begin{Example} + You are writing as directorate of a society a letter + to all members. + Moreover you want in one respect elucidate that you are writing + in the name of the board of directors and on the other hand + you want indicate your position in the board of directors. +\begin{lstlisting} + \setkomavar{signature}{John McEnvy\\ + {\small (Vice-President ``The Other Society'')}} + \closing{Regards\\ + (for the board of directors)} +\end{lstlisting} + Certainly you can set the variable \Variable{signature} + in your private \File{lco} file. + Usually you should prefer to define the variable in the + letter preamble. +\end{Example} +% +\EndIndex{PLength}{sigindent}% +\EndIndex{PLength}{sigbeforevskip}% +\EndIndex{Cmd}{raggedsignature}% + +\subsection{Postscript, Carbon Copy and Enclosures} +\label{sec:scrlttr2.afterClosing} + +After the closing can follow some other statements. +Besides the postscript there are the distribution list +of carbon copies and the reference to enclosures. + +\begin{Explain}% +\begin{Declaration} + \Macro{ps} +\end{Declaration}% +\BeginIndex{Cmd}{ps}% +In the time when letters were written by hand it was quite usual +to use a postscript because this was the only way to add +information which one had forget to mention in the main part of +the letter. Of course, in letters written with \LaTeX{} you can +insert additional lines easily. Nevertheless, it is still popular +to use the postscript. It gives a good possibility to underline +again the most important or sometimes the less important things of +this letter. +% +\end{Explain} +This instruction just switches to the postscript. +Therefore a new paragraph begins and a vertical distance +-- usually below the signature -- is inserted. +The command \Macro{ps} is followed by normal text. If you +want the postscript to be introduced with the acronym "PS:" you +have to type the acronym inside the command. By the way, this +acronym is been written without a full stop. The acronym is +neither be typeset automatically nor optionally by the class +\Class{scrlttr2}. +% +\EndIndex{Cmd}{ps} + + +\begin{Declaration} + \Macro{cc}\Parameter{distribution list}\\ + \Variable{ccseparator} +\end{Declaration} +\BeginIndex{Cmd}{cc}% +\BeginIndex{Variable}{ccseparator}% +With the command \Macro{cc} it is possible to typeset a +\PName{distribution list}. +The command gets the \PName{distribution list} as argument. +If the content of the variable \Variable{ccseparator} +isn't empty then the name and the content of the variable +is inserted prior to \PName{distribution list}. +In this case the \PName{distribution list} will be indented +appropriately. +It is a good idea to set the \PName{distribution list} +\Macro{raggedright} and to separate the lines by a double backslash. +\begin{Example} +You want to indicate that your letter is addressed to all members of a +society and to the board of directors: +\begin{lstlisting} + \cc{% + the board of directors\\ + all society members\\ +\end{lstlisting} + Write this instruction below the \Macro{closing}-instruction + from the previous example or below a possible postscript. +\end{Example} +A vertical space is inserted automatically before the distribution +list. +% +\EndIndex{Cmd}{cc}% +\EndIndex{Variable}{ccseparator}% + + +\begin{Declaration} + \Macro{encl}\Parameter{enclosures}\\ + \Variable{enclseparator} +\end{Declaration} +\BeginIndex{Cmd}{encl}% +\BeginIndex{Variable}{enclseparator}% +\PName{Enclosures} have the same structure as the distribution list. +There is just a single difference, the enclosures starts with +the name and the content of the variable \Variable{enclseparator}. +% +\EndIndex{Cmd}{encl}% +\EndIndex{Variable}{enclseparator}% + + +\section{Language Support} +\label{sec:scrlttr2.languages} + +The document class \Class{scrlttr2} supports many languages. These +are German \PValue{ngerman} (\PValue{german} for old German +orthography), \PValue{austrian} for Austrian, English +(\PValue{english} without specification whether American or British +should be used, \PValue{american} and \PValue{USenglish} for American, +\PValue{british} and \PValue{UKenglish} for British), French, Italian, +Spanish, Dutch and Croatian. + +\subsection{Language Selection} +\label{sec:scrlttr2.switchLanguage} +\Index[indexmain]{language selection} + +If the package \Package{babel}\IndexPackage{babel} is used one can +switch between languages with the command +\Macro{selectlanguage}\Parameter{language}. Other packages like +\Package{german}\IndexPackage{german} and +\Package{ngerman}\IndexPackage{ngerman} also define this command. As +a rule the language selection takes place when such a package is +loaded. + +There is one thing more to mention about language packages. The +package \Package{french}\IndexPackage{french} re-defines not only the +terms of \autoref{sec:scrlttr2.languageTerms}. The package even +re-defines the command \Macro{opening}, since it assumes that the +definition of the standard \Class{letter} is used. Therefore the +package \Package{french} spoils the definition of the \Class{scrlttr2} +class. I think this is a fault of the \Package{french} package. + +If one utilizes the \Package{babel}\IndexPackage{babel} package in +order to switch to language \PValue{french} and the package +\Package{french}\IndexPackage{french} is installed too, then the same +problems occur since \Package{babel} employs definitions from the +\Package{french} package. If the package \Package{french} is not +installed then there are no problems. + +Additionally there is no problem if for \Package{babel} instead of +\PValue{french} other languages like \PValue{acadian}, +\PValue{canadien}, \PValue{francais} or \PValue{frenchb} are chosen. +Therefore I recommend +\Macro{usepackage}\PValue{[frenchb]}\PParameter{babel} in order to +select french. + +Other languages can cause these problems too. Currently there are no +problems known with the \Package{babel} package for the german +language and the various english language selections. + +\iftrue +% You may use this paragraphs to improve page break: +Most \Package{babel} features at \Package{babel} or original +language definition files of \Package{babel} (e.g. \File{frenchb.ldf}), +which may cause problems with other packages or classes, can be +switched off. This is a great advantage of babel. So if you have a +problem, try to switch of such features or ask the authors of +\Package{babel}. + +There are no problems known using the +\Package{german}\IndexPackage{german} or +\Package{ngerman}\IndexPackage{ngerman} package for german selection +with old or new orthography. +\fi + +\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} +\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} If +one switches the language then using these commands the language-terms +from \autoref{sec:scrlttr2.languageTerms} are re-defined. +If the used language selection scheme does not support this +then the commands above can be used directly. +% +\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} + + +\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}% +The date\Index{Date} in its numerical representation +(see option \Option{numericaldate} in +\autoref{sec:scrlttr2.headoptions}) will be written depending +on the selected language. Some examples can be found in +\autoref{tab:date}. +% +\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}% + +\begin{table}[t] + \centering + \caption{Language-dependent forms of the date} + \begin{tabular}{ll} + \toprule + Command & Date example \\ + \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} +% + + +\subsection{Language-Dependent Terms}% +\label{sec:scrlttr2.languageTerms}% +\Index[indexmain]{language-dependent terms}% +\Index[indexmain]{terms, language-dependent} + +As usual in \LaTeX{}, the language-dependent terms are defined +by commands. These commands are re-defined when one switches +the language. + +\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} The commands above contain the +language-dependent terms. These definitions can be modified in +order to support a new language or for private customization. +How this can be done is described in +\autoref{sec:scrlttr2.defLanguageTerms}. +The definitions become active at \Macro{begin}\PParameter{document}. +Therefore they are not available in the \LaTeX{} preamble. +Thus they even can not be re-defined there. +In \autoref{tab:scrlttr2.languageTerms} the default settings +for \Option{english} and \Option{ngerman} can be found. +% +\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} + +\begin{table}[!t] + \begin{minipage}{\textwidth} + \centering + \caption{Default settings for languages \Option{english} + and \Option{ngerman}} + \begin{tabular}{lll} + \toprule + Command & \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} + \label{tab:scrlttr2.languageTerms} + \deffootnote{1em}{1em}{\textsuperscript{1}}% + \footnotetext[1000]{Normally these terms are defined by language packages + like \Package{babel}. At this case they are not redefined by + \Class{scrlttr2} and may differ from the table above.} + \end{minipage} +\end{table} +% + +\subsection{Defining Language Terms} +\label{sec:scrlttr2.defLanguageTerms} +\Index[indexmain]{language definition} +\begin{Explain} + Normally one has to change or define the language terms of + \autoref{sec:scrlttr2.switchLanguage} in a way that additionally + to the available terms even the new or re-defined terms are + defined. Some packages like \Package{german}\IndexPackage{german} or + \Package{ngerman}\IndexPackage{ngerman} re-define those settings + when they are loaded. These packages re-define the definitions in a + way that spoils all previous private settings. That is also the + reason, why \Class{scrlttr2} delays its own changes with + \Macro{AtBeginDocument} until + \Macro{begin}\PParameter{document}. The user can also use + \Macro{AtBeginDocument} or re-define the language terms after + \Macro{begin}\PParameter{document}. The class \Class{scrlttr2} + provides some commands for defining language terms. +\end{Explain} + +\begin{Declaration} + \Macro{providecaptionname}% + \Parameter{language}\Parameter{term}\Parameter{definition}\\ + \Macro{newcaptionname}% + \Parameter{language}\Parameter{term}\Parameter{definition}\\ + \Macro{renewcaptionname}% + \Parameter{language}\Parameter{term}\Parameter{definition} +\end{Declaration} +\BeginIndex{Cmd}{providecaptionname}% +\BeginIndex{Cmd}{newcaptionname}% +\BeginIndex{Cmd}{renewcaptionname}% +Using one of the commands above the user can assign +a \PName{definition} for a \PName{language} to a \PName{term} . +The \PName{term} is always a command. The commands differ +dependent from whether a \PName{term} is already define +in \PName{language} or not. + +If \PName{language} is not defined then \Macro{providecaptionname} +writes only a message in the log-file. This happens only +once for each language. +If \PName{language} is defined but \PName{term} isn't defined +yet, then it will be defined using \PName{definition}. +The \PName{term} will not be re-defined if the \PName{language} +already has a definition. Instead of this a log-message will be written. + +The command \Macro{newcaptionname} has a slightly different behaviour. +If the \PName{language} is not yet defined then a new language +command (see \autoref{sec:scrlttr2.switchLanguage}) +will be created and a log-message will be written. +If \PName{term} is not yet defined in \PName{language} then +it will be defined with \PName{definition}. +If \PName{term} already exists in \PName{language} then this +results in an error message. + +The command \Macro{renewcaptionname} requires an existing +definition of \PName{term} in \PName{language}. +In this case \PName{term} for \PName{language} will be re-defined +according to \PName{definition}. If neither \PName{language} +nor \PName{term} exist or \PName{term} is unknown in a defined +language then a error message will be given. + +The class \Class{scrlttr2} itself employs \Macro{providecaptionname} +in order to define the commands in +\autoref{sec:scrlttr2.languageTerms}. +\begin{Example} + If you prefer ``Your message of'' instead of ``Your letter of'' + you have to re-define the definition of \Macro{yourmailname}. +\begin{lstlisting} + \renewcaptionname{english}{\yourmailname}{% + Your message of} +\end{lstlisting} + + Since only available terms can be re-defined you have to + delay the command until \Macro{begin}\PParameter{document} + using \Macro{AtBeginDocument}. + Furthermore you will get an error message if there is no + package used that defines a language selection command + for \PName{english}. +\end{Example} +% +\EndIndex{Cmd}{providecaptionname}% +\EndIndex{Cmd}{newcaptionname}% +\EndIndex{Cmd}{renewcaptionname}% + +\section{Address Files and Circular Letters} +\label{sec:scrlttr2.addressFile} + +When people write circular letters they mostly dislike to +type the many addresses. +The class \Class{scrlttr2} and its predecessor \Class{scrlettr} +as well provide basic support for it. +Currently there are plans for a much enhanced support. + +\typeout{^^J--- Ignore underfull and overfull \string\hbox:}% +\begin{Declaration} + \Macro{adrentry}\Parameter{Lastname}\Parameter{Firstname}% + \Parameter{Address}\Parameter{Telephone}\Parameter{F1}\Parameter{F2}% + \Parameter{Comment}\Parameter{Key} +\end{Declaration}% +\typeout{^^J--- Don't ignore underfull and overfull \string\hbox:} +\BeginIndex{Cmd}{adrentry} +\label{decl:adrentry} + +The class \Class{scrlttr2} supports to use address files. +These address files contain address entries. +Each entry is an \Macro{adrentry} command with eight parameters as +can be seen above. +The file extension of the address file has to be \File{.adr}. +\begin{lstlisting} + \adrentry{McEnvy} + {Flann} + {Main Street 1\\ Glasgow} + {123 4567} + {male} + {} + {niggard} + {FLANN} +\end{lstlisting} +The 5\textsuperscript{th} and 6\textsuperscript{th} element, \PValue{F1} and +\PValue{F2}, can be used freely, for example for the gender, the academic +grade, the birthday or the date the person has joined a society. The last +parameter \PName{Key} should only consist of uppercase letters in order to not +interfere with other \TeX{} or \LaTeX{} commands. + +\begin{Example} + Mr.\,McEnvy is one of your most important business partners, + but every day you get a reclamation from him. + Before long you don't want to bother typing his boring + address again and again. + Here \Class{scrlttr2} can help. + All your business partners have an entry in your + \File{partners.adr} address file. + If you now have to answer Mr.\,McEnvy again, then you + can save typing as can be seen below: +\begin{lstlisting} + \input{partners.adr} + \begin{letter}{\FLANN} + Your today's reclamation \dots + \end{letter} +\end{lstlisting} + Your \TeX{} system must be configured to have access to your + address file. Without access the \Macro{input} command results + in an error. You can either put your address file where you + are running \LaTeX{} or configure your system to find + the file in a special directory. +\end{Example} +% +\EndIndex{Cmd}{adrentry} + +\typeout{^^J--- Ignore underfull and overfull \string\hbox:}% +\begin{Declaration} + \Macro{addrentry}\Parameter{Lastname}\Parameter{Firstname}% + \Parameter{Address}\Parameter{Telephone}\Parameter{F1}\Parameter{F2}% + \Parameter{F3}\Parameter{F4}\Parameter{Key} +\end{Declaration}% +\typeout{^^J--- Dont't ignore underfull and overfull \string\hbox:} +\BeginIndex{Cmd}{addrentry}% +Over the years people objected that the \Macro{adrentry} has only +two free parameters. Since \TeX{} supports at maximum nine +parameters per command, there now exists a new command called +\Macro{addrentry}, note the additional ``d''. +This command supports four freely definable parameters, that +means one parameter more than \Macro{adrentry}, since the comment +parameter has been replaced with the fourth free parameter. +The numbers of parameters is the only difference between +both commands. Thus you can mix both entry types in +one address file. + +There are some packages which can employ \File{adr} files. +For example \Package{adrconv} by Axel Kielhorn can be used +to create address lists from \File{adr} files. +But it has currently no support for command \Macro{addrentry}. +The only choice is to extent the package yourself. +% +\EndIndex{Cmd}{addrentry} + +Besides the simple access to addresses the address files can +be easily used in order to write circular letters. +Thus there is no complicated data-base system and its connection +to \TeX{} required. +% +\begin{Example} + Suppose you are member of a society and want write a invitation + for the next general meeting to all members. +\begin{lstlisting} + \documentclass{scrlttr2} + \begin{document} + \renewcommand*{\adrentry}[8]{ + \begin{letter}{#2 #1\\#3} + \opening{Dear members,} + our next general meeting will be on monday + August 12, 2002. The following topics are \dots + \closing{Regards,} + \end{letter} + } + \input{members.adr} + \end{document} +\end{lstlisting} + If the address file contains \Macro{addrentry} statements + too, then even an additional definition for \Macro{addrentry} + is required. +\begin{lstlisting} + \renewcommand*{\addrentry}[9]{ + \begin{letter}{#2 #1\\#3} + \opening{Dear members,} + our next general meeting will be on Monday + August 12, 2002. The topics of the meeting are \dots + \closing{Regards,} + \end{letter} + } +\end{lstlisting} + In this simple example the extra freely definable parameter + is not used. +\end{Example} + +With some additional programming one can let the contents +depend on the address data. For this the free parameters +can be used. + +\begin{Example} + Suppose the fifth parameter of the \Macro{adrentry} command + contains the gender of a member (\PValue{m/f}). + The sixth parameter contains what member subscription + has still not been discharged by the member. + If you would like to write a more personal reminder + then the next example can help you. +\begin{lstlisting} + \renewcommand*{\adrentry}[8]{ + \ifcase #6 + % #6 greater than 0? + % this selects all members with open subscription + \else + \begin{letter}{#2 #1\\#3} + \if #5m \opening{Dear Mr.\,#2,} \fi + \if #5f \opening{Dear Mrs.\,#2,} \fi + + Unfortunately we have to remind you that you have + still not paid the member subscription for this + year. + + Please remit EUR #6 to the account of the society. + \closing{Regards,} + \end{letter} + \fi + } +\end{lstlisting} +\end{Example} +As you can see the letter text can be made more personal +depending on attributes of the letter's addressee. +The number of attributes is only restricted by number of the +two free parameters of the \Macro{adrentry} command or +four free parameters of the \Macro{addrentry} command. + +\begin{Declaration} + \Macro{adrchar}\Parameter{initial letter}\\ + \Macro{addrchar}\Parameter{initial letter} +\end{Declaration} +\BeginIndex{Cmd}{adrchar}\BeginIndex{Cmd}{addrchar} +\Index[indexmain]{address list}\Index[indexmain]{telephone list}% +As already mentioned above it is possible to create address +and telephone lists using \File{adr} files. +For that the additional package \Package{adrconv} by +Axel Kielhorn (see \cite{package:adrconv}) is needed. +This package contains interactive \LaTeX{} documents +which help to create those lists. + +The address files have to be sorted already in order to +get sorted lists. It is recommended to sort and separate the +entries by the initial letter of \PName{Lastname}. +As a separator the commands \Macro{adrchar} and \Macro{addrchar} +can be used. These commands will be ignored if the address files +are utilized in \Class{scrlettr2}. +% +\begin{Example} + Suppose the following address file: +\begin{lstlisting} + \adrchar{A} + \adrentry{Angel}{Gabriel} + {Cloud 3\\12345 Heaven's Realm} + {000\,01\,02\,03}{}{}{archangel}{GABRIEL} + \adrentry{Angel}{Michael} + {Cloud 3a\\12345 Heaven's Realm} + {000\,01\,02\,04}{}{}{archangel}{MICHAEL} + \adrchar{K} + \adrentry{Kohm}{Markus} + {Fichtenstra\ss e 63\\68535 Edingen-Neckarhausen} + {+49~62\,03~1\,??\,??}{}{}{no angel at all} + {KOMA} +\end{lstlisting} + This address file can be treated with \File{adrdir.tex} of the + \Package{adrconv} package \cite{package:adrconv}. + The result should look like this: + \begin{center} + \setlength{\unitlength}{1mm} + \begin{picture}(80,57) + \put(0,57){\line(1,0){80}} + \put(0,3){\line(0,1){54}} + \put(80,3){\line(0,1){54}} + \thicklines + \put(10,42){\line(1,0){60}} + \put(70,45){\makebox(0,0)[r]{\textsf{\textbf{A}}}} + \put(10,23){\makebox(0,20)[l]{\parbox{5cm}{\raggedright + \textsc{Angel}, Gabriel\\\quad\small Cloud 3\\ + \quad 12345 Heaven's Realm\\ + \quad (archangel)}}} + \put(70,23){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\ + \small~\\\textsc{gabriel}\\000\,01\,02\,03}}} + \put(10,4){\makebox(0,20)[l]{\parbox{5cm}{\raggedright + \textsc{Angel}, Michael\\\quad\small Cloud 3a\\ + \quad 12345 Heaven'S Realm\\ + \quad (archangel)}}} + \put(70,4){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\ + \small~\\\textsc{michael}\\000\,01\,02\,04}}} + \qbezier(0,3)(10,6)(40,3)\qbezier(40,3)(60,0)(80,3) + \end{picture} + \end{center} + The letter in the page heading is created by the + \Macro{adrchar} command, see the definition in \File{adrdir.tex}. +\end{Example} +More about the \Package{adrconv} package can be found in its +documentation. There you should even find information if +the version of \Package{adrconv} supports already the +\Macro{addrentry} and \Macro{addrchar} commands. +Former versions only know the commands \Macro{adrentry} and +\Macro{adrchar}. +% +\EndIndex{Cmd}{adrchar}\EndIndex{Cmd}{addrchar}% + + +\section{From \Class{scrlettr} to \Class{scrlttr2}} +\label{sec:scrlttr2.fromscrlettr} + +The first step in the conversion of an old letter written with +the \Class{scrlettr} class is to load the appropriate +\File{lco} file using option \Option{KOMAold} at +\Macro{documentclass}. +Thereupon most commands of the old class should work. +But you will encounter some differences in the output, since +the page layout of both classes is not the same. +The reason is that the calculation of the type-area in \Class{scrlettr} +has some minor bugs. For example the position of the folding marks +used to depend on the height of the page heading, which again has +dependence to the font size. That was an unambiguous design fault. + +There is no compatibility regarding the defined lengths +in \Class{scrlettr}. +If one has changed the page layout of \Class{scrlettr} +then those statements have to be deleted or commented out. +In some cases the modification of length can cause +an error, since this length is not defined anymore. +You should delete or comment these modifications as well. + +The old letter example: +\begin{lstlisting} + \documentclass[10pt,KOMAold]{scrlttr2} + \name{\KOMAScript{} team} + \address{Class Alley 1\\12345 \LaTeX{} City} + \signature{Your \KOMAScript{} team} + \begin{document} + \begin{letter}{\KOMAScript{} users\\ + Everywhere\\world-wide} + \opening{Dear \KOMAScript{} users,} + the \KOMAScript{} team is proud to announce \dots + \closing{Happy \TeX{}ing} + \end{letter} + \end{document} +\end{lstlisting} +works as expected only by option \Option{KOMAold}. + + +The next step is that the layout of the old letter will +not be used anymore, but the old commands should still +be available. +If for example one wants the layout of \Option{DIN} +then this option can be given in \Macro{documentclass}, +but is has to be specified \emph{after} the option +\Option{KOMAold}. + +\begin{lstlisting} + \documentclass[10pt,KOMAold,DIN]{scrlttr2} + \name{\KOMAScript{} team} + \address{Class Alley 1\\12345 \LaTeX{} City} + \signature{Your \KOMAScript{} team} + \begin{document} + \begin{letter}{\KOMAScript{} users\\ + Everywhere\\world-wide} + \opening{Dear \KOMAScript{} users,} + the \KOMAScript{} team is proud to announce \dots + \closing{Happy \TeX{}ing} + \end{letter} + \end{document} +\end{lstlisting} +Using more options this way you have further influence on the +layout, but a more inherent change is really recommended. + +That is to replace all old commands with its new representations +and omit the option \Option{KOMAold}. +It can help to read the contents of \File{KOMAold.lco}. +In that file the old commands are defined using the new ones. + +\begin{lstlisting} + \documentclass{scrlttr2} + \setkomavar{fromname}{\KOMAScript{} team} + \setkomavar{fromaddress}{Class Alley 1\\ + 12345 \LaTeX{} City} + \setkomavar{signature}{Your \KOMAScript{} team} + \let\raggedsignature=\raggedright + \begin{document} + \begin{letter}{\KOMAScript{} users\\ + Everywhere\\ + world-wide} + \opening{Dear \KOMAScript{} users,} + the \KOMAScript{} team is proud to announce \dots + \closing{Happy \TeX{}ing} + \end{letter} + \end{document} +\end{lstlisting} +This example shows also the possibility to change the +alignment of the signature by re-defining the command +\Macro{raggedsignature}. +This is recommended if the width of the real signature +is greater than the signature-definition of the command +\Macro{setkomavar}\PParameter{signature}\PParameter{\dots}. +% +\EndIndex{Class}{scrlttr2}\EndIndex{}{Letters} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../guide" +%%% End: + +% LocalWords: scrlttr simpleSwitchValues afteropening beforeopening lcoFile +% LocalWords: locfield 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 new file mode 100644 index 00000000000..5c85e5779db --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrpage2.tex @@ -0,0 +1,1396 @@ +% ====================================================================== +% scrpage2.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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. +% ---------------------------------------------------------------------- +% scrpage2.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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 scrpage2 of the KOMA-Script guide +% Maintained by Jens-Uwe Morawski (and sometimes Markus Kohm) +% +% ---------------------------------------------------------------------- +% +% Kapitel ĂĽber scrpage2 in der KOMA-Script-Anleitung +% Verwaltet von Jens-Uwe Morawski (unterstĂĽtzt von Markus Kohm) +% +% ============================================================================ + +\ProvidesFile{scrpage2.tex}[2006/07/01 KOMA-Script guide (chapter:scrpage2)] +% date of translated german file: 2004/08/10 + +\chapter{Adapt Head and Foot with \Package{scrpage2}} +\labelbase{scrpage} + +% +\BeginIndex{Package}{scrpage2}% +% +In \autoref{cha:typearea} this guide referenced a package +to customise the head and foot lines of a document. +This package \Package{scrpage2}, the successor of \Package{scrpage}, +enables the user to create versatile head and foot layouts with +less effort, due to a simple but powerful user interface. While +\Package{scrpage} is obsolete since 2001, this documentation only describes +\Package{scrpage2}. + +\begin{Explain} + The package's focus is its good integration into the whole + \KOMAScript{}-bundle, thus it extents the base functionality of + \KOMAScript{} perfectly. It is very flexible in either its layout and + usage, compared to other packages often to be seen like + \Package{fancyhdr}\cite{package:fancyhdr}. You don't need to use + \Package{scrpage2} with \KOMAScript{}, the package can be used in any other + document-class environment. +\end{Explain} + + +\section{Basic Functionality}\label{sec:scrpage.basics} + +\begin{Explain}% Introduction to headings + \LaTeX{}'s head and foot mechanism is a little complicated, thus a + brief view in its depth is needed. + Basically the \LaTeX{} kernel defines the chief page styles + \PValue{empty} and \PValue{plain}. + The latter writes only a page number in the foot, in contrast + using \PValue{empty} results in blank head and foot. + Besides, many document classes provide the style + \PValue{headings}, which allows more complex style settings. + The \PValue{headings} style often has a subvariant, the + \emph{my}-variant. In contrast to the \PValue{headings} style + the \PValue{myheadings} switches off the automatic update + of the running head, thus it is the users task keeping headings + in sync with the current document content. + A more detailed discription can be found in + \autoref{sec:maincls.pageStyle}. + + Another important note is that some \LaTeX{} commands + switch to the pagestyle \PValue{plain} for the current page, + independent from what pagestyle was choosen by the author, + consequently the document needs an appropriate + \PValue{plain} pagestyle. + + Therefore \Package{scrpage2} defines its own \PValue{plain} + and \PValue{headings} page styles, named \PValue{scrplain} + and \PValue{scrheadings}. + The manual activation of \PValue{scrplain} is not necessary, + since the activation of \PValue{scrheadings} takes care of it + automatically. + Only if one wants to use his own page style in combination + with \PValue{scrplain}, the page style \PValue{scrplain} has to + be activated first, i.e. \Macro{pagestyle}\Parameter{scrplain}% + \Macro{pagestyle}\Parameter{personalPagestyle}. +\end{Explain} + +The original \PValue{headings} page style of the document class is available +as \PValue{useheadings}. This re-definition is required since +\Package{scrpage2} uses another way to deal with automatic and manual +headings. This way is more flexible and allows configurations usually +difficult to implement for unexperienced users. The required commands to work +with the \Package{scrpage2} implementation are introduced at the end of +\autoref{sec:scrpage.basics.buildIn} and the begin of +\autoref{sec:scrpage.basics.mark}. + +\subsection{Predefined Page Styles}\label{sec:scrpage.basics.buildIn} +% \lehead ... +% scrheadings +% \headmark \pagemark + +\begin{Declaration} + \PValue{scrheadings}\\ + \PValue{scrplain} +\end{Declaration}% +\BeginIndex{Pagestyle}{scrheadings}\BeginIndex{Pagestyle}{scrplain}% +\Index{page style}% +% +Package \Package{scrpage2} delivers an own pagestyle, named +\PValue{scrheadings}. +The command \Macro{pagestyle}\PParameter{scrheadings} activates +this page style, likewise +after activation an appropriate \PValue{plain} pagestyle +is available. +In this case \emph{appropriate} meens that the \PValue{plain} +page style is also configureable by the commands introduced in +\autoref{sec:scrpage.basics.format}, which, for example, +configure the head and foot width. +Neither the activation of \PValue{scrheadings} nor \PValue{scrplain} +influences the mode of manual or automatic headings, +see \autoref{sec:scrpage.basics.mark}. + +\begin{Declaration} + \Macro{lehead}% + \OParameter{scrplain-left-even}\Parameter{scrheadings-left-even}\\ + \Macro{cehead}% + \OParameter{scrplain-concentric-even}\Parameter{scrheadings-concentric-even}\\ + \Macro{rehead}% + \OParameter{scrplain-right-even}\Parameter{scrheadings-right-even}\\ + \Macro{lefoot}% + \OParameter{scrplain-left-even}\Parameter{scrheadings-left-even}\\ + \Macro{cefoot}% + \OParameter{scrplain-concentric-even}\Parameter{scrheadings-concentric-even}\\ + \Macro{refoot}% + \OParameter{scrplain-right-even}\Parameter{scrheadings-right-even}\\ + \Macro{lohead}% + \OParameter{scrplain-left-odd}\Parameter{scrheadings-left-odd}\\ + \Macro{cohead}% + \OParameter{scrplain-concentric-odd}\Parameter{scrheadings-concentric-odd}\\ + \Macro{rohead}% + \OParameter{scrplain-right-odd}\Parameter{scrheadings-right-odd}\\ + \Macro{lofoot}% + \OParameter{scrplain-left-odd}\Parameter{scrheadings-left-odd}\\ + \Macro{cofoot}% + \OParameter{scrplain-concentric-odd}\Parameter{scrheadings-concentric-odd}\\ + \Macro{rofoot}% + \OParameter{scrplain-right-odd}\Parameter{scrheadings-right-odd}\\ + \Macro{ihead}% + \OParameter{scrplain-inside}\Parameter{scrheadings-inside}\\ + \Macro{chead}% + \OParameter{scrplain-concentric}\Parameter{scrheadings-concentric}\\ + \Macro{ohead}% + \OParameter{scrplain-outside}\Parameter{scrheadings-outside}\\ + \Macro{ifoot}% + \OParameter{scrplain-inside}\Parameter{scrheadings-inside}\\ + \Macro{cfoot}% + \OParameter{scrplain-concentric}\Parameter{scrheadings-concentric}\\ + \Macro{ofoot}% + \OParameter{scrplain-outside}\Parameter{scrheadings-outside} +\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}% +% +The page styles include three boxes either in head and foot. +The commands modifying the content of these boxes can be seen +in \autoref{fig:scrpage.leheadetall}. +Commands in the middle column modify the boxes content on both the odd +and even pages. + +\begin{figure} + \centering + \setlength{\unitlength}{1mm}\begin{picture}(100,65)(0,10)\small + \put(0,12){\dashbox{2}(40,56){even page}} + \put(60,12){\dashbox{2}(40,56){odd page}} + % items top left + \put(1,63){\framebox(8,4){~}} + \put(16,63){\framebox(8,4){~}} + \put(31,63){\framebox(8,4){~}} + % items top right + \put(61,63){\framebox(8,4){~}} + \put(76,63){\framebox(8,4){~}} + \put(91,63){\framebox(8,4){~}} + % items bottom left + \put(1,13){\framebox(8,4){~}} + \put(16,13){\framebox(8,4){~}} + \put(31,13){\framebox(8,4){~}} + % items bottom right + \put(61,13){\framebox(8,4){~}} + \put(76,13){\framebox(8,4){~}} + \put(91,13){\framebox(8,4){~}} + % commands and arrow + % for twoside + % + \put(50,65){\makebox(0,0){\Macro{ihead}}} + \put(44,65){\vector(-1,0){4}}\put(56,65){\vector(1,0){4}} + \put(50,58){\makebox(0,0){\Macro{chead}}} + \put(44,58){\line(-1,0){24}}\put(56,58){\line(1,0){24}} + \put(20,58){\vector(0,1){4}}\put(80,58){\vector(0,1){4}} + \put(50,51){\makebox(0,0){\Macro{ohead}}} + \put(44,51){\line(-1,0){40}}\put(56,51){\line(1,0){40}} + \put(4,51){\vector(0,1){11}}\put(96,51){\vector(0,1){11}} + % + \put(50,15){\makebox(0,0){\Macro{ifoot}}} + \put(56,15){\vector(1,0){4}}\put(44,15){\vector(-1,0){4}} + \put(50,22){\makebox(0,0){\Macro{cfoot}}} + \put(44,22){\line(-1,0){24}}\put(56,22){\line(1,0){24}} + \put(20,22){\vector(0,-1){4}}\put(80,22){\vector(0,-1){4}} + \put(50,29){\makebox(0,0){\Macro{ofoot}}} + \put(44,29){\line(-1,0){40}}\put(56,29){\line(1,0){40}} + \put(4,29){\vector(0,-1){11}}\put(96,29){\vector(0,-1){11}} + % commands for oneside + \put(5,69){\makebox(0,0)[b]{\Macro{lehead}}} + \put(20,69){\makebox(0,0)[b]{\Macro{cehead}}} + \put(35,69){\makebox(0,0)[b]{\Macro{rehead}}} + % + \put(65,69){\makebox(0,0)[b]{\Macro{lohead}}} + \put(80,69){\makebox(0,0)[b]{\Macro{cohead}}} + \put(95,69){\makebox(0,0)[b]{\Macro{rohead}}} + % + \put(5,11){\makebox(0,0)[t]{\Macro{lefoot}}} + \put(20,11){\makebox(0,0)[t]{\Macro{cefoot}}} + \put(35,11){\makebox(0,0)[t]{\Macro{refoot}}} + % + \put(65,11){\makebox(0,0)[t]{\Macro{lofoot}}} + \put(80,11){\makebox(0,0)[t]{\Macro{cofoot}}} + \put(95,11){\makebox(0,0)[t]{\Macro{rofoot}}} + \end{picture} + \caption[Commands for modification of + \Package{scrpage2}-pagestyles elements]% + {Commands for modification of pagestyles \PValue{scrheadings} and + \PValue{scrplain} and their association to head and foot elements} + \label{fig:scrpage.leheadetall} +\end{figure} + +\begin{Example} +If one wants the page number be placed in the middle of the +foot, then following can be used: +\begin{lstlisting} + \cfoot{\pagemark} +\end{lstlisting} +The next example shows how to place both running head and +page number in the head; the running head inside and the page number +outside. +\begin{lstlisting} + \ohead{\pagemark} + \ihead{\headmark} + \cfoot{} +\end{lstlisting} +The command \Macro{cfoot}\PParameter{} is only required in order +to empty the item in middle of the foot, +which normally contains the page number. +\end{Example} + +Using the commands which are associated with only one item +allows more advanced settings. + +\begin{Example} +Assuming one has the order to write an annual report for his +company, he could use commands like this: +\begin{lstlisting} + \ohead{\pagemark} + \rehead{Annual Report 2001} + \lohead{\headmark} + \cefoot{TheCompanyName Inc.} + \cofoot{Department: Development} +\end{lstlisting} +In order to keep in sync the data in the foot with the content +of the document, the foot has to be updated using \Macro{cofoot} +when a new department is discussed in the report. +\end{Example} + +As mentioned above, there is an \PValue{plain}-pagestyle which corresponds to +\PValue{scrheadings}. Since it should also be possible to adapt this style, +the commands support an optional argument. Thus the contents of the +appropriate field of the \PValue{plain}-pagestyle can be modified. + +\begin{Example} +The position of the page number for the pagestyle \PValue{scrheadings} +can be declared as follows: +\begin{lstlisting} + \cfoot[\pagemark]{} + \ohead[]{\pagemark} +\end{lstlisting} +When now the command \Macro{chapter}, after it has started a new page, +switches to the \PValue{plain}-pagestyle, then the page number +is centered in the foot. +\end{Example} +% +\EndIndex{Pagestyle}{scrheadings}\EndIndex{Pagestyle}{scrplain}% + +\begin{Declaration} + \Macro{clearscrheadings}\\ + \Macro{clearscrplain}\\ + \Macro{clearscrheadfoot} +\end{Declaration}% +\BeginIndex{Cmd}{clearscrheadings}% +\BeginIndex{Cmd}{clearscrplain}% +\BeginIndex{Cmd}{clearscrheadfoot}% +If one wants to redefine both the page style \PValue{scrheadings} +and the \PValue{plain} page style, frequently one must delete +some already occupied page items. Since one fills all items +rarely with new contents, in most cases several +instruction with empty parameters are necessary. +With the help of these three instructions the deletion is fast and +thoroughly possible. +While \Macro{clearscrheadings} only deletes all fields of the +page style \PValue{scrheadings} and \Macro{clearscrplain} deletes +all fields of the appropriate \PValue{plain} page style, +\Macro{clearscrheadfoot} sets all fields of both page styles on +empty contents. + +\begin{Example} + If one wants to reset the page style to the default \KOMAScript{} settings, + independent from the actual configuration, only these three commands are + sufficient. +\begin{lstlisting} + \clearscrheadfoot + \ohead{\headmark} + \ofoot[\pagemark]{\pagemark} +\end{lstlisting} + Without the commands \Macro{clearscrheadfoot}, \Macro{clearscrheadings} and + \Macro{clearscrplain} 6 commands with 9 empty arguments are required. +\begin{lstlisting} + \ihead[]{} + \chead[]{} + \ohead[]{\headmark} + \ifoot[]{} + \cfoot[]{} + \ofoot[\pagemark]{\pagemark} +\end{lstlisting} + Of course, assuming a special configuration some of them can + be dropped.% +\end{Example}% +% +\EndIndex{Cmd}{clearscrheadings}% +\EndIndex{Cmd}{clearscrplain}% +\EndIndex{Cmd}{clearscrheadfoot}% +% +\EndIndex{Cmd}{lehead}\EndIndex{Cmd}{cehead}\EndIndex{Cmd}{rehead}% +\EndIndex{Cmd}{ihead}\EndIndex{Cmd}{chead}\EndIndex{Cmd}{ohead}% +\EndIndex{Cmd}{lohead}\EndIndex{Cmd}{cohead}\EndIndex{Cmd}{rohead}% +\EndIndex{Cmd}{lefoot}\EndIndex{Cmd}{cefoot}\EndIndex{Cmd}{refoot}% +\EndIndex{Cmd}{ifoot}\EndIndex{Cmd}{cfoot}\EndIndex{Cmd}{rfoot}% +\EndIndex{Cmd}{lofoot}\EndIndex{Cmd}{cofoot}\EndIndex{Cmd}{rofoot}% + +In previous examples two commands already have been used, which +haven't been introduced yet. Now, the description of these +commands shall follow. + +\begin{Declaration} + \Macro{leftmark}\\ + \Macro{rightmark} +\end{Declaration}% +\BeginIndex{Cmd}{leftmark}\BeginIndex{Cmd}{rightmark}% +These two instructions make it possible to access the running headlines, +which are normally meant for the left or for the right page. These two +instruction are not made available by scrpage or scrpage2, but directly +by the \LaTeX{} kernel. If in this section running headline of the +left side or the right page are mentioned, +then the contents of \Macro{leftmark} or \Macro{rightmark} +is meant. +% +\EndIndex{Cmd}{leftmark}\EndIndex{Cmd}{rightmark}% + +\BeginIndex{Cmd}{headmark} +\begin{Declaration} +\Macro{headmark} +\end{Declaration}% +This command gives access to the content of running heads. +In contrast to \Macro{leftmark} and \Macro{rightmark}, one +need not regard the proper assignment to left or right page. +\EndIndex{Cmd}{headmark} + +\BeginIndex{Cmd}{pagemark} +\begin{Declaration} +\Macro{pagemark} +\end{Declaration}% +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} +or by \Macro{setkomafont} if a newer version \KOMAScript{} is used, see +\autoref{sec:maincls.font}. +% the last describtion \setkomafont ... is only fill-text +\EndIndex{Cmd}{pagemark} + +\BeginIndex{Cmd}{pagestyle}\BeginIndex{Pagestyle}{useheadings} +\begin{Declaration} +\Option{useheadings} +\end{Declaration}% +\phantomsection\label{desc:scrpage.pagestyle.useheadings}% +The package \Package{scrpage2} is meant primarily for the fact that the +supplied styles are used or own styles are defined. However it can be +necessary to shift back also to the style provided by the document class. It +would be obvious to do this with \Macro{pagestyle}\PParameter{headings}, but +this has however the disadvantage that commands \Macro{automark} and +\Macro{manualmark} discussed in the following do not function as expected. +For this reason one should shift back to the original styles using +\Macro{pagestyle}\PParameter{useheadings}. Such a switching has then no +effect on it whether one operates with manual or automatic running headlines. +% +\EndIndex{Cmd}{pagestyle}\EndIndex{Pagestyle}{useheadings} + +\subsection{Manual and Automatic Headings} +\label{sec:scrpage.basics.mark} +% \automark \manualmark +% +Usually there is a \emph{my}-version of the \PValue{headings}-style. If such +a style is active, then the running headlines are updated no longer +automatically. With \Package{scrpage2} another path is taken. Whether the +running headlines are living or not, determines the instructions +\Macro{automark} and \Macro{manualmark}. The default can be also already +influenced while the loading of the package with the options \Option{automark} +and \Option{manualmark}, see \autoref{sec:scrpage.basics.options}, +\autopageref{desc:scrpage.option.automark}. + +\BeginIndex{Cmd}{manualmark} +\begin{Declaration} +\Macro{manualmark} +\end{Declaration}% +As the name already clarifies, \Macro{manualmark} switches off the updating +of the running headlines. It is left to the user to provide for +updating or for contents of the running headlines. +For that purpose the instructions \Macro{markboth}\IndexCmd{markboth} +und \Macro{markright}\IndexCmd{markright} are available. +\EndIndex{Cmd}{manualmark} + +\BeginIndex{Cmd}{automark} +\begin{Declaration} + \Macro{automark}\OParameter{right page}\Parameter{left page} +\end{Declaration}% +The macro \Macro{automark} however activates the automatic updating. +For the two parameters the designations of the document level +are to be used, whose title in appropriate place is to appear. +Valid values for the parameters are: +\PValue{part}\ChangedAt{2.2}{\Package{scrpage2}}, \PValue{chapter}, +\PValue{section}, \PValue{subsection}, \PValue{subsubsection}, +\PValue{paragraph}, \PValue{subparagraph}. +For most of the classes usage of \PValue{part} will not produce +the expected results. So far only \KOMAScript\ classes from version~2.9s +up are known to support this value. + +The optional argument \PName{right page} is meant understandably only for +two-sided documents. +In the one-sided case you should normally not use it. +With the help of the option \Option{autooneside} one can also adjust +that the optional argument in one-sided mode is ignored automatically, +see \autoref{sec:scrpage.basics.options}, +\autopageref{desc:scrpage.option.autooneside}. +% +\begin{Example} +Assuming that the document uses a \emph{book} class, +which topmost section level is \emph{chapter}, +then after a preceding \Macro{manualmark} +\begin{lstlisting} + \automark[section]{chapter} +\end{lstlisting} +restores the original behaviour. +If one prefers one of the lower section levels in running head +following can be used. +\begin{lstlisting} + \automark[subsection]{section} +\end{lstlisting} +How useful the last declaration is, everybody has to decide +for oneself. +\end{Example} + +\begin{Explain} +The data of the headings is set by the command +\Macro{markboth}\IndexCmd{markboth} for the top-most +section levels, for the lower levels +\Macro{markright}\IndexCmd{markright} or +\Macro{markleft}\IndexCmd{markleft} are used. +These commands are called indirectly by the sectioning commands. +The macro \Macro{markleft} is provided by the package +\Package{scrpage2}. +Its definition is similar to \Macro{markright} originating from +the \LaTeX{} kernel. +Although \Macro{markleft} is not defined as an internal command, +the direct use is not recommended. +\end{Explain} +\EndIndex{Cmd}{automark} + + +\subsection{Formatting of Heading and Footing} +\label{sec:scrpage.basics.format} +% \headfont \pnumfont +% \setheadwidth \setfootwidth +% \set(head|foot)(top|sep|bot)line +In the previous paragraph it concerned mainly contentwise things. Is +not sufficient naturally, in order to satisfy the formative +ambitions. Therefore it is to turn in this paragraph exclusive therefore. +% +\BeginIndex{Cmd}{headfont}\BeginIndex{Cmd}{pnumfont} +\begin{Declaration} +\Macro{headfont}\\ +\Macro{pnumfont} +\end{Declaration}% +The command \Macro{headfont} contains the commands +which determine the formatting of head and foot lines. +The style of the page number defines the command +\Macro{pnumfont}. +\begin{Example} +If, for example, one wants the head and foot to be typeset in bold +sans-serif and the page number in a slanted style, then it can be +used the configuration: +\begin{lstlisting} + \renewcommand{\headfont}{\normalfont\sffamily\bfseries} + \renewcommand{\pnumfont}{\normalfont\rmfamily\slshape} +\end{lstlisting} +\end{Example} +\EndIndex{Cmd}{headfont}\EndIndex{Cmd}{pnumfont} +% +Since version 2.8p of the \KOMAScript{} classes a new +configuration scheme is implemented. +If \Package{scrpage2} is used together with these classes then +it is recommended to setup font attributes the way described +in \autoref{sec:maincls.font}. +\begin{Example} +This interfaces implements the command \Macro{setkomafont} +in order to configure the font attributes. +The previous definition can then be written as: +\begin{lstlisting} + \setkomafont{pagehead}\normalfont\sffamily\bfseries} + \setkomafont{pagenumber}{\normalfont\rmfamily\slshape} +\end{lstlisting} +\end{Example} + +\BeginIndex{Cmd}{setheadwidth}\BeginIndex{Cmd}{setfootwidth} +\begin{Declaration} +\Macro{setheadwidth}\OParameter{shift}\Parameter{width}\\ +\Macro{setfootwidth}\OParameter{shift}\Parameter{width} +\end{Declaration}% +Normally the widths of heading and footing line +correspond to the width of the text body. +The commands \Macro{setheadwidth} and \Macro{setfootwidth} enable the +user to adapt in a simple manner the widths to his needs. +The mandatory argument \PName{width} takes up the value for the width +of the page head or foot, +\PName{shift} is a longitudinal dimension for the shift of the +appropriate item toward the outside page edge. + +For the most common situations the mandatory argument \PName{width} +accepts the following symbolic values: +\begin{labeling}[\,--]{\PValue{textwithmarginpar}} +\item[\PValue{paper}] the width of the paper +\item[\PValue{page}] the width of the page +\item[\PValue{text}] the width of the text body +\item[\PValue{textwithmarginpar}] the width of the text body including margin. +\item[\PValue{head}] the current head width +\item[\PValue{foot}] the current foot width +\end{labeling} +The difference between \PValue{paper} and \PValue{page} is, that +\PValue{page} means the width of the paper less the binding correction. +This only applies if the package \Package{typearea}\IndexPackage{typearea} +is used (see \autoref{cha:typearea}). +Without \Package{typearea} both values are equal. + +\begin{Example} +The layout of the \emph{\LaTeX\,Companion}, the head-line projects +into the margin, can be obtained with: +\begin{lstlisting} + \setheadwidth[0pt]{textwithmarginpar} +\end{lstlisting} +% +and looks on an odd page like this: +% +\begin{XmpTopPage} + \XmpHeading{10,25}{85} + \thinlines\XmpRule{10,23}{85} + \XmpSetText[\XmpTopText]{10,21} + \XmpMarginNote{83,11.8} +\end{XmpTopPage} +% +If the foot-line shall have the same width and alignment, then +two ways are possible. The first simply repeats the settings +for the foot-line: +\begin{lstlisting} + \setfootwidth[0pt]{textwithmarginpar} +\end{lstlisting} +% +In the second way the symbolic value \PValue{head} is used, since the +head has already the desired settings. +\begin{lstlisting} + \setfootwidth[0pt]{head} +\end{lstlisting} +\end{Example} + +If no \PName{shift} is indicated, +i.e. without the optional argument, then +the heading or the foot appears symmetrically on the page arranged. +A value for the \PName{shift} is determined automatically, which +corresponds to the current page shape. +% +\begin{Example} +According to the previous example the optional argument is abandoned: +\begin{lstlisting} + \setheadwidth{textwithmarginpar} +\end{lstlisting} +% +and looks on an odd page like this: +% +\begin{XmpTopPage} + \XmpHeading{5,25}{85} + \thinlines\XmpRule{5,23}{85} + \XmpSetText[\XmpTopText]{10,21} + \XmpMarginNote{83,11.8} +\end{XmpTopPage} +\end{Example} + +As to be seen, the heading is now shifted inward, while the +heading width has not changed. +The shift is calculated in a way that the configuration of the typearea +become visible also here. +% +\EndIndex{Cmd}{setheadwidth}\EndIndex{Cmd}{setfootwidth} + +\BeginIndex{Cmd}{setheadtopline}\BeginIndex{Cmd}{setheadsepline} +\BeginIndex{Cmd}{setfootseptline}\BeginIndex{Cmd}{setfootbotline} +\begin{Declaration} +\Macro{setheadtopline}\OParameter{length}\Parameter{thickness}\OParameter{commands}\\ +\Macro{setheadsepline}\OParameter{length}\Parameter{thickness}\OParameter{commands}\\ +\Macro{setfootsepline}\OParameter{length}\Parameter{thickness}\OParameter{commands}\\ +\Macro{setfootbotline}\OParameter{length}\Parameter{thickness}\OParameter{commands} +\end{Declaration}% +According to the configuration of head and foot there are +commands to modify the lines above and below the head and foot. + +\begin{labeling}[\,--]{\Macro{setfootsepline}} +\item[\Macro{setheadtopline}] configures the line above the head +\item[\Macro{setheadsepline}] configures the line below the head +\item[\Macro{setfootsepline}] configures the line above the foot +\item[\Macro{setfootbotline}] configures the line below the foot +\end{labeling} + +The mandatory argument \PName{thickness} determines, +how strongly the line is drawn. +The optional argument \PName{length} accepts the same symbolic values as +\PName{width} with \Macro{setheadwidth}, as also a normal length expression. +As long as in the document \PName{length} value was not assigned to the +optional argument, the appropriate line length adapts automatically +the width of the heading or the foot. + +Use \PValue{auto} in the length argument to restore this +automatism for the length of a line. + +The\ChangedAt{2.2}{\Package{scrpage2}} +optional argument \PName{commands} may be used to specify additional commands +to be executed before the respective line is drawn. +For example such commands could be used for changing the +color\Index{header>color}\Index{footer>color}\Index{color>in + header}\Index{color>in footer} of that line. +When using a \KOMAScript\ class you could also use +\Macro{setkomafont}\IndexCmd{setkomafont} to specify commands +for one of the elements +\FontElement{headtopline}\IndexFontElement{headtopline}, +\FontElement{headsepline}\IndexFontElement{headsepline}, +\FontElement{footsepline}\IndexFontElement{footsepline}, +\FontElement{footbottomline}\IndexFontElement{footbottomline}, +\FontElement{footbotline}\IndexFontElement{footbotline}. +These could be extended by adding \Macro{addtokomafont}\IndexCmd{addtokomafont}. +See \autoref{sec:maincls.font} for details on the \Macro{setkomafont} and +\Macro{addkomafont} commands. + +\begin{Declaration} +\XMacro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{\upshape\PValue{current}}\\ +\XMacro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{}\\ +\XMacro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{}\OParameter{} +\end{Declaration}% +The arguments shown here for the command \Macro{setheadtopline}, +are of course valid for the other three configuration commands, too. + +If the mandatory parameter has the value \PValue{current} or has been +left empty then the line height is not changed. +This may be used to modify the length of the line without changing its height. + +\PName{commands} is an optional argument, if omitted all command setting +will remain active that might have been specified before, while using +an empty \PName{commands} argument will revoke any previously valid +commands. + +\begin{Example} +If the head for example is to be contrasted by a strong line of 2\,pt +above and a normal line of 0.4\,pt between head and body, it can be +achieved with: +\begin{lstlisting} + \setheadtopline{2pt} + \setheadsepline{.4pt} +\end{lstlisting} +% +\begin{XmpTopPage} + \XmpHeading{10,25}{70} + \thinlines\XmpRule{10,23}{70} + \thicklines\XmpRule{10,28}{70} + \XmpSetText[\XmpTopText]{10,21} + \XmpMarginNote{83,11.8} +\end{XmpTopPage} + +To specify that this line is to be drawn also e.\,g. in red color you +would change the commands like this: +\begin{lstlisting} + \setheadtopline{2pt}[\color{red}] + \setheadsepline{.4pt}[\color{red}] +\end{lstlisting} +In this sample as well as in the following one line color is activated +by applying the syntax of the \Package{color}\IndexPackage{color} package, +so this package must be loaded of course. Since \Package{scrpage2} comes +without built-in color handling any package providing color support +may be used. + +\KOMAScript\ classes also support the following way of color specification: +\begin{lstlisting} + \setheadtopline{2pt} + \setheadsepline{.4pt} + \setkomafont{headtopline}[\color{red}] + \setkomafont{headsepline}[\color{red}] +\end{lstlisting} + +The automatic adjustment of the head and foot width is illustrated +in the following example: +\begin{lstlisting} + \setfootbotline{2pt} + \setfootsepline[text]{.4pt} + \setfootwidth[0pt]{textwithmarginpar} +\end{lstlisting} + +% \phantomsection for hyperref-\pageref-links jum-2001/11/24 +\phantomsection\label{page:scrpage.autoLineLength} +\begin{XmpBotPage} + \XmpHeading{10,18}{85} + \thinlines\XmpRule{17,21}{70} + \thicklines\XmpRule{10,16}{85} + \XmpSetText[\XmpBotText]{10,33} + \XmpMarginNote{83,24} +\end{XmpBotPage} +\end{Example} + +Now not everybody will like the alignment of the line above +the foot, instead one will expect the line left-aligned. +This can only be achieved with a global package option, which +will be described together with other package option +in the next \autoref{sec:scrpage.basics.options}. +\EndIndex{Cmd}{setheadtopline}\EndIndex{Cmd}{setheadsepline} +\EndIndex{Cmd}{setfootseptline}\EndIndex{Cmd}{setfootbotline} + +\subsection{Package Options}\label{sec:scrpage.basics.options} +% head(in|ex)clude foot(in|ex)clude --> typearea +% headtopline headsepline footbotline footsepline (plain...) +% komastyle standardstyle +% markuppercase markusecase +% automark manualmark + +\BeginIndex{Option}{headinclude}\BeginIndex{Option}{footinclude} +\BeginIndex{Option}{headexclude}\BeginIndex{Option}{footexclude} +\begin{Declaration} +\Option{headinclude}\\ +\Option{headexclude}\\ +\Option{footinclude}\\ +\Option{footexclude} +\end{Declaration}% +These options intend whether the page-header or that page-footing +are reckoned in with the page-body for the calculation of the type-area. +The adjustments necessary by the use of these parameters +are made by the package +\Package{typearea} (see \autoref{sec:typearea.options}), if this +package is loaded after \Package{scrpage2}. +Important is here that on use of a \KOMAScript{} class +these options must be indicated for the document class and not +for \Package{scrpage2}, in order to obtain an effect. +% +\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} +\end{Declaration}% +A basic adjustment for the lines under and over heading and footing +can be made with these options. +These adjustments are considered then as default to all +page styles defined with \Package{scrpage2}. +If one of these options is used, then a line thickness +is used by 0.4\,pt. + +Since there is an appropriate \PValue{plain}-style to the page style +\PValue{scrheadings}, with the \Option{plain\dots}-options also the +appropriate line of the plain style can be configured. +These \Option{plain}-options work however only, even if the +corresponding option without plain are activated. +Thus \Option{plainheadtopline} shows no effect without the +\Option{headtopline} option set. + +With these options it is to be noted that the appropriate page part, +heading or footing, is reckoned in with the text-area +for the calculation of the type-area in case a line has been activated. +This means, if with \Option{headsepline} the separation-line +between heading and text is activated, then the packge \Package{typearea} +calculates the type-area in such a way that the page-header +is part of the text block automatically. + +The conditions for the options of the preceding paragraph, apply also to +this automatism. That means that the package \Package{typearea} +must be loaded to scrpage2, or that on use of a \KOMAScript{} class, +the options \Option{headinclude} and \Option{footinclude} +must be set explicitly with \Macro{documentclass} in order to +transfer heading or footing line in the text-area. +% +\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{rule}\Index{line}% +\begin{Declaration} +\Option{ilines}\\ +\Option{clines}\\ +\Option{olines} +\end{Declaration}% +% +The definition of the line lengths can lead to an +undesired adjustment, since +the line is centered in the heading or footing area. +With the package options presented here, this specification can be +modified for all page styles defined with \Package{scrpage2}. +The option \Option{ilines} sets the adjustment in such a +way that the lines align to the inside edge. +The option \Option{clines} behaves like the standard adjustment and +\Option{olines} aligns at the outside edge. + +\begin{Example} + The next example illustrates the influence of the + option \Option{ilines}. Please compare to the example for + \Macro{setfootsepline} on \autopageref{page:scrpage.autoLineLength}. +\begin{lstlisting} + \usepackage[ilines]{scrpage2} + \setfootbotline{2pt} + \setfootsepline[text]{.4pt} + \setfootwidth[0pt]{textwithmarginpar} +\end{lstlisting} + + Only the use of the option \Option{ilines} leads to the different + result shown below: +\begin{XmpBotPage} + \XmpHeading{10,18}{85} + \thinlines\XmpRule{10,21}{70} + \thicklines\XmpRule{10,16}{85} + \XmpSetText[\XmpBotText]{10,33} + \XmpMarginNote{83,24} +\end{XmpBotPage} + In contrast to the default configuration the separation line + between text and foot is now left-aligned not centered.% +\end{Example}% +\EndIndex{Option}{ilines}\EndIndex{Option}{clines}\EndIndex{Option}{olines}% + +% \phantomsection for hyperref-\pageref-links jum-2001/11/24 +\phantomsection\label{page:scrpage.automark}% +\BeginIndex{Option}{automark}\BeginIndex{Option}{manualmark} +\begin{Declaration} +\Option{automark}\\ +\Option{manualmark} +\end{Declaration}% +These options set the adjustment at the beginning of the document +whether automatic updating of the running headlines takes place. +The option \Option{automark} switches the automatic updating on, +\Option{manualmark} deactivates it. +Without use of one of the two options the adjustment is preserved, +which was valid while the loading of the package. +% +\begin{Example} + One loads the package \Package{scrpage2} directly after the document class + \Class{scrreprt} without any package options. +\begin{lstlisting} + \documentclass{scrreprt} + \usepackage{scrpage2} +\end{lstlisting} + Since the default page style of \Class{scrreprt} is \PValue{plain}, + this page style is also active yet. + Futhermore \PValue{plain} means manual headings. + If one now activates the page style \PValue{scrheadings} with +\begin{lstlisting} + \pagestyle{scrheadings} +\end{lstlisting} + then the manual headings are always active. + + If one uses the document class \Class{scrbook} instead, then after: +\begin{lstlisting} + \documentclass{scrbook} + \usepackage{scrpage2} +\end{lstlisting} + the page style \PValue{headings} is active and the running headings + are updated automatically. + Switching to the page style \PValue{scrheadings} keeps this + setting present. + The marking-commands of \Class{scrbook} continue to be used. + + However, the use of +\begin{lstlisting} + \usepackage[automark]{scrpage2} +\end{lstlisting} + activates the automatic update of the running heading independent + from the used document class. + The option does not effect the used page style \PValue{plain} of + the class \Class{scrreprt}. + The headings are not visible until the page style has been changed to + \PValue{scrheadings}\IndexPagestyle{scrheadings}, + \PValue{useheadings} or another self-defined page style with headings.% +\end{Example}% +\EndIndex{Option}{automark}\EndIndex{Option}{manualmark}% + +\BeginIndex{Option}{autooneside} +\begin{Declaration} + \Option{autooneside} +\end{Declaration}% +This option ensures that the optional parameter of +\Macro{automark}\IndexCmd{automark} will be ignored automatically +in one-side mode. See the explanation of the command +\Macro{automark} in \autoref{sec:scrpage.basics.mark}, +\autopageref{desc:scrpage.macro.automark}. +\EndIndex{Option}{autooneside} + +\BeginIndex{Option}{komastyle}\BeginIndex{Option}{standardstyle} +\begin{Declaration} +\Option{komastyle}\\ +\Option{standardstyle} +\end{Declaration}% +These options determine the kind of the pre-defined page style +\PValue{scrheadings}. +The option \Option{komastyle} takes up a configuration like +the \KOMAScript{} classes. +This is the default for \KOMAScript{} classes and can this way +also be set for other classes. + +A configuration expected from the standard classes can be +defined using option \Option{standardstyle}. +Automatically the option \Option{markuppercase} will be +activated, but only if option \Option{markusedcase} is not given. +\EndIndex{Option}{komastyle}\EndIndex{Option}{standardstyle} + +\BeginIndex{Option}{markuppercase}\BeginIndex{Option}{markusedcase} +\begin{Declaration} +\Option{markuppercase}\\ +\Option{markusedcase} +\end{Declaration}% +The package \Package{scrpage2} has +to modify internal commands, which are used by document structuring +commands, in order to get the function of \Macro{automark} working. +Since some classes, in contrast to the \KOMAScript{} classes, +write the headings in uppercase letters, \Package{scrpage2} +has to know how the used document class represents the headings. + +Option \Option{markuppercase} shows \Package{scrpage2} that +the document class uses uppercase letters. +If the document class does not represent the headings in +uppercase letters the option \Option{markusedcase} should +be given. +These options are not suitable to force a representation, thus +unexpected effects may occur, if the given option does not match +the behaviour of the document class. +\EndIndex{Option}{markuppercase}\EndIndex{Option}{markusedcase} + +\begin{Declaration} + \Option{nouppercase} +\end{Declaration}% +\BeginIndex{Option}{nouppercase}% +In the previous paragraph about \Option{markuppercase} and +\Option{markusedcase} it has been already stated that some +document classes represent the running headings\Index{heading} in +uppercase letters using the commands +\Macro{MakeUppercase} or \Macro{uppercase}. +Setting the option \Option{nouppercase} allows to disable these +both commands. +The option \Option{nouppercase} only is valid as long page styles +defined by \Package{scrpage2} are used, including +\PValue{scrheadings} and its appropriate \PValue{plain} page style. + +The applicated method is very brutal and can cause that desired +changes of normal letters to uppercase letters +\Index{uppercase letters} do not occur. +Since these cases appear not frequently the option \Option{nouppercase} +is a useful solution. + +\begin{Example} +If a document uses the standard class \Class{book}\IndexClass{book}, +but the uppercase headings are not desired, then the preamble of +the document could start with: +\begin{lstlisting} + \documentclass{book} + \usepackage[nouppercase]{scrpage2} + \pagestyle{scrheadings} +\end{lstlisting} + The selection of the page style \PValue{scrheadings} is necessary, + since otherwise the page style \PValue{headings} is active, which + does not respect the settings made by option \Option{nouppercase}. +\end{Example} + +In some cases not only classes but also packages set the running +headings in uppercase letters. +Also in these cases the option \Option{nouppercase} should be able +to switch back to the normal non-uppercase headings. +\EndIndex{Option}{nouppercase} + +\section{Defining Own Page Styles}\label{sec:scrpage.UI} +% +% +\subsection{The Interface for Beginners}\label{sec:scrpage.UI.user} +% \deftripstyle +\BeginIndex{Cmd}{deftripstyle}\Index{page style} + +Now one would not always be bound only to the provided page styles, +but moreover there will be the wish to define own page styles. +Sometimes there will be a special need, since a specific +\emph{Corporate Identity} requires the declaration of own page styles. +The easiest way to deal with is: +\begin{Declaration} +\Macro{deftripstyle}\Parameter{name}% +\OParameter{LO}\OParameter{LI}% +\Parameter{HI}\Parameter{HC}\Parameter{HO}% +\Parameter{FI}\Parameter{FC}\Parameter{FO} +\end{Declaration}% +The parameters have the following meaning: +\begin{labeling}[\,--]{\PName{Name}} +\item[\PName{name}] the name of the page style, in order to activate them + using the command \Macro{pagestyle}\Parameter{name} +\item[\PName{LO}] the thickness of the outside lines, + i.e. the line above the head + and the line below the foot (optional) +\item[\PName{LI}] the thickness of the separation lines, + i.e. the line below the head + and the line above the foot (optional) +\item[\PName{HI}] contents of the inside box in the page head for two-side + layout or left for one-side layout +\item[\PName{HC}] contents of the centered box in the page head +\item[\PName{HO}] contents of the outside box in the page head for two-side + layout or right for one-side layout +\item[\PName{FI}] contents of the inside box in the page foot for two-side + layout or left for one-side layout +\item[\PName{FC}] contents of the centered box in the page foot +\item[\PName{FO}] contents of the outside box in the page foot for two-side + layout or right for one-side layout +\end{labeling} + +The command \Macro{deftripstyle} surely represents the simplest +possibility of defining page styles. +Unfortunately also restrictions are connected with since in a +page range with one via deftripstyle defined page style +no modification of the lines above and below heading and footing +can take place. + +\begin{Example} +Assuming a two-side layout, where the running headings are placed inside. +Furthermore the document title, here "`Report"`, shall be placed outside +in the head, the page number is centered in the foot. +\begin{lstlisting} + \deftripstyle{TheReport}% + {\headmark}{}{Report}% + {}{\pagemark}{} +\end{lstlisting} + +Shall moreover the lines above the head and below the foot be +drawn with a thickness of 2\,pt and the text body be separated +>from head and foot with 0.4\,pt lines, then the definition has to +be extended. +\begin{lstlisting} + \deftripstyle{TheReport}[2pt][.4pt]% + {\headmark}{}{Report}% + {}{\pagemark}{} +\end{lstlisting} +% +\typeout{^^J--- Ignore underfull and overfull \string\hbox:} +\begin{center}\setlength{\unitlength}{1mm}\begin{picture}(100,50)\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}} +% +\thicklines +\put(45,0){\line(0,1){50}} +\put(95,0){\line(0,1){50}} +\put(5,0,){\line(1,0){40}} +\put(55,0){\line(1,0){40}} +% +\XmpHeading[Report\hfill 2. The Eye]{11,46}{30} +\XmpHeading[2.1 Retina\hfill Report]{59,46}{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% + \textbf{2.1 Retina}\\ + \XmpText[49]}}} +\put(59,43){\makebox(0,0)[tl]{\parbox{30mm}{\tiny% + \XmpText[51]}}} +% +\thinlines +\XmpRule{11,44.5}{30}\XmpRule{59,44.5}{30} +\XmpRule{11,8}{30}\XmpRule{59,8}{30} +\linethickness{1pt} +\XmpRule{11,48}{30}\XmpRule{59,48}{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{The Interface for Experts}\label{sec:scrpage.UI.expert} +% \defpagestyle \newpagestyle \providepagestyle \renewpagestyle +\BeginIndex{Cmd}{defpagestyle}\BeginIndex{Cmd}{newpagestyle} +\BeginIndex{Cmd}{renewpagestyle}\BeginIndex{Cmd}{providepagestyle} +\Index{page style} +Simple page styles, how they can be defined with \Macro{deftripstyle}, +are rare according to experience. +Either a professor requires that the thesis looks in +such a way like its own, and who wants to contradict +it seriously, or a company would like that the half +financial department emerges in the page footing. +No problem, the solution is: +% +\begin{Declaration} +\Macro{defpagestyle}\Parameter{name}\Parameter{head-definition}\Parameter{foot-definition}\\ +\Macro{newpagestyle}\Parameter{name}\Parameter{head-definition}\Parameter{foot-definition}\\ +\Macro{renewpagestyle}\Parameter{name}\Parameter{head-definition}\Parameter{foot-definition}\\ +\Macro{providepagestyle}\Parameter{name}\Parameter{head-definition}\Parameter{foot-definition} +\end{Declaration}% +These four commands give full access to the capabilities of +\Package{scrpage2} according to define page styles. +Their structure is indentical, they differ only the manner of working. + +\begin{labeling}[\,--]{\Macro{providepagestyle}} +\item[\Macro{defpagestyle}] defines always a new pagestyle. +If a page style with this name already exists it will be overwritten. +\item[\Macro{newpagestyle}] defines a new pagestyle. +If a page style with this name already exists a error message will be given. +\item[\Macro{renewpagestyle}] redefines a pagestyle. +If apage style with this name does not exist a error message will be given. +\item[\Macro{providepagestyle}] defines a new pagestyle, +but only if there is no page style with that name already present. +\end{labeling} + +The syntax of the four commands is explained on command +\Macro{defpagestyle} examplary. +\begin{labeling}[\,--]{\PName{head definition}} +\item[\PName{name}] the name of the page style for + \Macro{pagestyle}\Parameter{name} +\item[\PName{head-definition}] the declaration of the heading consisting + of five element; elements in round parenthesis are optional:\\ +\AParameter{ALL,ALT}\Parameter{EP}\Parameter{OP}\Parameter{OS}\AParameter{BLL,BLT} +\item[\PName{foot-definition}] the declaration of the footing consisting + of five element; elements in round parenthesis are optional:\\ +\AParameter{ALL,ALT}\Parameter{EP}\Parameter{OP}\Parameter{OS}\AParameter{BLL,BLT} +\end{labeling} + +It can be seen, that head and foot declaration are identical. +The parameters have the following meaning: +\begin{labeling}[\,--]{\PName{OLD}} +\item[\PName{ALL}] above line length: (head = outside, foot = separation line) +\item[\PName{ALT}] above line thickness +\item[\PName{EP}] definition for \emph{even} pages +\item[\PName{OP}] definition for \emph{odd} pages +\item[\PName{OS}] definition for \emph{one-side} layout +\item[\PName{BLL}] below line length: (head = separation line, foot = outside) +\item[\PName{BLT}] below line thickness +\end{labeling} +If the optional line-parameters are omitted, then the line behaviour keeps +configurable by the commands introduced in +\autoref{sec:scrpage.basics.format}, +\autopageref{desc:scrpage.macro.setheadtopline}. + +The three elements \PName{EP}, \PName{OP} and \PName{OS} are boxes with +the width of page head or foot respectively. +The definition occur on the left side in the box, thus the space between +two text elements has to be stretched using \Macro{hfill}, in order to +write the first text element on the left edge \emph{and} the second text +element on the right edge. +% +\begin{lstlisting} + {\headmark\hfill\pagemark} +\end{lstlisting} + +If one would like a third text-element centered in the box, then an +extended definition must be used. +The commands \Macro{rlap} and \Macro{llap} simply write the given +arguments, but for \LaTeX{} they take no horizontal space. +Only this way the middle text is really centered. +% +\begin{lstlisting} + {\rlap{\headmark}\hfill centered text\hfill\llap{\pagemark}} +\end{lstlisting} + +This and more examples of the expert's interface and other commands +provided by \Package{scpage2} follow now in the final example. + +\begin{Example} +This examples uses the document class \Class{scrbook}, which +means that the default page layout is two-side. +While the loading of the package \Package{scrpage2} the +options \Option{automark} and \Option{headsepline} are +given. +The first switches on the automatic update of running +headings, the second determines that a separation line between +head and text-body is drawn in the \PValue{scrheadings} page style. + +\begin{lstlisting} + \documentclass{scrbook} + \usepackage[automark,headsepline]{scrpage2} +\end{lstlisting} + +The expert's interface is used to define two page styles. +The page style \PValue{withoutLines} does not define any +line parameters. +The second page style \PValue{withLines} defines +a line thicknes of 1\,pt for the line above the head +and 0\,pt for the separation-line between head and text. + +\begin{lstlisting} + \defpagestyle{withoutLines}{% + {Example\hfill\headmark}{\headmark\hfill without lines} + {\rlap{Example}\hfill\headmark\hfill% + \llap{without lines}} + }{% + {\pagemark\hfill}{\hfill\pagemark} + {\hfill\pagemark\hfill} + } +\end{lstlisting} + +\begin{lstlisting} + \defpagestyle{withLines}{% + (\textwidth,1pt) + {with lines\hfill\headmark}{\headmark\hfill with lines} + {\rlap{\KOMAScript}\hfill \headmark\hfill% + \llap{with lines}} + (0pt,0pt) + }{% + (\textwidth,.4pt) + {\pagemark\hfill}{\hfill\pagemark} + {\hfill\pagemark\hfill} + (\textwidth,1pt) + } +\end{lstlisting} + +At the document's begin the page style \PValue{scrheadings} +is choosen. +The command \Macro{chapter} starts a new chapter and sets +automatically the page style for this page to \PValue{plain}. + +The command \Macro{chead} shows how running headings can +be represented even on a \PValue{plain} page. +Running headings on chapter start-pages are not usual, +since in this case the page looses its emphasis-character. +Basically it is more important to show that a new +chapter starts here than that a section of this page has +a special title. + +\begin{Explain}% not important, only to enhance the paragraph breaking +Instead of \Macro{leftmark} one would expect +the use of \Macro{rightmark} in the parameter +of \Macro{chead}, since the chapter starts on an even +page. But, because of internal \LaTeX{} definitions, +this does not work. It only returns an empty string. +\end{Explain} +\begin{lstlisting} + \begin{document} + \pagestyle{scrheadings} + \chapter{Thermodynamics} + + \chead[\leftmark]{} + + \section{Main Laws} + Every system has an extensive condition unit called + Energy. In a closed system the energy is constant. +\end{lstlisting} + +\begin{XmpTopPage} + \XmpHeading[\hfill\textsl{1. Thermodynamics}\hfill]{10,27}{70} + \put(10,17){\normalsize\textbf{\sffamily 1.Thermodynamics}} + \put(10,12){\textbf{\sffamily 1.1 Main Laws}} + \XmpSetText[% + Every System has an extensive condition unit]{10,9} +\end{XmpTopPage} + +After starting a new page the page style \PValue{scrheadings} +is active and thus the separation line below the heading is +visible. +\begin{lstlisting} + There is a condition unit of a system, called entropy, + which temporal alteration consits of entropy stream + and entropy generation. +\end{lstlisting} +\begin{XmpTopPage} + \XmpHeading[\textsl{1. Thermodynamics}\hfill]{20,27}{70} + \thinlines\XmpRule{20,25}{70} + \XmpSetText[% + There is a condition unit of a system, called entropy, + which temporal alteration consits of entropy stream + and entropy generation.]{20,20} +\end{XmpTopPage} + +After switching to the next page, the automatic update of the +running headings is disabled using \Macro{manualmark}. +The page style \PValue{withoutLines} becomes active. +Since no line parameters are given in the definition of this +page style, the default configuration is used, which draws +a separation line between head and text-body. +\begin{XmpTopPage} + \XmpHeading[\slshape Energy Conversion\hfill without lines]{10,27}{70} + \thinlines\XmpRule{10,25}{70} + \XmpSetText[% + \textbf{\sffamily 1.2 Exergy and Anergy}\\ + While the transition of a system to an equilibrium state + with its environment the maximum work gainable is called + exergy.]{10,21} +\end{XmpTopPage} + +\begin{lstlisting} + \manualmark + \pagestyle{withoutLines} + \section{Exergy and Anergy}\markright{Energy Conversion} + While the transition of a system to an equilibrium state + with its environment the maximum work gainable is called + exergy. +\end{lstlisting} + +At the next page of the document the page style \PValue{withLines} +is activated. +The line settings of its definition are taken in account and the +lines are drawn accordingly. +\begin{lstlisting} + \pagestyle{mitLinien} + \renewcommand{\headfont}{\itshape\bfseries} + The portion of an energy not conversable in exergie + is named anergy \Var{B}. + \[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] + \end{document} +\end{lstlisting} +\begin{XmpTopPage} + \XmpHeading[\itshape\bfseries with lines\hfill 1. Thermodynamics]{20,27}{70} + \thicklines\XmpRule{20,29}{70} + \XmpSetText[% + The portion of an energy not conversable in exergie + is named anergy $B$. + \[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] ]{20,20} +\end{XmpTopPage} +\end{Example} +\EndIndex{Cmd}{defpagestyle}\EndIndex{Cmd}{newpagestyle} +\EndIndex{Cmd}{renewpagestyle}\EndIndex{Cmd}{providepagestyle} + +\subsection{Managing Page Styles}\label{sec:scrpage.UI.cfgFile} +% scrpage.cfg +\BeginIndex{File}{scrpage.cfg} +Before long the work with different page styles will establish a +common set of employed page styles, depending on taste and tasks. +In order to make the management of page styles easier, +\Package{scrpage2} reads after initialisation the file \File{scrpage.cfg}. +This file can contain a set of user-defined page styles, which +many projects can share. +\EndIndex{File}{scrpage.cfg} +\EndIndex{Package}{scrpage2} +%%% Local Variables: +%%% mode: latex +%%% TeX-master: ../guide" +%%% End: 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 new file mode 100644 index 00000000000..c7dc6e55109 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/typearea.tex @@ -0,0 +1,1149 @@ +% ====================================================================== +% typearea.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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-2006 +% +% 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}[2005/11/26 KOMA-Script guide (chapter: typearea)] +% Date of translated german file: 2005-03-17 + +% TODO: Translation of the changed equation array at 2.1, "Fundamentals of +% Page Layout". + +\chapter{Construction of the Page Layout with \Package{typearea}} +\labelbase{typearea} + +\section{Fundamentals of Page Layout} + +\begin{Explain} + If you look at a single page of a book or other prints, you will see + that it consists of top, foot, left and right margins, a (running) + head area, the text block and a (running) foot area. Looking + closer, there is space between the head area and the text block + and between the text block and the foot area. The relations + between these areas are called \emph{page layout}. + + The literature offers and discusses different algorithms and + heuristic approaches for constructing a good page layout. Often, + they are mentioning an approach which involves diagonals and their + intersections. The result is a page where the text block + proportions relate to the proportions of the \emph{page}. In a + single-sided document, the left and the right margin should have + equal widths. + The relation of the upper margin to the lower margin should + be 1\(:\)2. In a double-sided document (e.\,g. a book) however, + the inner margin (the margin at the spine) should be the same as + each of the two outer margins. + + In the previous paragraph, we mentioned and emphasized the + \emph{page}. Erroneously, often it is thought that the format of + the page would be the format of the paper. However, if you look at + a bound document, it is obvious that part of the paper vanishes in + the binding and is not part of the visible page. But the format of + the paper is not important for the layout of a page, it is the + impression of the visible page to the reader. Therefore, it is + clear that the calculation if the page layout must account for the + ``lost'' paper in the binding and add this amount to the width of + the inner margin. This is called \emph{binding correction}. + + The binding correction depends on the process of actually + producing the document and thus can not be calculated in general. + Every production process needs its own parameter. In professional + binding, this parameter is not too important since the printing is + done on oversized paper which is then cropped to the right size. + The cropping is done in a way so that the relations for the + visible double-sided page are as explained above. + + Now we know about the relation of the individual parts of a page. + However, we do not know about the width and the height of the + text block yet. Once we know one of these values, we can calculate + all the other values from the paper format and the page format or + the binding correction. + \begin{eqnarray*} + \Var{textblock~heigth} : \Var{textblock~width} &=& + \Var{page~height} : \Var{page~width}\\ +% + \Var{page~width} &=& \Var{paper~width} - \Var{binding~correction}\\ +% + \Var{top~margin} + \Var{foot~margin} &=& + \Var{page~height} - \Var{textblock~height} \\ +% + \Var{top~margin} : \Var{foot~margin} &=& 1 : 2 \\ +% + \Var{left~margin} : \Var{right~margin} &=& 1 : 1 \\ +% + \Var{half~inner~margin} &=& + \frac{1}{2}\Var{outer~margin} + \Var{binding~correction} \\ + \end{eqnarray*} + The values \Var{left~margin} and \Var{right~margin} are only + existent in a single-sided document while \Var{inner~margin} and + \Var{outer~margin} are only existent in a double-sided document. In + these equations, we work with \Var{half~inner~margin} since the full + inner margin belongs to a double-page. Thus, one page has half of + the inner margin. + + The question of the width of the textblock is also discussed in + the literature. The optimum width depends on several factors: + \begin{itemize} + \item size, width, type of the used font % !!! + \item line spacing % !!! + \item word length + \item available room + \end{itemize} + The importance of the font becomes clear once you think about + serifs. Serifs are fine lines % !!! + finishing off the letters. Letters whose main strokes are running + orthogonal to the text line are disturbing the flow more than they + are leading the eye along the line. These letters have serifs at + the end of the vertical strokes, however, so the horizontal serifs + lead the eye horizontally too. In addition, it helps the eye to + find the beginning of the next line. Thus, the line length for a + serif font can be slightly longer than for a non-serif font. + + In \LaTeX{}, the line spacing is about 20\% of the font + size. With commands like \Macro{linespread} or, better, packages like + \Package{setspace} the line spacing can be changed. A wider line + spacing helps the eye to follow the line. A very wide line + spacing, on the other hand, disturbs reading because the eye has + to move a wide distance between lines. Also, the reader gets + uncomfortable because of the visible stripe effect. The uniform + gray value of the page gets spoiled. Still, with a wider line + spacing, the lines can be longer. + + Literature gives different values for good line lengths, depending + on the author. To some extent, this is due to the native language + of the author. Since the eye jumps from word to word, short words + make this task easier. Not considering language and font, a line + length of 60 to 70 letters including spaces and + punctuation is a usable compromise. This requires well-chosen line + spacing, but \LaTeX{}'s default is usually good enough. + + Before looking at the actual construction of the page layout, + there are some minor things to know. \LaTeX{} doesn't start the + first line of the text block at the upper edge of the text block, + but with a defined distance. Also, \LaTeX{} knows the commands + \Macro{raggedbottom} and \Macro{flushbottom}. \Macro{raggedbottom} + specifies that the last line of a page should be positioned + wherever it was calculated. This means that the position of this + line can be different on each page, up to the height of one line. + In double-sided documents this is usually unwanted. + \Macro{flushbottom} makes sure that the last line is always at the + lower edge of the text block. To achieve this, \LaTeX{} sometimes + needs to stretch vertical glue more than allowed. Paragraph skip + is such a stretchable, vertical glue, even when set to zero. In + order not to stretch the paragraph skip on normal pages where it + is the only stretchable glue, the height of the text block should + be a multiple of the height of the text line, including the + distance from the upper edge of the text block to the first line. + + This concludes the introduction to page layout as handled by + \KOMAScript. Now, we can begin with the actual construction.\par +\end{Explain} + + +\section{Page Layout Construction by Dividing} +\label{sec:typearea.divConstruction} + +\begin{Explain} + The easiest way to make sure that the text area has the same + ratios as the page is as follows: First, you subtract the + binding correction \Var{BCOR} from the inner edge of the paper. + Then you divide the rest of the page vertically into + \Var{DIV} rows of equal height. Next, you divide the page + horizontally into the same number (\Var{DIV}) of columns. Then you + take the uppermost row as the upper margin and the two lowermost + rows as the lower margin. If you print double-sided, you also take + the innermost column as the inner margin and the two outermost + columns as the outer margin. Then, you add the binding correction + \Var{BCOR} to the inner margin. The remainder of + the page is the text area. The width and the height of the text area result + automatically from the number of rows and columns \Var{DIV}. Since + the margins always need three rows/columns, \Var{DIV} must + be necessarily greater than three. + + In \KOMAScript, this kind of construction is implemented in the + \Package{typearea} package. For A4 paper, \Var{DIV} is predefined + according to the font size (see \autoref{tab:typearea.div}). If there is + no binding correction (\(\Var{BCOR} = 0\Unit{pt}\)), the results + roughly match the values of \autoref{tab:typearea.typearea}. + + In addition to the predefined values, you can specify \Var{BCOR} + and \Var{DIV} as options when loading the package (see + \autoref{sec:typearea.options}). There is also a command to + explicitly calculate the type area by providing these values as + parameters (also see \autoref{sec:typearea.options}). + + The \Package{typearea} package can determine the optimal value + of \Var{DIV} for the font used automatically. Again, see + \autoref{sec:typearea.options}.\par +\end{Explain} + + +\section{Page Layout Construction by Drawing a Circle} +\label{sec:typearea.circleConstruction} + +\begin{Explain} + In addition to the construction method previously described, a somewhat + more classical method can be found in the literature. Aim of this method is + not only identical ratios in the page proportions, but it is considered + optimal when the height of the text block is the same a the width of the + page. The exact method is described in \cite{JTsch87}. + + A disadvantage of this late dark age method is that the width of + the text area is not dependent on the font anymore. Thus, one + doesn't choose the text area to match the font, but the author or + typesetter has to choose the font according to the text area. This + can be considered a ``must''. + + In the \Package{typearea} package this construction is changed + slightly. By using a special (normally senseless) \Var{DIV} value + or a special package option, a \Var{DIV} value is chosen to match + the perfect values as closely as possible. See also + \autoref{sec:typearea.options}.\par +\end{Explain} + + +\section{Options and Macros to Influence the Page Layout} +\label{sec:typearea.options} + +The package \Package{typearea} offers two different user interfaces to +influence type area construction. The first method is to load the +package with options. For information on how to load packages and to +give package options, please refer to the \LaTeX{} literature, e.g. +\cite{lshort} and \cite{latex:usrguide}, or the examples given here. +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} + \Option{BCOR}\PName{Correction} +\end{Declaration}% +\BeginIndex{Option}{BCOR}% +With the \Option{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. + +This value will be used in the layout calculation automatically and +will be added to the inner or left margin respectively. You can use +any valid \TeX{} unit for \PName{Correction}. + +\begin{Example} + Assume you want to produce a financial report, which is to be printed on A4 + paper and bound in a folder. The rim of the folder covers + \(7{,}5\Unit{mm}\). Since the report is thin, only an additional + \(0{,}75\Unit{mm}\) are lost by folding when leafing through the pages. You + would use the following commands: +\begin{lstlisting} + \documentclass[a4paper]{report} + \usepackage[BCOR8.25mm]{typearea} +\end{lstlisting} + or, using a \KOMAScript-class: +\begin{lstlisting} + \documentclass[a4paper,BCOR8.25mm]{scrreprt} +\end{lstlisting} +\end{Example} + +Please note: if you use one of the \KOMAScript{} classes, this option +must be given as a class option. If you use another class, this only +works if the class has explicit support for typearea. So when using +the standard classes, you need to give the option when you load +\Package{typearea}. You can also use \Macro{PassOptionsToPackage} +(see \cite{latex:clsguide}) before you are loading +\Package{typearea}, this always works. +% +\EndIndex{Option}{BCOR} + +\begin{Declaration} + \Option{DIV}\PName{Factor} +\end{Declaration}% +\BeginIndex{Option}{DIV}% +\Option{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: the higher \PName{Factor}, the +bigger the resulting text area, and the smaller the margins. For +\PName{Factor}, you can use any integer value larger than 4. +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 +responsibility to choose a typographically acceptable line length +and to pay attention to the other parameters. + +In \autoref{tab:typearea.typearea} you'll find some page layout +values for the page format A4 without binding correction, with +varying \Var{DIV} factors. Font size is not taken into account. + +\begin{table} + \centering + \caption{Page layout values depending on \Var{DIV} for A4} + \begin{tabular}{ccccc} + \toprule + & \multicolumn{2}{c|}{Text area} & \multicolumn{2}{c}{Margins}\\ + \emph{DIV}& Width [mm] & Height [mm] & upper [mm] & inner [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} + Imagine you are writing meeting minutes with the + \Class{protocol}\footnote{The class \Class{protocol} is + hypothetical. This manual considers the ideal case where you have + a special class for every use.}-class. The whole thing is supposed to + be double sided. In your company, the Bookman font in 12\Unit{pt} + is used. This standard PostScript font is activated in {\LaTeX} + with the command \Macro{usepackage}\Parameter{bookman}. Bookman runs very + wide, that means, the characters are wide in relation to its + height. Because of that, the default for the \Var{DIV} value in + \Package{typearea} is too small for you. Instead of 12, you want 15. + The minutes will not be bound but punched and filed into a folder, + so you don't need any binding correction. Thus, you write: +\begin{lstlisting} + \documentclass[a4paper,twoside]{protocol} + \usepackage{bookman} + \usepackage[DIV15]{typearea} +\end{lstlisting} + After you are done you get told that the minutes are collected and + bound as a book by the end of the year. The binding is done as a + simple glue binding in a copy shop, since it is done just for ISO\,9000 + anyway and nobody will ever bother to look at the minutes again. For + binding you need \(12\Unit{mm}\) in average. So you change the options + for \Package{typearea} accordingly and use the ISO\,9000 document class: +\begin{lstlisting} + \documentclass[a4paper,twoside]{iso9000p} + \usepackage{bookman} + \usepackage[DIV15,BCOR12mm]{typearea} +\end{lstlisting} + Of course, you can also use a \KOMAScript{} class here: +\begin{lstlisting} + \documentclass[twoside,DIV15,BCOR12mm]{scrartcl} + \usepackage{bookman} +\end{lstlisting} + The option \Option{a4paper} was omitted using class \Class{scrartcl}, + because it's the default at all \KOMAScript{} classes. +\end{Example} +% +Please note: if you use one of the \KOMAScript{} classes, \Option{BCOR} must +be given as a class option. If you use another class, this only works if the +class has explicit support for typearea. So when using the standard classes, +you need to give \Option{BCOR} when you load \Package{typearea}. You can use +\Macro{PassOptionsToPackage} (see \cite{latex:clsguide}) too before you are +loading \Package{typearea}, this always works. +% +\EndIndex{Option}{DIV} + +\begin{Declaration} + \Option{DIVcalc}\\ + \Option{DIVclassic} +\end{Declaration}% +\BeginIndex{Option}{DIVcalc}% +\BeginIndex{Option}{DIVclassic}% +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 +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 +\autoref{sec:typearea.cfg}) with this option. + +\begin{table} + \centering + \caption{\label{tab:typearea.div}\PName{DIV} defaults for A4} + \begin{tabular}{lccc} + \toprule + Base font size: & 10\Unit{pt} & 11\Unit{pt} & 12\Unit{pt} \\ + \Var{DIV}: & 8 & 10 & 12 \\ + \bottomrule + \end{tabular} +\end{table} + +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}. + +\begin{Example} + In the example for \Option{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} +\end{lstlisting} +\end{Example} + + +\begin{Declaration} + \Macro{typearea}\OParameter{BCOR}\Parameter{DIV} +\end{Declaration}% +\BeginIndex{Cmd}{typearea}% +If you followed the examples till here, you'll ask yourself how +one can make the calculation of \Var{DIV} depend on the selected +font when one uses one of the \KOMAScript{} classes. Then the +options to \Package{typearea} would have to be made before loading +the e.g. \Package{bookman} package. In this case, +\Package{typearea} could only calculate the page layout for the +standard font, but not for the Bookman font which is really +used. 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 +(normally invalid) value~\(1\) is given; with the option +\Option{DIVclassic} 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 + \PName{DIV}-parameter: +\begin{lstlisting} + \documentclass[BCOR12mm,DIVcalc,twoside]{scrartcl} + \usepackage{bookman} + \typearea[12mm]{1}% same as class options above +\end{lstlisting} + Again option \Option{a4paper} was not used explicitly, because it's the + default of the \KOMAScript{} class \Class{scrartcl}. +\end{Example} + +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 +symbolic values for the parameter \PName{DIV} are listed at +\autoref{tab:symbolicDIV}. + +\begin{table} + \caption[{Available symbolic \PName{DIV} values for + \Macro{typearea}}]{Available symbolic \PName{DIV} values for + \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}} + \label{tab:symbolicDIV} + \begin{desctabular} + \pventry{calc}{re-calculate page layout and determine \Var{DIV}.}% + \pventry{classic}{re-calculate page layout using the classical method + (circle).}% + \pventry{current}{re-calculate page layout with current value of + \Var{DIV}.}% + \pventry{default}{re-calculate page layout with default values for the + current page- and font size. If no default values exist, apply + \PValue{calc}.}% + \pventry{last}{re-calculate page layout using the same + \PName{DIV}-argument, which was set last time.}% + \end{desctabular} +\end{table} + +The \Macro{typearea} also understands the symbolic values for the parameter +\PName{BCOR} shown in \autoref{tab:symbolicBCOR}. Thus it is not neccesary to +re-enter the current value. + +\begin{table} + \caption[{Available symbolic \PName{BCOR} values for + \Macro{typearea}}]{Available symbolic \PName{BCOR} values for + \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}} + \label{tab:symbolicBCOR} + \begin{desctabular} + \pventry{current}{Re-calculate page layout using the current value for + \Var{BCOR}.}% + \end{desctabular} +\end{table} + +\begin{Example} + Thus calculating a good page layout for the Bookman font and a + \KOMAScript-class is easy when we use symbolic parameter values for + \PName{BCOR} and \PName{DIV}: +\begin{lstlisting} + \documentclass[BCOR12mm,DIVcalc,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} + \usepackage{bookman} + \typearea[current]{last} +\end{lstlisting} + or the old method: +\begin{lstlisting} + \documentclass[a4paper,twoside]{scrartcl} + \usepackage{bookman} + \typearea[12mm]{11} +\end{lstlisting} + In the end it is a matter of personal taste which of these solution you want + to use. +\end{Example} + +Frequently the re-calculation of the page layout is necessary +because the line spacing was changed. Since it is essential that +an integer number of lines fit into the text area, any change in +line spacing requires a re-calculation of page layout. + +\begin{Example} + Assume you want to write a thesis and university regulations require a font + size of 10\Unit{pt} with one and a half line spacing. {\LaTeX} uses by + default a line spacing of 2\Unit{pt} at font size 10\Unit{pt}. Thus a + stretch-factor of 1.25 is required. Let us also assume that binding + correction needs 12\Unit{mm}. Then you might use: +\begin{lstlisting} + \documentclass[10pt,twoside,% + BCOR12mm,DIVcalc]{scrreprt} + \linespread{1.25} + \typearea[current]{last} +\end{lstlisting}\IndexCmd{linespread} + \Macro{typearea} automaticly calls \Macro{normalsize}. So it is not + neccessary to use \Macro{selectfont} after \Macro{linespread} to activate + the changed line spacing before re-calclulation of the page layout. + + The same example again, using the \Package{setspace} package (see + \cite{package:setspace}): +\begin{lstlisting} + \documentclass[10pt,twoside,% + BCOR12mm,DIVcalc]{scrreprt} + \usepackage{setspace} + \onehalfspacing + \typearea[current]{last} +\end{lstlisting} + Using the \Package{setspace}-package simplifies things, because you no + longer need to calculate the correct stretch-factor, and you no longer need + the \Macro{selectfont} macro. + + In this context it is appropriate to point out that the line spacing should + be reset for the title page. A complete example therefore would look like + this: +\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} + See also the notes in \autoref{sec:typearea.tips}. +\end{Example} + +\begin{Explain} + The command \Macro{typearea} is currently defined in such a way that it is + possible to change the page layout in the middle of a text. This however + makes assumptions about the inner workings of the \LaTeX-kernel and changes + some internal values and definitions of that kernel. There is some + probability, but no guarantee that this will also work in future versions of + \LaTeX. It must be assumed that this method will not give correct results + in \LaTeX3. However, as author of \KOMAScript{} I expect considerable + incompatibilities when we change to \LaTeX3.% +\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}% +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 +question appears trivial: Borders are those parts on the right, left, top and +bottom which remain empty. But this is only half of it. Borders are not always +empty. There could be marginals, for example (for the +\Macro{marginpar} command refer to \cite{lshort} or +\autoref{sec:maincls.marginNotes}). + +One could also ask, whether headers and footers belong to the upper +and lower borders or to the text. This can not be answered +unambiguously. Of course an empty footer or header belong to the +borders, since they can not be distinguished from the rest of the +border. A header or footer, that contains only a page number, will +optically appear more like border. For the optical appearance it is +not important whether headers or footers are easily recognised as such +during reading. Important is only, how a well filled page appears +when viewed out of focus. You could use the glasses of your +far-sighted grand parents, or, lacking those, adjust your vision to +infinity and look at the page with one eye only. Those wearing +spectacles will find this much easier, of course. If the footer +contains not only the page number, but other material like a copyright +notice, it will optically appear more like a part of the text body. +This needs to be taken into account when calculating text layout. + +For the header this is even more complicated. The header frequently +contains running heads \Index[indexmain]{running head}. In case of +running heads with long chapter and section titles the header lines +will be very long and appear to be part of the text body. This effect +becomes even more significant when the header contains not only the +chapter or section title but also the page number. With material on +the right and left side, the header will no longer appear as empty +border. If the length of the titles varies, the header may appear as +border on one page and as text on another. However, this pages should +not be treated differently under any circumstances, as this would lead +to jumping headers. In this case it is probably best to count the +header with the text. + +The decision is easy when text and header or footer are separated +from the text body by a line. This will give a ``closed'' +appearance and header or footer become part of the text body. +Remember: It is irrelevant that the line improves the optical +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}). +% +\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}% +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-side or two-side 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 + margin-note area is required. In many cases not the whole margin-note width + should be part of the text area, for example if the margin is used for + quotations. Such quotations are typeset as ragged text with the flushed + side where the text body is. Since ragged text gives no homogeneous optical + impression the long lines can reach right into the normal margin. This can + be done using option \Option{mpinclude} and by an enlargement of length + \Length{marginparwidth} after the type-area has been setup. The length can + be easily enlarged with the command \Macro{addtolength}. How much the the + length has to be enlarged depends on the special situation and it requires + some flair. Therefore the option is primarily for experts. Of course one + can setup the margin-width to reach a third right into the normal margin, + for example using + \begin{lstlisting} + \setlength{\marginparwidth}{1.5\marginparwidth} + \end{lstlisting} + gives the desired result. + + Currently there is no option to enlarge the margin by a given amount. The + only solution is that the option \Option{mpinclude} is not used, but after + the type-area has been calculated one reduces the width of the text-body + \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}. +\end{Explain} +% +\EndIndex{Option}{mpinclude}% +\EndIndex{Option}{mpexclude}% + + +\begin{Declaration} + \PName{Value}\Option{headlines} +\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 +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 +relative weight of the top border is not affected to much when +the header is not underlined. Thus in most cases you may leave +\Option{headlines} at its default value and adapt it only in +special cases. + +\begin{Example} + Assume that you want to use a header with two lines. Normally this would + result in a "`\texttt{overfull} \Macro{vbox}"' warning for each page. To + prevent this from hapening, the \Package{typearea}-package is told to + calculate an appropriate page layout: +\begin{lstlisting} + \documentclass[a4paper]{article} + \usepackage[2.1headlines]{typearea} +\end{lstlisting} + If you use a \KOMAScript{} class this must be given as a class option: +\begin{lstlisting} + \documentclass[a4paper,2.1headlines]{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}. +\end{Example} + +If you use a \KOMAScript{} class, this option must be given as +class option. With other classes this works only, if these classes explicitly +supports \Package{typearea}. If you use the standard classes, the option must +be given when loading \Package{typearea}. \Macro{PassOptionsToPackage} will +work in both cases (see also \cite{latex:clsguide}). +% +\EndIndex{Option}{headlines} + +\begin{Declaration} + \Macro{areaset}\OParameter{BCOR}\Parameter{Width}\Parameter{Height} +\end{Declaration}% +\BeginIndex{Cmd}{areaset}% +So far we have seen how a good or even very good page layout is +calculated and how the \Package{typearea}-package can support these +calculations, giving you at the same time the freedom to adapt the +layout to your needs. However, there are cases where the text body +has to fit exactly into specified dimensions. At the same time the +borders should be well spaced and a binding correction should be +possible. The \Package{typearea}-package offers the command +\Macro{areaset} for this purpose. As parameters this command accepts +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} +where needed. + +\begin{Example} + Assume a text, printed on A4 paper, should have a width of exactly 60 + characters of typewriter-font and a height of exactly 30 lines. This could + be achieved as follows: +\begin{lstlisting} + \documentclass[a4paper,11pt]{article} + \usepackage{typearea} + \newlength{\CharsLX}% Width of 60 characters + \newlength{\LinesXXX}% Height of 30 lines + \settowidth{\CharsLX}{\texttt{1234567890}} + \setlength{\CharsLX}{6\CharsLX} + \setlength{\LinesXXX}{\topskip} + \addtolength{\LinesXXX}{30\baselineskip} + \areaset{\CharsLX}{\LinesXXX} +\end{lstlisting} + +\item A poetry book with a square text body with a page length of + 15\Unit{cm} and a binding correction of 1\Unit{cm} could be + achieved like this: +\begin{lstlisting} + \documentclass{gedichte} + \usepackage{typearea} + \areaset[1cm]{15cm}{15cm} +\end{lstlisting} +\end{Example} +\EndIndex{Cmd}{areaset} + +The \Package{typearea} package was not made to set up predefined margin +values. If you have to do so you may use package \Package{geometry} (see +\cite{package:geometry}). + + +\section{Options and Macros for Paper Format Selection} +\label{sec:typearea.paperTypes} + +\Index{paper format}% +The \LaTeX standard classes support the options \Option{a4paper}, +\Option{a5paper}, \Option{b5paper}, \Option{letterpaper}, +\Option{legalpaper} and \Option{executivepaper}. +\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{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}{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. + +Alternatively the paper size can be adjusted with the macro +\Macro{isopaper}. This however required re-calculation of the +text layout with \Macro{typearea} or \Macro{areaset}. I do not +recommend the use of \Macro{isopaper}. + +\begin{Example} + Assume you want to print on ISO-A8 file cards in landscape + orientation. Borders should be very small, no header or footer + will be used. +\begin{lstlisting} + \documentclass{article} + \usepackage[headexclude,footexclude, + a8paper,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 + \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. +% +\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}% +Particularly exotic paper sizes can be defined using the lengths +\Macro{paperwidth} and \Macro{paperheight}. +This requires the re-calculation of the text layout using the +commands \Macro{typearea} or \Macro{areaset}. +% +\begin{Example} +Assume you want to print on endless paper with the dimensions +\(8\frac{1}{4}\Unit{inch} \times 12\Unit{inch}\). This format is +not directly supported by \Package{typearea}. Thus you have to +define it befor calculating the text layout: +\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}% + These mechanisms will set internal \LaTeX{} dimensions to values that + header, text body and footer can be printed on paper of the given + size. However, the specifications of the DVI-format\index{DVI} do + not allow the paper format to be specified. If DVI is translated + directly into a low level printer language like PCL (Hewlett-Packard + printers) or Esc-P (Epson), this is usually not important, because + in all these cases the origin is the upper left corner. If however + the DVI-source is translated into languages like + PostScript\Index{PostScript} or PDF\Index{PDF}, that have an origin + in a different position and also contain the paper size explicitly, + the required information is not available in the DVI-file. To solve + this problem the DVI-driver will use the default paper size, which + the user may set per option or in the \TeX-source. In case of the + DVI-driver \File{dvips} this can be done with a + \Macro{special}-command. For {pdf\TeX} two dimensions are set + instead. +\end{Explain} +The option \Option{dvips} writes the paper size as a \Macro{special} +into the DVI-file. This macro is then evaluated by \File{dvips}. +\Option{pdftex} on the other hand writes the paper size into the +pdf\TeX{} page register at the beginning of the document, so that the +correct paper size is used when the resulting PDF-file is viewed or +printed. The option \Option{pagesize} is more flexible and uses the +correct mechanism if either a PDF- or DVI-file is produced. +% +\begin{Example} + Assume you want to create a DVI-file from a document and an + online version in PDF. Then the preamble could look like this: +\begin{lstlisting} + \documentclass{article} + \usepackage[a4paper,pagesize]{typearea} +\end{lstlisting} + If the file is run through {pdf\TeX} then the lengths + \Macro{pdfpagewidth} and \Macro{pdfpageheight} will be set to + appropriate values. If on the other hand you create a DVI-file -- + either with {\LaTeX} or {pdf\LaTeX} -- a \Macro{special} will be + written to the beginning of the file. +\end{Example}\IndexCmd{pdfpagewidth}\IndexCmd{pdfpageheight} +\EndIndex{Option}{dvips}% +\EndIndex{Option}{pdftex}% +\EndIndex{Option}{pagesize}% + +\section{Odd Bits without Direct Relevance to Text Layout} +\label{sec:typearea.else} + +\begin{Declaration} + \Macro{ifpdfoutput}\Parameter{then}\Parameter{else} +\end{Declaration}% +\BeginIndex{Cmd}{ifpdfoutput}% +Sometimes it would be nice if certain things would be done +differently in a file, depending on output format. \TeX{} normally +uses DVI as output format. With {pdf\TeX} however we now have the +option to create PDF-files directly. The command +\Macro{ifpdfoutput} is a branching command. If PDF-output is +active, the \PName{then} branch will be executed, if PDF-output +is inactive or {pdf\TeX} is not used at all, the +\PName{else} branch. +\begin{Example} + As you may know {pdf\LaTeX} will produce a DVI-file instead of a + PDF-file, if the counter \Macro{pdfoutput} is assigned the value 0. + Only is the counter is assigned a value different from 0 output is + switched to PDF. Since \Macro{pdfoutput} is unknown when {\LaTeX} is + used instead of {pdf\LaTeX}, \Macro{pdfoutput} can not be set to 0 + generally, if you want DVI-output. A simple solution to this problem + is to execute following command: +\begin{lstlisting} + \ifpdfoutput{\pdfoutput=0}{} +\end{lstlisting} + This only works after loading \Package{typearea} package. If you + want the line above to be executed after af package, which set's + \Macro{pdfoutput} to 1 whenever the counter exist, you may combine + it with the \Macro{AfterPackage}\IndexCmd{AfterPackage} command + from \Package{scrlfile} package (see \autoref{cha:scrlfile}). +\end{Example}\IndexCmd{pdfoutput} +\EndIndex{Cmd}{ifpdfoutput} + +\section{Local Defaults in the File \File{typearea.cfg}} +\label{sec:typearea.cfg} +Even before the packet options are used, \Package{typearea} will check +for the presence of the file +\File{typearea.cfg}\IndexFile{typearea.cfg} and, if found, load it. +Thus it is possble to define in this file the parameters for +additional paper sizes. + +\begin{Declaration} + \Macro{SetDIVList}\Parameter{List} +\end{Declaration}% +\BeginIndex{Cmd}{SetDIVList}% +\begin{Explain}% + The \Macro{SetDIVList}-parameter was also intended for use in this + file. Befor the option \Option{DIVcalc} 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 + parenthesis. The leftmost value is the font size, \(10\Unit{pt}\), + the next for \(11\Unit{pt}\), the third for \(12\Unit{pt}\) and so + on. If you don't use \Macro{SetDIVList} the predefined + \Macro{SetDIVList}% + \PParameter{\PParameter{8}\PParameter{10}\PParameter{12}} will be + used. If no default value is given for a particular font size, + \(10\) will be used. +\end{Explain} + +This command should no longer be used, automatic calculation of text +layout is recommended instead (see +\autoref{sec:typearea.options}). +% +\EndIndex{Cmd}{SetDIVList} + +\section{Hints} +\label{sec:typearea.tips} +\begin{Explain} + In particular for thesis many rules exist that violate even the most + elementary rules of typography. The reasons for such rules include + typographical incompetence of those making them, but also the fact that they + were originally meant for mechanical typewriters. With a typewriter or a + primitive text processor dating back to the early ´80s it is not possible to + produce typographically correct output without extreme effort. Thus rules + were created that appeared to be achievable and still allowed easy + correction. To avoid short lines made worse by ragged margins the borders + were kept narrow, and the line spacing increased to 1.5 for corrections. In + a single spaced document even correction signs would have been difficult to + add. When computers became widely available for text processing, some + students tried to use a particularly ``nice'' font to make their work look + better than it really was. They forgot however that such fonts are often + more difficult to read and therefore unsuitable for this purpose. Thus two + bread-and-butter fonts became widely used which neither fit together nor are + particularly suitable for the job. In particular Times is a relatively + narrow font which was developed at the beginning of the 20$^{th}$ century + for the narrow columns of British newspapers. Modern versions usually are + somewhat improved. But still the Times font required in many rules does not + really fit to the border sizes prescribed. + + {\LaTeX} already uses sufficient line spacing, and the borders are wide + enough for corrections. Thus a page will look generous, even when quite full + of text. With \Package{typearea} this is even more true, especially if the + calculation of line length is left to \Package{typearea} too. For fonts that + are sensitive to long lines the line length can easily be reduced. + + To some extend the questionable rules are difficult to implement in + {\LaTeX}. A fixed number of characters per line can be kept only when a + non-proportional font is used. There are very few good non-proportional + fonts around. Hardly a text typeset in this way looks really good. In many + cases font designers try to increase the serifes on the `i' or `l' to + compensate for the different character width. This can not work and results + in a fragmented and agitated looking text. If you use {\LaTeX} for your + paper, some of these rules have to be either ignored or at least interpreted + generously. For example you may interpret ``60 characters per line'' not as + a fixed, but average or maximal value.% +\end{Explain} + +As executed, record regulations are usually meant to obtaining an +useful result even if the author does not know, what to be consider +thereby. Usefully means frequently: readable and correctable. In my +opinion the type-area of a text set with \LaTeX{} and the +\Package{typearea} package becomes well done from the beginning fair. +Thus if you are confronted with regulations, which deviate obviously +substantially from it, then I recommend to submit a text single dump +to the responsible person and inquire whether it is permitted to +supply the work despite the deviations in this form. If necessary the +type-area can be moderately adapted by modification of option +\Option{DIV}. I advise against use of \Macro{areaset} for this +purpose however. At worst you may use geometry package (see +\cite{package:geometry}), which is not part of \KOMAScript{}, or +change the type-area parameters of \LaTeX. You may find the values +determined by \Package{typearea} at the log file of your document. +Thus moderate adjustments should be possible. However absolutely make +sure that the proportions of the text area correspond approximate with +those the page with consideration of the binding correction. + +If it should be absolutely necessary to set the text +one-and-a-half-lined then you should not redefine +\Macro{baselinestretch} under any circumstances. Although this +procedure is recommended very frequently, it is however obsolet since +the introduction of \LaTeXe{} in 1994. Use at least the instruction +\Macro{linespread}. I recommend package \Package{setspace} (see +\cite{package:setspace}), which is not part of \KOMAScript. Also you +should use \Package{typearea} to calculate a new type-area after the +conversion of the line space. However you should switch back to the +normal line space for the title, better also for the +directories\,---\,as well as the bibliography and the index. The +\Package{setspace} package offers for this a special environment and +own instructions. + +The \Package{typearea} package even with option \Option{DIVcalc} +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 +respective document. Thus you can select a smaller value easily after +the first \LaTeX{} run. + +The question is asked to me not rarely, why I actually talk section by +section about a type-area calculation, while it would be very many +simpler, only to give you a package, with which one can adjust the +edges as during a text processing. Often also one states, such a +package would be anyway the better solution, since everyone knew, how +good edges are to be selected, and the edges from {\KOMAScript} anyway +would not be well. I take the liberty of translating a suitable +quotation from \cite{TYPO:ErsteHilfe}. You may find the original +german words at the german scrguide. + +\begin{quote} + \phantomsection\label{sec:typearea.tips.cite}% + \textit{The making by oneself is long usually, the results are often + doubtful, because layman typographers do not see, what is correct + and cannot not know, on what it important. Thus one gets + accustomed to false and bad typography.} [\dots] \textit{Now the + objection could come, typography is nevertheless taste thing. If + it concerned decoration, perhaps one could let apply the argument, + since it concerns however primarily information with typography, + errors cannot only disturb, but even cause damage.} +\end{quote} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../guide" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/Makefile b/Master/texmf-dist/source/latex/koma-script/doc/german/Makefile new file mode 100644 index 00000000000..7d340456b7e --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/german/Makefile @@ -0,0 +1,50 @@ +# ====================================================================== +# Makefile +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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 +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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. +# ====================================================================== + +# ---------------------------------------------------------------------- +# Directory with basics +BASEDIR ?= $(PWD)/../../ +DOCDIR = $(BASEDIR)doc/ +# language +LANGUAGE = german +LANGUAGESHORTCUT = de +LANGUAGELONG = ngerman + +include $(DOCDIR)Makefile.guide + +# +# end of file `Makefile' diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/adrconvnote.tex b/Master/texmf-dist/source/latex/koma-script/doc/german/adrconvnote.tex new file mode 100644 index 00000000000..3957940fe9b --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/german/adrconvnote.tex @@ -0,0 +1,98 @@ +% ====================================================================== +% adrconvnote.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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. +% ---------------------------------------------------------------------- +% adrconvnote.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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 adrconv of the KOMA-Script guide +% Maintained by Jens-Uwe Morawski (with help from Markus Kohm) +% +% ---------------------------------------------------------------------- +% +% Kapitel über adrconv in der KOMA-Script-Anleitung +% Verwaltet von Jens-Uwe Morawski (mit Unterstützung von Markus Kohm) +% +% ====================================================================== + +\ProvidesFile{adrconvnote.tex}[{2005/08/10 KOMA-Script guide (chapter: + adrconv)}] + +\chapter{Adressdateien aus Adressdatenbanken}% +\labelbase{addrconv}% +\index{Adressdatei}% +\index{Adressdatenbank}% +\IndexPackage{addrconv} + +In früheren Versionen von \KOMAScript{} war das Paket +\Package{addrconv} ein fester Bestandteil des +\KOMAScript{}-Systems. +Die hauptsächliche Verflechtung mit \KOMAScript{} +bestand darin, dass mit Hilfe dieses Paketes aus +Adressdatenbanken im \BibTeX-Format Adressdateien +für die \KOMAScript-Briefklasse oder für das +\Package{scraddr}-Paket erstellt werden konnten. + +\begin{lstlisting} + @address{HMUS, + name = {Hans Mustermann}, + title = {Mag. art.}, + city = {Heimstatt}, + zip = 01234, + country = {Germany}, + street = {Mauerstra{\ss}e 1}, + phone = {01234 / 5 67 89}, + note = {Alles nur Erfindung}, + key = {HMUS}, + } +\end{lstlisting} + +Aus Einträgen wie dem obenstehenden können mit Hilfe +von \BibTeX{} und verschiedenen \BibTeX-Stilen die +Adressdateien erstellt werden. +Weiterhin gibt es spezielle \LaTeX-Dateien, die es ermöglichen, +aus den Adressdateien Telefon- und Adressverzeichnisse +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}"', +ersetzt \Package{addrconv} vollständig. Es muss, falls nicht bereits in Ihrer +\TeX-Distribution enthalten, von \cite{package:adrconv} separat bezogen und +installiert werden. + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../guide" +%%% 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/german/guide-ngerman.tex new file mode 100644 index 00000000000..13e2065b423 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/german/guide-ngerman.tex @@ -0,0 +1,443 @@ +% ====================================================================== +% guide-ngerman.tex +% Copyright (c) Markus Kohm, 2002-2006 +% +% 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-ngerman.tex +% Copyright (c) Markus Kohm, 2002-2006 +% +% 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. +% ====================================================================== +% +% Language dependencies (ngerman) of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Sprachabhängigkeiten (ngerman) der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ====================================================================== +% +\ProvidesFile{guide-ngerman.tex}[{2006/05/10 + KOMA-Script guide language dependencies}] +% +% \section{Title} +% +% \begin{macro}{\GuideSubject} +% \begin{macro}{\GuideTitle} +% \begin{macro}{\GuideSubTitle} +% \begin{macro}{\GuideAuthorHeadline} +% \begin{macro}{\GuideWarrantyHeadline} +% \begin{macro}{\GuideWarranty} +% \begin{macro}{\GuideCopyright} +% \begin{macro}{\GuideDedication} +% Language dependencies of all the title pages. +% \begin{macrocode} +\newcommand*{\GuideSubject}{Die Anleitung} +\newcommand*{\GuideTitle}{\KOMAScript}% +\newcommand*{\GuideSubTitle}{ein wandelbares \LaTeXe-Paket}% +\newcommand*{\GuideAuthorHeadline}{Autoren des \KOMAScript-Pakets}% +\newcommand*{\GuideWarrantyHeadline}{Rechtliche Hinweise:}% +\newcommand*{\GuideWarranty}{Die Autoren dieser Anleitung sind in ihrer + Eigenschaft als Autoren dieser Anleitung nicht verantwortlich für die + Funktion oder Fehler der in dieser Anleitung beschriebenen Software. Bei der + Erstellung von Texten und Abbildungen wurde mit größter Sorgfalt + vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen + werden.\par\medskip% + Die Autoren können jedoch für fehlerhafte Angaben und deren Folgen weder + eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für + Verbesserungsvorschläge und Hinweise auf Fehler sind die Autoren + 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.}% +\newcommand*{\GuideCopyright}{Freie Bildschirm-Version ohne Optimierung des + Umbruchs\par\medskip% + Diese Anleitung ist als Bestandteil von \KOMAScript{} frei im Sinne der + \LaTeX{} Project Public License Version 1.3b. Eine für \KOMAScript{} gültige + deutsche Übersetzung liegt \KOMAScript{} in der Datei »\texttt{lppl-de.txt}« + bei. Diese Anleitung --~auch in gedruckter Form~-- darf nur zusammen mit den + übrigen Bestandteilen von \KOMAScript{} weitergegeben und verteilt werden. + Eine Verteilung der Anleitung unabhängig von den übrigen Bestandteilen von + \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.}% +\newcommand*{\GuideDedication}{Den Freunden der Typografie!}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \section{CTAN Server to be Used} +% +% \begin{macro}{\GuideCTANserver} +% \begin{macrocode} +\newcommand*{\GuideCTANserver}{ftp.dante.de} +% \end{macrocode} +% \end{macro} +% +% +% \section{Terms} +% +% Some terms, e.g. used at index notes. +% +% \begin{macro}{\GuideClass} +% The term »class«. +% \begin{macrocode} +\newcommand*{\GuideClass}{Klasse} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideCounter} +% The term »counter«. +% \begin{macrocode} +\newcommand*{\GuideCounter}{Zähler} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideEnvironment} +% The term »environment«. +% \begin{macrocode} +\newcommand*{\GuideEnvironment}{Umgebung} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideExample} +% The term »Example« used at a kind of heading, so it should be upper case. +% \begin{macrocode} +\newcommand*{\GuideExample}{Beispiel} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideFile} +% The term »file«. +% \begin{macrocode} +\newcommand*{\GuideFile}{Datei} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideFloatstyle} +% The term »\Package{float} style«. +% \begin{macrocode} +\newcommand*{\GuideFloatstyle}{\Package{float}-Stil} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideFontElement} +% The term »element«. +% \begin{macrocode} +\newcommand*{\GuideFontElement}{Element} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideLength} +% The term »length«. +% \begin{macrocode} +\newcommand*{\GuideLength}{Länge} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuideMacro} +% \begin{macro}{\GuideCommand} +% The term »command«. +% \begin{macrocode} +\newcommand*{\GuideMacro}{Befehl} +\let\GuideCommand\GuideMacro +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\GuideOption} +% The term »option«. +% \begin{macrocode} +\newcommand*{\GuideOption}{Option} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuidePackage} +% The term »package«. +% \begin{macrocode} +\newcommand*{\GuidePackage}{Paket} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuidePagestyle} +% The term »page style«. +% \begin{macrocode} +\newcommand*{\GuidePagestyle}{Seitenstil} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GuidePLength} +% \begin{macro}{\GuidePseudoPrefix} +% The prefix »pseudo« at the term »pseudo length« and the term itself. +% \begin{macrocode} +\newcommand*{\GuidePseudoPrefix}{Pseudo-} +\newcommand*{\GuidePLength}{\GuidePseudoPrefix\GuideLength} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\GuideVariable} +% The termo »variable«. +% \begin{macrocode} +\newcommand*{\GuideVariable}{Variable} +% \end{macrocode} +% \end{macro} +% +% +% \section{Index} +% +% \begin{macro}{\GuidegenIndex} +% \begin{macro}{\GuidecmdIndex} +% \begin{macro}{\GuidecmdIndexShort} +% \begin{macro}{\GuidelenIndex} +% \begin{macro}{\GuidelenIndexShort} +% \begin{macro}{\GuideelmIndex} +% \begin{macro}{\GuideelmIndexShort} +% \begin{macro}{\GuidefilIndex} +% \begin{macro}{\GuidefilIndexShort} +% \begin{macro}{\GuideoptIndex} +% \begin{macro}{\GuideoptIndexShort} +% The titles and short titles of each single index. +\newcommand*{\GuidegenIndex}{Allgemeiner Index} +\newcommand*{\GuidecmdIndex}{Index der Befehle, Umgebungen und + Variablen} +\newcommand*{\GuidecmdIndexShort}{Index der Befehle etc.} +\newcommand*{\GuidelenIndex}{Index der L\"angen und Z\"ahler} +\newcommand*{\GuidelenIndexShort}{Index der L\"angen etc.} +\newcommand*{\GuideelmIndex}{Index der Elemente mit + M\"oglichkeit zur Schriftumschaltung} +\newcommand*{\GuideelmIndexShort}{Index der Elemente} +\newcommand*{\GuidefilIndex}{Index der Dateien, Klassen und Pakete} +\newcommand*{\GuidefilIndexShort}{Index der Dateien etc.} +\newcommand*{\GuideoptIndex}{Index der Klassen- und + Paketoptionen} +\newcommand*{\GuideoptIndexShort}{Index der Optionen} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\GuideIndexPreamble} +% The preamble text of the whole index. +\newcommand*{\GuideIndexPreamble}{% + Fett hervorgehobene Zahlen geben die Seiten der Erkl\"arung zu einem + Stichwort wieder. Normal gedruckte Zahlen verweisen hingegen auf + Seiten mit zus\"atzlichen Informationen zum jeweiligen Stichwort.% +} +% \end{macro} +% +% +% \section{Bibliography} +% +% \begin{macro}{\GuideBibPreamble} +% \begin{macrocode} +\newcommand*{\GuideBibPreamble}{% + Sie finden im Folgenden eine ganze Reihe von Literaturangaben. Auf + all diese wird im Text verwiesen. In vielen F\"allen handelt es sich + um Dokumente oder ganze Verzeichnisse, die im Internet verf\"ugbar + sind. In diesen F\"allen ist statt eines Verlages eine URL angegeben. + Wird auf ein \LaTeX-Paket verwiesen, so findet der Verweis in der + Regel in der Form \glqq \url{CTAN://}\emph{Verweis}\grqq{} statt. + Der Pr\"afix \glqq \url{CTAN://}\grqq{} steht dabei f\"ur das + \TeX-Archiv eines jeden CTAN-Servers oder -Spiegels. Sie k\"onnen + den Pr\"afix beispielsweise durch + \url{ftp://\GuideCTANserver/tex-archive/} ersetzen. Bei + \LaTeX-Paketen ist au\ss erdem zu beachten, dass versucht wurde, + die Version anzugeben, auf die im Text Bezug genommen wurde. Bei + einigen Paketen war es mehr ein Ratespiel, eine einheitliche + Versionsnummer und ein Erscheinungsdatum zu finden. Auch muss die + angegebene Version nicht immer die neueste verf\"ugbare Version sein. + Wenn Sie sich ein Paket neu besorgen und installieren, sollten Sie + jedoch zun\"achst immer die aktuelle Version ausprobieren. Bevor Sie + ein Dokument oder Paket von einem Server herunterladen, sollten Sie + au\ss erdem \"uberpr\"ufen, ob es sich nicht bereits auf Ihrem + Rechner befindet. +} +% \end{macrocode} +% \end{macro} +% +% +% \section{Change Log} +% +% \begin{macro}{\GuideChangeLogPreamble} +% 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.% +} +% \end{macrocode} +% \end{macro} +% +% +% \section{Jens-Uwe's Example Text} +% +% TODO: These should be merged with other example text. +% \begin{macro}{\XmpText} +% Example text command; the default definition (50) returns the whole text. +% \begin{macrocode} +\newcommand*{\XmpText}[1][50]{% + \ifnum #1<51 + Dieser Blindtext wird gerade von 130 Millionen Rezeptoren + Ihrer Netzhaut erfasst. + \ifnum #1>1 + Die Zellen werden dadurch in einen Erregungs\char\defaulthyphenchar + \kern-1pt\linebreak + \ifnum #1>2 + zustand versetzt, der sich vom Sehnerv in den + \ifnum #1>3 + hinteren Teil Ihres Gehirns ausbreitet. + Von dort aus \"ubertr\"agt sich die Erregung in + Sekundenbruchteilen auch in andere Bereiche Ihres + Gro\ss hirns. + Ihr Stirnlappen wird stimuliert. + Von dort aus gehen jetzt Willens\char\defaulthyphenchar + \kern-1pt\linebreak + \fi\fi\fi + \fi + \ifnum #1>49 + impulse aus, die Ihr zentrales Nervensystem in konkrete Handlungen + umsetzt. Kopf und Augen reagieren bereits. + Sie folgen dem Text, nehmen die darin enthaltenen Informationen + auf und leiten diese \"uber den Sehnerv weiter. + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\XmpTopText} +% \begin{macro}{\XmpBotText} +% These two commands are language-dependent, since in some languages +% additional commands may required. +% \begin{macrocode} +\newcommand*{\XmpTopText}{\XmpText[3]} +\newcommand*{\XmpBotText}{\XmpText[2]} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\XmpMarginTextA} +% \begin{macro}{\XmpMarginTextB} +% Margin notes. +% \begin{macrocode} +\newcommand*{\XmpMarginTextA}{Netzhaut} +\newcommand*{\XmpMarginTextB}{(\textit{Retina})} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \section{Language Extensions} +% +% Some terms should be part of the captions of the language. +% \begin{macro}{\GuideLanguageExtensions} +% This macro has to be defined, because the class will add it to the language +% at |\begin{document}| and it will also call it. +% \begin{macrocode} +\newcommand*{\GuideLanguageExtensions}{% +% \end{macrocode} +% \begin{macro}{\pageautorefname} +% The term »page« that will be put before the reference of a page set by +% |\autopageref|. +% \begin{macrocode} + \let\pageautorefname\pagename +% \end{macrocode} +% \end{macro} +% \begin{macro}{\subsectionautorefname} +% \begin{macro}{\subsubsectionautorefname} +% \begin{macro}{\paragraphautorefname} +% \begin{macro}{\subparagraphautorefname} +% I'll call them all »section«. +% \begin{macrocode} + \let\subsectionautorefname=\sectionautorefname + \let\subsubsectionautorefname=\sectionautorefname + \let\paragraphautorefname=\sectionrefname + \let\subparagraphautorefname=\sectionrefname +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\changelogname} +% The name of the change log index. +% \begin{macrocode} + \def\changelogname{\"Anderungliste} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +} +% \end{macrocode} +% \end{macro} +% +% +% \section{Hyphenation} +% +% This is not realy a good place to put them~-- but better late than never: +% \begin{macrocode} +\hyphenation{% + Stan-dard-an-wei-sung Stan-dard-an-wei-sung-en + Da-tei-na-me Da-tei-na-men Da-tei-na-mens + Pa-pier-rand Pa-pier-ran-des + Zei-len-um-bruch Zei-len-um-bruchs + Zei-len-um-brü-che Zei-len-um-brü-chen + } +% \end{macrocode} +% +% +% +\endinput +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: "guide" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/htmlsetup b/Master/texmf-dist/source/latex/koma-script/doc/german/htmlsetup new file mode 100644 index 00000000000..dbac284874b --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/german/htmlsetup @@ -0,0 +1,63 @@ +# ====================================================================== +# htmlsetup +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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. +# ---------------------------------------------------------------------- +# htmlsetup +# Copyright (c) Markus Kohm, 2002-2006 +# +# 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. +# ====================================================================== + +$baselink="scrguide.pdf"; +$htmlhead="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\"> +<html> +<head><title>Index</title> +<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"> +</head> +<body> +<h1>Index der KOMA-Script-Anleitung</h1> +<p>Dies ist ein Index der in KOMA-Script definierten Elemente. Dieser Index bezieht sich auf die <a href=\"scrguide.pdf\">KOMA-Script-Anleitung</a>. Zur besseren Ăśbersicht ist der Index in mehrere Funktionsgruppen unterteilt:</p> +"; +$htmlend="<p> +<a href=\"http://validator.w3.org/check?uri=referer\"><img +src=\"http://www.w3.org/Icons/valid-html40\" +alt=\"Valid HTML 4.0 Strict\" height=\"31\" width=\"88\"></a> +</p> +</body></html>"; +%titles=( "option" => "Optionen", + "macro" => "Anweisungen", + "environment" => "Umgebungen", + "plength" => "Pseudolängen", + "variable" => "Variablen", + "pagestyle" => "Seitenstile", + "counter" => "Zähler", + "floatstyle" => "Stile fĂĽr das float-Paket" ); + +# 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/german/introduction.tex new file mode 100644 index 00000000000..8016ce1efc1 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/german/introduction.tex @@ -0,0 +1,357 @@ +% ====================================================================== +% introduction.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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. +% ---------------------------------------------------------------------- +% introduction.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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. +% ====================================================================== +% +% Introduction of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Einleitung der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ====================================================================== + +\ProvidesFile{introduction.tex}[2006/07/05 KOMA-Script guide introduction] + +\chapter{Einleitung} +\labelbase{introduction} + +\section{Vorwort} +\label{sec:introduction.preface} + +{\KOMAScript} ist ein sehr komplexes Paket (engl. \emph{bundle}). Dies +ist schon allein darin begründet, dass es nicht nur aus einer einzigen +Klasse (engl. \emph{class}) oder einem einzigen Paket (engl. +\emph{package}), sondern einer Vielzahl derer besteht. Zwar sind die +Klassen als Gegenstücke zu den Standardklassen konzipiert (siehe +\autoref{cha:maincls}), das heißt jedoch insbesondere nicht, +dass sie nur über die Befehle, Umgebungen und Einstellmöglichkeiten +der Standardklassen verfügen oder deren Aussehen als +Standardeinstellung übernehmen. +Die Fähigkeiten von {\KOMAScript} reichen +teilweise weit über die Fähigkeiten der Standardklassen hinaus. +Manche davon sind auch als Ergänzung zu den Grundfähigkeiten des +\LaTeX-Kerns zu betrachten. + +Allein aus dem Vorgenannten ergibt sich schon zwangsläufig, dass die +Dokumentation zu {\KOMAScript} sehr umfangreich ausfällt. Hinzu kommt, +dass {\KOMAScript} in der Regel nicht gelehrt wird. Das heißt, es gibt +keinen Lehrer, der seine Schüler kennt und damit den Unterricht und +das Unterrichtsmaterial entsprechend wählen und anpassen kann. Es wäre +ein Leichtes, die Dokumentation für irgendeine Zielgruppe zu +verfassen. Die Schwierigkeit, der sich die Autoren gegenüber sehen, +besteht jedoch darin, dass eine Anleitung für alle möglichen +Zielgruppen benötigt wird. Wir haben uns bemüht, eine Anleitung zu +erstellen, die für den Informatiker gleichermaßen geeignet ist wie für +die Sekretärin des Fischhändlers. Wir haben uns bemüht, obwohl es sich +dabei eigentlich um ein unmögliches Unterfangen handelt. Ergebnis sind +zahlreiche Kompromisse. Wir bitten jedoch, die Problematik bei +eventuellen Beschwerden zu berücksichtigen und bei der Verbesserung +unserer derzeitigen Lösung zu helfen. + +Trotz des Umfangs der Anleitung bitten wir außerdem darum, im Falle von +Problemen zunächst die Dokumentation zu konsultieren. Als erste Anlaufstelle +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 +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 +konzentriert. Querverweise in ein anderes Kapitel sind damit in der Regel auch +Verweise auf einen anderen Teil des Gesamtpakets. Da die drei Hauptklassen in +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. + +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 +konkreter \PValue{Wert eines Parameters}. So zeigt etwa +\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}. + +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. + +\section{Die Geschichte von \KOMAScript} +\label{sec:introduction.history} + +\begin{Explain} + Anfang der 90er~Jahre wurde Frank Neukam damit beauf"|tragt, ein + Vorlesungsskript zu setzen. Damals war noch \LaTeX2.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 + nicht alle Befehle und Umgebungen, die er benötigte. + + Zur selben Zeit beschäftigte sich Frank auch mit Fragen der + Typografie, insbesondere mit \cite{JTsch87}. Damit stand für ihn + fest, nicht nur irgendeinen Dokumentstil für Skripten zu erstellen, + 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. + + 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}. + + 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} + + +\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. + +Ganz besonderen Dank bin ich den Gründern von DANTE, Deutschsprachige +Anwendervereinigung \TeX~e.V\kern-.18em., schuldig, durch die letztlich die +Verbreitung von \TeX{} und \LaTeX{} und allen Paketen einschließlich +{\KOMAScript} an einer zentralen Stelle überhaupt ermöglicht wird. In gleicher +Weise bedanke ich mich bei den aktiven Helfern auf der Mailingliste +\texttt{\TeX-D-L} (siehe \cite{DANTE:FAQ}) und in der Usenet-Gruppe +\texttt{de.comp.text.tex}, die mir so manche Antwort auf Fragen zu +{\KOMAScript} abnehmen. + +\section{Rechtliches} +\label{sec:introduction.legal} + +{\KOMAScript} steht unter der {\LaTeX} Project Public Licence. Eine nicht +offizielle deutsche Übersetzung ist Bestandteil des \KOMAScript-Pakets. In +allen Zweifelsfällen gilt im deutschsprachigen Raum der Text +\File{lppl-de.txt}, während in allen anderen Ländern der Text \File{lppl.txt} +anzuwenden ist. + +\iffree{Für die Korrektheit der Anleitung, Teile der Anleitung oder einer + anderen in diesem Paket enthaltenen Dokumentation wird keine Gewähr + übernommen.}% +{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. + + +\section{Fehlermeldungen, Fragen, Probleme} +\label{sec:introduction.errors} + +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 +wie folgt vorgehen. Prüfen Sie zunächst, ob inzwischen eine neue +Version von \KOMAScript{} erschienen ist. Installieren Sie diese neue +Version und kontrollieren Sie, ob der Fehler oder das +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. +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 +sehr häufig zu erkennen, welche Pakete oder Klassen konkret das +Problem verursachen und ob es sich überhaupt um ein +\KOMAScript-Problem handelt. Dies können Sie gegebenenfalls +zusätzlich überprüfen, indem Sie statt einer \KOMAScript-Klasse einen +Test mit der entsprechenden Standardklasse vornehmen. Danach ist dann +auch klar, ob der Fehlerbericht an den Autor von \KOMAScript{} oder an +den Autor eines anderen Pakets zu richten ist. Sie sollten spätestens +jetzt noch einmal gründlich die Anleitungen der entsprechenden Paket, +Klassen und \KOMAScript-Bestandteile studieren sowie \cite{DANTE:FAQ} +konsultieren. Möglicherweise existiert ja bereits eine Lösung für Ihr +Problem, so dass sich eine Fehlermeldung erübrigt. + +Wenn Sie denken, dass Sie einen noch unbekannten Fehler gefunden haben, oder +es aus anderem Grund für sinnvoll oder notwendig erachten, den +\KOMAScript-Autor zu kontaktieren, so sollten Sie dabei folgende Angaben +keinesfalls vergessen: +\begin{itemize} +\item Tritt das Problem auch auf, wenn statt einer \KOMAScript-Klasse eine + Standardklasse verwendet wird? In dem Fall liegt der Fehler höchst + wahrscheinlich nicht bei \KOMAScript. Es ist dann sinnvoller, die Frage in + einem öffentlichen Forum, einer Mailingliste oder im Usenet zu stellen. +\item Welche \KOMAScript-Version verwenden Sie? Entsprechende Informationen + finden Sie in der \File{log}-Datei des \LaTeX-Laufs jedes Dokuments, das + eine \KOMAScript-Klasse verwendet. +\item Welches Betriebssystem und welche \TeX-Distribution wird verwendet? + Diese Angaben erscheinen bei einem bestriebssystemunabhängigen Paket wie + \KOMAScript{} oder \LaTeX{} eher überflüssig. Es zeigt sich aber immer + wieder, dass sie durchaus eine Rolle spielen können. +\item Was genau ist das Problem oder der Fehler? Beschreiben Sie das Problem + oder den Fehler lieber zu ausführlich als zu knapp. Oftmals ist es sinnvoll + auch die Hintergründe zu erläutern. +\item Wie sieht ein vollständiges Minimalbeispiel aus? Ein solches + vollständiges Minimalbeispiel kann jeder leicht selbst erstellen, indem + Schritt für Schritt Inhalte und Pakete aus dem Problemdokument + auskommentiert werden. Am Ende bleibt ein Dokument, das nur die Pakete lädt + und nur die Teile enthält, die für das Problem notwendig sind. Außerdem + sollten alle geladenen Abbildungen durch \Macro{rule}-Anweisungen + entsprechender Größe ersetzt werden. Vor dem Verschicken entfernt man nun + die auskommentierten Teile, fügt als erste Zeile die Anweisung + \Macro{listfiles} ein und führt einen weiteren \LaTeX-Lauf durch. Man erhält + dann am Ende der \File{log}-Datei eine Übersicht über die verwendeten + Pakete. Das vollständige Minimalbeispiel und die \File{log}-Datei fügen Sie + ihrer Beschreibung hinzu. +\end{itemize} +Schicken Sie keine Pakete, PDF- oder PS- oder DVI-Dateien mit. Falls die +gesamte Problem- oder Fehlerbeschreibung einschließlich Minimalbeispiel und +\File{log}-Datei größer als ein paar Dutzend KByte ist, haben Sie mit größter +Wahrscheinlichkeit etwas falsch gemacht. Anderenfalls schicken Sie Ihre +Mitteilung an \href{mailto:komascript@gmx.info}{komascript@gmx.info}. + +Häufig werden Sie eine Frage zu \KOMAScript{} oder im Zusammenhang mit +\KOMAScript{} lieber öffentlich, beispielsweise in \texttt{de.comp.text.tex} +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. + + +\section{Weitere Informationen} +\label{sec:introduction.moreinfos} + +Sobald Sie im Umgang mit \KOMAScript{} geübt sind, werden Sie sich +möglicherweise Beispiele zu schwierigeren Aufgaben wünschen. Solche Beispiele +gehen über die Vermittlung von Grundwissen hinaus und sind daher\iffree{}{ + außer im Angang} nicht Bestandteil dieser Anleitung. Auf den Internetseiten +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 +%%% 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/german/scraddr.tex new file mode 100644 index 00000000000..d673f271e50 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/german/scraddr.tex @@ -0,0 +1,260 @@ +% ====================================================================== +% scraddr.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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. +% ---------------------------------------------------------------------- +% scraddr.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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 scraddr of the KOMA-Script guide +% Maintained by Jens-Uwe Morawski (with help from Markus Kohm) +% +% ---------------------------------------------------------------------- +% +% Kapitel über scraddr in der KOMA-Script-Anleitung +% Verwaltet von Jens-Uwe Morawski (mit Unterstützung von Markus Kohm) +% +% ====================================================================== + +\ProvidesFile{scraddr.tex}[2005/08/10 KOMA-Script guide (chapter: scraddr)] + +\chapter{Adressdateien mit \Package{scraddr} erschließen}% +\labelbase{scraddr}% +\BeginIndex{Package}{scraddr} + +\section{Überblick}\label{sec:scraddr.overview} +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. + +\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 +Namen der einzulesenden Adressdatei.\Index{Adressdatei} +Wird diese Datei nicht gefunden, wird ein Fehler ausgegeben. + +Für jeden Eintrag dieser Adressdatei wird eine Reihe von Makros generiert, +die es ermöglichen, auf die Daten der Adressdatei zuzugreifen. Es soll an +dieser Stelle nicht verschwiegen werden, dass dies bei großen Adressdateien +sehr viel \TeX-Speicher kostet. + +\begin{Declaration}% + \Macro{adrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}% + \Parameter{Tel.}\Parameter{F1}\Parameter{F2}% + \Parameter{Kommentar}\Parameter{Kürzel}\\ + % + \Macro{addrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}% + \Parameter{Tel.}\Parameter{F1}\Parameter{F2}% + \Parameter{F3}\Parameter{F4}\Parameter{Kürzel}\\ + % + \Macro{adrchar}\Parameter{Anfangsbuchstaben}\\ + \Macro{addrchar}\Parameter{Anfangsbuchstaben}% +\end{Declaration}% +\IndexCmd{adrentry}% +\IndexCmd{addrentry}% +\IndexCmd{adrchar}% +\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 +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}\\ +\Macro{LastName}\Parameter{Kürzel}\\ +\Macro{Address}\Parameter{Kürzel}\\ +\Macro{Telephone}\Parameter{Kürzel}\\ +\Macro{FreeI}\Parameter{Kürzel}\\ +\Macro{FreeII}\Parameter{Kürzel}\\ +\Macro{Comment}\Parameter{Kürzel}\\ +\Macro{FreeIII}\Parameter{Kürzel}\\ +\Macro{FreeIV}\Parameter{Kürzel} +\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}{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 +für \Macro{addrentry}-Einträge. Das bedeutet auch, dass dieses Argument +nicht leer sein darf. +Um eine sichere Funktionsweise zu garantieren, empfiehlt es sich, +das Kürzel nur als Folge von Buchstaben aufzubauen, +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. + +\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} + \addrentry{Beutlin}{Frodo}% + {Der Bühl\\ Beutelsend/Hobbingen im Auenland}{}% + {Bilbo Beutlin}{Rauchen von Pfeifenkraut}% + {der Ringträger}{Bilbos Erbe}{FRODO} + \adrentry{Gamdschie}{Samweis}% + {Beutelhaldenweg 3\\Hobbingen im Auenland}{}% + {Rosie Kattun}{Knullen}% + {des Ringträgers treuester Gefährte}{SAM} + \adrentry{Bombadil}{Tom}% + {Im Alten Wald}{}% + {Goldbeere}{trällern von Nonsensliedern}% + {Meister von Wald, Wasser und Berg}{TOM} +\end{lstlisting} + +Das vierte Argument, die Telefonnummer, wurde hier leer gelassen. +Erstens macht 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} + \InputAddressFile{lotr} +\end{lstlisting} + +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{letter}{\Name{TOM}\\\Address{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}. + + 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} + \end{letter} +\end{lstlisting} +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. + +Das fünf"|te und sechste Argument von \Macro{adrentry} und +\Macro{addrentry} steht zur freien Verfügung. +Mit den Makros \Macro{FreeI} und \Macro{FreeII} kann auf +diese Inhalte zugegriffen werden. Im vorliegenden Fall wurde +das fünf"|te Argument für die Person benutzt, die der Person des +Eintrags am nächsten steht. Das sechste Argument +enthält im Beispiel die besondere Vorliebe der jeweiligen Person. +Das siebente Argument ist ebenfalls ein freier Eintrag. Der Zugriff +erfolgt per \Macro{Comment} oder \Macro{FreeIII}. +Der Zugriff auf das vierte freie Argument mittels \Macro{FreeIV} +ist nur für \Macro{addrentry}-Einträge gültig. +Bei \Macro{adrentry}-Einträgen ist seine Verwendung nicht zulässig. Näheres +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 +\Package{scraddr} darauf reagiert, ist allerdings durch Paketoptionen +konfigurierbar. + + +\begin{Declaration} +\Option{adrFreeIVempty}\\ +\Option{adrFreeIVshow}\\ +\Option{adrFreeIVwarn}\\ +\Option{adrFreeIVstop} +\end{Declaration} +% +\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: +% +\begin{labeling}[~--]{\Option{adrFreeIVempty}} +\item[\Option{adrFreeIVempty}] + Der Befehl \Macro{FreeIV} wird einfach ignoriert. +\item[\Option{adrFreeIVshow}] + Die Warnung \glqq(entry FreeIV undefined at \PName{Kürzel})\grqq{} + wird in den Text geschrieben. +\item[\Option{adrFreeIVwarn}] + In der Log-Datei erscheint eine Warnung. +\item[\Option{adrFreeIVstop}] + Der \LaTeX{}-Lauf wird mit einer Fehlermeldung unterbrochen. +\end{labeling} +Zur Auswahl der gewünschten Reaktion wird die entsprechende Option beim Laden +des Pakets im optionalen Argument des \Macro{usepackage}-Befehls übergeben. +Die standardmäßige Einstellung für das Paket \Package{scraddr} ist die Option +\Option{adrFreeIVshow}.% +% +\EndIndex{Option}{adrFreeIVempty}\EndIndex{Option}{adrFreeIVshow} +\EndIndex{Option}{adrFreeIVwarn}\EndIndex{Option}{adrFreeIVstop} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../guide" +%%% End: 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 new file mode 100644 index 00000000000..5b84b4f18f2 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/german/scrbookreportarticle.tex @@ -0,0 +1,5297 @@ +% ====================================================================== +% scrbookreportarticle.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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-2006 +% +% 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}[2005/11/26 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{scrlettr} \\%& \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{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 & & \\ + \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 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}% + + +\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} 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 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{refloatstyle} auf Tabellen anwenden. Näheres zum \Package{float}-Paket +und \Macro{refloatstyle} 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}% +\ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}}% +Mit 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{descriptionlabel}{% + Labels, also das optionale Argument der \Macro{item}-Anweisung, in einer + \Environment{description}-Umgebung}% + \feentry{dictumauthor}{% + Urheber eines schlauen Spruchs; Anwendung erfolgt nach dem Element + \FontElement{dictumtext}}% + \feentry{dictumtext}{% + Text eines schlauen Spruchs (siehe Anweisung \Macro{dictum}% +% , \autoref{sec:maincls.structure} +% , \autopageref{desc:maincls.macro.dictum}% + )}% + \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{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{paragraph}{% + Überschrift der Ebene \Macro{paragraph}}% + \feentry{part}{% + Überschrift der Ebene \Macro{part} jedoch ohne die Zeile mit der Nummer + des Teils}% + \feentry{partnumber}{% + Zeile mit der Nummer des Teils in Überschrift der Ebene \Macro{part}}% + \feentry{section}{% + Überschrift der Ebene \Macro{section}}% + \feentry{sectioning}{% + 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 + Gliederungebene}% + \feentry{subparagraph}{% + Überschrift der Ebene \Macro{subparagraph}}% + \feentry{subsection}{% + Überschrift der Ebene \Macro{subsection}}% + \feentry{subsubsection}{% + Überschrift der Ebene \Macro{subsubsection}}% + \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. 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{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}% +\begin{Explain}% + 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} + \Environment{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}. 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{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}{author}% +\BeginIndex{Cmd}{date}% +\BeginIndex{Cmd}{publishers}% +\BeginIndex{Cmd}{and}% +\BeginIndex{Cmd}{thanks}% +Für den Inhalt der Haupttitelseite stehen sechs Elemente zur +Verfügung. 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 wird eine gegenüber der +Grundschrift leicht vergößerte Schrift verwendet. + +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{sectioning}\IndexFontElement{sectioning} 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}). + +Unter dem \PName{Titel} 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 & Ausrichtung \\ + \midrule + Seitenkopf & \Macro{titlehead} & \Macro{normalsize} & Blocksatz \\ + Typisierung & \Macro{subject} & \Macro{Large} & zentriert \\ + Titel & \Macro{title} & \Macro{huge} & 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} + \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}{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} + \Environment{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. + +\begin{Explain} +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} wird nicht eingerückt. Dafür findet auf +ihn die Schriftart für das Element +\FontElement{sectioning}\IndexFontElement{sectioning} (siehe +\autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}) Anwendung. 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. +\end{Explain} + +\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. Da bei \Class{scrartcl} die Ebene +\Macro{chapter} nicht existiert, beginnt bei dieser Klasse die Zählung +mit \Macro{part} bei 0. 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 +% +\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. + +\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 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. \OnlyAt{\Class{scrartcl}}\Macro{chapter} 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} 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{sectioning}\IndexFontElement{sectioning} 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{sectioning}\IndexFontElement{sectioning} 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{sectioning}{\normalcolor\sffamily} + \part{\appendixname} + \addtokomafont{sectioning}{\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{sectioning}\IndexFontElement{sectioning} + wie folgt ändern: +\begin{lstlisting} + \setkomafont{sectioning}{\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{sectioning}\IndexFontElement{sectioning} 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 +existiert 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{addchap} und \Macro{addsec}. Diese +ähneln bis auf die fehlende Nummerierung sehr den Standardanweisungen +\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{book}, \Class{scrbook}, \Class{report} und +\Class{scrreport}, nicht jedoch bei den Artikelklassen \Class{article} +und \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ötigen 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 nur über das +Element \FontElement{sectioning}\IndexFontElement{sectioning} beeinflusst +werden (siehe \autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}). Ein spezifisches Element nur +für \Macro{minisec} existiert nicht. Damit kann auch die voreingestellte Größe +nicht verändert werden. +% +\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{sectioning}\IndexFontElement{sectioning} + 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{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{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. Da bei \Class{scrartcl} die +Ebene \Macro{chapter} nicht existiert, beginnt bei dieser Klasse die Zählung +mit \Macro{part} bei 0. 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{sectioning} Teil III.\par\vspace{20pt}} + {\LARGE\usekomafont{sectioning} Abteilung Grünschnitt\strut\par} + \begin{quote}\small + \vspace{6ex} + \begin{center} + \usekomafont{sectioning}\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{sectioning}\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ßnoten. 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} + \Environment{itemize}\\ + \Macro{item}\\ + \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} + \Environment{enumerate}\\ + \XMacro{item}\\ + \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} + \Environment{description}\\ + \XMacro{item}\OParameter{Stichwort} +\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} + \Environment{labeling}\OParameter{Trennzeichen}\Parameter{längstes + Muster}\\ + \XMacro{item}\OParameter{Schlüsselwort} +\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} + \Environment{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} + \Environment{quote}\\ + \Environment{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} + \Environment{addmargin}\OParameter{linker Einzug}\Parameter{Einzug}\\ + \Environment{addmargin*}\OParameter{innerer Einzug}\Parameter{Einzug} +\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. + +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-Beispiele. 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} + \Environment{captionbeside}\OParameter{Verzeichnistitel}% + \Parameter{Titel}\OParameter{Anordnung}\OParameter{Breite}% + \OParameter{Offset}\\% + \XEnvironment{captionbeside}\OParameter{Verzeichnistitel}% + \Parameter{Titel}\OParameter{Anordnung}\OParameter{Breite}% + \OParameter{Offset}\PValue{*} +\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 -\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ärung zu den umdefinierten Anweisungen finden Sie in + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.macro.partformat} und + \autopageref{desc:maincls.macro.chaptermark}. +\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{sectioning}.% +% + \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} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../guide" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/scrdatetime.tex b/Master/texmf-dist/source/latex/koma-script/doc/german/scrdatetime.tex new file mode 100644 index 00000000000..6cf4e666dcf --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/german/scrdatetime.tex @@ -0,0 +1,236 @@ +% ====================================================================== +% scrdatetime.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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. +% ---------------------------------------------------------------------- +% scrdatetime.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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 scrpage2 of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Kapitel über scrpage2 in der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\ProvidesFile{scrdatetime.tex}[{2005/11/27 KOMA-Script guide (chapter: + scrdate, scrtime)}] + +\chapter{Wochentag und Uhrzeit mit \Package{scrdate} und \Package{scrtime}} +\labelbase{datetime} + +Zu \KOMAScript{} gehören auch zwei Pakete, um den Umgang mit +Datum\Index{Datum} und Zeit\Index{Zeit} über die beiden +Standardbefehle \Macro{today} und \Macro{date} hinaus zu +erweitern. Ebenso wie die anderen Pakete aus {\KOMAScript} können +diese Pakete auch mit den Standardklassen verwendet werden. + +\section{Der aktuelle Wochentag mit \Package{scrdate}} +\label{sec:datetime.scrdate} +\BeginIndex{Package}{scrdate} + +Das erste Problem ist die Frage nach dem aktuellen Wochentag. Dieses kann mit +Hilfe des Pakets \Package{scrdate} gelöst werden. + +\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 +erhalten. + +\begin{Example} + Sie wollen in Ihrem Dokument ausgeben, an welchem Tag es mit + \LaTeX{} in eine \File{DVI}-Datei übersetzt wurde. Sie schreiben + dazu +\begin{lstlisting} + Dieses Dokument entstand an einem {\todaysname}. +\end{lstlisting} + und erhalten beispielsweise: + \begin{quote} + Dieses Dokument entstand an einem {\todaysname}. + \end{quote} +\end{Example} + +Es sei darauf hingewiesen, dass das Paket natürlich nicht deklinieren +kann. Gespeichert sind die Wochentage im Nominativ Singular, wie er +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. +\end{Explain} +\EndIndex{Cmd}{todaysname} + +\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}. +\begin{Example} + 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} + \nameday{Werktag} +\end{lstlisting} + und erhalten so mit dem Satz aus dem vorherigen Beispiel: + \begin{quote}\nameday{Werktag} + Dieses Dokument entstand an einem {\todaysname}. + \end{quote} +\end{Example} +\EndIndex{Cmd}{nameday} + +Das \Package{scrdate}-Paket beherrscht derzeit die Sprachen Englisch (english +and 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}. + +Bei der aktuellen Version ist es egal, ob \Package{scrdate} vor oder +nach \Package{german}\IndexPackage{german}, +\Package{babel}\IndexPackage{babel} oder ähnlichen Paketen geladen +wird, in jedem Falle wird die korrekte Sprache +gewählt. + +\begin{Explain} + Etwas genauer ausgedrückt: Solange die Sprachauswahl in einer zu + \Package{babel}\IndexPackage{babel} bzw. + \Package{german}\IndexPackage{german} kompatiblen Form erfolgt und + die Sprache \Package{scrdate} bekannt ist, wird die Sprache korrekt + gewählt. Ist dies nicht der Fall, werden (US-)englische Ausdrücke + verwendet. +\end{Explain} +\EndIndex{Package}{scrdate} + +\section{Die aktuelle Zeit mit \Package{scrtime}} +\label{sec:datetime.scrtime} +\BeginIndex{Package}{scrtime} + +Das zweite Problem ist die Frage nach der aktuellen Zeit. Dieses kann mit +Hilfe des Pakets \Package{scrtime} gelöst werden. + +\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*} funktioniert fast genau wie \Macro{thistime}. Der +einzige Unterschied besteht darin, dass im Gegensatz zu +\Macro{thistime} bei \Macro{thistime*} die Minutenangaben bei Werten +kleiner 10 nicht durch eine vorangestellte Null auf zwei Stellen +erweitert wird. +\begin{Example} + Die Zeile +\begin{lstlisting} + Ihr Zug geht um \thistime\ Uhr. +\end{lstlisting} + liefert als Ergebnisse beispielsweise eine Zeile wie + \begin{quote} + Ihr Zug geht um \thistime\ Uhr. + \end{quote} + oder + \begin{quote} + Ihr Zug geht um 23:09 Uhr. + \end{quote} + \bigskip + Demgegenüber liefert die Zeile +\begin{lstlisting} + Beim nächsten Ton ist es \thistime*[\ Uhr,\ ] + Minuten und 42 Sekunden. +\end{lstlisting} + als mögliches Ergebniss etwas wie: + \begin{quote} + Beim nächsten Ton ist es \thistime*[\ Uhr,\ ] Minuten und 42 Sekunden. + \end{quote} + oder + \begin{quote} + Beim nächsten Ton ist es 23\ Uhr,\ 9 Minuten und 42 Sekunden. + \end{quote} +\end{Example} +\EndIndex{Cmd}{thistime}\EndIndex{Cmd}{thistime*} + +\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 +% stillsteht!} +. % +Anschließend wird das optionale Argument von \Macro{thistime} bzw. +\Macro{thistime*} ignoriert, da ja die komplette Zeichenkette, die +\Macro{thistime} bzw. \Macro{thistime*} nun liefert, hiermit explizit +festgelegt wurde.% +\EndIndex{Cmd}{settime} + +\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. +Voreingestellt ist \Option{24h}% +%\footnote{Leider beherrscht das \Package{scrtime}-Paket noch nicht die +% Sternzeit nach \textsc{StarTrek}\Index{StarTrek}, ein echter +% Mangel!} +. % +Die Option verliert bei einem Aufruf von \Macro{settime} ebenfalls ihre +Gültigkeit.% +\EndIndex{Option}{12h}\EndIndex{Option}{24h} +\EndIndex{Package}{scrtime} + +%%% 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 new file mode 100644 index 00000000000..0c43d5448e1 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/german/scrlfile.tex @@ -0,0 +1,314 @@ +% ====================================================================== +% scrlfile.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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-2006 +% +% 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}[2005/08/10 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. +\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 new file mode 100644 index 00000000000..02c70add824 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/german/scrlttr2.tex @@ -0,0 +1,4132 @@ +% ====================================================================== +% scrlttr2.tex +% Copyright (c) Markus Kohm, 2002-2006 +% +% 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-2006 +% +% 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}[2006/04/24 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. +% +\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{fromalign} +\end{Declaration} +\BeginIndex{Option}{fromalign}% +Diese Option bestimmt, wo der Absender\Index{Absender} im Briefkopf +der ersten Seite platziert werden soll. 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 im Briefkopf von \Class{scrlttr2}} + \label{tab:scrlttr2.fromalign} + \begin{desctabular} + \entry{\PValue{center}, \PValue{centered}, \PValue{middle}}{% + Absender wird zentriert; 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; ein Logo wird gegebenenfalls rechtsbündig + platziert; die Erweiterungen der Briefkopfgestaltung werden aktiviert.}% + \entry{\PValue{right}}{% + Absender steht rechtsbündig; 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 eine +Rücksendeadresse\Index{Rücksendeadresse} für Fensterbriefumschläge im +Anschriftfeld gesetzt werden soll oder nicht. Voreingestellt ist die +Verwendung einer Rücksendeadresse. Wird kein Anschriftfeld gesetzt +(siehe Option \Option{addrfield}), so wird auch keine Rücksendeadresse +gesetzt. 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}{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. Mögliche Werte für diese Option sind +\autoref{tab:scrlttr2.subject} zu entnehmen. 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{titled}{Betreff mit Titel versehen}% + \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{Faltmarken}\Index{Falzmarken} für +Seitenhalbierung und Seitendrittelung aktiviert oder deaktiviert werden. Die +genaue Position der Faltmarken für die Seitendrittelung ist von den +Einstellungen des Anwenders beziehungsweise der \File{lco}-Dateien (siehe +\autoref{sec:scrlttr2.lcoFile}) abhängig. Es muss sich dabei nicht zwingend um +eine echte Drittelung handeln. 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{true} das Setzen der Faltmarken. +% +\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 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\\ + Fichtenstraße 63\\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 eine \File{lco}-Datei über \Macro{documentclass} geladen, so +darf sie übrigens trotzdem den Namen einer Option haben. Voraussetzung +ist jedoch, dass es sich nicht um eine Option handelt, die einen Wert +erwartet. Es wäre jedoch möglich, einer \File{lco}-Datei etwa den +Namen \File{fromalign=left.lco} zu geben. Diese würde dann immer geladen, +wenn als Option bei \Macro{documentclass} die Option +\Option{fromalign} auf den Wert \PValue{left} gesetzt +würde. Zugegeben, dies ist eher von akademischem Interesse. Natürlich +können Sie diesen Automatismus nur nutzen, wenn das von Ihnen +verwendete Betriebs- und Dateisystem derartige Dateinamen erlaubt. Ist +das nicht der Fall, müssen Sie einen anderen Datei\-namen wählen und +gegebenenfalls die entsprechende Option zusätzlich angeben. +\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}{Fichtenstra\ss e 63\\ + 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}{Fichtenstraße 63\\ + 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\,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{table} + \centering + \caption{Vordefinierte \File{lco}-Dateien} + \begin{tabular}{lp{.7\textwidth}} + \toprule + \File{lco}-Name & Bedeutung und Besonderheiten \\ + \midrule + \Option{DIN}\IndexOption[indexmain]{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)\\[.5\normalbaselineskip] + \Option{DINmtext}\IndexOption[indexmain]{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)\\[.5\normalbaselineskip] + \Option{KOMAold}\IndexOption[indexmain]{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\\[.5\normalbaselineskip] + \Option{SN}\IndexOption[indexmain]{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)\\[.5\normalbaselineskip] + \Option{SNleft}\IndexOption[indexmain]{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)\\ + \bottomrule + \end{tabular} + \label{tab:lcoFiles} +\end{table} + +\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 Pseudo-Lä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{table} + \centering% + \caption{Elemente, deren Schrift bei der Klasse + \Class{scrlttr2} mit \Macro{setkomafont} und \Macro{addtokomafont} + verändert werden kann} + \begin{desctabular} + \feentry{backaddress}{Rücksendeadresse für einen Fensterbriefumschlag}% + \feentry{descriptionlabel}{Labels, also das optionale Argument von + \Macro{item}, in einer \Environment{description}-Umgebung}% + \feentry{fromaddress}{Absenderadresse im Briefkopf}% + \feentry{fromname}{Name des Absenders im Briefkopf abweichend von + \PValue{fromaddress}}% + \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{subject}{Betreff in der Brieferöffnung}% + \feentry{title}{Titel in der Brieferöffnung}% + \end{desctabular} + \label{tab:scrlttr2.elementsWithoutText} +\end{table} +\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 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{foldmarkhpos}{% + Abstand der Faltmarken von der linken Kante des Papiers + (\autoref{sec:scrlttr2.other}, + \autopageref{desc:scrlttr2.plength.foldmarkhpos})}% + \pentry{tfoldmarkvpos}{% + Abstand der oberen Faltmarke von der oberen Kande des Papiers + (\autoref{sec:scrlttr2.other}, + \autopageref{desc:scrlttr2.plength.tfoldmarkvpos})}% + \pentry{bfoldmarkvpos}{% + Abstand der unteren Faltmarke von der oberen Kante des Papiers + (\autoref{sec:scrlttr2.other}, + \autopageref{desc:scrlttr2.plength.bfoldmarkvpos})}% + \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{fromrulewidth}{% + Länge einer optionalen horizontalen Linie im Briefkopf + (\autoref{sec:scrlttr2.firstHead}, + \autopageref{desc:scrlttr2.plength.fromrulewidth})}% + \pentry{toaddrvpos}{% + Abstand des Anschriftfeldes von der oberen Kante des Papiers + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.plength.toaddrvpos})}% + \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 Einzug der Anschrift innerhalb des Anschriftfeldes + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.plength.toaddrindent})}% + \pentry{toaddrwidth}{% + Breite des Anschriftfeldes (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.plength.toaddrwidth})}% + \pentry{toaddrheight}{% + Höhe des Anschriftfeldes (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.plength.toaddrheight})}% + \pentry{backaddrheight}{% + Höhe der Rücksendeadresse am oberen Rand des Anschriftfeldes + (\autoref{sec:scrlttr2.addressee}, + \autopageref{desc:scrlttr2.plength.backaddrheight})}% + \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{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{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{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{refaftervskip}{% + vertikaler Abstand nach der Geschäftszeile + (\autoref{sec:scrlttr2.refLine}, + \autopageref{desc:scrlttr2.plength.refaftervskip})}% + \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{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})}% +\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{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{fromrulewidth} +\end{Declaration} +\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. +% +\EndIndex{PLength}{fromrulewidth} + +\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} verringert werden. Siehe hierzu auch +\autoref{sec:scrlttr2.typeareaOptions}, +\autopageref{desc:scrlttr2.option.enlargefirstpage}. + +Bei einer Kompatibilitätseinstellung\ChangedAt{2.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. +% +\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 aber 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, 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{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}). +% +\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. +% +\EndIndex{PLength}{specialmailindent}% +\EndIndex{PLength}{specialmailrightindent}% +\EndIndex{Variable}{specialmail}% + + +\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}. +% +\EndIndex{Variable}{toname}% +\EndIndex{Variable}{toaddress}% + + +\begin{Declaration} + \Environment{letter}\OParameter{Optionen}\Parameter{Anschrift} +\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} + +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{locwidth} +\end{Declaration} +\BeginIndex{PLength}{locwidth}% +Diese Pseudolänge \PLength{locwidth} gibt die Breite der Absenderergänzung an. +Ihr Wert wird in den vordefinierten \File{lco}-Dateien typischerweise auf +0\Unit{pt} gesetzt. Dieser Wert nimmt eine Sonderstellung ein. Er bedeutet +nicht, dass die Absenderergänzung die Breite Null besitzen soll. Vielmehr wird +bei diesem Wert die tatsächliche Breite erst bei +\Macro{opening}\IndexCmd{opening} an Hand der Breite des Papiers, der Breite +des Anschriftfensters und dem Abstand des Anschriftfensters vom linken Rand +gesetzt. Dabei findet auch die Option \Option{locfield} (siehe +\autoref{sec:scrlttr2.headoptions}, +\autopageref{desc:scrlttr2.option.locfield}) Berücksichtigung. +% +\EndIndex{PLength}{locwidth} + + +\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 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}% + + +\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} + \PLength{tfoldmarkvpos}\\ + \PLength{bfoldmarkvpos} +\end{Declaration} +\BeginIndex{PLength}{tfoldmarkvpos}% +\BeginIndex{PLength}{bfoldmarkvpos}% +Die Briefklasse \Class{scrlttr2} kennt insgesamt drei +Faltmarken\Index{Faltmarken}\Index{Falzmarken}. Die mittlere Faltmarke +dient der Halbierung der Seite und wird deshalb immer in der Mitte der +Seitenhöhe ausgegeben. Die Position der oberen Faltmarke vom oberen +Papierrand wird von der Pseudolänge \PLength{tfoldmarkvpos} bestimmt, +die der unteren Faltmarke von der Pseudolänge \PLength{bfoldmarkvpos}. +Diese beiden Faltmarken 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. +% +\EndIndex{PLength}{tfoldmarkvpos}% +\EndIndex{PLength}{bfoldmarkvpos}% + + +\begin{Declaration} + \PLength{foldmarkhpos} +\end{Declaration} +\BeginIndex{PLength}{foldmarkhpos}% +Diese Pseudolänge gibt den Abstand aller drei +Faltmarken\Index{Faltmarken}\Index{Falzmarken} 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. Die obere und die untere Faltmarke +sind übrigens 2\Unit{mm} lang, während die mittlere Faltmarke 4\Unit{mm} lang +ist. Die Dicke aller drei Faltmarken ist mit 2\Unit{pt} gleich groß. Derzeit +ist es nicht vorgesehen, die Länge oder Dicke der Faltmarken zu ändern. 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}% + + +\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{Faltmarken}\Index{Falzmarken}, 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 + \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 +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. +% +\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} + {Fichtenstra\ss e 63\\ + 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 +%%% TeX-master: "../guide.tex" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/german/scrpage2.tex b/Master/texmf-dist/source/latex/koma-script/doc/german/scrpage2.tex new file mode 100644 index 00000000000..64a7abb1b81 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/german/scrpage2.tex @@ -0,0 +1,1415 @@ +% ====================================================================== +% scrpage2.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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. +% ---------------------------------------------------------------------- +% scrpage2.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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 scrpage2 of the KOMA-Script guide +% Maintained by Jens-Uwe Morawski (and sometimes Markus Kohm) +% +% ---------------------------------------------------------------------- +% +% Kapitel über scrpage2 in der KOMA-Script-Anleitung +% Verwaltet von Jens-Uwe Morawski (unterstützt von Markus Kohm) +% +% ============================================================================ + +\ProvidesFile{scrpage2.tex}[2005/08/10 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{scrpage2} verwendet. Diese Anleitung beschreibt daher auch nur noch +\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 + \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 + 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. +\end{Explain} + +Das Paket \Package{scrpage2} unterscheidet nicht mehr zwischen Seitenstilen +mit automatischem und mit manuellem Kolumnentitel. Die Wahl des Seitenstils +erfolgt unabhängig davon, ob mit automatischem oder manuellem Kolumnentitel +gearbeitet wird. Näheres dazu finden Sie in \autoref{sec:scrpage.basics.mark}. + + +\subsection{Vordefinierte Seitenstile}\label{sec:scrpage.basics.buildIn} +% \lehead ... +% scrheadings +% \headmark \pagemark + +\begin{Declaration} + \Pagestyle{scrheadings}\\ + \Pagestyle{scrplain} +\end{Declaration}% +\BeginIndex{Pagestyle}{scrheadings}\BeginIndex{Pagestyle}{scrplain}% +\Index{Seitenstil}% +Das Paket \Package{scrpage2} liefert einen eigenen Seitenstil namens +\PValue{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 +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 +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. + +\begin{Declaration} + \Macro{lehead}% + \OParameter{scrplain-links-gerade}\Parameter{scrheadings-links-gerade}\\ + \Macro{cehead}% + \OParameter{scrplain-mittig-gerade}\Parameter{scrheadings-mittig-gerade}\\ + \Macro{rehead}% + \OParameter{scrplain-rechts-gerade}\Parameter{scrheadings-rechts-gerade}\\ + \Macro{lefoot}% + \OParameter{scrplain-links-gerade}\Parameter{scrheadings-links-gerade}\\ + \Macro{cefoot}% + \OParameter{scrplain-mittig-gerade}\Parameter{scrheadings-mittig-gerade}\\ + \Macro{refoot}% + \OParameter{scrplain-rechts-gerade}\Parameter{scrheadings-rechts-gerade}\\ + \Macro{lohead}% + \OParameter{scrplain-links-ungerade}\Parameter{scrheadings-links-ungerade}\\ + \Macro{cohead}% + \OParameter{scrplain-mittig-ungerade}\Parameter{scrheadings-mittig-ungerade}\\ + \Macro{rohead}% + \OParameter{scrplain-rechts-ungerade}\Parameter{scrheadings-rechts-ungerade}\\ + \Macro{lofoot}% + \OParameter{scrplain-links-ungerade}\Parameter{scrheadings-links-ungerade}\\ + \Macro{cofoot}% + \OParameter{scrplain-mittig-ungerade}\Parameter{scrheadings-mittig-ungerade}\\ + \Macro{rofoot}% + \OParameter{scrplain-rechts-ungerade}\Parameter{scrheadings-rechts-ungerade}\\ + \Macro{ihead}% + \OParameter{scrplain-innen}\Parameter{scrheadings-innen}\\ + \Macro{chead}% + \OParameter{scrplain-zentriert}\Parameter{scrheadings-zentriert}\\ + \Macro{ohead}% + \OParameter{scrplain-außen}\Parameter{scrheadings-außen}\\ + \Macro{ifoot}% + \OParameter{scrplain-innen}\Parameter{scrheadings-innen}\\ + \Macro{cfoot}% + \OParameter{scrplain-zentriert}\Parameter{scrheadings-zentriert}\\ + \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. + +\begin{figure} + \centering + \setlength{\unitlength}{1mm}\begin{picture}(100,65)(0,8)\small + \put(0,12){\dashbox{2}(40,56){linke Seite}} + \put(60,12){\dashbox{2}(40,56){rechte Seite}} + % Felder: oben links + \put(1,63){\framebox(8,4){~}} + \put(16,63){\framebox(8,4){~}} + \put(31,63){\framebox(8,4){~}} + % Felder: oben rechts + \put(61,63){\framebox(8,4){~}} + \put(76,63){\framebox(8,4){~}} + \put(91,63){\framebox(8,4){~}} + % Felder: unten links + \put(1,13){\framebox(8,4){~}} + \put(16,13){\framebox(8,4){~}} + \put(31,13){\framebox(8,4){~}} + % Felder: unten rechts + \put(61,13){\framebox(8,4){~}} + \put(76,13){\framebox(8,4){~}} + \put(91,13){\framebox(8,4){~}} + % die Befehle und Pfeile + % für beidseitig + % + \put(50,65){\makebox(0,0){\Macro{ihead}}} + \put(44,65){\vector(-1,0){4}}\put(56,65){\vector(1,0){4}} + \put(50,58){\makebox(0,0){\Macro{chead}}} + \put(44,58){\line(-1,0){24}}\put(56,58){\line(1,0){24}} + \put(20,58){\vector(0,1){4}}\put(80,58){\vector(0,1){4}} + \put(50,51){\makebox(0,0){\Macro{ohead}}} + \put(44,51){\line(-1,0){40}}\put(56,51){\line(1,0){40}} + \put(4,51){\vector(0,1){11}}\put(96,51){\vector(0,1){11}} + % + \put(50,15){\makebox(0,0){\Macro{ifoot}}} + \put(56,15){\vector(1,0){4}}\put(44,15){\vector(-1,0){4}} + \put(50,22){\makebox(0,0){\Macro{cfoot}}} + \put(44,22){\line(-1,0){24}}\put(56,22){\line(1,0){24}} + \put(20,22){\vector(0,-1){4}}\put(80,22){\vector(0,-1){4}} + \put(50,29){\makebox(0,0){\Macro{ofoot}}} + \put(44,29){\line(-1,0){40}}\put(56,29){\line(1,0){40}} + \put(4,29){\vector(0,-1){11}}\put(96,29){\vector(0,-1){11}} + % Befehle für einseitig + \put(5,69){\makebox(0,0)[b]{\Macro{lehead}}} + \put(20,69){\makebox(0,0)[b]{\Macro{cehead}}} + \put(35,69){\makebox(0,0)[b]{\Macro{rehead}}} + % + \put(65,69){\makebox(0,0)[b]{\Macro{lohead}}} + \put(80,69){\makebox(0,0)[b]{\Macro{cohead}}} + \put(95,69){\makebox(0,0)[b]{\Macro{rohead}}} + % + \put(5,11){\makebox(0,0)[t]{\Macro{lefoot}}} + \put(20,11){\makebox(0,0)[t]{\Macro{cefoot}}} + \put(35,11){\makebox(0,0)[t]{\Macro{refoot}}} + % + \put(65,11){\makebox(0,0)[t]{\Macro{lofoot}}} + \put(80,11){\makebox(0,0)[t]{\Macro{cofoot}}} + \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} + \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} + \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} + \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{Example} + +Die anderen 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} + \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{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. + +\begin{Example} +Um für die Nutzung von \PValue{scrheadings} die Position der +Seitenzahlen festzulegen, kann man folgendes benutzen: +\begin{lstlisting} + \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{Example} +% +\EndIndex{Pagestyle}{scrheadings}\EndIndex{Pagestyle}{scrplain}% + +% Die folgende Deklaration und Erklaerung wurde eingefuegt von +% mjk 2001-08-18 +\begin{Declaration} + \Macro{clearscrheadings}\\ + \Macro{clearscrplain}\\ + \Macro{clearscrheadfoot} +\end{Declaration}% +\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, +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 +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} + \clearscrheadfoot + \ohead{\headmark} + \ofoot[\pagemark]{\pagemark} +\end{lstlisting} + Ohne die Befehle \Macro{clearscrheadfoot}, \Macro{clearscrheadings} + und \Macro{clearscrplain} wären doppelt so viele Anweisungen und + neun weitere leere Argumente notwendig: +\begin{lstlisting} + \ihead[]{} + \chead[]{} + \ohead[]{\headmark} + \ifoot[]{} + \cfoot[]{} + \ofoot[\pagemark]{\pagemark} +\end{lstlisting} + Einige davon könnten natürlich entfallen, wenn man von einer + konkreten Vorbelegung ausginge. +\end{Example} +% +\EndIndex{Cmd}{clearscrheadings}% +\EndIndex{Cmd}{clearscrplain}% +\EndIndex{Cmd}{clearscrheadfoot}% +% +\EndIndex{Cmd}{lehead}\EndIndex{Cmd}{cehead}\EndIndex{Cmd}{rehead}% +\EndIndex{Cmd}{ihead}\EndIndex{Cmd}{chead}\EndIndex{Cmd}{ohead}% +\EndIndex{Cmd}{lohead}\EndIndex{Cmd}{cohead}\EndIndex{Cmd}{rohead}% +\EndIndex{Cmd}{lefoot}\EndIndex{Cmd}{cefoot}\EndIndex{Cmd}{refoot}% +\EndIndex{Cmd}{ifoot}\EndIndex{Cmd}{cfoot}\EndIndex{Cmd}{rfoot}% +\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. + +% Die folgende Deklaration und Erklaerung wurde eingefuegt von +% mjk 2001-08-17 +\begin{Declaration} + \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 +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}% + + +\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. +\EndIndex{Cmd}{headmark} + +\BeginIndex{Cmd}{pagemark} +\begin{Declaration} +\Macro{pagemark} +\end{Declaration}% +Dieser Befehl ermöglicht den Zugriff auf die Seitenzahl. Im +\autoref{sec:scrpage.basics.format}, \autopageref{desc:scrpage.macro.pnumfont} +wird der Befehl \Macro{pnumfont} zur Formatierung der Seitenzahl vorgestellt, +den \Macro{pagemark} automatisch berücksichtigt. +% +\EndIndex{Cmd}{pagemark} + +\BeginIndex{Cmd}{pagestyle}\BeginIndex{Pagestyle}{useheadings} +\begin{Declaration} +\Option{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} + +\subsection{Manuelle und automatische Kolumnentitel} +\label{sec:scrpage.basics.mark} +% \automark \manualmark +% +\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 +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}% +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. +\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 +Gliederungsebenen\Index{Gliederungsebenen} einzusetzen, deren Titel an +entsprechender Stelle erscheinen soll. Gültige Werte für die Parameter sind: +\PValue{part}\ChangedAt{2.2}{\Package{scrpage2}}, \PValue{chapter}, +\PValue{section}, \PValue{subsection}, \PValue{subsubsection}, +\PValue{paragraph} und \PValue{subparagraph}. Der Wert \PValue{part} führt bei +Verwendung der meisten Klassen nicht zu dem gewünschten Ergebnis. Bisher ist +nur von den \KOMAScript-Klassen ab Version~2.9s bekannt, dass dieser Wert +unterstützt wird. Das optionale Argument \PName{rechte Seite} ist +ver\-ständlicherweise nur für zweiseitigen Satz gedacht. Im einseitigen Satz +sollten Sie normalerweise darauf verzichten. Mit Hilfe der Option +\Option{autooneside}\IndexOption{autooneside} können Sie auch einstellen, dass +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} + \automark[section]{chapter} +\end{lstlisting} +den Originalzustand wieder her. Bevorzugt man stattdessen, +die tieferen Gliederungsebenen angezeigt zu bekommen, dann +erfolgt dies mit: +\begin{lstlisting} + \automark[subsection]{section} +\end{lstlisting} +\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 + 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. +\end{Explain} +\EndIndex{Cmd}{automark} +\EndIndex{}{Kolumnentitel>automatisch}% +\EndIndex{}{Kolumnentitel>manuell}% + + +\subsection{Formatierung der Kopf- und Fußzeilen} +\label{sec:scrpage.basics.format} +% \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} +\begin{Declaration} + \Macro{headfont}\\ + \Macro{pnumfont} +\end{Declaration}% +Die Schriftformatierung übernimmt +der Befehl \Macro{headfont} für den Seitenkopf und -fuß +und \Macro{pnumfont} 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}{% + \normalfont\sffamily\bfseries + } + \renewcommand{\pnumfont}{% + \normalfont\rmfamily\slshape + } +\end{lstlisting} +\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. +\begin{Example} +Statt dem \Macro{renewcommand} wird dann der Befehl +\Macro{setkomafont} verwendet. +Die vorhergehenden Definitionen lauten dann: +\begin{lstlisting} + \setkomafont{pagehead}{% + \normalfont\sffamily\bfseries + } + \setkomafont{pagenumber}{% + \normalfont\rmfamily\slshape + } +\end{lstlisting} +\end{Example} + +\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. + +Für die möglichen Standardfälle akzeptiert das obligatorische Argument +\PName{Breite} auch folgende symbolische Werte: +\begin{labeling}[\ --]{\PValue{textwithmarginpar}} +\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 +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 + +\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} + \setheadwidth[0pt]{textwithmarginpar} +\end{lstlisting} +% +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} +% +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} + \setfootwidth[0pt]{textwithmarginpar} +\end{lstlisting} +% +oder man greift auf den anderen symbolischen Wert \PValue{head} zurück, +da der Kopf bereits die gewünschte Breite hat. +\begin{lstlisting} + \setfootwidth[0pt]{head} +\end{lstlisting} +\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. + +\begin{Example} +Entsprechend dem vorherigen Beispiel wird hier auf das optionale +Argument verzichtet: +\begin{lstlisting} + \setheadwidth{textwithmarginpar} +\end{lstlisting} +% +und sieht dann auf einer rechten Seite folgendermaßen aus: +% +\begin{XmpTopPage} + \XmpHeading{5,29}{85} + \thinlines\XmpRule{5,27}{85} + \XmpSetText[\XmpTopText]{10,24} + \XmpMarginNote{83,14} +\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. +\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}\\ + \Macro{setheadsepline}\OParameter{Länge}\Parameter{Dicke}% + \OParameter{Anweisungen}\\ + \Macro{setfootsepline}\OParameter{Länge}\Parameter{Dicke}% + \OParameter{Anweisungen}\\ + \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. + +\begin{labeling}[\ --]{\Macro{setfootsepline}} +\item[\Macro{setheadtopline}] modifiziert die Parameter für die Linie +über dem Seitenkopf +\item[\Macro{setheadsepline}] modifiziert die Parameter für die Linie +zwischen Kopf und Textkörper +\item[\Macro{setfootsepline}] modifiziert die Parameter für die Linie +zwischen Text und Fuß +\item[\Macro{setfootbotline}] modifiziert die Parameter für die Linie +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. + +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{2.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 +\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. + +\begin{Declaration} +\XMacro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{\upshape\PValue{current}}\\ +\XMacro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{}\\ +\XMacro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{}\OParameter{} +\end{Declaration}% +Die hier am Befehl \Macro{setheadtopline} illustrierten Argumente +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 +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 +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} + \setheadtopline{2pt} + \setheadsepline{.4pt} +\end{lstlisting} +% +\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} + +Soll diese Linie zusätzlich in roter Farbe gesetzt werden, dann sind die +Anweisungen beispielsweise wie folgt zu ändern: +\begin{lstlisting} + \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} + \setheadtopline{2pt} + \setheadsepline{.4pt} + \setkomafont{headtopline}{\color{red}} + \setkomafont{headsepline}{\color{red}} +\end{lstlisting} +verwendet werden. + +Die automatische Anpassung an die Kopf- und Fußbreiten illustriert +folgendes Beispiel: +\begin{lstlisting} + \setfootbotline{2pt} + \setfootsepline[text]{.4pt} + \setfootwidth[0pt]{textwithmarginpar} +\end{lstlisting} + +%\phantomsection für hyperref-\pageref-Link jum-2001/11/24 +\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{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. +% +\EndIndex{Cmd}{setheadtopline}\EndIndex{Cmd}{setheadsepline}% +\EndIndex{Cmd}{setfootsepline}\EndIndex{Cmd}{setfootbotline}% + +\subsection{Optionen beim Laden des Paketes} +\label{sec:scrpage.basics.options} +% 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} +\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} +\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}{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. + +\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} + \setfootbotline{2pt} + \setfootsepline[text]{.4pt} + \setfootwidth[0pt]{textwithmarginpar} +\end{lstlisting} +% Der folgende Text wurde erg"anzt um den Seitenumbruch zu verbessern, +% mjk-2001-10-05: +% \enlargethispage*{2\baselineskip} + Allein die Verwendung der Option \Option{ilines} führt dabei zu der + geänderten Ausgabe, die nachfolgend veranschaulicht wird: +% +\begin{XmpBotPage} + \XmpHeading{10,18}{85} + \thinlines\XmpRule{10,21}{70} + \thicklines\XmpRule{10,16}{85} + \XmpSetText[\XmpBotText]{10,36} + \XmpMarginNote{83,26} +\end{XmpBotPage} + Die Trennlinie zwischen Text und Fuß wird bündig innen im Fußteil + gesetzt und nicht wie bei der Standardeinstellung zentriert. +\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. +% Das Folgende wurde ergaenzt, weil dazu die haeufigsten Fragen +% bzw. falschen Bug-Reports im Support kamen. +% mjk-2001-09-21: +Ohne Verwendung einer der beiden Optionen bleibt die Einstellung +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} + \documentclass{scrreprt} + \usepackage{scrpage2} +\end{lstlisting} + Da bei \Class{scrreprt} der Seitenstil \PValue{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} + \pagestyle{scrheadings} +\end{lstlisting} + auf den Seitenstil \PValue{scrheadings} umschalten, sind noch immer + manuelle Kolumnentitel eingestellt. + + Verwenden Sie stattdessen die Dokumentklasse \Class{scrbook}, so + ist nach + \begin{lstlisting} + \documentclass{scrbook} + \usepackage{scrpage2} +\end{lstlisting} + der Seitenstil \PValue{headings} mit automatischen Kolumnentiteln + aktiviert. Bei Umschaltung auf den Seitenstil \PValue{scrheadings} + bleiben automatische Kolumnentitel eingeschaltet. Dabei werden dann + weiterhin die Markierungsmakros von \Class{scrbook} verwendet. + + Verwenden Sie hingegen + \begin{lstlisting} + \usepackage[automark]{scrpage2} +\end{lstlisting} + 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 + werden erst sichtbar, wenn auf den Seitenstil + \PValue{scrheadings}\IndexPagestyle{scrheadings} oder + \PValue{useheadings} oder einen selbstdefinierten Seitenstil mit + Kolumnentiteln umgeschaltet wird. +\end{Example} +\EndIndex{Option}{automark}\EndIndex{Option}{manualmark} +\EndIndex{}{Kolumnentitel>automatisch}% +\EndIndex{}{Kolumnentitel>manuell}% + + +% Folgende Deklaration und Erklaerung wurde eingefügt von +% mjk 2001-08-17: +\BeginIndex{Option}{autooneside} +\begin{Declaration} + \Option{autooneside} +\end{Declaration}% +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} + + +\begin{Declaration} +\Option{komastyle}\\ +\Option{standardstyle} +\end{Declaration}% +\BeginIndex{Option}{komastyle}\BeginIndex{Option}{standardstyle}% +Diese Optionen bestimmen, wie der vordefinierte Seitenstil +\PValue{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} +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. +\EndIndex{Option}{komastyle}\EndIndex{Option}{standardstyle} + +\begin{Declaration} +\Option{markuppercase}\\ +\Option{markusedcase} +\end{Declaration}% +\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. + +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 +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. +\EndIndex{Option}{markuppercase}\EndIndex{Option}{markusedcase} + +% Die folgende Deklaration und Erklaerung wurde eingefuegt von +% mjk 2001-08-18 +\begin{Declaration} + \Option{nouppercase} +\end{Declaration}% +\BeginIndex{Option}{nouppercase}% +Wie in der Erklärung zu den Optionen \Option{markuppercase} und +\Option{markusedcase} bereits ausgeführt wurde, gibt es Klassen und auch +Pakete, die beim Setzen der lebenden +Kolumnentitel\Index{Kolumnentitel>automatisch} mit Hilfe einer der Anweisungen +\Macro{uppercase}\IndexCmd{uppercase} oder +\Macro{MakeUppercase}\IndexCmd{MakeUppercase} den gesamten Eintrag in +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. + +Die verwendete Methode ist äußerst brutal und kann dazu führen, dass +auch erwünschte Änderungen von Klein- in +Großbuchstaben\Index{Grossbuchstaben=Großbuchstaben} unterbleiben. Da +diese Fälle nicht sehr häufig sind, stellt \Option{nouppercase} aber +meist eine brauchbare Lösung dar. +\begin{Example} + Sie verwenden die Standardklasse \Class{book}\IndexClass{book}, + 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} + \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 + 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. +% +\EndIndex{Option}{nouppercase} + + +\section{Seitenstile selbst gestalten}\label{sec:scrpage.UI} +% +% +\subsection{Die Anwenderschnittstelle}\label{sec:scrpage.UI.user} +% \deftripstyle +\BeginIndex{Cmd}{deftripstyle}\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 +\emph{Corporate Identity} einer Firma es verlangt. +Der einfachste Weg damit umzugehen ist +\begin{Declaration} +\Macro{deftripstyle}\Parameter{Name}% +\OParameter{LA}\OParameter{LI}% +\Parameter{KI}\Parameter{KM}\Parameter{KA}% +\Parameter{FI}\Parameter{FM}\Parameter{FA} +\end{Declaration}% +Die einzelnen Felder haben folgende Bedeutung: +\begin{labeling}[\,--]{\PName{Name}} +\item[\PName{Name}] die Bezeichnung des Seitenstils, um ihn mit + \Macro{pagestyle}\Parameter{Name} zu aktivieren +\item[\PName{LA}] die Dicke der äußeren Linien, d.\,h. der Linien über +der Kopfzeile und unter der Fußzeile (optional) +\item[\PName{LI}] die Dicke der inneren Linie, d.\,h. der Linien die Kopf und +Fuß vom Textkörper trennen (optional) +\item[\PName{KI}] Inhalt des Feldes im Kopf innenseitig oder bei einseitigem +Layout links +\item[\PName{KM}] Inhalt des Feldes im Kopf zentriert +\item[\PName{KA}] Inhalt des Feldes im Kopf außenseitig oder bei einseitigem +Layout rechts +\item[\PName{FI}] Inhalt des Feldes im Fuß innenseitig oder bei einseitigem +Layout links +\item[\PName{FM}] Inhalt des Feldes im Fuß zentriert +\item[\PName{FA}] Inhalt des Feldes im Fuß außenseitig oder bei einseitigem +Layout rechts +\end{labeling} + +Der Befehl \Macro{deftripstyle} stellt sicherlich die einfachste +Möglichkeit dar, Seitenstile zu definieren. +Leider sind damit auch Einschränkungen verbunden, +da in einem Seitenbereich mit einem durch \Macro{deftripstyle} deklarierten +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, +an den Außenrand in den Kopf, die Seitenzahl soll zentriert in den Fuß. +\begin{lstlisting} + \deftripstyle{DerBericht}% + {\headmark}{}{Bericht}% + {}{\pagemark}{} +\end{lstlisting} + +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} + \deftripstyle{DerBericht}[2pt][.4pt]% + {\headmark}{}{Bericht}% + {}{\pagemark}{} +\end{lstlisting} +% +\typeout{^^J--- Ignore underfull and overfull \string\hbox:} +\begin{center}\setlength{\unitlength}{1mm}\begin{picture}(100,50)\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}} +% +\thicklines +\put(45,0){\line(0,1){50}} +\put(95,0){\line(0,1){50}} +\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[\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% + \textbf{2.1 Netzhaut}\\ + \XmpText[49]}}} +\put(59,43){\makebox(0,0)[tl]{\parbox{30mm}{\tiny% + \XmpText[51]}}} +% +\thinlines +\XmpRule{11,44.5}{30}\XmpRule{59,44.5}{30} +\XmpRule{11,8}{30}\XmpRule{59,8}{30} +\linethickness{1pt} +\XmpRule{11,48}{30}\XmpRule{59,48}{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} +Einfache Seitenstile, wie sie mit \Macro{deftripstyle} deklariert +werden können, sind erfahrungsgemäß selten. +Entweder verlangt ein Professor, dass die Diplomarbeit so aussieht +wie seine eigene -- und wer will ihm da \emph{ernsthaft} widersprechen -- +oder eine Firma möchte, dass die halbe Finanzbuchhaltung im +Seitenfuß auf"|taucht. Alles kein Problem, denn es gibt noch: +\begin{Declaration} +\Macro{defpagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}\\ +\Macro{newpagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}\\ +\Macro{renewpagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}\\ +\Macro{providepagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition} +\end{Declaration}% +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 +der Wirkungsweise. +\begin{labeling}[\ --]{\Macro{providepagestyle}} +\item[\Macro{defpagestyle}] definiert einen neuen Seitenstil. +Existiert bereits einer mit diesem Namen, wird dieser +überschrieben. +\item[\Macro{newpagestyle}] definiert einen neuen Seitenstil. Wenn schon +einer mit diesem Namen existiert, wird ein Fehler ausgegeben. +\item[\Macro{renewpagestyle}] definiert einen bestehenden Seitenstil um. Wenn noch +keiner mit diesem Namen existiert, wird ein Fehler ausgegeben. +\item[\Macro{providepagestyle}] definiert einen neuen Seitenstil nur dann, +wenn dieser vorher noch nicht existiert. +\end{labeling} + +Am Beispiel von \Macro{defpagestyle} soll die Syntax der Definitionen +im Folgenden erläutert werden. +\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: +\AParameter{OLL,OLD}\Parameter{GS}\Parameter{US}\Parameter{ES}\AParameter{ULL,ULD} +\item[\PName{Fußdefinition}] die Deklaration des Seitenfußes bestehend aus +fünf Teilen, wobei die in runden Klammern stehenden Angaben optional sind: +\AParameter{OLL,OLD}\Parameter{GS}\Parameter{US}\Parameter{ES}\AParameter{ULL,ULD} +\end{labeling} + +Wie zu sehen ist, haben Kopf- und Fußdefinition identischen Aufbau. Die +einzelnen Parameter haben folgende Bedeutung: +\begin{labeling}[\ --]{\PName{OLD}} +\item[\PName{OLL}] obere Linienlänge: Kopf = außen, Fuß = Trennlinie +\item[\PName{OLD}] obere Liniendicke +\item[\PName{GS}] Definition für die \emph{gerade} Seite +\item[\PName{US}] Definition für die \emph{ungerade} Seite +\item[\PName{ES}] Definition für \emph{einseitiges} Layout +\item[\PName{ULL}] untere Linienlänge Kopf = Trennlinie, Fuß = außen +\item[\PName{ULD}] untere Liniendicke +\end{labeling} + +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 +konfigurierbar. + +Die drei Felder \PName{GS}, \PName{US} und \PName{ES} entsprechen Boxen, die +die Breite des Kopf- bzw. Fußteils haben. +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} + {\headmark\hfill\pagemark} +\end{lstlisting} + +Um zusätzlich etwas zentriert erscheinen zu lassen, ist eine erweiterte +Definition notwendig. +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} + {\rlap{\headmark}\hfill zentriert\hfill\llap{\pagemark}} +\end{lstlisting} + +Dies und die Verwendung der Expertenschnittstelle in Zusammenhang mit +anderen Befehlen von \Package{scrpage2} nun als abschließendes Beispiel. + +\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} + \documentclass{scrbook} + \usepackage[automark,headsepline]{scrpage2} +\end{lstlisting} + +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} + \defpagestyle{ohneLinien}{% + {Beispiel\hfill\headmark} + {\headmark\hfill ohne Linien} + {\rlap{Beispiel}\hfill\headmark\hfill% + \llap{ohne Linien}} + }{% + {\pagemark\hfill} + {\hfill\pagemark} + {\hfill\pagemark\hfill} + } +\end{lstlisting} + +\begin{lstlisting} + \defpagestyle{mitLinien}{% + (\textwidth,1pt) + {mit Linien\hfill\headmark} + {\headmark\hfill mit Linien} + {\rlap{\KOMAScript}\hfill \headmark\hfill% + \llap{mit Linien}} + (0pt,0pt) + }{% + (\textwidth,.4pt) + {\pagemark\hfill} + {\hfill\pagemark} + {\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} + \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} + \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} + \XmpHeading[\textsl{1 Thermodynamik}\hfill]{20,27}{70} + \thinlines\XmpRule{20,25}{70} + \XmpSetText[% + 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} + \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} + \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} + +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} + \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} + \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{Example} +\EndIndex{Cmd}{defpagestyle}\EndIndex{Cmd}{newpagestyle} +\EndIndex{Cmd}{renewpagestyle}\EndIndex{Cmd}{providepagestyle} + +\subsection{Seitenstile verwalten}\label{sec:scrpage.UI.cfgFile} +% scrpage.cfg +\BeginIndex{File}{scrpage.cfg} +Bei längerer Arbeit mit verschiedenen Seitenstilen wird sich, je nach +Geschmack und Aufgabenstellung, ein fester Satz an benutzten Stilen +etablieren. +Um nicht bei jedem neuen Projekt eine große Kopieraktion von den Daten +eines Projekts zum neuen Projekt starten zu müssen, liest \Package{scrpage2} +am Ende seiner Initialisierungsphase die Datei \File{scrpage.cfg} ein. +In dieser Datei können dann Seitenstile definiert sein, die viele +Projekte gemeinsam nutzen können. +\EndIndex{File}{scrpage.cfg} +\EndIndex{Package}{scrpage2} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../guide" +%%% 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 new file mode 100644 index 00000000000..85c696d026b --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/german/typearea.tex @@ -0,0 +1,1389 @@ +% ====================================================================== +% typearea.tex +% Copyright (c) Markus Kohm, 2001-2006 +% +% 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-2006 +% +% 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}[2005/03/17 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{scrartl} 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}{30\baselineskip} + \areaset{\CharsLX}{\LinesXXX} +\end{lstlisting} + +\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{Declaration} + \Option{dvips}\\ + \Option{pdftex}\\ + \Option{pagesize} +\end{Declaration}% +\BeginIndex{Option}{dvips}% +\BeginIndex{Option}{pdftex}% +\BeginIndex{Option}{pagesize}% +\begin{Explain}% + 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 new file mode 100644 index 00000000000..d035be1f38b --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/guide.bib @@ -0,0 +1,441 @@ +% +% Bibliographie fuer den scrguide +% + +@Article{ DANTE:TK0297:MJK1, + author = {Markus Kohm}, + title = {{\KOMAScript} -- Eine Alternative zu den + Standardklassen?}, + journal = {Die {\TeX}nische Kom\"odie}, + year = 1996, + volume = {2}, + pages = {14--33}, + note = {{DANTE} e.\,V.} +} + +@Article{ DANTE:TK0402:MJK, + author = {Markus Kohm}, + title = {Satzspiegelkonstruktionen im Vergleich}, + journal = {Die {\TeX}nische Kom\"odie}, + volume = {4}, + year = 2002, + pages = {28--48}, + note = {{DANTE} e.\,V.} +} + +@Article{ DANTE:TK0203:MJK, + author = {Markus Kohm}, + title = {Moderne Briefe mit {\KOMAScript}}, + journal = {Die {\TeX}nische Kom\"odie}, + volume = {2}, + year = 2003, + pages = {32--51}, + note = {{DANTE} e.\,V.} +} + +@Book{ DUDEN, + author = {DUDEN}, + title = {Die deutsche Rechtschreibung}, + publisher = {DUDENVERLAG}, + year = 1996, + address = {Mannheim}, + edition = 21 +} + +@Book{ knuth:mfbook, + author = {Donald E. Knuth}, + title = {The {\MF book}}, + publisher = {Addison-Wesley Publishing Company}, + year = 1991, + address = {Reading, Mass.}, + edition = 6, + volume = {C}, + series = {Computers and Typesetting} +} + +@Book{ knuth:texbook, + author = {Donald E. Knuth}, + title = {The {\TeX book}}, + publisher = {Addison-Wesley Publishing Company}, + address = {Reading, Mass.}, + year = 1990, + edition = {19}, + volume = {A}, + series = {Computers and Typesetting} +} + +@Book{ JTsch87, + 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}, + year = 1987, + address = {Basel}, + edition = 2 +} + +@Book{ TYPO:ErsteHilfe, + author = {Hans Peter Willberg and Friedrich Forssman}, + title = {Erste Hilfe in Typografie}, + subtitle = {Ratgeber f{\"u}r Gestaltung mit Schrift}, + publisher = {Verlag Hermann Schmidt}, + year = 2000, + address = {Mainz} +} + +@Book{ TYPO:Werkstattbuch, + author = {Indra Kupferschmid}, + editor = {}, + title = {Buchstaben kommen selten allein: Ein typografisches Werkstattbuch}, + publisher = {Universit\"atsverlag Weimar}, + year = {2000}, + note = {{ISBN} 3-86068-140-0} +} + +@InCollection{ JTschMass, + author = {Jan Tschichold}, + title = {Willk{\"u}rfreie Ma{\ss}verh{\"a}ltnisse der Buchseite und des Satzspiegels}, + booktitle = {Schriften 1925-1974}, + year = 1992, + publisher = {Brinkmann \& Bose}, + address = {Berlin} +} + +@Misc{ www:blaettery, + author = {J{\"u}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}, + year = 2002, + month = sep, + edition = {2}, + url = {http://www.uta.fi/~trjusc/typoblatt.htm} +} + +@Misc{ zeitung, + author = {Martin Z. Schr{\"o}der}, + title = {Die Anmut des Unscheinbaren}, + howpublished = {Berliner Zeitung}, + year = 1998, + month = {10. Oktober}, + url = {http://www.berlinonline.de/wissen/berliner_zeitung/archiv/1998/1010/magazin/0003/} +} + +@Misc{ www:gutetypo, + author = {Hermann Rotermund}, + title = {Gute Typographie auf Papier und im Web}, + url = {http://www.weisses-rauschen.de/hero/Typographie.htm} +} + +@Misc{ www:typoclass, + author = {Axel Reichert}, + title = {Typografie -- Gestaltung einer Beispielklasse}, + howpublished = {Tutorium auf der Tagung DANTE'99}, + url = {CTAN://info/german/typografie/} +} + +@Manual{ l2kurz, + author = {Walter Schmidt and J{\"o}rg Knappen and Hubert Partl and Irene +Hyna}, + title = {{\LaTeXe}-Kurzbeschreibung}, + year = 1999, + month = apr, + url = {CTAN://info/lshort/german/} +} + +@Manual{ lshort, + author = {Tobias Oetker and Hubert Partl and Irene Hyna and Elisabeth +Schlegl}, + title = {The Not So Short Introduction to {\LaTeXe}}, + year = 1999, + month = apr, + version = {3.7}, + url = {CTAN://info/lshort/} +} + +@Book{ latexbook, + author = {Leslie Lamport}, + title = {Das {\LaTeX}-Handbuch}, + publisher = {Addison-Wesley Publishing Company}, + address = {Bonn, Paris {u.\,a.}}, + year = 1995 +} + +@Manual{ btxdoc, + author = {Oren Patashnik}, + title = {{Bib\TeX ing}}, + year = 1988, + month = feb, + url = {CTAN://biblio/bibtex/distribs/doc/btxdoc.tex} +} + +@Manual{ btxhak, + author = {Oren Patashnik}, + title = {Designing {Bib\TeX} Styles}, + year = 1988, + month = feb, + url = {CTAN://biblio/bibtex/distribs/doc/btxhak.tex} +} + +@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/} +} + +@Misc{ UK:FAQ, + key = {FAQ}, + editor = {Robin Fairbairns}, + title = {TeX Frequently Asked Questions on the Web}, + edition = {3.16}, + url = {http://www.tex.ac.uk/faq/} +} +% year = 2006, +% month = jun, + +@Misc{ latex:classes, + author = {Leslie Lamport and Frank Mittelbach and Johannes Braams}, + title = {Standard Document Classes for {\LaTeX} version 2e}, + year = 2000, + month = may, + edition = {1.4b}, + url = {CTAN://macros/latex/base/classes.dtx} +} + +@Misc{ package:adrconv, + author = {Axel Kielhorn}, + title = {adrconv}, + year = 1999, + month = nov, + edition = {1.2}, + url = {CTAN://macros/latex/contrib/adrconv/} +} + +@Misc{ url:aka, + author = {Axel Kielhorn}, + title = {{\LaTeX} page}, + url = {http://www-public.tu-bs.de:8080/~i0080108/latex.html} +} + +@Misc{ latex:clsguide, + author = {{\LaTeX3} Project Team}, + title = {{\LaTeXe} for class and package writers}, + year = 1999, + month = mar, + url = {CTAN://macros/latex/doc/clsguide.pdf} +} + +@Misc{ latex:usrguide, + author = {{\LaTeX3} Project Team}, + title = {{\LaTeXe} for authors}, + year = 2001, + month = jul, + url = {CTAN://macros/latex/doc/usrguide.pdf} +} + +@Misc{ latex:fntguide, + author = {{\LaTeX3} Project Team}, + title = {{\LaTeXe} font selection}, + year = 2000, + month = sep, + url = {CTAN://macros/latex/doc/fntguide.pdf} +} + +@Misc{ latex:cfgguide, + author = {{\LaTeX3} Project Team}, + title = {Configuration options for {\LaTeXe}}, + year = 2001, + month = aug, + url = {CTAN://macros/latex/doc/cfgguide.pdf} +} + +@Misc{ package:setspace, + author = {Geoffrey Tobin}, + title = {{\Package{setspace}} {\LaTeX} package}, + year = 2000, + month = dec, + edition = {6.7}, + url = {CTAN://macros/latex/contrib/setspace/} +} + +@Misc{ package:geometry, + author = {Hideo Umeki}, + title = {The {\Package{geometry}} package}, + year = 2000, + month = jun, + edition = {2.3}, + url = {CTAN://macros/latex/contrib/geometry/} +} + +@Misc{ package:german, + author = {Bernd Raichle}, + title = {{\Package{german}} package}, + year = 1998, + month = jul, + edition = {2.5e}, + url = {CTAN://language/german/} +} + +@Misc{ package:ngerman, + author = {Bernd Raichle}, + title = {{\Package{ngerman}} package}, + year = 1998, + month = jul, + edition = {2.5e}, + url = {CTAN://language/german/} +} + +@Misc{ package:graphics, + author = {David P. Carlisle}, + title = {Packages in the `graphics' bundle}, + year = 1999, + month = feb, + url = {CTAN://macros/latex/required/graphics/} +} + +@Misc{ package:multicol, + author = {Frank Mittelbach}, + title = {An environment for multicolumn output}, + year = 2000, + month = jul, + edition = {1.5z}, + url = {CTAN://macros/latex/required/tools/} +} + +@Misc{ package:ifthen, + author = {David Carlisle}, + title = {The \textsf{ifthen} package}, + year = 1999, + month = sep, + edition = {1.1b}, + url = {CTAN://macros/latex/base/} +} + +@Misc{ package:french, + author = {Bernard Gaulle}, + title = {Les distributions de fichiers de francisation pour LaTeX}, + year = 2003, + month = dec, + edition = {5,80}, + url = {CTAN://language/french/} +} + +@Misc{ package:babel, + author = {Johannes Braams}, + title = {Babel, a multilangual package for use with {\LaTeX}'s standard +document classes}, + year = 2001, + month = feb, + edition = {3.7}, + url = {CTAN://macros/latex/required/babel/} +} + +@Misc{ package:extsizes, + author = {James Kilfiger}, + title = {{\Package{extsizes}}, a non standard {\LaTeX}-package}, + year = 1999, + month = nov, + edition = {1.4a}, + url = {CTAN://macros/latex/contrib/extsizes/} +} + +@Misc{ package:natbib, + author = {Patrick W. Daly}, + title = {Natural Sciences Citations an References}, + year = 1999, + month = may, + edition = {7.0}, + url = {CTAN://macros/latex/contrib/natbib/} +} + +@Misc{ package:fancyhdr, + author = {Piet van Oostrum}, + title = {Page layout in {\LaTeX}}, + year = 2000, + month = oct, + edition = {2.0}, + url = {CTAN://macros/latex/contrib/fancyhdr/} +} + +@Misc{ package:topcapt, + author = {Robin Fairbairns}, + title = {topcapt.sty}, + year = 1999, + month = mar, + edition = {1.1a}, + url = {CTAN://macros/latex/contrib/misc/topcapt.sty} +} + +@Misc{ package:caption, + author = {Harald Axel Sommerfeldt}, + title = {caption package}, + year = 2004, + month = jul, + edition = {3.0c}, + url = {CTAN://macros/latex/contrib/caption/} +} + +@Misc{ package:hyperref, + author = {Sebastian Rahtz}, + title = {Hypertext marks in {\LaTeX}: the \textsf{hyperref} package}, + year = 2001, + month = feb, + edition = {6.71c}, + url = {CTAN://macros/latex/contrib/hyperref/} +} + +@Misc{ package:float, + author = {Anselm Lingnau}, + title = {An Improved Environment for Floats}, + year = 2001, + month = jul, + edition = {1.2e}, + url = {CTAN://macros/latex/contrib/float/} +} + +@Misc{ package:longtable, + author = {David Carlise}, + title = {The \textsf{longtable} package}, + year = 1998, + month = may, + edition = {4.09}, + url = {CTAN://macros/latex/required/tools/} +} + +@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/} +} + +@Misc{ package:mparhack, + author = {Tom Sgouros and Stefan Ulrich}, + title = {The \textsf{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{ homepage, + 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 new file mode 100644 index 00000000000..93f39f45441 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/guide.tex @@ -0,0 +1,90 @@ +% ====================================================================== +% guide.tex +% Copyright (c) Markus Kohm, 2002-2006 +% +% 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-2006 +% +% 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}[2005/05/12 KOMA-Script guide main file] + +\documentclass[\languagename]{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{\GuideCopyright} +\dedication{\GuideDedication} + +\pdfbookmark{\KOMAScript}{title}\maketitle + +\cleardoublepage\pdfbookmark{\contentsname}{toc}\tableofcontents + +\cleardoublepage\pdfbookmark{\listtablename}{lot}\listoftables + +\include{introduction} +\include{typearea} +\include{scrbookreportarticle} +\include{scrpage2} +\include{scrdatetime} +\include{scrlttr2} +\include{scraddr} +\include{adrconvnote} +\include{scrlfile} + +\printchangelog +\bibliography{\jobname} +\printindex + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% 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 new file mode 100644 index 00000000000..84ca2cde664 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/plength.dtx @@ -0,0 +1,1192 @@ +% \CheckSum{0} +% \iffalse +% ====================================================================== +% plength.dtx +% Copyright (c) Markus Kohm, 2005-2006 +% +% 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. +% ---------------------------------------------------------------------- +% plength.dtx +% Copyright (c) Markus Kohm, 2005-2006 +% +% 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 plength figures at scrlttr2 chapter of the KOMA-Script guide +% Maintained by Markus Kohm +% Original source by Stephan Hennig +% +% --------------------------------------------------------------------------- +% +% Erzeugung der plength Abbildungen im scrlttr2-Kapitel der +% KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% Originalquellen von Stephan Hennig +% +% ============================================================================ +%<*ins> +\def\batchfile{plength.dtx} +\input docstrip.tex + +\ifx\askonceonly\undefined\else\askonceonly\fi + +\preamble +\endpreamble + +\postamble +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{% + \file{plength.drv}{\from{plength.dtx}{driver}}% + \file{plenDIN.mp}{\from{plength.dtx}{main,DIN,length,\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{pllcoDIN.mp}{\from{plength.dtx}{DIN,values}}% +% Ebenfalls enthalten, derzeit aber nicht verwendet: +% \file{pllcoSN.mp}{\from{plength.dtx}{SN,values}}% +} + +\csname endinput\endcsname +%</ins> +% +%<*driver> +% \begin{macrocode} +\ProvidesFile{plength.drv}[2005/08/30 plength MetaPost graphics] +\documentclass{ltxdoc} +\usepackage{ngerman} +\usepackage[utf8]{inputenc} +\begin{document} + \DocInput{plength.dtx} +\end{document} +% \end{macrocode} +%</driver> +% \fi +% +% \title{MetaPost-Grafiken fĂĽr das Briefkapitel} +% \author{Stephan Henig} +% \date{2005-08-30} +% \maketitle +% +% Es werden diverse Dateien erzeugt: \texttt{plenDINde.mp}, +% \texttt{varDINde.mp}, \texttt{plenSNde.mp}, \texttt{varSNde.mp}, \dots Diese +% mit +% \begin{flushleft} +% \texttt{mpost --tex=latex} \meta{mp-file} +% \end{flushleft} +% 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! +% Wesentlich ist dabei der Abschnitt \texttt{main}. +% +%<*main> +% \section{Der Abschnitt \texttt{main}} +% Diese Abschnitt erzeugt die Haupttreiberdateien, die dann mit \texttt{mpost} +% bearbeitet werden. +% +% 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, +% ist pllcoDIN zu verwenden. +% \item \texttt{grafikhoehe}\hfill\\ +% 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. +% \item \texttt{framestrichstaerke}\hfill\\ +% bestimmt die Stiftbreite zum Zeichnen der +% Element-Rahmen (nicht der Hilfsrahmen). +% \item \texttt{hilfsstrichstaerke}\hfill\\ +% bestimmt die Stiftbreite zum Zeichnen der +% 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 +% verwendet. +% \item \texttt{framed} und \texttt{filled}\hfill\\ +% legen fest, ob die Elemente mit einem Rahmen +% 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. +% \item \texttt{latexlengths}\hfill\\ +% 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 +% 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 +% verringert werden. +% \end{itemize} +% +% \begin{macrocode} +prologues:=1; +%<DIN>input pllcoDIN +%<SN>input pllcoSN +input plinc +input pltex +beginfig(1); + numeric grafikhoehe; + numeric tickhoehe; + numeric strichstaerke, framestrichstaerke, hilfsstrichstaerke; + boolean framed, filled, latexlengths; + color drawcolor, fillcolor, latexlengthcolor; + string language; + grafikhoehe := 167mm; + strichstaerke := 0.6pt; + framestrichstaerke := 0.2pt; + hilfsstrichstaerke := 0.2pt; + tickhoehe := 10pt; + framed := true; + filled := true; + drawcolor := black; + fillcolor := .8white; + latexlengths := true; + latexlengthcolor := .4white; +%<ngerman> language := "de"; +%<english> language := "en"; + ahlength := 0.7mm; + picture description[], plength[], latexlength[]; + transform T; + T = identity reflectedabout ((0pt,.5*paperheight), + (paperwidth,.5*paperheight)) scaled (grafikhoehe/paperheight); +%<length> lengths; writedescription(language); +%<variables> describe(language); +endfig +end +% \end{macrocode} +%</main> +% +%<*tex> +% \section{Der Abschnitt \texttt{tex}} +% +% 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{ngerman} +\usepackage[T1]{fontenc} +\IfFileExists{scrnonfree.tex}{% + \usepackage{charter}% + \usepackage[scaled=0.87]{luximono}% + \usepackage[scaled=0.92]{frutiger}% +}{% + \usepackage{lmodern}% +} +\newcommand*{\plength}{\fontsize{7}{8}\sffamily} +\newcommand*{\descr}{\fontsize{7}{8}\itshape} +\newcommand*{\latexlength}{\fontsize{7}{8}\ttfamily} +\begin{document} +etex + +def deflengths = +begingroup + plength[1]=btex \plength{}backaddrheight etex; + plength[2]=btex \plength{}bfoldmarkvpos etex; + plength[3]=btex \plength{}firstfootvpos etex; + plength[4]=btex \plength{}firstfootwidth etex; + plength[5]=btex \plength{}firstheadvpos etex; + plength[6]=btex \plength{}firstheadwidth etex; + plength[7]=btex \plength{}foldmarkhpos etex; + plength[8]=btex \plength{}locwidth\strut etex; + plength[9]=btex \plength{}refaftervskip etex; + plength[10]=btex \plength{}refvpos etex; + plength[11]=btex \plength{}refwidth etex; + plength[12]=btex \plength{}sigbeforevskip etex; + plength[13]=btex \plength{}sigindent etex; + plength[14]=btex \plength{}specialmailindent etex; + plength[15]=btex \plength{}specialmailrightindent etex; + plength[16]=btex \plength{}tfoldmarkvpos etex; + plength[17]=btex \plength{}toaddrhpos\strut etex; + plength[18]=btex \plength{}toaddrindent\strut etex; + plength[19]=btex \plength{}toaddrvpos etex; + plength[20]=btex \plength{}toaddrwidth\strut etex; + plength[21]=btex \plength{}toaddrheight etex; + plength[22]=btex \plength{}refhpos etex; + plength[23]=btex \plength{}fromrulewidth etex; + plength[24]=btex \plength{}-toaddrhpos\strut etex; +endgroup +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; +endgroup +enddef; + +def defdescriptionde = +begingroup + description[1]=btex \descr{}Briefkopf 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[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[12]=btex \descr{}Signatur etex; + description[13]=btex \descr{}\begin{tabular}{@{}c@{}}Absender-\\ergänzung\end{tabular} etex; +endgroup +enddef; + +def defdescriptionen = +begingroup + description[1]=btex \descr{}letter-head etex; + description[2]=btex \descr{}letter foot etex; + description[3]=btex \descr{}return address etex; + description[4]=btex \descr{}special mail etex; + description[5]=btex \descr{}addressee etex; + description[6]=btex \descr{}business line etex; + description[7]=btex \descr{}title etex; + description[8]=btex \descr{}subject etex; + description[9]=btex \descr{}opening etex; + description[10]=btex \descr{}letter body etex; + description[11]=btex \descr{}closing etex; + description[12]=btex \descr{}signature etex; + description[13]=btex \descr{}\begin{tabular}{@{}c@{}}supplemental\\data\end{tabular} etex; +endgroup +enddef; +% \end{macrocode} +%</tex> +% +%<*values> +% \section{Der Abschnitt \texttt{values}} +% 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} +% +%\begin{macrocode} +numeric paperwidth; +numeric paperheight; +numeric textwidth; +numeric textheight; +numeric evensidemargin; +numeric oddsidemargin; +numeric topmargin; +numeric headheight; +numeric headsep; +numeric topskip; +numeric footskip; +numeric baselineskip; + +paperwidth = 597.50793pt; +paperheight = 845.04694pt; +textwidth = 418.25555pt; +textheight = 595.80026pt; +evensidemargin = 17.3562pt; +oddsidemargin = 17.3562pt; +topmargin = -25.16531pt; +headheight = 17.0pt; +headsep = 20.40001pt; +topskip = 11.0pt; +footskip = 47.60002pt; +baselineskip = 13.6pt; + + + +numeric foldmarkhpos; +numeric tfoldmarkvpos; +numeric bfoldmarkvpos; +numeric toaddrvpos; +numeric refvpos; +numeric refaftervskip; +numeric toaddrhpos; +numeric toaddrwidth; +numeric toaddrheight; +numeric toaddrindent; +numeric specialmailindent; +numeric specialmailrightindent; +numeric locwidth; +numeric backaddrheight; +numeric firstheadvpos; +numeric firstheadwidth; +numeric firstfootwidth; +numeric firstfootvpos; +numeric refwidth; +numeric sigindent; +numeric sigbeforevskip; + + +foldmarkhpos = 3.5mm; +tfoldmarkvpos = 105mm; +bfoldmarkvpos = 210mm; +toaddrvpos = 45mm; +refvpos = 98.5mm; +refaftervskip = baselineskip; +toaddrhpos = 20mm; +toaddrwidth = 85mm; +toaddrheight = 40mm; +toaddrindent = 0mm; +%specialmailindent = \fill; +specialmailrightindent = 11pt; +locwidth = 3.75cm; +backaddrheight = 5mm; +firstheadvpos = 8mm; +firstheadwidth = paperwidth - 2*abs(toaddrhpos); +firstfootwidth = firstheadwidth; +firstfootvpos = 1in + topmargin + headheight + headsep + textheight + footskip; +refwidth = 0pt; +sigindent = 0mm; +sigbeforevskip = 2*baselineskip; + +% \end{macrocode} +% weitere Hilfsvariablen +% \begin{macrocode} +numeric firstheadhpos; +numeric firstheadheight; +numeric firstfoothpos; +numeric firstfootheight; +numeric fromrulewidth; +numeric fromrulehpos; +numeric specialmailwidth; +numeric specialmailheight; +numeric lochpos; +numeric refhpos; +numeric refheight; +numeric titlevpos; +numeric titlewidth; +numeric titleheight; +numeric subjectvpos; +numeric subjectwidth; +numeric subjectheight; +numeric openingvpos; +numeric openingwidth; +numeric openingheight; +numeric bodyvpos; +numeric bodywidth; +numeric bodyheight; +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); +firstfootheight = 3*baselineskip; +fromrulewidth = 0.5*firstheadwidth; +fromrulehpos = firstheadhpos+0.5*(firstheadwidth-fromrulewidth); +specialmailwidth = 5cm; +specialmailheight = baselineskip; +specialmailindent = toaddrwidth-specialmailrightindent-specialmailwidth; +lochpos = paperwidth-toaddrhpos-locwidth; +refhpos = 1in+oddsidemargin; +refheight = 2*baselineskip; +refwidth := textwidth; +titlevpos = refvpos+refheight+refaftervskip; +titlewidth = 9cm; +titleheight = 1.2*baselineskip; +subjectvpos = titlevpos+titleheight+1*baselineskip; +subjectwidth = 8cm; +subjectheight = baselineskip; +openingvpos = subjectvpos+subjectheight+2*baselineskip; +openingwidth = 6cm; +openingheight = baselineskip; +bodyvpos = openingvpos+openingheight+baselineskip; +bodywidth = textwidth; +bodyheight = 8*baselineskip; +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} +% \begin{macrocode} +numeric paperwidth; +numeric paperheight; +numeric textwidth; +numeric textheight; +numeric evensidemargin; +numeric oddsidemargin; +numeric topmargin; +numeric headheight; +numeric headsep; +numeric topskip; +numeric footskip; +numeric baselineskip; + +paperwidth = 597.50793pt; +paperheight = 845.04694pt; +textwidth = 418.25555pt; +textheight = 595.80026pt; +evensidemargin = 17.3562pt; +oddsidemargin = 17.3562pt; +topmargin = -25.16531pt; +headheight = 17.0pt; +headsep = 20.40001pt; +topskip = 11.0pt; +footskip = 47.60002pt; +baselineskip = 13.6pt; + + + +numeric foldmarkhpos; +numeric tfoldmarkvpos; +numeric bfoldmarkvpos; +numeric toaddrvpos; +numeric refvpos; +numeric refaftervskip; +numeric toaddrhpos; +numeric toaddrwidth; +numeric toaddrheight; +numeric toaddrindent; +numeric specialmailindent; +numeric specialmailrightindent; +numeric locwidth; +numeric backaddrheight; +numeric firstheadvpos; +numeric firstheadwidth; +numeric firstfootwidth; +numeric firstfootvpos; +numeric refwidth; +numeric sigindent; +numeric sigbeforevskip; + + +foldmarkhpos = 3.5mm; +tfoldmarkvpos = 105mm; +bfoldmarkvpos = 210mm; +toaddrvpos = 45mm; +refvpos = 98.5mm; +refaftervskip = baselineskip; +toaddrhpos = -8mm; +toaddrwidth = 90mm; +toaddrheight = 40mm; +toaddrindent = 0mm; +%specialmailindent = \fill; +specialmailrightindent = 11pt; +locwidth = (paperwidth-2*abs(toaddrhpos)-toaddrwidth)/2; +backaddrheight = 5mm; +firstheadvpos = 8mm; +firstheadwidth = paperwidth - 2*abs(toaddrhpos); +firstfootwidth = firstheadwidth; +firstfootvpos = 1in + topmargin + headheight + headsep + textheight + footskip; +show firstfootvpos; +refwidth = 0pt; +sigindent = 0mm; +sigbeforevskip = 2*baselineskip; + + +% \end{macrocode} +% weitere Hilfsvariablen +% \begin{macrocode} +numeric firstheadhpos; +numeric firstheadheight; +numeric firstfoothpos; +numeric firstfootheight; +numeric fromrulewidth; +numeric fromrulehpos; +numeric specialmailwidth; +numeric specialmailheight; +numeric lochpos; +numeric refhpos; +numeric refheight; +numeric titlevpos; +numeric titlewidth; +numeric titleheight; +numeric subjectvpos; +numeric subjectwidth; +numeric subjectheight; +numeric openingvpos; +numeric openingwidth; +numeric openingheight; +numeric bodyvpos; +numeric bodywidth; +numeric bodyheight; +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); +firstfootheight = 3*baselineskip; +fromrulewidth = 0.5*firstheadwidth; +fromrulehpos = firstheadhpos+0.5*(firstheadwidth-fromrulewidth); +specialmailwidth = 5cm; +specialmailheight = baselineskip; +specialmailindent = toaddrwidth-specialmailrightindent-specialmailwidth; +lochpos = -toaddrhpos; +refhpos = 1in+oddsidemargin; +refheight = 2*baselineskip; +refwidth := textwidth; +titlevpos = refvpos+refheight+refaftervskip; +titlewidth = 9cm; +titleheight = 1.2*baselineskip; +subjectvpos = titlevpos+titleheight+1*baselineskip; +subjectwidth = 8cm; +subjectheight = baselineskip; +openingvpos = subjectvpos+subjectheight+2*baselineskip; +openingwidth = 6cm; +openingheight = baselineskip; +bodyvpos = openingvpos+openingheight+baselineskip; +bodywidth = textwidth; +bodyheight = 8*baselineskip; +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} +% +% 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, +% \dots). +% +% \begin{macrocode} +def lengths = + toaddrindent := 0.7cm; +% \end{macrocode} +% Die Breite des \texttt{location}-Feldes wird später berechnet und deshalb +% hier nicht mehr mit +% \begin{verbatim} +% locwidth := 3.7cm; +% \end{verbatim} +% gesetzt. +% \begin{macrocode} + firstheadheight := firstheadheight-3pt; + firstheadvpos := firstheadvpos+3pt; + sigindent := 1cm; + if (latexlengths=true): + writelatexlengths; + fi + if (filled=true): + drawfilledelements; + fi + if (framed=true): + drawframedelements; + fi + drawpaperandfoldmarks; + drawboxes; +% \end{macrocode} +% From-Rule: +% \begin{macrocode} + draw ((fromrulehpos,firstheadvpos+firstheadheight-strichstaerke)-- + (fromrulehpos+fromrulewidth,firstheadvpos+firstheadheight-strichstaerke)) + transformed T withpen pencircle scaled strichstaerke; + writelengths; +enddef; + +def describe(expr lang) = + drawpaperandfoldmarks; + if (filled=true): + drawfilledelements; + fi + if (framed=true): + drawframedelements; + fi + writedescription(lang); +enddef; + +def drawframedelements = + if toaddrhpos < 0 : + istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth; + else : + istoaddrhpos := toaddrhpos; + fi + pickup pencircle scaled framestrichstaerke; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% Kopf und FuĂź +% \begin{macrocode} + draw unitsquare xscaled firstheadwidth yscaled firstheadheight + shifted (firstheadhpos, firstheadvpos) transformed T; + draw unitsquare xscaled firstfootwidth yscaled firstfootheight + shifted (firstfoothpos, firstfootvpos) transformed T; +% \end{macrocode} +% Adressfeld +% \begin{macrocode} + draw unitsquare xscaled toaddrwidth yscaled backaddrheight + shifted (istoaddrhpos, toaddrvpos) transformed T; + draw unitsquare xscaled specialmailwidth yscaled specialmailheight + shifted (istoaddrhpos+toaddrwidth-specialmailwidth-specialmailrightindent, + toaddrvpos+backaddrheight) transformed T; + draw unitsquare xscaled (toaddrwidth-2*toaddrindent) + yscaled (toaddrheight-backaddrheight-specialmailheight) + shifted (istoaddrhpos+toaddrindent, + toaddrvpos+backaddrheight+specialmailheight) transformed T; +% \end{macrocode} +% Absenderergänzung: +% \begin{macrocode} + draw unitsquare xscaled locwidth yscaled toaddrheight + shifted (lochpos, toaddrvpos) transformed T; +% \end{macrocode} +% Geschäftszeile: +% \begin{macrocode} + draw unitsquare xscaled refwidth yscaled refheight + shifted (1in+oddsidemargin, refvpos) transformed T; +% \end{macrocode} +% Titel: +% \begin{macrocode} + draw unitsquare xscaled titlewidth yscaled titleheight + shifted (1in+oddsidemargin+0.5(textwidth-titlewidth), titlevpos) + transformed T; +% \end{macrocode} +% Betreff: +% \begin{macrocode} + draw unitsquare xscaled subjectwidth yscaled subjectheight + shifted (1in+oddsidemargin, subjectvpos) transformed T; +% \end{macrocode} +% Anrede: +% \begin{macrocode} + draw unitsquare xscaled openingwidth yscaled openingheight + shifted (1in+oddsidemargin, openingvpos) transformed T; +% \end{macrocode} +% Brieftext: +% \begin{macrocode} + draw unitsquare xscaled bodywidth yscaled bodyheight + shifted (1in+oddsidemargin, bodyvpos) transformed T; +% \end{macrocode} +% Signatur: +% \begin{macrocode} + draw unitsquare xscaled sigwidth yscaled sigheight + shifted (1in+oddsidemargin+sigindent, sigvpos) transformed T; + draw unitsquare xscaled (0.8*sigwidth) yscaled sigheight + shifted (1in+oddsidemargin+sigindent+.1*sigwidth, + sigvpos+sigheight+sigbeforevskip) transformed T; +enddef; + +def drawfilledelements = + if toaddrhpos < 0 : + istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth; + else : + istoaddrhpos := toaddrhpos; + fi + drawoptions (withcolor fillcolor); +% \end{macrocode} +% Kopf und FuĂź: +% \begin{macrocode} + fill unitsquare xscaled firstheadwidth yscaled firstheadheight + shifted (firstheadhpos, firstheadvpos) transformed T; + fill unitsquare xscaled firstfootwidth yscaled firstfootheight + shifted (firstfoothpos, firstfootvpos) transformed T; +% \end{macrocode} +% Adressfeld: +% \begin{macrocode} + fill unitsquare xscaled toaddrwidth yscaled backaddrheight + shifted (istoaddrhpos, toaddrvpos) transformed T; + fill unitsquare xscaled specialmailwidth yscaled specialmailheight + shifted (istoaddrhpos+toaddrwidth-specialmailwidth-specialmailrightindent, + toaddrvpos+backaddrheight) transformed T; + fill unitsquare xscaled (toaddrwidth-2*toaddrindent) + yscaled (toaddrheight-backaddrheight-specialmailheight) + shifted (istoaddrhpos+toaddrindent, + toaddrvpos+backaddrheight+specialmailheight) transformed T; +% \end{macrocode} +% Absenderergänzung: +% \begin{macrocode} + fill unitsquare xscaled locwidth yscaled toaddrheight + shifted (lochpos, toaddrvpos) transformed T; +% \end{macrocode} +% Geschäftszeile: +% \begin{macrocode} + fill unitsquare xscaled refwidth yscaled refheight + shifted (refhpos, refvpos) transformed T; +% \end{macrocode} +% Titel: +% \begin{macrocode} + fill unitsquare xscaled titlewidth yscaled titleheight + shifted (1in+oddsidemargin+0.5(textwidth-titlewidth), titlevpos) + transformed T; +% \end{macrocode} +% Betreff: +% \begin{macrocode} + fill unitsquare xscaled subjectwidth yscaled subjectheight + shifted (1in+oddsidemargin, subjectvpos) transformed T; +% \end{macrocode} +% Anrede: +% \begin{macrocode} + fill unitsquare xscaled openingwidth yscaled openingheight + shifted (1in+oddsidemargin, openingvpos) transformed T; +% \end{macrocode} +% Brieftext: +% \begin{macrocode} + fill unitsquare xscaled bodywidth yscaled bodyheight + shifted (1in+oddsidemargin, bodyvpos) transformed T; +% \end{macrocode} +% Signatur: +% \begin{macrocode} + fill unitsquare xscaled sigwidth yscaled sigheight + shifted (1in+oddsidemargin+sigindent, sigvpos) transformed T; + fill unitsquare xscaled (0.8*sigwidth) yscaled sigheight + shifted (1in+oddsidemargin+sigindent+.1*sigwidth, + sigvpos+sigheight+sigbeforevskip) transformed T; +enddef; + +def drawpaperandfoldmarks = + pickup pencircle scaled strichstaerke; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% Briefbogen: +% \begin{macrocode} + draw unitsquare xscaled paperwidth yscaled paperheight transformed T; +% \end{macrocode} +% Falzmarken: +% \begin{macrocode} + draw ((foldmarkhpos,tfoldmarkvpos)-- + (foldmarkhpos+tfoldmarkwidth,tfoldmarkvpos)) transformed T; + draw ((foldmarkhpos,0.5*paperheight)-- + (foldmarkhpos+mfoldmarkwidth,0.5*paperheight)) transformed T; + draw ((foldmarkhpos,bfoldmarkvpos)-- + (foldmarkhpos+bfoldmarkwidth,bfoldmarkvpos)) transformed T; +enddef; + +def drawboxes = + if toaddrhpos < 0 : + istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth; + else : + istoaddrhpos := toaddrhpos; + fi + pickup pencircle scaled hilfsstrichstaerke; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% Kasten Adressfeld: +% \begin{macrocode} + draw unitsquare xscaled toaddrwidth yscaled toaddrheight + shifted (istoaddrhpos, toaddrvpos) transformed T; +% \end{macrocode} +% ^^A auskommentiert: +% ^^A Kasten Adresszeile +% ^^A draw unitsquare xscaled (paperwidth-2*toaddrhpos) +% ^^A yscaled toaddrheight shifted (toaddrhpos, toaddrvpos) transformed T; +% Kasten Signatur: +% \begin{macrocode} + draw unitsquare xscaled sigwidth yscaled (2*sigheight+sigbeforevskip) + shifted (1in+oddsidemargin+sigindent,sigvpos) transformed T; +% \end{macrocode} +% Kasten Satzspiegel: +% \begin{macrocode} + draw unitsquare xscaled textwidth yscaled (typeareabottom-titlevpos) + shifted (1in+oddsidemargin,titlevpos) transformed T; +enddef; + +def writelengths = +begingroup + if toaddrhpos < 0 : + istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth; + else : + istoaddrhpos := toaddrhpos; + fi + deflengths; + pickup pencircle scaled hilfsstrichstaerke; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% \texttt{firstheadwidth}: +% \begin{macrocode} + hmeasure((firstheadhpos,firstheadvpos), firstheadwidth, plength[6], origin, + top); +% \end{macrocode} +% \texttt{fromrulewidth}: +% \begin{macrocode} + hmeasure((fromrulehpos,firstheadvpos+firstheadheight-strichstaerke), + fromrulewidth, plength[23], origin, top); +% \end{macrocode} +% \texttt{toaddrwidth}: +% \begin{macrocode} + hmeasure((istoaddrhpos,toaddrvpos), toaddrwidth, plength[20], origin, top); +% \end{macrocode} +% \texttt{locwidth}: +% \begin{macrocode} + hmeasure((lochpos,toaddrvpos), locwidth, plength[8], origin, top); +% \end{macrocode} +% \texttt{specialmailindent}: +% \begin{macrocode} + hmeasure((istoaddrhpos, + toaddrvpos+backaddrheight+0.5*(specialmailheight+tickhoehe)), + specialmailindent, plength[14], (-0.5*specialmailindent+toaddrindent,+14pt), rt); +% \end{macrocode} +% \texttt{specialmailrightindent}: +% \begin{macrocode} + hmeasure((istoaddrhpos+toaddrwidth-specialmailrightindent, + toaddrvpos+backaddrheight+0.5*(specialmailheight+tickhoehe)), + specialmailrightindent, plength[15], + (0.5*specialmailrightindent-3pt,0pt), rt); +% \end{macrocode} +% \texttt{toaddrhpos}: +% \begin{macrocode} + if toaddrhpos > 0 : + hmeasure((0,toaddrvpos), toaddrhpos, plength[17], (6pt,0pt), top); + hmeasure((lochpos+locwidth,toaddrvpos), toaddrhpos, plength[17], (-6pt,0pt), + top); + else : + hmeasure((0,toaddrvpos), -toaddrhpos, plength[24], (6pt,0pt), top); + hmeasure((paperwidth+toaddrhpos,toaddrvpos), -toaddrhpos, plength[24], + (-6pt,0pt), top); + fi +% \end{macrocode} +% \texttt{toaddrindent}: +% \begin{macrocode} + hmeasure((istoaddrhpos, + toaddrvpos+0.75*(toaddrheight+backaddrheight+specialmailheight+tickhoehe)), + toaddrindent, plength[18], (0.5*toaddrindent,0pt), rt); + hmeasure((istoaddrhpos+toaddrwidth-toaddrindent, + toaddrvpos+0.75*(toaddrheight+backaddrheight+specialmailheight+tickhoehe)), + toaddrindent, plength[18], (-0.5*toaddrindent,0pt), lft); +% \end{macrocode} +% \texttt{refwidth}: +% \begin{macrocode} + hmeasure((1in+oddsidemargin,refvpos), refwidth, plength[11], origin, top); +% \end{macrocode} +% \texttt{refhpos}: +% \begin{macrocode} + hmeasure((0,refvpos), refhpos, plength[22], origin, top); +% \end{macrocode} +% \texttt{foldmarkhpos}: +% \begin{macrocode} + hmeasure((0,bfoldmarkvpos+tickhoehe), foldmarkhpos, plength[7], + (-6pt,0.5*tickhoehe), lrt); +% \end{macrocode} +% \texttt{sigindent}: +% \begin{macrocode} + hmeasure((1in+oddsidemargin,sigvpos+0.5*(sigheight+tickhoehe)), sigindent, + plength[13], (-0.5*sigindent,0pt), lft); +% \end{macrocode} +% \texttt{firstfootwidth}: +% \begin{macrocode} + hmeasure((firstfoothpos,firstfootvpos), firstfootwidth, plength[4], origin, + top); +% \end{macrocode} +% \texttt{toaddrheight}: +% \begin{macrocode} + vmeasure((istoaddrhpos-tickhoehe,toaddrvpos), toaddrheight, + plength[21] rotated 90, origin, lft); + vmeasure((lochpos+locwidth,toaddrvpos), toaddrheight, + plength[21] rotated 90, origin, rt); +% \end{macrocode} +% \texttt{backaddrheight}: +% \begin{macrocode} + vmeasure((istoaddrhpos+toaddrwidth,toaddrvpos), backaddrheight, plength[1], + origin, rt); +% \end{macrocode} +% \texttt{refaftervskip}: +% ^^A auskommentiert: +% ^^A vmeasure((1in+oddsidemargin+0.5*(textwidth+titlewidth), +% ^^A refvpos+refheight), refaftervskip, plength[9], origin, rt); +% \begin{macrocode} + vmeasure((1in+oddsidemargin+textwidth,refvpos+refheight), refaftervskip, + plength[9], origin, rt); +% \end{macrocode} +% \texttt{sigbeforvskip}: +% \begin{macrocode} + vmeasure((1in+oddsidemargin+sigindent+0.1*sigwidth-tickhoehe, + sigvpos+sigheight), sigbeforevskip, plength[12], origin, rt); +% \end{macrocode} +% \texttt{firstheadvpos}: +% \begin{macrocode} + dmeasure((firstheadhpos-2*tickhoehe,firstheadvpos), plength[5], origin, rt); +% \end{macrocode} +% \texttt{toaddrvpos}: +% \begin{macrocode} + if toaddrhpos > 0 : + dmeasure((istoaddrhpos+toaddrwidth,toaddrvpos), plength[19], origin, top); + else : + dmeasure((lochpos+locwidth,toaddrvpos), plength[19], origin, top); + fi +% \end{macrocode} +% \texttt{refvpos}: +% \begin{macrocode} + dmeasure((refhpos+refwidth,refvpos), plength[10], (0pt,0pt), top); +% \end{macrocode} +% \texttt{tfoldmarkvpos}: +% \begin{macrocode} + dmeasure((foldmarkhpos+tfoldmarkwidth,tfoldmarkvpos), plength[16], + (18pt,1.5*tickhoehe), bot); +% \end{macrocode} +% \texttt{bfoldmarkvpos}: +% \begin{macrocode} + dmeasure((foldmarkhpos+bfoldmarkwidth,bfoldmarkvpos), plength[2], + (18pt,0pt), top); +% \end{macrocode} +% \texttt{firstfootvpos}: +% \begin{macrocode} + dmeasure((firstfoothpos-2*tickhoehe,firstfootvpos), plength[3], origin, top); +endgroup +enddef; + +def writelatexlengths = +begingroup + color temp; + deflatexlengths; + temp := drawcolor; + drawcolor := latexlengthcolor; + pickup pencircle scaled hilfsstrichstaerke; +% \end{macrocode} +% \LaTeX-Längen: +% \begin{macrocode} + vmeasure((1in+oddsidemargin+openingwidth,subjectvpos-baselineskip), + baselineskip, latexlength[1], origin, rt); + vmeasure((1in+oddsidemargin+openingwidth,subjectvpos+baselineskip), + 2*baselineskip, latexlength[2], origin, rt); + vmeasure((1in+oddsidemargin+openingwidth,openingvpos+baselineskip), + baselineskip, latexlength[1], origin, rt); + vmeasure((1in+oddsidemargin+sigindent+sigwidth,sigvpos-baselineskip), + baselineskip, latexlength[1], origin, rt); + hmeasure((1in+oddsidemargin,typeareabottom+tickhoehe), + textwidth, latexlength[3], (0pt,-3pt), bot); + draw ((1in+oddsidemargin+textwidth,typeareabottom)-- + (firstfoothpos+firstfootwidth,typeareabottom)) transformed T; + vmeasure((firstfoothpos+firstfootwidth,typeareabottom), + firstfootvpos-typeareabottom, latexlength[4] rotated 90, origin, + rt); + drawcolor := temp; +endgroup +enddef; +% \end{macrocode} +% Anker ist links unten. +% \begin{macrocode} +def hmeasure(expr p, breite, pic, s)(suffix alig) = +begingroup + save pleft, pright; + pair pleft, pright; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% linker Tick: +% \begin{macrocode} + draw (p--p shifted (0,-tickhoehe)) transformed T; +% \end{macrocode} +% rechter Tick: +% \begin{macrocode} + draw (p--p shifted (0,-tickhoehe)) shifted (breite,0) transformed T; +% \end{macrocode} +% Messlinie; +% die Korrektur der Stiftstärke muss nach der Transformation +% in Zeichenkoordinaten erfolgen: +% \begin{macrocode} + pleft = p shifted (0,-0.5*tickhoehe) + transformed T shifted (hilfsstrichstaerke,0); + pright = p shifted (0,-0.5*tickhoehe) shifted (breite,0) + transformed T shifted (-hilfsstrichstaerke,0); + drawdblarrow pleft--pright; + label.alig(pic, (p shifted (0.5*breite, -0.5*tickhoehe) shifted s) + transformed T); +endgroup +enddef; + + +% \end{macrocode} +% Anker ist links oben. +% \begin{macrocode} +def vmeasure(expr p, breite, pic, s)(suffix alig) = +begingroup + save ptop, pbottom; + pair ptop, pbottom; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% oberer Tick: +% \begin{macrocode} + draw (p--p shifted (tickhoehe,0)) transformed T; +% \end{macrocode} +% unterer Tick: +% \begin{macrocode} + draw (p--p shifted (tickhoehe,0)) shifted (0,breite) transformed T; +% \end{macrocode} +% Messlinie; +% die Korrektur der Stiftstärke muss nach der Transformation +% in Zeichenkoordinaten erfolgen: +% \begin{macrocode} + ptop = p shifted (0.5*tickhoehe,0) + transformed T shifted (0,-hilfsstrichstaerke); + pbottom = p shifted (0.5*tickhoehe,0) shifted (0,breite) + transformed T shifted (0,hilfsstrichstaerke); + drawdblarrow ptop--pbottom; + label.alig(pic, (p shifted (0.5*tickhoehe, 0.5*breite) shifted s) + transformed T); +endgroup +enddef; + + +% \end{macrocode} +% Anker ist links unten. +% \begin{macrocode} +def dmeasure(expr p, pic, s)(suffix alig) = +begingroup + save ptop, pbottom; + pair ptop, pbottom; + drawoptions(withcolor drawcolor); +% \end{macrocode} +% horizontale Linie: +% \begin{macrocode} + draw (p--p shifted (2*tickhoehe,0)) transformed T; +% \end{macrocode} +% Messlinie: +% \begin{macrocode} + ptop = p shifted (0,-1.5*tickhoehe) shifted (tickhoehe,0) + transformed T; +% \end{macrocode} +% Die Korrektur der Stiftstärke muss nach der Transformation +% in Zeichenkoordinaten erfolgen. +% \begin{macrocode} + pbottom = p shifted (tickhoehe,0) + transformed T shifted (0,hilfsstrichstaerke); + drawarrow ptop--pbottom; + label.alig(pic, (p shifted (tickhoehe, -1.5*tickhoehe) shifted s) + transformed T); +endgroup +enddef; + + +def writedescription(expr lang) = + if toaddrhpos < 0 : + istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth; + else : + istoaddrhpos := toaddrhpos; + fi + if (lang="de"): defdescriptionde; + else: defdescriptionen; + fi + drawoptions(withcolor drawcolor); +% \end{macrocode} +% Kopf und FuĂź: +% \begin{macrocode} + label(description[1], + (firstheadhpos+0.5*firstheadwidth, firstheadvpos+0.5*firstheadheight) + transformed T); + label(description[2], + (firstfoothpos+0.5*firstfootwidth, firstfootvpos+0.5*firstfootheight) + transformed T); +% \end{macrocode} +% Adressfeld: +% \begin{macrocode} + label(description[3], + (istoaddrhpos+0.5*toaddrwidth, toaddrvpos+0.5*backaddrheight) + transformed T); + label(description[4], + (istoaddrhpos+toaddrwidth-specialmailrightindent-0.5*specialmailwidth, + toaddrvpos+backaddrheight+0.5*specialmailheight) transformed T); + label(description[5], + (istoaddrhpos+0.5*toaddrwidth, + toaddrvpos+backaddrheight+specialmailheight+0.5*(toaddrheight-backaddrheight-specialmailheight)) + transformed T); +% \end{macrocode} +% Absenderergänzung: +% \begin{macrocode} + label(description[13], (lochpos+0.5*locwidth, toaddrvpos+0.5*toaddrheight) + transformed T); +% \end{macrocode} +% Geschäftszeile: +% \begin{macrocode} + label(description[6], (1in+oddsidemargin+0.5*refwidth, + refvpos+0.5*refheight) + transformed T); +% \end{macrocode} +% Titel: +% \begin{macrocode} + label(description[7], + (1in+oddsidemargin+0.5textwidth, titlevpos+0.5*titleheight) + transformed T); +% \end{macrocode} +% Betreff: +% \begin{macrocode} + label(description[8], + (1in+oddsidemargin+0.5*subjectwidth, subjectvpos+0.5*subjectheight) + transformed T); +% \end{macrocode} +% Anrede: +% \begin{macrocode} + label(description[9], + (1in+oddsidemargin+0.5*openingwidth, openingvpos+0.5*openingheight) + transformed T); +% \end{macrocode} +% Brieftext: +% \begin{macrocode} + label(description[10], + (1in+oddsidemargin+0.5*bodywidth, bodyvpos+0.5*bodyheight) + transformed T); +% \end{macrocode} +% Signatur: +% \begin{macrocode} + label(description[11], + (1in+oddsidemargin+sigindent+0.5*sigwidth, sigvpos+0.5*sigheight) + transformed T); + label(description[12], + (1in+oddsidemargin+sigindent+0.5*sigwidth, + sigvpos+sigheight+sigbeforevskip+0.5*sigheight) transformed T); +enddef; +% \end{macrocode} +%</include> +% +% \iffalse +\endinput +%%% Local Variables: +%%% mode: doctex +%%% 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 new file mode 100644 index 00000000000..29ffc81aded --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/scrguide.cls @@ -0,0 +1,1440 @@ +% ====================================================================== +% scrguide.cls +% Copyright (C) 2005-2006 Markus Kohm +% +% 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. +% ---------------------------------------------------------------------- +% scrguide.cls +% Copyright (C) 2005-2006 Markus Kohm +% +% 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. +% ====================================================================== +% +% \section{Identification} +% +% \begin{macrocode} +\ProvidesClass{scrguide}[2006/07/01 v0.9a internal KOMA-Script guide class] +% \end{macrocode} +% +% +% \section{Options on my own} +% +% This class also has options. +% +% \begin{option}{pagereftolabel} +% |\autopageref| should reference the label not the page. +% \begin{option}{pagereftopage} +% |\autopageref| should reference the page not the label. +% \begin{macro}{\if@pagereftolabel} +% \begin{macrocode} +\newif\if@pagereftolabel\@pagereftolabeltrue +\DeclareOption{pagereftolabel}{\@pagereftolabeltrue} +\DeclareOption{pagereftopage}{\@pagereftolabelfalse} +% \end{macrocode} +% \end{macro} +% \end{option} +% \end{option} +% +% \begin{option}{moreindexnotes} +% Show more notes at the index. +% \begin{option}{lessindexnotes} +% Show less notes at the index. +% \begin{macro}{\if@moreindexnotes} +% \begin{macrocode} +\newif\if@moreindexnotes\@moreindexnotesfalse +\DeclareOption{moreindexnotes}{\@moreindexnotestrue} +\DeclareOption{lessindexnotes}{\@moreindexnotesfalse} +% \end{macrocode} +% \end{macro} +% \end{option} +% \end{option} +% +% Note: You have to pass options to class \textsf{scrguide}, because only +% these options will be processed by |\LoadClassWithOptions| below. +% \begin{macrocode} +\ExecuteOptions{pagereftolabel,lessindexnotes} +\PassOptionsToClass{bibtotoc,idxtotoc,tablecaptionabove}{scrguide} +\ProcessOptions\relax +% \end{macrocode} +% +% +% \section{Load the Base Class and Packages} +% +% NOTE: I use \texttt{latin1} instead of the prefered \texttt{utf8} because of +% problems of package \textsf{listings}. +% \begin{macrocode} +\LoadClassWithOptions{scrbook} +\RequirePackage[latin1]{inputenc} +\RequirePackage[TS1,T1]{fontenc} +\RequirePackage{babel} +\RequirePackage[fixlanguage]{babelbib} +\RequirePackage{makeidx} +\RequirePackage{scrdate} +\RequirePackage{scrtime} +\RequirePackage{graphicx} +\RequirePackage{booktabs} +\RequirePackage{longtable} +\RequirePackage{amsmath} +\RequirePackage{listings} +\RequirePackage{multicol} +\RequirePackage{hyperref} +% \end{macrocode} +% +% +% \section{Free or Non-Free Version} +% +% \begin{macrocode} +\AtEndOfClass{% + \InputIfFileExists{scrnonfree.tex}{}{% + \typeout{^^J + ----------------------------------------------------------------------^^J + FREE VERSION OF THE KOMA-SCRIPT GUIDE.^^J + NOTE THAT THIS VERSION MAY BE FULL OF UGLY PARAGRAPH AND PAGE BREAKS.^^J + THIS IS BECAUSE THIS VERSION OF THE KOMA-SCRIPT GUIDE IS UNDER^^J + CONSTRUCTION FOREVER.^^J + ----------------------------------------------------------------------^^J + ^^J% + }% + \newcommand*{\iffree}{\@firstoftwo}% + \usepackage{lmodern}% + \@twosidefalse\@openrightfalse + \RequirePackage{geometry}% + \geometry{papersize={140mm,210mm},% + includehead,includemp,reversemp,marginparwidth=2em,% + vmargin={2mm,4mm},hmargin=2mm}% + \RequirePackage{xcolor}% + \RequirePackage{scrpage2}% + \clearscrheadfoot + \ohead{\rule[-\dp\strutbox]{0pt}{\headheight}\headmark\hspace{2mm}}% + \ihead[{\colorbox{yellow!50}{\makebox[\linewidth][l]{% + \rule[-\dp\strutbox]{0pt}{\headheight}% + \makebox[2em][r]\pagemark}}}]% + {\colorbox{yellow!50}{\makebox[\linewidth][l]{% + \rule[-\dp\strutbox]{0pt}{\headheight}% + \makebox[2em][r]\pagemark}}}% + \renewcommand*{\headfont}{\normalfont\sffamily}% + \setkomafont{pagenumber}{}% + \renewcommand*{\chaptermark}[1]{% + \markboth\chaptermarkformat\chaptermarkformat}% + \renewcommand*{\chaptermarkformat}{\chapapp~\thechapter\autodot}% + \renewcommand*{\chapterformat}{}% + \renewcommand*{\chapterpagestyle}{scrheadings}% + \setlength{\@tempdimc}{\oddsidemargin}% + \addtolength{\@tempdimc}{1in}% + \setheadwidth[-\@tempdimc]{paper}% + \pagestyle{scrheadings}% + \hypersetup{colorlinks}% + \let\orig@maketitle\maketitle + \def\maketitle{% + \begingroup + \@twosidetrue + \let\cleardoublepage\clearpage + \addtolength{\oddsidemargin}{\evensidemargin}% + \setlength{\evensidemargin}{.5\oddsidemargin}% + \setlength{\oddsidemargin}{\evensidemargin}% + \orig@maketitle\relax + \endgroup + }% + \renewcommand*{\chapterheadstartvskip}{}% + \raggedbottom + \sloppy + \lstset{breaklines,prebreak=\mbox{$\hookleftarrow$}}% + }% +} +% \end{macrocode} +% +% Now loading the last package (better do it late than never): +% \begin{macrocode} +\RequirePackage{textcomp} +% \end{macrocode} +% +% +% \section{Language Dependencies} +% +% We load the language dependency file at |\begin{document}| and add some +% of the extensions to the language. +% \begin{macrocode} +\AtBeginDocument{% + \InputIfFileExists{\jobname-\languagename.tex}{% + \ClassInfo{scrguide}{Loading language dependencies for \languagename}% + }{% + \ClassError{scrguide}{\languagename\space not supported}{% + You've tried to generate a guide for language `\languagename' but + language\MessageBreak + dependency file `\jobname-\language.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 + \GuideLanguageExtensions\GuideLanguageExtensions +} +% \end{macrocode} +% +% +% \section{Breaking of Paragraphs and Pages} +% +% There are several parameters to configure the breaking. I've tried to find +% good values. First of all the placement of floats and text. +% \begin{macrocode} +\renewcommand*{\floatpagefraction}{.75}% was .6 +\renewcommand*{\textfraction}{.2}% original +\renewcommand*{\topfraction}{.75}% was .7 +\renewcommand*{\bottomfraction}{.33}% was .3 +\setcounter{topnumber}{1}% was 2 +\setcounter{bottomnumber}{1}% original +\setcounter{totalnumber}{3}% original +% \end{macrocode} +% +% +% \section{Find the Date of the Newest Documentation File} +% +% \begin{macro}{\newestfiledate} +% The latex date of the newest used file. +% \begin{macrocode} +\newcommand*{\newestfiledate}{0001-01-01} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@notonlypreamble} +% Remove commands from to be \@onlypreamble commands. +% \begin{macrocode} +\newcommand*{\@notonlypreamble}[1]{% + \begingroup + \let\new@preamblecmds\@empty% + \def\do##1{\ifx ##1#1\else + \expandafter\def\expandafter\new@preamblecmds\expandafter{% + \new@preamblecmds\do##1}\fi}% + \@preamblecmds + \global\let\@preamblecmds\new@preamblecmds + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@ifl@t@r} +% Not longer a |\@onlypreamble| command. +% \begin{macrocode} +\@notonlypreamble\@ifl@t@r +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@parse@version} +% Not longer a |\@onlypreamble| command. +% \begin{macrocode} +\@notonlypreamble\@parse@version +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@latex@version} +% Like |\@parse@version| but returns a \LaTeX{} date. +% \begin{macrocode} +\newcommand*{\@latex@version}{} +\def\@latex@version#1/#2/#3#4#5\@nil{#1/#2/#3#4} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iso@version} +% Like |\@parse@version| but returns an iso date. +% \begin{macrocode} +\newcommand*{\@iso@version}{} +\def\@iso@version#1/#2/#3#4#5\@nil{#1-#2-#3#4} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\IsoDate} +% Converts \LaTeX{} date #1 into an iso date. +% \begin{macrocode} +\newcommand*{\IsoDate}[1]{\expandafter\@iso@version#1//00\@nil} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@CheckDate} +% Check if the provided date of file #1.tex is newer than +% \@newestfiledate. If so, write the new date to the aux file. +% \begin{macrocode} +\newcommand*{\@CheckDate}[1]{% + \begingroup + \expandafter\ifx\csname ver@#1.tex\endcsname\relax\else + \typeout{\csname ver@#1.tex\endcsname}% + \expandafter\@ifl@t@r\csname ver@#1.tex\endcsname\newestfiledate{% + \xdef\newestfiledate{% + \expandafter\expandafter\expandafter\@latex@version + \csname ver@#1.tex\endcsname//00\@nil% + }% + \write\@auxout{\noexpand\gdef\noexpand\newestfiledate{% + \newestfiledate}\@percentchar\space #1.tex}% + }{}% + \fi + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% Check the date of the jobfile: +% \begin{macrocode} +\@CheckDate\jobname +% \end{macrocode} +% +% \begin{macro}{\@providesfile} +% \begin{macro}{\SCR@providesfile} +% Redefine |\ProvidesFile| to also check the date. +% \begin{macrocode} +\newcommand*{\SCR@providesfile}{} +\AtBeginDocument{% + \let\SCR@providesfile\@providesfile + \def\@providesfile#1[#2]{% + \SCR@providesfile#1[#2]% + \expandafter\@CheckDate\expandafter{\expandafter\@BaseFileName#1.\@nil}% + }% +} +% \end{macrocode} +% \begin{macro}{\@BaseFileName} +% Split of extension of the file name. +% \begin{macrocode} +\newcommand*{\@BaseFileName}{} +\def\@BaseFileName#1.#2\@nil{#1} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Predefine current date: +% \begin{macrocode} +\AtBeginDocument{\date{\IsoDate\newestfiledate}} +% \end{macrocode} +% +% +% \section{Emphasization and Fonts} +% +% The \KOMAScript{} guide uses a lot of emphasizations. Most of them are +% declared robustly to avoid problems at index, change log etc. +% +% \begin{macro}{\textsfrm} +% Something like |\emph| using |\textsf| and |\textrm| instead of |\textit| +% and |\textup|. +% \begin{macrocode} +\newcommand*{\textsfrm}[1]{% + \begingroup + \edef\@tempa{\sfdefault}% + \ifx\@tempa\f@family\textrm{#1}\else\textsf{#1}\fi + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\File} +% \begin{macro}{\Class} +% \begin{macro}{\Package} +% Some markup macros for files with special meanings. +\DeclareRobustCommand*{\File}[1]{\texttt{#1}} +\DeclareRobustCommand*{\Class}[1]{\textsfrm{#1}} +\DeclareRobustCommand*{\Package}[1]{\textsfrm{#1}} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Macro} +% \begin{macro}{\Option} +% \begin{macro}{\Environment} +% \begin{macro}{\Counter} +% \begin{macro}{\Length} +% \begin{macro}{\PLength} +% \begin{macro}{\FloatStyle} +% \begin{macro}{\Pagestyle} +% \begin{macro}{\Variable} +% \begin{macro}{\FontElement} +% \begin{macro}{\PName} +% \begin{macro}{\PValue} +% \begin{macro}{\Parameter} +% \begin{macro}{\OParameter} +% \begin{macro}{\AParameter} +% \begin{macro}{\PParameter} +% \begin{description} +% \item[\cs{Macro}] \LaTeX{} or \TeX{} macro +% \item[\cs{Option}] class or package option +% \item[\cs{Environment}] \LaTeX{} environment +% \item[\cs{Counter}] \LaTeX{} counter +% \item[\cs{Length}] \LaTeX{} length +% \item[\cs{PLength}] \KOMAScript{} pseudo length +% \item[\cs{Variable}] \KOMAScript{} variable +% \item[\cs{FontElement}] \KOMAScript{} element that has its own font +% selection +% \item[\cs{PName}] name of a parameter of a macro or environment +% \item[\cs{PValue}] value of a parameter of a macro or environment +% \item[\cs{Parameter}] the mandatory parameter of a macro or environment +% \item[\cs{OParameter}] the optional parameter of a macro or environment +% \item[\cs{AParameter}] the alternativ parameter of a macro or environment +% \item[\cs{PParameter}] the part-of-command parameter of a macro or +% environment +% \end{description} +% \begin{macrocode} +\DeclareRobustCommand*{\Macro}[1]{\mbox{\texttt{\char`\\#1}}} +\DeclareRobustCommand*{\Option}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\FloatStyle}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\Pagestyle}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\Environment}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\Counter}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\Length}[1]{\mbox{\texttt{\char`\\#1}}} +\DeclareRobustCommand*{\PLength}[1]{\mbox{\PValue{#1}}} +\DeclareRobustCommand*{\Variable}[1]{\mbox{\PValue{#1}}} +\DeclareRobustCommand*{\FontElement}[1]{\PValue{#1}} +\DeclareRobustCommand*{\PName}[1]{\texttt{\textit{#1}}} +\DeclareRobustCommand*{\PValue}[1]{\texttt{#1}} +\DeclareRobustCommand*{\Parameter}[1]{\texttt{\{}\PName{#1}\texttt{\}}} +\DeclareRobustCommand*{\OParameter}[1]{% + \texttt{[%] + }\PName{#1}\texttt{%[ + ]}} +\DeclareRobustCommand*{\AParameter}[1]{% + \texttt{(%) + }\PName{#1}\texttt{%( + )}} +\DeclareRobustCommand*{\PParameter}[1]{\texttt{\{#1\}}} +% \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{macro} +% +% \begin{macro}{\EMail} +% An email adress. +% \begin{macrocode} +\DeclareRobustCommand*{\EMail}[1]{\textless #1\textgreater} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\TextEMail} +% EMail address at the text. +% \begin{macrocode} +\DeclareRobustCommand*{\TextEMail}[1]{{\small\EMail{#1}}} +% \end{macrocode} +% \end{macro} +% +% Setup fonts for table and figure captions: +% \begin{macrocode} +\setkomafont{caption}{\normalcolor\small} +% \end{macrocode} +% +% +% \section{Math} +% +% I will not use real math. But there will be some »pseudo math code«. So I +% need some macros for this. +% +% \begin{macro}{\Var} +% Variables (in real math simply |$a$| will be |\Var{a}| in my math: +% \begin{macrocode} +\newcommand*{\Var}[1]{\ensuremath{\textit{#1}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Unit} +% The unit of a length. +% \begin{macrocode} +\newcommand*{\Unit}[1]{\,\ifmmode \textrm{#1}\else #1\fi} +% \end{macrocode} +% \end{macro} +% +% +% \section{Acronyms} +% +% \begin{macro}{\Script} +% \begin{macro}{\ScriptII} +% \begin{macrocode} +\DeclareRobustCommand{\Script}{\Package{Script}} +\DeclareRobustCommand{\ScriptII}{\Package{Script-2}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\eTeX} +% This may already be defined. +% \begin{macrocode} +\providecommand*{\eTeX}{\ensuremath{\varepsilon}-\TeX} +% \end{macrocode} +% \end{macro} +% +% +% \section{Identification} +% +% \begin{macro}{\labelbase} +% \begin{macrocode} +\newcommand*{\labelbase}[1]{% + \renewcommand*{\label@base}{#1}% + \label{cha:#1}% +} +% \end{macrocode} +% \begin{macro}{\label@base} +% \begin{macrocode} +\newcommand*{\label@base}{unknown} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \section{Special Environments} +% +% \begin{environment}{Declaration} +% Declaration of macros, environments, options, lengths, counters, pseudo +% length, variables etc.\footnote{TODO: Redefining most declaration commands +% to also write labels.} +% \begin{macrocode} +\newenvironment{Declaration}{% +% \end{macrocode} +% \begin{macro}{\new@element} +% Help macro to define new Declaration elements. +% \begin{macrocode} + \newcommand*{\new@element}[1]{% + \expandafter\newcommand\expandafter*\csname X##1\endcsname{}% + \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 + \csname X##1\endcsname{####1}\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}% + \new@element{Environment}% + \new@element{Counter}% + \new@element{FloatStyle}% + \new@element{PLength}% + \new@element{Variable}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} + \par\small\addvspace{2\baselineskip plus .5\baselineskip}% + \vspace{-\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 +} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{Example} +% This environment is used for all examples at the \KOMAScript{} guide. +% \begin{macrocode} +\newenvironment{Example}{% + \labeling{{\usekomafont{sectioning}\GuideExample:\ }} + \item[{\usekomafont{sectioning}\GuideExample:\ }]% +}{% + \endlabeling +} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{ShowOutput} +% This environment is used for the output of examples. It shows the middle +% part of a page\footnote{TODO: optional arguments for printing a top or +% bottom part of a page}. It uses |\scalebox| so you should never use a +% DVI preview or a raw DVI printing. +% \begin{macrocode} +\newsavebox\ShowOutputBox +\newenvironment{ShowOutput}[1][0pt]{\par + \begin{lrbox}{\ShowOutputBox}% + \minipage{.9\linewidth}% + \vspace*{\baselineskip}\vspace{-#1}% +}{% + \endminipage + \end{lrbox}% + \setlength{\unitlength}{1pt}% + \setlength{\@tempdima}{\ht\ShowOutputBox}% + \addtolength{\@tempdima}{\dp\ShowOutputBox}% + \setlength{\@tempdima}{.75\@tempdima}% + \edef\MidY{\strip@pt\@tempdima}% + \addtolength{\@tempdima}{5pt}% + \edef\HighY{\strip@pt\@tempdima}% + \addtolength{\@tempdima}{-10pt}% + \edef\LowY{\strip@pt\@tempdima}% + \addtolength{\@tempdima}{5pt}% + \setlength{\@tempdima}{.9\linewidth}\edef\QuadIV{\strip@pt\@tempdima}% + \setlength{\@tempdima}{.675\linewidth}\edef\QuadIII{\strip@pt\@tempdima}% + \setlength{\@tempdima}{.45\linewidth}\edef\QuadII{\strip@pt\@tempdima}% + \setlength{\@tempdima}{.225\linewidth}\edef\QuadI{\strip@pt\@tempdima}% + \centering + \begin{picture}(\QuadIV,\MidY) + \qbezier(0,\MidY)(\QuadI,\HighY)(\QuadII,\MidY)% + \qbezier(\QuadII,\MidY)(\QuadIII,\LowY)(\QuadIV,\MidY) + \put(0,0){\makebox(\QuadIV,\MidY)[c]{% + \scalebox{.75}{\usebox{\ShowOutputBox}}% + }% + }% + \put(0,-5){\line(0,1){\HighY}}% + \put(\QuadIV,-5){\line(0,1){\HighY}}% + \qbezier(0,-5)(\QuadI,0)(\QuadII,-5)% + \qbezier(\QuadII,-5)(\QuadIII,-10)(\QuadIV,-5) + \end{picture}\par + \vspace{1ex plus 1ex minus .5ex}% +} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{Explain} +% Some parts of the documentation are importing for understanding +% \KOMAScript{} but not important for using \KOMAScript. +% \begin{macrocode} +\newenvironment{Explain}{% + \par\sffamily +}{% + \normalcolor\par +} +% \end{macrocode} +% \end{environment} +% +% +% \subsection{Used by Jens-Uwe only} +% +% There are some example visualizations used only by Jens-Uwe.\footnote{TODO: +% All these should be merged with \texttt{ShowOutputBox}.} +% +% \begin{environment}{XmpTopPage} +% Output of the top of a page. +% \begin{macrocode} +\newenvironment{XmpTopPage} + {\begin{center}\setlength{\unitlength}{1mm}\begin{picture}(100,39)% + \thinlines + \qbezier(0,5)(25,7)(50,5)\qbezier(50,5)(75,3)(100,5) + \put(0,5){\line(0,1){34}} + \thicklines + \put(100,5){\line(0,1){34}}\put(0,39){\line(1,0){100}} + \small}{\end{picture}\end{center}\vspace{-1.5\baselineskip}} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{XmpBotPage} +% Output of the bottom of a page. +% \begin{macrocode} +\newenvironment{XmpBotPage} + {\begin{center}\setlength{\unitlength}{1mm}\begin{picture}(100,40)% + \thinlines + \qbezier(0,38)(25,40)(50,38)\qbezier(50,38)(75,36)(100,38) + \put(0,5){\line(0,1){33}} + \thicklines + \put(100,5){\line(0,1){33}}\put(0,5){\line(1,0){100}} + \small}{\end{picture}\end{center}\vspace{-1.5\baselineskip}} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\XmpSetText} +% Output some text at \texttt{XmpTopPage} or \texttt{XmpBotPage}. +% \begin{macrocode} +\newcommand{\XmpSetText}[2][\XmpText]{% + \put(#2){\makebox(0,0)[tl]{\parbox{70mm}{#1}}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\XmpMarginNote} +% Output a margin note at \texttt{XmpTopPage} or \texttt{XmpBotPage}. +% \begin{macrocode} +\newcommand{\XmpMarginNote}[1]{% + \put(#1){\makebox(0,5)[tl]{\scriptsize\XmpMarginTextA}} + \put(#1){\makebox(0,5)[bl]{\scriptsize\XmpMarginTextB}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\XmpRule} +% Output a horizonal rule at a \texttt{XmpTopPage} or \texttt{XmpBotPage}. +% \begin{macrocode} +\newcommand{\XmpRule}[2]{\put(#1){\line(1,0){#2}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\XmpHeading} +% Output a head line at a \texttt{XmpTopPage} or \texttt{XmpBotPage}. +% \begin{macrocode} +\newcommand{\XmpHeading}[3][\KOMAScript\hfill 3]{% + \put(#2){\makebox(#3,0)[l]{#1}}} +% \end{macrocode} +% \end{macro} +% +% +% \section{Margin Notes} +% +% \begin{macro}{\OnlyAt} +% Some things are not available at every \KOMAScript{} class. To show the +% differences we'll put a margin note. If more than one class or package +% should be noted, |\and| will be used to separate them. +% \begin{macrocode} +\newcommand*{\OnlyAt}[1]{% + \marginline{\def\and{,\\}\footnotesize #1}% +} +% \end{macrocode} +% \end{macro} +% +% +% \section{Change Log} +% +% Not all features are part of every old \KOMAScript{} release. New features +% will be marked and these marks are referenced at a kind of index. +% +% \begin{macro}{\ChangedAt} +% Set the margin note and write an entry to the change log.\footnote{TODO: +% Don't use the glossary, use a file by my own.} +% \begin{macrocode} +\providecommand*{\ChangedAt}[2]{% + \marginline{\footnotesize\fbox{\strut#1}}% + \glossary{#2>#1|indexrm}% +} +% \end{macrocode} +% \end{macro} +% +% While I currently use the glossary, we have to make it: +% \begin{macrocode} +\makeglossary +% \end{macrocode} +% +% \begin{macro}{\printchangelog} +% We don't want to generate the change log only. We also have to print it. +% \begin{macrocode} +\newcommand*{\printchangelog}{\@input@{\jobname.chn}} +% \end{macrocode} +% \end{macro} +% \begin{environment}{thechangelog} +% And this will be used at the \texttt{chn} file. The change log index will +% always generate an entry to the table of contents. +% \begin{macrocode} +\newenvironment{thechangelog}{% + \setchapterpreamble{\GuideChangeLogPreamble\par\bigskip}% + \addchap{\changelogname}% + \markboth{\changelogname}{\changelogname}% + \setlength{\parindent}{0pt}% + \setlength{\parskip}{0pt plus .3pt}% + \setlength{\parfillskip}{0pt plus 1fil}% + \def\and{,\ }% + \let\item\@idxitem +}{% + \clearpage +} +% \end{macrocode} +% The macros |\GuideChangeLogPreamble| and |\changelogname| have to be +% defined at the language file. +% \end{environment} +% +% +% \section{Special Tabulars and Tables} +% +% I need some special tabulars and tables. These are used for describing +% single topics. +% +% \begin{environment}{desctabular} +% This kind of tabluar has primary one column but uses two columns in +% declaration. It's something like a \texttt{description} environment with +% line break after the item. I've used a \texttt{tabular} at the definition +% because of full compatibitlity with \texttt{desctable}. +% \begin{length}{\descwidth} +% I need a length of local usage. I could have used |\@tempdima| or +% another local length from kernel. But I've decided not to try to find a +% unused length at \texttt{tabular} environment. +% \begin{macrocode} +\newlength{\descwidth} +% \end{macrocode} +% \end{length} +% The definition of \texttt{desctabular} is very simple, because the main +% work will be done by a \emph{worker} macro that will be defined later. +% \begin{macrocode} +\newenvironment{desctabular}[1][2em]{% + \start@desctab{#1}% + \tabular{lp{\descwidth}} + \toprule +}{ + \addlinespace[-.5\normalbaselineskip]\bottomrule + \endtabular +} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{desctable} +% This is almost the same like \texttt{desctabular} but it uses a longtable +% to allow page breaks. +% \begin{macrocode} +\newenvironment{desctable}[1][2em]{% + \onelinecaptionsfalse + \start@desctab{#1}% + \newcommand{\Endfirsthead}{\toprule\endfirsthead}% + \newcommand{\Endhead}{\midrule\endhead}% + \newcommand*{\standardfoot}{% + \addlinespace[-.5\normalbaselineskip]\midrule + \multicolumn{2}{r@{}}{\dots}\\ + \endfoot + \addlinespace[-.5\normalbaselineskip]\bottomrule + \endlastfoot + }% + \longtable{lp{\descwidth}}% +}{% + \endlongtable +} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\start@desctab} +% This is the \emph{worker} macro of \texttt{desctable} and +% \texttt{desctabular}. It does the complete calculations and definition of +% the entry (something like |\item|) commands. +% \begin{macrocode} +\newcommand*{\start@desctab}[1]{% + \setlength{\descwidth}{\linewidth}% + \addtolength{\descwidth}{-4\tabcolsep}% + \addtolength{\descwidth}{-#1}% + \setlength{\labelwidth}{\linewidth}% + \addtolength{\labelwidth}{-2\tabcolsep}% + \newcommand{\nentry}[2]{% + \multicolumn{2}{p{\labelwidth}}{\raggedright##1}\\*% + \hspace*{#1} & ##2\tabularnewline% + }% + \newcommand{\entry}[2]{\nentry{##1}{##2}[.5\baselineskip]}% + \newcommand*{\pentry}[1]{% + \entry{\PLength{##1}\IndexPLength[indexmain]{##1}}}% + \newcommand*{\pventry}[1]{\entry{\PValue{##1}}}% + \newcommand*{\mentry}[1]{\entry{\Macro{##1}}}% + \newcommand*{\ventry}[1]{% + \entry{\Variable{##1}\IndexVariable[indexmain]{##1}}% + }% + \newcommand*{\feentry}[1]{% + \entry{\FontElement{##1}\IndexFontElement[indexmain]{##1}}% + }% +} +% \end{macro} +% +% +% \section{Listings} +% +% Setup listings: +% \begin{macrocode} +\lstset{basicstyle=\ttfamily,% + aboveskip=.5\baselineskip,% + belowskip=.5\baselineskip,% + columns=fullflexible% fix for buggy version of LM fonts +} +% \end{macrocode} +% +% +% \section{hyperref Addons} +% +% \begin{macro}{\KOMAScript} +% \begin{macro}{\Guide@KOMAScript} +% We need some additions to \textsf{hyperref}. +% \begin{macrocode} +\newcommand*{\Guide@KOMAScript}{} +\expandafter\let\csname Guide@KOMAScript\expandafter\endcsname\csname +KOMAScript \endcsname +\DeclareRobustCommand*{\KOMAScript}{% + \texorpdfstring{\Guide@KOMAScript}{KOMA-Script}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\url@} +% Redefine to make \texttt{CTAN://} be an alias for +% \texttt{ftp://|\GuideCTANserver|/tex-archive/}. +% \begin{macrocode} +\def\url@#1{\expandafter\url@@#1\@nil} +\def\url@@#1://#2\@nil{% + \def\@tempa{#1}\def\@tempb{CTAN}\ifx\@tempa\@tempb + \hyper@linkurl{\Hurl{#1://#2}}{ftp://\GuideCTANserver/tex-archive/#2}% + \else + \hyper@linkurl{\Hurl{#1://#2}}{#1://#2}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% We have to setup \textsf{hyperref}: +% \begin{macrocode} +\AtBeginDocument{% + \hypersetup{% + plainpages=false, + pdftitle={\GuideTitle}, + pdfauthor={Markus Kohm, Jens-Uwe Morawski}, + pdfsubject={\GuideSubject}, + pdfkeywords={\KOMAScript, scrbook, scrreprt, scrartcl, + typearea, scrlfile, + scrpage, scrpage2, scrlettr, scrlttr2, scraddr, scrtime, scrdate}, + pdfcreator={\KOMAScript, hyperref} + }% +} +% \end{macrocode} +% +% \begin{macro}{\autopageref} +% This is something like |\autoref| but with page reference. A simple +% definition would use |\hyperref| and |\pageref*|. But I want to allow to +% decide if the reference is the page or the label. So this definition is +% more like |\autoref|. +% \begin{macrocode} +\DeclareRobustCommand{\autopageref}[1]{% + \expandafter\auto@setpageref\csname r@#1\endcsname + \@secondoffive + {#1}% +} +% \end{macrocode} +% \begin{macro}{\auto@setpageref} +% This is the \emph{worker} macro. It checks for the label and trys to set +% either a reference to the page or a reference to the label. +% \begin{macrocode} +\newcommand*{\auto@setpageref}[3]{% + \@safe@activestrue + \ifx#1\relax + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{% + Reference `#3' on page \thepage \space undefined% + }% + \else + \def\@currentHtag{\pageautorefname~}% + \if@pagereftolabel + \hyper@@link + {\expandafter\@fifthoffive#1}% + {\expandafter\@fourthoffive#1\@empty\@empty}% + {\@currentHtag\expandafter#2#1\@empty\@empty\null}% + \else + \hyper@@link + {\expandafter\@fifthoffive#1}% + {page.\expandafter\@secondoffive#1\@empty\@empty}% + {\@currentHtag\expandafter#2#1\@empty\@empty\null}% + \fi + \fi + \@safe@activesfalse +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \section{Entries to \contentsname, \figurelistname, etc.} +% +% We have large page numbers, so better setup the needed width. And we like +% other dot seperation. +% \begin{macrocode} +\renewcommand*{\@pnumwidth}{1.67em} +\renewcommand*\@dotsep{2.5} +% \end{macrocode} +% +% +% \section{Bibliography} +% +% \begin{macro}{\BibTeX} +% I use the same hack like the \LaTeX{} team uses at \texttt{ltlogos.dtx} +% for |\LaTeX|: +% \begin{macrocode} +\DeclareRobustCommand{\BibTeX}{B\kern-.05em% + \hbox{$\m@th$% + \csname S@\f@size\endcsname \fontsize\sf@size\z@ + \math@fontsfalse\selectfont + I\kern-.025emB}% + \kern-.08em% + \-\TeX% +} +% \end{macrocode} +% \end{macro} +% +% Use of a preamble and sime other usefull changes. +% \begin{macrocode} +\AtBeginDocument{% + \setbibpreamble{\GuideBibPreamble\bigskip}% + \selectbiblanguage{\languagename}% + \bibliographystyle{babalpha-fl}% + \renewcommand*{\@openbib@code}{% + \setlength{\parsep}{0pt}% + \renewcommand*{\btxauthorcolon}[1]{:\par}% + \renewcommand*{\btxurlfont}{\par\url}% + \raggedright + }% +} +% \end{macrocode} +% +% +% \section{Index} +% +% This is realy tricky. The index depends on an external perl script, which +% splits the one index into several indexes. But first of all, we need to make +% the raw index. +% \begin{macrocode} +\makeindex +% \end{macrocode} +% +% Use of a preamble: +% \begin{macrocode} +\AtBeginDocument{\setindexpreamble{\GuideIndexPreamble\bigskip}} +% \end{macrocode} +% +% \begin{macro}{\ifusemultiindex} +% Now let's decide wether to use one index or to use a multi part index. +% \begin{macrocode} +\newif\ifusemultiindex +\IfFileExists{\jobname-gen.ind}{\usemultiindextrue}{\usemultiindexfalse} +\ifusemultiindex +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\printmultiindex} +% Print one part of the multi part index. +% \begin{macrocode} + \newcommand*{\printmultiindex}[3][]{% + \begingroup + \def\indexname{#2}% +% \end{macrocode} +% \begin{macro}{\CrossIndex} +% Produce a reference from one index to another. The macro |\UseIndex| tells +% the external splitt processor the index to be used for that entry. The +% first argument is the entry to the index. The second is the shortcut of +% the source index and the third is the shortcut of the index with the main +% entry for the entry from first argument. This macro should be used at the +% preamble of one part of the multi part index only. Because of this, it's +% defined here only. +% \begin{macrocode} + \newcommand*{\CrossIndex}[3]{% + \Index{##1=\UseIndex{##2}\protect##1>##3=\UseIndex{##2}\SeeSign + \protect##3}% + }% +% \end{macrocode} +% \end{macro} +% \begin{macrocode} + \ifx\relax#1\relax\let\index@preamble=\relax + \else\def\index@preamble{#1}% + \fi + \label{idx:#3}% + \@input@{\jobname-#3.ind}% + \endgroup + } +% \end{macrocode} +% \begin{environment}{theindex} +% I don't want every part of the index starting a new page. So I'll use the +% \textsf{multicol} package to generate the two columns instead of +% |\twocolumn|. +% \begin{macrocode} + \renewenvironment{theindex}{% + \setchapterpreamble{\index@preamble} + \begin{multicols}{2}[\idx@heading\vspace{-1\baselineskip}]% + \parindent\z@ + \setlength{\parskip}{\z@ \@plus .3\p@}% + \setlength{\parfillskip}{\z@ \@plus 1fil}% + \let\item\@idxitem + \small + }{% + \end{multicols}% + } +% \end{macrocode} +% \end{environment} +% \end{macro} +% +% \begin{macro}{\printindex} +% Print the full index. +% \begin{macrocode} + \renewcommand*{\printindex}{% + \setchapterpreamble{\index@preamble}% + \addchap{\indexname}% + \let\index@preamble=\relax + \renewcommand*\idx@heading{% + \addsec{\indexname}% + \markright{\indexname}% + \ifx\index@preamble\relax + \else\index@preamble\let\index@preamble=\relax\fi + }% + \printmultiindex{\GuidegenIndex}{gen}% + \printmultiindex[% + \CrossIndex{\GuideMacro}{gen}{\GuidecmdIndexShort}% + \CrossIndex{\GuideEnvironment}{gen}{\GuidecmdIndexShort}% + \CrossIndex{\GuideCounter}{gen}{\GuidecmdIndexShort}% + \CrossIndex{\GuideLength}{gen}{\GuidecmdIndexShort}% + ]{\GuidecmdIndex}{cmd}% + \printmultiindex[% + \CrossIndex{\GuideLength}{gen}{\GuidelenIndexShort}% + \CrossIndex{\GuidePLength}{gen}{\GuidelenIndexShort}% + \CrossIndex{\GuideCounter}{gen}{\GuidelenIndexShort}% + ]{\GuidelenIndex}{len}% + \printmultiindex[% + \CrossIndex{\GuideFontElement}{gen}{\GuideelmIndexShort}% + ]{\GuideelmIndex}{elm}% + \printmultiindex[% + \CrossIndex{\GuideFile}{gen}{\GuidefilIndexShort}% + \CrossIndex{\GuidePackage}{gen}{\GuidefilIndexShort}% + \CrossIndex{\GuideClass}{gen}{\GuidefilIndexShort}% + ]{\GuidefilIndex}{fil}% + \printmultiindex[% + \CrossIndex{\GuideOption}{gen}{\GuideoptIndexShort}% + ]{\GuideoptIndex}{opt}% + } +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\indexsection} +% Heading of the next section (e.g. the next character) at an index. +% \begin{macrocode} +\newcommand*{\indexsection}[1]{% + \ifx\empty#1\empty\else + \hspace{0pt plus 2fil}{{\usekomafont{sectioning} #1}}\hspace{0pt plus + 1fil}\nopagebreak + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\indexdelim} +% \begin{macro}{\indexdelimi} +% \begin{macro}{\indexdelimii} +% The delimiter after the index topic but before the page number. There are +% three index levels, so there are three delimiters too. +% \begin{macrocode} +\newcommand*{\indexdelim}{\ \hspace{0pt plus 1fil}\penalty0\null\nobreak + \dotfill~} +\newcommand*{\indexdelimi}{~\dotfill\penalty0\ } +\newcommand*{\indexdelimii}{~\dotfill\penalty0\ } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\UseIndex} +% This macro does nothing but shows the external index split processor the +% destination index. +% \begin{macrocode} +\DeclareRobustCommand*{\UseIndex}[1]{\ignorespaces} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\SeeSign} +% The symbol used to sign a reference at an index. +% \begin{macrocode} +\DeclareRobustCommand*{\SeeSign}{\ensuremath{\protect\rightarrow}~} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AddSeeIndex} +% Add »\emph{see another index}« entry to an index. First argument is an +% index entry to the index with shortcut of second argument. The third +% argument is the name of another index given also by the shortcut at the +% fourth argument. +% \begin{macrocode} +\newcommand*{\AddSeeIndex}[4]{% + \ifusemultiindex + \Index[seeindex{#4}]{#1=\UseIndex{#2}#1>#3=\UseIndex{#2}\SeeSign#3}% + \fi +} +% \end{macrocode} +% \begin{macro}{\seeindex} +% Page number style of references to another index. This eats the page +% number of the index entry and set's a page number reference to the label +% of the other index. Don't use this on your own. This is need by +% |\AddSeeIndex|. +% \begin{macrocode} +\newcommand*{\seeindex}[2]{\pageref{idx:#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\IndexSeeAt} +% A more general version of |\AddSeeIndex|. First (optional) argument is a +% entry note (e.g. |\GuidePagestyle|). This is only used if option +% \texttt{moreindexnotes} was set. Second argument is the entry. Third is +% the shortcut of the source index, the index the entry should be set. +% Fourth is the shortcut of the destination index, the index the entry +% should reference. Fifth is the name of that index. Sixth is the output +% command (e.g. |\Macro|) for the entry. +% \begin{macrocode} +\newcommand*{\IndexSeeAt}[6][\relax]{% + \ifusemultiindex + \if@moreindexnotes + \edef\@tempa{idx@f@\string#1.\string#2.#3.#4}% + \else + \edef\@tempa{idx@f@\string#2.#3.#4}% + \fi + \expandafter\ifx\csname \@tempa\endcsname\relax + \expandafter\gdef\csname \@tempa\endcsname{}% + \begingroup + \@tempswatrue + \if@moreindexnotes + \ifx\relax#1\relax\else\@tempswafalse + \Index[seeindex{#4}]{% + #2 (#1)=\UseIndex{#3}#6{#2} (\protect#1)>% + #5=\UseIndex{#3}\SeeSign\protect#5}% + \fi + \fi + \if@tempswa + \Index[seeindex{#4}]{% + #2=\UseIndex{#3}#6{#2}>#5=\UseIndex{#3}\SeeSign\protect#5}% + \fi + \endgroup + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Index} +% Primary index command. First (optional) argument is the page number style +% of the entry. Second argument is the entry. The page number style should +% be either \texttt{indexother} or \texttt{indexmain}. Default is +% \texttt{indexother}. +% \begin{macrocode} +\newcommand*{\Index}[2][indexother]{\index{#2|#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\BeginIndex} +% \begin{macro}{\EndIndex} +% Its also usefull to define index range entries. These have three +% arguments. First (optiona) argument is the page number style. Default of +% this parameter is \texttt{indexmain}. See |\Index| for more information +% about this parameter. The second parameter is the kind of index +% entry. This is not the same like the name or shortcut of an index! See +% |\Define|\dots|Index| for more information about the kind of an index +% entry. The third argument is the index entry. +% \begin{macrocode} +\newcommand*{\BeginIndex}[3][indexmain]{% + \expandafter\ifx\csname Index#2\endcsname\relax + \GenericError{(scrguide)\@spaces\@spaces\@spaces\@spaces}{% + Document scrguide Error: \string\BeginIndex\space with unknown + index% + }{Check the \string\BeginIndex-command or add a new index type + ``#2''.}{% + See scrguide2.tex for more information.}% + \else + \csname Index#2\endcsname[(%) + #1]{#3}% + \fi + \ignorespaces +} +\newcommand*{\EndIndex}[3][indexmain]{% + \@tempdima\lastskip + \ifdim \lastskip>\z@ + \vskip -\lastskip + \fi + \expandafter\ifx\csname Index#2\endcsname\relax + \GenericError{(scrguide)\@spaces\@spaces\@spaces\@spaces}{% + Document scrguide Error: \string\EndIndex\space with unknown + index% + }{Check the \string\BeginIndex-command or add a new index type + ``#2''.}{% + See scrguide2.tex for more information.}% + \else + \csname Index#2\endcsname[%( + )#1]{#3}% + \fi + \ifdim\@tempdima >\z@ + \vskip\@tempdima + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Now we have to define different kinds of index entries. We have entries that +% will be added to only one index. We have entries that will be added to one +% index with reference to that index at another index. And there are even +% entries that will be added to one index with reference to to that index from +% another index and from the main index. +% \begin{macro}{\DefineSingeIndex} +% This defines a single index entry, e.g. of commands. A macro will be +% defined that addes the entry only to one index. First (optional) +% agrument is a not, which shows the kind of entry (e.g. |\GuideMacro|). The +% second is the macro postfix (e.g. \texttt{Cmd} would define |\IndexCmd|). +% The third is the shortcut of the index to bee used +% (e.g. \texttt{cmd}). The fourth argument is the command to be used to +% output (format) the index entries (e.g. |\Macro|). +% \begin{macrocode} +\newcommand*{\DefineSingleIndex}[4][\relax]{% + \ifx\relax#1\relax + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \Index[##1]{##2=\UseIndex{#3}#4{##2}}% + }% + \else + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \Index[##1]{##2 (#1)=\UseIndex{#3}#4{##2} (\protect #1)}% + }% + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\DefineDoubleIndex} +% This defines a double index entry, e.g. of page styles. A macro will be +% defined that adds the entry to an index and also adds a reference entry to +% the main index. See |\DefineSingleIndex| for informations about the +% parameters. If a note was given (first optional argument) it will be used +% to make a top level entry to the main index with the corresponding +% subentry. +% \begin{macrocode} +\newcommand*{\DefineDoubleIndex}[4][\relax]{% + % #1 = optional entry note (\GuidePagestyle) + % #2 = index macro postfix (Pagestyle) + % #3 = see-from-index to be used (cmd) + % #4 = output command (\Macro) + \ifx\relax#1\relax + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \Index[##1]{##2=\UseIndex{gen}#4{##2}}% + \IndexSeeAt{##2}{#3}{gen}{\GuidegenIndex}{#4}% + }% + \else + \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}}% + \IndexSeeAt[#1]{##2}{#3}{gen}{\GuidegenIndex}{#4}% + }% + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\DefineTripleIndex} +% This defines a triple index entry, e.g. of lengths. A macro will be +% defined that adds the entry to an index and also adds a reference entry to +% another index and the main index. The first (optional) argument is a note +% (e.g. (|\GuideLength|) that will be used to generate a top level index +% entry to the main index. The second argument is the macro postfix +% (e.g. \texttt{Length} to define |\IndexLength|). The third argument is the +% shortcut of the primary index (e.g. \texttt{len}). The fourth argument is +% the short name of that index (e.g. |\GuidelenIndexShort|). The fifth +% argument is the shortcut of the index to put the reference into +% (e.g. \texttt{cmd}). The sixth argument is the output command of the index +% entry (e.g. |\Length|). +% \begin{macrocode} +\newcommand*{\DefineTripleIndex}[6][\relax]{% + % #1 = optional entry note (\GuideLength) + % #2 = index macro postfix (Length) + % #3 = index to be used (len) + % #4 = index name (\GuidelenIndexShort) + % #5 = also-from-index to be used (cmd) + % #6 = output command (\Macro) + \ifx\relax#1\relax + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \IndexSeeAt{##2}{gen}{#3}{#4}{#6}% + \IndexSeeAt{##2}{#5}{#3}{#4}{#6}% + \Index[##1]{##2=\UseIndex{#3}#6{##2}}% + \IndexSeeAt{##2}{#3}{gen}{\GuidegenIndex}{#4}% + }% + \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}{#5}{#3}{#4}{#6}% + \Index[##1]{##2 (#1)=\UseIndex{#3}#6{##2} (\protect #1)}% + }% + \fi +} +% \end{macrocode} +% \end{macro} +% +% After this, let's define all used kinds of index entries: +% \begin{macrocode} +\DefineSingleIndex{Cmd}{cmd}{\Macro} +\DefineDoubleIndex[\GuidePagestyle]{Pagestyle}{cmd}{\PValue} +\DefineDoubleIndex[\GuideFloatstyle]{Floatstyle}{cmd}{\PValue} +\DefineTripleIndex[\GuideCounter]{Counter} + {len}{\GuidelenIndexShort}{cmd}{\Counter} +\DefineTripleIndex[\GuideLength]{Length} + {len}{\GuidelenIndexShort}{cmd}{\Length} +\ifusemultiindex + \DefineSingleIndex[\GuideEnvironment]{Env}{cmd}{\Environment} + \DefineSingleIndex{Option}{opt}{\Option} + \DefineSingleIndex[\GuidePackage]{Package}{fil}{\Package} + \DefineSingleIndex[\GuideClass]{Class}{fil}{\Class} + \DefineSingleIndex{File}{fil}{\File} + \DefineSingleIndex[\GuideVariable]{Variable}{cmd}{\Variable} + \DefineSingleIndex{FontElement}{elm}{\FontElement} + \DefineSingleIndex{PLength}{len}{\PLength} +\else + \DefineDoubleIndex[\GuideEnvironment]{Env}{cmd}{\Environment} + \DefineDoubleIndex{Option}{opt}{\Option} + \DefineDoubleIndex[\GuidePackage]{Package}{fil}{\Package} + \DefineDoubleIndex[\GuideClass]{Class}{fil}{\Class} + \DefineDoubleIndex{File}{fil}{\File} + \DefineDoubleIndex[\GuideVariable]{Variable}{cmd}{\Variable} + \DefineDoubleIndex{FontElement}{elm}{\FontElement} + \DefineDoubleIndex{PLength}{len}{\PLength} +\fi +% \end{macrocode} +% +% \begin{macro}{\indexrm} +% \begin{macro}{\indexother} +% \begin{macro}{\indexit} +% \begin{macro}{\indexbf} +% \begin{macro}{\indexmain} +% \begin{macro}{\indexsl} +% \begin{macro}{\indexsf} +% \begin{macro}{\indexsc} +% Some helpers to get page numbers with different fontification but hyper +% links. +% \begin{macrocode} +\newcommand*{\indexrm}[1]{\textrm{\hyperpage{#1}}} +\newcommand*{\indexother}{}\let\indexother\indexrm +\newcommand*{\indexit}[1]{\textit{\hyperpage{#1}}} +\newcommand*{\indexbf}[1]{\textbf{\hyperpage{#1}}} +\newcommand*{\indexmain}{}\let\indexmain\indexbf +\newcommand*{\indexsl}[1]{\textsl{\hyperpage{#1}}} +\newcommand*{\indexsf}[1]{\textsf{\hyperpage{#1}}} +\newcommand*{\indexsc}[1]{\textsc{\hyperpage{#1}}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +\endinput +% +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: "test.tex" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/scrguide.gst b/Master/texmf-dist/source/latex/koma-script/doc/scrguide.gst new file mode 100644 index 00000000000..f8d3a771df5 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/scrguide.gst @@ -0,0 +1,63 @@ +% ====================================================================== +% scrguide.gst +% Copyright (c) Markus Kohm, 2002-2006 +% +% 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. +% ---------------------------------------------------------------------- +% scrguide.gst +% Copyright (c) Markus Kohm, 2002-2006 +% +% 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. +% ====================================================================== +% MakeIndex style for change log generation based on `scrguide.ist'. +% +% Usage: makeindex -r -s scrguide.gst -o scrguide.chn scrguide.glo +% ---------------------------------------------------------------------- +% MakeIndex-Style fuer die Aenderungsliste der KOMA-Script-Anleitung +% Dies basiert auf "scrguide.ist" +% +% Verwendung: makeindx -r -s scrguide.gst -o scrguide.chn scrguide.glo +% ====================================================================== +% +level '>' +actual '=' +encap '|' +quote '~' +% +preamble "\\begin{thechangelog}\n" +postamble "\n\\end{thechangelog}\n" +% +delim_0 "~\\dotfill~" +delim_1 "~\\dotfill~" +delim_2 "~\\dotfill~" +% +headings_flag 0 +% +keyword "\\glossaryentry" +% +% Ende der Datei `scrguide.gst' diff --git a/Master/texmf-dist/source/latex/koma-script/doc/scrguide.ist b/Master/texmf-dist/source/latex/koma-script/doc/scrguide.ist new file mode 100644 index 00000000000..d4fd89e7a11 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/scrguide.ist @@ -0,0 +1,38 @@ +% ---------------------------------------------------------------------- +% scrguide.ist +% Copyright (c) Markus Kohm, 2002-2005 +% Original source by Harald Sommerfeldt +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Version 1.0 distributed +% together with this file. See LEGAL.TXT or LEGALDE.TXT. +% ---------------------------------------------------------------------- +% scrguide.ist +% Copyright (c) Markus Kohm, 2002-2005 +% Urspruenlicher Quelltext von Harald Sommerfeldt +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public +% Licence Version 1.0, wie sie zusammen mit dieser Datei verteilt +% wird, weiterverbreitet und/oder modifiziert werden. Siehe dazu +% auch LEGAL.TXT oder LEGALDE.TXT. +% ====================================================================== +% +% See `man makeindex` for informations about makeindex styles. +% +level '>' +actual '=' +encap '|' +quote '~' +delim_0 "\\indexdelim" +delim_1 "\\indexdelimi" +delim_2 "\\indexdelimii" +heading_prefix "\\indexsection{" +heading_suffix "}\n" +headings_flag 1 +symhead_positive "" +% +% end of file `scrguide.ist' |