easyLetter/easyLetter.cls
2024-04-21 10:35:35 +02:00

68 lines
1.5 KiB
TeX

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{../easyLetter}[
2023/04/04 Small class based on 'lettre' to quickly write a letter (FR)]
\LoadClass[12pt,a4paper]{lettre}
% Langue
\RequirePackage[french]{babel}
\RequirePackage{csquotes}
\MakeOuterQuote{"}
% Police
\RequirePackage{fontspec}
\setmainfont[Numbers={Monospaced}]{Fira Sans}
\setmonofont{Fira Code}
% Retire la ligne ajoutée pour la séparation entête/corps de la lettre
\renewcommand*{\rule@length}{0}
% Titre
\newcommand*{\titre}[1]{\def\@title{#1}}
% Auteur
\newcommand*{\auteur}[1]{\def\@author{#1}}
% Sujet
\def\@subject{\,}
\newcommand*{\sujet}[1]{\def\@subject{#1}}
% Mot-clés
\def\@keywords{\,}
\newcommand*{\motscles}[1]{\def\@keywords{\if#1\empty\else, #1\fi}}
% Clickable links + metadata
\AtEndPreamble{
\RequirePackage[
pdfauthor={\@author},
pdftitle={\@title},
pdfsubject={\@subject},
pdfkeywords={\@author, lettre\@keywords},
pdfcreator={LaTeX with 'easyLetter' preset},
% Hide links
hidelinks
]{hyperref}
}
% Introduction
\newcommand{\ouverture}[1]{\def\@opening{#1}}
% Conclusion
\newcommand{\cloture}[1]{\def\@closing{#1}}
% Destinataire
\newcommand{\destinataire}[3]{\def\@receivername{#1}\def\@receiverAddress{#2}\def\@receiverCity{#3}}
% Contenu de la lettre
\newenvironment{easyLetter}{
\begin{letter}{
% Destinataire
\@receivername \\
\@receiverAddress \\
\textsc{\@receiverCity}
}
\conc{\@title}
\opening{\@opening}}{
\closing{\@closing}
\end{letter}
}