summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/xelatex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-04-16 22:21:38 +0000
committerKarl Berry <karl@freefriends.org>2017-04-16 22:21:38 +0000
commitca335820d525cec5e0c68237c97333b952e61778 (patch)
treeb026c8d97a2345c850181f65f02fc8e57ad84694 /Master/texmf-dist/source/xelatex
parent93b672829910ccaed7c6d80cdd9a1530dbe44f27 (diff)
facture (14apr17)
git-svn-id: svn://tug.org/texlive/trunk@43865 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/xelatex')
-rw-r--r--Master/texmf-dist/source/xelatex/facture/facture.dtx103
1 files changed, 54 insertions, 49 deletions
diff --git a/Master/texmf-dist/source/xelatex/facture/facture.dtx b/Master/texmf-dist/source/xelatex/facture/facture.dtx
index 094413bb823..b1878b4eba7 100644
--- a/Master/texmf-dist/source/xelatex/facture/facture.dtx
+++ b/Master/texmf-dist/source/xelatex/facture/facture.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
% Droits d'auteur :
-% - Maïeul Rouquette 2011-2014
+% - Maïeul Rouquette 2011-…
% - Joël Gombin 2014
% Licence Creative Commons - Paternité -Partage des Conditions Initiales à l'identique
% http://creativecommons.org/licenses/by-sa/2.0/fr/
@@ -31,13 +31,15 @@
\end{document}
%</driver>
%\fi
-% \CheckSum{527}
+% \CheckSum{584}
% \changes{v1.0}{2011/09/10}{Première version}
% \changes{v1.1}{2014/09/16}{Laisser le choix de la marge à l'utilisateur}
% \changes{v1.1}{2014/09/16}{Possibilité de modifier la taille du tableau.}
% \changes{v1.2}{2015/01/16}{Possibilité de produire des factures sans la colonne remise.}
-% \def\filedate{16/01/2015}
-% \def\fileversion{1.2}
+% \changes{v1.2.2}{2015/01/16}{Corrections de quelques problèmes d'alignement.}
+% \changes{v1.2.2}{2017/04/12}{Corrections d'un bug si le numéro de facture n'est pas défini.}
+% \def\filedate{2017/04/12}
+% \def\fileversion{1.2.2}
% \date{\filedate}
% \title{La class \textsf{facture}\thanks{Ce document correspond à la version~\fileversion de \textsf{facture} datée du \filedate.}}
%\author{Maïeul Rouquette et Joël Gombin}
@@ -65,7 +67,7 @@
%\documentclass{facture}
%\end{verbatim}
%
-% Permet de générer une facture avec TVA. Celle-ci est définie par défaut à 19,6~\%, mais il est possible de modifier le taux, grâce à la commande \DescribeMacro{\TVAdefaut}\cmd{\TVAdefaut}\marg{taux}. Par exemple pour avoir un taux de 5,5~\% :
+% Permet de générer une facture avec TVA. Celle-ci est définie par défaut à 19,6~\%\footnote{Valeur lors de la sortie de la première version de la classe. Pour éviter que des factures créées avant la variation du taux mais recompilées après la variation ne voit leur TVA changer, ce taux restera fixe d'une version à l'autre de la classe.}, mais il est possible de modifier le taux, grâce à la commande \DescribeMacro{\TVAdefaut}\cmd{\TVAdefaut}\marg{taux}. Par exemple pour avoir un taux de 5,5~\% :
%\begin{verbatim}
%\TVAdefaut{5,5}
%\end{verbatim}
@@ -151,7 +153,7 @@
%<*facture>
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{facture}[16/01/2015 v1.2]
+\ProvidesClass{facture}[2017/04/12/04 v1.2.2]
\LoadClass[a4paper]{article}%On se base sur la classe article
\RequirePackage{fontspec}
\RequirePackage{xunicode}
@@ -168,11 +170,6 @@
\RequirePackage{advdate}%Pour manipuler les dates
\RequirePackage{xargs}%Pour des arguments conditionnels
% \end{macrocode}
-%\subsection{Option sansreduction}
-% \begin{macrocode}
-\newif\ifsansreduction
-\DeclareOption{sansreduction}{\sansreductiontrue}
-% \end{macrocode}
%\subsection{Option sansTVA}
% \begin{macrocode}
\newif\ifsansTVA
@@ -231,10 +228,18 @@
% \end{macrocode}
%\subsection{Largeur des colonnes}\label{largeurCols}
% On peut redéfinir les commandes ci-dessous pour modifier la largeur des commandes. Attention à ne pas dépasser un total de 1\cmd{\textwidth} !
+% Le package se charge d'ajuster automatiquement pour supprimer la marge intérieure.
+% La largeur des chiffres est calculée automatiquement en fonction de la largeur du descriptif et de la largeur de la TVA. Il est donc fortement recommandé de ne modifiée que \cs{largeurDescriptif} et \cs{largeurTVA}.
% \begin{macrocode}
\newcommand{\largeurDescriptif}{0.2\textwidth}
-\newcommand{\largeurChiffres}{0.2\textwidth}
-\newcommand{\largeurChiffresAvecTVA}{0.1\textwidth}
+\newcommand{\largeurTVA}{0.2\textwidth}
+\ifsansremise
+ \newcommand{\largeurChiffresAvecTVA}{\dimexpr (\textwidth-\largeurDescriptif-\largeurTVA)/4\relax}
+ \newcommand{\largeurChiffres}{\dimexpr (\textwidth-\largeurDescriptif)/3 \relax}
+\else
+ \newcommand{\largeurChiffresAvecTVA}{\dimexpr (\textwidth-\largeurDescriptif-\largeurTVA)/5\relax}
+ \newcommand{\largeurChiffres}{\dimexpr (\textwidth-\largeurDescriptif)/4 \relax}
+\fi
% \end{macrocode}
%
%\subsection{Réglages mathématiques}\label{math}
@@ -289,8 +294,8 @@
%
%Ensuite déterminer la place que cela prend, puis tracer l'encadré.
% \begin{macrocode}
- \coordinate[xshift=-1\textwidth,yshift=1ex] (a) at (b.north);
- \coordinate[xshift=1em,yshift=-1ex] (c) at (b.south);
+ \coordinate[xshift=-\textwidth-\epaisseurcadre,yshift=1ex] (a) at (b.north);
+ \coordinate[xshift=-\epaisseurcadre,yshift=-1ex] (c) at (b.south);
\draw[color=encadre,line width=\epaisseurcadre] (a) rectangle (c);
\end{tikzpicture}
% \end{macrocode}
@@ -340,8 +345,8 @@
\libelle{{\datetxt}} \today \\
\ifdef{\@numero}{%
\libelle{{\@type\ntxt}} \@numero
+ \\
}{}
- \\
\ifdef{\@codedest}{%
\libelle{{\codeclient}} \@codedest
}{}
@@ -376,14 +381,18 @@
\newenvironment{facture}{%
\setlength{\extrarowheight}{0.5ex}
\setlength{\tabcolsep}{0.5em}
+ \edef\@largeurDescriptif{\dimexpr\largeurDescriptif -2\tabcolsep\relax}
+ \edef\@largeurChiffres{\dimexpr\largeurChiffres -2\tabcolsep\relax}
+ \edef\@largeurTVA{\dimexpr\largeurTVA -2\tabcolsep\relax}
+ \edef\@largeurChiffresAvecTVA{\dimexpr\largeurChiffresAvecTVA -2\tabcolsep\relax}
\arrayrulecolor{encadre}
\ifsansTVA%
\ifsansremise%
\begin{longtable}{%
- |p{\largeurDescriptif}%Descriptif
- |P{\largeurChiffres}%Qt
- |P{\largeurChiffres}%Prix
- |P{\largeurChiffres}|%Total
+ |p{\@largeurDescriptif}%Descriptif
+ |P{\@largeurChiffres}%Qt
+ |P{\@largeurChiffres}%Prix
+ |P{\@largeurChiffres}|%Total
}%
\hline%
\rowcolor{entetes}%
@@ -394,11 +403,11 @@
\tabularnewline[1ex]%
\else%
\begin{longtable}{%
- |p{\largeurDescriptif}%Descriptif
- |P{\largeurChiffres}%Qt
- |P{\largeurChiffres}%Prix
- |P{\largeurChiffres}%Remise
- |P{\largeurChiffres}|%Total
+ |p{\@largeurDescriptif}%Descriptif
+ |P{\@largeurChiffres}%Qt
+ |P{\@largeurChiffres}%Prix
+ |P{\@largeurChiffres}%Remise
+ |P{\@largeurChiffres}|%Total
}%
\hline%
\rowcolor{entetes}%
@@ -412,12 +421,12 @@
\else%
\ifsansremise%
\begin{longtable}{%
- |p{\largeurDescriptif}|%Descriptif
- P{\largeurChiffresAvecTVA}|%Qt
- P{\largeurChiffresAvecTVA}|%HT unitaire
- P{\largeurChiffresAvecTVA}|%Totalht
- P{\largeurChiffresAvecTVA}|%TVA
- P{\largeurChiffresAvecTVA}|%Total TTC
+ |p{\@largeurDescriptif}|%Descriptif
+ P{\@largeurChiffresAvecTVA}|%Qt
+ P{\@largeurChiffresAvecTVA}|%HT unitaire
+ P{\@largeurChiffresAvecTVA}|%Totalht
+ P{\@largeurTVA}|%TVA
+ P{\@largeurChiffresAvecTVA}|%Total TTC
}%
\hline%
\rowcolor{entetes}
@@ -430,13 +439,13 @@
\else%
\begin{longtable}{%
- |p{\largeurDescriptif}|%Descriptif
- P{\largeurChiffresAvecTVA}|%Qt
- P{\largeurChiffresAvecTVA}|%HT unitaire
- P{\largeurChiffresAvecTVA}|%Remise
- P{\largeurChiffresAvecTVA}|%Totalht
- P{\largeurChiffresAvecTVA}|%TVA
- P{\largeurChiffresAvecTVA}|%Total TTC
+ |p{\@largeurDescriptif}|%Descriptif
+ P{\@largeurChiffresAvecTVA}|%Qt
+ P{\@largeurChiffresAvecTVA}|%HT unitaire
+ P{\@largeurChiffresAvecTVA}|%Remise
+ P{\@largeurChiffresAvecTVA}|%Totalht
+ P{\@largeurTVA}|%TVA
+ P{\@largeurChiffresAvecTVA}|%Total TTC
}%
\hline%
\rowcolor{entetes}
@@ -459,20 +468,16 @@
{%
\end{longtable}
% \end{macrocode}
-%On affiche ensuite les totaux, qu'on place grâce à \emph{TikZ}. Le cercle de 0,001 de diamètre sert à faire prendre à la figure beamer le plus de place possible, pour que les textes soient alignés à droite.
+%On affiche ensuite les totaux.
% \begin{macrocode}
- \begin{tikzpicture}
- \draw[color=white] (0,0) circle (0.001);
- \node[right,xshift=0.66\textwidth,text width=0.33\textwidth]{%
\ifsansTVA%
- \hfill \libelle{\tottxt:} \numprint[\unite]{\tot}\\%
- \else%
- \libelle{\totHTtxt:}\hfill \numprint[\unite]{\totHT} \\%
- \libelle{\totTVAtxt:}\hfill \numprint[\unite]{\totTVA} \\%
- \libelle{\totTTCtxt:}\hfill \numprint[\unite]{\totTTC} \\
+ \noindent\hspace{0.66\textwidth}\hfill \libelle{\tottxt:} \numprint[\unite]{\tot}\\%
+ \else%
+ \noindent\hspace{0.66\textwidth}\libelle{\totHTtxt:}\hfill \numprint[\unite]{\totHT}\\%
+ \hbox{}\hspace{0.66\textwidth}\libelle{\totTVAtxt:}\hfill \numprint[\unite]{\totTVA}\\%
+ \hbox{}\noindent\hspace{0.66\textwidth}\libelle{\totTTCtxt:}\hfill \numprint[\unite]{\totTTC}\\
\fi
- \postTotaux};
- \end{tikzpicture}
+ \hspace{0.66\textwidth}\postTotaux
}
% \end{macrocode}