summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-02-16 00:02:48 +0000
committerKarl Berry <karl@freefriends.org>2009-02-16 00:02:48 +0000
commit438ce6e2dc55311d9d2b72b6fd6fe2e7a7760846 (patch)
treee329ac0f73a537ddc6b85e71bfe6e112b3c51403
parentfd5baa85b6dca448cdbe64aadf5c74ba9a0a58a6 (diff)
context-letter update (15feb09)
git-svn-id: svn://tug.org/texlive/trunk@12168 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/context/third/letter/lm.pdfbin121413 -> 148626 bytes
-rw-r--r--Master/texmf-dist/tex/context/third/letter/base/t-correspondence.tex193
-rw-r--r--Master/texmf-dist/tex/context/third/letter/base/t-letter.tex29
-rw-r--r--Master/texmf-dist/tex/context/third/letter/base/t-resume.tex17
-rw-r--r--Master/texmf-dist/tex/context/third/letter/extension/addrentry.nle6
-rw-r--r--Master/texmf-dist/tex/context/third/letter/extension/corres.nle14
-rw-r--r--Master/texmf-dist/tex/context/third/letter/extension/label.nle25
-rw-r--r--Master/texmf-dist/tex/context/third/letter/interface/default.nli136
-rw-r--r--Master/texmf-dist/tex/context/third/letter/interface/default.nri31
-rw-r--r--Master/texmf-dist/tex/context/third/letter/interface/knuth.nli11
-rw-r--r--Master/texmf-dist/tex/context/third/letter/interface/pragma.nli25
-rw-r--r--Master/texmf-dist/tex/context/third/letter/style/casual.nrs435
-rw-r--r--Master/texmf-dist/tex/context/third/letter/style/classic.nrs399
-rw-r--r--Master/texmf-dist/tex/context/third/letter/style/default.nls5
-rw-r--r--Master/texmf-dist/tex/context/third/letter/style/default.nrs15
-rw-r--r--Master/texmf-dist/tex/context/third/letter/style/dinb.nls29
-rw-r--r--Master/texmf-dist/tex/context/third/letter/style/knuth.nls23
-rw-r--r--Master/texmf-dist/tex/context/third/letter/style/modern.nrs152
-rw-r--r--Master/texmf-dist/tex/context/third/letter/style/pragma.nls7
-rw-r--r--Master/texmf-dist/tex/context/third/letter/style/swiss.nls40
-rw-r--r--Master/texmf-dist/tex/context/third/letter/style/swissleft.nls45
21 files changed, 1001 insertions, 636 deletions
diff --git a/Master/texmf-dist/doc/context/third/letter/lm.pdf b/Master/texmf-dist/doc/context/third/letter/lm.pdf
index 2c70e2ea009..a23ecef83c2 100644
--- a/Master/texmf-dist/doc/context/third/letter/lm.pdf
+++ b/Master/texmf-dist/doc/context/third/letter/lm.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/context/third/letter/base/t-correspondence.tex b/Master/texmf-dist/tex/context/third/letter/base/t-correspondence.tex
index 069d365fd4f..61cbb35508c 100644
--- a/Master/texmf-dist/tex/context/third/letter/base/t-correspondence.tex
+++ b/Master/texmf-dist/tex/context/third/letter/base/t-correspondence.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=t-correspondence,
-%D version=2008.02.09,
+%D version=2008.02.13,
%D title=\CONTEXT\ User Module,
%D subtitle=Correspondence,
%D author=Wolfgang Schuster,
@@ -37,6 +37,51 @@
\setinterfaceconstant {content} {content}
\setinterfaceconstant {backaddress} {backaddress}
\setinterfaceconstant {optimize} {optimize}
+ \setinterfaceconstant {opening} {opening}
+ \setinterfaceconstant {closing} {closing}
+ \setinterfaceconstant {signature} {signature}
+ \setinterfaceconstant {dispatch} {dispatch}
+ \setinterfaceconstant {appendices} {appendices}
+ \setinterfaceconstant {fromaddress} {fromaddress}
+ \setinterfaceconstant {frombank} {frombank}
+ \setinterfaceconstant {frommail} {frommail}
+ \setinterfaceconstant {fromfax} {fromfax}
+ \setinterfaceconstant {fromlogo} {fromlogo}
+ \setinterfaceconstant {fromname} {fromname}
+ \setinterfaceconstant {fromphone} {fromphone}
+ \setinterfaceconstant {fromurl} {fromurl}
+ \setinterfaceconstant {toname} {toname}
+ \setinterfaceconstant {toaddress} {toaddress}
+ \setinterfaceconstant {enclosure} {enclosure}
+ \setinterfaceconstant {copy} {copy}
+ \setinterfaceconstant {postscript} {postscript}
+ \setinterfaceconstant {attention} {attention}
+ \setinterfaceconstant {distribution} {distribution}
+ \setinterfaceconstant {salutation} {salutation}
+ \setinterfaceconstant {addressee} {addressee}
+ \setinterfaceconstant {prefix} {prefix}
+ \setinterfaceconstant {suffix} {suffix}
+ \setinterfaceconstant {initials} {initials}
+ \setinterfaceconstant {formalname} {formalname}
+ \setinterfaceconstant {informalname} {informalname}
+ \setinterfaceconstant {yourref} {yourref}
+ \setinterfaceconstant {yourmail} {yourmail}
+ \setinterfaceconstant {myref} {myref}
+ \setinterfaceconstant {mymail} {mymail}
+ \setinterfaceconstant {customer} {customer}
+ \setinterfaceconstant {invoice} {invoice}
+ \setinterfaceconstant {subject} {subject}
+ \setinterfaceconstant {cc} {cc}
+ \setinterfaceconstant {enclosure} {enclosure}
+ \setinterfaceconstant {phone} {phone}
+ \setinterfaceconstant {fax} {fax}
+ \setinterfaceconstant {email} {email}
+ \setinterfaceconstant {url} {url}
+ \setinterfaceconstant {bank} {bank}
+ \setinterfaceconstant {name} {name}
+ \setinterfaceconstant {room} {room}
+ \setinterfaceconstant {yourorder} {yourorder}
+ \setinterfaceconstant {ourinvoice} {ourinvoice}
\stopinterface
\startinterface all
@@ -80,6 +125,36 @@
\setinterfacevariable {notation} {notation}
\setinterfacevariable {inside} {inside}
\setinterfacevariable {optimize} {optimize}
+ \setinterfacevariable {file} {file}
+ \setinterfacevariable {e} {e}
+ \setinterfacevariable {data} {data}
+ \setinterfacevariable {sender} {sender}
+ \setinterfacevariable {dispatch} {dispatch}
+ \setinterfacevariable {enclosure} {enclosure}
+ \setinterfacevariable {copy} {copy}
+ \setinterfacevariable {nobreak} {nobreak}
+ \setinterfacevariable {endgraf} {endgraf}
+ \setinterfacevariable {memo} {memo}
+ \setinterfacevariable {addressee} {addressee}
+ \setinterfacevariable {french} {french}
+ \setinterfacevariable {simplified} {simplified}
+ \setinterfacevariable {fullblock} {fullblock}
+ \setinterfacevariable {hanging} {hanging}
+ \setinterfacevariable {modified} {modified}
+ \setinterfacevariable {semiblock} {semiblock}
+ \setinterfacevariable {handle} {handle}
+ \setinterfacevariable {casual} {casual}
+ \setinterfacevariable {classic} {classic}
+ \setinterfacevariable {knuth} {knuth}
+ \setinterfacevariable {firstname} {firstname}
+ \setinterfacevariable {familyname} {familyname}
+ \setinterfacevariable {street} {street}
+ \setinterfacevariable {town} {town}
+ \setinterfacevariable {mobile} {mobile}
+ \setinterfacevariable {phone} {phone}
+ \setinterfacevariable {fax} {fax}
+ \setinterfacevariable {email} {email}
+ \setinterfacevariable {info} {info}
\stopinterface
\startinterface all
@@ -96,6 +171,7 @@
%
% 1: letter|resume / interface|style|extension / filename
% 2: letter|resume / interface|style|extension / filename
+% 3: <number> / <number>
\definemessageconstant {correspondence}
@@ -103,8 +179,75 @@
title: correspondence
1: loading -- -- --
2: -- -- -- not found
+ 3: correspage set -- processed (size --)
\stopmessages
+%D Page numbering
+
+\def\????cn{@@@@cn}
+
+\definesystemconstant {correspage}
+
+\definetwopasslist\s!correspage
+
+\definenumber[\s!correspage]
+
+\newcount\correspageno
+\newif\ifresettingcorrespagenumber
+
+\def\newnofcorrespages{0}
+\def\nofcorrespages {0}
+
+\def\savenofcorrespages
+ {\showmessage\m!correspondence{3}{\newnofcorrespages,\the\correspageno}%
+ \immediatesavetwopassdata{\s!correspage}{\newnofcorrespages}{\the\correspageno}}
+
+\def\numberofcorrespages
+ {\nofcorrespages}
+
+\def\correspagenumber
+ {\the\correspageno}
+
+\appendtoks\savenofcorrespages\to\everybye
+
+\def\setupcorrespagenumber
+ {\dosingleargument\dosetupcorrespagenumber}
+
+\def\dosetupcorrespagenumber[#1]%
+ {\doifelse{#1}\v!reset
+ {\resetcorrespagenumber}
+ {\getparameters[\????cn][#1]}}
+
+\def\resetcorrespagenumber
+ {\global\resettingcorrespagenumbertrue}
+
+\def\setcorrespagenumbers
+ {\iftwopassdatafound
+ \xdef\nofcorrespages{\twopassdata}%
+ \else
+ \xdef\nofcorrespages{0}%
+ \fi}
+
+\def\gotonextcorrespage
+ {\ifresettingcorrespagenumber
+ \resetnumber[\s!correspage]%
+ \global\resettingcorrespagenumberfalse
+ \fi
+ \xdef\oldcorrespage{\the\correspageno}%
+ \incrementnumber[\s!correspage]%
+ \global\correspageno\rawnumber[\s!correspage]\relax
+ \ifnum\correspageno=\plusone
+ \gettwopassdata\s!correspage
+ \setcorrespagenumbers
+ \ifnum\oldcorrespage>\zerocount
+ \showmessage\m!correspondence{3}{\newnofcorrespages,\oldcorrespage}%
+ \immediatesavetwopassdata{\s!correspage}{\newnofcorrespages}{\oldcorrespage}%
+ \fi
+ \doglobal\increment\newnofcorrespages\relax
+ \fi}
+
+\appendtoks\gotonextcorrespage\to\beforeeverypage
+
%D Value list
\ifx\appendtovaluelist\undefined
@@ -299,6 +442,8 @@
\c!alternative=\v!a,
\c!separator=\crlf,
\c!offset=\zeropoint,
+ \c!spacebefore=\zeropoint,
+ \c!spaceafter=\zeropoint,
\c!leftmargin=\zeropoint,
\c!rightmargin=\zeropoint]%
\dodosetupcorrespondencelayer
@@ -340,29 +485,6 @@
\setvalue{@@headfoot@@\v!page }{\!!donedtrue }
\setvalue{@@headfoot@@\v!subpage }{\!!donedfalse }
-\def\dosetheaderfooterlayer[#1][#2][#3]%
- {\!!doneafalse % first page
- \!!donebfalse % even numbered pages
- \!!donecfalse % odd numbered pages
- \!!donedfalse % real pagenumber
- \processcommacommand[\csname#2#3\c!state\endcsname]\dodosetheaderfooterlayer
- \doifnotvalue{#2#3\v!layer\c!state}\v!stop{\setuplayer[#1:#3][\c!state=\v!start]}%
- \ifnum\if!!doned\pagenumber\else\subpagenumber\fi=\plusone
- \if!!donea\dosetcorrespondencelayer[#1][#2][#3]\fi
- \else
- \ifodd\if!!doned\pagenumber\else\subpagenumber\fi
- \if!!donec\dosetcorrespondencelayer[#1][#2][#3]\fi
- \else
- \if!!doneb\dosetcorrespondencelayer[#1][#2][#3]\fi
- \fi\fi}
-
-% Alternative version of the macro above for the experimental
-% interface because \subpagenumber can't be used in \ifdim.
-%
-% \newcount\correspondencepagenumber
-%
-% \appendtoks\global\advance\correspondencepagenumber\plusone\to\everyaftershipout
-%
% \def\dosetheaderfooterlayer[#1][#2][#3]%
% {\!!doneafalse % first page
% \!!donebfalse % even numbered pages
@@ -370,15 +492,34 @@
% \!!donedfalse % real pagenumber
% \processcommacommand[\csname#2#3\c!state\endcsname]\dodosetheaderfooterlayer
% \doifnotvalue{#2#3\v!layer\c!state}\v!stop{\setuplayer[#1:#3][\c!state=\v!start]}%
-% \ifnum\if!!doned\pagenumber\else\correspondencepagenumber\fi=\plusone
+% \ifnum\if!!doned\pagenumber\else\subpagenumber\fi=\plusone
% \if!!donea\dosetcorrespondencelayer[#1][#2][#3]\fi
% \else
-% \ifodd\if!!doned\pagenumber\else\correspondencepagenumber\fi
+% \ifodd\if!!doned\pagenumber\else\subpagenumber\fi
% \if!!donec\dosetcorrespondencelayer[#1][#2][#3]\fi
% \else
% \if!!doneb\dosetcorrespondencelayer[#1][#2][#3]\fi
% \fi\fi}
+% Alternative version of the macro above for the experimental
+% interface because \subpagenumber can't be used in \ifdim.
+
+\def\dosetheaderfooterlayer[#1][#2][#3]%
+ {\!!doneafalse % first page
+ \!!donebfalse % even numbered pages
+ \!!donecfalse % odd numbered pages
+ \!!donedfalse % real pagenumber
+ \processcommacommand[\csname#2#3\c!state\endcsname]\dodosetheaderfooterlayer
+ \doifnotvalue{#2#3\v!layer\c!state}\v!stop{\setuplayer[#1:#3][\c!state=\v!start]}%
+ \ifnum\if!!doned\pagenumber\else\correspagenumber\fi=\plusone
+ \if!!donea\dosetcorrespondencelayer[#1][#2][#3]\fi
+ \else
+ \ifodd\if!!doned\pagenumber\else\correspagenumber\fi
+ \if!!donec\dosetcorrespondencelayer[#1][#2][#3]\fi
+ \else
+ \if!!doneb\dosetcorrespondencelayer[#1][#2][#3]\fi
+ \fi\fi}
+
%D Sections
\def\definecorrespondencesection[#1][#2]%
diff --git a/Master/texmf-dist/tex/context/third/letter/base/t-letter.tex b/Master/texmf-dist/tex/context/third/letter/base/t-letter.tex
index c46299fd6ce..26208c5b8e4 100644
--- a/Master/texmf-dist/tex/context/third/letter/base/t-letter.tex
+++ b/Master/texmf-dist/tex/context/third/letter/base/t-letter.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=t-letter,
-%D version=2008.12.25,
+%D version=2008.02.13,
%D title=\CONTEXT\ User Module,
%D subtitle=Framework for Letters,
%D author=Wolfgang Schuster,
@@ -601,10 +601,7 @@
\page[\@@@@lsoptionpage]
- \setupsubpagenumber
- [\c!number=\@@@@lsoptionpagenumber,
- \c!way=\v!by\v!text,
- \c!state=\v!start]
+ \setupcorrespagenumber[\v!reset]
\setuppagenumbering
[\c!alternative=\@@@@lsoptionalternative,
@@ -618,8 +615,7 @@
\setupbackgrounds
[\v!page]
[\c!setups={\v!letter:\v!place:\v!head,\v!letter:\v!place:\v!foot},
- \c!background=\letter!list!backgrounds,
- \c!backgroundcolor=\@@@@lsoptionbackgroundcolor]
+ \c!background=\letter!list!backgrounds]
\doifletterstylevalue\v!option\c!bodyfont {\setupbodyfont [\@@@@lsoptionbodyfont ]}
\doifletterstylevalue\v!option\c!whitespace{\setupwhitespace[\@@@@lsoptionwhitespace]}
@@ -634,7 +630,7 @@
\setuplayout[\v!reset]
- \resetsubpagenumber
+ \resetcorrespagenumber
\endgroup
@@ -649,29 +645,12 @@
\directsetup{\v!letter:\v!initialize} % Settings at the begin
\directsetup{\v!letter:\v!optimize } % Interface dependend
\directsetup{\v!letter:\v!layout } % Page layout
- \directsetup{\v!letter:\v!reset } % Reset layers
\directsetup{\v!letter:\v!layer } % Place layers
\directsetup{\v!letter:\v!sequence } % Place content
\directsetup{\v!letter:\v!finish } % Settings at the end
\stopsetups
-%D Reset the layer content.
-
-\def\letter!list!resetlayers
- {\v!topmark,\v!botmark,\v!cutmark,\v!endmark,\v!usermark,\v!letternext,\v!lettermain}
-
-\def\dodoresetletterlayer#1%
- {\resetlayer[\v!letter:#1]}
-
-\startsetups[\v!letter:\v!reset]
-
- \processcommacommand[\letter!list!resetlayers]\dodoresetletterlayer
-
- \setuplayer[\v!letter:\v!letternext][\c!state=\v!continue]
-
-\stopsetups
-
\startsetups[\v!letter:\v!layer]
\doif\@@@@lsoptionmarking \v!yes{\directsetup{\v!letter:\v!place:\v!foldmark }}
diff --git a/Master/texmf-dist/tex/context/third/letter/base/t-resume.tex b/Master/texmf-dist/tex/context/third/letter/base/t-resume.tex
index 450d882c326..ad8ec679c24 100644
--- a/Master/texmf-dist/tex/context/third/letter/base/t-resume.tex
+++ b/Master/texmf-dist/tex/context/third/letter/base/t-resume.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=t-resume,
-%D version=2009.02.09,
+%D version=2009.02.12,
%D title=\CONTEXT\ User Module,
%D subtitle=Resumes,
%D author=Wolfgang Schuster,
@@ -258,10 +258,7 @@
\page[\@@@@rsoptionpage]
- \setupsubpagenumber
- [\c!number=\@@@@rsoptionpagenumber,
- \c!way=\v!by\v!text,
- \c!state=\v!start]
+ \setupcorrespagenumber[\v!reset]
\setuppagenumbering
[\c!alternative=\@@@@rsoptionalternative,
@@ -275,11 +272,10 @@
\setupbackgrounds
[\v!page]
[\c!setups={\v!resume:\v!place:\v!head,\v!resume:\v!place:\v!foot},
- \c!background=\resume!list!backgrounds,
- \c!backgroundcolor=\@@@@rsoptionbackgroundcolor]
+ \c!background=\resume!list!backgrounds]
- \doifresumestylevalue\v!option\c!bodyfont {\switchtobodyfont[\@@@@rsoptionbodyfont ]}
- \doifresumestylevalue\v!option\c!whitespace{\setupwhitespace [\@@@@rsoptionwhitespace]}
+ \doifresumestylevalue\v!option\c!bodyfont {\setupbodyfont [\@@@@rsoptionbodyfont ]}
+ \doifresumestylevalue\v!option\c!whitespace{\setupwhitespace[\@@@@rsoptionwhitespace]}
\stopsetups
@@ -291,7 +287,7 @@
\setuplayout[\v!reset]
- \resetsubpagenumber
+ \resetcorrespagenumber
\endgroup
@@ -304,6 +300,7 @@
\startsetups[\v!resume:\v!place]
\directsetup{\v!resume:\v!initialize} % Settings at the begin
+ \directsetup{\v!resume:\v!optimize } % Interface dependend
\directsetup{\v!resume:\v!layout } % Page layout
\directsetup{\v!resume:\v!reset } % Reset layers
\directsetup{\v!resume:\v!layer } % Place layers
diff --git a/Master/texmf-dist/tex/context/third/letter/extension/addrentry.nle b/Master/texmf-dist/tex/context/third/letter/extension/addrentry.nle
index fd48ae96638..0a7a45bbfe3 100644
--- a/Master/texmf-dist/tex/context/third/letter/extension/addrentry.nle
+++ b/Master/texmf-dist/tex/context/third/letter/extension/addrentry.nle
@@ -1,6 +1,6 @@
%D \module
%D [ file=addrentry,
-%D version=2008.11.29,
+%D version=2008.12.26,
%D title=\CONTEXT\ Letter Extension,
%D subtitle=KOMA-Script addrentry support,
%D author=Wolfgang Schuster,
@@ -22,8 +22,8 @@
\let\adrchar\gobbleoneargument
-\def\address!file!extension{adr}
+\definefileconstant {addressfile} {adr}
-\definecorrespondencefile[\v!address\v!file][\address!file!extension]
+\definecorrespondencefile[\v!address][\v!file][\f!addressfile]
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/third/letter/extension/corres.nle b/Master/texmf-dist/tex/context/third/letter/extension/corres.nle
index 2b9c6188397..94c9410397a 100644
--- a/Master/texmf-dist/tex/context/third/letter/extension/corres.nle
+++ b/Master/texmf-dist/tex/context/third/letter/extension/corres.nle
@@ -1,6 +1,6 @@
%D \module
%D [ file=corres,
-%D version=2008.11.29,
+%D version=2009.02.13,
%D title=\CONTEXT\ Letter Extension,
%D subtitle=XML Handling,
%D author=Wolfgang Schuster,
@@ -13,18 +13,6 @@
\usemodule[corres]
-\startinterface all
- \setinterfaceconstant {prefix} {prefix}
- \setinterfaceconstant {suffix} {suffix}
- \setinterfaceconstant {initials} {initials}
- \setinterfaceconstant {formalname} {formalname}
- \setinterfaceconstant {informalname} {informalname}
-\stopinterface
-
-\startinterface all
- \setinterfacevariable {handle} {handle}
-\stopinterface
-
\setupletter
[\c!prefix=\XMLflush{prefix},
\c!suffix=\XMLflush{suffix},
diff --git a/Master/texmf-dist/tex/context/third/letter/extension/label.nle b/Master/texmf-dist/tex/context/third/letter/extension/label.nle
index 5e1d344e087..b4e59bb568a 100644
--- a/Master/texmf-dist/tex/context/third/letter/extension/label.nle
+++ b/Master/texmf-dist/tex/context/third/letter/extension/label.nle
@@ -1,6 +1,6 @@
%D \module
%D [ file=label,
-%D version=2008.08.08,
+%D version=2009.02.13,
%D title=\CONTEXT\ Letter Extension,
%D subject=Labels,
%D author=Wolfgang Schuster,
@@ -9,30 +9,9 @@
%D email=schuster.wolfgang@googlemail.com,
%D license=Public Domain]
-\unprotect
-
% french labels: Olivier Guéry
-\startinterface all
- \setinterfaceconstant {yourref} {yourref}
- \setinterfaceconstant {yourmail} {yourmail}
- \setinterfaceconstant {myref} {myref}
- \setinterfaceconstant {mymail} {mymail}
- \setinterfaceconstant {customer} {customer}
- \setinterfaceconstant {invoice} {invoice}
- \setinterfaceconstant {subject} {subject}
- \setinterfaceconstant {cc} {cc}
- \setinterfaceconstant {enclosure} {enclosure}
- \setinterfaceconstant {phone} {phone}
- \setinterfaceconstant {fax} {fax}
- \setinterfaceconstant {email} {email}
- \setinterfaceconstant {url} {url}
- \setinterfaceconstant {bank} {bank}
- \setinterfaceconstant {name} {name}
- \setinterfaceconstant {room} {room}
-% \setinterfaceconstant {yourorder} {yourorder} -> Ihre Bestellung vom
-% \setinterfaceconstant {ourinvoice} {ourinvoice} -> Unsere Rechnung vom
-\stopinterface
+\unprotect
%D Label: name
diff --git a/Master/texmf-dist/tex/context/third/letter/interface/default.nli b/Master/texmf-dist/tex/context/third/letter/interface/default.nli
index 11f945610d5..4809c7ebd70 100644
--- a/Master/texmf-dist/tex/context/third/letter/interface/default.nli
+++ b/Master/texmf-dist/tex/context/third/letter/interface/default.nli
@@ -1,6 +1,6 @@
%D \module
%D [ file=default,
-%D version=2009.02.09,
+%D version=2009.02.14,
%D title=\CONTEXT\ Letter Interface,
%D subtitle=Default Interface,
%D author=Wolfgang Schuster,
@@ -11,57 +11,8 @@
%M \loadsetups[t-letter.xml]
-%D \subject{Constants and Variables}
-
\unprotect
-%D I define a few additional constants and variables, I will move them
-%D to the base some time.
-
-\startinterface all
- \setinterfaceconstant {opening} {opening}
- \setinterfaceconstant {closing} {closing}
- \setinterfaceconstant {signature} {signature}
- \setinterfaceconstant {dispatch} {dispatch}
- \setinterfaceconstant {appendices} {appendices}
- \setinterfaceconstant {fromaddress} {fromaddress}
- \setinterfaceconstant {frombank} {frombank}
- \setinterfaceconstant {frommail} {frommail}
- \setinterfaceconstant {fromfax} {fromfax}
- \setinterfaceconstant {fromlogo} {fromlogo}
- \setinterfaceconstant {fromname} {fromname}
- \setinterfaceconstant {fromphone} {fromphone}
- \setinterfaceconstant {fromurl} {fromurl}
- \setinterfaceconstant {toname} {toname}
- \setinterfaceconstant {toaddress} {toaddress}
- \setinterfaceconstant {enclosure} {enclosure}
- \setinterfaceconstant {copy} {copy}
- \setinterfaceconstant {postscript} {postscript}
- \setinterfaceconstant {attention} {attention}
- \setinterfaceconstant {distribution} {distribution}
- \setinterfaceconstant {salutation} {salutation}
- \setinterfaceconstant {addressee} {addressee}
-\stopinterface
-
-\startinterface all
- \setinterfacevariable {e} {e}
- \setinterfacevariable {data} {data}
- \setinterfacevariable {sender} {sender}
- \setinterfacevariable {dispatch} {dispatch}
- \setinterfacevariable {enclosure} {enclosure}
- \setinterfacevariable {copy} {copy}
- \setinterfacevariable {nobreak} {nobreak}
- \setinterfacevariable {endgraf} {endgraf}
- \setinterfacevariable {memo} {memo}
- \setinterfacevariable {addressee} {addressee}
- \setinterfacevariable {french} {french}
- \setinterfacevariable {simplified} {simplified}
- \setinterfacevariable {fullblock} {fullblock}
- \setinterfacevariable {hanging} {hanging}
- \setinterfacevariable {modified} {modified}
- \setinterfacevariable {semiblock} {semiblock}
-\stopinterface
-
%D \subject{Reference line}
%D
%D Dimen value to save the height of the reference line.
@@ -107,12 +58,12 @@
\setupletterstyle
[\v!reference]
[\c!hoffset=\backspace,
- \c!voffset=\dimexpr\letterstylevalue\v!address\c!voffset+\letterstylevalue\v!address\c!height+\plusthree\c!mm\relax,
+ \c!voffset=\dimexpr\letterstylevalue{\v!address\v!layer}\c!voffset+\letterstylevalue{\v!address\v!frame}\c!height+\plusthree\c!mm\relax,
\c!width=\textwidth]
\setupletterstyle
[\v!firstpage]
- [\c!topspace=\dimexpr\letterstylevalue\v!reference\c!voffset+\letter!height!reference+\plustwo\lineheight\relax]
+ [\c!topspace=\dimexpr\letterstylevalue{\v!reference\v!layer}\c!voffset+\letterstylevalue\v!reference\c!spaceafter+\letter!height!reference\relax]
\stopsetups
@@ -141,7 +92,7 @@
[\v!reference]
[\v!layer]
[\c!hoffset=125.7mm,
- \c!voffset=\letterstylevalue\v!address\c!voffset]
+ \c!voffset=\letterstylevalue{\v!address\v!layer}\c!voffset]
\setupletterstyle
[\v!reference]
@@ -206,7 +157,7 @@
[\v!reference]
[\v!layer]
[\c!hoffset=125.7mm,
- \c!voffset=\letterstylevalue\v!address\c!voffset]
+ \c!voffset=\letterstylevalue{\v!address\v!layer}\c!voffset]
\setupletterstyle
[\v!reference]
@@ -273,10 +224,36 @@
%D
%D \showsetup{startletter}
+% \def\startletter
+% {\bgroup\dodoubleempty\dostartletter}
+%
+% \def\dostartletter[#1][#2]%
+% {\ifsecondargument
+% \getparameters[\????ld][#1]%
+% \doifundefinedelse{\????ld\????ld#2}
+% {\setvalue{\????ld\c!toaddress}{#2}}
+% {\setvalue{\????ld\c!toaddress}{\getvalue{\????ld\????ld#2}}}%
+% \else\iffirstargument
+% \doifassignmentelse{#1}
+% {\getparameters[\????ld][#1]}
+% {\doifundefinedelse{\????ld\????ld#1}
+% {\setvalue{\????ld\c!toaddress}{#1}}
+% {\setvalue{\????ld\c!toaddress}{\getvalue{\????ld\????ld#1}}}}%
+% \fi\fi
+% \def\stopletter
+% {\directsetup{\v!letter:\v!place}\egroup}%
+% \dostartbuffer[lettercontent][startletter][stopletter]}
+
+\long\def\dosetbuffer[#1]#2\endbuffer % added \long
+ {\begingroup
+ \setcurrentbuffer{#1}%
+ \mksetbuffer{#2}%
+ \endgroup}
+
\def\startletter
{\bgroup\dodoubleempty\dostartletter}
-\def\dostartletter[#1][#2]%
+\long\def\dostartletter[#1][#2]#3\stopletter
{\ifsecondargument
\getparameters[\????ld][#1]%
\doifundefinedelse{\????ld\????ld#2}
@@ -289,31 +266,30 @@
{\setvalue{\????ld\c!toaddress}{#1}}
{\setvalue{\????ld\c!toaddress}{\getvalue{\????ld\????ld#1}}}}%
\fi\fi
- \def\stopletter
- {\directsetup{\v!letter:\v!place}\egroup\setupsubpagenumber[\c!state=\v!start]}%
- \dostartbuffer[lettercontent][startletter][stopletter]}
-
-%D Patched version of the \tex{flushbufferline} macro for \MKII,
-%D the changes are definition as long and removing of \tex{string}
-%D in the argument of the last write block.
-
-\long\def\flushbufferline#1%
- {\iftmpblockstarted
- \ifsegmentatebuffer
- \ifemptybufferline
- \immediate\write\tmpblocks{\string\stopbufferparagraph }%
- \immediate\write\tmpblocks{\string\startbufferparagraph}%
- \else
- \immediate\write\tmpblocks{#1}%
- \fi
- \else
- \immediate\write\tmpblocks{#1}%
- \fi
- \else
- \doifsomething{#1}
- {\tmpblockstartedtrue
- \immediate\write\tmpblocks{#1}}%
- \fi}
+ \setbuffer[lettercontent]#3\endbuffer
+ \directsetup{\v!letter:\v!place}\egroup}
+
+% %D Patched version of the \tex{flushbufferline} macro for \MKII,
+% %D the changes are definition as long and removing of \tex{string}
+% %D in the argument of the last write block.
+%
+% \long\def\flushbufferline#1%
+% {\iftmpblockstarted
+% \ifsegmentatebuffer
+% \ifemptybufferline
+% \immediate\write\tmpblocks{\string\stopbufferparagraph }%
+% \immediate\write\tmpblocks{\string\startbufferparagraph}%
+% \else
+% \immediate\write\tmpblocks{#1}%
+% \fi
+% \else
+% \immediate\write\tmpblocks{#1}%
+% \fi
+% \else
+% \doifsomething{#1}
+% {\tmpblockstartedtrue
+% \immediate\write\tmpblocks{#1}}%
+% \fi}
%D \macros
%D {startlettercontent}
diff --git a/Master/texmf-dist/tex/context/third/letter/interface/default.nri b/Master/texmf-dist/tex/context/third/letter/interface/default.nri
index edbf61f7d99..c417951987e 100644
--- a/Master/texmf-dist/tex/context/third/letter/interface/default.nri
+++ b/Master/texmf-dist/tex/context/third/letter/interface/default.nri
@@ -1,6 +1,6 @@
%D \module
%D [ file=default,
-%D version=2008.12.21,
+%D version=2009.02.14,
%D title=\CONTEXT\ Resume Interface,
%D subtitle=Default Interface,
%D author=Wolfgang Schuster,
@@ -11,11 +11,6 @@
\unprotect
-\startinterface all
- \setinterfacevariable {casual} {casual}
- \setinterfacevariable {classic} {classic}
-\stopinterface
-
%D The resume provides no own commands to write the information
%D for your curriculum vitae but you can use \CONTEXT's own
%D description, paragraph or table commands.
@@ -57,15 +52,31 @@
%D \stopcontent
%D \stoptyping
+% \def\startresume
+% {\bgroup\dosingleempty\dostartresume}
+%
+% \def\dostartresume[#1]%
+% {\iffirstargument
+% \getparameters[\????rd][#1]%
+% \fi
+% \def\stopresume{\directsetup{\v!resume:\v!place}\egroup\setupsubpagenumber[\c!state=\v!start]}%
+% \dostartbuffer[resumecontent][startresume][stopresume]}
+
+\long\def\dosetbuffer[#1]#2\endbuffer % added \long
+ {\begingroup
+ \setcurrentbuffer{#1}%
+ \mksetbuffer{#2}%
+ \endgroup}
+
\def\startresume
{\bgroup\dosingleempty\dostartresume}
-\def\dostartresume[#1]%
+\long\def\dostartresume[#1]#2\stopresume
{\iffirstargument
\getparameters[\????rd][#1]%
\fi
- \def\stopresume{\directsetup{\v!resume:\v!place}\egroup\setupsubpagenumber[\c!state=\v!start]}%
- \dostartbuffer[resumecontent][startresume][stopresume]}
+ \setbuffer[resumecontent]#2\endbuffer
+ \directsetup{\v!resume:\v!place}\egroup}
\def\startresumecontent
{\dostartbuffer[resumecontent][startresumecontent][stopresumecontent]}
@@ -85,7 +96,7 @@
\executeifdefined{\v!resume:\v!foot:\@@@@rsfootalternative}\donothing
\stopsetups
-\startsetups[\v!letter:\v!nexthead]
+\startsetups[\v!resume:\v!nexthead]
\executeifdefined{\v!resume:\v!nexthead:\@@@@rsnextheadalternative}\donothing
\stopsetups
diff --git a/Master/texmf-dist/tex/context/third/letter/interface/knuth.nli b/Master/texmf-dist/tex/context/third/letter/interface/knuth.nli
index 3234b7ebc7e..a4b4b17c85b 100644
--- a/Master/texmf-dist/tex/context/third/letter/interface/knuth.nli
+++ b/Master/texmf-dist/tex/context/third/letter/interface/knuth.nli
@@ -1,6 +1,6 @@
%D \module
%D [ file=knuth,
-%D version=2008.11.29,
+%D version=2009.01.23,
%D title=\CONTEXT\ Letter Interface,
%D subtitle=Lettformat Interface, % Donald Knuth's own letter format
%D author=Wolfgang Schuster,
@@ -37,6 +37,7 @@
\startsetups[\v!letter:\v!opening]
\obeylines
+ \def\par{\letterstylevalue\v!opening\c!separator}
\getbuffer[address]
\stopsetups
@@ -51,9 +52,15 @@
\leftskip=4in
\obeylines
- \def\par{\normalpar\vskip1cm\let\par\normalpar}
+ \def\par{\normalpar\vskip1cm\def\par{\normalpar\nowhitespace}}
\getbuffer[closing]
\stopsetups
+\startsetups[\v!letter:\v!nexthead]
+
+ \getvalue{\v!letter:\v!nexthead:\v!knuth}
+
+\stopsetups
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/third/letter/interface/pragma.nli b/Master/texmf-dist/tex/context/third/letter/interface/pragma.nli
index f149c1ff7e0..eb4338c6bcd 100644
--- a/Master/texmf-dist/tex/context/third/letter/interface/pragma.nli
+++ b/Master/texmf-dist/tex/context/third/letter/interface/pragma.nli
@@ -1,6 +1,6 @@
%D \module
%D [ file=pragma,
-%D version=2008.02.17,
+%D version=2009.02.12,
%D title=\CONTEXT\ Letter Extension,
%D subtitle=Pragma Style,
%D author=Wolfgang Schuster,
@@ -14,6 +14,10 @@
\useletterstyle [pragma] % prefined layout
\useletterextension[pragma] % example text
+\setupletterstyle
+ [\v!reference]
+ [\c!alternative=\v!none]
+
\setvariables
[letter:head]
[graphic=]
@@ -29,22 +33,7 @@
\setvariables
[letter:data]
- [address=,
- subject=,
- date=,
- concerns=,
- residence=,
- reference=,
- opening=,
- initials=,
- prefix=,
- suffix=,
- informalname=,
- formalname=,
- content={\getbuffer[texletter]},
- author=,
- greeting=,
- appendices=]
+ [content={\getbuffer[texletter]}]
\startsetups[letter:address]
\def\\{\endgraf}\getvariable{letter:data}{address}
@@ -90,7 +79,7 @@
[\v!address]
[\v!layer]
[\c!line=\getvariable{letter:address}{line},
- \c!hoffset=\dimexpr\backspace-\linewidth-\getvariable{letter:address}{hoffset}\relax,
+ \c!hoffset=\dimexpr\backspace-\linewidth+\getvariable{letter:address}{hoffset}\relax,
\c!height=\getvariable{letter:address}{noflines}\lineheight]
\setupletterstyle
diff --git a/Master/texmf-dist/tex/context/third/letter/style/casual.nrs b/Master/texmf-dist/tex/context/third/letter/style/casual.nrs
index c60fc081fe8..0bb0ba543f0 100644
--- a/Master/texmf-dist/tex/context/third/letter/style/casual.nrs
+++ b/Master/texmf-dist/tex/context/third/letter/style/casual.nrs
@@ -1,200 +1,235 @@
-%D \module
-%D [ file=casual,
-%D version=2009.02.09,
-%D title=\CONTEXT\ Resume Style,
-%D subtitle=Casual Style,
-%D author=Wolfgang Schuster,
-%D date=\currentdate,
-%D copyright=Wolfgang Schuster,
-%D email=schuster.wolfgang@googlemail.com,
-%D license=Public Domain]
-
-% This style tries to mimic the moderncv casual style.
-
-\unprotect
-
-%D I take the layout from the default style.
-
-\useresumestyle[default]
-
-%D You can select between different color styles for the elements.
-
-\startsetups casual:blue
-
- \definecolorgroup
- [casual]
- [0.65:0.65:0.65,
- 0.45:0.45:0.45,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35,
- 0.25:0.50:0.75,
- 0.20:0.40:0.65,
- 0.20:0.40:0.65,
- 0.25:0.50:0.75]
-
-\stopsetups
-
-\startsetups casual:orange
-
- \definecolorgroup
- [casual]
- [0.65:0.65:0.65,
- 0.45:0.45:0.45,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35,
- 1.00:0.65:0.20,
- 0.95:0.55:0.15,
- 0.95:0.55:0.15,
- 0.95:0.55:0.15]
-
-\stopsetups
-
-\startsetups casual:green
-
- \definecolorgroup
- [casual]
- [0.65:0.65:0.65,
- 0.45:0.45:0.45,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35,
- 0.55:0.85:0.35,
- 0.30:0.65:0.15,
- 0.30:0.65:0.15,
- 0.30:0.65:0.15]
-
-\stopsetups
-
-\startsetups casual:red
-
- \definecolorgroup
- [casual]
- [0.65:0.65:0.65,
- 0.45:0.45:0.45,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35,
- 1.00:0.30:0.30,
- 0.95:0.20:0.20,
- 0.95:0.20:0.20,
- 0.95:0.20:0.20]
-
-\stopsetups
-
-\startsetups casual:grey
-
- \definecolorgroup
- [casual]
- [0.65:0.65:0.65,
- 0.45:0.45:0.45,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35,
- 0.75:0.75:0.75,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35]
-
-\stopsetups
-
-\processaction
- [\resumestylevalue\v!option\c!color]
- [ blue=>\directsetup{casual:blue},
- orange=>\directsetup{casual:orange},
- green=>\directsetup{casual:green},
- red=>\directsetup{casual:red},
- grey=>\directsetup{casual:grey},
- \s!unknown=>\directsetup{casual:blue}]
-
-\setupresumestyle
- [\v!firstpage]
- [\c!topspace=6cm,
- \c!height=\v!fit]
-
-%D Quick and dirty solution, I will write a better one in the future
-
-\setvalue{\v!resume:\v!head:\v!casual}%
- {\hbox to\hsize\bgroup
- \framed[\c!offset=2\points,\c!strut=\v!no,\c!framecolor=casual:1]{\resumevalue{image}}%
- \hfill
- \hbox\bgroup
- \doattributes{\????rs firstname}\c!style\c!color {\resumevalue{firstname}}%
- \space
- \doattributes{\????rs familyname}\c!style\c!color{\resumevalue{familyname}}%
- \egroup
- \egroup
- \blank[\v!small]
- \blackrule[\c!height=2\linewidth,\c!width=\hsize,\c!color=casual:1]
- \blank[\v!line]
- \doattributes{\????rs quote}\c!style\c!color{\resumevalue{quote}}}
-
-\setvalue{\v!resume:\v!foot:\v!casual}%
- {\doattributes{\????rs street}\c!style\c!color{\resumevalue{street}} -- \doattributes{\????rs town}\c!style\c!color{\resumevalue{town}}\par
- \doattributes{\????rs mobile}\c!style\c!color{\resumevalue{mobile}}\quad\color[casual:8]{\symbol{bullet}}\quad
- \doattributes{\????rs phone}\c!style\c!color{\resumevalue {phone}}\quad\color[casual:8]{\symbol{bullet}}\quad
- \doattributes{\????rs fax}\c!style\c!color{\resumevalue {fax}}\quad\color[casual:8]{\symbol{bullet}}\quad
- \doattributes{\????rs email}\c!style\c!color{\resumevalue {email}}\quad\color[casual:8]{\symbol{bullet}}\quad
- \doattributes{\????rs info}\c!style\c!color{\resumevalue {info}}}
-
-\setvalue{\v!resume:\v!nextfoot:\v!casual}%
- {\color[casual:4]{\it\subpagenumber/\numberofsubpages}}
-
-\setupresumestyle
- [\v!head,\v!foot,\v!nextfoot]
- [\c!alternative=\v!casual]
-
-\setupresumestyle
- [\v!head]
- [\c!hoffset=\backspace,
- \c!voffset=2cm,
- \c!width=\textwidth,
- \c!height=3.5cm,
- \c!frame=\v!off,
- \c!align=\v!middle,
- \c!state=\v!start]
-
-\setupresumestyle
- [\v!foot,\v!nextfoot]
- [\v!option]
- [\c!state={\v!first,\v!next}]
-
-\setupresumestyle
- [\v!foot,\v!nextfoot]
- [\v!frame]
- [\c!frame=\v!off,
- \c!width=\textwidth,
- \c!height=2cm,
- \c!align=\v!middle]
-
-\setupresumestyle
- [\v!foot,\v!nextfoot]
- [\v!layer]
- [\c!preset=\v!left\v!bottom,
- \c!hoffset=\backspace,
- \c!voffset=2cm]
-
-\setupresumestyle
- [\v!nextfoot]
- [\c!align={\v!left,\v!lohi}]
-
-% Why do I use setupresumestyle, I use in the letter module
-% for the same thing setupletter, I should change this
-
-\setupresumestyle
- [firstname]
- [style=\c!tf\c!d,
- color=casual:1]
-
-\setupresumestyle
- [familyname]
- [style=\c!tf\c!d,
- color=casual:2]
-
-\setupresumestyle
- [quote]
- [style=\c!tf,
- color=casual:3]
-
-\setupresumestyle
- [street,town,mobile,phone,fax,email,info]
- [\c!style=\v!italic,
- \c!color=casual:4]
-
-\protect \endinput
+%D \module
+%D [ file=casual,
+%D version=2009.02.11,
+%D title=\CONTEXT\ Resume Style,
+%D subtitle=Casual Style,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\unprotect
+
+%D I take the layout from the default style.
+
+\useresumestyle[modern]
+
+%D You can select between different color styles for the elements.
+
+%D Colors (moderncv name)
+%Dresume
+%D \startline
+%D resume:1 firstnamecolor
+%D resume:2 familynamecolor
+%D resume:3 titlecolor
+%D resume:4 quotecolor
+%D resume:5 addresscolor
+%D resume:6 sectionrectanglecolor
+%D resume:7 sectiontitlecolor
+%D resume:8 subsectioncolor
+%D resume:9 footersymbolcolor
+%D \stoplines
+
+\startsetups resume:blue
+
+ \definecolorgroup
+ [resume]
+ [0.65:0.65:0.65,
+ 0.45:0.45:0.45,
+ 0.00:0.00:0.00,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35,
+ 0.25:0.50:0.75,
+ 0.20:0.40:0.65,
+ 0.20:0.40:0.65,
+ 0.25:0.50:0.75]
+
+\stopsetups
+
+\startsetups resume:orange
+
+ \definecolorgroup
+ [resume]
+ [0.65:0.65:0.65,
+ 0.45:0.45:0.45,
+ 0.00:0.00:0.00,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35,
+ 1.00:0.65:0.20,
+ 0.95:0.55:0.15,
+ 0.95:0.55:0.15,
+ 0.95:0.55:0.15]
+
+\stopsetups
+
+\startsetups resume:green
+
+ \definecolorgroup
+ [resume]
+ [0.65:0.65:0.65,
+ 0.45:0.45:0.45,
+ 0.00:0.00:0.00,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35,
+ 0.55:0.85:0.35,
+ 0.30:0.65:0.15,
+ 0.30:0.65:0.15,
+ 0.30:0.65:0.15]
+
+\stopsetups
+
+\startsetups resume:red
+
+ \definecolorgroup
+ [resume]
+ [0.65:0.65:0.65,
+ 0.45:0.45:0.45,
+ 0.00:0.00:0.00,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35,
+ 1.00:0.30:0.30,
+ 0.95:0.20:0.20,
+ 0.95:0.20:0.20,
+ 0.95:0.20:0.20]
+
+\stopsetups
+
+\startsetups resume:grey
+
+ \definecolorgroup
+ [resume]
+ [0.65:0.65:0.65,
+ 0.45:0.45:0.45,
+ 0.00:0.00:0.00,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35,
+ 0.75:0.75:0.75,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35]
+
+\stopsetups
+
+\processaction
+ [\resumestylevalue\v!option\c!color]
+ [ blue=>\directsetup{resume:blue},
+ orange=>\directsetup{resume:orange},
+ green=>\directsetup{resume:green},
+ red=>\directsetup{resume:red},
+ grey=>\directsetup{resume:grey},
+ \s!unknown=>\directsetup{resume:blue}]
+
+%D Quick and dirty solution, I will write a better one in the future
+
+\def\attributedresumevalue#1%
+ {\doattributes{\????rd#1}\c!style\c!color{\resumevalue{#1}}}
+
+\setvalue{\v!resume:\v!head:\v!casual}%
+ {\hbox to\hsize\bgroup
+ \framed[\c!offset=2\points,\c!strut=\v!no,\c!framecolor=resume:1]{\resumevalue{image}}%
+ \hfill
+ \hbox{\attributedresumevalue\v!firstname\space\attributedresumevalue\v!familyname}%
+ \egroup
+ \vskip-\baselineskip\blank[medium]
+ \blackrule[\c!height=2\linewidth,\c!width=\hsize,\c!color=resume:1]
+ \doifresumevalue\v!quote{\blank[\v!line]\attributedresumevalue\v!quote}}
+
+% see beow for a better version
+%
+% \setvalue{\v!resume:\v!foot:\v!casual}%
+% {\attributedresumevalue\v!street\space -- \attributedresumevalue\v!town\par
+% \attributedresumevalue\v!mobile\quad\color[resume:9]{\symbol{bullet}}\quad
+% \attributedresumevalue\v!phone \quad\color[resume:9]{\symbol{bullet}}\quad
+% \attributedresumevalue\v!fax \quad\color[resume:9]{\symbol{bullet}}\quad
+% \attributedresumevalue\v!email \quad\color[resume:9]{\symbol{bullet}}\quad
+% \attributedresumevalue\v!info}
+
+
+\def\resumefootalternativecasual[#1][#2]% Can I make a generic version?
+ {\bgroup
+ \def\resumefootalternativecasual##1%
+ {\doifresumevalue{##1}{\advance\scratchcounter\plusone}}%
+ \def\doresumefootsingleelement##1%
+ {\doifresumevalue{##1}{\attributedresumevalue{#1}}}%
+ \def\doresumefootmultipleelement##1%
+ {\doifresumevalue{##1}
+ {\advance\scratchcounter\plusone
+ \attributedresumevalue{##1}
+ \unless\ifnum\scratchcounter=\resumefootvalues
+ #2%
+ \fi}}%
+ \scratchcounter\zerocount
+ \processcommalist[#1]\resumefootalternativecasual
+ \edef\resumefootvalues{\number\scratchcounter}%
+ \scratchcounter\zerocount
+ \ifnum\resumefootvalues>0
+ \ifnum\resumefootvalues=1
+ \processcommalist[#1]\doresumefootsingleelement
+ \else
+ \processcommalist[#1]\doresumefootmultipleelement
+ \fi
+ \fi
+ \egroup}
+
+\setvalue{\v!resume:\v!foot:\v!casual}%
+ {\bgroup
+ \resumefootalternativecasual[street,town][~--~]\par
+ \resumefootalternativecasual[mobile,phone,fax,email,info][{\quad\color[resume:9]{\symbol{bullet}}\quad}]\par
+ \egroup}
+
+\setvalue{\v!resume:\v!nextfoot:\v!casual}%
+ {\color[resume:5]{\it\correspagenumber/\numberofcorrespages}}
+
+\setupresumestyle
+ [\v!head,\v!foot,\v!nextfoot]
+ [\c!alternative=\v!casual]
+
+\setupresumestyle
+ [\v!head]
+ [\c!hoffset=\backspace,
+ \c!voffset=2cm,
+ \c!width=\textwidth,
+ \c!height=3.5cm,
+ \c!frame=\v!off,
+ \c!align={\v!wide,\v!middle},
+ \c!state=\v!start]
+
+\setupresumestyle
+ [\v!foot,\v!nextfoot]
+ [\v!option]
+ [\c!state={\v!first,\v!next}]
+
+\setupresumestyle
+ [\v!foot,\v!nextfoot]
+ [\v!frame]
+ [\c!frame=\v!off,
+ \c!width=\textwidth,
+ \c!height=2cm,
+ \c!align=\v!middle]
+
+\setupresumestyle
+ [\v!foot,\v!nextfoot]
+ [\v!layer]
+ [\c!preset=\v!left\v!bottom,
+ \c!hoffset=\backspace,
+ \c!voffset=2cm]
+
+\setupresumestyle
+ [\v!nextfoot]
+ [\c!align={\v!left,\v!lohi}]
+
+%D Default style for the user information
+
+\setupresume[\v!firstname] [\c!style=\c!tf\c!d,\c!color=resume:1]
+\setupresume[\v!familyname][\c!style=\c!tf\c!d,\c!color=resume:2]
+\setupresume[\v!quote] [\c!style=\c!tf ,\c!color=resume:4]
+\setupresume[\v!street] [\c!style=\v!italic,\c!color=resume:5]
+\setupresume[\v!town] [\c!style=\v!italic,\c!color=resume:5]
+\setupresume[\v!mobile] [\c!style=\v!italic,\c!color=resume:5]
+\setupresume[\v!phone] [\c!style=\v!italic,\c!color=resume:5]
+\setupresume[\v!fax] [\c!style=\v!italic,\c!color=resume:5]
+\setupresume[\v!email] [\c!style=\v!italic,\c!color=resume:5]
+\setupresume[\v!info] [\c!style=\v!italic,\c!color=resume:5]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/third/letter/style/classic.nrs b/Master/texmf-dist/tex/context/third/letter/style/classic.nrs
index 749f9691edf..c5f9b67af8a 100644
--- a/Master/texmf-dist/tex/context/third/letter/style/classic.nrs
+++ b/Master/texmf-dist/tex/context/third/letter/style/classic.nrs
@@ -1,195 +1,204 @@
-%D \module
-%D [ file=classic,
-%D version=2009.02.09,
-%D title=\CONTEXT\ Resume Style,
-%D subtitle=Classic Style,
-%D author=Wolfgang Schuster,
-%D date=\currentdate,
-%D copyright=Wolfgang Schuster,
-%D email=schuster.wolfgang@googlemail.com,
-%D license=Public Domain]
-
-% This style tries to mimic the moderncv classic style.
-
-\unprotect
-
-\useresumestyle[default]
-
-\startsetups classic:blue
-
- \definecolorgroup
- [classic]
- [0.00:0.00:0.00,
- 0.00:0.00:0.00,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35,
- 0.25:0.50:0.75,
- 0.25:0.50:0.75,
- 0.20:0.40:0.65,
- 0.20:0.40:0.65]
-
-\stopsetups
-
-\startsetups classic:orange
-
- \definecolorgroup
- [classic]
- [0.00:0.00:0.00,
- 0.00:0.00:0.00,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35,
- 0.95:0.55:0.15,
- 1.00:0.65:0.20,
- 0.95:0.55:0.15,
- 0.95:0.55:0.15]
-
-\stopsetups
-
-\startsetups classic:green
-
- \definecolorgroup
- [classic]
- [0.00:0.00:0.00,
- 0.00:0.00:0.00,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35,
- 0.30:0.65:0.15,
- 0.55:0.85:0.35,
- 0.30:0.65:0.15,
- 0.30:0.65:0.15]
-
-\stopsetups
-
-\startsetups classic:red
-
- \definecolorgroup
- [classic]
- [0.00:0.00:0.00,
- 0.00:0.00:0.00,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35,
- 0.95:0.20:0.20,
- 1.00:0.30:0.30,
- 0.95:0.20:0.20,
- 0.95:0.20:0.20]
-
-\stopsetups
-
-\startsetups classic:grey
-
- \definecolorgroup
- [classic]
- [0.00:0.00:0.00,
- 0.00:0.00:0.00,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35,
- 0.75:0.75:0.75,
- 0.35:0.35:0.35,
- 0.35:0.35:0.35]
-
-\stopsetups
-
-\processaction
- [\resumestylevalue\v!option\c!color]
- [ blue=>\directsetup{classic:blue},
- orange=>\directsetup{classic:orange},
- green=>\directsetup{classic:green},
- red=>\directsetup{classic:red},
- grey=>\directsetup{classic:grey},
- \s!unknown=>\directsetup{classic:blue}]
-
-\setupresumestyle
- [\v!firstpage]
- [\c!topspace=9cm,
- \c!header=0cm,
- \c!height=\v!fit]
-
-\setvalue{\v!resume:\v!head:\v!classic}%
- {\hbox to \hsize\bgroup
- \vbox\bgroup
- \hbox\bgroup
- \doattributes{\????rd firstname}\c!style\c!color {\resumevalue{firstname}}%
- \space
- \doattributes{\????rd familyname}\c!style\c!color{\resumevalue{familyname}}%
- \egroup
- \hbox{\doattributes{\????rd title}\c!style\c!color{\resumevalue{title}}}
- \egroup
- \hfill
- \framed
- [\c!location=\v!bottom,
- \c!align=\v!left,
- \c!width=\v!fit,
- \c!frame=\v!off,
- \c!foregroundstyle=\v!italic,
- \c!foregroundcolor=classic:5]
- {\resumevalue{street}\\
- \resumevalue {town}\\
- \resumevalue{mobile}\\
- \resumevalue {phone}\\
- \resumevalue {fax}\\
- \resumevalue {email}\\
- \resumevalue {info}}%
- \space
- \framed[\c!offset=2\points,\c!strut=\v!no]{\resumevalue{image}}%
- \egroup}
-
-\setvalue{\v!resume:\v!nextfoot:\v!classic}%
- {\color[classic:4]{\it\subpagenumber/\numberofsubpages}}
-
-\setupresumestyle
- [\v!head,\v!nextfoot]
- [\c!alternative=\v!classic]
-
-\setupresumestyle
- [\v!head]
- [\c!hoffset=\backspace,
- \c!voffset=2cm,
- \c!frame=\v!off,
- \c!width=\textwidth,
- \c!height=7cm]
-
-\setupresumestyle
- [\v!nextfoot]
- [\v!option]
- [\c!state={\v!first,\v!next}]
-
-\setupresumestyle
- [\v!nextfoot]
- [\v!frame]
- [\c!frame=\v!off,
- \c!width=\textwidth,
- \c!height=2cm,
- \c!align={\v!left,\v!lohi}]
-
-\setupresumestyle
- [\v!nextfoot]
- [\v!layer]
- [\c!preset=\v!left\v!bottom,
- \c!hoffset=\backspace,
- \c!voffset=2cm]
-
-% Why do I use setupresumestyle, I use in the letter module
-% for the same thing setupletter, I should change this
-
-\setupresume
- [quote]
- [\c!style=\v!italic,
- \c!color=classic:4]
-
-\setupresume
- [firstname]
- [\c!style=\c!tf\c!d,
- \c!color=classic:1]
-
-\setupresume
- [familyname]
- [\c!style=\c!tf\c!d,
- \c!color=classic:2]
-
-\setupresume
- [title]
- [\c!style=\c!it\c!b,
- \c!color=classic:3]
-
-\protect \endinput
+%D \module
+%D [ file=classic,
+%D version=2009.02.11,
+%D title=\CONTEXT\ Resume Style,
+%D subtitle=Classic Style,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\unprotect
+
+\useresumestyle[modern]
+
+%D Colors (moderncv names)
+%D
+%D \startlines
+%D classic:1 firstnamecolor
+%D classic:2 familynamecolor
+%D classic:3 titlecolor
+%D classic:4 quotecolor
+%D classic:5 addresscolor
+%D classic:6 sectionrectanglecolor
+%D classic:7 sectiontitlecolor
+%D classic:8 subsectioncolor
+%D resume:9 footersymbolcolor
+%D \stoplines
+
+\startsetups resume:blue
+
+ \definecolorgroup
+ [resume]
+ [0.00:0.00:0.00,
+ 0.00:0.00:0.00,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35,
+ 0.25:0.50:0.75,
+ 0.25:0.50:0.75,
+ 0.20:0.40:0.65,
+ 0.20:0.40:0.65,
+ 0.00:0.00:0.00]
+
+\stopsetups
+
+\startsetups resume:orange
+
+ \definecolorgroup
+ [resume]
+ [0.00:0.00:0.00,
+ 0.00:0.00:0.00,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35,
+ 0.95:0.55:0.15,
+ 1.00:0.65:0.20,
+ 0.95:0.55:0.15,
+ 0.95:0.55:0.15,
+ 0.00:0.00:0.00]
+
+\stopsetups
+
+\startsetups resume:green
+
+ \definecolorgroup
+ [resume]
+ [0.00:0.00:0.00,
+ 0.00:0.00:0.00,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35,
+ 0.30:0.65:0.15,
+ 0.55:0.85:0.35,
+ 0.30:0.65:0.15,
+ 0.30:0.65:0.15,
+ 0.00:0.00:0.00]
+
+\stopsetups
+
+\startsetups resume:red
+
+ \definecolorgroup
+ [resume]
+ [0.00:0.00:0.00,
+ 0.00:0.00:0.00,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35,
+ 0.95:0.20:0.20,
+ 1.00:0.30:0.30,
+ 0.95:0.20:0.20,
+ 0.95:0.20:0.20,
+ 0.00:0.00:0.00]
+
+\stopsetups
+
+\startsetups resume:grey
+
+ \definecolorgroup
+ [resume]
+ [0.00:0.00:0.00,
+ 0.00:0.00:0.00,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35,
+ 0.75:0.75:0.75,
+ 0.35:0.35:0.35,
+ 0.35:0.35:0.35,
+ 0.00:0.00:0.00]
+
+\stopsetups
+
+\processaction
+ [\resumestylevalue\v!option\c!color]
+ [ blue=>\directsetup{resume:blue},
+ orange=>\directsetup{resume:orange},
+ green=>\directsetup{resume:green},
+ red=>\directsetup{resume:red},
+ grey=>\directsetup{resume:grey},
+ \s!unknown=>\directsetup{resume:blue}]
+
+%D Quick and dirty solution
+
+\def\attributedresumevalue#1%
+ {\doattributes{\????rd#1}\c!style\c!color{\resumevalue{#1}}}
+
+\def\resumeheadalternativecassual[#1]%
+ {\bgroup
+ \def\doresumeheadalternativecassual##1%
+ {\doifresumevalue{##1}{\advance\scratchcounter\plusone}}%
+ \def\dodoresumeheadalternativecassual##1%
+ {\doifresumevalue{##1}
+ {\advance\scratchcounter\plusone
+ \attributedresumevalue{##1}%
+ \ifnum\scratchcounter<\resumeheadvalues\\\fi}}%
+ \scratchcounter\zerocount
+ \processcommalist[#1]\doresumeheadalternativecassual
+ \edef\resumeheadvalues{\number\scratchcounter}%
+ \scratchcounter\zerocount
+ \processcommalist[#1]\dodoresumeheadalternativecassual
+ \egroup}
+
+\setvalue{\v!resume:\v!head:\v!classic}%
+ {\hbox to \textwidth\bgroup
+ \vbox\bgroup
+ \hbox{\attributedresumevalue\v!firstname\space\attributedresumevalue\v!familyname}
+ \doifresumevalue\v!title{\blank[\v!medium]}
+ \hbox{\attributedresumevalue\v!title}
+ \egroup
+ \hss
+ \framed
+ [\c!location=\v!bottom,\c!align=\v!left,\c!width=\v!fit,\c!frame=\v!off]
+ {\resumeheadalternativecassual[street,town,mobile,phone,fax,email,info]}%
+ \quad
+ \framed[\c!offset=2\points,\c!strut=\v!no]{\resumevalue{image}}%
+ \egroup}
+
+\setvalue{\v!resume:\v!nextfoot:\v!classic}%
+ {\color[resume:4]{\it\correspagenumber/\numberofcorrespages}}
+
+\setupresumestyle
+ [\v!head,\v!nextfoot]
+ [\c!alternative=\v!classic]
+
+\setupresumestyle
+ [\v!head]
+ [\c!hoffset=\backspace,
+ \c!voffset=2cm,
+ \c!frame=\v!off,
+ \c!width=\textwidth,
+ \c!height=7cm]
+
+\setupresumestyle
+ [\v!nextfoot]
+ [\v!option]
+ [\c!state={\v!first,\v!next}]
+
+\setupresumestyle
+ [\v!nextfoot]
+ [\v!frame]
+ [\c!frame=\v!off,
+ \c!width=\textwidth,
+ \c!height=2cm,
+ \c!align={\v!left,\v!lohi}]
+
+\setupresumestyle
+ [\v!nextfoot]
+ [\v!layer]
+ [\c!preset=\v!left\v!bottom,
+ \c!hoffset=\backspace,
+ \c!voffset=2cm]
+
+%D Default style for the user information
+
+\setupresume[\v!quote] [\c!style=\v!italic,\c!color=resume:4]
+\setupresume[\v!firstname] [\c!style=\c!tf\c!d,\c!color=resume:1]
+\setupresume[\v!familyname][\c!style=\c!tf\c!d,\c!color=resume:2]
+\setupresume[\v!title] [\c!style=\c!it\c!b,\c!color=resume:3]
+\setupresume[\v!street] [\c!style=\v!italic,\c!color=resume:5]
+\setupresume[\v!town] [\c!style=\v!italic,\c!color=resume:5]
+\setupresume[\v!mobile] [\c!style=\v!italic,\c!color=resume:5]
+\setupresume[\v!phone] [\c!style=\v!italic,\c!color=resume:5]
+\setupresume[\v!fax] [\c!style=\v!italic,\c!color=resume:5]
+\setupresume[\v!email] [\c!style=\v!italic,\c!color=resume:5]
+\setupresume[\v!info] [\c!style=\v!italic,\c!color=resume:5]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/third/letter/style/default.nls b/Master/texmf-dist/tex/context/third/letter/style/default.nls
index a85c3547617..03bbb50ed78 100644
--- a/Master/texmf-dist/tex/context/third/letter/style/default.nls
+++ b/Master/texmf-dist/tex/context/third/letter/style/default.nls
@@ -1,6 +1,6 @@
%D \module
%D [ file=default,
-%D version=2008.12.23,
+%D version=2009.02.14,
%D title=\CONTEXT\ Letter Style,
%D subtitle=Blockstyle initalization,
%D author=Wolfgang Schuster,
@@ -77,7 +77,8 @@
[\v!reference]
[\v!option]
[\c!list=\lettervalue\c!list,
- \c!alternative=\lettervalue\c!alternative]
+ \c!alternative=\lettervalue\c!alternative,
+ \c!spaceafter=\plustwo\lineheight]
\setupletterstyle
[\v!backaddress]
diff --git a/Master/texmf-dist/tex/context/third/letter/style/default.nrs b/Master/texmf-dist/tex/context/third/letter/style/default.nrs
index 1715ef7a7c4..dbe9fe6e81b 100644
--- a/Master/texmf-dist/tex/context/third/letter/style/default.nrs
+++ b/Master/texmf-dist/tex/context/third/letter/style/default.nrs
@@ -1,6 +1,6 @@
%D \module
%D [ file=default,
-%D version=2009.02.09,
+%D version=2009.02.10,
%D title=\CONTEXT\ Resume Style,
%D subtitle=Default Style,
%D author=Wolfgang Schuster,
@@ -11,19 +11,6 @@
\unprotect
-\setupcolors
- [\c!state=\v!start]
-
-\setuphead
- [\v!section]
- [\c!number=\v!no,
- \c!incrementnumber=\v!no]
-
-\setuphead
- [\v!subsection]
- [\c!number=\v!no,
- \c!incrementnumber=\v!no]
-
\setupresumestyle
[\v!firstpage,\v!secondpage]
[\c!topspace=\dimexpr\paperheight/297*25\relax,
diff --git a/Master/texmf-dist/tex/context/third/letter/style/dinb.nls b/Master/texmf-dist/tex/context/third/letter/style/dinb.nls
index 463e896d8fc..f2defe37bd8 100644
--- a/Master/texmf-dist/tex/context/third/letter/style/dinb.nls
+++ b/Master/texmf-dist/tex/context/third/letter/style/dinb.nls
@@ -1,6 +1,6 @@
%D \module
%D [ file=dinb,
-%D version=2008.12.23,
+%D version=2009.02.14,
%D title=\CONTEXT\ Letter Style,
%D subtitle=DIN 676 B,
%D author=Wolfgang Schuster,
@@ -75,9 +75,14 @@
\setupletterstyle
[\v!head,\v!nexthead,\v!lefthead,\v!righthead]
+ [\v!layer]
[\c!hoffset=\backspace,
- \c!voffset=16.9mm,
- \c!width=\textwidth,
+ \c!voffset=16.9mm]
+
+\setupletterstyle
+ [\v!head,\v!nexthead,\v!lefthead,\v!righthead]
+ [\v!frame]
+ [\c!width=\textwidth,
\c!height=28.1mm]
\setupletterstyle
@@ -92,16 +97,26 @@
\setupletterstyle
[\v!address]
+ [\v!layer]
[\c!hoffset=\backspace,
- \c!voffset=50mm,
- \c!width=85mm,
+ \c!voffset=50mm]
+
+\setupletterstyle
+ [\v!address]
+ [\v!frame]
+ [\c!width=85mm,
\c!height=40mm]
\setupletterstyle
[\v!backaddress]
+ [\v!layer]
[\c!hoffset=\backspace,
- \c!height=5mm,
- \c!voffset=\dimexpr\letterstylevalue\v!address\c!voffset-\letterstylevalue\v!backaddress\c!height\relax,
+ \c!voffset=\dimexpr\letterstylevalue{\v!address\v!layer}\c!voffset-\letterstylevalue{\v!backaddress\v!frame}\c!height\relax]
+
+\setupletterstyle
+ [\v!backaddress]
+ [\v!frame]
+ [\c!height=5mm,
\c!width=85mm,
\c!style=\c!tf\c!xx]
diff --git a/Master/texmf-dist/tex/context/third/letter/style/knuth.nls b/Master/texmf-dist/tex/context/third/letter/style/knuth.nls
index f40f7cb0a49..c033cfd3d8e 100644
--- a/Master/texmf-dist/tex/context/third/letter/style/knuth.nls
+++ b/Master/texmf-dist/tex/context/third/letter/style/knuth.nls
@@ -1,6 +1,6 @@
%D \module
%D [ file=knuth,
-%D version=2008.11.29,
+%D version=2009.02.13,
%D title=\CONTEXT\ Letter Style,
%D subtitle=Letterformat Style,
%D author=Wolfgang Schuster,
@@ -34,10 +34,23 @@
[\v!option]
[\c!whitespace=\v!line]
+\newcount\knuthcount
+
+\setvalue{\v!letter:\v!nexthead:\v!knuth}%
+ {\global\advance\knuthcount\plusone
+ \hbox\!!to\hsize
+ {\midaligned{\currentdate}%
+ \llap{\labeltext\c!page\number\knuthcount}}}
+
+\setvalue{\v!letter:\v!nexthead:\v!knuth}%
+ {\global\advance\knuthcount\plusone
+ \hskip\knuthcount em\number\knuthcount\relax}
+
\setupletterstyle
- [\v!header]
- [\c!lefttext=,
- \c!middletext=\rlap{\currentdate},
- \c!righttext=Page~\pagenumber]
+ [\v!nexthead]
+ [\c!hoffset=\backspace,
+ \c!voffset=\topspace,
+ \c!state=\v!next,
+ \c!alternative=\v!knuth]
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/third/letter/style/modern.nrs b/Master/texmf-dist/tex/context/third/letter/style/modern.nrs
new file mode 100644
index 00000000000..cceb25deaa0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/third/letter/style/modern.nrs
@@ -0,0 +1,152 @@
+%D \module
+%D [ file=modern,
+%D version=2009.02.13,
+%D title=\CONTEXT\ Resume Style,
+%D subtitle=Modern Style,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\unprotect
+
+\useresumestyle[default]
+
+\setupcolors[\c!state=\v!start]
+
+\definemeasure[quotewidth] [.65\textwidth]
+\definemeasure[separatorcolumnwidth] [.025\textwidth]
+\definemeasure[hintscolumnwidth] [.15\textwidth]
+\definemeasure[maincolumnwidth] [\dimexpr\textwidth-\measure{separatorcolumnwidth}-\measure{hintscolumnwidth}\relax]
+\definemeasure[doubleitemmaincolumnwidth] [\dimexpr(\measure{maincolumnwidth}-\measure{hintscolumnwidth}-\measure{separatorcolumnwidth})/2\relax]
+\definemeasure[listitemsymbolwidth] [2em] % LaTeX assingnment is not possible in ConTeXt
+\definemeasure[listitemmaincolumnwidth] [\dimexpr\measure{maincolumnwidth}-\measure{listitemsymbolwidth}\relax]
+\definemeasure[listdoubleitemmaincolumnwidth][\dimexpr.475\measure{listitemmaincolumnwidth}\relax]
+
+\def\ModerncvSectionCommand#1#2%
+ {\hbox to \hsize
+ {\blackrule[\c!width=\measure{hintscolumnwidth},\c!height=1ex,\c!depth=-.5ex,\c!color=resume:6]%
+ \hskip\measure{separatorcolumnwidth}%
+ \vtop{\hsize\measure{maincolumnwidth}#2}}}
+
+\setuphead
+ [\v!section]
+ [\c!color=resume:7,
+ \c!incrementnumber=\v!no,
+ \c!before={\blank[2*\v!medium]},
+ \c!after={\blank[\v!medium]},
+ \c!command=\ModerncvSectionCommand]
+
+\def\ModerncvSubsectionCommand#1#2%
+ {\hbox to \hsize
+ {\hskip\dimexpr\measure{hintscolumnwidth}+\measure{separatorcolumnwidth}\relax
+ \vtop{\hsize\measure{maincolumnwidth}#2}}}
+
+\setuphead
+ [\v!subsection]
+ [\c!color=resume:8,
+ \c!incrementnumber=\v!no,
+ \c!before={\blank[2*\v!medium]},
+ \c!after={\blank[\v!medium]},
+ \c!command=\ModerncvSubsectionCommand]
+
+%D Moderncv compatible commands for the user data.
+
+\def\cvline
+ {\dosingleempty\docvline}
+
+\def\docvline[#1]#2#3%
+ {\starttable[s0|s0rp(\measure{hintscolumnwidth})|s0w(\measure{separatorcolumnwidth})|s0p(\measure{maincolumnwidth})|]
+ \NC\doifelsenothing{#2}{~}{#2}\NC\NC#3\NC\NR
+ \stoptable
+ \doifelsenothing{#1}{\blank[.25em]}{\blank[#1]}}
+
+\def\cvdoubleitem#1#2#3#4%
+ {\cvline{#1}
+ {\hbox\bgroup
+ \vtop{\hsize\measure{doubleitemmaincolumnwidth}#2}%
+ \hfill
+ \vtop{\hsize\measure{hintscolumnwidth}\raggedleft#3}%
+ \hskip\measure{separatorcolumnwidth}%
+ \vtop{\hsize\measure{doubleitemmaincolumnwidth}#4}%
+ \egroup}}
+
+\def\cvlistitem
+ {\dosingleempty\docvlistitem}
+
+\def\docvlistitem[#1]#2% default symbol is \textbullet and not \endash
+ {\cvline[none]{}{\doifelsenothing{#1}{--}{#1}~\vtop{\hsize\measure{listitemmaincolumnwidth}#2}}}
+
+\def\cvlistdoubleitem
+ {\dosingleempty\docvlistdoubleitem}
+
+\def\docvlistdoubleitem[#1]#2#3%
+ {\cvline[none]{}%
+ {\hbox\bgroup
+ \doifelsenothing{#1}{--}{#1}~\vtop{\hsize\measure{listdoubleitemmaincolumnwidth}#2}%
+ \hfill
+ \doifsomething{#3}{\doifelsenothing{#1}{--}{#1}~\vtop{\hsize\measure{listdoubleitemmaincolumnwidth}#3}}%
+ \egroup}}
+
+\def\cventry#1#2#3#4#5#6%
+ {\cvline{#1}
+ {{\bf#2}%
+ \doifsomething{#3}{, {\it#3}}%
+ \doifsomething{#4}{, {#4}}%
+ \doifsomething{#5}{, {#5}}%
+ .%
+ %\doifsomething{#6}{\crlf\vtop{\hsize\measure{maincolumnwidth}\tx#6}}}}% should also work without the box
+ \doifsomething{#6}{\crlf\tx#6}}}
+
+\def\cvlanguage#1#2#3%
+ {\cvline{#1}
+ {\hbox\bgroup
+ \vtop{\hsize\dimexpr.225\measure{maincolumnwidth}\relax\bf#2}%
+ \hfill
+ \vtop{\hsize\dimexpr.725\measure{maincolumnwidth}\relax\raggedleft\itx#3}%
+ \egroup}}
+
+\def\cvcomputer#1#2#3#4%
+ {\cvdoubleitem{#1}{\tx#2}{#3}{\tx#4}}
+
+%D Page optimation, change the topspace to produce a distance of 2.5em
+%D between the bottom of the header and the first line of text.
+
+\newdimen\resume!height!head
+
+\startsetups[\v!resume:\v!optimize]
+
+ \setbox\scratchbox\vbox{\getvalue{\v!resume:\v!head:\@@@@rsheadalternative}}
+
+ \ifdim\htdp\scratchbox>\zeropoint
+
+ \global\resume!height!head\htdp\scratchbox
+
+ \setupresumestyle
+ [\v!firstpage]
+ [\c!topspace=\dimexpr\resume!height!head+\resumestylevalue{\v!head\v!layer}\c!voffset+2.5em\relax]
+
+ \fi
+
+\stopsetups
+
+\setupresumestyle
+ [\v!firstpage,\v!secondpage]
+ [\c!backspace=20mm,
+ \c!width=168mm,
+ \c!header=0pt,
+ \c!footer=0pt,
+ \c!topspace=30mm,
+ \c!bottomspace=40mm,
+ \c!height=\v!fit]
+
+\setupresumestyle
+ [\v!head,\v!foot]
+ [\c!state=\v!start]
+
+\setupresumestyle
+ [\v!nexthead,\v!nextfoot]
+ [\c!state=\v!next]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/third/letter/style/pragma.nls b/Master/texmf-dist/tex/context/third/letter/style/pragma.nls
index 72ecdc87451..cef5a160a0f 100644
--- a/Master/texmf-dist/tex/context/third/letter/style/pragma.nls
+++ b/Master/texmf-dist/tex/context/third/letter/style/pragma.nls
@@ -1,6 +1,6 @@
%D \module
%D [ file=pragma,
-%D version=2008.02.07,
+%D version=2009.02.12,
%D title=\CONTEXT\ Letter Style,
%D subtitle=Pragma Style,
%D author=Wolfgang Schuster,
@@ -11,6 +11,8 @@
\unprotect
+\useletterstyle[default]
+
\setupcolors
[\c!state=\v!start]
@@ -66,8 +68,7 @@
\setupletterstyle
[\v!reference]
[\c!hoffset=\dimexpr\backspace-\linewidth,
- \c!voffset=\dimexpr\letterstylevalue{\v!address\v!layer}\c!voffset+
- \letterstylevalue{\v!address\v!layer}\v!height\relax,
+ \c!voffset=\dimexpr\letterstylevalue{\v!address\v!layer}\c!voffset+\letterstylevalue{\v!address\v!layer}\v!height\relax,
\c!width=\dimexpr\textwidth+2\linewidth,
\c!height=3\lineheight]
diff --git a/Master/texmf-dist/tex/context/third/letter/style/swiss.nls b/Master/texmf-dist/tex/context/third/letter/style/swiss.nls
new file mode 100644
index 00000000000..11889e7cdee
--- /dev/null
+++ b/Master/texmf-dist/tex/context/third/letter/style/swiss.nls
@@ -0,0 +1,40 @@
+%D \module
+%D [ file=swiss,
+%D version=2009.02.14,
+%D title=\CONTEXT\ Letter Style,
+%D subtitle=Swiss style,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\unprotect
+
+\useletterstyle[dinb]
+
+\setupletterstyle
+ [\v!head]
+ [\c!voffset=8mm]
+
+\setupletterstyle
+ [\v!address,\v!backaddress]
+ [\v!layer]
+ [\c!preset=\v!right\v!top,
+ \c!hoffset=8mm]
+
+\setupletterstyle
+ [\v!address,\v!backaddress]
+ [\v!frame]
+ [\c!width=90mm]
+
+\setupletterstyle
+ [\v!reference]
+ [\c!voffset=98.5mm,
+ \c!spaceafter=\lineheight]
+
+\setupletterstyle
+ [\v!option]
+ [\c!foldmark=\v!no]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/third/letter/style/swissleft.nls b/Master/texmf-dist/tex/context/third/letter/style/swissleft.nls
new file mode 100644
index 00000000000..881b42d73f5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/third/letter/style/swissleft.nls
@@ -0,0 +1,45 @@
+%D \module
+%D [ file=swissleft,
+%D version=2009.02.14,
+%D title=\CONTEXT\ Letter Style,
+%D subtitle=Swiss left style,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\unprotect
+
+\useletterstyle[dinb]
+
+\setupletterstyle
+ [\v!head]
+ [\c!voffset=8mm]
+
+\setupletterstyle
+ [\v!address]
+ [\v!layer]
+ [\c!hoffset=20mm,
+ \c!voffset=40.5mm]
+
+\setupletterstyle
+ [\v!backaddress]
+ [\v!layer]
+ [\c!hoffset=20mm]
+
+\setupletterstyle
+ [\v!address,\v!backaddress]
+ [\v!frame]
+ [\c!width=100mm]
+
+\setupletterstyle
+ [\v!reference]
+ [\c!voffset=89mm,
+ \c!spaceafter=\lineheight]
+
+\setupletterstyle
+ [\v!option]
+ [\c!foldmark=\v!no]
+
+\protect \endinput