You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
847 lines
34 KiB
847 lines
34 KiB
% ======================================================================
|
|
% scrlttr2-experts.tex
|
|
% Copyright (c) Markus Kohm, 2002-2019
|
|
%
|
|
% This file is part of the LaTeX2e KOMA-Script bundle.
|
|
%
|
|
% This work may be distributed and/or modified under the conditions of
|
|
% the LaTeX Project Public License, version 1.3c of the license.
|
|
% The latest version of this license is in
|
|
% http://www.latex-project.org/lppl.txt
|
|
% and version 1.3c or later is part of all distributions of LaTeX
|
|
% version 2005/12/01 or later and of this work.
|
|
%
|
|
% This work has the LPPL maintenance status "author-maintained".
|
|
%
|
|
% The Current Maintainer and author of this work is Markus Kohm.
|
|
%
|
|
% This work consists of all files listed in manifest.txt.
|
|
% ----------------------------------------------------------------------
|
|
% scrlttr2-experts.tex
|
|
% Copyright (c) Markus Kohm, 2002-2019
|
|
%
|
|
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
|
|
% Version 1.3c, verteilt und/oder veraendert werden.
|
|
% Die neuste Version dieser Lizenz ist
|
|
% http://www.latex-project.org/lppl.txt
|
|
% und Version 1.3c ist Teil aller Verteilungen von LaTeX
|
|
% Version 2005/12/01 oder spaeter und dieses Werks.
|
|
%
|
|
% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
|
|
% (allein durch den Autor verwaltet).
|
|
%
|
|
% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
|
|
%
|
|
% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
|
|
% ======================================================================
|
|
%
|
|
% Chapter about scrlttr2 of the KOMA-Script guide expert part
|
|
% Maintained by Markus Kohm
|
|
%
|
|
% ----------------------------------------------------------------------
|
|
%
|
|
% Kapitel ueber scrlttr2 im Experten-Teil der KOMA-Script-Anleitung
|
|
% Verwaltet von Markus Kohm
|
|
%
|
|
% ============================================================================
|
|
|
|
\KOMAProvidesFile{scrlttr2-experts.tex}
|
|
[$Date: 2019-12-03 09:41:21 +0100 (Tue, 03 Dec 2019) $
|
|
KOMA-Script guide (chapter: scrlttr2 for experts)]
|
|
|
|
\translator{Harald Bongartz\and Georg Grandke\and Raimund Kohl\and Jens-Uwe
|
|
Morawski\and Stephan Hennig\and Gernot Hassenpflug\and Markus Kohm\and
|
|
Karl Hagen}
|
|
|
|
% Date of the translated German file: 2019-12-03
|
|
|
|
\chapter{Additional Information about the \Class{scrlttr2} Class and the
|
|
\Package{scrletter} Package}
|
|
\labelbase{scrlttr2-experts}
|
|
|
|
\BeginIndexGroup
|
|
\BeginIndex{Class}{scrlttr2}
|
|
This chapter provides additional information about the \KOMAScript{} class
|
|
\Class{scrlttr2}. \iffree{Some parts of the chapter are found only in the
|
|
German \KOMAScript{} book \cite{book:komascript}. This should not be a
|
|
problem, because the}{The} average user, who only wants to use the class
|
|
or package, will not normally need this information. Part of this information
|
|
is addressed to users for whom the default options are insufficient. Thus,
|
|
for example, the first section describes in detail the pseudo-lengths that
|
|
specify the letterhead page and which can be used be used to modify the its
|
|
layout.%
|
|
\iffalse% Es wird Zeit das komplett rauszuwerfen!
|
|
In addition, this chapter also describes features that exist only to
|
|
provide compatibility with the deprecated \Class{scrlettr} class. It also
|
|
explains in detail how to convert a document from this obsolete class
|
|
to the current class.
|
|
\fi
|
|
|
|
\BeginIndex{Package}{scrletter}%
|
|
Starting with \KOMAScript~3.15\ChangedAt[2014/11]{v3.15}{\Package{scrletter}},
|
|
you can use the \Package{scrletter} package with one of the \KOMAScript{}
|
|
classes \Class{scrartcl}, \Class{scrreprt}, or \Class{scrbook}. It provides
|
|
nearly all the features of \Class{scrlttr2} for those classes. There are,
|
|
however, a few differences described later in this chapter.%
|
|
|
|
|
|
\section{Variables for Experienced Users}
|
|
\seclabel{variables}
|
|
\BeginIndexGroup
|
|
\BeginIndex{}{variables}
|
|
|
|
\KOMAScript{} provides commands not only to use predefined variables but also
|
|
to define new variables or to change their automatic use within the reference
|
|
line\Index{reference line}.
|
|
|
|
\begin{Declaration}
|
|
\Macro{newkomavar}\OParameter{description}\Parameter{name}%
|
|
\Macro{newkomavar*}\OParameter{description}\Parameter{name}%
|
|
\Macro{addtoreffields}\Parameter{name}
|
|
\Macro{removereffields}%
|
|
\Macro{defaultreffields}%
|
|
\end{Declaration}
|
|
\Macro{newkomavar} defines a new variable. This variable is referenced as
|
|
\PName{name}. Optionally, you can define a \PName{description} for the
|
|
\PName{name} variable. Unlike the \PName{name}, the \PName{description} is not
|
|
used to reference a variable. Instead, the \PName{description} acts as a
|
|
supplement to the content of a variable that can be printed as a label along
|
|
with its content.
|
|
|
|
You can use the \Macro{addtoreffields} command to add the \PName{name}
|
|
variable to the reference line\Index{reference line} (see
|
|
\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.refline}). The
|
|
\PName{description} and the content of the variable are added to the end of
|
|
the reference line. The starred version \Macro{newkomavar*} is similar to the
|
|
unstarred version but also calls the \Macro{addtoreffields} command. Thus, the
|
|
starred version automatically adds the variable to the reference line.
|
|
\begin{Example}
|
|
Suppose you need an additional field for a telephone extension in the
|
|
reference line. You can define this field with
|
|
\begin{lstcode}
|
|
\newkomavar[Extension]{myphone}
|
|
\addtoreffields{myphone}
|
|
\end{lstcode}
|
|
or more concisely with
|
|
\begin{lstcode}
|
|
\newkomavar*[Extension]{myphone}
|
|
\end{lstcode}
|
|
\end{Example}
|
|
When\textnote{Attention!} you define a variable for the reference line, you
|
|
should always give it a description.
|
|
|
|
You can use the \Macro{removereffields} command to remove all variables from
|
|
the reference field. This includes the predefined variables of the class. The
|
|
reference line is then empty. This can be useful, for example, if you wish to
|
|
change the order of the variables in the reference fields line.
|
|
|
|
The \Macro{defaultreffields} command resets the reference fields line to its
|
|
predefined format. In doing so, all custom-defined variables are removed from
|
|
the reference fields line.
|
|
|
|
You\textnote{Attention!} should not add the date to the reference line with
|
|
the \Macro{addtoreffields} command. Instead you should use the
|
|
\DescRef{scrlttr2.option.refline}%
|
|
\important{\OptionValueRef{scrlttr2}{refline}{dateleft}\\
|
|
\OptionValueRef{scrlttr2}{refline}{dateright}\\
|
|
\OptionValueRef{scrlttr2}{refline}{nodate}}%
|
|
\IndexOption{refline~=\textKValue{dateleft}}%
|
|
\IndexOption{refline~=\textKValue{dateright}}%
|
|
\IndexOption{refline~=\textKValue{nodate}} option to select whether the date
|
|
should appear on the left or right side of the reference line, or not at all.
|
|
These settings also affect the position of the date when no reference line is
|
|
used.%
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{usekomavar}\OParameter{command}\Parameter{name}%
|
|
\Macro{usekomavar*}\OParameter{command}\Parameter{name}
|
|
\end{Declaration}
|
|
The \DescRef{scrlttr2.cmd.usekomavar} and \DescRef{scrlttr2.cmd.usekomavar*}
|
|
commands are, like all commands where a starred version exists or which can
|
|
take an optional argument, not fully expandable. Nevertheless, if you use them
|
|
within \DescRef{scrlttr2.cmd.markboth}\IndexCmd{markboth},
|
|
\DescRef{scrlttr2.cmd.markright}\IndexCmd{markright} or similar commands, you
|
|
need not insert \Macro{protect}\IndexCmd{protect} beforehand. Of course
|
|
this is also true for
|
|
\DescRef{scrlayer-scrpage.cmd.markleft}\IndexCmd{markleft} if you use the
|
|
\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
|
|
\IndexPackage{scrlayer-scrpage} package. These\textnote{Attention!} commands
|
|
cannot be used within commands that directly affect their argument, such as
|
|
\Macro{MakeUppercase}\important{\Macro{MakeUppercase}}%
|
|
\IndexCmd{MakeUppercase}. To avoid this problem you can use commands like
|
|
\Macro{MakeUppercase} as an optional argument to \Macro{usekomavar} or
|
|
\Macro{usekomavar*}. Then you will get the upper-case content of a variable
|
|
with
|
|
\begin{lstcode}[escapeinside=`']
|
|
\usekomavar[\MakeUppercase]{`\PName{Name}'}
|
|
\end{lstcode}
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{Ifkomavarempty}\Parameter{name}\Parameter{true}\Parameter{false}%
|
|
\Macro{Ifkomavarempty*}\Parameter{name}\Parameter{true}\Parameter{false}
|
|
\end{Declaration}
|
|
It is important to know that the content of the variable will be expanded as
|
|
far as this is possible with \Macro{edef}. If this results in spaces or
|
|
unexpandable macros like \Macro{relax}, the result will be not empty even
|
|
where the use of the variable would not result in any visible output.
|
|
|
|
Once\textnote{Attention!} again, this command cannot be used as the argument
|
|
of \Macro{MakeUppercase}\IndexCmd{MakeUppercase} or similar commands However,
|
|
it is robust enough to be used as the argument of
|
|
\DescRef{scrlttr2.cmd.markboth} or \DescRef{scrlttr2.cmd.footnote}, for
|
|
example.%
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{foreachkomavar}\Parameter{list of variables}\Parameter{command}
|
|
\Macro{foreachnonemptykomavar}\Parameter{list of variables}\Parameter{command}
|
|
\Macro{foreachemptykomavar}\Parameter{list of variables}\Parameter{command}
|
|
\Macro{foreachkomavarifempty}\Parameter{list of variables}
|
|
\Parameter{then-code}\Parameter{else-code}
|
|
\end{Declaration}
|
|
The\ChangedAt{v3.27}{\Class{scrlttr2}\and \Package{scrletter}}
|
|
\Macro{foreachkomavar} command executes the specified \PName{command} for each
|
|
variable in the comma-separated \PName{list of variables}. The name of each
|
|
variable is added as parameter to the \PName{command}.%
|
|
|
|
The \Macro{foreachnonemptykomavar} command does the same but only for those
|
|
variables that are not empty in sense of
|
|
\DescRef{\LabelBase.cmd.Ifkomavarempty}. Empty variables in the \PName{list of
|
|
variables} are ignored.
|
|
|
|
By contrast, the \Macro{foreachemptykomavar} command executes the
|
|
\PName{command} only for variables that are empty in sense of
|
|
\DescRef{\LabelBase.cmd.Ifkomavarempty}. Accordingly, non-empty variables are
|
|
ignored.
|
|
|
|
The \Macro{foreachkomavarifempty} command is a kind of combination of the two
|
|
previously described commands. It executes the \PName{then-command} only for
|
|
those variables in the \PName{list of variables} that are empty, and the
|
|
\PName{else-command} for the non empty variables. As with \PName{command}, the
|
|
name of each variable is added as a parameter in both cases.%
|
|
\EndIndexGroup
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\section{Additional Information about Page Styles}
|
|
\seclabel{pagestyleatscrletter}
|
|
\BeginIndexGroup
|
|
\BeginIndex{}{page>style}
|
|
|
|
\LoadNonFree{scrlttr2-experts}{0}%
|
|
\EndIndexGroup
|
|
|
|
\iffalse% Wurde bereits in Kapitel 4.21 behandelt
|
|
\section{Differences in How \Package{scrletter} Handles \File{lco} Files}
|
|
\seclabel{lcoatscrletter}
|
|
\BeginIndexGroup
|
|
\BeginIndex{File}{lco}
|
|
\BeginIndex{}{lco file=\File{lco} file}
|
|
|
|
As\ChangedAt{v3.15}{\Package{scrletter}} explained in
|
|
\autoref{sec:scrlttr2.lcoFile}, \Class{scrlttr2} can load \File{lco} files via
|
|
the optional argument of \Macro{documentclass}. The \Package{scrletter} package
|
|
does not support this.
|
|
|
|
\begin{Declaration}
|
|
\Macro{LoadLetterOption}\Parameter{name}%
|
|
\Macro{LoadLetterOptions}\Parameter{list of names}
|
|
\end{Declaration}
|
|
For \Class{scrlttr2}, load \File{lco} files with
|
|
\DescRef{scrlttr2.cmd.LoadLetterOption} or
|
|
\DescRef{scrlttr2.cmd.LoadLetterOptions} is only a recommendation. For
|
|
\Package{scrletter}, it is mandatory. Of course, you can only load the
|
|
\File{lco} files after you load \Package{scrletter}.
|
|
%
|
|
\EndIndexGroup
|
|
%
|
|
\EndIndexGroup
|
|
\fi
|
|
|
|
|
|
\section{\File{lco} Files for Experienced Users}
|
|
\seclabel{lcoFile}
|
|
\BeginIndexGroup
|
|
\BeginIndex{File}{lco}
|
|
\BeginIndex{}{lco file=\File{lco} file}
|
|
|
|
\BeginIndexGroup%
|
|
\BeginIndex{}{paper>format}%
|
|
Although you can use any paper size that the
|
|
\hyperref[cha:typearea]{\Package{typearea}}%
|
|
\IndexPackage{typearea} package can configure, the output of the letterhead
|
|
page may produce undesirable results with some formats. Unfortunately, there
|
|
are no general rules to calculate the position of the address fields and the
|
|
like for every available paper size. Instead, different parameter sets are
|
|
needed for different paper sizes.%
|
|
|
|
%\subsection{Verifying the Paper Size}
|
|
%\seclabel{papersize}
|
|
|
|
At present parameter sets and \File{lco} files exist only for A4-sized and
|
|
letter-sized paper. Theoretically, however, the \Class{scrlttr2} class can
|
|
support many more paper sizes. Therefore, it's necessary to verify that the
|
|
correct paper size is used. This is even more true if you use
|
|
\Package{scrletter}, since the paper size depends on the class you use.
|
|
|
|
\begin{Declaration}
|
|
\Macro{LetterOptionNeedsPapersize}%
|
|
\Parameter{option name}\Parameter{paper size}
|
|
\end{Declaration}
|
|
To provide at least a warning when another \PName{paper size} is used, you can
|
|
find a \Macro{LetterOptionNeedsPapersize} command in every \File{lco} file
|
|
distributed with {\KOMAScript}. The first argument is the name of the
|
|
\File{lco} file without the ``\File{.lco}'' suffix. The second argument is the
|
|
paper size for which the \File{lco} file is designed.
|
|
|
|
If several \File{lco} files are loaded in succession, a
|
|
\Macro{LetterOptionNeedsPapersize} command can be contained in each of them,
|
|
but the \DescRef{scrlttr2.cmd.opening} command will only check the last given
|
|
\PName{paper size}. As the following example shows, an experienced user can
|
|
thus easily write \File{lco} files with parameter sets for other paper sizes.
|
|
\iffalse% Umbruchoptimierung
|
|
If you do not plan to set up such \File{lco} files yourself, you can just
|
|
forget about this option and skip the example.%
|
|
\fi
|
|
\begin{Example}
|
|
Suppose you use A5-sized paper in normal, that is upright or portrait,
|
|
orientation for your letters. Let's assume that you want to put them into
|
|
standard C6 window envelopes. In that case, the position of the address
|
|
field would be the same as for a standard letter on A4-sized paper. The main
|
|
difference is that A5 paper needs only one fold. So you want to disable the
|
|
top and bottom fold marks. You can do this, for example, by placing the
|
|
marks outside the paper area.
|
|
\begin{lstcode}
|
|
\ProvidesFile{a5.lco}
|
|
[2002/05/02 letter class option]
|
|
\LetterOptionNeedsPapersize{a5}{a5}
|
|
\setplength{tfoldmarkvpos}{\paperheight}
|
|
\setplength{bfoldmarkvpos}{\paperheight}
|
|
\end{lstcode}
|
|
Of course, it would be more elegant to deactivate the marks with the
|
|
\DescRef{scrlttr2.option.foldmarks} option. In addition, you must adjust the
|
|
position of the footer, that is, the \PLength{firstfootvpos} pseudo-length.
|
|
I leave it to the reader to find an appropriate value. When using such an
|
|
\File{lco} file, you must declare other \File{lco} file options like
|
|
\File{SN} before you load ``\File{a5.lco}''.
|
|
\end{Example}
|
|
%
|
|
\EndIndexGroup%
|
|
\EndIndexGroup%
|
|
\vskip-\ht\strutbox% Wegen Beispiel am Ende der Erklaerung
|
|
|
|
|
|
%\subsection{Visualizing Positions}
|
|
%\seclabel{visualize}
|
|
%\BeginIndexGroup
|
|
\begin{Declaration}
|
|
\File{visualize.lco}
|
|
\end{Declaration}
|
|
\BeginIndex{Option}{visualize}%
|
|
If you develop your own \File{lco} file, for example to modify the positions
|
|
of various fields on the letterhead page because your own desires or
|
|
requirements, it is helpful if you can make at least some elements directly
|
|
visible. The \File{lco} file
|
|
\File{visualize.lco}\ChangedAt{v3.04}{\Class{scrlttr2}} exists for this
|
|
purpose. You can load this file as you would any other \File{lco} file. But
|
|
this \emph{letter class options} file must be loaded in the document preamble,
|
|
and its effects cannot be deactivated. The \File{lco} file uses the
|
|
\Package{eso-pic}\IndexPackage{eso-pic}%
|
|
\important[i]{\Package{eso-pic}\\\Package{graphicx}} and
|
|
\Package{graphicx}\IndexPackage{graphicx} packages, which are not part of
|
|
\KOMAScript.
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{showfields}\Parameter{field list}
|
|
\end{Declaration}
|
|
This command makes the space occupied by the fields on the letterhead page
|
|
visible. The \PName{field list} argument is a comma-separated list of fields
|
|
to be shown. The following fields are supported:
|
|
\begin{labeling}[~--]{\PValue{location}}
|
|
\item[\PValue{test}] is a 10\Unit{cm} by 15\Unit{cm} test field, 1\Unit{cm}
|
|
from the top and left edges of the paper. This field exists for debugging.
|
|
You can use it as a benchmark to check whether the measurements have been
|
|
distorted during the creation of the document.
|
|
\item[\PValue{head}] is the header area of the letterhead page. This field
|
|
is open at the bottom.
|
|
\item[\PValue{foot}] is the footer area of the letterhead page. This field is
|
|
open at the top.
|
|
\item[\PValue{address}] is the address window area used by window envelopes.
|
|
\item[\PValue{location}] is the field for the extra sender information.
|
|
\item[\PValue{refline}] is the reference line. This field is open at the
|
|
bottom.
|
|
\end{labeling}%
|
|
\BeginIndex{FontElement}{field}\LabelFontElement{field}%
|
|
You can change the colour of the visualisation with
|
|
the\DescRef{scrlttr2.cmd.setkomafont} and \DescRef{scrlttr2.cmd.addtokomafont}
|
|
(see \autoref{sec:scrlttr2.textmarkup},
|
|
\DescPageRef{scrlttr2.cmd.setkomafont}) commands using the
|
|
\FontElement{field}\important{\FontElement{field}} element. The default is
|
|
\Macro{normalcolor}.%
|
|
\EndIndex{FontElement}{field}%
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{setshowstyle}\Parameter{style}%
|
|
\Macro{edgesize}
|
|
\end{Declaration}
|
|
By default, \File{visualize.lco} indicates the individual areas with
|
|
frames\important{\PValue{frame}}, which corresponds to the \PName{style}
|
|
\PValue{frame}. Areas open at top or bottom are not completely framed but have
|
|
an open edge with with small arrows pointing up or down.
|
|
Alternatively\important{\PValue{rule}}, you can use the \PName{style}
|
|
\PValue{rule}. In this case, the area is highlighted by a background colour.
|
|
It isnot possible to distinguish open and closed areas. Instead a minimal
|
|
height will be used for open areas. The third\important{\PValue{edges}}
|
|
available \PName{style} is \PValue{edges}, which shows the corners of the
|
|
areas. The corner marks at the open edge of open areas will be omitted. The
|
|
size of two edges of the corner marks are given by the \Macro{edgesize} macro
|
|
with a default of 1\Unit{ex}.%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{showenvelope}\AParameter{width\textup{,}height}%
|
|
\AParameter{h-offset\textup{,}v-offset}%
|
|
\OParameter{instructions}%
|
|
\Macro{showISOenvelope}\Parameter{format}\OParameter{instructions}%
|
|
\Macro{showUScommercial}\Parameter{format}\OParameter{instructions}%
|
|
\Macro{showUScheck}\OParameter{instructions}%
|
|
\Macro{unitfactor}
|
|
\end{Declaration}
|
|
If you have loaded \File{visualize.lco}, you can use these commands to output
|
|
a page with a drawing of an envelope. The envelope drawing is always rotated
|
|
by 90\textdegree{} on a separate page and printed in 1:1~scale. The addressee
|
|
window is generated automatically from the current data for the address
|
|
position of the letterhead page: \PLength{toaddrvpos}, \PLength{toaddrheight},
|
|
\PLength{toaddrwidth}, and \PLength{toaddrhpos}. To do so requires knowing how
|
|
much smaller the folded letter pages are than the width and height of the
|
|
envelope. If you do not specify these two values, \PName{h-offset} and
|
|
\PName{v-offset}, when calling \Macro{showenvelope}, they are calculated from
|
|
the fold marks and the paper size itself.
|
|
|
|
The \Macro{showISOenvelope}, \Macro{showUScommercial}, and \Macro{showUScheck}
|
|
commands are based on \Macro{showenvelope}. With \Macro{showISOenvelope}, you
|
|
can create ISO-envelopes in C4, C5, C5/6, DL (also known as C5/6) or C6
|
|
\PName{format}. With \Macro{showUScommercial}, you can create a US commercial
|
|
envelope in the 9 or 10 \PName{format}. You can use \Macro{showUScheck} for
|
|
envelopes in US check format.
|
|
|
|
\BeginIndex{FontElement}{letter}\LabelFontElement{letter}%
|
|
The position of the letterhead page inside the envelope is indicated with
|
|
dashed lines. You can change the colour of these lines with the
|
|
\DescRef{scrlttr2.cmd.setkomafont} and \DescRef{scrlttr2.cmd.addtokomafont}
|
|
(see \autoref{sec:scrlttr2.textmarkup},
|
|
\DescPageRef{scrlttr2.cmd.setkomafont}) using the
|
|
\FontElement{letter}\important{\FontElement{letter}} element. The default is
|
|
\Macro{normalcolor}.%
|
|
\EndIndex{FontElement}{letter}%
|
|
|
|
\BeginIndex{FontElement}{measure}\LabelFontElement{measure}%
|
|
The envelope drawing will be provided with dimensions automatically. You can
|
|
change the colour of these dimension labels with the commands
|
|
\DescRef{scrlttr2.cmd.setkomafont} and \DescRef{scrlttr2.cmd.addtokomafont}
|
|
(see \autoref{sec:scrlttr2.textmarkup},
|
|
\DescPageRef{scrlttr2.cmd.setkomafont}) using the
|
|
\FontElement{measure}\important{\FontElement{measure}} element. The default is
|
|
\Macro{normalcolor}. The dimensions are given in multiples of
|
|
\Length{unitlength}, with an accuracy of $1/\Macro{unitfactor}$, where the
|
|
accuracy of \TeX{} arithmetic is the actual limits. The default is 1. You can
|
|
redefine \Macro{unitfactor} using \Macro{renewcommand}.%
|
|
\EndIndex{FontElement}{measure}%
|
|
|
|
\begin{Example}
|
|
You are generating a sample letter using the ISO-A4 format. The supported
|
|
fields should be marked with yellow borders to check their position.
|
|
Furthermore, the position of the window for a DL-size envelope should be
|
|
checked with drawing. The dimension lines in this drawing should be red, and
|
|
the numbers should use a smaller font, with the dimensions printed in cm
|
|
with an accuracy of 1\Unit{mm}. The dashed letterhead page in the envelope
|
|
should be coloured green.
|
|
\begin{lstcode}
|
|
\documentclass[visualize]{scrlttr2}
|
|
\usepackage{xcolor}
|
|
\setkomafont{field}{\color{yellow}}
|
|
\setkomafont{measure}{\color{red}\small}
|
|
\setkomafont{letter}{\color{green}}
|
|
\showfields{head,address,location,refline,foot}
|
|
\usepackage[british]{babel}
|
|
\usepackage{lipsum}
|
|
\begin{document}
|
|
\setkomavar{fromname}{Joe Public}
|
|
\setkomavar{fromaddress}{2 Valley\\
|
|
SAMPLEBY\\
|
|
ZY32 1XW}
|
|
\begin{letter}{%
|
|
1 Hillside\\
|
|
SAMPLESTEAD\\
|
|
WX12 3YZ%
|
|
}
|
|
\opening{Hello,}
|
|
\lipsum[1]
|
|
\closing{Good bye}
|
|
\end{letter}
|
|
\setlength{\unitlength}{1cm}
|
|
\renewcommand*{\unitfactor}{10}
|
|
\showISOenvelope{DL}
|
|
\end{document}
|
|
\end{lstcode}
|
|
This will show the letterhead page as the first page and the drawing of the
|
|
envelope on the second page.
|
|
\end{Example}
|
|
|
|
Note that poorly chosen combinations of \Length{unitlength} and
|
|
\Macro{unitfactor} can quickly lead to a \TeX{} \emph{arithmetic overflow}
|
|
error. The dimension numbers shown may also differ slightly from the actual
|
|
values. Neither are errors in \Option{visualize} but merely implementation
|
|
limitations of \TeX.
|
|
%
|
|
\EndIndexGroup
|
|
%
|
|
\EndIndexGroup
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\section{Language Support}
|
|
\seclabel{languages}%
|
|
\BeginIndexGroup
|
|
\BeginIndex{}{languages}%
|
|
|
|
% TODO: New translation of the shorter into in German manual should be used.
|
|
% :ODOT
|
|
The \Class{scrlttr2} class and the \Package{scrletter} package support many
|
|
languages. These include German\Index{language>German} (\PValue{german} for
|
|
the old German orthography, \PValue{ngerman} for the new orthography;
|
|
\PValue{austrian} for Austrian with the old German orthography,
|
|
\PValue{naustrian}\ChangedAt{v3.09}{\Class{scrlttr2}} for Austrian with the
|
|
new orthography; and \PValue{nswissgerman}\ChangedAt{v3.13}{\Class{scrlttr2}}
|
|
for Swiss German with the new orthogrphy, \PValue{swissgerman} for Swiss
|
|
German with the old orthography), English\Index{language>English} (among
|
|
others, \PValue{english} without specification as to whether American or
|
|
British should be used, \PValue{american} and \PValue{USenglish} for American
|
|
English, and \PValue{british} and \PValue{UKenglish} for British English),
|
|
French\Index{language>French}, Italian\Index{language>Italian},
|
|
Spanish\Index{language>Spanish}, Dutch\Index{language>Dutch},
|
|
Croatian\Index{language>Croatian}, Finnish\Index{language>Finnish},
|
|
Norwegian\Index{language>Norwegian}\ChangedAt{v3.02}{\Class{scrlttr2}},
|
|
Swedish\Index{language>Swedish}\ChangedAt{v3.08}{\Class{scrlttr2}},
|
|
Polish\ChangedAt{v3.13}{\Class{scrlttr2}},
|
|
Czech\ChangedAt{v3.13}{\Class{scrlttr2}}, and Slovak.
|
|
|
|
You can switch languages using the \Package{babel}\IndexPackage{babel} package
|
|
(see \cite{package:babel}) with the \Macro{selectlanguage}\Parameter{language}
|
|
command. Other packages like \Package{german}\IndexPackage{german} (see
|
|
\cite{package:german}) and \Package{ngerman}\IndexPackage{ngerman} (see
|
|
\cite{package:ngerman}) also define this command. As a rule though, the
|
|
language selection occurs immediately as a direct consequence of loading such
|
|
a package.
|
|
\iffalse% Umbruchkorrekturtext
|
|
For details, please refer to the documentation of the relevant packages.
|
|
\fi
|
|
|
|
There\textnote{Attention!} is one more point to note about language-switching
|
|
packages. The
|
|
\Package{french}\IndexPackage{french}\important{\Package{french}} package (see
|
|
\cite{package:french}) makes changes well beyond redefining the terms in
|
|
\autoref{tab:\LabelBase.languageTerms}. For instance, it redefines the
|
|
\DescRef{scrlttr2.cmd.opening} command, since the package simply assumes that
|
|
\DescRef{scrlttr2.cmd.opening} is always defined as it is in the standard
|
|
\Class{letter} class. This, however, is not the case with \KOMAScript{}. The
|
|
\Package{french} package thus overwrites the definition and does not work
|
|
correctly with \KOMAScript. I regard this as a fault in the \Package{french}
|
|
package which, although reported decades ago, was unfortunately never
|
|
eliminated.
|
|
|
|
If you use the \Package{babel}\IndexPackage{babel} package to switch to
|
|
\PValue{french}, problems can occasionally occur. With \Package{babel},
|
|
however, you can usually deactivate changes to a language in a targeted
|
|
manner.%
|
|
\iffalse% This is actually outdated!
|
|
\ If the package \Package{french} is not installed, the problem with
|
|
\Package{babel} does not arise. Similarly, the problem usually does not
|
|
exist when you use \Package{babel} with other varieties of French such as
|
|
\PValue{acadian}, \PValue{canadien}, \PValue{francais} or \PValue{frenchb}
|
|
instead of \PValue{french}.
|
|
\fi
|
|
|
|
\iffalse% This is also outdated!
|
|
However, with \Package{babel} version 3.7j and above, this problem only occurs
|
|
if the option explicitly indicates that \Package{babel} should use the
|
|
\Package{french} package.
|
|
%
|
|
\iftrue
|
|
If you cannot be sure you are not using an old version of \Package{babel}, I
|
|
recommend you use
|
|
\begin{lstcode}
|
|
\usepackage[...,frenchb,...]{babel}
|
|
\end{lstcode}
|
|
to select French.
|
|
\iffalse %
|
|
If necessary, you can still switch to French with
|
|
\Macro{selectlanguage}\PParameter{french}.%
|
|
\fi%
|
|
\fi
|
|
\fi
|
|
|
|
\iffalse
|
|
It cannot be ruled out that similar problems will not occur with other
|
|
languages or packages. For German and English, however, there are currently
|
|
no known problems with the \Package{babel} package.
|
|
\fi
|
|
|
|
|
|
\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{mobilephonename}%
|
|
\Macro{phonename}%
|
|
\Macro{faxname}%
|
|
\Macro{emailname}%
|
|
\Macro{wwwname}%
|
|
\Macro{bankname}
|
|
\end{Declaration}
|
|
These commands contain the language-dependent terms. These\important[i]{%
|
|
\DescRef{scrbase.cmd.newcaptionname}\\
|
|
\DescRef{scrbase.cmd.renewcaptionname}\\
|
|
\DescRef{scrbase.cmd.providecaptionname}} definitions can be
|
|
modified to support a new language or for your private customization, as
|
|
described in
|
|
\autoref{sec:scrbase.languageSupport}. \KOMAScript{} sets these terms only in
|
|
\Macro{begin}\PParameter{document}. Therefore they are not available in the
|
|
preamble and cannot be redefined there. The default settings for
|
|
\Option{english} and \Option{ngerman} are listed in
|
|
\autoref{tab:\LabelBase.languageTerms}.%
|
|
\EndIndexGroup
|
|
%\iffree{}{\clearpage}% Siehe Kommentar zur Tabelle
|
|
|
|
\begin{Declaration}
|
|
\Macro{captionsacadian}
|
|
\Macro{captionsamerican}
|
|
\Macro{captionsaustralien}
|
|
\Macro{captionsaustrian}
|
|
\Macro{captionsbritish}
|
|
\Macro{captionscanadian}
|
|
\Macro{captionscanadien}
|
|
\Macro{captionscroatian}
|
|
\Macro{captionsczech}
|
|
\Macro{captionsdutch}
|
|
\Macro{captionsenglish}
|
|
\Macro{captionsfinnish}
|
|
\Macro{captionsfrancais}
|
|
\Macro{captionsfrench}
|
|
\Macro{captionsgerman}
|
|
\Macro{captionsitalian}
|
|
\Macro{captionsnaustrian}
|
|
\Macro{captionsnewzealand}
|
|
\Macro{captionsngerman}
|
|
\Macro{captionsnorsk}
|
|
\Macro{captionsnswissgerman}
|
|
\Macro{captionspolish}
|
|
\Macro{captionsslovak}
|
|
\Macro{captionsspanish}
|
|
\Macro{captionsswedish}
|
|
\Macro{captionsswissgerman}
|
|
\Macro{captionsUKenglish}
|
|
\Macro{captionsUSenglish}
|
|
\end{Declaration}
|
|
If you change the language of a letter, the language-dependent terms listed in
|
|
\autoref{tab:\LabelBase.languageTerms},
|
|
\autopageref{tab:\LabelBase.languageTerms} are redefined using these
|
|
commands. If your language-switching package does not support this, you can
|
|
also use the above commands directly.
|
|
%
|
|
\begin{table}
|
|
\begin{minipage}{\textwidth}
|
|
\centering
|
|
% \KOMAoptions{captions=topbeside}%
|
|
% \setcapindent{0pt}%
|
|
\caption[{%
|
|
Defaults for language-dependent terms
|
|
}]{%
|
|
Defaults for language-dependent terms for the languages
|
|
\Option{english} and \Option{ngerman}, if they are not already defined
|
|
by the packages used for language switching%
|
|
\label{tab:\LabelBase.languageTerms}%
|
|
}[l]
|
|
\begin{tabular}[t]{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{mobilephonename} & Mobile phone & Mobiltelefon \\
|
|
\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}{1\ }% brutal aber effektiv
|
|
\footnotetext[1000]{Normally these terms are defined by language
|
|
packages like \Package{babel}. In this case, \KOMAScript{} does not
|
|
redefine them. The actual wording may therefore differ and can
|
|
be found in the documentation for the language package used.}
|
|
% \end{captionbeside}
|
|
\end{minipage}
|
|
\end{table}
|
|
%
|
|
\EndIndexGroup
|
|
\iffree{}{\clearpage}% Umbruchkorrektur
|
|
|
|
\begin{Declaration}
|
|
\Macro{dateacadian}
|
|
\Macro{dateamerican}
|
|
\Macro{dateaustralien}
|
|
\Macro{dateaustrian}
|
|
\Macro{datebritish}
|
|
\Macro{datecanadian}
|
|
\Macro{datecanadien}
|
|
\Macro{datecroatian}
|
|
\Macro{dateczech}
|
|
\Macro{datedutch}
|
|
\Macro{dateenglish}
|
|
\Macro{datefinnish}
|
|
\Macro{datefrancais}
|
|
\Macro{datefrench}
|
|
\Macro{dategerman}
|
|
\Macro{dateitalian}
|
|
\Macro{datenaustrian}
|
|
\Macro{datenewzealand}
|
|
\Macro{datengerman}
|
|
\Macro{datenorsk}
|
|
\Macro{datenswissgerman}
|
|
\Macro{datepolish}
|
|
\Macro{dateslovak}
|
|
\Macro{datespanish}
|
|
\Macro{dateswedish}
|
|
\Macro{dateswissgerman}
|
|
\Macro{dateUKenglish}
|
|
\Macro{dateUSenglish}
|
|
\end{Declaration}
|
|
Depending on the language used, the numerical representation of the date\Index{date} (see option
|
|
\DescRef{scrlttr2.option.numericaldate} in \autoref{sec:scrlttr2.firstpage},
|
|
\DescPageRef{scrlttr2.option.numericaldate}) is formatted in various ways.
|
|
The exact format can be found in \autoref{tab:date}.%
|
|
\EndIndexGroup
|
|
%
|
|
\EndIndexGroup
|
|
\iffree{}{\clearpage}% Umbruchkorrektur zwecks Ausgabe der Tabellen
|
|
|
|
\begin{table}[!tp]% Umbruchoptimierung
|
|
% \centering
|
|
\KOMAoptions{captions=topbeside}%
|
|
\setcapindent{0pt}%
|
|
% \caption
|
|
\begin{captionbeside}{Language-dependent forms of the date}[l]
|
|
\begin{tabular}[t]{ll}
|
|
\toprule
|
|
Command & Date Example \\
|
|
\midrule
|
|
\Macro{dateacadian} & 24.\,12.\,1993\\
|
|
\Macro{dateamerican} & 12/24/1993\\
|
|
\Macro{dateaustralien}& 24/12/1993\\
|
|
\Macro{dateaustrian} & 24.\,12.\,1993\\
|
|
\Macro{datebritish} & 24/12/1993\\
|
|
\Macro{datecanadian} & 1993/12/24\\
|
|
\Macro{datecanadien} & 1993/12/24\\
|
|
\Macro{datecroatian} & 24.\,12.\,1993.\\
|
|
\Macro{dateczech} & 24.\,12.\,1993\\
|
|
\Macro{datedutch} & 24.\,12.\,1993\\
|
|
\Macro{dateenglish} & 24/12/1993\\
|
|
\Macro{datefinnish } & 24.12.1993.\\
|
|
\Macro{datefrancais} & 24.\,12.\,1993\\
|
|
\Macro{datefrench} & 24.\,12.\,1993\\
|
|
\Macro{dategerman} & 24.\,12.\,1993\\
|
|
\Macro{dateitalian} & 24.\,12.\,1993\\
|
|
\Macro{datenaustrian} & 24.\,12.\,1993\\
|
|
\Macro{datenewzealand}& 24/12/1993\\
|
|
\Macro{datengerman} & 24.\,12.\,1993\\
|
|
\Macro{datenorsk} & 24.12.1993\\
|
|
\Macro{datenswissgerman} & 24.\,12.\,1993\\
|
|
\Macro{datepolish} & 24.\,12.\,1993\\
|
|
\Macro{dateslovak} & 24.\,12.\,1993\\
|
|
\Macro{datespanish} & 24.\,12.\,1993\\
|
|
\Macro{dateswedish} & 24/12 1993\\
|
|
\Macro{dateswissgerman} & 24.\,12.\,1993\\
|
|
\Macro{dateUKenglish} & 24/12/1993\\
|
|
\Macro{dateUSenglish} & 12/24/1993\\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{captionbeside}
|
|
\label{tab:date}
|
|
\end{table}
|
|
%
|
|
\section{Obsolete Commands}
|
|
\seclabel{obsolete}
|
|
\BeginIndexGroup
|
|
|
|
\LoadNonFree{scrlttr2-experts}{1}
|
|
\EndIndexGroup
|
|
%
|
|
\iffalse% Es wird Zeit das komplett rauszuwerfen!
|
|
\section{From Obsolete \Class{scrlettr} to Current \Class{scrlttr2}}
|
|
\seclabel{fromscrlettr}
|
|
|
|
With\textnote{Attention!} the 2002 release of \Class{scrlttr2} (see
|
|
\autoref{cha:scrlttr2}), the old letter class, \Class{scrlettr}, became
|
|
obsolete, and it is no longer part of \KOMAScript. If you still need the class
|
|
or information about it, you will find it in
|
|
\cite{package:koma-script-obsolete}.
|
|
|
|
To facilitate the transition to the new class, there is the compatibility
|
|
option \Option{KOMAold}. Basically, all the older functionality still
|
|
exists in the new class. Without \Option{KOMAold}, however, the user
|
|
interface and the defaults are different. More details on
|
|
this option are provided in \autoref{sec:scrlttr2.lcoFile},
|
|
\autoref{tab:lcoFiles}.
|
|
|
|
\LoadNonFree{scrlttr2-experts}{2}
|
|
%
|
|
\EndIndexGroup
|
|
\fi
|
|
%
|
|
\EndIndexGroup
|
|
|
|
\endinput
|
|
|
|
%%% Local Variables:
|
|
%%% mode: latex
|
|
%%% mode: flyspell
|
|
%%% ispell-local-dictionary: "english"
|
|
%%% coding: us-ascii
|
|
%%% TeX-master: "../guide"
|
|
%%% End:
|
|
|