Bonjour.
Il est tard, je suis un vrai fain�ant, alors pardonnez-moi de faire suivre
ce message sans le traduire. Il int�ressera peut-�tre ceux qui charchent
un layout pour �crire des lettres.
Amicalement
Alain
------------------
Hi Marvin (and you, LyXer).
I promized, so here it is ... but it will still be of no use for you ;-)
Here is my new lettre.layout file, cleaned (lot of raw TeX discarded), a
little bit extended, and with extra code to allow tth giving a somewhat
sensible output.
I didn't used the last lettre.layout I saw on the list, because the "Style
order independance" feature given by my approach is, IMHO, the main
interest of this layout.
Hopefully, it will be interesting enough for giving somebody the idea to
do the same job for u.s.,english,german,... letters.
Concerning this layout file, notice that :
- it is not yet complete; no real fax support, no \telex, \mencl,
\makelabels, \institute ... As is, it fullfills 99% of my needs. Should
not be too hard to complete.
- no \date support in html : \today is used instead, shame on me !
- no html title is provided, tth does its best ... which is of no
use. To be continued ...
- I am not sure that everything was tested (e.g. email Style). If
something is going really wrong, please let me know
- it works with tth only ! It should be easy to adapt to
latex2html, may be not so easy to make it working with both. No idea what
to do for HeVeA, which complains on the class declaration!!
Anyway, I hope it will be usefull (at least it is for me). If somebody
improves it, please don't forget me ! ;-)
Best regards
Alain
--
*******************************************************************
* Alain Castera *
* IPNL - UCB Lyon 1 | e-mail : [EMAIL PROTECTED] *
* Bat. Paul Dirac | or [EMAIL PROTECTED] *
* Campus de la Doua | Telephone : (+33) 472448429 *
* F69622 Villeurbanne CEDEX | Fax : (+33) 472448004 *
*******************************************************************
#% Do not delete the line below; configure depends on this
# \DeclareLaTeXClass{lettre (Francais)}
# French Letter textclass definition file.
# Author : Alain Castera <[EMAIL PROTECTED]>
# Modifies only some things from letter.layout
# to use the lettre.cls class from Denis Megevand
# Input general definitions
Input letter.layout
# (Re)define some stuff
Preamble
%% to allow reorder commands when needed
\newif\ifneedsendletter
\newif\ifneedsendfax
\newif\ifmonaddressused
\newif\ifmonlieuused
\newif\ifmonlocationused
\newif\ifmontelephoneused
\newif\ifmonfaxused
\newif\ifmonemailused
\newif\iflyxsigp
\newif\iflyxsigs
\newif\iflyxsigt
\newif\ifpsneeded
\newif\ifccneeded
\newif\ifencneeded
%% To help tex->html
\newif\iftth
\iftth
\newsavebox{\sigp}
\newsavebox{\sigs}
\newsavebox{\sigt}
\fi
%% Sometimes you don't want a closing, but the package still needs it
\newcommand{\Lyclose}{}
%%
\newcommand{\lyxmenc}{\newcommand{\Lymenc}{\menc}}
%% here we ouput the commands in the "proper" order
\newcommand{\findemessage}
{
\ifneedsendletter
\iftth
\closing{\Lyclose}
\fi
\iflyxsigp \signature{\Lysigp} \else \name{} \fi
\iflyxsigs \secondsignature{\Lysigs} \fi
\iflyxsigt \thirdsignature{\Lysigt} \fi
\iftth
\iflyxsigp
\begin{tabular}{ p{5cm} p{5cm} p{5cm} p{5cm} }
\parbox{50mm}{{\hfill}} &
\parbox{50mm}{\sigp} &
\parbox{50mm}{\sigs} &
\parbox{50mm}{\sigt} \\
\end{tabular}
\bigskip{}
\fi
%% needed after last signature ???
\else %% should be in a different if block to be clean
\closing{\Lyclose}
\fi
\ifpsneeded \ps{P.S. : }{\Lyps} \fi
\ifccneeded \cc{\Lycc} \fi
\ifencneeded \encl{\Lyenc} \fi
\end{letter}
\needsendletterfalse
\fi
\ifneedsendfax \end{telefax}
\needsendfaxfalse
\fi
}
EndPreamble
# My Address style
Style MonAdresse
Margin Static
LatexType Command
LatexName Monaddress
ParSkip 0.4
BottomSep 1.5
ParSep 1.5
Align Left
AlignPossible Left
Preamble
\newcommand{\Monaddress}[1]{
\monaddressusedtrue
\newcommand{\lyaddress}{\address{#1}}
}
\iftth %% tex->html converters do not know this package
\newcommand{\address}[1]{\mbox{#1}\par}
\fi
EndPreamble
End
# City name style
Style Lieu
Margin Static
LatexType Command
LatexName Monlieu
LeftMargin Ville::xx
LabelSep xx
TopSep 0.4
BottomSep 0.4
ParSep 0.4
Align Block
AlignPossible Block, Left
LabelType Static
LabelString Ville:
# label font definition
LabelFont
Series Bold
Shape Italic
Latex Latex
EndFont
Preamble
\newcommand{\Monlieu}[1]{
\monlieuusedtrue
\providecommand{\lylieu}{\relax}
\renewcommand{\lylieu}{\lieu{#1}}
}
\iftth %% tex->html converters do not know this package
\newcommand{\lieu}[1]{{\raggedleft #1,\today}}
\fi
EndPreamble
End
#suppress City indication
Style NoLieu
KeepEmpty 1
LatexType Command
LatexName Monnolieu
LabelType Static
LeftMargin NoLieuxx
LabelString NoLieu
# label font definition
LabelFont
Series Bold
Latex Latex
EndFont
Preamble
\newcommand{\Monnolieu}{
\monlieuusedtrue
\providecommand{\lylieu}{\relax}
\renewcommand{\lylieu}{\nolieu{}}
}
\iftth %% tex->html converters do not know this package
\newcommand{\nolieu}[1][nowhere]{{\raggedleft \today}}
\fi
EndPreamble
End
# date Style
Style Date
Margin Static
LatexType Command
LatexName date
LeftMargin Date::xx
LabelSep xx
TopSep 0.4
BottomSep 0.4
ParSep 0.4
Align Block
AlignPossible Block, Left
LabelType Static
LabelString Date:
# label font definition
LabelFont
Series Bold
Shape Italic
Latex Latex
EndFont
End
#suppress date indication
Style NoDate
KeepEmpty 1
LatexType Command
LatexName nodate
LabelType Static
LeftMargin NoDatexx
LabelString NoDate
# label font definition
LabelFont
Series Bold
Latex Latex
EndFont
End
# location (i.e. office, department ...)
Style Localisation
Margin Static
LatexType Command
LatexName Monlocation
LeftMargin Bureau::xx
LabelSep xx
TopSep 0.4
BottomSep 0.4
ParSep 0.4
Align Block
AlignPossible Block, Left
LabelType Static
LabelString Location:
# label font definition
LabelFont
Series Bold
Shape Italic
Latex Latex
EndFont
Preamble
\newcommand{\Monlocation}[1]{
\monlocationusedtrue
\newcommand{\lylocation}{\location{#1}}
}
\iftth %% tex->html converters do not know this package
\newcommand{\location}[1]{ #1}
\fi
EndPreamble
End
# telephone Style
Style Telephone
Margin Static
LatexType Command
LatexName Montelephone
LeftMargin Tel::xx
LabelSep xx
TopSep 0.4
BottomSep 0.4
ParSep 0.4
Align Block
AlignPossible Block, Left
LabelType Static
LabelString Tel:
# label font definition
LabelFont
Series Bold
Shape Italic
Latex Latex
EndFont
Preamble
\newcommand{\Montelephone}[1]{
\montelephoneusedtrue
\providecommand{\lytelephone}{\relax}
\renewcommand{\lytelephone}{\telephone{#1}}
}
\iftth %% tex->html converters do not know this package
\newcommand{\telephone}[1]{Tel : #1\par}
\fi
EndPreamble
End
#suppress telephone indication
Style NoTelephon
KeepEmpty 1
LatexType Command
LatexName Monnotelephone
LabelType Static
LeftMargin NoTelxx
LabelString NoTel
# label font definition
LabelFont
Series Bold
Latex Latex
EndFont
Preamble
\newcommand{\Monnotelephone}{
\montelephoneusedtrue
\providecommand{\lytelephone}{\relax}
\renewcommand{\lytelephone}{\notelephone{}}
}
\iftth %% tex->html converters do not know this package
\newcommand{\notelephone}[1][tele]{}
\fi
EndPreamble
End
# telefax Style
Style Fax
Margin Static
LatexType Command
LatexName Monfax
LeftMargin Fax::xx
LabelSep xx
TopSep 0.4
BottomSep 0.4
ParSep 0.4
Align Block
AlignPossible Block, Left
LabelType Static
LabelString Fax:
# label font definition
LabelFont
Series Bold
Shape Italic
Latex Latex
EndFont
Preamble
\newcommand{\Monfax}[1]{
\monfaxusedtrue
\providecommand{\lyfax}{\relax}
\renewcommand{\lyfax}{\fax{#1}}
}
\iftth %% tex->html converters do not know this package
\newcommand{\fax}[1]{Fax : #1\par}
\fi
EndPreamble
End
#suppress fax indication
Style NoFax
KeepEmpty 1
LatexType Command
LatexName Monnofax
LabelType Static
LeftMargin NoFaxxx
LabelString NoFax
# label font definition
LabelFont
Series Bold
Latex Latex
EndFont
Preamble
\newcommand{\Monnofax}{
\monfaxusedtrue
\providecommand{\lyfax}{\relax}
\renewcommand{\lyfax}{\nofax{}}
}
\iftth %% tex->html converters do not know this package
\newcommand{\nofax}[1][fax]{}
\fi
EndPreamble
End
# Email Style
Style Email
Margin Static
LatexType Command
LatexName Monemail
LeftMargin Email::xx
LabelSep xx
TopSep 0.4
BottomSep 0.4
ParSep 0.4
Align Block
AlignPossible Block, Left
LabelType Static
LabelString Email:
# label font definition
LabelFont
Series Bold
Shape Italic
Latex Latex
EndFont
Preamble
\newcommand{\Monemail}[1]{
\monemailusedtrue
\providecommand{\lyemail}{\relax}
\renewcommand{\lyemail}{\email{#1}}
}
\iftth %% tex->html converters do not know this package
\newcommand{\email}[1]{email : #1\par}
\fi
EndPreamble
End
# Objet Style
Style Objet
CopyStyle Email
LatexType Command
LatexName conc
LeftMargin Objet::xx
LabelString Objet:
Preamble
\iftth %% tex->html converters do not know this package
\newcommand{\conc}[1]{
Objet : #1 \par
}
\fi
EndPreamble
End
# VRef Style
Style VRef
CopyStyle Email
LatexType Command
LatexName vref
LeftMargin V/Ref::xx
LabelString V/Ref:
Preamble
\iftth %% tex->html converters do not know this package
\newcommand{\vref}[1]{
V/Ref : #1 \par
}
\fi
EndPreamble
End
# NRef Style
Style NRef
CopyStyle Email
LatexType Command
LatexName nref
LeftMargin N/Ref::xx
LabelString N/Ref:
Preamble
\iftth %% tex->html converters do not know this package
\newcommand{\nref}[1]{
N/Ref : #1 \par
}
\fi
EndPreamble
End
Style Destinataire
Margin Right_Address_Box
LatexType Command
LatexName lettre
Preamble
\iftth %% tex->html converters do not know this package
\newcommand{\toaddress}[1]
{ \newsavebox{\dest}
\sbox{\dest}{\centering #1}
{\raggedleft{\dest}\par}
}
\newenvironment{letter}[1]{}{}
\fi
\newcommand{\lettre}[1]
{ \findemessage
\begin{letter}{#1}
\ifmonaddressused
\lyaddress{}
\fi
\ifmonlocationused
\lylocation{}
\fi
\ifmonlieuused
\lylieu{}
\fi
\ifmontelephoneused
\lytelephone{}
\fi
\ifmonfaxused
\lyfax{}
\fi
\ifmonemailused
\lyemail{}
\fi
\needsendlettertrue
\iftth
\toaddress{#1}
\fi
}
EndPreamble
End
#As a temporary(?) trick
Style FinDeFichier
KeepEmpty 1
LatexType Command
LatexName findemessage
LabelType Static
LabelString Fin_du_fichier.
LeftMargin Fin_du_fichier.
# label font definition
LabelFont
Series Bold
Shape Italic
Latex Latex
EndFont
End
# Opening style definition
Style Accroche
CopyStyle Opening
LeftMargin Accroche::xx
LabelString Accroche:
Preamble
\iftth %% tex->html converters do not know this package
\newcommand{\opening}[1]{{\qquad #1}}
\fi
EndPreamble
End
# Signature style definition
Style Signature
LeftMargin Signature::xx
LabelString Signature:
LatexName lyxsig
Preamble
%% automatic assignment of signatures (only one Signature Style
\newcommand{\lyxsig}[1]{
\iflyxsigs
\newcommand{\Lysigt}{#1}
\lyxsigttrue
\else
\iflyxsigp
\newcommand{\Lysigs}{#1}
\lyxsigstrue
\else
\newcommand{\Lysigp}{#1}
\lyxsigptrue
\fi
\fi
}
\iftth %% tex->html converters do not know this package
\newcommand{\signature}[1]
{
\sbox{\sigp}{{#1}}
}
\newcommand{\secondsignature}[1]
{
\sbox{\sigs}{{#1}}
}
\newcommand{\thirdsignature}[1]
{
\sbox{\sigt}{{#1}}
}
\fi
EndPreamble
End
# Closing style definition
Style FormuleDePolitesse
CopyStyle Closing
LeftMargin Salutations::xx
LabelString Salutations:
LatexType Command
LatexName lyxclose
Preamble
\newcommand{\lyxclose}[1]{\renewcommand{\Lyclose}{#1}}
\iftth %% tex->html converters do not know this package
\newcommand{\closing}[1]{#1\par}
\fi
EndPreamble
End
# encl style definition
Style incl
CopyStyle encl
LeftMargin Ci-joint::xx
LabelString Ci-joint:
LatexName lyxenc
Preamble
\newcommand{\lyxenc}[1]{\newcommand{\Lyenc}{#1} \encneededtrue}
\iftth %% tex->html converters do not know this package
\newcommand{\encl}[1]{p.j. : #1 \par}
\fi
EndPreamble
End
#Carbon Copy
Style cc
LatexName lyxcc
Preamble
\newcommand{\lyxcc}[1]{\newcommand{\Lycc}{#1} \ccneededtrue}
\iftth %% tex->html converters do not know this package
\newcommand{\cc}[1]{cc : #1 \par}
\fi
EndPreamble
End
#Post Scriptum
Style Post_Scriptum
Margin Static
LatexType Command
LatexName lyxps
LabelSep xx
LabelType Static
LeftMargin P.S.::xx
LabelString P.S.:
LatexName lyxps
Preamble
\newcommand{\lyxps}[1]{\newcommand{\Lyps}{#1} \psneededtrue}
\iftth %% tex->html converters do not know this package
\newcommand{\ps}[2]{#1 #2 \par}
\fi
EndPreamble
End
# now suppress unwanted styles
NoStyle My_Address
NoStyle Send_To_Address
NoStyle Opening
NoStyle Closing
NoStyle encl