summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/hletter
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-11-07 23:28:09 +0000
committerKarl Berry <karl@freefriends.org>2011-11-07 23:28:09 +0000
commitc144f631148fc20d9c33eda228ef0207e1af3713 (patch)
tree2a321b12ac1b2df2065d4b7cd339c37061933465 /Master/texmf-dist/tex/latex/hletter
parent8f90b562b952a727453b13d8316c582285e9a312 (diff)
new latex package hletter 4.1 (7nov11)
git-svn-id: svn://tug.org/texlive/trunk@24534 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/hletter')
-rw-r--r--Master/texmf-dist/tex/latex/hletter/hdefine.clo28
-rw-r--r--Master/texmf-dist/tex/latex/hletter/hhead.sty47
-rw-r--r--Master/texmf-dist/tex/latex/hletter/hlete.clo107
-rw-r--r--Master/texmf-dist/tex/latex/hletter/hletf.clo121
-rw-r--r--Master/texmf-dist/tex/latex/hletter/hletg.clo106
-rw-r--r--Master/texmf-dist/tex/latex/hletter/hletter.cls128
-rw-r--r--Master/texmf-dist/tex/latex/hletter/hsetup.sty233
-rw-r--r--Master/texmf-dist/tex/latex/hletter/mergeh.sty188
8 files changed, 958 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/hletter/hdefine.clo b/Master/texmf-dist/tex/latex/hletter/hdefine.clo
new file mode 100644
index 00000000000..84472775c07
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/hletter/hdefine.clo
@@ -0,0 +1,28 @@
+%%
+%% This is an example of `hdefine.clo' which is part of the hletter package
+%% it should be rewritten by the user
+%%
+%% Copyright (C) 2011 Brian Housley
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% Problems, bugs and comments to
+%% brian.housley@gcs.ch
+%%
+
+% Declare the various heading options,
+% english (e), german (g) and french (f) are already defined.
+% The definition file "hlet<lang>.clo" is input to define the fields
+%
+\logo{GCCS}
+
+\newoption{private}{1}
+\newoption{signit}{2}
+\newoption{bruni}{3}
+\newoption{test}{4}
diff --git a/Master/texmf-dist/tex/latex/hletter/hhead.sty b/Master/texmf-dist/tex/latex/hletter/hhead.sty
new file mode 100644
index 00000000000..8a53cb9a59a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/hletter/hhead.sty
@@ -0,0 +1,47 @@
+%%
+%% This is file `hhead.sty' which is part of the hletter package
+%%
+%% Copyright (C) 2011 Brian Housley
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% Problems, bugs and comments to
+%% brian.housley@gcs.ch
+%%
+
+% hhead style -- Released 02nd. July, 2009
+% produces a head on the current page using the \head{ln} command:
+%
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+
+\ProvidesPackage{hhead}[2009/07/02 v2.4 Brian heading class]
+
+\typeout{hhead style V2.4 <02/07/2009> hsy}
+
+\newif\ifhlet \hletfalse
+\newcommand*{\sign}[2][]{}
+\newcommand*{\address}[1]{}
+
+\newcount\hl@bar
+\def\barlength#1{\dimen255=#1 \hl@bar=\dimen255%
+ \global\divide\hl@bar by\unitlength
+ \global\divide\hl@bar by2}
+
+\input hsetup.sty
+
+\barlength{180mm}
+
+%
+\if@twocolumn
+\newcommand{\heading}[1][\@empty]{\twocolumn[\dohead{#1}{\@empty}{\@empty}{\@empty}\setcounter{page}{1}]}\else
+\newcommand{\heading}[1][\@empty]{\dohead{#1}{\@empty}{\@empty}{\@empty}\setcounter{page}{1}}\fi
+
+\endinput
+%
+% end of file HHEAD.STY
diff --git a/Master/texmf-dist/tex/latex/hletter/hlete.clo b/Master/texmf-dist/tex/latex/hletter/hlete.clo
new file mode 100644
index 00000000000..bdbfc29251e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/hletter/hlete.clo
@@ -0,0 +1,107 @@
+%%
+%% This is an example of `hlete.clo' which is part of the hletter package
+%% it should be rewritten by the user
+%%
+%% Copyright (C) 2011 Brian Housley
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% Problems, bugs and comments to
+%% brian.housley@gcs.ch
+%%
+
+% Letter options for English
+%
+% private -> 1
+% signit -> 2
+% bruni -> 3
+% test -> 4
+%
+\ifcase\hltype
+% case = 0 (no option - GCCS)
+ \addressA{Largitzenstrasse 15}
+ \addressB{CH--4056 Basle}
+ \addressC{Switzerland}
+ \extraA{Telephone: +41 (61) 345 78 90}
+ \extraB{Telefax: +41 (61) 345 78 92}
+ \extraC{eMail: info@gccs.com}
+ \bottomL{Bank: VCT Unterwil, CH--4220 Unterwil/BL}
+ \bottomR{Account: 322--956123.02R}
+\or
+% case = 1 (private)
+ \address{Hauptstrasse 15\\
+ \textbf{CH-4056 Basle}\\
+ Switzerland\\[1ex]
+ \small Tel: +41 61 322 6382\\
+ \small Fax: +41 61 383 8148\\
+ \small Mobile: +41 76 337 4207\\
+ \small eMail: brian.smith@epfl.ch}
+\or
+% case = 2 (signit)
+ \addressA{Largitzenstrasse 15}
+ \addressB{CH--4056 Basle}
+ \addressC{Switzerland}
+ \extraA{Telephone: +41 (61) 345 78 90}
+ \extraB{Telefax: +41 (61) 345 78 92}
+ \extraC{eMail: info@gccs.com}
+ \bottomL{Bank: VCT Unterwil, CH--4220 Unterwil/BL}
+ \bottomR{Account: 322--956123.02R}
+ \sign{signat}
+\or
+% case = 3 (bruni)
+ \addressA{The Church Tower}
+ \addressB{54, Main Street}
+ \addressC{Upper Throgmortondale}
+ \extraA{tel.: +44 187 3546}
+ \extraB{fax.: +44 187 3547}
+ \extraC{email: bruni@songs.flat.ac.uk}
+ \centreA{Songs written \& sung}
+ \centreB{Loudness no problem}
+ \centreC{Flats \& sharps used}
+ \centreD{\rule[.5ex]{16mm}{1pt}}
+ \centreE{Notes sometimes used}
+ \centreF{Spears may be hurled}
+ \centrepos{-10mm}
+ \bottomL{$\ast\ast\ast\ast\ast$}
+ \bottomC{Lullabies for children aged 7 to 70 our speciality}
+ \bottomR{$\ast\ast\ast\ast\ast$}
+ \sign[10mm]{signat}
+ \logo[50mm]{Bruennhilde}
+ \DeclareFixedFont{\newfa}{OT1}{phv}{m}{n}{12pt}
+ \DeclareFixedFont{\newfc}{OT1}{phv}{m}{sl}{10pt}
+\or
+% case = 4 (test --- run with draft)
+ \logo{test}
+ \addressA{\texttt{\char'134addressA}}
+ \addressB{\texttt{\char'134addressB}}
+ \addressC{\texttt{\char'134addressC}}
+ \extraA{\texttt{\char'134extraA}}
+ \extraB{\texttt{\char'134extraB}}
+ \extraC{\texttt{\char'134extraC}}
+ \centreA{\texttt{\char'134centreA}}
+ \centreB{\texttt{\char'134centreB}}
+ \centreC{\texttt{\char'134centreC}}
+ \centreD{\texttt{\char'134centreD}}
+ \centreE{\texttt{\char'134centreE}}
+ \centreF{\texttt{\char'134centreF}}
+ \centrepos{10mm}
+ \bottomL{\texttt{\char'134bottomL}}
+ \bottomC{\texttt{\char'134bottomC}}
+ \bottomR{\texttt{\char'134bottomR}}
+ \logo{test}
+ \sign{testsig}
+\else
+% all other cases (should never be used!)
+ \addressA{?}
+ \addressB{?}
+ \addressC{?}
+ \extraA{Telephone: ?}
+ \extraB{Telefax: ?}
+ \extraC{eMail: ?}
+\fi
diff --git a/Master/texmf-dist/tex/latex/hletter/hletf.clo b/Master/texmf-dist/tex/latex/hletter/hletf.clo
new file mode 100644
index 00000000000..5ad0920e7de
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/hletter/hletf.clo
@@ -0,0 +1,121 @@
+%%
+%% This is an example of `hletf.clo' which is part of the hletter package
+%% it should be rewritten by the user
+%%
+%% Copyright (C) 2011 Brian Housley
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% Problems, bugs and comments to
+%% brian.housley@gcs.ch
+%%
+%%
+%% Copyright (C) 2011 Brian Housley
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% Problems, bugs and comments to
+%% brian.housley@gcs.ch
+%%
+
+% Letter options for French
+%
+% private -> 1
+% signit -> 2
+% bruni -> 3
+% test -> 4
+%
+\ifcase\hltype
+% case = 0 (no option - private)
+ \addressA{Largitzenstrasse 15}
+ \addressB{CH--4056 B\^ale}
+ \addressC{La Suisse}
+ \extraA{Tel\'ephone: +41 (61) 345 78 90}
+ \extraB{Tel\'efax: +41 (61) 345 78 92}
+ \extraC{eMail: info@gccs.com}
+ \bottomL{Bank: VCT Unterwil, CH--4220 Unterwil/BL}
+ \bottomR{Account: 322--956123.02R}
+\or
+% case = 1 (private)
+ \address{Rue principal 15\\
+ \textbf{CH-4056 B\^ale}\\
+ La Suisse\\[1ex]
+ \small Tel: +41 61 322 6382\\
+ \small Fax: +41 61 383 8148\\
+ \small Mobile: +41 76 337 4207\\
+ \small eMail: brian.smith@epfl.ch}
+\or
+% case = 2 (signit)
+ \addressA{Largitzenstrasse 15}
+ \addressB{CH--4056 B\^ale}
+ \addressC{La Suisse}
+ \extraA{Tel\'ephone: +41 (61) 345 78 90}
+ \extraB{Tel\'efax: +41 (61) 345 78 92}
+ \extraC{eMail: info@gccs.com}
+ \bottomL{Bank: VCT Unterwil, CH--4220 Unterwil/BL}
+ \bottomR{Account: 322--956123.02R}
+ \sign{signat}
+\or
+% case = 3 (bruni)
+ \addressA{Le Beffroi}
+ \addressB{54, Main Street}
+ \addressC{Upper Throgmortondale}
+ \extraA{Tel\'ephone: +44 187 3546}
+ \extraB{Tel\'efax: +44 187 3547}
+ \extraC{email: bruni@songs.flat.ac.uk}
+ \centreA{Chanteuse forte}
+ \centreB{Volume sans problem}
+ \centreC{Flats \& sharps utilis\'{e}}
+ \centreD{\rule[.5ex]{16mm}{1pt}}
+ \centreE{Notes parfois utilis\'{e}}
+ \centreF{\'{E}pieus permis}
+ \centrepos{-10mm}
+ \bottomL{$\ast\ast\ast\ast\ast\ast$}
+ \bottomC{\emph{Lullabies for small and big children our speciality}}
+ \bottomR{$\ast\ast\ast\ast\ast\ast$}
+ \sign[10mm]{signat}
+ \logo[50mm]{Bruennhilde}
+ \DeclareFixedFont{\newfa}{OT1}{phv}{m}{n}{12pt}
+ \DeclareFixedFont{\newfc}{OT1}{phv}{m}{sl}{10pt}
+\or
+% case = 4 (test --- run with draft)
+ \logo{test}
+ \addressA{\texttt{\char'134addressA}}
+ \addressB{\texttt{\char'134addressB}}
+ \addressC{\texttt{\char'134addressC}}
+ \extraA{\texttt{\char'134extraA}}
+ \extraB{\texttt{\char'134extraB}}
+ \extraC{\texttt{\char'134extraC}}
+ \centreA{\texttt{\char'134centreA}}
+ \centreB{\texttt{\char'134centreB}}
+ \centreC{\texttt{\char'134centreC}}
+ \centreD{\texttt{\char'134centreD}}
+ \centreE{\texttt{\char'134centreE}}
+ \centreF{\texttt{\char'134centreF}}
+ \centrepos{10mm}
+ \bottomL{\texttt{\char'134bottomL}}
+ \bottomC{\texttt{\char'134bottomC}}
+ \bottomR{\texttt{\char'134bottomR}}
+ \logo{test}
+ \sign{testsig}
+\else
+% all other cases (should never be used!)
+ \addressA{?}
+ \addressB{?}
+ \addressC{?}
+ \extraA{Telephone: ?}
+ \extraB{Telefax: ?}
+ \extraC{eMail: ?}
+\fi
diff --git a/Master/texmf-dist/tex/latex/hletter/hletg.clo b/Master/texmf-dist/tex/latex/hletter/hletg.clo
new file mode 100644
index 00000000000..b836cd09c03
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/hletter/hletg.clo
@@ -0,0 +1,106 @@
+%%
+%% This is an example of `hletg.clo' which is part of the hletter package
+%% it should be rewritten by the user
+%%
+%% Copyright (C) 2011 Brian Housley
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% Problems, bugs and comments to
+%% brian.housley@gcs.ch
+%%
+
+% Letter options for German
+%
+% private -> 1
+% signit -> 2
+% bruni -> 3
+% test -> 4
+%
+\ifcase\hltype
+% case = 0 (no option - GCCS)
+ \addressA{Largitzenstrasse 15}
+ \addressB{CH--4056 Basel}
+ \addressC{Die Schweiz}
+ \extraA{Telefon: +41 (61) 345 78 90}
+ \extraB{Telefax: +41 (61) 345 78 92}
+ \extraC{eMail: info@gccs.com}
+ \bottomL{Bank: VCT Unterwil, CH--4220 Unterwil/BL}
+ \bottomR{Konto: 322--956123.02R}
+\or
+% case = 1 (private)
+ \address{Hauptstrasse 15\\
+ \textbf{CH-4056 Basel}\\
+ Die Schweiz\\[1ex]
+ \small Tel: +41 61 322 6382\\
+ \small Fax: +41 61 383 8148\\
+ \small Mobile: +41 76 337 4207\\
+ \small eMail: brian.smith@epfl.ch}
+\or
+% case = 2 (signit)
+ \addressA{Largitzenstrasse 15}
+ \addressB{CH--4056 Basel}
+ \addressC{Die Schweiz}
+ \extraA{Telefon: +41 (61) 345 78 90}
+ \extraB{Telefax: +41\ (61) 345 78 92}
+ \extraC{eMail: info@gccs.com}
+ \bottomL{Bank: VCT Unterwil, CH--4220 Unterwil/BL}
+ \bottomR{Konto: 322--956123.02R}
+ \sign{signat}
+\or
+% case = 3 (bruni)
+ \addressA{Der Glockenturm}
+ \addressB{Hauptstrasse 54}
+ \addressC{Upper Throgmortondale}
+ \extraA{Telefon: +44 187 3546}
+ \extraB{Telefax: +44 187 3547}
+ \extraC{email: bruni@songs.flat.ac.uk}
+ \centreA{Songs written \& sung}
+ \centreB{Loudness no problem}
+ \centreC{Flats \& sharps used}
+ \centreD{\rule[.5ex]{16mm}{1pt}}
+ \centreE{Notes sometimes used}
+ \centreF{Spears may be hurled}
+ \centrepos{-10mm}
+ \bottomL{$\ast\ast\ast\ast\ast$}
+ \bottomC{Lullabies for children aged 7 to 70 our speciality}
+ \bottomR{$\ast\ast\ast\ast\ast$}
+ \sign[10mm]{signat}
+ \logo[50mm]{Bruennhilde}
+ \DeclareFixedFont{\newfa}{OT1}{phv}{m}{n}{12pt}
+ \DeclareFixedFont{\newfc}{OT1}{phv}{m}{sl}{10pt}\or
+% case = 4 (test --- run with draft)
+ \logo{GlogoCol}
+ \addressA{\texttt{\char'134addressA}}
+ \addressB{\texttt{\char'134addressB}}
+ \addressC{\texttt{\char'134addressC}}
+ \extraA{\texttt{\char'134extraA}}
+ \extraB{\texttt{\char'134extraB}}
+ \extraC{\texttt{\char'134extraC}}
+ \centreA{\texttt{\char'134centreA}}
+ \centreB{\texttt{\char'134centreB}}
+ \centreC{\texttt{\char'134centreC}}
+ \centreD{\texttt{\char'134centreD}}
+ \centreE{\texttt{\char'134centreE}}
+ \centreF{\texttt{\char'134centreF}}
+ \centrepos{10mm}
+ \bottomL{\texttt{\char'134bottomL}}
+ \bottomC{\texttt{\char'134bottomC}}
+ \bottomR{\texttt{\char'134bottomR}}
+ \logo{test}
+ \sign{testsig}
+\else
+% all other cases (should never be used)
+ \addressA{?}
+ \addressB{?}
+ \addressC{?}
+ \extraA{Telephone: ?}
+ \extraB{Telefax: ?}
+ \extraC{eMail: ?}
+\fi
diff --git a/Master/texmf-dist/tex/latex/hletter/hletter.cls b/Master/texmf-dist/tex/latex/hletter/hletter.cls
new file mode 100644
index 00000000000..f4b42a16e1f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/hletter/hletter.cls
@@ -0,0 +1,128 @@
+%%
+%% This is file `hletter.cls' which is part of the hletter package
+%%
+%% Copyright (C) 2011 Brian Housley
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% Problems, bugs and comments to
+%% brian.housley@gcs.ch
+%%
+
+% hletter document class
+%
+% Original: Copyright (C) 1991 by Leslie Lamport
+%
+% Modified version for Brian Housley -- V4.1 (2nd. July, 2011)/B. Housley
+% A "from" address makes a private letter but
+% if there is no "from" address the layout is:
+% --------------------------------------------------------------------
+% | \centreA \addressA |
+% | \centreB \addressB |
+% | <the logo> \centreC \addressC |
+% | \centreD \extraA |
+% | \centreE \extraB |
+% | \centreF \extraC |
+% | |
+% | |
+% | <to-address> |
+% | |
+% | date |
+% | opening |
+% | |
+% ................
+% | |
+% | \bottomL \bottomC \bottomR |
+% --------------------------------------------------------------------
+% .
+% further options:
+% \reference{<text>} bold text ontop for german and below for English
+% \cc{<text>\\...} copies to
+% \encl{<text>\\...} enclosure(s)
+% \encls enclosures as mentioned
+% \closingtwo{<text>} same as \closing but permits two names in \signature
+% separated with &(s)
+%
+\NeedsTeXFormat{LaTeX2e}[1996/06/01]
+\ProvidesClass{hletter}[2009/07/02 v4.0 Housley's letter class]
+
+\typeout{H-Letter class V4.0 <02/07/2009> hsy}
+
+\newif\ifhlet \hlettrue
+\newdimen\signatureheight
+\newcommand*{\sign}[2][15mm]{\global\signatureheight=#1 \gdef\signatureimage{#2}} \sign{}
+%
+\input hsetup.sty % input the definition of \heading
+%
+\setlength{\headsep}{25pt}
+\setlength{\topmargin}{12pt}
+\setlength{\parskip}{0pt plus 1pt}
+\addtolength{\textwidth}{30pt}
+\addtolength{\oddsidemargin}{-15pt}
+\addtolength{\evensidemargin}{-15pt}
+\raggedbottom
+
+\renewenvironment{letter}[1]
+ {\newpage
+ \if@twoside \ifodd\c@page
+ \else\thispagestyle{empty}\null\newpage\fi
+ \fi
+ \c@page \@ne
+ \c@footnote \z@
+ \interlinepenalty=200 % smaller than the TeXbook value
+ \@processto{#1}}
+ {\stopletter\@@par\pagebreak\@@par
+ \if@filesw
+ \begingroup
+ \let\\=\relax
+ \let\protect\@unexpandable@protect
+ \immediate\write\@auxout{%
+ \string\@mlabel{\returnaddress}{\toname\\\toaddress}}%
+ \endgroup
+ \fi}
+
+\renewcommand*{\opening}[2][\@empty]{%
+% parameters: 1- top right text; 2- introduction; 3- from address; 4- to address.
+ \dohead{#1}{#2}{\fromaddress}{\toname\\\toaddress}
+%
+ \ifnum\hlangcnt=0\noindent #2\ifx\reftext\@empty\par\smallskip\else
+ \par\smallskip\noindent\parbox{\textwidth}{\centering\textbf{\reftext}}\par\smallskip\fi
+ \else
+ \ifx\reftext\@empty\else
+ \noindent\parbox{\textwidth}{\textbf{\reftext}}\par\medskip \fi
+ \noindent #2\par\medskip\fi}
+%
+
+\renewcommand*{\closing}[1]{\par\medskip%
+ \ifx\undefined\sigbx \newbox\sigbx
+ \ifx\signatureimage\@empty
+ \global\setbox\sigbx\hbox{\rule{0pt}{15mm}}\else
+ \global\setbox\sigbx\hbox{\mbox{\rule[-7.5mm]{0pt}{15mm}\raisebox{-.5\height}%
+ {\includegraphics[height=\signatureheight]{\signatureimage}}}}\fi\fi
+% \stopbreaks
+ \noindent
+ \hspace*{\fill}\begin{tabular}{c}
+ #1\\
+ \copy\sigbx \\
+ \fromsig\\
+ \end{tabular}\hspace{.1\textwidth}%
+ \par\thispagestyle{empty}}
+
+\newcommand*{\closingtwo}[1]{\par\medskip%
+ \noindent
+ \hspace*{\fill}\begin{tabular}{@{}c@{\hspace{8\tabcolsep}}c@{}}
+ \multicolumn{2}{c}{#1}\\[15mm]
+ \fromsig\\
+ \end{tabular}\hspace{.1\textwidth}%
+ \par\thispagestyle{empty}}
+
+\newcommand{\reference}[1]{\def\reftext{#1}} \reference{}
+%\endinput
+%
+% end of file IDLETTER.CLS
diff --git a/Master/texmf-dist/tex/latex/hletter/hsetup.sty b/Master/texmf-dist/tex/latex/hletter/hsetup.sty
new file mode 100644
index 00000000000..a30401a3ac3
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/hletter/hsetup.sty
@@ -0,0 +1,233 @@
+%%
+%% This is file `hsetup.sty' which is part of the hletter package
+%%
+%% Copyright (C) 2011 Brian Housley
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% Problems, bugs and comments to
+%% brian.housley@gcs.ch
+%%
+
+% hsetup.sty
+% ==========
+% File to setup the headings for the hletter.cls and hhead.sty
+% copyright - B. Housley, 2. July, 2011
+% You may make changes to this file if you rename it!
+%
+%
+\RequirePackage{ifthen}
+\RequirePackage{graphicx}
+%\typeout{** hsetup.sty **}
+
+\newcount\hltype
+\newlength{\logoheight}
+\newcommand*{\logo}[2][24mm]{\setlength{\logoheight}{#1}\gdef\logoname{#2}}
+\newcommand*{\newoption}[2]{\DeclareOption{#1}{\global\hltype=#2}%
+ \typeout{*** Option #2 has name #1}}
+\newcommand*{\centrepos}[1]{\def\centreoffset{#1}} \centrepos{10mm}
+%
+% border parameters:
+\newcommand*{\border}[3][40mm]{\logo[#2]{#3}%
+ \tmpdima=#1 \global\hl@logopos=\tmpdima
+ \global\divide \hl@logopos by\unitlength}
+%
+\newif\ifdraft \draftfalse
+\def\hl@lang{e}
+\newcount\hlangcnt
+\newcount\hl@tmp
+\newcount\hl@down
+\newcount\hl@up
+\newcount\hl@logopos \global\hl@logopos=30
+\newcount\hl@barpos \global\hl@barpos=3
+\newdimen\tmpdima
+\newdimen\tmpdimb
+\newdimen\hl@myln
+%
+\global\def\pindt{0pt}
+%
+\input hdefine.clo % read options for types of letter
+%
+\global\def\pindt{1.5em}
+\DeclareOption{english}{\global\hlangcnt=0 \def\hl@lang{e}}
+\DeclareOption{german}{\global\hlangcnt=1 \def\hl@lang{g}}
+\DeclareOption{french}{\global\hlangcnt=2 \def\hl@lang{f}}
+\DeclareOption{draft}{\drafttrue}
+\ifhlet \DeclareOption*{\PassOptionsToClass{\CurrentOption}{letter}}\fi
+\ProcessOptions\relax
+\ifhlet \LoadClass[a4paper]{letter}
+\ifdraft \setlength\overfullrule{5pt}\fi\fi
+%
+\ifnum\hlangcnt=0 \RequirePackage[french,german,british]{babel}%
+ \AtBeginDocument{\selectlanguage{british}}\fi
+\ifnum\hlangcnt=1 \RequirePackage[english,french,german]{babel}\fi
+\ifnum\hlangcnt=2 \RequirePackage[german,english,french]{babel}%
+ \addto\extrasfrench{\renewcommand{\enclname}{en annexe}%
+ \renewcommand{\ccname}{copie \`a}}\fi
+%
+\setlength{\parindent}{\pindt}
+%
+\setlength{\unitlength}{1mm}
+%
+% add some strange commands to use the to-address in a tabular even
+% if it inside {..}'s (as in merge letters)
+\def\dotoadd#1{\setbox0\hbox{\expandafter\cmda#1} \ifnum\myc=1\settoadd{#1}\else
+ \expandafter\settoadd#1\relax\fi}
+\def\settoadd#1{\global\setbox\addrbox\hbox{\begin{tabular}{@{}l@{}}#1\end{tabular}}}
+
+\newcount\myc
+\def\cmda#1{\global\myc=0 \cmdb#1\end}
+\def\cmdb#1{\ifx#1\end \let\next=\relax
+ \else \global\advance\myc by1 \let\next=\cmdb\fi \next}
+%
+% declare some fonts for the header
+%
+ \ifx\newfa\@undefined
+ \DeclareFixedFont{\newfa}{OT1}{phv}{bx}{n}{10pt}
+ \DeclareFixedFont{\newfb}{OT1}{phv}{bx}{n}{8pt}
+ \DeclareFixedFont{\newfc}{OT1}{phv}{m}{n}{8pt} \fi
+%
+ \def\addressA#1{\def\hl@adda{#1}} \addressA{}
+ \def\addressB#1{\def\hl@addb{#1}} \addressB{}
+ \def\addressC#1{\def\hl@addc{#1}} \addressC{}
+ \def\extraA#1{\def\hl@extraa{#1}} \extraA{}
+ \def\extraB#1{\def\hl@extrab{#1}} \extraB{}
+ \def\extraC#1{\def\hl@extrac{#1}} \extraC{}
+ \def\centreA#1{\def\hl@centa{#1}} \centreA{}
+ \def\centreB#1{\def\hl@centb{#1}} \centreB{}
+ \def\centreC#1{\def\hl@centc{#1}} \centreC{}
+ \def\centreD#1{\def\hl@centd{#1}} \centreD{}
+ \def\centreE#1{\def\hl@cente{#1}} \centreE{}
+ \def\centreF#1{\def\hl@centf{#1}} \centreF{}
+ \def\bottomL#1{\def\hl@bottl{#1}} \bottomL{}
+ \def\bottomC#1{\def\hl@bottc{#1}} \bottomC{}
+ \def\bottomR#1{\def\hl@bottr{#1}} \bottomR{}
+ \InputIfFileExists{hlet\hl@lang.clo}{}{%
+ \typeout{**}\typeout{** clo file missing: substituting hlete.clo **}\typeout{**}%
+ \input hlete.clo}
+%
+\newbox\addrbox
+%%%%%%%%%%%%%%%%%%%%%%% make the heading
+\newcommand{\dohead}[4]{\cleardoublepage\thispagestyle{empty}
+% parameters: 1- top right text; 2- introduction; 3- from address; 4- to address.
+%
+ \let\oldbls=\baselinestretch % for the heading do not stretch the baseline
+ \renewcommand{\baselinestretch}{1.0}\small\normalsize
+ \global\hl@myln=79.6mm \global\advance\hl@myln by -\oddsidemargin\relax
+%
+%% \ifx#2\@empty \global\hl@down=3934474\else % used only in idhead.sty
+%% \global\hl@down=12232300\fi %
+ \ifx#2\@empty \global\hl@down=3841240\else % 46mm - 1" used only in hhead.sty
+ \global\hl@down=12232300\fi %
+ \global\advance\hl@down by-\topmargin
+ \global\advance\hl@down by-\headheight
+ \global\advance\hl@down by-\headsep
+% \global\advance\hl@down by-\topskip % should I use this?
+ \hl@tmp=\unitlength \divide\hl@tmp by2
+ \global\advance\hl@down by \hl@tmp
+ \global\divide\hl@down by \unitlength
+%
+ \ifx#2\@empty \ifnum\hl@logopos=30\dimen255=\logoheight \advance\dimen255
+ by-24mm \count255=\dimen255 \divide\count255 by\unitlength
+ \ifnum\count255>0 \global\advance\hl@barpos by-\count255\else\count255=0\fi
+ \ifnum\hl@down<0 \global\hl@up=\hl@down \global\advance\hl@up by-\count255
+ \global\hl@down=-\hl@down \global\advance\hl@down by \count255\else
+ \global\hl@up=-\count255 \global\advance\hl@down by\count255\fi\fi
+ \else
+ \ifnum\hl@down<0 \PackageWarningNoLine{hsetup}{** top-margin
+ seems to be too large **}\global\hl@down=0\fi
+ \fi
+%
+ \noindent\hspace*{\hl@myln}%
+ \ifx#2\@empty
+ \begin{picture}(0,\hl@down)(0,\hl@up)\else
+ \begin{picture}(0,\hl@down)(0,-41)\fi
+%
+% un-comment next few lines to make a dash box around the picture contents
+%
+% \ifx#2\@empty \hl@tmp=\hl@down \advance\hl@tmp by 44
+% \put(-90,\hl@up){\dashbox{1}(180,\hl@tmp){}}\else
+% \hl@tmp=\hl@down \advance\hl@tmp by 41
+% \put(-90,-41){\dashbox{1}(180,\hl@tmp){}}\fi
+%%
+% \ifx\@empty#1\else\put(95,40){\makebox(0,0)[tr]{\texttt{#1}}}\fi
+%%
+%\put(0,0){\circle*{1}} % when testing to see where the origin is
+%\showthe\hl@down \showthe\hl@up % and what we calculated
+%
+ \ifx#3\@empty
+%
+% header with logo
+%
+ \ifx\logoname\@undefined\typeout{** no logo defined **}\else
+ \ifx\sealbx\@undefined \newbox{\sealbx}
+ \global\setbox\sealbx\hbox{\includegraphics[height=\logoheight]{\logoname}}\fi
+%
+ \put(-90,\hl@logopos){\makebox(0,0)[tl]{\usebox{\sealbx}}}\fi
+ \put(90,30){\makebox(0,0)[tr]{%
+ \renewcommand{\arraystretch}{0.7}\begin{tabular}{@{}r@{}}
+ \ifx\@empty\hl@adda\else \newfa \hl@adda \\ \fi
+ \ifx\@empty\hl@addb\else \newfb \hl@addb \\ \fi
+ \ifx\@empty\hl@addc\else \newfb \hl@addc \\ \fi
+ \rule{0pt}{.8em}%
+ \ifx\@empty\hl@extraa\else \newfc \hl@extraa \\ \fi
+ \ifx\@empty\hl@extrab\else \newfc \hl@extrab \\ \fi
+ \ifx\@empty\hl@extrac\else \newfc \hl@extrac \\ \fi
+ \end{tabular}}}
+ \tmpdima=\centreoffset
+ \ifnum\tmpdima<0 \advance\tmpdima by-.5mm\else\advance\tmpdima by.5mm\fi
+ \hl@tmp=\tmpdima
+ \divide\hl@tmp by\unitlength
+ \put(\hl@tmp,30){\makebox(0,0)[tl]{%
+ \renewcommand{\arraystretch}{0.7}\begin{tabular}{@{}l@{}}
+ \ifx\@empty\hl@centa\else \newfa \hl@centa \\ \fi
+ \ifx\@empty\hl@centb\else \newfb \hl@centb \\ \fi
+ \ifx\@empty\hl@centc\else \newfb \hl@centc \\ \fi
+ \rule{0pt}{.8em}%
+ \ifx\@empty\hl@centd\else \newfc \hl@centd \\ \fi
+ \ifx\@empty\hl@cente\else \newfc \hl@cente \\ \fi
+ \ifx\@empty\hl@centf\else \newfc \hl@centf \\ \fi
+ \end{tabular}}}
+ \ifx\@empty\hl@bottl\else \put(-90,-244){\makebox(0,0)[bl]{\newfc\hl@bottl}}\fi
+ \ifx\@empty\hl@bottc\else \put(0,-244){\makebox(0,0)[b]{\newfc \hl@bottc}}\fi
+ \ifx\@empty\hl@bottr\else \put(90,-244){\makebox(0,0)[br]{\newfc\hl@bottr}}\fi
+\else
+% private letter
+ \hl@tmp=\hl@myln
+ \divide\hl@tmp by \unitlength%
+ \put(-\hl@tmp,20){\makebox(0,0)[tl]{\begin{tabular}{@{}l@{}}#3\end{tabular}}}\fi
+% now do a bar if a header only otherwise the to-address
+ \ifx#2\@empty \thicklines
+ \ifnum\hl@bar=0\else\put(0,\hl@barpos){\line(1,0){\hl@bar}}
+ \put(0,\hl@barpos){\line(-1,0){\hl@bar}}\global\hl@barpos=3\fi
+ \end{picture}\par
+ \else
+ \dotoadd{#4}
+ \settowidth{\tmpdima}{\copy\addrbox}
+ \ifthenelse{\lengthtest{\tmpdima>94mm}}{%
+ \ClassWarningNoLine{hletter}{** Address too wide for window **}}%
+%
+ {\settoheight{\tmpdima}{\copy\addrbox}
+ \settodepth{\tmpdimb}{\copy\addrbox}
+ \addtolength{\tmpdima}{\tmpdimb}
+%
+ \ifthenelse{\lengthtest{\tmpdima>44mm}}{%
+ \ClassWarningNoLine{hletter}{** Address too high for window **}}{}%
+ }
+ \ifdraft\put(7,-41){\framebox(94,44){}}\fi
+ \put(53.5,-20.5){\makebox(0,0){\copy\addrbox}}
+ \linethickness{.2pt}
+ \put(-104.5,-105){\line(1,0){8}}
+ \put(-104.5,-63.5){\line(1,0){5}}
+ \end{picture}\par
+ \smallskip
+ \hfill\@date\par
+ \fi
+\bigskip \renewcommand{\baselinestretch}{\oldbls}\small\normalsize
+} % end of dohead
diff --git a/Master/texmf-dist/tex/latex/hletter/mergeh.sty b/Master/texmf-dist/tex/latex/hletter/mergeh.sty
new file mode 100644
index 00000000000..91de1cd949b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/hletter/mergeh.sty
@@ -0,0 +1,188 @@
+%% [merge.sty]
+%%
+%% MERGE -- A Form Letter Option to the LaTeX Letter Style
+%%
+%% by
+%%
+%% Graeme McKinstry
+%% Computing Services Centre
+%% University of Otago
+%% P O Box 56
+%% Dunedin, New Zealand
+%%
+%% graeme%otago.ac.nz@relay.cs.net
+%%
+%% This version has been slightly modified to ignore lines with a % in
+%% the first column of the address data --- but after the first entry.
+%% I renamed it 'mergeh.sty' Brian Housley, 27/07/09
+%%
+%% A version of these macros appeared in TUGboat 8 #1, April 1987.
+%%
+%% Merge is a substyle [option] under the Latex style 'Letter' which
+%% merges a standard letter with a separate file containing addresses
+%% and opening lines. Merge will read {address}{opening} pairs from a
+%% specified file and merge them with a form letter by producing a separate
+%% letter environment (containing unique "\begin{letter}{address}" and
+%% "\opening{opening}" commands) for each pair.
+%%
+%% Detailed instructions for preparation of the form letter and the
+%% separate address file appear below, after the macros.
+%%
+%%
+%% 27 July 1988
+%% Special Thanks go to B. Beeton (BNB@SEED.AMS.COM) for
+%% -- supplying the raw TeX and documentation from the TUGBoat article;
+%% -- adding some documentation;
+%% -- and for placing this file in the <tex.tugboat> archives at score.
+%%
+%% 28 July 1988
+%% C. Roberson (csrobe@icase.[arpa|edu], csrobe@[wm]cs.wm.edu)
+%% -- some additional documentation (mostly cleanup for .sty file);
+%% -- changed ID message to a form more similar to LaTeX's;
+%% -- changed "Could not open file" to "Could not open address file"
+%% so user would better understand for which filename TeX
+%% was prompting with the string "\@mergefile=";
+%% -- tested merge.sty; It works! Thanks, Graeme!
+%% -- submitted file to /public/latex-style archives @ cs.rochester.edu.
+%%
+%% 6 September 1988
+%% G. McKinstry
+%% -- enhanced the macros to handle running headlines properly;
+%% -- fixed some other problems from the original version not addressed
+%% fully by C. Roberson;
+%% -- submitted new file to the latex-style archives.
+%%
+%% 11 August 2011
+%% B. Housley
+%% -- a small change to ignore line beginiing with a % AFTER the first address
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+% csr - changed next line to conform more to LaTeX greeting.
+\typeout{Letter Sub-Style 'Merge'. Release 6 October 1986 by Graeme McKinstry}
+
+%% The basic algorithm is:
+%% 1. Open the address file.
+%% 2. Read the addresses file getting the address and opening line.
+%% 3. Process the contents of the MERGE environment and store it
+%% in a box (\@store). This is the standard part of the letter.
+%% 4. Produce the start of the letter (your address (including date),
+%% their address, and the opening line).
+%% 5. Make a copy of the standard letter (\@store) and unbox this copy.
+%% 6. Repeat steps 2, 4, and 5 (not 3) until there are no more addresses.
+
+
+\newbox\@store
+\long\def\@contents{\global\setbox\@store=\vbox\bgroup} % store the contents
+\long\def\@endcontents{\egroup} % of the letter
+
+\def\@sendaddress{test}
+\def\@openingtext{test}
+\newif\if@firsttime % For storing the standard letter
+\@firsttimetrue % the first time through.
+
+\newread\@addrfile % allocate an input stream
+
+\def\@openfile{\openin\@addrfile=\@mergefile % open the address file
+\ifeof\@addrfile % i.e., didn't open successfully
+ \loop
+ \immediate\write16{Could not open address file \@mergefile}
+ \closein\@addrfile % close the input stream
+ \read16 to \@mergefile % get another file name
+ \openin\@addrfile=\@mergefile % open up input stream
+ \ifeof\@addrfile
+ \repeat % repeat until successfully opened
+\fi}
+
+% The merge environment (used as the \begin{merge}. The argument (#1) is
+% the name of the file containing the addresses (a default of .tex extension)
+% This file is opened (\@openfile), read (\@readfile), and then the box
+% containing the contents of the standard letter is started (\@contents).
+
+\def\merge#1{\def\@mergefile{#1 }\@openfile
+ \@readfile
+ \@contents}
+
+% Read address file getting the address and opening line. If this is the
+% first through then there is no reason to call \endmerge as this will
+% be called later on (when \end{merge} is used).
+
+\def\@getopeningline{\global\read\@addrfile
+ to\@openingtext} % get the opening line
+\def\perc{\%}
+\def\@readfile{\global\read\@addrfile to\@sendaddress % get the address
+ \ifeof\@addrfile
+ \let\next=\relax
+ \else
+ \ifcat\perc\@sendaddress \else
+ \@getopeningline
+ \if@firsttime
+ \let\next=\relax
+ \else
+ \let\next=\endmerge
+ \fi\fi
+ \fi\next}
+
+\newbox\@letterbox % For copy of \@store (the box containing the standard
+ % letter.
+\def\endmerge{\if@firsttime\@endcontents\global\@firsttimefalse\fi %
+ % end contents if it is the first time
+ \bgroup\let\oldletter=\letter
+ \def\letter##1\@relax{\oldletter{##1}} % redefines letter
+ \expandafter\letter\@sendaddress\@relax % need to expand \@sendaddress
+% \opening{\@openingtext\vskip2\parskip} % I do the spacing myself
+ \opening{\@openingtext}
+ \setbox\@letterbox=\copy\@store % copy the contents of the letter
+ \unvbox\@letterbox
+ \endletter\egroup
+ \ifeof\@addrfile
+ \message{End of file}
+ \let\next=\relax
+ \else
+ \let\next=\@readfile % loop round yet again
+ \fi\next}
+
+\endinput
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% A letter, say LETTER.TEX, would be set up as follows:
+
+%% \documentstyle[merge]{letter}
+%%
+%% \address{...} % your address
+%% \signature{...} % your signature
+%%
+%% \begin{document}
+%% \begin{merge}{myaddresses} % MYADDRESSES.TEX contains addresses+openings
+%%
+%% With regard to .... % letter starts
+%%
+%% \closing{...} % closing
+%% \ps{...} % \ps, \encl, \cc, etc.
+%%
+%% \end{merge}
+%% \end{document}
+
+%% The address file, MYADDRESSES.TEX, would contain:
+
+%% {Computing Services Centre, \\ % first address
+%% University of Otago, \\
+%% Dunedin, \\
+%% New Zealand}
+%% {Dear Graeme,} % \opening for first address
+%% {Charles S. Roberson\\ % next address
+%% Dept. of Computer Science\\
+%% College of William and Mary\\
+%% Williamsburg, VA 23185}
+%% {Dear Chip,} % next \opening
+%% .... % etc.
+
+%% NOTES:
+%% Braces are matched, except that if the input is only one line then it
+%% is not necessary to contain it within braces.
+%% It is important to leave NO BLANK LINES at the end of the address file.
+%% Be sure to supply the "\\" for breaking the addresses. -csr
+
+%% [merge.sty]