summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-04-13 22:09:49 +0000
committerKarl Berry <karl@freefriends.org>2015-04-13 22:09:49 +0000
commit2ca250f21f9140047c0163f0751306afa1502b04 (patch)
tree11762e1f806f4319e258469d9c8513948e706159
parentab9be52a67d39f40115219e0f9bc910e2f3fe161 (diff)
factura (13apr15)
git-svn-id: svn://tug.org/texlive/trunk@36841 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/factura/README21
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex3
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex9
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura1.tex5
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura2.tex13
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura3.tex5
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura4.tex10
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura5.tex11
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura6.tex7
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-firma.tex2
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-fondo.tex68
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-membrete.tex54
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex5
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex5
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex7
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex6
-rw-r--r--Master/texmf-dist/doc/latex/factura/factura.pdfbin548637 -> 824540 bytes
-rw-r--r--Master/texmf-dist/source/latex/factura/factura.dtx540
-rw-r--r--Master/texmf-dist/source/latex/factura/factura.ins37
-rw-r--r--Master/texmf-dist/tex/latex/factura/factura.cls131
-rw-r--r--Master/texmf-dist/tex/latex/factura/factura.def8
21 files changed, 521 insertions, 426 deletions
diff --git a/Master/texmf-dist/doc/latex/factura/README b/Master/texmf-dist/doc/latex/factura/README
index f03da0852a0..753f07adf8b 100644
--- a/Master/texmf-dist/doc/latex/factura/README
+++ b/Master/texmf-dist/doc/latex/factura/README
@@ -1,4 +1,4 @@
-<factura>
+<factura>
* Brief description in english *
@@ -11,17 +11,12 @@ by invoking commands or editing.
* Descripción concisa en castellano *
-La clase de LaTeX 'factura' está diseñada para su uso en la
-República Bolivariana de Venezuela, conforme a los requerimientos
-fijados por las providencias del SENIAT, válidas para marzo del
-año 2015.
-
-La clase 'factura' está diseñada para su uso en la República
+La clase de LaTeX 'factura' está diseñada para su uso en la República
Bolivariana de Venezuela, conforme a los requerimientos fijados por las
-providencias del SENIAT 0591, 0257 y 0071, válidas para marzo del año 2015.
+providencias del SENIAT, válidas para abril del año 2015.
-Con 'factura' se pueden imprimir facturas en formas libres
-fiscales, cotizaciones y reportes de servicios.
+Con la clase 'factura' se pueden elaborar facturas en formas libres
+fiscales, se pueden elaborar cotizaciones y reportes de servicios.
* Compilación *
@@ -33,12 +28,16 @@ Para generar los archivos y compilar la documentación:
$ pdflatex factura.dtx
$ pdflatex factura-ejemplo-fondo.tex
+$ pdflatex factura-ejemplo-membrete.tex
$ xelatex factura-ejemplo-firma.tex
$ pdflatex factura-ejemplo-prefactura.tex
$ pdflatex factura.dtx
Los índices y la lista de cambios se generan automáticamente al compilar
-factura.dtx, pero los comandos para generarlos son:
+la documentación, pero los comandos para generarlos son:
$ makeindex -s gind.ist -o factura.ind factura.idx
$ makeindex -s gglo.ist -o factura.gls factura.glo
+
+El ejemplo de firma debe compilarse con XeLaTeX; lo demás puede compilarse con
+pdfLaTeX, LuaLaTeX o XeLaTeX.
diff --git a/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex b/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex
index 8a2bc1c024e..442fc916011 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex
@@ -34,7 +34,8 @@
%% and factura-beispiel-rechnung.tex.
%%
%% Descripción de este ejemplo:
-%% Adaptado a otra legislación,
+%% Adaptado a otra legislación.
+%%
\documentclass[
prefactura,
nospanish,
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex
index 5b708fbbdd0..1ee05e9a21f 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex
@@ -36,17 +36,18 @@
%% Descripción de este ejemplo:
%% Hacemos una cotización (cotizacion),
%% Escribe la denominación sin número (sinnumero),
-%% Rellenado el espacio en blanco dentro del renglón de la factura (relleno),
+%% Expande el renglón de la factura con espacio en blanco (exparriba),
%% Con línea protectora del espacio en blanco (linea),
%% Sólo firma del emisor (unafirma),
%% Agregando la firma escaneada en la factura (\FirmaFactura),
%% Con el fondo de la imprenta agregado (\FondoFactura),
%% Sin resumen,
-%% Descripción larga del servicio con caja sin expandir verticalmente (\Descripcion*).
+%% Con descripción larga.
+%%
\documentclass[
cotizacion,
sinnumero, % sin esta opción aparecerá el número de la cotización.
-relleno,
+exparriba,
linea,
unafirma,
]{factura}
@@ -72,7 +73,7 @@ unafirma,
\Item{1}{ítem con IVA general}{1000}
\end{factura}
-\Descripcion*{Descripción del servicio con {\ttfamily \textbackslash Descripcion*} ocupando el tamaño mínimo que su texto ocupe, sin expandirla.}
+\Descripcion{Descripción larga del servicio}
\end{document}
%%
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura1.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura1.tex
index 9776e791f29..a9304ca500c 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura1.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura1.tex
@@ -37,7 +37,8 @@
%% Hacemos una factura,
%% Todo con los valores por omisión,
%% Con resumen (\Resumen),
-%% Descripción larga del servicio con caja expandida verticalmente (\Descripcion).
+%% Con descripción larga.
+%%
\documentclass[
]{factura}
@@ -61,7 +62,7 @@
\Item{4}{otro ítem con IVA general}{100}
\end{factura}
-\Descripcion{Descripción del servicio con {\ttfamily \textbackslash Descripcion}, centrada verticalmente, tomando el espacio máximo disponible que los demás elementos dejan en la hoja.}
+\Descripcion{Descripción larga del servicio}
\end{document}
%%
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura2.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura2.tex
index 2547bce2f7f..e79ab406672 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura2.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura2.tex
@@ -47,7 +47,8 @@
%% Alterando la la distancia desde el contorno hasta el texto en la descripción (\SepDescrip),
%% Alterando la línea de la descripción, la curvatura en la esquina y la sombra (\LineaDescrip),
%% Con artículos gravados con todos los IVA,
-%% Descripción larga del servicio con caja expandida verticalmente (\Descripcion).
+%% Con descripción larga.
+%%
\documentclass[
dcu,
descuentos,
@@ -75,14 +76,14 @@ csv,
\begin{document}
\begin{factura}
- \Item{1}{ítem con IVA general y descuento}{1000}{8}
- \ItemR{1}{ítem con IVA reducido y descuento}{1000}{5}
- \ItemA{1}{ítem con IVA adiciona y descuento}{1000}{10}
- \ItemE{1}{ítem exento de impuesto y descuento}{1000}{8}
+ \Item{1}{ítem con IVA general, con descuento}{1000}{8}
+ \ItemR{1}{ítem con IVA reducido, con descuento}{1000}{5}
+ \ItemA{1}{ítem con IVA adicional, con descuento}{1000}{10}
+ \ItemE{1}{ítem exento de impuesto, con descuento}{1000}{8}
\ItemX{1}{línea sin precio}
\end{factura}
-\Descripcion{Descripción del servicio con {\ttfamily \textbackslash Descripcion}, centrada verticalmente, tomando el espacio máximo disponible que los demás elementos dejan en la hoja.}
+\Descripcion{Descripción larga del servicio}
\end{document}
%%
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura3.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura3.tex
index fb4866f0a03..98112e69930 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura3.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura3.tex
@@ -37,7 +37,7 @@
%% Hacemos una factura,
%% Agrupados los gravámenes (agrupado),
%% Separado cada ítem con una línea horizontal (lineaitem),
-%% Rellenado el espacio en blanco dentro del renglón de la factura (relleno),
+%% Expande el renglón de la factura con espacio en blanco (exparriba),
%% Con línea protectora del espacio en blanco (linea),
%% Con el tipo de impuesto como parte de la descripción y no de los precios (impdesc),
%% Sin firmas (sinfirmas),
@@ -49,10 +49,11 @@
%% Alterando la línea de las cajas del encabezado, la curvatura en la esquina y la sombra (\LineaEncabez),
%% Con artículos gravados con todos los IVA,
%% Sin descripción larga.
+%%
\documentclass[
agrupado,
lineaitem,
-relleno,
+exparriba,
linea,
impdesc,
sinfirmas,
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura4.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura4.tex
index 9052f479895..e9d3c45cc17 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura4.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura4.tex
@@ -37,18 +37,19 @@
%% Hacemos una factura,
%% Primero la descripción, luego el precio unitario, luego la cantidad (duc),
%% Totalización en modo de filas (filas),
-%% Rellenado el espacio en blanco dentro del renglón de la factura (relleno),
+%% Expande el renglón de la factura con espacio en blanco (exparriba),
%% Sin condiciones de pago (sincond),
%% Usando \Nombre y \CI en lugar de \RazonSocial y \RIF,
%% Sin especificar la persona de contacto,
%% Sin especificar el e-mail del cliente,
%% Sin resumen,
%% Cambiando varias de las tipografías (\Letra***),
-%% Descripción larga del servicio con caja sin expandir verticalmente (\Descripcion*).
+%% Con descripción larga.
+%%
\documentclass[
duc,
filas,
-relleno,
+exparriba,
sincond,
]{factura}
@@ -69,10 +70,11 @@ sincond,
\begin{factura}
\Item{1}{ítem con IVA general}{1000}
+ \Item{4}{otro ítem con IVA general}{100}
\ItemX{1}{línea sin precio}
\end{factura}
-\Descripcion*{Descripción del servicio con {\ttfamily \textbackslash Descripcion*} ocupando el tamaño mínimo que su texto ocupe, sin expandirla.}
+\Descripcion{Descripción larga del servicio}
\end{document}
%%
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura5.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura5.tex
index 1bc09369f8e..193ae665dfc 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura5.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura5.tex
@@ -41,8 +41,7 @@
%% Totalización en modo de filas (filas),
%% Centrados los totales en el modo de filas (centrado),
%% Separado cada ítem con una línea horizontal (lineaitem),
-%% Rellenado el espacio en blanco dentro del renglón de la factura (relleno),
-%% Con línea protectora del espacio en blanco (linea),
+%% Sin expandir el renglón de la factura ni la descripción (sinexpandir),
%% Especificando 'G' en los ítems gravados con IVA general (G),
%% Obligando a especificar todos los IVA así no existan productos gravados con ellos (todosiva),
%% Cambiando la geometría del papel de la factura (\GeometriaReporte),
@@ -56,15 +55,15 @@
%% Alterando la longitud de las líneas para firmar y su grosor (\LineaFirmas),
%% Alterando la posición de la fecha, las firmas y de la denominación del documento (\PosFecha, \PosFirmas y \PosDenom),
%% Redefiniendo el formato de la fecha (redef. @@Fecha y \@EstiloFecha),
-%% Descripción larga del servicio con caja sin expandir verticalmente (\Descripcion*).
+%% Con descripción larga.
+%%
\documentclass[
sincantidad,
denom,
filas,
centrado,
lineaitem,
-relleno,
-linea,
+sinexpandir,
G,
todosiva,
]{factura}
@@ -108,7 +107,7 @@ todosiva,
\ItemX{línea sin precio}
\end{factura}
-\Descripcion*{Descripción del servicio con {\ttfamily \textbackslash Descripcion*} ocupando el tamaño mínimo que su texto ocupe, sin expandirla.}
+\Descripcion{Descripción larga del servicio}
\begin{reporte}
El reporte - página 1\newpage El reporte - página 2 \newpage El reporte - página 3
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura6.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura6.tex
index fa3fff3080c..436620b2894 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura6.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura6.tex
@@ -36,10 +36,13 @@
%% Descripción de este ejemplo:
%% Hacemos una factura,
%% Escribimos el reporte, pero sólo generamos la factura,
+%% Sin expandir el renglón de la factura ni la descripción (sinexpandir),
%% Sin IVA (siniva),
%% Cambiando varias de las tipografías (\Letra***),
-%% Descripción larga del servicio con caja expandida verticalmente (\Descripcion).
+%% Con descripción larga.
+%%
\documentclass[
+sinexpandir,
siniva,
]{factura}
@@ -71,7 +74,7 @@ siniva,
\Item{1}{ítem con IVA general}{1000}
\end{factura}
-\Descripcion{Descripción del servicio con {\ttfamily \textbackslash Descripcion}, centrada verticalmente, tomando el espacio máximo disponible que los demás elementos dejan en la hoja.}
+\Descripcion{Descripción larga del servicio}
\begin{reporte}
El reporte - página 1\newpage El reporte - página 2 \newpage El reporte - página 3
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-firma.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-firma.tex
index 5171642bdbe..dc87a36e8e8 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-firma.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-firma.tex
@@ -34,7 +34,7 @@
%% and factura-beispiel-rechnung.tex.
%%
%% (PSTricks code generated with LaTeXDraw 2.0.8)
-%%
+%% (Compilar con XeLaTeX)
\documentclass{article}
\usepackage[hmargin={0cm,0cm},vmargin={0cm,0cm},paperwidth=5cm,paperheight=2.3cm]{geometry}
\usepackage[usenames,dvipsnames]{pstricks}
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-fondo.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-fondo.tex
index 2a5c2df2fb7..90239225190 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-fondo.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-fondo.tex
@@ -35,45 +35,53 @@
%%
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
-\usepackage{tikz}
+\usepackage{tikz}\usetikzlibrary{positioning}
\usepackage{calc}
\usepackage[letterpaper,hmargin={1cm,1cm},vmargin={1cm,1cm},footskip=0pt,headsep=0pt,headheight=0pt]{geometry}
\parindent0pt
\lineskip0pt
\pagestyle{empty}
\begin{document}
- \begin{minipage}[t][\textheight]{\textwidth}
+ \begin{minipage}[b][\textheight]{\textwidth}
\baselineskip13pt
\parskip0pt
\lineskip0pt
- \centering{%
- \begin{tikzpicture}
- \node [draw=none, fill=gray,rounded corners=4pt]{%
- \parbox{0.57\textwidth}{%
- \vspace*{0.1cm}%
- \centering
- \color{white}%
- \fontfamily{ppl}\LARGE\bfseries Lázaro de la Vega y San Román}};
- \end{tikzpicture}\par
- \begin{tikzpicture}
- \node [draw=gray, line width=2pt, rounded corners=9pt]{%
- \parbox{0.64\textwidth}{%
- \parskip2pt
- \centering
- \color{gray}%
- \fontfamily{ppl}\footnotesize\bfseries Av. Garcilaso de la Vega, Qta. San Román, Santa Mónica, Caracas, Venezuela.
- \par
- Teléfono: +58 (123) 456.78.90 / email: lázaro@sanrom.án}};
- \end{tikzpicture}}\par
- \parbox{0.61\textwidth}{%
- \mbox{}\hfill%
- \color{gray}%
- \fontfamily{aer}\footnotesize\bfseries RIF: V-87.654.321-0}%
- \vfill
- {\tiny \bfseries ESTA FORMA LIBRE VA SIN TACHADURA NI ENMIENDA \hfill SOLO EL ORIGINAL DA DERECHO A CRÉDITO FISCAL}\par
- \fontsize{6}{9}\selectfont
- Imprenta: IMPRESOS DE LA VEGA. Av. Garcilaso de la Vega, Qta. San Román, Santa Mónica, Caracas, Venezuela. RIF: R-87.654.321-0. Tlf: (0123) 456.78.90\par
- e-mail: imprenta@sanrom.án. No. Providencia SENIAT 01/01060 de fecha 12/11/2008 - Control desde No. 00-000001 hasta No. 00-010000 / Fecha 01/01/2016.\par
+ \hspace*{\fill}%
+ \begin{tikzpicture}
+ \node (Nombre) [draw=none, fill=gray, rounded corners=4pt]{%
+ \parbox{0.57\textwidth}{%
+ \vspace*{0.1cm}%
+ \centering
+ \color{white}\fontfamily{ppl}\LARGE\bfseries
+ Lázaro de la Vega y San Román}};
+ \node [node distance=0pt, below = of Nombre, outer sep=0pt, draw=gray, line width=2pt, inner sep=3.5pt, rounded corners=8pt]{%
+ \parbox{0.66\textwidth}{%
+ \vspace*{3pt}%
+ \parskip2pt
+ \centering
+ \color{gray}\fontfamily{ppl}\footnotesize\bfseries
+ Av. Garcilaso de la Vega, Qta. San Román, Santa Mónica, Caracas, Venezuela.
+ \par
+ Teléfono: +58 (123) 456.78.90 / email: lázaro@sanrom.án
+ \vspace*{3pt}}};
+ \end{tikzpicture}
+ \hspace*{\fill}\par
+ \hspace*{\fill}%
+ \parbox{0.63\textwidth}{%
+ \color{gray}\fontfamily{aer}\footnotesize\bfseries
+ \hfill
+ RIF: V-87.654.321-0}%
+ \hspace*{\fill}\par
+ \vfill\mbox{}%
+ \fontsize{6}{8}\selectfont
+ \hspace*{0.5cm}%
+ \parskip2pt
+ {\bfseries ESTA FORMA LIBRE VA SIN TACHADURA NI ENMIENDA \hfill SÓLO EL ORIGINAL DA DERECHO A CRÉDITO FISCAL}
+ \hspace*{0.5cm}\par%
+ \fontdimen2\font=0.55em
+ Imprenta: \hfill IMPRESOS DE LA VEGA. Av. Garcilaso de la Vega, Qta. San Román, Santa Mónica, Caracas, Venezuela. RIF: R-87.654.321-0. Tlf: (0123) 456.78.90\newline
+ \fontdimen2\font=0.65em
+ e-mail: \hfill imprenta@sanrom.án. No. Providencia SENIAT 01/01060 de fecha 12/11/2008 - Control desde No. 00-000001 hasta No. 00-010000 / Fecha 01/01/2016.\par
\end{minipage}
\end{document}
%%
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-membrete.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-membrete.tex
index b5f84d47c19..f15dc4ca2c8 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-membrete.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-membrete.tex
@@ -35,40 +35,44 @@
%%
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
-\usepackage{tikz}
+\usepackage{tikz}\usetikzlibrary{positioning}
\usepackage{calc}
\usepackage[letterpaper,hmargin={1cm,1cm},vmargin={1cm,1cm},footskip=0pt,headsep=0pt,headheight=0pt]{geometry}
\parindent0pt
\lineskip0pt
\pagestyle{empty}
\begin{document}
- \begin{minipage}[t][\textheight]{\textwidth}
+ \begin{minipage}[b][\textheight]{\textwidth}
\baselineskip13pt
\parskip0pt
\lineskip0pt
- \centering{%
- \begin{tikzpicture}
- \node [draw=none, fill=gray,rounded corners=4pt]{%
- \parbox{0.57\textwidth}{%
- \vspace*{0.1cm}%
- \centering
- \color{white}%
- \fontfamily{ppl}\LARGE\bfseries Lázaro de la Vega y San Román}};
- \end{tikzpicture}\par
- \begin{tikzpicture}
- \node [draw=gray, line width=2pt, rounded corners=9pt]{%
- \parbox{0.64\textwidth}{%
- \parskip2pt
- \centering
- \color{gray}%
- \fontfamily{ppl}\footnotesize\bfseries Av. Garcilaso de la Vega, Qta. San Román, Santa Mónica, Caracas, Venezuela.
- \par
- Teléfono: +58 (123) 456.78.90 / email: lázaro@sanrom.án}};
- \end{tikzpicture}}\par
- \parbox{0.61\textwidth}{%
- \mbox{}\hfill%
- \color{gray}%
- \fontfamily{aer}\footnotesize\bfseries RIF: V-87.654.321-0}%
+ \hspace*{\fill}%
+ \begin{tikzpicture}
+ \node (Nombre) [draw=none, fill=gray, rounded corners=4pt]{%
+ \parbox{0.57\textwidth}{%
+ \vspace*{0.1cm}%
+ \centering
+ \color{white}\fontfamily{ppl}\LARGE\bfseries
+ Lázaro de la Vega y San Román}};
+ \node [node distance=0pt, below = of Nombre, outer sep=0pt, draw=gray, line width=2pt, inner sep=3.5pt, rounded corners=8pt]{%
+ \parbox{0.66\textwidth}{%
+ \vspace*{3pt}%
+ \parskip2pt
+ \centering
+ \color{gray}\fontfamily{ppl}\footnotesize\bfseries
+ Av. Garcilaso de la Vega, Qta. San Román, Santa Mónica, Caracas, Venezuela.
+ \par
+ Teléfono: +58 (123) 456.78.90 / email: lázaro@sanrom.án
+ \vspace*{3pt}}};
+ \end{tikzpicture}
+ \hspace*{\fill}\par
+ \hspace*{\fill}%
+ \parbox{0.63\textwidth}{%
+ \color{gray}\fontfamily{aer}\footnotesize\bfseries
+ \hfill
+ RIF: V-87.654.321-0}%
+ \hspace*{\fill}\par
+ \vfill\mbox{}%
\end{minipage}
\end{document}
%%
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex
index 9d280146fa6..7ecdf6496ff 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex
@@ -39,7 +39,8 @@
%% Agregando la firma escaneada en la factura (\FirmaFactura),
%% Con el fondo de la imprenta agregado (\FondoFactura),
%% Sin resumen,
-%% Descripción larga del servicio con caja expandida verticalmente (\Descripcion).
+%% Con descripción larga.
+%%
\documentclass[
prefactura,
unafirma,
@@ -66,7 +67,7 @@ unafirma,
\Item{1}{ítem con IVA general}{1000}
\end{factura}
-\Descripcion{Descripción del servicio con {\ttfamily \textbackslash Descripcion}, centrada verticalmente, tomando el espacio máximo disponible que los demás elementos dejan en la hoja.}
+\Descripcion{Descripción larga del servicio}
\end{document}
%%
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex
index e5665b81279..b5c3ab1d2f5 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex
@@ -39,7 +39,8 @@
%% Especificamos el fondo (membrete) del reporte, sólo para la primera página (\FondoReporte),
%% Establecemos el título del reporte sin que salga en las cabeceras (\TituloReporte),
%% Sin resumen,
-%% Descripción larga del servicio con caja expandida verticalmente (\Descripcion).
+%% Con descripción larga.
+%%
\documentclass[
conreporte,
]{factura}
@@ -65,7 +66,7 @@ conreporte,
\Item{1}{ítem con IVA general}{1000}
\end{factura}
-\Descripcion{Descripción del servicio con {\ttfamily \textbackslash Descripcion}, centrada verticalmente, tomando el espacio máximo disponible que los demás elementos dejan en la hoja.}
+\Descripcion{Descripción larga del servicio}
\begin{reporte}
El reporte - página 1\newpage El reporte - página 2 \newpage El reporte - página 3
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex
index c6033f0c690..3c81dab6efa 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex
@@ -35,13 +35,14 @@
%%
%% Descripción de este ejemplo:
%% Hacemos sólamente un reporte (soloreporte),
-%% Cambiando la geometría del papel del reporte (\GeometriaReporte),
+%% Cambiando la geometría del papel del reporte (\GeometriaReporte y \InicioRep),
%% Agregando la firma escaneada en la factura (\FirmaFactura),
%% Agregando la firma escaneada en el reporte (\FirmaReporte),
%% Especificamos el fondo (membrete) del reporte para todas las páginas (\FondoReporte*),
%% Establecemos el título del reporte para que salga en las cabeceras (\TituloReporte*),
%% Sin resumen,
-%% Descripción larga del servicio con caja sin expandir verticalmente (\Descripcion*).
+%% Con descripción larga.
+%%
\documentclass[
soloreporte,
]{factura}
@@ -71,7 +72,7 @@ soloreporte,
\Item{1}{ítem con IVA general}{1000}
\end{factura}
-\Descripcion*{Descripción del servicio con {\ttfamily \textbackslash Descripcion*} ocupando el tamaño mínimo que su texto ocupe, sin expandirla.}
+\Descripcion{Descripción larga del servicio}
\begin{reporte}
El reporte - página 1\newpage El reporte - página 2 \newpage El reporte - página 3
diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex
index 46f4fe576f9..b9d15391717 100644
--- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex
+++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex
@@ -36,12 +36,13 @@
%% Descripción de este ejemplo:
%% Hacemos sólamente un reporte (soloreporte),
%% Reporte en las dos caras del papel (twoside),
-%% Cambiando la geometría del papel del reporte (\GeometriaReporte),
+%% Agregando la línea para firmar a mano el reporte (\FirmaReporte),
%% Especificamos el fondo (membrete) del reporte, sólo para la primera página (\FondoReporte),
%% Establecemos el título del reporte sin que salga en las cabeceras (\TituloReporte),
%% Personalizamos la cabecera del reporte y mostramos el nombre del proveedor allí (\EstiloPag),
%% Cambiamos el estilo de página para que la información del reporte aparezca como pie de página,
%% Sin descripción larga.
+%%
\documentclass[
soloreporte,
twoside,
@@ -49,8 +50,6 @@ twoside,
\usepackage[utf8]{inputenc}
-\GeometriaReporte{letterpaper,vmargin={4.4cm,2.5cm},hmargin={3cm,2cm},footskip=1.2cm,headsep=0.777cm,headheight=1.5cm}
-\InicioReporte{0cm}
\Fecha{01-01-2016}
\RazonSocial{Ayala San Vicente Usureros}
\RIF{Y-12.345.678-9}
@@ -75,6 +74,7 @@ twoside,
\thispagestyle{empty}
\pagestyle{solopie}
El reporte - página 1\newpage El reporte - página 2 \newpage El reporte - página 3
+ \vspace{1.5cm}\FirmaReporte
\end{reporte}
\end{document}
diff --git a/Master/texmf-dist/doc/latex/factura/factura.pdf b/Master/texmf-dist/doc/latex/factura/factura.pdf
index b200acf5ba5..a5f65e17818 100644
--- a/Master/texmf-dist/doc/latex/factura/factura.pdf
+++ b/Master/texmf-dist/doc/latex/factura/factura.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/factura/factura.dtx b/Master/texmf-dist/source/latex/factura/factura.dtx
index 4afcc0dee96..7baff65593c 100644
--- a/Master/texmf-dist/source/latex/factura/factura.dtx
+++ b/Master/texmf-dist/source/latex/factura/factura.dtx
@@ -69,17 +69,13 @@ and factura-beispiel-rechnung.tex.
\keepsilent
\askforoverwritefalse
\obeyspaces
-\Msg{******************************************************************************}
-\Msg{********************************** factura ***********************************}
-\Msg{******************************************************************************}
+\Msg{*****************************************************************}
+\Msg{**************************** factura ****************************}
+\Msg{*****************************************************************}
\generate{\file{\jobname.cls}{\from{\jobname.dtx}{class}}}
\generate{\file{\jobname.def}{\from{\jobname.dtx}{def}}}
\Msg{\jobname.cls and \jobname.def written.}
\Msg{}
-\immediate\write18{makeindex -s gind.ist -o \jobname.ind \jobname.idx}
-\immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo}
-\Msg{}
-\Msg{Change history and index updated.}
\postamble
\endpostamble
%</batchfile>
@@ -118,23 +114,32 @@ and factura-beispiel-rechnung.tex.
\generate{\file{\firma}{\from{\jobname.dtx}{firma}}}
\generate{\file{\fondo}{\from{\jobname.dtx}{fondo}}}
\generate{\file{\membrete}{\from{\jobname.dtx}{membrete}}}
-\Msg{examples written.}
+\Msg{.tex examples written.}
\Msg{}
-\Msg{******************************************************************************}
+\Msg{*****************************************************************}
+\immediate\write18{makeindex -s gind.ist -o \jobname.ind \jobname.idx}
+\immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo}
+\Msg{}
+\Msg{Change history and index updated.}
+\Msg{*****************************************************************}
\Msg{To produce only package files, type}
\Msg{ pdftex \jobname.dtx}
-\Msg{To produce package files and the documentation, compile \jobname.dtx file with}
+\Msg{To produce package files and pdf documentation, type}
\Msg{ pdflatex \jobname.dtx}
-\Msg{To manual update the index and changelog, type}
+\Msg{ pdflatex factura-ejemplo-fondo.tex}
+\Msg{ pdflatex factura-ejemplo-membrete.tex}
+\Msg{ xelatex factura-ejemplo-firma.tex}
+\Msg{ pdflatex factura-ejemplo-prefactura.tex}
+\Msg{and recompile \jobname.dtx.}
+\Msg{To manual update index and changelog, type}
\Msg{ makeindex -s gind.ist -o \jobname.ind \jobname.idx}
\Msg{ makeindex -s gglo.ist -o \jobname.gls \jobname.glo}
-\Msg{respectively, and recompile \jobname.dtx.}
\Msg{}
-\Msg{More information about compiling on PDF documentation}
+\Msg{More information (in spanish) about compiling on README and documentation.}
\Msg{}
-\Msg{******************************************************************************}
-\Msg{********************************** factura ***********************************}
-\Msg{******************************************************************************}
+\Msg{*****************************************************************}
+\Msg{**************************** factura ****************************}
+\Msg{*****************************************************************}
\Msg{}
%</batchfile>
%<batchfile>\endbatchfile
@@ -152,7 +157,7 @@ and factura-beispiel-rechnung.tex.
%<class>\ProvidesClass{factura}
%<def>\ProvidesFile{factura.def}
%<*class|def>
-[2015/03/30 v2.00^^J
+[2015/04/13 v2.05^^J
%<class>Clase para elaborar facturas legales en la^^J
%<class>República Bolivariana de Venezuela.
%<def>Archivo valores iniciales y condiciones de borde para factura.cls
@@ -162,37 +167,52 @@ and factura-beispiel-rechnung.tex.
%<*driver>
\documentclass{ltxdoc}
\usepackage[letterpaper,marginparsep=10pt,vmargin={3.3cm,2cm},hmargin={4cm,2cm}]{geometry}
-\usepackage{paralist,calc,verbatim,graphicx,hypdoc,array,todo,etoolbox}
\usepackage[usenames,dvipsnames]{color}
\usepackage[spanish]{babel}
-\usepackage[T1]{fontenc}
-\usepackage[utf8]{inputenc}
+\usepackage{paralist,calc,verbatim,graphicx,hypdoc,array,todo,etoolbox,metalogo,ifxetex,ifluatex,footnote}
+
+\ifxetex
+ \usepackage{fontspec}
+\else
+ \usepackage[T1]{fontenc}
+ \ifluatex
+ \else
+ \usepackage[utf8]{inputenc}
+ \fi
+\fi
+
\hypersetup{
plainpages=false,
colorlinks=true,
linkcolor=blue,
- unicode=true,
- hyperfootnotes=false,
-}
-\usepackage{footnote}
+ unicode=true}
+
\makesavenoteenv{tabular}
\makesavenoteenv{table}
-\setlength\IndexMin{100pt}
+
\EnableCrossrefs
\CodelineIndex
\OnlyDescription
\RecordChanges
+
\setlength{\parskip}{7pt}
+\setlength\IndexMin{100pt}
+
% No quiero que las notas pendientes tengan los números de página:
\patchcmd{\todoitem}{(p.~\pageref{todopage:\thetodo}):}{-}{}{}
+
+\renewcommand{\todoname}{¿Pendiente?}
+\newcommand{\changesname}{Lista de cambios en las versiones}
+\newcommand{\glosname}{Índice de comandos, entornos y opciones}
+
\makeatletter
-\renewcommand{\todoname}{Pendiente...}
+\def\es@yearl{l año}
% Redefinimos el comando del encabezado del índice:
\def\index@prologue{%
- \section*{Índice de comandos, entornos y opciones}%
- \markboth{Índice de comandos, entornos y opciones}{Índice de comandos, entornos y opciones}}
+ \section*{\glosname}%
+ \markboth{\glosname}{\glosname}}%
% Cambiamos el nombre de la lista de cambios:
- \patchcmd{\glossary@prologue}{Change History}{Lista de cambios en las versiones}{}{}
+ \patchcmd{\glossary@prologue}{Change History}{\changesname}{}{}
% Definimos el comando para describir opciones, que inexplicablemente falta en doc.sty:
\def\DescribeOption{\leavevmode\@bsphack\begingroup\MakePrivateLetters
\Describe@Option}
@@ -206,15 +226,21 @@ and factura-beispiel-rechnung.tex.
usage}\@esphack}
\def\PrintDescribeOption#1{\strut \MacroFont #1\ }
\makeatother
+
\title{The \textsf{\jobname} class\thanks{This document corresponds to \textsf{\jobname}~\fileversion, dated \filedate.}}
\author{Emilio Lazo Zaia\\ \texttt{< emiliolazozaia at gmail.com >}}
+
\GetFileInfo{\jobname.dtx}
+
\begin{document}
\maketitle
\DocInput{\jobname.dtx}
\clearpage
+ \addcontentsline{toc}{section}{\todoname}
\todos
+ \addcontentsline{toc}{section}{\changesname}
\PrintChanges
+ \addcontentsline{toc}{section}{\glosname}
\PrintIndex
\end{document}
%</driver>
@@ -232,7 +258,7 @@ and factura-beispiel-rechnung.tex.
% \else #1\expandafter\@gobble\fi}%
% \makeatother
%
-% \CheckSum{4351}
+% \CheckSum{0}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -252,6 +278,17 @@ and factura-beispiel-rechnung.tex.
%
% \changes{v1.00}{2013/04/29}{Primera versión}
% \changes{v2.00}{2015/03/30}{Segunda versión: errores corregidos, comandos y opciones nuevas, ambiente de reporte, documentación completa, ejemplos y en formato \texttt{.dtx}}
+% \changes{v2.05}{2015/04/13}{Se cambió de \texttt{4pt} a \texttt{6pt} en \texttt{factura.def} para el margen interno predeterminado en las cajas del encabezado y en la descripción}
+% \changes{v2.05}{2015/04/13}{Se quitó \texttt{UTF8} de \texttt{inputenc} como un paquete que se cargue de forma predeterminada}
+% \changes{v2.05}{2015/04/13}{Advierte que no son compatibles los comandos \cs{Descuento} con la opción \texttt{filas}}
+% \changes{v2.05}{2015/04/13}{Se puso un parche en \cs{@CargaFondoReporte} para arreglar que \cs{topskip} aplicara bien en \cs{@EncabezadoReporte}}
+% \changes{v2.05}{2015/04/13}{Arreglada la interacción entre las opciones \texttt{ivanoexplicito} y \texttt{filas}, y se quitó la línea del total cuando se usa \texttt{ivanoexplicito}}
+% \changes{v2.05}{2015/04/13}{Se renombró la opción \texttt{relleno} a \texttt{exparriba}, a la vez que se quitó \cs{Descripcion*} porque se agregó la opción \texttt{sinexpandir}}
+% \changes{v2.05}{2015/04/13}{Se renombró la opción \texttt{ivanoexplicito} por \texttt{sinivaexpresado}}
+% \changes{v2.05}{2015/04/13}{Se cambiaron los \cs{AtBeginDocument} por \cs{AtBeginShipoutNext} de la factura porque daba problemas al especificar \texttt{conreporte} sin luego agregar el ambiente de reporte}
+% \changes{v2.05}{2015/04/13}{Se colocó \cs{\@SeparaMinTotales} dentro de otro \cs{AtBeginDocument} más adecuado}
+% \changes{v2.05}{2015/04/13}{Modificaciones en la documentación y en los ejemplos}
+% \changes{v2.05}{2015/04/13}{Los comandos \cs{ItemX} ahora colocan la línea bien con la opción \texttt{lineaitem}}
%
% \DoNotIndex{}
%
@@ -263,74 +300,86 @@ and factura-beispiel-rechnung.tex.
%
% \section{Introducción}
%
-% La clase de \LaTeX{} |factura| está diseñada para su uso en la República Bolivariana de Venezuela, conforme a los requerimientos fijados por las providencias del {\slshape SENIAT} 0591, 0257 y 0071, válidas para marzo del año 2015.
+% La clase de \LaTeX{} |factura| está diseñada para su uso en la República Bolivariana de Venezuela, conforme a los requerimientos fijados por las providencias del {\slshape SENIAT} 0591, 0257 y 0071, válidas para abril del año 2015.
%
-% Con |factura| se pueden elaborar facturas en formas libres fiscales\footnote{Cada hoja del talonario de facturas legales tiene un encabezado con los datos del emisor de la factura y un pie de página con la información de identificación de la imprenta, en tamaño de hoja carta entera; esto es lo que se llama ``forma libre''.}, cotizaciones y reportes de servicios, dejando todos los cálculos a \TeX{}.
+% Con |factura| se pueden elaborar facturas en formas libres fiscales\footnote{En cuanto a las formas libres, cada hoja del talonario de facturas legales tiene un encabezado con los datos del emisor de la factura y un pie de página con la información de identificación de la imprenta, en tamaño de hoja carta entera; esto es lo que se llama ``forma libre''.}, cotizaciones y reportes de servicios, dejando todos los cálculos a \TeX{}.
%
% Las facturas hechas con esta clase empiezan con un encabezado con los datos que identifican al cliente, y al lado un -opcional- resumen; estas partes de la factura están encerradas en cajas con contornos que predeterminadamente tienen esquinas ovaladas. Si no se especifica el resumen saldrá solamente una de estas cajas en el encabezado que es la de los datos del cliente.
%
-% Luego de esto viene un renglón con los campos: cantidad, descripción, precio unitario y precio total\footnote{Pueden haber variaciones en estos campos controlables con las opciones de la clase (sección \ref{opciones}).}, con los elementos a facturar, uno en cada línea, luego los totales, y al final viene una -opcional- descripción larga que sale en un cuadro sombreado. En fin, la factura consta de:
+% Luego de esto viene un renglón con los campos: cantidad, descripción, precio unitario y precio total\footnote{Pueden haber variaciones en estos campos controlables con las opciones de la clase (sección \ref{opciones}).}, con los elementos a facturar, cada uno en una línea, luego los totales, y al final viene una -opcional- descripción larga que sale en un cuadro sombreado. En fin, la factura consta de:
% \begin{inparaenum}[\bfseries i)]
% \item el encabezado con los datos del cliente y el resumen (opcional),
-% \item el renglón con los elementos de la factura, y
+% \item el cuadro con los elementos que se están facturando, y
% \item una descripción larga (opcional).
% \end{inparaenum}
%
% \section{Compilación}
%
-% El paquete consta de un archivo |README|, esta documentación compilada como |factura.pdf| y el archivo |factura.dtx|, del cual se generan todos los demás archivos.
+% El paquete consta de un archivo |README| en formato |UTF-8|, esta documentación compilada como |factura.pdf| y el archivo |factura.dtx|, del cual se generan todos los demás archivos.
%
% Al compilar |factura.dtx| va a producirse |factura.cls| y |factura.def|, además de todos los ejemplos en |.tex| y |factura.ins|.
%
-% Paso a paso, las operaciones para compilar todo son las siguientes:
+% \noindent Si queremos solamente generar los archivos sin compilar la documentación, debemos ejecutar:
+%
+% \noindent {\color{RoyalBlue}|pdftex factura.dtx|}
+%
+% \noindent Para generar los archivos y también compilar la documentación, debemos ejecutar los siguientes pasos:
%
% \begin{enumerate}[\bfseries 1. ]
%
-% \item {\color{RoyalBlue}|pdflatex factura.dtx|}\footnote{Si se compila con pdf\LaTeX{} tendremos la documentación compilada y todos los archivos generados, pero si se compila con pdf\TeX{} tendremos solamente los archivos generados.}
+% \item {\color{RoyalBlue}|pdflatex factura.dtx|}
%
-% Luego de compilar |factura.dtx| hay que compilar el fondo de ejemplo, el membrete de ejemplo y la firma de ejemplo; estos tres archivos son una emulación de tener un talonario de facturas digitalizado, un membrete para los reportes y también una firma digitalizada. Se usarán en algunos de los ejemplos de formatos que incluímos y por eso es necesario tenerlos compilados en |.pdf| previamente, ya que su inclusión en los ejemplos es en formato compilado |.pdf|.
+% Luego de compilar |factura.dtx| hay que compilar el ejemplo de fondo, el ejemplo de membrete y el ejemplo de firma; estos tres archivos son una emulación de tener un talonario de facturas digitalizado, un membrete para los reportes y también una firma digitalizada. Se usarán en algunos de los ejemplos de formatos que incluímos y por eso es necesario tenerlos compilados en |.pdf| previamente, ya que su inclusión en los ejemplos es en formato compilado |.pdf|.
%
% El fondo y membrete de ejemplo los debemos compilar así:
%
% \item {\color{RoyalBlue}|pdflatex factura-ejemplo-fondo.tex|}
% \item {\color{RoyalBlue}|pdflatex factura-ejemplo-membrete.tex|}
%
-% La firma escaneada necesita compilarse con Xe\LaTeX{} así:
+% La firma escaneada necesita compilarse con \XeLaTeX{} porque tiene código de PSTricks y debe producirse un |.pdf|. Se compila así:
%
% \item {\color{RoyalBlue}|xelatex factura-ejemplo-firma.tex|}
%
-% El ejemplo de {\slshape prefactura} es necesario si se quiere recompilar esta documentación:
+% Compilamos el ejemplo de la {\slshape prefactura}, que es parte de esta documentación:
%
% \item {\color{RoyalBlue}|pdflatex factura-ejemplo-prefactura.tex|}
%
+% Al tener todo esto hecho volvemos a compilar |factura.dtx| para producir esta documentación, puesto que el |.dtx| necesita ser compilado más de una vez para que la documentación quede correctamente elaborada:
+%
+% \item {\color{RoyalBlue}|pdflatex factura.dtx|}
+%
% Los comandos para generar el índice y la lista de cambios, que automáticamente se generan al compilar |factura.dtx| son:
%
% \item {\color{RoyalBlue}|makeindex -s gind.ist -o factura.ind factura.idx|}
% \item {\color{RoyalBlue}|makeindex -s gglo.ist -o factura.gls factura.glo|}
%
-% Al tener todo esto generado podemos volver a compilar el |.dtx| si queremos producir esta documentación, puesto que el |.dtx| necesita ser compilado más de una vez para que la documentación quede correctamente elaborada:
-%
-% \item {\color{RoyalBlue}|pdflatex factura.dtx|}
+% {\itshape No es necesario ejecutar los dos comandos anteriores porque los ejecuta el compilador al actuar sobre }|factura.dtx|.
%
% \end{enumerate}
%
+% Al tener el fondo, el membrete y la firma compilados en |.pdf| según los pasos anteriores\footnote{Si sólo ejecutamos pdf\TeX{} para generar los archivos sin la documentación, tendremos que compilarlos con los pasos 2, 3 y 4.}, podremos compilar cualquiera de los ejemplos en |.tex| que el archivo |factura.dtx| genera, y eso lo podemos hacer, por ejemplo así:
+%
+% \noindent {\color{RoyalBlue}|pdflatex factura-ejemplo-factura1.tex|}\footnote{Podemos también compilar con \LuaLaTeX{} o con \XeLaTeX{} en lugar de usar pdf\LaTeX{}.}
+%
+% \newpage
+%
% \section{Archivos de ejemplo incluídos}
%
-% El archivo |factura.dtx| produce varios ejemplos, entre ellos un modelo de talonario que nos sirve como ejemplo en las prefacturas, un ejemplo de membrete que nos sirve para los reportes, una firma que emula ser una firma real escaneada, para su inclusión en algunos casos, así como varios ejemplos de facturas, prefacturas, cotizaciones y reportes. Cada uno de ellos tiene al principio del documento la aclaratoria de qué es lo que hace, para diferenciarlo de los demás ejemplos.
+% El archivo |factura.dtx| produce varios ejemplos, entre ellos un modelo de talonario que nos sirve como ejemplo en las prefacturas, un ejemplo de membrete que nos sirve para los reportes, una firma que emula ser una firma real escaneada, para su inclusión en algunos casos, así como varios ejemplos de facturas, prefacturas, cotizaciones y reportes. Cada uno de ellos tiene al principio del documento fuente la aclaratoria de qué es lo que hace, para diferenciarlo de los demás ejemplos.
%
% \noindent \begin{tabular}{rl}
% \bfseries Archivo & \bfseries Descripción \\ \hline
-% |factura.dtx| & archivo principal del que todos los demás se generan, \\
-% |factura.pdf| & esta documentación, \\
-% |README| & archivo con la descripción corta, \\
-% |factura-ejemplo-firma.tex| & emulación de firma del emisor digitalizada, \\
-% |factura-ejemplo-fondo.tex| & emulación de la digitalización un diseño de talonario legal, \\
-% |factura-ejemplo-memebrete.tex| & el mismo fondo anterior pero sólo el encabezado, \\
-% |factura-ejemplo-prefactura.tex| & ejemplo de ``prefactura'', \\
-% |factura-ejemplo-cotizacion.tex| & ejemplo de cotización, \\
-% |factura-ejemplo-reporte*.tex| & ejemplos de reportes, \\
-% |factura-ejemplo-factura*.tex| & ejemplos de facturas, \\
-% |factura-beispiel-rechnung.tex| & un ejemplo de una factura adaptada a otra legislación. \\ \hline
+% |factura.dtx| & Archivo principal del que todos los demás se generan, \\
+% |factura.pdf| & Esta documentación, \\
+% |README| & Archivo con la descripción corta, \\
+% |factura-ejemplo-firma.tex| & Emulación de firma del emisor digitalizada, \\
+% |factura-ejemplo-fondo.tex| & Emulación de la digitalización un diseño de talonario legal, \\
+% |factura-ejemplo-membrete.tex| & El mismo fondo anterior pero sólo el encabezado, \\
+% |factura-ejemplo-prefactura.tex| & Ejemplo de ``{\slshape prefactura}'', \\
+% |factura-ejemplo-cotizacion.tex| & Ejemplo de cotización, \\
+% |factura-ejemplo-reporte*.tex| & Ejemplos de reportes, \\
+% |factura-ejemplo-factura*.tex| & Ejemplos de facturas, \\
+% |factura-beispiel-rechnung.tex| & Un ejemplo de una factura adaptada a otra legislación. \\ \hline
% \end{tabular}
%
% \IfFileExists{factura-ejemplo-prefactura.pdf}{%
@@ -344,11 +393,11 @@ and factura-beispiel-rechnung.tex.
%
% El espacio que la imprenta deja en el centro de la forma libre está todo disponible para la impresión de la factura con esta clase. Este espacio se delimita con el paquete |geometry|. Los valores predeterminados que tienen que ver con la geometría de la hoja están todos definidos dentro del archivo |factura.def|.
%
-% El margen superior que se da con |geometry| está contabilizado desde el inicio del papel\footnote{El papel predeterminado es tamaño carta.} hasta donde empieza el encabezado con los datos del cliente, es decir que el encabezado es el primero elemento dentro de los márgenes verticales de la forma libre.
+% El margen superior que se da con |geometry| está contabilizado desde el inicio del papel\footnote{El papel predeterminado es tamaño carta.} hasta donde empieza el encabezado con los datos del cliente, es decir que el encabezado es el primer elemento dentro de los márgenes verticales de la forma libre.
%
-% El margen inferior de |geometry| empieza donde termina la descripción del servicio, o el fin del renglón propiamente de la factura, en caso de que no se agregue un texto de descripción larga, hasta el final del papel.
+% El margen inferior de |geometry| empieza donde termina la descripción del servicio -o el fin del renglón propiamente de la factura, en caso de que no se agregue un texto de descripción larga-, hasta el final del papel.
%
-% Para aclarar lo anterior es necesario decir que hay textos con posiciones fijas que están fuera de estos márgenes, como la fecha de emisión, la ``denominación'' del documento (que es ``FACTURA'', ``COTIZACIÓN'' u otro especificable), el número de la factura, el número de control (cuando aplica), las condiciones de pago y los espacios para las firmas; todas estas partes del documento están fijas en posiciones arbitrarias fuera de los márgenes dejados por |geometry|. Estos textos son fijos para darles posiciones que no dependan del contenido particular de cada factura sino del diseño del talonario que ya tenemos impreso y para el cual estamos adaptando esta plantilla |factura|.
+% Para aclarar lo anterior es necesario decir que hay textos con posiciones fijas que están fuera de estos márgenes, como la fecha de emisión, la ``denominación'' del documento (que es ``FACTURA'', ``COTIZACIÓN'' u otro especificable), el número de la factura, el número de control (cuando aplica), las condiciones de pago y los espacios para las firmas; todas estas partes del documento están fijas en posiciones arbitrarias fuera de los márgenes dejados por |geometry|. Estos textos son fijos para darles posiciones que no dependan del contenido particular de cada factura sino del diseño del talonario que ya tenemos impreso, que siempre será igual, y para el cual estamos adaptando esta plantilla |factura|.
%
% Las ubicaciones de los textos fijos también tienen valores predefinidos dentro de |factura.def|. Cualquiera de esos valores puede cambiarse mediante comandos, tal como se fijan los valores predeterminados en dicho archivo |.def|; esto significa que se puede personalizar a cualquier diseño del talonario entregado por la imprenta, basta con entender qué hace cada comando (explicado en este documento), consultar el |.def| o ver los ejemplos.
%
@@ -367,11 +416,11 @@ and factura-beispiel-rechnung.tex.
%
% Finalizando el ambiente se puede escribir (opcionalmente) una descripción larga o una aclaratoria de lo que se factura; esto se hace con el comando |\Descripcion|. Este comando coloca una caja con el texto y tiene variaciones en su presentación.
%
-% Algunas de las posibilidades de cambio de estilo de esta clase consiste en que puede cambiarse la forma como es presentado cualquiera de los textos, se pueden suprimir las líneas verticales del cuadro de la factura, se pueden agregar líneas horizontales separando cada uno de ellos, también se puede colocar una línea oblicua que proteja el renglón de la factura de adiciones de texto posteriores, entre otras prestaciones más.
+% Algunas de las posibilidades de cambio de estilo de esta clase consisten en que puede cambiarse la forma como es presentado cualquiera de los textos, se pueden suprimir las líneas verticales del cuadro de la factura, se pueden agregar líneas horizontales separando cada ítem, también se puede colocar una línea oblicua que proteja el renglón de la factura de adiciones de texto posteriores, entre otras prestaciones más.
%
% Si el emisor lo desea puede digitalizar su firma personal y colocarla en el espacio ya dispuesto para firmar, con un ajuste mínimo para que salga correctamente sobre la línea.
%
-% También el usuario tiene la posibilidad de producir una {\slshape ``prefactura''}; así le llamamos a un documento sin validez legal pero que puede ser enviado por fax o correo electrónico. Este documento tiene el mismo aspecto de la factura fiscal si se digitaliza la forma libre vacía, se incluye la imagen como fondo de la página y se definen las posiciones fijas de las numeraciones impresas en el talonario, es decir el número de factura y el número de control, de los que hablamos previamente.
+% También el usuario tiene la posibilidad de producir una {\slshape ``prefactura''}; así le llamamos a un documento sin validez legal pero que puede ser enviado por fax o correo electrónico. Este documento tiene el mismo aspecto de la factura fiscal si se digitaliza la forma libre vacía\footnote{Quitándole las numeraciones luego, o también puede diseñarse una forma libre vacía idéntica a la que se tiene, así como se hace en el ejemplo incluído.}, se incluye la imagen como fondo de la página y se definen las posiciones fijas de las numeraciones impresas en el talonario, es decir el número de factura y el número de control, de los que hablamos previamente.
%
% Esta misma clase tiene la posibilidad de imprimir un reporte largo asociado a la factura\footnote{Si lo hubiera, así como también se puede usar estar clase para elaborar un reporte sin asociarlo a una factura en particular.}. Tal reporte se escribe dentro de un ambiente en el mismo documento en el que se escribe la factura asociada a él (|\begin{reporte}...\end{reporte}|),
% \DescribeEnv{reporte}
@@ -389,25 +438,25 @@ and factura-beispiel-rechnung.tex.
% La cotización es un documento similar a una factura pero no es un documento fiscal, así que no lleva número de control y puede o no tener su propia numeración.
%
% \DescribeOption{conreporte}
-% Genera la factura y luego el reporte.
+% Genera la factura (prefactura o cotización) y luego el reporte.
%
% \DescribeOption{soloreporte}
% Genera solamente el reporte, ignorando lo relacionado con la factura. Si no se especifica |conreporte| ni |soloreporte| se va a imprimir únicamente la factura.
%
% \DescribeOption{denom}
-% Con esta opción escribimos también el texto ``FACTURA'' con el número. La razón de este comando es que hay formas libres que tienen la numeración de la factura y otras que solamente tienen el número de control; para las que tienen sólo el número de control existe esta opción que también coloca el número en cada factura impresa, en la posición que se defina.
+% Con esta opción escribimos también el texto ``FACTURA'' con el número. La razón de esta opción es que hay formas libres que tienen la numeración de la factura y otras que solamente tienen el número de control; para las que tienen sólo el número de control existe esta opción que también coloca el número en cada factura impresa, en la posición que se defina.
%
% \DescribeOption{sinnumero}
-% Coloca el texto de la denominación del documento en su posición (e.g. ``COTIZACIÓN'') pero sin colocar el número; por ejemplo para las cotizaciones que no son documentos que legalmente lleven número. Esta opción implica la opción anterior |denom|.
+% Coloca el texto de la denominación del documento en su posición (e.g. ``COTIZACIÓN'') pero sin colocar el número; por ejemplo para las cotizaciones que no son documentos que legalmente que lleven número, aunque el número puede ser para control interno. Esta opción implica la opción anterior |denom|.
%
% \DescribeOption{siniva}
% No se cobra IVA, para los casos en los que esto aplique.
%
-% \DescribeOption{ivanoexplicito}
+% \DescribeOption{sinivaexpresado}
% Al no cobrar IVA, tampoco aparece en la totalización los IVA ni las bases imponibles.
%
% \DescribeOption{todosiva}
-% Agrega el monto exento y todos los tipos de IVA en los totales así no se hayan incluído elementos gravados de esas formas.
+% Agrega el monto exento y todos los tipos de IVA en los totales así no se hayan incluído elementos gravados con los distintos tipos de impuesto.
%
% \DescribeOption{G}
% Agrega una ``|G|'' al lado de todos los items gravados con IVA general así sea el general el único IVA existente en la factura.
@@ -416,7 +465,7 @@ and factura-beispiel-rechnung.tex.
% Con esta opción, la letra que indica la denominación del impuesto aplicado a cada elemento, en lugar de escribirse en el precio unitario y en el total, que es la forma predeterminada, sale escrito al final de la descripción. Puede preferirse de esta forma, y ahorra un poco de espacio usable en la descripción.
%
% \DescribeOption{sincantidad}
-% El ambiente |factura| tiene también la posibilidad de no mostrar el campo de la cantidad, ni aceptarlo como argumento de cada ítem; en ese caso los comandos |\Item| -de los que hablaremos en la sección (\ref{factura})- aceptan solamente la descripción del elemento y su precio, en ese orden.
+% El ambiente |factura| tiene también la posibilidad de no mostrar el campo de la cantidad, ni aceptarlo como argumento de cada ítem; en ese caso los comandos |\Item| -de los que hablaremos en la sección (\ref{factura})- aceptan como argumentos solamente la descripción del elemento y su precio, en ese orden.
%
% \DescribeOption{descuentos}
% Permite agregar un descuento en porcentaje por cada ítem de la factura, siendo dicho porcentaje el último argumento de los comandos |\Item|, que tendrá que ser incluído como ``0'' en los elementos donde no aplique tal descuento. (Explicado también en la sección \ref{factura}).
@@ -451,11 +500,14 @@ and factura-beispiel-rechnung.tex.
% \DescribeOption{agrupado}
% Agrupa los totales finales de los items por gravámen ({\itshape sólo para el modo de totalización en columnas}).
%
-% \DescribeOption{relleno}
-% Llena el espacio restante del renglón de la factura con espacio en blanco.
+% \DescribeOption{exparriba}
+% Expande el espacio de arriba, es decir, rellena el espacio restante del renglón de la factura con espacio en blanco. Lo predeterminado es expandir la parte de abajo, o sea, la descripción, cuando la hay.
+%
+% \DescribeOption{sinexpandir}
+% No expande partes en la factura, es decir, deja tanto el renglón de la factura como la descripción en su tamaño mínimo según el contenido que tenga.
%
% \DescribeOption{linea}
-% Agrega una línea diagonal protegiendo los espacios vacíos en el renglón de la factura. Esta opción requiere de la opción |relleno|.
+% Agrega una línea diagonal protegiendo los espacios vacíos en el renglón de la factura. Esta opción requiere de la opción |exparriba|.
%
% \DescribeOption{nospanish}
% No carga |babel| en castellano, la codificación |T1| de las letras, la codificación |UTF-8| para el documento ni el paquete |lmodern|. Si no se especifica esta opción todo esto se carga, pero si se quiere no cargar algo de esto, entonces debe especificarse esta opción y cargar los paquetes a mano.
@@ -483,7 +535,7 @@ and factura-beispiel-rechnung.tex.
%
% Aquí van los parámetros relativos al paquete |geometry| que van a afectar la manera como el reporte es generado.
%
-% Puesto que el reporte no se imprime en hojas de facturas sino en hojas en blanco, el usuario podrá cambiarlos completamente a su gusto sin las restricciones para el caso anterior. En |factura.def| se definen unos márgenes razonables para un reporte. Si el reporte y la factura usan un tamaño distinto de papel, al imprimirse ambos juntos (opción |conreporte|), el reporte tomará el tamaño físico del papel especificado para la factura ya que con el paquete |geometry| no podemos cambiar el papel en el medio del documento, aunque sí sus márgenes. Entonces, si se quiere imprimir el reporte en un papel de otro tamaño, tendrá que hacerse por separado, o sea, con la opción |soloreporte|.
+% Puesto que el reporte no se imprime en hojas de facturas sino en hojas en blanco, el usuario podrá cambiarlos completamente a su gusto sin las restricciones para el caso anterior. En |factura.def| se definen unos márgenes razonables para un reporte. Si el reporte y la factura usan un tamaño distinto de papel, al imprimirse ambos juntos (opción |conreporte|), el reporte tomará el tamaño físico del papel especificado para la factura ya que con el paquete |geometry| no podemos cambiar el papel en el medio del documento, aunque sí sus márgenes. Entonces, si se quiere imprimir el reporte en un papel de otro tamaño, tendrán que imprimirse ambos documentos por separado, o sea, sin opciones de reporte, y luegro con la opción |soloreporte|.
%
% \DescribeMacro{\FondoFactura}{\color{RoyalBlue}|\FondoFactura|\marg{nombre del archivo de la imagen}}
%
@@ -493,11 +545,11 @@ and factura-beispiel-rechnung.tex.
%
% \DescribeMacro{\FondoReporte}{\color{RoyalBlue}|\FondoReporte|\marg{nombre del archivo de la imagen}}
%
-% Imagen a cargar {\bfseries solamente en la primera página del reporte} (e.g. un membrete). Cuando se usa este comando, puede necesitarse usar también |\InicioReporte| para fijar el inicio de la primera página del reporte más abajo que las demás páginas, fijadas estas con |\GeometriaReporte|, ya que en la primera tendremos un membrete.
+% Imagen a cargar {\bfseries solamente en la primera página del reporte} (e.g. un membrete). Cuando se usa este comando, puede necesitarse usar también |\InicioReporte| para fijar el inicio de la primera página del reporte más abajo que las demás páginas, fijadas estas con |\GeometriaReporte|, ya que solamente en la primera tendremos un membrete.
%
% \DescribeMacro{\FondoReporte*}{\color{RoyalBlue}|\FondoReporte*|\marg{nombre del archivo de la imagen}}
%
-% Esta variación de |\FondoReporte| es para que la imagen esté visible {\bfseries en todas las páginas} y no solamente en la primera como con el comando anterior. Usando esta variante del fondo del reporte no es necesario usar |\InicioReporte| sino solamente establecer los márgenes del reporte.
+% Esta variación de |\FondoReporte| es para que la imagen esté visible {\bfseries en todas las páginas} y no solamente en la primera como con el comando anterior. Usando esta variante del fondo del reporte no es necesario usar |\InicioReporte| sino solamente establecer los márgenes del reporte de acuerdo a dicho fondo.
%
% \DescribeMacro{\InicioReporte}{\color{RoyalBlue}|\InicioReporte|\marg{longitud}}
%
@@ -520,11 +572,11 @@ and factura-beispiel-rechnung.tex.
% \item inclusión de la imagen (e.g. |\includegraphics|),
% \item corrimiento en |X| de la imagen, para un ajuste más fino de la posición de la firma,
% \item corrimiento en |Y|,
-% \item texto debajo de la línea (va entre llaves. Pred: el dado mediante el comando |\Proveedor|, o en su defecto, |\Emisor|),
+% \item texto debajo de la línea ({\itshape va entre llaves y no entre corchetes como los demás}. Pred: el dado mediante el comando |\Proveedor|, o en su defecto, |\Emisor|),
% \item posición en |X| del final de la línea, medida desde la derecha (predeterminado: 2cm),
% \item tamaño de la línea de la firma (pred: tamaño de la imagen o del nombre + 1.5cm extra).
% \end{enumerate}
-% {\itshape {\bfseries (Este comando es el único que NO es del preámbulo}; debe incluirse en el sitio en el reporte donde se quiera que la firma salga, es decir, al final del documento y todos sus argumentos son opcionales, incluyendo el texto que va debajo de la línea, que se incluye entre llaves |{}| a pesar de ser opcional.)}
+% {\itshape {\bfseries (Este comando es el único que NO es del preámbulo}; debe incluirse en el sitio en el reporte donde se quiera que la firma salga, es decir, al final del documento y todos sus argumentos son opcionales, incluyendo el texto que va debajo de la línea, que se incluye entre llaves |{}| a pesar de ser opcional. Cuando no se especifica ningún argumento, sólo coloca la línea para firmar y el nombre del proveedor, naturalmente.)}
%
% \DescribeMacro{\TituloReporte}{\color{RoyalBlue}|\TituloReporte|\marg{texto}}
%
@@ -532,7 +584,7 @@ and factura-beispiel-rechnung.tex.
%
% \DescribeMacro{\TituloReporte*}{\color{RoyalBlue}|\TituloReporte*|\marg{texto}}
%
-% Usando |\TituloReporte| u omitiendo su uso, la información que sale en las cabeceras o piés de página tiene que ver con el número de la factura que está asociado a ese reporte. Con esta variante de |\TituloReporte|, el título saldrá escrito también en estas partes de la página en lugar del texto que indica que el reporte corresponde a determinada factura.
+% Usando |\TituloReporte| u omitiendo su uso, la información que sale en las cabeceras o piés de página tiene que ver con el número de la factura que está asociada a ese reporte. Con esta variante de |\TituloReporte|, el título saldrá escrito también en estas partes de la página en lugar del texto que indica que el reporte corresponde a determinada factura.
%
% Puede usarse esta opción también en aquellos casos en los que se hace un reporte sin asociarlo a una factura, entonces el título del reporte es la información que sale en la cabecera o pie de cada página.
%
@@ -588,7 +640,7 @@ and factura-beispiel-rechnung.tex.
%
% \DescribeMacro{\DescuentoG}{\color{RoyalBlue}|\DescuentoG|\marg{porcentaje}}
%
-% Aplica un descuento total en porcentaje para los elementos gravados con IVA general; dicho descuento es aplicado y mostrado al totalizar. Puede usarse inclusive cuando se aplican descuentos individuales que se incluyen con la opción de la clase '|descuentos|'.
+% Aplica un descuento total en porcentaje para los elementos gravados con IVA general; dicho descuento es aplicado y mostrado al totalizar. Puede usarse inclusive cuando se aplican descuentos individuales que se incluyen con la opción de la clase |descuentos|.
%
% \DescribeMacro{\DescuentoR}{\color{RoyalBlue}|\DescuentoR|\marg{porcentaje}}
%
@@ -609,7 +661,7 @@ and factura-beispiel-rechnung.tex.
%
% \DescribeMacro{\Num}{\color{RoyalBlue}|\Num|\marg{núm}}
%
-% Define el número de la factura. Es opcional porque el talonario de las facturas puede ya tener la numeración. Es de obligatorio uso cuando se define |denom| o |prefactura| y no se usa |sinnumero|.
+% Define el número de la factura. Es opcional porque el talonario de las facturas puede ya tener la numeración. Es de obligatorio uso cuando se define |denom|, o |prefactura| sin usar |sinnumero|.
%
% \DescribeMacro{\NumControl}{\color{RoyalBlue}|\NumControl|\marg{núm}}
%
@@ -677,7 +729,7 @@ and factura-beispiel-rechnung.tex.
% \DescribeMacro{\ItemE}
% {\color{Red}|\Item|\marg{cantidad}\marg{descripción}\marg{precio unitario}\marg{\% descuento}}
%
-% Si se usa la opción |descuentos|, todas las macros |\Item| requieren de un argumento adicional al final, que es el descuento en porcentaje para ese elemento, y deberá especificarse como 0 en los elementos en los que no hay descuento.
+% Si se usa la opción |descuentos|, todas las macros |\Item| requieren de un argumento adicional al final, que es el descuento en porcentaje para ese elemento, y deberá especificarse como |0| en los elementos en los que no hay descuento.
%
% \subsubsection{Opción `{\ttfamily sincantidad}'}
%
@@ -690,26 +742,19 @@ and factura-beispiel-rechnung.tex.
%
% \noindent {\color{Red}|\Item|\marg{descripción}\marg{precio unitario}\marg{\% descuento}}
%
-% Por otra parte, si se usa la opción |sincantidad| al llamar la clase, todos los comandos |\Item| aceptan un argumento menos que es el de la cantidad; eso significa que sin usar la opción |descuentos|, la sintaxis de |\Item| queda como lo indica la primera línea, y usando |descuentos|, queda como lo indica la segunda línea.
+% Por otra parte, si se usa la opción |sincantidad| al llamar la clase, todos los comandos |\Item| aceptan un argumento menos, que es el de la cantidad; eso significa que sin usar la opción |descuentos|, la sintaxis de |\Item| queda como lo indica la primera línea, y usando |descuentos|, queda como lo indica la segunda línea.
%
% La manera como se transforma |\ItemX| es la misma cuando existen estas opciones; este comando nunca lleva precio unitario, así que |sincantidad| le quita el argumento de la cantidad, y |descuentos| le agrega el argumento del descuento, de la misma manera como ocurre con los demás comandos |\Item|.
%
% \subsection{Descripción larga al final de la factura}
%
-% Una vez terminado el ambiente de la factura se puede escribir una descripción larga, que tiene dos formas de presentarse:
+% {
+% Una vez terminado el ambiente de la factura se puede escribir una descripción larga que saldrá en una caja -cuyo estilo puede cambiarse- debajo del renglón de la factura. Si esta descripción no se escribe, simplemente no va a aparecer.
%
-% {\setlength{\parindent}{0pt}
-% \DescribeMacro{\Descripcion}
+% \noindent \DescribeMacro{\Descripcion}
% \DescribeMacro{\desc}{\color{RoyalBlue}|\Descripcion|\marg{texto en formato de párrafos}}
%
-% La caja de la descripción tomará el espacio máximo dejado por los demás elementos; se expandirá con espacio en blanco hasta tomar todo el espacio que hayan dejado las demás partes: el encabezado (datos del cliente y resumen) y el renglón de la factura.
-%
-% \DescribeMacro{\Descripcion*}
-% \DescribeMacro{\desc*}{\color{RoyalBlue}|\Descripcion*|\marg{texto en formato de párrafos}}
-%
-% La caja tomará el espacio mínimo que su texto ocupe, dejando el espacio en blanco como un espacio entre los elementos, que también puede agregarse al renglón de la factura propiamente, y esto se hace usando la opción |relleno|, que es entonces compatible sólo con |\Descripcion*| y no con |\Descripcion|.
-%
-% {\itshape Como podemos ver, |\Descripcion| y |\Descripcion*| son otros de los pocos comandos que no se usan en el preámbulo; estos van justamente al terminar el ambiente |factura|.}
+% {\itshape Como podemos ver, |\Descripcion| es otro de los pocos comandos que no se usan en el preámbulo sino que se escribe jústamente al terminar el ambiente} |factura|.
%
% }
%
@@ -734,16 +779,16 @@ and factura-beispiel-rechnung.tex.
%
% Cuando se compila con |soloreporte|, el motor de compilación no procesa la factura en favor del reporte, y sin especificar ninguna de estas dos opciones, el reporte es ignorado y sale únicamente la factura (o la prefactura o cotización).
%
-% Hay que tener en cuenta que, como se explicó en la sección (\ref{comandos}), el reporte puede tener una imagen de fondo, que puede ser un membrete. Ese membrete si se quiere en todas las páginas, debe incluirse con |\TituloReporte*|, y si se quiere sólo en la primera página del reporte, debe usarse |\TituloReporte|. Ahora, si se usa la versión sin |*|, será necesario también usar |\InicioReporte| con una distancia para empezar a escribir un poco más abajo en la primera página nada más, ya que es la única que tiene el membrete. Pero si se usa la versión con |*|, entonces basta fijar los márgenes con |\GeometriaReporte| para que sea para todas las páginas.
+% Hay que tener en cuenta que, como se explicó en la sección (\ref{comandos}), el reporte puede tener una imagen de fondo, que puede ser un membrete. Ese membrete, si se quiere en todas las páginas deberá incluirse con |\TituloReporte*|, y si se quiere sólo en la primera página del reporte deberá usarse |\TituloReporte|. Ahora, si se usa la versión sin |*|, será necesario también usar |\InicioReporte| con una distancia para empezar a escribir un poco más abajo en la primera página, ya que es la única que tiene el membrete. Pero si se usa la versión con |*|, entonces basta fijar los márgenes para todas las páginas con |\GeometriaReporte|.
%
% Por otra parte, al reporte se le asigna un título, que puede aparecer o no en el encabezado o pie de página. Si se quiere que aparezca el título allí, debe usarse |\TituloReporte*|, de lo contrario, |\TituloReporte|. Si no se especifica el título, entonces la información mostrada allí es la referencia a la factura asociada a este reporte, como se comentó antes cuando se introdujeron estos comandos.
%
% \DescribeMacro{\pagestyle}
% \DescribeMacro{\thispagestyle}
% La clase define varios estilos de página de \LaTeX{}, cambiables con el comando |\pagestyle| o |\thispagestyle|.
-% Estos estilos de página son: \begin{inparaenum}[\bfseries i)]\item |plain|, \item |soloenc|, \item |solopie|, y \item |solonumpag|\end{inparaenum}. Con |plain|, en el encabezado saldrá la información sobre el reporte y en el pie saldrá el número de página; con |soloenc| y |solopie|, toda esa información anterior sale en el encabezado, o en el pie de página, respectivamente; y con |solonumpag|, lo único que aparece es el número de página en el pie de página
+% Estos estilos de página son: \begin{inparaenum}[\bfseries i)]\item |plain|, \item |soloenc|, \item |solopie|, y \item |solonumpag|\end{inparaenum}. Con |plain|, en el encabezado saldrá la información sobre el reporte y en el pie saldrá el número de página; con |soloenc| y |solopie|, toda esa información anterior sale en el encabezado, o en el pie de página, respectivamente; y con |solonumpag|, lo único que aparece es el número de página centrado en el pie de página.
%
-% {\itshape Tanto el comando |\pagestyle| como el comando |\thispagestyle| no se pueden definir en el preámbulo porque la clase luego los sobreescribe cuando empieza el ambiente del reporte; hay que ejecutarlos al empezar el reporte, es decir, dentro del ambiente |reporte|.}
+% {\itshape Tanto el comando |\pagestyle| como el comando |\thispagestyle| no se pueden definir en el preámbulo porque la clase luego los sobreescribe cuando empieza el ambiente del reporte; hay que ejecutarlos al empezar el reporte, es decir, dentro del ambiente} |reporte|.
%
% El formato de la información a colocar en estas partes de las páginas del reporte es cambiable con |\EstiloPag|, descrito anteriormente.
%
@@ -770,7 +815,7 @@ and factura-beispiel-rechnung.tex.
%
% \DescribeMacro{\PosCond}{\color{RoyalBlue}|\PosCond|\marg{pos. x}\marg{pos. y}}
%
-% Con |\PosCond| controlamos dónde se ubica el texto de las condiciones de pago (está hecho con |\parbox|, acepta un párrafo como argumento) en la hoja. {\itshape {\bfseries La coordenada |X| no acepta valores negativos} porque el |\parbox| que coloca el texto de las condiciones llega hasta el final del ancho de la hoja.}
+% Con |\PosCond| controlamos dónde se ubica el texto de las condiciones de pago (está hecho con |\parbox|, acepta un párrafo como argumento) en la hoja. {\itshape {\bfseries La coordenada |X| no acepta valores negativos} porque el |\parbox| que coloca el texto de las condiciones de pago llega siempre hasta el final del ancho de la hoja.}
%
% \DescribeMacro{\PosFirmas}{\color{RoyalBlue}|\PosFirmas|\marg{pos. x-inicial}\marg{pos. x-final}\marg{pos. y}}
%
@@ -795,7 +840,7 @@ and factura-beispiel-rechnung.tex.
%
% Las distintas partes de la factura (a saber: el encabezado, la propia factura y la -opcional- descripción) también están separadas una distancia que puede ser cambiada.
%
-% La separación que se fija aquí es la mínima, y puede ser ajustada por la clase aumentándola cuando alguno de los elementos no llena la hoja, por ejemplo usando |\Descripcion*| sin usar la opción |relleno|. Cuando la descripción (usando |\Descripcion|) o el renglón de la factura (usando |relleno|) toman su tamaño máximo, entonces la separación entre cada elemento vertical de la hoja es la dada con |\SepElementos|, o sea, la que queremos garantizar como la mínima separación entre esas partes.
+% La separación que se fija aquí es la mínima, y puede ser ajustada automáticamente por la clase aumentándola cuando no hay expansión arriba ni abajo (opción |sinexpandir|). Cuando la descripción (usando |expabajo|) o el renglón de la factura toman su tamaño máximo, entonces la separación entre cada elemento vertical de la hoja es la dada con |\SepElementos|, o sea, la que queremos garantizar como la mínima separación entre esas partes.
%
% \DescribeMacro{\SepEncabez}{\color{RoyalBlue}|\SepEncabez|\marg{sep. encabezado}\marg{sep. interna texto}}
%
@@ -828,7 +873,9 @@ and factura-beispiel-rechnung.tex.
% {\setlength{\parindent}{0pt}
% \DescribeMacro{\LetraItems}{\color{RoyalBlue}|\LetraItems|\marg{tipo de letra}}
%
-% Con este comando cambiamos la tipografía utilizada en los ítems o elementos que están en el renglón de la factura, de manera que {\bfseries cambiar la longitud \cs{baselineskip} con el segundo argumento de \cs{fontsize} hará que la tabla tenga una altura distinta de las celdas}, es decir, {\itshape para cambiar la altura de las celdas, la forma correcta es a través de cambiar el tamaño de la letra de sus elementos con este comando. (Véase el archivo |.def|)}.
+% Con este comando cambiamos la tipografía utilizada en los ítems o elementos que están en el renglón de la factura, de manera que {\bfseries cambiar la longitud \cs{baselineskip} con el segundo argumento de \cs{fontsize} hará que la tabla tenga una altura distinta de las celdas}.
+%
+% Lo anterior significa que {\itshape para cambiar la altura de las celdas, la forma correcta es a través de cambiar el tamaño de la letra de sus elementos con este comando. (Véase el archivo |.def|)}.
%
% \DescribeMacro{\LetraNumeros}{\color{RoyalBlue}|\LetraNumeros|\marg{tipo de letra}}
%
@@ -836,7 +883,7 @@ and factura-beispiel-rechnung.tex.
%
% \DescribeMacro{\LetraTipoIVA}{\color{RoyalBlue}|\LetraTipoIVA|\marg{tipo de letra}}
%
-% El tipo del IVA es la letra que indica qué IVA está siendo gravado, por ejemplo, la ``G'' que puede salir al lado de los elementos con IVA general, o ``(E)'' al lado de los elementos exentos. Con esta macro cambiamos la letra con la que eso sale.
+% El tipo del IVA es la letra que indica qué IVA está siendo gravado, por ejemplo, la ``|G|'' que puede salir al lado de los elementos con IVA general, o ``|(E)|'' al lado de los elementos exentos. Con esta macro cambiamos la letra con la que eso sale.
%
% \DescribeMacro{\LetraTitRenglon}{\color{RoyalBlue}|\LetraTitRenglon|\marg{tipo de letra}}
%
@@ -848,7 +895,7 @@ and factura-beispiel-rechnung.tex.
%
% \DescribeMacro{\LetraNumTotales}{\color{RoyalBlue}|\LetraNumTotales|\marg{tipo de letra}}
%
-% El tipo de letra utilizado en los números totalizados expresados en la factura se cambian con esta macro; aquí nos referimos a los números propiamente.
+% El tipo de letra utilizado en los números totalizados expresados en la factura se cambia con esta macro; aquí nos referimos a los números propiamente.
%
% \DescribeMacro{\LetraTitTotal}{\color{RoyalBlue}|\LetraTitTotal|\marg{tipo de letra}}
%
@@ -864,7 +911,7 @@ and factura-beispiel-rechnung.tex.
%
% \DescribeMacro{\LetraEncFactura}{\color{RoyalBlue}|\LetraEncFactura|\marg{tipo de letra}}
%
-% Podemos también cambiar el tipo de letra de la información del encabezado, es decir, el tipo de letra del texto que escribe el usuario en el resumen o de toda la identificación del cliente en la factura. El resumen naturalmente acepta más cambios de tipografía escribiéndolos dentro del comando |\Resumen|.
+% Podemos también cambiar el tipo de letra de la información del encabezado, es decir, el tipo de letra del texto que escribe el usuario en el resumen o de toda la identificación del cliente en la factura. El resumen naturalmente acepta más cambios de tipografía escribiéndolos dentro del párrafo que se escribe con el comando |\Resumen|.
%
% \DescribeMacro{\LetraDatosReporte}{\color{RoyalBlue}|\LetraDatosReporte|\marg{tipo de letra}}
%
@@ -932,7 +979,7 @@ and factura-beispiel-rechnung.tex.
% \DescribeMacro{\@EstiloFirmas}
% Todas estas macros llaman a su correspondiente macro que escribe el texto, que comienza con |\@Estilo|, y con cambiar su contenido podemos cambiar la forma como es escrita esa parte de la factura en la hoja.
%
-% Estas últimas son las que están definidas dentro de |factura.def|, y que eventualmente pueda desearse cambiarlas.
+% Estas últimas son las que están definidas dentro de |factura.def|, y que eventualmente puede desearse cambiarlas.
%
% \DescribeMacro{\@EscribeDatos}
% \DescribeMacro{\@EscribeDatosResumen}
@@ -941,7 +988,7 @@ and factura-beispiel-rechnung.tex.
% \DescribeMacro{\@EscribeTotalesEnCSV}
% \DescribeMacro{\@EncabezadoFactura}
% \DescribeMacro{\@EncabezadoReporte}
-% Adicionalmente tenemos las macros que escriben el contenido de la caja de los datos del cliente, o de las cajas de los datos y del resumen una al lado de la otra. Estos elementos, como no tienen posición fija (tal como se explicó en la sección \ref{geohoja}), entonces no necesitan de una macro que los ubique y otra que escriba el texto, sino simplemente la que escribe el contenido de ese elemento. También la clase consta de una macro interna para escribir los datos del reporte al principio de éste, así como también para dibujar la línea ``de protección'' dentro del renglón de la factura, y para escribir los totales en el archivo |.csv| y para escribir las cajas del encabezado de la factura y los datos del reporte; todas estas son macros internas que no deben ser llamadas por el usuario, y no consideramos que pueda ser común cambiarlas.
+% Adicionalmente tenemos las macros que escriben el contenido de la caja de los datos del cliente, o de las cajas de los datos y del resumen una al lado de la otra. Estos elementos, como no tienen posición fija (tal como se explicó en la sección \ref{geohoja}), entonces no necesitan de una macro que los ubique y otra que escriba el texto, sino simplemente la que escribe el contenido de ese elemento. También la clase consta de una macro interna para escribir los datos del reporte al principio de éste, así como también para dibujar la línea ``de protección'' dentro del renglón de la factura, otra para escribir los totales en el archivo |.csv| y otras dos para escribir las cajas del encabezado de la factura y los datos del reporte; todas estas son macros internas que no deben ser llamadas por el usuario, y no consideramos que pueda ser común cambiarlas.
%
% Cualquiera de estas macros que se quiera redefinir habría que hacerlo en el preámbulo del |.tex| y encerrándolas entre |\makeatletter| y |\makeatother| para poder redefinir una macro que contiene un símbolo ``|@|''.
%
@@ -949,7 +996,7 @@ and factura-beispiel-rechnung.tex.
%
% Por último, disponemos del comando |\mostrar| cuya función es escribir lo que está alojado en una macro interna que contiene ``|@|''. Es necesario un comando para mostrar una macro con este símbolo para que el usuario no tenga que usar |\makeatletter| y |\makeatother|.
%
-% Por ejemplo, el número de la factura está alojado en la variable |\@Num|, y si queremos hacer rererencia a ese número en alguna parte del reporte o de la descripción de la factura podremos usar |\mostrar{@Num}|.
+% Por ejemplo, el número de la factura está alojado en la variable |\@Num|, y si queremos hacer referencia a ese número en alguna parte del reporte o de la descripción de la factura podremos usar |\mostrar{@Num}|.
%
% {\bfseries \itshape Finalmente, como hemos dicho antes, una vez adecuada la clase al diseño que se quiere, se podrán colocar todos los comandos que hacen estos ajustes en un} |.tex| {\itshape o} |.def| {\itshape y cargarlo con} |\input|, |\include| {\itshape o con} |\Cliente|.
%
@@ -971,17 +1018,18 @@ and factura-beispiel-rechnung.tex.
% filas & escribe los totales en filas \\
% centrado & centra los totales en el modo de filas \\
% agrupado & agrupa los totales según su impuesto en el modo de columnas \\
-% relleno & llena con espacio extra el renglón de la factura \\
-% linea & coloca una línea en el espacio rellenado \\
-% nospanish & no carga |babel|, |fontenc|, |inputenc| ni |lmodern| \\
-% unafirma & sólo incluye la firma del emisor \\
-% sinfirmas & no incluye espacios para firmar \\
-% sincond & no incluye las condiciones de pago \\
+% exparriba & llena con espacio extra el renglón de la factura \\
+% sinexpandir & no expande elementos en la factura \\
+% linea & coloca una línea protectora en el renglón de la factura \\
+% nospanish & no carga |babel|, |fontenc| ni |lmodern|
% \end{tabular}\par
% \begin{tabular}{>{\ttfamily}rl}
% \rmfamily \bfseries Opción & \bfseries Significado \\ \hline
+% unafirma & sólo incluye la firma del emisor \\
+% sinfirmas & no incluye espacios para firmar \\
+% sincond & no incluye las condiciones de pago \\
% siniva & no incluye IVA, pero lo deja expresado \\
-% ivanoexplicito & no incluye IVA ni lo expresa \\
+% sinivaexpresado & no incluye IVA ni lo expresa \\
% todosiva & expresa todos los tipos de IVA \\
% G & agrega una ``|G|'' en los ítems con IVA general \\
% impdesc & coloca la denominación del IVA en la descripción \\
@@ -989,12 +1037,12 @@ and factura-beispiel-rechnung.tex.
% sinnumero & no coloca el número cuando se usa |denom| \\
% sincantidad & permite incluir artículos sin cantidades \\
% descuentos & permite incluir descuentos para cada item \\
-% csv & escribe también un archivo |.csv| con la información numérica de la factura \\ \hline
+% csv & escribe también un archivo |.csv| información numérica de la factura \\ \hline
% \end{tabular}
%
% \section{Resumen de los comandos}
%
-% A continuación presentamos una tabla con todos los comandos, que salvo |\FirmaReporte|, |\Item|, |\Descripcion| y |\Descripcion*| se colocan todos en el preámbulo.
+% A continuación presentamos una tabla con todos los comandos, que salvo |\FirmaReporte|, los |\Item| y |\Descripcion|, se colocan todos en el preámbulo.
%
% \begin{tabular}{>{\ttfamily}rl}
% \rmfamily \bfseries Comando & \bfseries Significado \\ \hline
@@ -1005,7 +1053,7 @@ and factura-beispiel-rechnung.tex.
% |\FondoReporte*| & carga la imagen del fondo del reporte para todas las páginas \\
% |\InicioReporte| & distancia hasta el inicio del texto en la primera hoja del reporte \\
% |\FirmaFactura| & carga la imagen de la firma en la factura \\
-% |\FirmaReporte| & carga la imagen de la firma en el reporte\footnote{Este comando no es del preámbulo sino se escribe al finalizar el reporte.} \\
+% |\FirmaReporte| & carga la imagen de la firma en el reporte\footnote{El comando \cs{FirmaReporte} se escribe dentro del ambiente \texttt{reporte} y no en el preámbulo.} \\
% |\TituloReporte| & establece el título del reporte \\
% |\TituloReporte*| & establece el título del reporte a salir en todas las páginas \\
% |\EstiloPag| & cambia la información de las cabeceras o piés de página del reporte \\
@@ -1026,12 +1074,12 @@ and factura-beispiel-rechnung.tex.
% |\NumControl| & número de control de la factura \\
% |\NumSerieControl| & número de serie de control de la factura \\
% |\Denom| & nombre de la denominación de documento \\
-% |\Condiciones| & establece las condiciones de pago \\
-% |\Resumen| & resumen \\
-% |\Cliente| & carga un archivo |.def| o |.tex| con personalizaciones \\
% \end{tabular}\par
% \begin{tabular}{>{\ttfamily}rl}
% \rmfamily \bfseries Comando & \bfseries Significado \\ \hline
+% |\Condiciones| & establece las condiciones de pago \\
+% |\Resumen| & resumen \\
+% |\Cliente| & carga un archivo |.def| o |.tex| con personalizaciones \\
% |\PosFecha| & posición $(x,y)$ de la fecha \\
% |\PosDenom| & posición $(x,y)$ del texto de la denominación \\
% |\PosControl| & posición $(x,y)$ del número de control \\
@@ -1067,9 +1115,8 @@ and factura-beispiel-rechnung.tex.
% |\LetraTitReporte| & tipografía para el título del reporte \\
% |\LetraEncReporte| & tipografía para los encabezados o piés de página del reporte \\
% |\LetraReporte| & tipografía para el reporte \\
-% |\Item[RAEX]| & agrega un elemento a la factura\footnote{Estos comandos \cs{Item} se escriben dentro del ambiente \texttt{factura}.} \\
-% |\Descripcion| & descripción de la factura, tomando el espacio máximo\footnote{Tanto \cs{Descripcion} como \cs{Descripcion*} son comandos que van dentro del documento, luego del ambiente \texttt{factura}.} \\
-% |\Descripcion*| & descripción de la factura, tomando el espacio mínimo \\ \hline
+% |\Item[RAEX]| & agrega un elemento a la factura\footnote{Estos comandos \cs{Item} se escriben dentro del ambiente \texttt{factura} y no en el preámbulo.} \\
+% |\Descripcion| & descripción larga de la factura\footnote{El comando \cs{Descripcion} se escribe dentro del documento, luego del ambiente \texttt{factura}, y no en el preámbulo.} \\
% \end{tabular}
%
% \StopEventually{\endorgo}
@@ -1079,7 +1126,7 @@ and factura-beispiel-rechnung.tex.
\newif\if@prefactura
\newif\if@cotizacion
\newif\if@spanish \@spanishtrue
-\newif\if@ivaexplicito \@ivaexplicitotrue
+\newif\if@ivaexpresado \@ivaexpresadotrue
\newif\if@todosiva
\newif\if@confirmas \@confirmastrue
\newif\if@unafirma \@unafirmafalse
@@ -1104,7 +1151,7 @@ and factura-beispiel-rechnung.tex.
\newif\if@cdu \@cdutrue
\newif\if@dcu
\newif\if@duc
-\newif\if@relleno
+\newif\if@exparriba
\newif\if@fondofactura
\newif\if@fondoreporte
\newif\if@fondoreportestar
@@ -1112,6 +1159,7 @@ and factura-beispiel-rechnung.tex.
\newif\if@reporte
\newif\if@nombre
\newif\if@impdesc
+\newif\if@descuentostotales
\RequirePackage{xifthen}% 'xifthen' para algunos de los condicionales.
\RequirePackage{etoolbox}% 'etoolbox' para los condicionales binarios.
@@ -1124,6 +1172,8 @@ and factura-beispiel-rechnung.tex.
\newboolean{DCU}
\newboolean{DUC}
\newboolean{PrimeroDesc}
+\newboolean{ExpAbajo}\booltrue{ExpAbajo}
+
%% Condicionales auxiliares para hacer que la línea oblicua salga donde corresponde.
\newboolean{LineaDesdeColUno}
\newboolean{LineaDesdeColDos}
@@ -1181,13 +1231,13 @@ and factura-beispiel-rechnung.tex.
\fi}
\DeclareOption{siniva}{\AtBeginDocument{\gdef\@ImpuestoG{0}\gdef\@ImpuestoR{0}\gdef\@ImpuestoA{0}}}% No cobra IVA.
\DeclareOption{todosiva}{\@todosivatrue}% Con esta opción salen todos los IVA así valgan cero.
-\DeclareOption{ivanoexplicito}{% Cuando no se cobra IVA y tampoco se quiere que aparezca la totalización del IVA.
+\DeclareOption{sinivaexpresado}{% Cuando no se cobra IVA y tampoco se quiere que aparezca la totalización del IVA.
+ \@ivaexpresadofalse
\if@filas
- \ClassWarning{factura}{La opción 'ivanoexplicito' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'}{}
+ \ClassWarning{factura}{La opción 'sinivaexpresado' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'}{}
\@filasfalse
\else
\AtBeginDocument{\gdef\@ImpuestoG{0}\gdef\@ImpuestoR{0}\gdef\@ImpuestoA{0}}
- \@ivaexplicitofalse
\fi}
\DeclareOption{sincantidad}{% Para no colocar el campo de la cantidad.
\booltrue{SinCantidad}
@@ -1202,12 +1252,13 @@ and factura-beispiel-rechnung.tex.
\DeclareOption{sinlineasv}{% Estilo 'sinlineasv'.
\booltrue{SinLineasV}}
-\DeclareOption{relleno}{\@rellenotrue}% Para rellenar con líneas en blanco de manera automática.
+\DeclareOption{exparriba}{\@exparribatrue\boolfalse{ExpAbajo}}% Para rellenar con líneas en blanco de manera automática.
+\DeclareOption{sinexpandir}{\boolfalse{ExpAbajo}\@exparribafalse}% No expande ninguna de las dos partes de la factura.
\DeclareOption{linea}{% Para la línea que protege el espacio en blanco.
- \if@relleno
+ \if@exparriba
\@lineatrue
\else
- \ClassWarning{factura}{La opción 'linea' requiere la opción 'relleno'. Sin efecto opción 'linea'.}{}
+ \ClassWarning{factura}{La opción 'linea' requiere la opción 'exparriba'. Sin efecto opción 'linea'.}{}
\fi}
\DeclareOption{conreporte}{\@reportetrue}% Para imprimir factura y reporte.
\DeclareOption{soloreporte}{\@reportetrue\@facturafalse}% Para imprimir sólo el reporte.
@@ -1392,11 +1443,11 @@ and factura-beispiel-rechnung.tex.
\def\Proveedor#1{\gdef\@Proveedor{#1}}
%% Los descuentos.
-\def\Descuento#1{\gdef\@DescuentoGPorc{#1}\gdef\@DescuentoRPorc{#1}\gdef\@DescuentoAPorc{#1}\gdef\@DescuentoEPorc{#1}}
-\def\DescuentoG#1{\gdef\@DescuentoGPorc{#1}}
-\def\DescuentoR#1{\gdef\@DescuentoRPorc{#1}}
-\def\DescuentoA#1{\gdef\@DescuentoAPorc{#1}}
-\def\DescuentoE#1{\gdef\@DescuentoEPorc{#1}}
+\def\Descuento#1{\@descuentostotalestrue\gdef\@DescuentoGPorc{#1}\gdef\@DescuentoRPorc{#1}\gdef\@DescuentoAPorc{#1}\gdef\@DescuentoEPorc{#1}}
+\def\DescuentoG#1{\@descuentostotalestrue\gdef\@DescuentoGPorc{#1}}
+\def\DescuentoR#1{\@descuentostotalestrue\gdef\@DescuentoRPorc{#1}}
+\def\DescuentoA#1{\@descuentostotalestrue\gdef\@DescuentoAPorc{#1}}
+\def\DescuentoE#1{\@descuentostotalestrue\gdef\@DescuentoEPorc{#1}}
\def\Denom#1{\gdef\@Denominacion{#1}}% La denominación puede ser 'FACTURA', 'COTIZACIÓN' u otra.
\def\@Denominacion{\@@DenomFactura}% Se predetermina la factura.
@@ -1510,11 +1561,11 @@ and factura-beispiel-rechnung.tex.
%% Separación horizontal entre las cajas del encabezado y separación interna entre la línea y el texto.
%<class>\def\SepEncabez#1#2{\setlength{\@SeparaEncabez}{#1}\setlength{\@SeparaInternaEncabez}{#2}}
-%<def>\SepEncabez{0.2cm}{4pt}
+%<def>\SepEncabez{0.2cm}{6pt}
%% Separación interna entre la línea y el texto de la descripción.
%<class>\def\SepDescrip#1{\setlength{\@SeparaInternaDescrip}{#1}}
-%<def>\SepDescrip{4pt}
+%<def>\SepDescrip{6pt}
%% Espesor de la línea de las cajas del encabezado, curvatura de la esquina y sombra.
%<class>\def\LineaEncabez#1#2#3{\setlength{\@EspesorLineaEncabez}{#1}\setlength{\@EsquinaLineaEncabez}{#2}\setlength{\@SombraEncabez}{#3}}
@@ -1573,7 +1624,7 @@ and factura-beispiel-rechnung.tex.
%<class>\def\LetraTipoIVA#1{\gdef\@LetraTipoIVA{#1\selectfont}}
%<def>\LetraTipoIVA{\fontsize{12}{12}}
-%% Letra para la descripción general (comando \desc).
+%% Letra para la descripción larga (comando \Descripcion).
%<class>\def\LetraDescripcion#1{\gdef\@LetraDescripcion{#1\selectfont}}
%<def>\LetraDescripcion{\fontsize{14}{16.8}}
@@ -1619,7 +1670,7 @@ and factura-beispiel-rechnung.tex.
\ifx&#3&\else\setlength{\@FirmaFacturaYcorr}{#3}\fi
\savebox{\@CajaFirmaEmisor}{#1}%
\if@reporte
- \expandafter\AtBeginDocument
+ \expandafter\AtBeginShipoutNext
\else
\expandafter\AtEndDocument
\fi
@@ -1677,7 +1728,7 @@ and factura-beispiel-rechnung.tex.
\end{textblock*}
\fi}
-%% Con \FondoFactura le damos el nombre del archivo que contiene el formato de la factura, por ejemplo para compilaciones con 'prefactura', 'cotizacion' o para incluir una imagen de fondo como ``marca de agua''.
+%% Con \FondoFactura le damos el nombre del archivo que contiene el formato de la factura, por ejemplo para compilaciones con 'prefactura', 'cotizacion' o para incluir una imagen de fondo como 'marca de agua'.
\newcommand{\FondoFactura}[1]{%
\if@factura
\RequirePackage{graphicx}%
@@ -1773,9 +1824,6 @@ and factura-beispiel-rechnung.tex.
\input{factura.def}% Cargamos los valores predeterminados.
-%% \@SeparaMinTotales es el mínimo espacio entre los totales en el modo 'filas', y SepTotales es una dimensión interna, estirable, con ese como su mínimo.
-\AtBeginDocument{\expandafter\setlength{\@SepTotales}{\the\@SeparaMinTotales plus 1fill}}
-
\if@todosiva
\@BIRtrue
\@BIAtrue
@@ -1791,11 +1839,10 @@ and factura-beispiel-rechnung.tex.
\if@spanish
\RequirePackage[spanish]{babel}% Babel en castellano.
\RequirePackage[T1]{fontenc}% Codificación T1 para las tipografías.
- \RequirePackage[utf8]{inputenc}% UTF-8.
\IfFileExists{lmodern.sty}{\RequirePackage{lmodern}}{}
\fi
-\if@relleno
+\if@exparriba
\RequirePackage{zref-savepos}% Para guardar la posición en 'Y'.
\fi
@@ -1808,19 +1855,14 @@ and factura-beispiel-rechnung.tex.
\newcommand\@EncabezadoFactura{%
\ifdefvoid{\@Resumen}{\@EscribeDatos}{\@EscribeDatosResumen}%
\vspace*{\@SeparaElementos}%
- \if@relleno\else\vfill\fi}
+ \if@exparriba\else\vfill\fi}
%% Comando para escribir el encabezado en el modo de reporte.
\newcommand\@EncabezadoReporte{%
- \vspace*{-\topskip}% TODO: ¿se coloca o no?
+ \vspace*{-\topskip}%
\vspace*{\@InicioRep}%
\@EscribeDatosReporte
\@LetraReporte}
-% \end{macrocode}
-% \starttodo
-% \todo*{Determinar si aplica \cs{vspace*\{\cs{topskip}\}} en \cs{@EncabezadoReporte}.}
-% \stoptodo
-% \begin{macrocode}
%% El ambiente 'factura', usando el paquete 'environ' para su definición, y el comando auxiliar \@FacturaAuxCmd.
%% Gracias a Heiko Oberdiek y David Carlisle (Thanks to Heiko Oberdiek and David Carlisle).
@@ -1834,11 +1876,11 @@ and factura-beispiel-rechnung.tex.
%% Comando auxiliar para la definición del ambiente de la factura; al final de este comando está el texto que va en el enddef del ambiente de la factura.
% \end{macrocode}
% \starttodo
-% \todo*{Implementar bien la alineación vertical de los elementos cuando la descripción ocupa más que una línea en la tabla de la factura.}
+% \todo*{Implementar bien la alineación vertical de los campos cuando la descripción ocupa más que una línea en la tabla de la factura.}
% \stoptodo
% \begin{macrocode}
\newcommand{\@FacturaAuxCmd}[1]{%
- \if@relleno
+ \if@exparriba
\setlength{\@EspacioVacioInicial}{\zposy{EspacioVacioInicial}sp}%
\setlength{\@EspacioVacioFinal}{\zposy{EspacioVacioFinal}sp}%
\global\@EspacioVacioInicial=\@EspacioVacioInicial% ¿por qué tendré que globalizarlas?
@@ -1849,7 +1891,7 @@ and factura-beispiel-rechnung.tex.
\ifx\undefined\Total\relax\else\ClassError{factura}{** Parece ya haber un renglón de montos **}{}\fi
%
% http://tex.stackexchange.com/questions/111203/tabularx-bottom-alignment-on-r-or-l-columns-when-x-column-wraps
- \renewcommand{\tabularxcolumn}[1]{m{##1}}% TODO: Alineación vertical cuando hay más de una línea.
+ \renewcommand{\tabularxcolumn}[1]{m{##1}}% TODO: Cuando el campo de la descripción en la factura ocupa más que una línea, los de al lado salen centrados.
% Comando para poner en cero los contadores de los totales porque el ambiente de la factura se evalúa tres veces y los totales se sumarían todos tres veces.
\newcommand{\@ZERO}{%
\FPset\BIG{0}\global\let\BIG\BIG
@@ -1901,9 +1943,9 @@ and factura-beispiel-rechnung.tex.
if@Desc##1\endcsname%
\@EscribeTotalColSubt{##1}%
\@EscribeTotalColDesc{##1}%
- \if@ivaexplicito\@EscribeTotalColBI{##1}\fi
+ \if@ivaexpresado\@EscribeTotalColBI{##1}\fi
\else
- \if@ivaexplicito\@EscribeTotalColBI{##1}\fi
+ \if@ivaexpresado\@EscribeTotalColBI{##1}\fi
\fi}%
% Forma agupada para la presentación de totales en modo de columnas.
\newcommand{\@EscribeTotalColAgrupado}{%
@@ -1919,7 +1961,7 @@ and factura-beispiel-rechnung.tex.
\if@BIR\@EscribeTotalColBI{R}\fi
\@EscribeTotalColBI{G}%
\if@BIA\@EscribeTotalColBI{A}\fi
- \if@ivaexplicito
+ \if@ivaexpresado
\if@BIR\@EscribeTotalColAlicuota{R}\fi
\@EscribeTotalColAlicuota{G}%
\if@BIA\@EscribeTotalColAlicuota{A}\fi
@@ -2152,7 +2194,8 @@ and factura-beispiel-rechnung.tex.
\let\ItemG\Item
\newcommand{\ItemX}[1]{% Ítem sin precio.
\if@csv\immediate\write\csv{"\unexpanded{##1}"}\fi
- & ##1 && \if@descuentos ... \fi & \hfill ... \hfill\mbox{}\\}}
+ & ##1 && \if@descuentos ... \fi & \hfill ... \hfill\mbox{}\\
+ \if@lineaitem\hline\fi}}
{% Con cantidad:
\if@descuentos
\newcommand{\Item}[4]{\@ITEM{G}{##1}{##2}{##3}{##4}}% Ítem normal.
@@ -2178,7 +2221,8 @@ and factura-beispiel-rechnung.tex.
\if@duc
\if@csv\immediate\write\csv{"\unexpanded{##2}","","##1"}\fi
##2 & \hfill ... \hfill\mbox{} & \@LetraNumeros\numprint{##1} & \if@descuentos ... \fi & \hfill ... \hfill\mbox{} \\
- \fi}}%
+ \fi
+ \if@lineaitem\hline\fi}}%
\@LetraItems% Este es el tipo de letra que tendrán los items, y en este tipo de letra se define el \baselineskip de toda la factura.
\ifbool{SinCantidad}
% Abramos la tabla.
@@ -2296,7 +2340,7 @@ and factura-beispiel-rechnung.tex.
%
#1% Aquí entran todos los items que el usuario declara dentro del ambiente.
\if@filas
- % Esto en lugar de \if@relleno para que no se haga una linea vacía en la tabla cuando la caja está vacía.
+ % Esto en lugar de \if@exparriba para que no se haga una linea vacía en la tabla cuando la caja está vacía.
\ifdim \ht\@CajaEspacioVacio=0pt
\if@lineaitem\else\hline\fi% Verificamos si hay que poner la línea horizontal. Si está 'lineaitem' ya salió debido a esta opción.
\else
@@ -2323,11 +2367,11 @@ and factura-beispiel-rechnung.tex.
\@EscribeTotalColAgrupado
\else
\if@Exento \@EscribeTotalCol{E}\fi
- \if@BIR\@EscribeTotalCol{R}\if@ivaexplicito\@EscribeTotalColAlicuota{R}\fi\fi
- \@EscribeTotalCol{G}\if@ivaexplicito\@EscribeTotalColAlicuota{G}\fi
- \if@BIA\@EscribeTotalCol{A}\if@ivaexplicito\@EscribeTotalColAlicuota{A}\fi\fi
+ \if@BIR\@EscribeTotalCol{R}\if@ivaexpresado\@EscribeTotalColAlicuota{R}\fi\fi
+ \@EscribeTotalCol{G}\if@ivaexpresado\@EscribeTotalColAlicuota{G}\fi
+ \if@BIA\@EscribeTotalCol{A}\if@ivaexpresado\@EscribeTotalColAlicuota{A}\fi\fi
\fi
- \cline{2-2}%
+ \if@ivaexpresado\cline{2-2}\fi%
\hfill \@LetraTitTotal\@@Total & \@TotalTotal\@LetraNumTotal\numprint{\Total}\\
\end{tabular}\endgroup%
\\\hline
@@ -2337,7 +2381,7 @@ and factura-beispiel-rechnung.tex.
\if@filas
\@LetraNumTotales
\vspace*{\@SeparaElementos}\par
- \if@relleno\else\vfill\fi
+ \if@exparriba\else\vfill\fi
\@TotalTotal
\@GeneraCajasTotalesFilas
\newbox{\@CajaTotal}%
@@ -2397,13 +2441,13 @@ and factura-beispiel-rechnung.tex.
\fi
\fi
\par
- \if@relleno
+ \if@exparriba
\vspace*{-\@EspacioVacioInicial}%
\vspace*{\@EspacioVacioFinal}%
\zsaveposy{EspacioVacioInicial}%
\fi
\vfill
- \if@relleno\zsaveposy{EspacioVacioFinal}\fi
+ \if@exparriba\zsaveposy{EspacioVacioFinal}\fi
\vspace*{\@SeparaElementos}\par}
\if@factura
@@ -2419,6 +2463,13 @@ and factura-beispiel-rechnung.tex.
\else
\pagestyle{empty}%
\fi
+ % Los descuentos totales no son compatibles -y no sé si lo serán- con el modo de totalización en filas.
+ \if@filas
+ \if@descuentostotales
+ \ClassWarning{factura}{La opción 'filas' no es compatible aún con los descuentos totales; sin efecto opción 'filas'.}{}
+ \@filasfalse\boolfalse{Filas}
+ \fi
+ \fi
\addtolength{\@PosFechaX}{\oddsidemargin+1in}% Le sumamos el margen izquierdo a las posiciones de las cosas; importante que se haga en un \AtBeginDocument antes de que empiecen a escribirse otras cosas que también se agregan a \AtBeginDocument.
\addtolength{\@PosDenomX}{\oddsidemargin+1in}%
\addtolength{\@PosControlX}{\oddsidemargin+1in}%
@@ -2427,11 +2478,12 @@ and factura-beispiel-rechnung.tex.
\setlength{\parindent}{0pt}%
\setlength{\lineskip}{0pt}%
\setlength{\parskip}{0pt plus 1pt}%
+ \expandafter\setlength{\@SepTotales}{\the\@SeparaMinTotales plus 1fill}% \@SeparaMinTotales es el mínimo espacio entre los totales en el modo 'filas', y SepTotales es una dimensión interna, estirable, con ese como su mínimo.
\thispagestyle{empty}%
\pagenumbering{roman}%
\@EncabezadoFactura}
\if@reporte
- \expandafter\AtBeginDocument
+ \expandafter\AtBeginShipoutNext
\else
\expandafter\AtEndDocument% Para la factura no puede estar lo que viene en un \AtBeginDocument porque se inserta un espacio extra que genera una página extra; tiene que estar en \AtEndDocument.
\fi
@@ -2459,21 +2511,20 @@ and factura-beispiel-rechnung.tex.
\fi
%% El comando para la descripción del servicio prestado.
- \NewDocumentCommand{\Descripcion}{s +m}{%
+ \NewDocumentCommand{\Descripcion}{+m}{%
\@LetraDescripcion
\begin{tikzpicture}
\node[draw=black, fill=white, inner sep=\@SeparaInternaDescrip, line width=\@EspesorLineaDescrip, rounded corners=\@EsquinaLineaDescrip,
copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraDescrip, shadow yshift=-\@SombraDescrip}]{%
- \IfBooleanTF{#1}%
- {\parbox[t]{\textwidth-\@SombraDescrip-2\@SeparaInternaDescrip-2\@EspesorLineaDescrip}}%
- {\parbox[t][\textheight-\pagetotal-2\@SeparaInternaDescrip-\@EspesorLineaDescrip-\@SombraDescrip]
- {\textwidth-2\@SeparaInternaDescrip-\@EspesorLineaDescrip-\@SombraDescrip}}%
- {\setlength{\parindent}{0.5cm}%
- \setlength{\parskip}{2pt plus 8pt}%
- \IfBooleanF{#1}{\vfill}%
- #2%
- \IfBooleanF{#1}{\vfill}%
- }};
+ \ifbool{ExpAbajo}
+ {\parbox[t][\textheight-\pagetotal-2\@SeparaInternaDescrip-\@EspesorLineaDescrip-\@SombraDescrip]
+ {\textwidth-2\@SeparaInternaDescrip-\@EspesorLineaDescrip-\@SombraDescrip}}%
+ {\parbox[t]{\textwidth-\@SombraDescrip-2\@SeparaInternaDescrip-2\@EspesorLineaDescrip}}%
+ {\setlength{\parindent}{0.5cm}%
+ \setlength{\parskip}{2pt plus 8pt}%
+ \ifbool{ExpAbajo}{\vfill}{}%
+ #1%
+ \ifbool{ExpAbajo}{\vfill}{}}};%
\end{tikzpicture}
\par\vspace*{\@SombraDescrip}}%
\else
@@ -2524,15 +2575,15 @@ and factura-beispiel-rechnung.tex.
%% Comando para el fondo del reporte.
\newcommand{\@CargaFondoReporte}{%
- \if@fondoreporte
- \if@fondoreportestar
- \AddToShipoutPictureBG{\includegraphics{\@FondoReporte}}%
- \else
- \begin{textblock*}{\paperwidth}(0pt,0pt)%
- \noindent\includegraphics{\@FondoReporte}%
- \end{textblock*}%
+ \begin{textblock*}{\paperwidth}(0pt,0pt)% Tuve que abrir el textblock* aquí para que aplique siempre; de esta manera se corrige un defecto que se produce cuando se usa \vspace* al inicio de la página (dentro de \@EncabezadoReporte).
+ \if@fondoreporte
+ \if@fondoreportestar
+ \AddToShipoutPictureBG{\includegraphics{\@FondoReporte}}%
+ \else
+ \noindent\includegraphics{\@FondoReporte}%
+ \fi
\fi
- \fi}
+ \end{textblock*}}
%% Comando que coloca las firmas.
\newcommand{\@PosicionaFirmas}{%
@@ -2550,16 +2601,11 @@ and factura-beispiel-rechnung.tex.
\savebox{\@CajaCond}{%
\parbox{\textwidth+\oddsidemargin+1in-\@PosCondX}{\@EstiloCondiciones}}%
\ifbool{CondYnegativo}
- {\addtolength{\@PosCondY}{\paperheight}}% TODO: ¿como los demás o lo dejo así?
+ {\addtolength{\@PosCondY}{\paperheight}}% Aquí la caja abre hacia abajo, por eso no restamos el tamaño de la caja (\ht y \dp).
{}%
\begin{textblock*}{\wd\@CajaCond}(\@PosCondX,\@PosCondY)%
\usebox{\@CajaCond}%
\end{textblock*}}
-% \end{macrocode}
-% \starttodo
-% \todo*{¿La caja de las condiciones de pago abre hacia arriba como todas las demás cajas o abre hacia abajo como está?}
-% \stoptodo
-% \begin{macrocode}
%% Comando que coloca el número de control.
\newcommand{\@PosicionaNumControl}{%
@@ -2686,7 +2732,7 @@ and factura-beispiel-rechnung.tex.
%% \FPifeq\@DescuentoAPorc{0}\else\if@BIA\addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi
%% \FPifeq\@DescuentoEPorc{0}\else\if@Exento\addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi
\addtolength{\@LineaNodoYo}{\baselineskip/2}%
- \if@ivaexplicito
+ \if@ivaexpresado
\addtolength{\@LineaNodoYo}{2\baselineskip}%
\if@BIR\addtolength{\@LineaNodoYo}{2\baselineskip}\fi
\if@BIA\addtolength{\@LineaNodoYo}{2\baselineskip}\fi
@@ -2829,8 +2875,6 @@ and factura-beispiel-rechnung.tex.
%<*!class&!def&!firma&!fondo&!membrete&!batchfile>
%% Descripción de este ejemplo:
%
-%<beispiel>%% Adaptado a otra legislación,
-%
%<uno|dos|tres|cuatro|cinco|seis>%% Hacemos una factura,
%<prefac>%% Hacemos una prefactura (prefactura),
%<cotiza>%% Hacemos una cotización (cotizacion),
@@ -2853,8 +2897,11 @@ and factura-beispiel-rechnung.tex.
%<tres>%% Agrupados los gravámenes (agrupado),
%<dos>%% Sin líneas verticales (sinlineasv),
%<tres|cinco>%% Separado cada ítem con una línea horizontal (lineaitem),
-%<tres|cuatro|cinco|cotiza>%% Rellenado el espacio en blanco dentro del renglón de la factura (relleno),
-%<tres|cinco|cotiza>%% Con línea protectora del espacio en blanco (linea),
+%
+%<cinco|seis>%% Sin expandir el renglón de la factura ni la descripción (sinexpandir),
+%<tres|cuatro|cotiza>%% Expande el renglón de la factura con espacio en blanco (exparriba),
+%<tres|cotiza>%% Con línea protectora del espacio en blanco (linea),
+%
%<tres>%% Con el tipo de impuesto como parte de la descripción y no de los precios (impdesc),
%<cinco>%% Especificando 'G' en los ítems gravados con IVA general (G),
%<cinco>%% Obligando a especificar todos los IVA así no existan productos gravados con ellos (todosiva),
@@ -2865,7 +2912,7 @@ and factura-beispiel-rechnung.tex.
%<dos>%% Escribe el archivo CSV de valores separados por comas (csv),
%
%<cinco>%% Cambiando la geometría del papel de la factura (\GeometriaReporte),
-%<repdos|reptres>%% Cambiando la geometría del papel del reporte (\GeometriaReporte),
+%<repdos>%% Cambiando la geometría del papel del reporte (\GeometriaReporte y \InicioRep),
%<dos|cuatro>%% Usando \Nombre y \CI en lugar de \RazonSocial y \RIF,
%<tres>%% Sin especificar el emisor de la factura porque no saldrá el espacio para que firme,
%<cuatro>%% Sin especificar la persona de contacto,
@@ -2874,6 +2921,7 @@ and factura-beispiel-rechnung.tex.
%
%<prefac|cotiza|repdos>%% Agregando la firma escaneada en la factura (\FirmaFactura),
%<repdos>%% Agregando la firma escaneada en el reporte (\FirmaReporte),
+%<reptres>%% Agregando la línea para firmar a mano el reporte (\FirmaReporte),
%<prefac|cotiza>%% Con el fondo de la imprenta agregado (\FondoFactura),
%<repuno|reptres>%% Especificamos el fondo (membrete) del reporte, sólo para la primera página (\FondoReporte),
%<repdos>%% Especificamos el fondo (membrete) del reporte para todas las páginas (\FondoReporte*),
@@ -2899,9 +2947,10 @@ and factura-beispiel-rechnung.tex.
%
%<dos|tres>%% Con artículos gravados con todos los IVA,
%
-%<uno|dos|seis|prefac|repuno>%% Descripción larga del servicio con caja expandida verticalmente (\Descripcion).
-%<cuatro|cinco|cotiza|repdos>%% Descripción larga del servicio con caja sin expandir verticalmente (\Descripcion*).
+%<!tres&!reptres&!beispiel>%% Con descripción larga.
%<tres|reptres>%% Sin descripción larga.
+%<beispiel>%% Adaptado a otra legislación.
+%%
\documentclass[
%<prefac|beispiel>prefactura,
%<cotiza>cotizacion,
@@ -2920,8 +2969,9 @@ and factura-beispiel-rechnung.tex.
%<tres>agrupado,
%<dos>sinlineasv,
%<tres|cinco>lineaitem,
-%<tres|cuatro|cinco|cotiza>relleno,
-%<tres|cinco|cotiza>linea,
+%<cinco|seis>sinexpandir,
+%<tres|cuatro|cotiza>exparriba,
+%<tres|cotiza>linea,
%<tres>impdesc,
%<cinco>G,
%<cinco>todosiva,
@@ -2975,8 +3025,8 @@ and factura-beispiel-rechnung.tex.
%<beispiel>\makeatother
%<cinco>\GeometriaFactura{a3paper,vmargin={5cm,5.5cm},hmargin={1cm,1cm},footskip=0pt,headsep=0pt,headheight=0pt}
-%<repdos|reptres>\GeometriaReporte{letterpaper,vmargin={4.4cm,2.5cm},hmargin={3cm,2cm},footskip=1.2cm,headsep=0.777cm,headheight=1.5cm}
-%<repdos|reptres>\InicioReporte{0cm}
+%<repdos>\GeometriaReporte{letterpaper,vmargin={4.4cm,2.5cm},hmargin={3cm,2cm},footskip=1.2cm,headsep=0.777cm,headheight=1.5cm}
+%<repdos>\InicioReporte{0cm}
\Fecha{01-01-2016}
%<!dos&!cuatro&!cotiza&!beispiel>\RazonSocial{Ayala San Vicente Usureros}
%<cotiza>\RS{Ayala y San Vicente}
@@ -3035,7 +3085,7 @@ and factura-beispiel-rechnung.tex.
\begin{factura}
%<!dos&!cinco&!beispiel> \Item{1}{ítem con IVA general}{1000}
-%<uno> \Item{4}{otro ítem con IVA general}{100}
+%<uno,cuatro> \Item{4}{otro ítem con IVA general}{100}
%<tres> \ItemR{1}{ítem con IVA reducido}{1000}
%<tres> \ItemA{1}{ítem con IVA adicional}{1000}
%<tres> \ItemE{1}{ítem exento de impuesto}{1000}
@@ -3043,18 +3093,17 @@ and factura-beispiel-rechnung.tex.
%<cinco> \Item{ítem sin cantidad, con IVA general}{1000}
%<cinco> \ItemA{ítem sin cantidad, con IVA adicional}{1000}
%<cinco> \ItemX{línea sin precio}
-%<dos> \Item{1}{ítem con IVA general y descuento}{1000}{8}
-%<dos> \ItemR{1}{ítem con IVA reducido y descuento}{1000}{5}
-%<dos> \ItemA{1}{ítem con IVA adiciona y descuento}{1000}{10}
-%<dos> \ItemE{1}{ítem exento de impuesto y descuento}{1000}{8}
+%<dos> \Item{1}{ítem con IVA general, con descuento}{1000}{8}
+%<dos> \ItemR{1}{ítem con IVA reducido, con descuento}{1000}{5}
+%<dos> \ItemA{1}{ítem con IVA adicional, con descuento}{1000}{10}
+%<dos> \ItemE{1}{ítem exento de impuesto, con descuento}{1000}{8}
%<dos> \ItemX{1}{línea sin precio}
%<beispiel> \Item{1}{Artikel mit 19\% MwSt}{100}
%<beispiel> \ItemR{1}{Artikel mit 7\% MwSt}{100}
%<beispiel> \ItemE{1}{Artikel mit kein MwSt}{100}
\end{factura}
%<!tres&!reptres>
-%<uno|dos|seis|prefac|repuno|rep>\Descripcion{Descripción del servicio con {\ttfamily \textbackslash Descripcion}, centrada verticalmente, tomando el espacio máximo disponible que los demás elementos dejan en la hoja.}
-%<cuatro|cinco|cotiza|repdos>\Descripcion*{Descripción del servicio con {\ttfamily \textbackslash Descripcion*} ocupando el tamaño mínimo que su texto ocupe, sin expandirla.}
+%<!tres&!reptres&!beispiel>\Descripcion{Descripción larga del servicio}
%<beispiel>\Descripcion{Lange Beschreibung.}
%<repuno|repdos|reptres|cinco|seis>
%<repuno|repdos|reptres|cinco|seis>\begin{reporte}
@@ -3062,13 +3111,14 @@ and factura-beispiel-rechnung.tex.
%<reptres> \pagestyle{solopie}
%<repuno|repdos|reptres|cinco|seis> El reporte - página 1\newpage El reporte - página 2 \newpage El reporte - página 3
%<repdos|cinco|seis> \FirmaReporte[\includegraphics[width=5cm]{factura-ejemplo-firma}][0pt][21pt]
+%<reptres> \vspace{1.5cm}\FirmaReporte
%<repuno|repdos|reptres|cinco|seis>\end{reporte}
\end{document}
%</!class&!def&!firma&!fondo&!membrete&!batchfile>
%<*firma>
%% (PSTricks code generated with LaTeXDraw 2.0.8)
-%%
+%% (Compilar con XeLaTeX)
\documentclass{article}
\usepackage[hmargin={0cm,0cm},vmargin={0cm,0cm},paperwidth=5cm,paperheight=2.3cm]{geometry}
\usepackage[usenames,dvipsnames]{pstricks}
@@ -3162,48 +3212,56 @@ and factura-beispiel-rechnung.tex.
%<*fondo|membrete>
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
-\usepackage{tikz}
+\usepackage{tikz}\usetikzlibrary{positioning}
\usepackage{calc}
\usepackage[letterpaper,hmargin={1cm,1cm},vmargin={1cm,1cm},footskip=0pt,headsep=0pt,headheight=0pt]{geometry}
\parindent0pt
\lineskip0pt
\pagestyle{empty}
\begin{document}
- \begin{minipage}[t][\textheight]{\textwidth}
+ \begin{minipage}[b][\textheight]{\textwidth}
\baselineskip13pt
\parskip0pt
\lineskip0pt
- \centering{%
- \begin{tikzpicture}
- \node [draw=none, fill=gray,rounded corners=4pt]{%
- \parbox{0.57\textwidth}{%
- \vspace*{0.1cm}%
- \centering
- \color{white}%
- \fontfamily{ppl}\LARGE\bfseries Lázaro de la Vega y San Román}};
- \end{tikzpicture}\par
- \begin{tikzpicture}
- \node [draw=gray, line width=2pt, rounded corners=9pt]{%
- \parbox{0.64\textwidth}{%
- \parskip2pt
- \centering
- \color{gray}%
- \fontfamily{ppl}\footnotesize\bfseries Av. Garcilaso de la Vega, Qta. San Román, Santa Mónica, Caracas, Venezuela.
- \par
- Teléfono: +58 (123) 456.78.90 / email: lázaro@sanrom.án}};
- \end{tikzpicture}}\par
- \parbox{0.61\textwidth}{%
- \mbox{}\hfill%
- \color{gray}%
- \fontfamily{aer}\footnotesize\bfseries RIF: V-87.654.321-0}%
-%<fondo> \vfill
-%<fondo> {\tiny \bfseries ESTA FORMA LIBRE VA SIN TACHADURA NI ENMIENDA \hfill SOLO EL ORIGINAL DA DERECHO A CRÉDITO FISCAL}\par
-%<fondo> \fontsize{6}{9}\selectfont
-%<fondo> Imprenta: IMPRESOS DE LA VEGA. Av. Garcilaso de la Vega, Qta. San Román, Santa Mónica, Caracas, Venezuela. RIF: R-87.654.321-0. Tlf: (0123) 456.78.90\par
-%<fondo> e-mail: imprenta@sanrom.án. No. Providencia SENIAT 01/01060 de fecha 12/11/2008 - Control desde No. 00-000001 hasta No. 00-010000 / Fecha 01/01/2016.\par
+ \hspace*{\fill}%
+ \begin{tikzpicture}
+ \node (Nombre) [draw=none, fill=gray, rounded corners=4pt]{%
+ \parbox{0.57\textwidth}{%
+ \vspace*{0.1cm}%
+ \centering
+ \color{white}\fontfamily{ppl}\LARGE\bfseries
+ Lázaro de la Vega y San Román}};
+ \node [node distance=0pt, below = of Nombre, outer sep=0pt, draw=gray, line width=2pt, inner sep=3.5pt, rounded corners=8pt]{%
+ \parbox{0.66\textwidth}{%
+ \vspace*{3pt}%
+ \parskip2pt
+ \centering
+ \color{gray}\fontfamily{ppl}\footnotesize\bfseries
+ Av. Garcilaso de la Vega, Qta. San Román, Santa Mónica, Caracas, Venezuela.
+ \par
+ Teléfono: +58 (123) 456.78.90 / email: lázaro@sanrom.án
+ \vspace*{3pt}}};
+ \end{tikzpicture}
+ \hspace*{\fill}\par
+ \hspace*{\fill}%
+ \parbox{0.63\textwidth}{%
+ \color{gray}\fontfamily{aer}\footnotesize\bfseries
+ \hfill
+ RIF: V-87.654.321-0}%
+ \hspace*{\fill}\par
+ \vfill\mbox{}%
+%<fondo> \fontsize{6}{8}\selectfont
+%<fondo> \hspace*{0.5cm}%
+%<fondo> \parskip2pt
+%<fondo> {\bfseries ESTA FORMA LIBRE VA SIN TACHADURA NI ENMIENDA \hfill SÓLO EL ORIGINAL DA DERECHO A CRÉDITO FISCAL}
+%<fondo> \hspace*{0.5cm}\par%
+%<fondo> \fontdimen2\font=0.55em
+%<fondo> Imprenta: \hfill IMPRESOS DE LA VEGA. Av. Garcilaso de la Vega, Qta. San Román, Santa Mónica, Caracas, Venezuela. RIF: R-87.654.321-0. Tlf: (0123) 456.78.90\newline
+%<fondo> \fontdimen2\font=0.65em
+%<fondo> e-mail: \hfill imprenta@sanrom.án. No. Providencia SENIAT 01/01060 de fecha 12/11/2008 - Control desde No. 00-000001 hasta No. 00-010000 / Fecha 01/01/2016.\par
\end{minipage}
\end{document}
%</fondo|membrete>
% \end{macrocode}
% \Finale
-% \starttodo \ No newline at end of file
+% \starttodo
diff --git a/Master/texmf-dist/source/latex/factura/factura.ins b/Master/texmf-dist/source/latex/factura/factura.ins
index 312a51f4349..043b96444b7 100644
--- a/Master/texmf-dist/source/latex/factura/factura.ins
+++ b/Master/texmf-dist/source/latex/factura/factura.ins
@@ -67,17 +67,13 @@ and factura-beispiel-rechnung.tex.
\keepsilent
\askforoverwritefalse
\obeyspaces
-\Msg{******************************************************************************}
-\Msg{********************************** factura ***********************************}
-\Msg{******************************************************************************}
+\Msg{*****************************************************************}
+\Msg{**************************** factura ****************************}
+\Msg{*****************************************************************}
\generate{\file{\jobname.cls}{\from{\jobname.dtx}{class}}}
\generate{\file{\jobname.def}{\from{\jobname.dtx}{def}}}
\Msg{\jobname.cls and \jobname.def written.}
\Msg{}
-\immediate\write18{makeindex -s gind.ist -o \jobname.ind \jobname.idx}
-\immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo}
-\Msg{}
-\Msg{Change history and index updated.}
\postamble
\endpostamble
\def\uno{factura-ejemplo-factura1.tex}
@@ -110,23 +106,32 @@ and factura-beispiel-rechnung.tex.
\generate{\file{\firma}{\from{\jobname.dtx}{firma}}}
\generate{\file{\fondo}{\from{\jobname.dtx}{fondo}}}
\generate{\file{\membrete}{\from{\jobname.dtx}{membrete}}}
-\Msg{examples written.}
+\Msg{.tex examples written.}
\Msg{}
-\Msg{******************************************************************************}
+\Msg{*****************************************************************}
+\immediate\write18{makeindex -s gind.ist -o \jobname.ind \jobname.idx}
+\immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo}
+\Msg{}
+\Msg{Change history and index updated.}
+\Msg{*****************************************************************}
\Msg{To produce only package files, type}
\Msg{ pdftex \jobname.dtx}
-\Msg{To produce package files and the documentation, compile \jobname.dtx file with}
+\Msg{To produce package files and pdf documentation, type}
\Msg{ pdflatex \jobname.dtx}
-\Msg{To manual update the index and changelog, type}
+\Msg{ pdflatex factura-ejemplo-fondo.tex}
+\Msg{ pdflatex factura-ejemplo-membrete.tex}
+\Msg{ xelatex factura-ejemplo-firma.tex}
+\Msg{ pdflatex factura-ejemplo-prefactura.tex}
+\Msg{and recompile \jobname.dtx.}
+\Msg{To manual update index and changelog, type}
\Msg{ makeindex -s gind.ist -o \jobname.ind \jobname.idx}
\Msg{ makeindex -s gglo.ist -o \jobname.gls \jobname.glo}
-\Msg{respectively, and recompile \jobname.dtx.}
\Msg{}
-\Msg{More information about compiling on PDF documentation}
+\Msg{More information (in spanish) about compiling on README and documentation.}
\Msg{}
-\Msg{******************************************************************************}
-\Msg{********************************** factura ***********************************}
-\Msg{******************************************************************************}
+\Msg{*****************************************************************}
+\Msg{**************************** factura ****************************}
+\Msg{*****************************************************************}
\Msg{}
\endbatchfile
%%
diff --git a/Master/texmf-dist/tex/latex/factura/factura.cls b/Master/texmf-dist/tex/latex/factura/factura.cls
index 7822e805d84..cc71d655842 100644
--- a/Master/texmf-dist/tex/latex/factura/factura.cls
+++ b/Master/texmf-dist/tex/latex/factura/factura.cls
@@ -35,7 +35,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{factura}
-[2015/03/30 v2.00^^J
+[2015/04/13 v2.05^^J
Clase para elaborar facturas legales en la^^J
República Bolivariana de Venezuela.
]
@@ -43,7 +43,7 @@ República Bolivariana de Venezuela.
\newif\if@prefactura
\newif\if@cotizacion
\newif\if@spanish \@spanishtrue
-\newif\if@ivaexplicito \@ivaexplicitotrue
+\newif\if@ivaexpresado \@ivaexpresadotrue
\newif\if@todosiva
\newif\if@confirmas \@confirmastrue
\newif\if@unafirma \@unafirmafalse
@@ -68,7 +68,7 @@ República Bolivariana de Venezuela.
\newif\if@cdu \@cdutrue
\newif\if@dcu
\newif\if@duc
-\newif\if@relleno
+\newif\if@exparriba
\newif\if@fondofactura
\newif\if@fondoreporte
\newif\if@fondoreportestar
@@ -76,6 +76,7 @@ República Bolivariana de Venezuela.
\newif\if@reporte
\newif\if@nombre
\newif\if@impdesc
+\newif\if@descuentostotales
\RequirePackage{xifthen}% 'xifthen' para algunos de los condicionales.
\RequirePackage{etoolbox}% 'etoolbox' para los condicionales binarios.
@@ -88,6 +89,8 @@ República Bolivariana de Venezuela.
\newboolean{DCU}
\newboolean{DUC}
\newboolean{PrimeroDesc}
+\newboolean{ExpAbajo}\booltrue{ExpAbajo}
+
%% Condicionales auxiliares para hacer que la línea oblicua salga donde corresponde.
\newboolean{LineaDesdeColUno}
\newboolean{LineaDesdeColDos}
@@ -145,13 +148,13 @@ República Bolivariana de Venezuela.
\fi}
\DeclareOption{siniva}{\AtBeginDocument{\gdef\@ImpuestoG{0}\gdef\@ImpuestoR{0}\gdef\@ImpuestoA{0}}}% No cobra IVA.
\DeclareOption{todosiva}{\@todosivatrue}% Con esta opción salen todos los IVA así valgan cero.
-\DeclareOption{ivanoexplicito}{% Cuando no se cobra IVA y tampoco se quiere que aparezca la totalización del IVA.
+\DeclareOption{sinivaexpresado}{% Cuando no se cobra IVA y tampoco se quiere que aparezca la totalización del IVA.
+ \@ivaexpresadofalse
\if@filas
- \ClassWarning{factura}{La opción 'ivanoexplicito' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'}{}
+ \ClassWarning{factura}{La opción 'sinivaexpresado' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'}{}
\@filasfalse
\else
\AtBeginDocument{\gdef\@ImpuestoG{0}\gdef\@ImpuestoR{0}\gdef\@ImpuestoA{0}}
- \@ivaexplicitofalse
\fi}
\DeclareOption{sincantidad}{% Para no colocar el campo de la cantidad.
\booltrue{SinCantidad}
@@ -166,12 +169,13 @@ República Bolivariana de Venezuela.
\DeclareOption{sinlineasv}{% Estilo 'sinlineasv'.
\booltrue{SinLineasV}}
-\DeclareOption{relleno}{\@rellenotrue}% Para rellenar con líneas en blanco de manera automática.
+\DeclareOption{exparriba}{\@exparribatrue\boolfalse{ExpAbajo}}% Para rellenar con líneas en blanco de manera automática.
+\DeclareOption{sinexpandir}{\boolfalse{ExpAbajo}\@exparribafalse}% No expande ninguna de las dos partes de la factura.
\DeclareOption{linea}{% Para la línea que protege el espacio en blanco.
- \if@relleno
+ \if@exparriba
\@lineatrue
\else
- \ClassWarning{factura}{La opción 'linea' requiere la opción 'relleno'. Sin efecto opción 'linea'.}{}
+ \ClassWarning{factura}{La opción 'linea' requiere la opción 'exparriba'. Sin efecto opción 'linea'.}{}
\fi}
\DeclareOption{conreporte}{\@reportetrue}% Para imprimir factura y reporte.
\DeclareOption{soloreporte}{\@reportetrue\@facturafalse}% Para imprimir sólo el reporte.
@@ -285,11 +289,11 @@ República Bolivariana de Venezuela.
\def\Proveedor#1{\gdef\@Proveedor{#1}}
%% Los descuentos.
-\def\Descuento#1{\gdef\@DescuentoGPorc{#1}\gdef\@DescuentoRPorc{#1}\gdef\@DescuentoAPorc{#1}\gdef\@DescuentoEPorc{#1}}
-\def\DescuentoG#1{\gdef\@DescuentoGPorc{#1}}
-\def\DescuentoR#1{\gdef\@DescuentoRPorc{#1}}
-\def\DescuentoA#1{\gdef\@DescuentoAPorc{#1}}
-\def\DescuentoE#1{\gdef\@DescuentoEPorc{#1}}
+\def\Descuento#1{\@descuentostotalestrue\gdef\@DescuentoGPorc{#1}\gdef\@DescuentoRPorc{#1}\gdef\@DescuentoAPorc{#1}\gdef\@DescuentoEPorc{#1}}
+\def\DescuentoG#1{\@descuentostotalestrue\gdef\@DescuentoGPorc{#1}}
+\def\DescuentoR#1{\@descuentostotalestrue\gdef\@DescuentoRPorc{#1}}
+\def\DescuentoA#1{\@descuentostotalestrue\gdef\@DescuentoAPorc{#1}}
+\def\DescuentoE#1{\@descuentostotalestrue\gdef\@DescuentoEPorc{#1}}
\def\Denom#1{\gdef\@Denominacion{#1}}% La denominación puede ser 'FACTURA', 'COTIZACIÓN' u otra.
\def\@Denominacion{\@@DenomFactura}% Se predetermina la factura.
@@ -428,7 +432,7 @@ República Bolivariana de Venezuela.
%% El tipo de IVA ('G', 'R', 'A' o '(E)') también tiene su tipo de letra.
\def\LetraTipoIVA#1{\gdef\@LetraTipoIVA{#1\selectfont}}
-%% Letra para la descripción general (comando \desc).
+%% Letra para la descripción larga (comando \Descripcion).
\def\LetraDescripcion#1{\gdef\@LetraDescripcion{#1\selectfont}}
%% Tipo de letra para el texto bajo las líneas para firmar.
@@ -463,7 +467,7 @@ República Bolivariana de Venezuela.
\ifx&#3&\else\setlength{\@FirmaFacturaYcorr}{#3}\fi
\savebox{\@CajaFirmaEmisor}{#1}%
\if@reporte
- \expandafter\AtBeginDocument
+ \expandafter\AtBeginShipoutNext
\else
\expandafter\AtEndDocument
\fi
@@ -521,7 +525,7 @@ República Bolivariana de Venezuela.
\end{textblock*}
\fi}
-%% Con \FondoFactura le damos el nombre del archivo que contiene el formato de la factura, por ejemplo para compilaciones con 'prefactura', 'cotizacion' o para incluir una imagen de fondo como ``marca de agua''.
+%% Con \FondoFactura le damos el nombre del archivo que contiene el formato de la factura, por ejemplo para compilaciones con 'prefactura', 'cotizacion' o para incluir una imagen de fondo como 'marca de agua'.
\newcommand{\FondoFactura}[1]{%
\if@factura
\RequirePackage{graphicx}%
@@ -616,9 +620,6 @@ República Bolivariana de Venezuela.
\input{factura.def}% Cargamos los valores predeterminados.
-%% \@SeparaMinTotales es el mínimo espacio entre los totales en el modo 'filas', y SepTotales es una dimensión interna, estirable, con ese como su mínimo.
-\AtBeginDocument{\expandafter\setlength{\@SepTotales}{\the\@SeparaMinTotales plus 1fill}}
-
\if@todosiva
\@BIRtrue
\@BIAtrue
@@ -634,11 +635,10 @@ República Bolivariana de Venezuela.
\if@spanish
\RequirePackage[spanish]{babel}% Babel en castellano.
\RequirePackage[T1]{fontenc}% Codificación T1 para las tipografías.
- \RequirePackage[utf8]{inputenc}% UTF-8.
\IfFileExists{lmodern.sty}{\RequirePackage{lmodern}}{}
\fi
-\if@relleno
+\if@exparriba
\RequirePackage{zref-savepos}% Para guardar la posición en 'Y'.
\fi
@@ -651,11 +651,11 @@ República Bolivariana de Venezuela.
\newcommand\@EncabezadoFactura{%
\ifdefvoid{\@Resumen}{\@EscribeDatos}{\@EscribeDatosResumen}%
\vspace*{\@SeparaElementos}%
- \if@relleno\else\vfill\fi}
+ \if@exparriba\else\vfill\fi}
%% Comando para escribir el encabezado en el modo de reporte.
\newcommand\@EncabezadoReporte{%
- \vspace*{-\topskip}% TODO: ¿se coloca o no?
+ \vspace*{-\topskip}%
\vspace*{\@InicioRep}%
\@EscribeDatosReporte
\@LetraReporte}
@@ -671,7 +671,7 @@ República Bolivariana de Venezuela.
%% Comando auxiliar para la definición del ambiente de la factura; al final de este comando está el texto que va en el enddef del ambiente de la factura.
\newcommand{\@FacturaAuxCmd}[1]{%
- \if@relleno
+ \if@exparriba
\setlength{\@EspacioVacioInicial}{\zposy{EspacioVacioInicial}sp}%
\setlength{\@EspacioVacioFinal}{\zposy{EspacioVacioFinal}sp}%
\global\@EspacioVacioInicial=\@EspacioVacioInicial% ¿por qué tendré que globalizarlas?
@@ -682,7 +682,7 @@ República Bolivariana de Venezuela.
\ifx\undefined\Total\relax\else\ClassError{factura}{** Parece ya haber un renglón de montos **}{}\fi
%
% http://tex.stackexchange.com/questions/111203/tabularx-bottom-alignment-on-r-or-l-columns-when-x-column-wraps
- \renewcommand{\tabularxcolumn}[1]{m{##1}}% TODO: Alineación vertical cuando hay más de una línea.
+ \renewcommand{\tabularxcolumn}[1]{m{##1}}% TODO: Cuando el campo de la descripción en la factura ocupa más que una línea, los de al lado salen centrados.
% Comando para poner en cero los contadores de los totales porque el ambiente de la factura se evalúa tres veces y los totales se sumarían todos tres veces.
\newcommand{\@ZERO}{%
\FPset\BIG{0}\global\let\BIG\BIG
@@ -734,9 +734,9 @@ República Bolivariana de Venezuela.
if@Desc##1\endcsname%
\@EscribeTotalColSubt{##1}%
\@EscribeTotalColDesc{##1}%
- \if@ivaexplicito\@EscribeTotalColBI{##1}\fi
+ \if@ivaexpresado\@EscribeTotalColBI{##1}\fi
\else
- \if@ivaexplicito\@EscribeTotalColBI{##1}\fi
+ \if@ivaexpresado\@EscribeTotalColBI{##1}\fi
\fi}%
% Forma agupada para la presentación de totales en modo de columnas.
\newcommand{\@EscribeTotalColAgrupado}{%
@@ -752,7 +752,7 @@ República Bolivariana de Venezuela.
\if@BIR\@EscribeTotalColBI{R}\fi
\@EscribeTotalColBI{G}%
\if@BIA\@EscribeTotalColBI{A}\fi
- \if@ivaexplicito
+ \if@ivaexpresado
\if@BIR\@EscribeTotalColAlicuota{R}\fi
\@EscribeTotalColAlicuota{G}%
\if@BIA\@EscribeTotalColAlicuota{A}\fi
@@ -985,7 +985,8 @@ República Bolivariana de Venezuela.
\let\ItemG\Item
\newcommand{\ItemX}[1]{% Ítem sin precio.
\if@csv\immediate\write\csv{"\unexpanded{##1}"}\fi
- & ##1 && \if@descuentos ... \fi & \hfill ... \hfill\mbox{}\\}}
+ & ##1 && \if@descuentos ... \fi & \hfill ... \hfill\mbox{}\\
+ \if@lineaitem\hline\fi}}
{% Con cantidad:
\if@descuentos
\newcommand{\Item}[4]{\@ITEM{G}{##1}{##2}{##3}{##4}}% Ítem normal.
@@ -1011,7 +1012,8 @@ República Bolivariana de Venezuela.
\if@duc
\if@csv\immediate\write\csv{"\unexpanded{##2}","","##1"}\fi
##2 & \hfill ... \hfill\mbox{} & \@LetraNumeros\numprint{##1} & \if@descuentos ... \fi & \hfill ... \hfill\mbox{} \\
- \fi}}%
+ \fi
+ \if@lineaitem\hline\fi}}%
\@LetraItems% Este es el tipo de letra que tendrán los items, y en este tipo de letra se define el \baselineskip de toda la factura.
\ifbool{SinCantidad}
% Abramos la tabla.
@@ -1129,7 +1131,7 @@ República Bolivariana de Venezuela.
%
#1% Aquí entran todos los items que el usuario declara dentro del ambiente.
\if@filas
- % Esto en lugar de \if@relleno para que no se haga una linea vacía en la tabla cuando la caja está vacía.
+ % Esto en lugar de \if@exparriba para que no se haga una linea vacía en la tabla cuando la caja está vacía.
\ifdim \ht\@CajaEspacioVacio=0pt
\if@lineaitem\else\hline\fi% Verificamos si hay que poner la línea horizontal. Si está 'lineaitem' ya salió debido a esta opción.
\else
@@ -1156,11 +1158,11 @@ República Bolivariana de Venezuela.
\@EscribeTotalColAgrupado
\else
\if@Exento \@EscribeTotalCol{E}\fi
- \if@BIR\@EscribeTotalCol{R}\if@ivaexplicito\@EscribeTotalColAlicuota{R}\fi\fi
- \@EscribeTotalCol{G}\if@ivaexplicito\@EscribeTotalColAlicuota{G}\fi
- \if@BIA\@EscribeTotalCol{A}\if@ivaexplicito\@EscribeTotalColAlicuota{A}\fi\fi
+ \if@BIR\@EscribeTotalCol{R}\if@ivaexpresado\@EscribeTotalColAlicuota{R}\fi\fi
+ \@EscribeTotalCol{G}\if@ivaexpresado\@EscribeTotalColAlicuota{G}\fi
+ \if@BIA\@EscribeTotalCol{A}\if@ivaexpresado\@EscribeTotalColAlicuota{A}\fi\fi
\fi
- \cline{2-2}%
+ \if@ivaexpresado\cline{2-2}\fi%
\hfill \@LetraTitTotal\@@Total & \@TotalTotal\@LetraNumTotal\numprint{\Total}\\
\end{tabular}\endgroup%
\\\hline
@@ -1170,7 +1172,7 @@ República Bolivariana de Venezuela.
\if@filas
\@LetraNumTotales
\vspace*{\@SeparaElementos}\par
- \if@relleno\else\vfill\fi
+ \if@exparriba\else\vfill\fi
\@TotalTotal
\@GeneraCajasTotalesFilas
\newbox{\@CajaTotal}%
@@ -1230,13 +1232,13 @@ República Bolivariana de Venezuela.
\fi
\fi
\par
- \if@relleno
+ \if@exparriba
\vspace*{-\@EspacioVacioInicial}%
\vspace*{\@EspacioVacioFinal}%
\zsaveposy{EspacioVacioInicial}%
\fi
\vfill
- \if@relleno\zsaveposy{EspacioVacioFinal}\fi
+ \if@exparriba\zsaveposy{EspacioVacioFinal}\fi
\vspace*{\@SeparaElementos}\par}
\if@factura
@@ -1252,6 +1254,13 @@ República Bolivariana de Venezuela.
\else
\pagestyle{empty}%
\fi
+ % Los descuentos totales no son compatibles -y no sé si lo serán- con el modo de totalización en filas.
+ \if@filas
+ \if@descuentostotales
+ \ClassWarning{factura}{La opción 'filas' no es compatible aún con los descuentos totales; sin efecto opción 'filas'.}{}
+ \@filasfalse\boolfalse{Filas}
+ \fi
+ \fi
\addtolength{\@PosFechaX}{\oddsidemargin+1in}% Le sumamos el margen izquierdo a las posiciones de las cosas; importante que se haga en un \AtBeginDocument antes de que empiecen a escribirse otras cosas que también se agregan a \AtBeginDocument.
\addtolength{\@PosDenomX}{\oddsidemargin+1in}%
\addtolength{\@PosControlX}{\oddsidemargin+1in}%
@@ -1260,11 +1269,12 @@ República Bolivariana de Venezuela.
\setlength{\parindent}{0pt}%
\setlength{\lineskip}{0pt}%
\setlength{\parskip}{0pt plus 1pt}%
+ \expandafter\setlength{\@SepTotales}{\the\@SeparaMinTotales plus 1fill}% \@SeparaMinTotales es el mínimo espacio entre los totales en el modo 'filas', y SepTotales es una dimensión interna, estirable, con ese como su mínimo.
\thispagestyle{empty}%
\pagenumbering{roman}%
\@EncabezadoFactura}
\if@reporte
- \expandafter\AtBeginDocument
+ \expandafter\AtBeginShipoutNext
\else
\expandafter\AtEndDocument% Para la factura no puede estar lo que viene en un \AtBeginDocument porque se inserta un espacio extra que genera una página extra; tiene que estar en \AtEndDocument.
\fi
@@ -1292,21 +1302,20 @@ República Bolivariana de Venezuela.
\fi
%% El comando para la descripción del servicio prestado.
- \NewDocumentCommand{\Descripcion}{s +m}{%
+ \NewDocumentCommand{\Descripcion}{+m}{%
\@LetraDescripcion
\begin{tikzpicture}
\node[draw=black, fill=white, inner sep=\@SeparaInternaDescrip, line width=\@EspesorLineaDescrip, rounded corners=\@EsquinaLineaDescrip,
copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraDescrip, shadow yshift=-\@SombraDescrip}]{%
- \IfBooleanTF{#1}%
- {\parbox[t]{\textwidth-\@SombraDescrip-2\@SeparaInternaDescrip-2\@EspesorLineaDescrip}}%
- {\parbox[t][\textheight-\pagetotal-2\@SeparaInternaDescrip-\@EspesorLineaDescrip-\@SombraDescrip]
- {\textwidth-2\@SeparaInternaDescrip-\@EspesorLineaDescrip-\@SombraDescrip}}%
- {\setlength{\parindent}{0.5cm}%
- \setlength{\parskip}{2pt plus 8pt}%
- \IfBooleanF{#1}{\vfill}%
- #2%
- \IfBooleanF{#1}{\vfill}%
- }};
+ \ifbool{ExpAbajo}
+ {\parbox[t][\textheight-\pagetotal-2\@SeparaInternaDescrip-\@EspesorLineaDescrip-\@SombraDescrip]
+ {\textwidth-2\@SeparaInternaDescrip-\@EspesorLineaDescrip-\@SombraDescrip}}%
+ {\parbox[t]{\textwidth-\@SombraDescrip-2\@SeparaInternaDescrip-2\@EspesorLineaDescrip}}%
+ {\setlength{\parindent}{0.5cm}%
+ \setlength{\parskip}{2pt plus 8pt}%
+ \ifbool{ExpAbajo}{\vfill}{}%
+ #1%
+ \ifbool{ExpAbajo}{\vfill}{}}};%
\end{tikzpicture}
\par\vspace*{\@SombraDescrip}}%
\else
@@ -1357,15 +1366,15 @@ República Bolivariana de Venezuela.
%% Comando para el fondo del reporte.
\newcommand{\@CargaFondoReporte}{%
- \if@fondoreporte
- \if@fondoreportestar
- \AddToShipoutPictureBG{\includegraphics{\@FondoReporte}}%
- \else
- \begin{textblock*}{\paperwidth}(0pt,0pt)%
- \noindent\includegraphics{\@FondoReporte}%
- \end{textblock*}%
+ \begin{textblock*}{\paperwidth}(0pt,0pt)% Tuve que abrir el textblock* aquí para que aplique siempre; de esta manera se corrige un defecto que se produce cuando se usa \vspace* al inicio de la página (dentro de \@EncabezadoReporte).
+ \if@fondoreporte
+ \if@fondoreportestar
+ \AddToShipoutPictureBG{\includegraphics{\@FondoReporte}}%
+ \else
+ \noindent\includegraphics{\@FondoReporte}%
+ \fi
\fi
- \fi}
+ \end{textblock*}}
%% Comando que coloca las firmas.
\newcommand{\@PosicionaFirmas}{%
@@ -1383,7 +1392,7 @@ República Bolivariana de Venezuela.
\savebox{\@CajaCond}{%
\parbox{\textwidth+\oddsidemargin+1in-\@PosCondX}{\@EstiloCondiciones}}%
\ifbool{CondYnegativo}
- {\addtolength{\@PosCondY}{\paperheight}}% TODO: ¿como los demás o lo dejo así?
+ {\addtolength{\@PosCondY}{\paperheight}}% Aquí la caja abre hacia abajo, por eso no restamos el tamaño de la caja (\ht y \dp).
{}%
\begin{textblock*}{\wd\@CajaCond}(\@PosCondX,\@PosCondY)%
\usebox{\@CajaCond}%
@@ -1514,7 +1523,7 @@ República Bolivariana de Venezuela.
%% \FPifeq\@DescuentoAPorc{0}\else\if@BIA\addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi
%% \FPifeq\@DescuentoEPorc{0}\else\if@Exento\addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi
\addtolength{\@LineaNodoYo}{\baselineskip/2}%
- \if@ivaexplicito
+ \if@ivaexpresado
\addtolength{\@LineaNodoYo}{2\baselineskip}%
\if@BIR\addtolength{\@LineaNodoYo}{2\baselineskip}\fi
\if@BIA\addtolength{\@LineaNodoYo}{2\baselineskip}\fi
diff --git a/Master/texmf-dist/tex/latex/factura/factura.def b/Master/texmf-dist/tex/latex/factura/factura.def
index df7feb6f06c..665d30d2043 100644
--- a/Master/texmf-dist/tex/latex/factura/factura.def
+++ b/Master/texmf-dist/tex/latex/factura/factura.def
@@ -34,7 +34,7 @@
%% and factura-beispiel-rechnung.tex.
%%
\ProvidesFile{factura.def}
-[2015/03/30 v2.00^^J
+[2015/04/13 v2.05^^J
Archivo valores iniciales y condiciones de borde para factura.cls
]
@@ -128,10 +128,10 @@ Archivo valores iniciales y condiciones de borde para factura.cls
\SepElementos{0.2cm}
%% Separación horizontal entre las cajas del encabezado y separación interna entre la línea y el texto.
-\SepEncabez{0.2cm}{4pt}
+\SepEncabez{0.2cm}{6pt}
%% Separación interna entre la línea y el texto de la descripción.
-\SepDescrip{4pt}
+\SepDescrip{6pt}
%% Espesor de la línea de las cajas del encabezado, curvatura de la esquina y sombra.
\LineaEncabez{0.4pt}{10pt}{0pt}
@@ -176,7 +176,7 @@ Archivo valores iniciales y condiciones de borde para factura.cls
%% El tipo de IVA ('G', 'R', 'A' o '(E)') también tiene su tipo de letra.
\LetraTipoIVA{\fontsize{12}{12}}
-%% Letra para la descripción general (comando \desc).
+%% Letra para la descripción larga (comando \Descripcion).
\LetraDescripcion{\fontsize{14}{16.8}}
%% Tipo de letra para el texto bajo las líneas para firmar.