texlive[43470] Master/texmf-dist: factura (11mar17)

commits+karl at tug.org commits+karl at tug.org
Sun Mar 12 00:09:59 CET 2017


Revision: 43470
          http://tug.org/svn/texlive?view=revision&revision=43470
Author:   karl
Date:     2017-03-12 00:09:59 +0100 (Sun, 12 Mar 2017)
Log Message:
-----------
factura (11mar17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/factura/README
    trunk/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura1.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura2.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura3.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura4.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura5.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura6.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura7.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura8.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-firma.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-fondo.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-membrete.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura.pdf
    trunk/Master/texmf-dist/source/latex/factura/factura.dtx
    trunk/Master/texmf-dist/source/latex/factura/factura.ins
    trunk/Master/texmf-dist/tex/latex/factura/factura.cls
    trunk/Master/texmf-dist/tex/latex/factura/factura.def

Modified: trunk/Master/texmf-dist/doc/latex/factura/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/README	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/README	2017-03-11 23:09:59 UTC (rev 43470)
@@ -13,7 +13,7 @@
 
 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 2016.
+providencias del SENIAT, válidas para la fecha de este paquete.
 
 Con la clase 'factura' se pueden elaborar facturas en formas libres
 fiscales, se pueden elaborar cotizaciones y reportes de servicios.
@@ -31,6 +31,12 @@
 $ pdflatex factura-ejemplo-membrete.tex
 $ xelatex factura-ejemplo-firma.tex
 $ pdflatex factura-ejemplo-prefactura.tex
+$ pdflatex factura-ejemplo-cotizacion.tex
+$ pdflatex factura-ejemplo-factura1.tex
+... hasta el último
+$ pdflatex factura-ejemplo-reporte1.tex
+... hasta el último
+$ pdflatex factura-beispiel-rechnung.tex
 $ pdflatex factura.dtx
 
 Los índices y la lista de cambios se generan automáticamente al compilar

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `beispiel')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,7 +35,9 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Adaptado a otra legislación.
+%%</desc>
 %%
 \documentclass[
 prefactura,
@@ -47,46 +49,46 @@
 \usepackage[ngerman]{babel}
 \usepackage[T1]{fontenc}
 
- \def\Moneda{\euro{}}
+\def\Moneda{\euro{}}
 \makeatletter
- \def\@AlicuotaG{0.19}
- \def\@AlicuotaR{0.07}
- \def\@DenomAlicuotaG{A}
- \def\@DenomAlicuotaR{C}
- \def\@DenomAlicuotaE{B}
- \def\@@Datos{Kundenidentifikation}
- \def\@@Resumen{Zusammenfassung}
- \def\@@Fecha{Datum:}
- \def\@@Nombre{Kunde:} \def\@@RazonSocial{Kunde:}
- \def\@@RIF{USt-IdNr:} \def\@@CT{USt-IdNr:}
- \def\@@Contacto{Kontactperson:}
- \def\@@Direccion{Adresse:}
- \def\@@Telefono{Telefon:}
- \def\@@Email{E-mail:}
- \def\@@Cliente{Kunde:}
- \def\@@Proveedor{Lieferant:}
- \def\@@Cantidad{Menge}
- \def\@@Descripcion{Beschreibung}
- \def\@@PrecioU{Einzelpreis}
- \def\@@PrecioT{Gesamt}
- \def\@@Precio{Preis}
- \def\@@AlicuotaG{MwSt A}
- \def\@@AlicuotaR{MwSt C}
- \def\@@BIG{Netto 19\%}
- \def\@@BIR{Netto 7\%}
- \def\@@BIE{Mwst-befreit}
- \def\@@Total{Brutto}% Zu zahlen / Brutto / Summe / Gesamt
- \def\@@Conforme{der Kunde}
- \def\@@DenomFactura{Rechnung}
- \def\@@DenomCotiza{Voranschlag}
- % \LetraNumeracion{\fontsize{14}{14}\bfseries}
- \renewcommand{\@EstiloDenom}{\@LetraDenom\@Denominacion-\if at sinnumero\else\@LetraNumeracion Nr:\space\@Num\fi}
- \renewcommand{\@EstiloNumControl}{}
+\def\@AlicuotaG{0.19}
+\def\@AlicuotaR{0.07}
+\def\@DenomAlicuotaG{A}
+\def\@DenomAlicuotaR{C}
+\def\@DenomAlicuotaE{B}
+\def\@@Datos{Kundenidentifikation}
+\def\@@Resumen{Zusammenfassung}
+\def\@@Fecha{Datum:}
+\def\@@Nombre{Kunde:} \def\@@RazonSocial{Kunde:}
+\def\@@RIF{USt-IdNr:} \def\@@CT{USt-IdNr:}
+\def\@@Contacto{Kontactperson:}
+\def\@@Direccion{Adresse:}
+\def\@@Telefono{Telefon:}
+\def\@@Email{E-mail:}
+\def\@@Cliente{Kunde:}
+\def\@@Proveedor{Lieferant:}
+\def\@@Cantidad{Menge}
+\def\@@Descripcion{Beschreibung}
+\def\@@PrecioU{Einzelpreis}
+\def\@@PrecioT{Gesamt}
+\def\@@Precio{Preis}
+\def\@@AlicuotaG{MwSt A}
+\def\@@AlicuotaR{MwSt C}
+\def\@@BIG{Netto 19\%}
+\def\@@BIR{Netto 7\%}
+\def\@@BIE{Mwst-befreit}
+\def\@@Total{Brutto}% Zu zahlen / Brutto / Summe / Gesamt
+\def\@@Conforme{der Kunde}
+\def\@@DenomFactura{Rechnung}
+\def\@@DenomCotiza{Voranschlag}
+% \LetraNumeracion{\fontsize{14}{14}\bfseries}
+\renewcommand{\@EstiloDenom}{\@LetraDenom\@Denominacion-\if at sinnumero\else\@LetraNumeracion Nr:\space\@Num\fi}
+\renewcommand{\@EstiloNumControl}{}
 \makeatother
 
 \FondoFactura{factura-ejemplo-fondo}
 
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \Num{1}
 \Nombre{Jacinto de Ayala y San Vicente}
 \CI{V-987.654.321}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `cotiza')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,16 +35,20 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Escribimos una cotización (cotizacion),
-%%  Escribe la denominación ("COTIZACIÓN") pero sin número (sinnumero),
+%%  Escribe la denominación (“COTIZACIÓN”) pero sin número (sinnumero),
+%%  No totaliza, para que el cliente tenga un presupuesto por distintos ítems que luego elegirá entre ellos, es decir, una lista de precios. (sintotales),
 %%  Con el fondo de la imprenta agregado (\FondoFactura),
 %%  Agregando la firma escaneada en la factura, es decir, en la cotización (\FirmaFactura),
 %%  Sin resumen,
 %%  Con descripción larga (\Descripcion).
+%%</desc>
 %%
 \documentclass[
 cotizacion,
 sinnumero, % sin esta opción aparecerá el número de la cotización.
+sintotales,
 % dosfirmas, % para poner las dos firmas
 % sinfirmas, % para no poner firmas
 ]{factura}
@@ -55,7 +59,7 @@
 \FirmaFactura{\includegraphics[width=5cm]{factura-ejemplo-firma.pdf}}[0pt][21pt]
 
 % \Denom{PRESUPUESTO} % También podemos cambiar el nombre del documento
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \Num{1}
 \RazonSocial{Ayala San Vicente Usureros}
 \RIF{Y-12.345.678-9}
@@ -69,6 +73,8 @@
 
 \begin{factura}
  \Item{1}{ítem con IVA general}{1000}
+ \Item{1}{otro ítem con IVA general}{1100}
+ \Item{1}{otro ítem más con IVA general}{1200}
 \end{factura}
 
 \Descripcion{Descripción larga del servicio}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura1.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura1.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `factuno')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,16 +35,18 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Escribimos una factura,
 %%  Todo con los valores por omisión,
 %%  Con resumen (\Resumen),
 %%  Con descripción larga (\Descripcion).
+%%</desc>
 %%
 \documentclass{factura}
 
 \usepackage[utf8]{inputenc}
 
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \RazonSocial{Ayala San Vicente Usureros}
 \RIF{Y-12.345.678-9}
 \Contacto{Jacinto de Ayala}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura2.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura2.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura2.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `factdos')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,21 +35,25 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Escribimos una factura,
 %%  Con la columna para enumerar los ítems (numitem),
 %%  Con descuentos individuales (descuentos),
 %%  Primero la descripción, luego la cantidad, luego el precio unitario (dcu),
 %%  Sin líneas verticales externas (sinlineasve),
+%%  Centra la descripción en los elementos en la factura (centradesc),
 %%  Sólo la firma del emisor (unafirma),
 %%  Alterando la separación mínima vertical entre los elementos (\SepElementos),
 %%  Alterando la separación horizontal en el encabezado y la distancia desde el contorno hasta el texto (\SepEncabez),
+%%  Agregando una separación extra entre los ítems en la factura (\SepItemsExtra),
 %%  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),
-%%  Usando \Nombre y \CI en lugar de \RazonSocial y \RIF,
+%%  Usando “\Nombre” y “\CI” en lugar de “\RazonSocial” y “\RIF”,
 %%  Con resumen (\Resumen),
 %%  Agregando un ítem sin precio (\ItemX),
 %%  Con artículos gravados con todos los IVA,
 %%  Con descripción larga (\Descripcion).
+%%</desc>
 %%
 \documentclass[
 numitem,
@@ -57,17 +61,19 @@
 dcu,
 sinlineasve,
 % sinlineasv, % sin ninguna línea vertical
+centradesc,
 unafirma,
 ]{factura}
 
 \usepackage[utf8]{inputenc}
 
-\SepElementos{1cm}
+\SepElementos{0.75cm}
 \SepEncabez{1cm}{16pt}
+\SepItemsExtra{8pt}
 \SepDescrip{16pt}
 \LineaDescrip{1pt}{20pt}{3pt}
 
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \Nombre{Jacinto de Ayala y San Vicente}
 \CI{V-987.654.321}
 \Direccion{Av. Ayala, Galpón San Vicente, Sector Arauca, Apure, Venezuela}
@@ -82,7 +88,7 @@
  \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}
+ \ItemE{1}{ítem exento de impuesto, con descuento}{1000}
  \ItemX{1}{línea sin precio}
 \end{factura}
 

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura3.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura3.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `facttres')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,6 +35,7 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Escribimos una factura,
 %%  Agrupados los totales por gravámenes (agrupado),
 %%  Sin líneas verticales internas (sinlineasvi),
@@ -50,6 +51,7 @@
 %%  Sin resumen,
 %%  Con artículos gravados con todos los IVA,
 %%  Sin descripción larga.
+%%</desc>
 %%
 \documentclass[
 agrupado,
@@ -64,11 +66,11 @@
 
 \usepackage[utf8]{inputenc}
 
-\SepElementos{1cm}
+\SepElementos{0.75cm}
 \SepEncabez{1cm}{16pt}
 \LineaEncabez{1pt}{20pt}{3pt}
 
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \RazonSocial{Ayala San Vicente Usureros}
 \RIF{Y-12.345.678-9}
 \Contacto{Jacinto de Ayala}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura4.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura4.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura4.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `factcuatro')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,23 +35,28 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Escribimos una factura,
 %%  Totalización en modo de filas (filas),
+%%  Centrados los totales en el modo de filas (centrado),
 %%  Primero la descripción, luego el precio unitario, luego la cantidad (duc),
 %%  Sin líneas verticales internas (sinlineasvi),
 %%  Sin líneas horizontales internas (sinlineashi),
 %%  Expande el cuadro de la factura con espacio en blanco (exparriba),
 %%  Sin condiciones del documento (sincondiciones),
+%%  Agregando una separación extra entre los ítems en la factura (\SepItemsExtra),
 %%  Cambiando varias de las tipografías (\Letra...),
-%%  Usando \Nombre y \CI en lugar de \RazonSocial y \RIF,
+%%  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,
 %%  Agregando un ítem sin precio (\ItemX),
 %%  Con descripción larga (\Descripcion).
+%%</desc>
 %%
 \documentclass[
 filas,
+centrado,
 duc,
 sinlineasvi,
 % sinlineasv, % sin ninguna línea vertical
@@ -63,12 +68,13 @@
 
 \usepackage[utf8]{inputenc}
 
+\SepItemsExtra{8pt}
 \LetraDescripcion{\fontsize{20}{30}}
 \LetraTitEnc{\fontsize{15}{20}\bfseries}
 \LetraFirmas{\fontsize{16}{20}\itshape}
 \LetraCondiciones{\fontsize{18}{28}\bfseries}
 
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \Nombre{Jacinto de Ayala y San Vicente}
 \CI{V-987.654.321}
 \Direccion{Av. Ayala, Galpón San Vicente, Sector Arauca, Apure, Venezuela}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura5.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura5.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura5.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `factcinco')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,12 +35,12 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Escribimos una factura,
 %%  Escribimos factura y reporte, pero sólo producimos la factura,
 %%  Cuadro de la factura sin la columna de cantidades (sincantidad),
 %%  Totalización en modo de filas (filas),
-%%  Centrados los totales en el modo de filas (centrado),
-%%  Escribe la denominación ("FACTURA") y el número (denom),
+%%  Escribe la denominación (“FACTURA”) y el número (denom),
 %%  Separado cada ítem con una línea horizontal (conlineasha),
 %%  Sin expandir el cuadro de la factura ni la descripción (sinexpandir),
 %%  Obligando a especificar todos los IVA así no existan productos gravados con ellos (todosiva),
@@ -49,11 +49,11 @@
 %%  Con resumen (\Resumen),
 %%  Agregando un ítem sin precio (\ItemX),
 %%  Con descripción larga (\Descripcion).
+%%</desc>
 %%
 \documentclass[
 sincantidad,
 filas,
-centrado,
 denom,
 conlineasha,
 sinexpandir,
@@ -62,7 +62,7 @@
 
 \usepackage[utf8]{inputenc}
 
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \Num{1}
 \RazonSocial{Ayala San Vicente Usureros}
 \RIF{Y-12.345.678-9}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura6.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura6.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura6.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `factseis')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,11 +35,13 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Escribimos una factura,
 %%  Con la columna para enumerar los ítems (numitem),
-%%  Escribe la denominación ("FACTURA") y el número (denom),
+%%  Escribe la denominación (“FACTURA”) y el número (denom),
 %%  Sin líneas verticales externas (sinlineasve),
 %%  Sin líneas horizontales externas (sinlineashe),
+%%  Escribimos un ítem cuya descripción ocupa más que una línea,
 %%  Obligando a especificar todos los IVA así no existan productos gravados con ellos (todosiva),
 %%  Especificando 'G' en los ítems gravados con IVA general (G),
 %%  Escribe un archivo CSV con la información numérica de la factura (csv),
@@ -47,6 +49,7 @@
 %%  Especificando el nombre de quien firma la copia de la factura como recibida (\Conforme),
 %%  Con etiquetas y referencias,
 %%  Con descripción larga (\Descripcion).
+%%</desc>
 %%
 \documentclass[
 numitem,
@@ -63,11 +66,11 @@
 \usepackage[utf8]{inputenc}
 
 \makeatletter
- \renewcommand{\@@Fecha}{\slshape FECHA DE EMISIÓN:}
+ \renewcommand{\@@Fecha}{\slshape FECHA:}
  \renewcommand{\@EstiloFecha}{\@LetraFecha\bfseries\@@Fecha\space{\color{blue}\@Fecha}}
 \makeatother
 
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \Num{1}
 \RazonSocial{Ayala San Vicente Usureros}
 \RIF{Y-12.345.678-9}
@@ -82,12 +85,12 @@
 
 \begin{factura}
  \Item{2}{ítem con IVA general}{1000}\label{primeritem}
- \Item{4}{otro ítem con IVA general}{100}
+ \Item{10}{otro ítem con IVA general -descripción larga para mostrar el cambio de línea-}{1000}
 \end{factura}
 
 \Descripcion{Descripción larga del servicio.
 
- En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} \descref{primeritem} por un valor de \Moneda\puref{primeritem} cada uno, dando un total de \Moneda\ptref{primeritem}, el IVA de este ítem es de \Moneda\AlicuotaG; luego se facturó otro ítem dando un total final de \Moneda\Total.
+ En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} \descref{primeritem} por un valor de \Moneda\puref{primeritem} cada uno, el descuento porcentual de ese artículo es \dctoref{primeritem}, dando un total de \Moneda\ptref{primeritem}. El IVA de este ítem es de \Moneda\numprint\AlicuotaG; luego se facturó otro artículo más, dando un total final de \Moneda\numprint\Total.
  % También podemos usar \dctoref{primeritem} para la referencia al descuento, y en cuanto a las totalizaciones: \BIE, \BIR, \BIA, \AlicuotaR, \AlicuotaA, \SubtG, \SubtE, \SubtR, \SubtA, \DescG, \DescE, \DescR, \DescA para los demás totales.
 }
 

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura7.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura7.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura7.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `factsiete')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,8 +35,11 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Escribimos una factura,
 %%  Totalización en modo de filas (filas),
+%%  Escribimos un ítem cuya descripción ocupa más que una línea,
+%%  Cuando la descripción de un ítem ocupa más que una línea, no pone el carácter que indica continuación en la siguiente línea ni los caracteres en las columnas vacías (sinmarcas),
 %%  Obligando a especificar todos los IVA así no existan productos gravados con ellos (todosiva),
 %%  Cambiando la geometría del papel de la factura (\GeometriaFactura),
 %%  Alterando la separación mínima vertical entre los elementos (\SepElementos),
@@ -48,9 +51,11 @@
 %%  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),
 %%  Con descripción larga (\Descripcion).
+%%</desc>
 %%
 \documentclass[
 filas,
+sinmarcas,
 todosiva,
 ]{factura}
 
@@ -57,7 +62,7 @@
 \usepackage[utf8]{inputenc}
 
 \GeometriaFactura{legalpaper,vmargin={5cm,5.5cm},hmargin={1cm,1cm},footskip=0pt,headsep=0pt,headheight=0pt}
-\SepElementos{1cm}
+\SepElementos{0.75cm}
 \SepEncabez{1cm}{16pt}
 \SepDescrip{16pt}
 \SepFilas{1cm}{10pt}
@@ -68,7 +73,7 @@
 \PosFirmas{1cm}{1cm}{-3cm}
 \PosDenom{-0cm}{4.3cm}
 
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \RazonSocial{Ayala San Vicente Usureros}
 \RIF{Y-12.345.678-9}
 \Contacto{Jacinto de Ayala}
@@ -81,6 +86,7 @@
 
 \begin{factura}
  \Item{1}{ítem con IVA general}{1000}
+ \Item{10}{otro ítem con IVA general -descripción larga para mostrar el cambio de línea-}{1000}
 \end{factura}
 
 \Descripcion{Descripción larga del servicio}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura8.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura8.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura8.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `factocho')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,6 +35,7 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Escribimos una factura,
 %%  Escribimos factura y reporte, pero sólo producimos la factura,
 %%  Sin expandir el cuadro de la factura ni la descripción (sinexpandir),
@@ -43,6 +44,7 @@
 %%  Con descuentos totales en moneda aplicables por igual a todos los tipos de elementos existentes (\Descuento*),
 %%  Con resumen (\Resumen),
 %%  Con descripción larga (\Descripcion).
+%%</desc>
 %%
 \documentclass[
 sinexpandir,
@@ -61,7 +63,7 @@
 \LetraNumTotal{\fontsize{20}{30}\bfseries}
 \tabcolsep7pt
 
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \RazonSocial{Ayala San Vicente Usureros}
 \RIF{Y-12.345.678-9}
 \Contacto{Jacinto de Ayala}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-firma.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-firma.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-firma.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `firma')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-fondo.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-fondo.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-fondo.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `fondo')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -82,7 +82,7 @@
   \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 at 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
+  e-mail: \hfill imprenta at sanrom.án. No. Providencia SENIAT 01/01060 de fecha 12/11/2008 - Control desde No. 00-000001 hasta No. 00-010000 / Fecha 01/01/2017.\par
  \end{minipage}
 \end{document}
 %% 

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-membrete.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-membrete.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-membrete.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `membrete')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `prefac')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,6 +35,7 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Escribimos una prefactura (prefactura),
 %%  Expande el cuadro de la factura con espacio en blanco (exparriba),
 %%  Con línea protectora del espacio en blanco (linea),
@@ -42,6 +43,7 @@
 %%  Con descuentos totales en porcentaje aplicables por igual a todos los tipos de elementos existentes (\Descuento),
 %%  Sin resumen,
 %%  Con descripción larga (\Descripcion).
+%%</desc>
 %%
 \documentclass[
 prefactura,
@@ -55,7 +57,7 @@
 
 \FondoFactura{factura-ejemplo-fondo}
 
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \Num{1}
 \RazonSocial{Ayala San Vicente Usureros}
 \RIF{Y-12.345.678-9}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `repuno')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,6 +35,7 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Escribimos una factura,
 %%  Escribimos un reporte,
 %%  Generamos factura y reporte (conreporte),
@@ -45,6 +46,7 @@
 %%  Sin especificar el proveedor, así toma el emisor de la factura como el nombre del proveedor,
 %%  Sin resumen,
 %%  Con descripción larga (\Descripcion).
+%%</desc>
 %%
 \documentclass[
 conreporte,
@@ -65,7 +67,7 @@
 % \EstiloPagReporte[empty]{soloarriba}
 % \EstiloPagReporte{soloarriba}
 
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \Num{1}
 \RazonSocial{Ayala San Vicente Usureros}
 \RIF{Y-12.345.678-9}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `repdos')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,6 +35,7 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Escribimos una factura,
 %%  Escribimos un reporte,
 %%  Escribimos factura y reporte, pero sólo producimos el reporte (soloreporte),
@@ -45,6 +46,7 @@
 %%  Sin resumen,
 %%  Con etiquetas y referencias,
 %%  Con descripción larga (\Descripcion).
+%%</desc>
 %%
 \documentclass[
 soloreporte,
@@ -59,7 +61,7 @@
 % \EstiloPagReporte{solonumpag}
 % \EstiloPagReporte{soloabajo}
 
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \Num{1}
 \RazonSocial{Ayala San Vicente Usureros}
 \RIF{Y-12.345.678-9}
@@ -82,7 +84,7 @@
 \begin{reporte}
  El reporte - página 1\newpage El reporte - página 2 \newpage El reporte - página 3.
 
- En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} \descref{primeritem} por un valor de \Moneda\puref{primeritem} cada uno, dando un total de \Moneda\ptref{primeritem}, el IVA de este ítem es de \Moneda\AlicuotaG; luego se facturó otro ítem dando un total final de \Moneda\Total.
+ En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} \descref{primeritem} por un valor de \Moneda\puref{primeritem} cada uno, el descuento porcentual de ese artículo es \dctoref{primeritem}, dando un total de \Moneda\ptref{primeritem}. El IVA de este ítem es de \Moneda\numprint\AlicuotaG; luego se facturó otro artículo más, dando un total final de \Moneda\numprint\Total.
  % También podemos usar \dctoref{primeritem} para la referencia al descuento, y en cuanto a las totalizaciones: \BIE, \BIR, \BIA, \AlicuotaR, \AlicuotaA, \SubtG, \SubtE, \SubtR, \SubtA, \DescG, \DescE, \DescR, \DescA para los demás totales.
 \end{reporte}
 

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `reptres')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,6 +35,7 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 %% Descripción de este ejemplo:
+%%<desc>
 %%  Escribimos un reporte,
 %%  Generamos solamente un reporte (soloreporte),
 %%  El reporte se imprime en las dos caras del papel (twoside),
@@ -44,6 +45,7 @@
 %%  Cambiamos el estilo de página para que la información del reporte aparezca como pie de página (\EstiloPagReporte),
 %%  Agregando en el reporte la línea para firmar a mano (\FirmaReporte),
 %%  Sin descripción larga.
+%%</desc>
 %%
 \documentclass[
 soloreporte,
@@ -66,7 +68,7 @@
 % \EstiloPagReporte[empty]{soloarriba}
 % \EstiloPagReporte{soloarriba}
 
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 \RazonSocial{Ayala San Vicente Usureros}
 \Proveedor{Lázaro de la Vega y San Román}
 

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/factura/factura.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/factura/factura.dtx	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/source/latex/factura/factura.dtx	2017-03-11 23:09:59 UTC (rev 43470)
@@ -1,7 +1,7 @@
 %\iffalse meta-comment
 %
 % factura.dtx
-% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either
@@ -39,7 +39,7 @@
 \input docstrip.tex
 \preamble
 
-Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either
@@ -135,8 +135,9 @@
 \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{}
+\Msg{Also compile all other examples and recompile \jobname.dtx.}
+\Msg{}
 \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}
@@ -163,7 +164,7 @@
 %<class>\ProvidesClass{factura}
 %<def>\ProvidesFile{factura.def}
 %<*class|def>
-[2016/06/25 v2.82
+[2017/03/11 v3.00
 %<class>Clase para elaborar facturas legales
 %<class>en la República Bolivariana de Venezuela.
 %<def>Archivo valores iniciales y condiciones de borde para factura.cls
@@ -172,10 +173,29 @@
 %</class|def>
 %<*driver>
 \documentclass{ltxdoc}
-\usepackage[letterpaper,marginparsep=10pt,vmargin={3.2cm,2cm},hmargin={4cm,2cm}]{geometry}
-\usepackage[usenames,dvipsnames]{color}
+\usepackage[a4paper,headheight=0.6cm,headsep=0.77cm,footskip=1.2cm,footnotesep=0.54cm,marginparsep=10pt,vmargin={3.2cm,2cm},hmargin={4cm,2cm}]{geometry}
+\usepackage[usenames,dvipsnames]{xcolor}
 \usepackage[spanish]{babel}
-\usepackage{paralist,calc,verbatim,graphicx,array,todo,etoolbox,metalogo,ifxetex,ifluatex,footnote,hypdoc}
+\usepackage{
+ array,
+ calc,
+ catchfilebetweentags,
+ etoolbox,
+ footnote,
+ graphicx,
+ ifluatex,
+ ifxetex,
+ metalogo,
+ paralist,
+ pgffor,
+ regexpatch,
+ setspace,
+ tikz,
+ todo,
+ verbatim,
+ xparse,
+ xstring,
+ hypdoc}
 
 \ifxetex
  \usepackage{fontspec}
@@ -196,14 +216,98 @@
 \makesavenoteenv{tabular}
 \makesavenoteenv{table}
 
+\newcommand\flechaCR{%
+ \raisebox{-0.4ex}{%
+  \begin{tikzpicture}
+  \draw[line width=0.075ex] (0,0) arc (20:70:0.75ex) + (0,0) arc (-70:-20:0.75ex) ++ (0.8ex,0.55ex) arc (0:-100:1ex);
+ \end{tikzpicture}}}
+
 \EnableCrossrefs
 \CodelineIndex
 \OnlyDescription
 \RecordChanges
 
-\setlength{\parskip}{7pt}
+\setlength\parskip{7pt}
 \setlength\IndexMin{100pt}
 
+\widowpenalty10000
+
+\newbool{ejemploizq}
+\newbool{ejemploder}
+\newbool{ejemplocondesc}
+
+\newcommand{\ListaDeEjemplos}{
+ ejemplo-cotizacion,
+ ejemplo-prefactura,
+ ejemplo-factura1,
+ ejemplo-factura2,
+ ejemplo-factura3,
+ ejemplo-factura4,
+ ejemplo-factura5,
+ ejemplo-factura6,
+ ejemplo-factura7,
+ ejemplo-factura8,
+ ejemplo-reporte1,
+ ejemplo-reporte2,
+ ejemplo-reporte3,
+ beispiel-rechnung}
+
+\catcode`\%=11
+\catcode`\|=14
+
+\newcommand{\InitEjemplo}{|
+ \catcode`\<=12
+ \catcode`\>=12
+ \foreach \auxvar in \ListaDeEjemplos {|
+  \expandafter\CatchFileBetweenDelims\csname \auxvar\endcsname{factura-\auxvar.tex}{<desc>}{</desc>}[\catcode37=11\catcode13=14]|
+ }|
+ \catcode`\<=13
+ \catcode`\>=13
+}
+
+| Gracias a Werner y egreg por el uso de \begingroup\ttfamily\string ... \endgroup
+| Thanks to Werner and egreg for the use of \begingroup\ttfamily\string ... \endgroup
+| (http://tex.stackexchange.com/questions/342572/error-using-verb-as-the-replace-string-on-xpatchcmd)
+\NewDocumentCommand{\Ejemplo}{s s O{0.5} m O{} G{1}}{|
+ \IfFileExists{factura-#4.pdf}{|
+  \catcode`\<=12
+  \catcode`\>=12
+  \IfBooleanTF{#1}{\booltrue{ejemploizq}}{\booltrue{ejemplocondesc}}|
+  \IfBooleanT{#2}{\booltrue{ejemploder}\boolfalse{ejemploizq}}|
+  \def\ancho{#3}|
+  \ifnum #6=1 {\phantomsection\par\mbox{}\hfill{\color{RoyalBlue}\ttfamily \large factura-#4}\hfill\mbox{}\par}{}\fi
+  \ifbool{ejemploder}{\hfill}{}|
+  \begin{minipage}{\ancho\linewidth}
+   \fbox{\includegraphics[page=#6,width=\linewidth-2\fboxrule-2\fboxsep]{factura-#4}}
+   \IfBooleanF{#1}{\addcontentsline{toc}{subsection}{factura-#4}}
+  \end{minipage}|
+  \ifbool{ejemploizq}{\hfill}{}|
+  \ifbool{ejemplocondesc}
+   {\hfill
+   \CatchFileBetweenDelims{\DescEjemplo}{factura-#4.tex}{<desc>}{</desc>}[\catcode37=11\catcode13=14]|
+   \catcode`\%=11
+   \regexpatchcmd*{\DescEjemplo}{\c{[A-Za-z]*}}{\c{begingroup}\c{ttfamily}\c{string}\0\c{endgroup}}{}{}|
+   \regexpatchcmd*{\DescEjemplo}{(\()(\cL[a-z]*)(\))}{(\c{begingroup}\c{ttfamily}\2\c{endgroup})}{}{}|
+   \xpatchcmd*{\DescEjemplo}{%% }{\item}{}{}|
+   \xpatchcmd*{\DescEjemplo}{%%}{}{}{}|
+   \begin{minipage}{\linewidth-\ancho\linewidth}
+    \begin{itemize}
+     \setlength{\itemsep}{0pt}
+     #5\DescEjemplo
+    \end{itemize}
+   \end{minipage}}
+   {}|
+  \boolfalse{ejemploizq}\boolfalse{ejemploder}\boolfalse{ejemplocondesc}|
+  \catcode`\%=9
+  \catcode`\<=13
+  \catcode`\>=13
+ }{\message{LaTeX warning: No existe factura-#4.pdf; se recomienda compilarlo antes de compilar este documento.}}}
+
+\catcode`\%=14
+\catcode`\|=12
+
+\InitEjemplo
+
 % No quiero que las notas pendientes tengan los números de página:
 \patchcmd{\todoitem}{(p.~\pageref{todopage:\thetodo}):}{-}{}{}
 
@@ -249,14 +353,17 @@
  \maketitle
  \DocInput{\jobname.dtx}
  \clearpage
+ \phantomsection
  \addcontentsline{toc}{section}{\todoname}
  \todos
  \section*{Información específica de esta versión}
-  Para poder compilar con \LuaLaTeX{} es necesaria la versión v2.26 del paquete |zref|, de fecha 2016/05/21, y la versión v1.18 de |atbegshi| de fecha 2016/06/09.
-  
-  Esta versión de |factura| se sacó principalmente para corregir un error introducido en la versión anterior v2.72 en cuanto a las referencias, para agregar la opción |numitem| que enumera los ítems en la factura y para que la línea diagonal (opción |linea|) funcione correctamente siempre.
+ Para poder compilar con \LuaLaTeX{} es necesaria la versión v2.26 del paquete |zref|, de fecha 2016/05/21, y la versión v1.18 de |atbegshi| de fecha 2016/06/09.
+
+ En esta versión se agregan unas opciones de la clase y se incorporan todos los ejemplo en la documentación.
+ \phantomsection
  \addcontentsline{toc}{section}{\changesname}
  \PrintChanges
+ \phantomsection
  \addcontentsline{toc}{section}{\glosname}
  \PrintIndex
 \end{document}
@@ -335,7 +442,7 @@
 % \changes{v2.6}{2016/03/07}{Cuando la descripción en el cuadro de la factura ocupa más que una línea, agrega al final de cada línea el carácter $\hookleftarrow$.}
 % \changes{v2.6}{2016/03/07}{Corregido que salga la ``G'' obligatoria de IVA General cuando hay un elemento exento y uno con IVA General.}
 % \changes{v2.6}{2016/03/07}{Cuatro nuevas definiciones dentro del archivo \texttt{factura.def} para establecer algunos caracteres que antes estaban fijados dentro del archivo \texttt{factura.cls}}
-% \changes{v2.6}{2016/03/07}{{\slshape parbox}es para cada elemento en la tabla, para asegurar que la denominación del gravámen quede alineada correctamente.}
+% \changes{v2.6}{2016/03/07}{{\slshape parbox}es para cada elemento en la tabla, para asegurar que la denominación del gravamen quede alineada correctamente.}
 % \changes{v2.6}{2016/03/07}{Quitados los paquetes \texttt{xifthen} y \texttt{pbox}. Arreglada la presentación de los datos del cliente cuando el resumen es más grande.}
 % \changes{v2.6}{2016/03/07}{Cuando había descuentos totales y se pedía modo de totalización en filas, este modo no se apagaba correctamente y la línea oblicua daba problemas. Arreglado.}
 % \changes{v2.72}{2016/05/16}{Las macros internas \cs{@DescripcionAuxCmd} y \cs{@EscribeTipoDeImpuesto} fueron modificadas.}
@@ -350,7 +457,14 @@
 % \changes{v2.82}{2016/06/25}{Reimplementada la línea diagonal para que funcione en todos los casos.}
 % \changes{v2.82}{2016/06/25}{Nueva macro interna \cs{@ColumnasMultiColumnTotalesAuxCmd} para hacer más general la colocación de los totales en el modo de columnas dentro de un \cs{multicolumn}.}
 % \changes{v2.82}{2016/06/25}{Quitado el paquete \texttt{MnSymbol} en favor del comando \cs{flechaCR} para la flecha que indica que la descripción ocupa más de una línea.}
-%
+% \changes{v3.00}{2016/10/25}{Se agregó la opción \texttt{sinmarcas} para pedir que no se escriba el carácter de fin de linea cuando la descripción ocupa más que una línea y también para evitar que salga el carácter que marca las celdas vacías también cuando la decripción es larga.}
+% \changes{v3.00}{2017/03/11}{Nueva macro \cs{SepItemsExtra} para agregar espacio extra entre los ítems en la factura.}
+% \changes{v3.00}{2017/03/11}{Opción nueva \texttt{sintotales} para que no se escriba ningún total de los elementos. Útil para cotizaciones de por ejemplo varias formas de un mismo producto.}
+% \changes{v3.00}{2017/03/11}{Opción nueva \texttt{centradesc} para centrar el texto en la descripción de cada elemento en la factura.}
+% \changes{v3.00}{2017/03/11}{Cambiado el interlineado en la documentación, el tamaño del papel y agregados a la documentación todos los ejemplos que están embebidos en el \texttt{.dtx}, de forma automática.}
+% \changes{v3.00}{2017/03/11}{El descuento individual ahora es opcional al pedir la opción, es decir, no hace falta establecer en '0' los elementos donde no haya descuento cuando se usa la opción \texttt{descuentos}.}
+% \changes{v3.00}{2017/03/11}{Opción \texttt{subtotal} para agregar una columna extra después del precio unitario y antes del descuento, para reflejar el precio antes de aplicar el descuento individual.}
+% 
 % \DoNotIndex{}
 %
 % \tableofcontents
@@ -357,13 +471,14 @@
 %
 % \section*{Brief description in english}
 %
-% |factura| is the spanish word for 'invoice', so this is a \LaTeX{} class for typesetting and calculating invoices, made taking into account requirements of {\slshape SENIAT} legislation (tax collector entity on the Bolivarian Republic of Venezuela), but its use is not restricted to Venezuela because all variables and displayed text can be redefined by invoking commands or editing.
+% |factura| is the spanish word for `invoice', so this is a \LaTeX{} class for typesetting and calculating invoices, made taking into account requirements of {\slshape SENIAT} legislation (tax collector entity on the Bolivarian Republic of Venezuela), but its use is not restricted to Venezuela because all variables and displayed text can be redefined by invoking commands or editing.
 %
 % \newpage
+% \setstretch{1.4}
 %
 % \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 éstas para marzo del año 2016.
+% 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 éstas para marzo del año 2017.
 %
 % 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{}.
 %
@@ -404,10 +519,12 @@
 %
 % \item {\color{RoyalBlue}|xelatex factura-ejemplo-firma.tex|}
 %
-% Compilamos el ejemplo de la {\slshape prefactura}, que es parte de esta documentación:
+% Al tener el fondo, el membrete y la firma compilados en |.pdf| según los pasos anteriores, podremos compilar cualquiera de los ejemplos en |.tex| que el archivo |factura.dtx| genera, y eso lo debemos hacer, ya que todos ellos (en su versión en |.pdf|) forman parte de la documentación. Los podemos compilar así:
 %
 % \item {\color{RoyalBlue}|pdflatex factura-ejemplo-prefactura.tex|}
 %
+% De esta forma como compilamos {\ttfamily factura-ejemplo-prefactura} compilamos todos los demás ejemplos: la cotización, las facturas del 1 hasta la última, el reporte del 1 hasta el último, y finalmente la factura para otra legislación.\footnote{Podemos también compilar con \LuaLaTeX{} o con \XeLaTeX{}.}
+%
 % 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|}
@@ -417,15 +534,11 @@
 % \item {\color{RoyalBlue}|makeindex -s gind.ist -o factura.ind factura.idx|}
 % \item {\color{RoyalBlue}|makeindex -s gglo.ist -o factura.gls factura.glo|}
 %
-% {\itshape No es necesario ejecutar los dos comandos anteriores porque los ejecuta el compilador al actuar sobre }|factura.dtx|.
+% {\slshape No es necesario actualizar los índices con los dos comandos anteriores porque esos dos comandos los ejecuta el motor de compilación 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{}.}
-%
-%
+% \newpage
 % \section{Archivos de ejemplo incluídos}
 %
 % Este paquete incluye varios ejemplos, entre ellos la emulación de un diseño de factura entregado por alguna imprenta, que nos sirve para nuestros ejemplos de prefacturas, un diseño 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.
@@ -437,8 +550,7 @@
 % |README| & Archivo con la descripción corta, \\
 % |factura-ejemplo-firma.tex| & Ejemplo de firma digitalizada, \\
 % |factura-ejemplo-fondo.tex| &  Elemplo de una forma libre fiscal digitalizada, \\
-% |factura-ejemplo-membrete.tex| & El mismo ejemplo anterior pero sólo el encabezado, para \\
-%                                & poder usarlo como membrete, \\
+% |factura-ejemplo-membrete.tex| & Ejemplo de membrete para los reportes, \\
 % |factura-ejemplo-prefactura.tex| & Ejemplo de ``{\slshape prefactura}'', \\
 % |factura-ejemplo-cotizacion.tex| & Ejemplo de cotización, \\
 % |factura-ejemplo-factura*.tex| & Ejemplos de facturas, \\
@@ -448,10 +560,16 @@
 %
 % \IfFileExists{factura-ejemplo-prefactura.pdf}{%
 %  \newpage\section{Ejemplo preliminar\label{sec:ejemplo}}
-%  \noindent Lo que sigue es un ejemplo del aspecto final de una {\slshape ``prefactura''}, que está bajo el nombre de ``|factura-ejemplo-prefactura.tex|'' y más adelante explicaremos en qué consiste:
+%  Lo que sigue es un ejemplo del aspecto final de una {\slshape ``prefactura''}, que está bajo el nombre de ``|factura-ejemplo-prefactura.tex|'' y más adelante explicaremos en qué consiste:
 %
-%  \noindent\includegraphics[scale=0.7]{factura-ejemplo-prefactura.pdf}
-%  \newpage}{\message{LaTeX warning: No existe factura-ejemplo-prefactura; se recomienda compilarlo antes de compilar este documento.}}
+%  \noindent
+%  \mbox{}\hfill
+%  \vfil
+%  \fbox{\includegraphics[width=0.9\linewidth]{factura-ejemplo-prefactura.pdf}}
+%  \hfill\mbox{}
+%  \vfil\mbox{}
+%  \newpage}
+% {\message{LaTeX warning: No existe factura-ejemplo-prefactura; se recomienda compilarlo antes de compilar este documento.}}
 %
 %
 % \section{Geometría de la hoja\label{sec:geohoja}}
@@ -522,6 +640,9 @@
 % \DescribeOption{sinnumero}
 %  Escribe el texto de la denominación del documento en su posición (e.g. ``COTIZACIÓN'') pero sin escribir el número; por ejemplo para las cotizaciones que no son documentos que legalmente lleven número, aunque el número puede ser para control interno. Esta opción implica la opción anterior |denom|.
 %
+% \DescribeOption{sintotales}
+%  Con esta opción evitamos que se totalicen los elementos en la factura; sólo se presenta el cuadro sin los totales. La utilidad de esto no es en las facturas sino en las cotizaciones para casos donde se muestran variantes del mismo producto para que el cliente elija entre ellos. No tendría sentido totalizar allí sino que funcione como un listado de precios. {\itshape Debe usarse en las cotizaciones porque una factura sin totales no es válida.}
+%
 % \DescribeOption{siniva}
 %  No se cobra IVA, para los casos en los que eso aplique.
 %
@@ -537,6 +658,12 @@
 % \DescribeOption{impdesc}
 %  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 porque ya no sale en dos lugares dicha letra sino en uno solo.
 %
+% \DescribeOption{centradesc}
+%  Podemos centrar el texto de la descripción de cada ítem en la factura con este comando en lugar de justificarlo.
+%
+% \DescribeOption{sinmarcas}
+%  Con |sinmarcas| evitamos que el carácter de fin de línea aparezca cuando la descripción ocupa más que una línea; ese carácter indica que la línea continúa abajo, y predeterminadamente es la flecha ``\flechaCR''. También con esta opción no aparece el carácter ``$\cdot$'' en las celdas vacías en este mismo caso.
+% 
 % \DescribeOption{numitem}
 %  Con la opción |numitem| una nueva columna aparece en el cuadro de la factura donde se enumera cada ítem en el órden en el que se escriben dentro del entorno para la factura. Esto es útil por ejemplo cuando se hace referencia al número del ítem con el comando |\itemref|. Véase la sección \ref{sec:etiquetas}.
 %
@@ -544,8 +671,11 @@
 %  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{sec: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{sec:factura}).
+%  Permite agregar un descuento en porcentaje en cada elemento de la factura, siendo dicho porcentaje el último argumento de los comandos |\Item|. Si no aplica descuento para un ítem, puede este dejarse sin ese argumento, dando el mismo resultado que indicar ``0'' como argumento para ese descuento. (Explicado también en la sección \ref{sec:factura}).
 %
+% \DescribeOption{subtotal}
+%  Agrega una columna extra en la factura; sólo aplica cuando también se usa la opción 'descuentos'. La nueva columna escribe el subtotal que cada ítem produce, es decir, el precio unitario multiplicado por la cantidad sin aplicar el descuento. Esta opción sobrerecarga la factura (precio unitario, descuento, subtotal y precio total), y su uso es recomendable cuando también se usa 'sincantidad', porque de esta forma se tiene el subtotal, descuento y el total.
+%
 % \DescribeOption{duc}
 %  Cambia el orden de los campos en el documento impreso a: descripción, precio unitario, cantidad y precio total. {\itshape Esto no cambia la forma como deben especificarse los argumentos de |\Item| sino solamente cambiará cómo serán mostrados}.
 %
@@ -851,7 +981,7 @@
 % \DescribeMacro{\ItemE}
 % {\color{Red}|\Item|\marg{cantidad}\marg{descripción}\marg{precio unitario}\marg{\% descuento}}
 %
-% Cuando pedimos descuentos individuales (opción |descuentos| al cargar la clase), todas las macros |\Item| requieren de un argumento más al final, que es el descuento porcentual, y deberá especificarse como |0| en los elementos en los que no haya descuento:
+% Cuando pedimos descuentos individuales (opción |descuentos| al cargar la clase), todas las macros |\Item| tienen un posible\footnote{Es un argumento opcional, aunque va entre llaves como todos los demás.} argumento más al final. que es el descuento porcentual. No especificarlo da el mismo resultado que un descuento de 0\% sobre ese ítem:
 %
 % \subsubsection{Opción `{\ttfamily sincantidad}'\label{subsec:sincantidad}}
 %
@@ -970,6 +1100,10 @@
 %
 % Las cajas donde van los datos del cliente y el resumen están separadas entre sí una distancia controlable con el primer argumento de |\SepEncabez|. Obviamente, si no se escribe un resumen saldría unícamente la caja de los datos del cliente, y esta separación no tendría efecto. El segundo argumento de |\SepEncabez| nos permite controlar la distancia entre la línea del recuadro y el texto, es decir, un margen interno entre el contorno de la caja y el texto que hay dentro para que no salga pegado a la línea que lo encierra.
 %
+% \DescribeMacro{\SepItemsExtra}{\color{RoyalBlue}|\SepItemsExtra|\marg{sep. extra entre items}}
+%
+% Agrega una separación extra entre los elementos o ítems en el cuadro de la factura. La separación entre ítems está dada por el ``\textsl{baselineskip}'' que se da con el comando |\LetraItems| que se explicará más adelante en esta misma sección.
+%
 % \DescribeMacro{\SepDescrip}{\color{RoyalBlue}|\SepDescrip|\marg{sep. interna texto}}
 %
 % Con este comando controlamos la distancia entre la línea del recuadro de la descripción y el texto, o sea, el margen interno del cuadro de la descripción, tal como lo definimos para el caso anterior.
@@ -1075,7 +1209,7 @@
 %
 % \DescribeMacro{\LetraTitReporte}{\color{RoyalBlue}|\LetraTitReporte|\marg{tipo de letra}}
 %
-% La letra del título del reporte, que sale al principio de éste, se puede cambiar con |\LetraTitReporte|.
+% La letra del título del reporte se puede cambiar con |\LetraTitReporte|.
 %
 % \DescribeMacro{\LetraInfoPagina}{\color{RoyalBlue}|\LetraInfoPagina|\marg{tipo de letra}}
 %
@@ -1105,7 +1239,7 @@
 %
 % \noindent \DescribeMacro{\label}{\color{RoyalBlue}|\label|\marg{etiqueta}}
 %
-% Para ello usamos la conocida macro |\label| de \LaTeX{} justamente después del ítem que nos interese luego referenciar, por ejemplo:
+% Para ello usamos la conocida macro |\label| de \LaTeX{} justamente después del ítem que nos interese luego referenciar, por ejemplo (usando descuentos individuales):
 %
 % \iffalse
 %<*literal>
@@ -1113,7 +1247,7 @@
 \begin{verbatim}
 \begin{factura}
  \Item{1}{Artículo gravado con IVA general}{1000}
- \Item{3}{Otro artículo gravado con IVA general}{1500}\label{el-otro}
+ \Item{3}{Otro artículo gravado con IVA general}{1500}{10}\label{el-otro}
 \end{factura}
 \end{verbatim}
 % \iffalse
@@ -1126,18 +1260,19 @@
 % \noindent \DescribeMacro{\cantref}{\color{RoyalBlue}|\cantref|\marg{etiqueta}}\\
 % \noindent \DescribeMacro{\descref}{\color{RoyalBlue}|\descref|\marg{etiqueta}}\\
 % \noindent \DescribeMacro{\puref}{\color{RoyalBlue}|\puref|\marg{etiqueta}}\\
+% \noindent \DescribeMacro{\subtref}{\color{RoyalBlue}|\subtref|\marg{etiqueta}}\\
 % \noindent \DescribeMacro{\dctoref}{\color{RoyalBlue}|\dctoref|\marg{etiqueta}}\\
 % \noindent \DescribeMacro{\ptref}{\color{RoyalBlue}|\ptref|\marg{etiqueta}}\par
 %
 % Los comandos anteriores son para usarse donde queramos hacer la cita, es decir, en la descripción larga o en el reporte.
 %
-% Si se quiere mostrar el número de fila que ocupa el ítem en la lista lo hacemos con |\itemref|, que en el ejemplo aparecería el número ``|2|'' indicando que es el segundo ítem de la factura\footnote{Cuando se usa \cs{itemref} conviene enumerar los ítems en la factura con la opción \texttt{numitem}.}. Con |\cantref| escribimos la cantidad del elemento citado mediante la etiqueta, en nuestro ejemplo sería ``|3|''. Para la descripción del ítem usamos |\descref|, que en el caso del ejemplo sería el texto ``|Otro artículo gravado con IVA general|''. Para el precio unitario usamos |\puref|, en el ejemplo ``|1.500,00|''. Si se quiere mostrar el descuento del ítem citado usamos |\dctoref|, que para el ejemplo sería ``|0|''. Por último, para mostrar el precio total usamos |\ptref|, y en nuestro ejemplo eso escribiría ``|4.500,00|''.
+% Si se quiere mostrar el número de fila que ocupa el ítem en la lista lo hacemos con |\itemref|, que en el ejemplo aparecería el número ``|2|'' indicando que es el segundo ítem de la factura\footnote{Cuando se usa \cs{itemref} conviene enumerar los ítems en la factura con la opción \texttt{numitem}.}. Con |\cantref| escribimos la cantidad del elemento citado mediante la etiqueta, en nuestro ejemplo sería ``|3|''. Para la descripción del ítem usamos |\descref|, que en el caso del ejemplo sería el texto ``|Otro artículo gravado con IVA general|''. Para el precio unitario usamos |\puref|, en el ejemplo ``|1.500,00|''. El subtotal lo mostraríamos con |\subtref|; en nuestro caso ``|4.500,00|''. Si se quiere mostrar el descuento del ítem citado usamos |\dctoref|, que para el ejemplo sería ``|10|''. Por último, para mostrar el precio total usamos |\ptref|, y en nuestro ejemplo eso escribiría ``|4.050,00|'' puesto que aplicamos un descuento del 10\%.
 %
-% Podemos ver que el uso de los comandos |\puref| y |\ptref| nos muestra el precio en el mismo formato con el que lo vemos en la presentación de la factura, en cuanto al redondeo y al separador de miles y decimal.
+% Podemos ver que el uso de los comandos |\puref|, |\subtref| y |\ptref| nos muestra el precio en el mismo formato con el que lo vemos en la presentación de la factura, en cuanto al redondeo y al separador de miles y decimal.
 %
 % Con la asignación de estas etiquetas y su uso mediante las referencias podemos de manera conveniente citar cualquier ítem que se haya facturado, de manera dinámica sin tener que reescribir en la descripción larga o en el reporte aquello que ya se escribió en el cuadro de la factura.
 %
-% Por otra parte, también podemos en la descripción larga y en el reporte referirnos al signo monetario con el comando |\Moneda|, y a cualquiera de los totales de la siguiente forma:
+% Por otra parte, también podemos en la descripción larga y en el reporte referirnos al signo monetario con el comando |\Moneda|, y a cualquiera de los totales de la siguiente forma\footnote{Las macros de la tabla, para representarlas en el mismo formato que en la factura, debemos usar la macro \cs{numprint}}:
 %
 % \begin{tabular}{rl}
 % \hline
@@ -1183,11 +1318,12 @@
 % {\bfseries \itshape Finalmente, como hemos dicho antes, una vez adecuada la clase al diseño que se quiere, se podrán escribir todos los comandos que hacen estos ajustes en un} |.tex| {\itshape o} |.def| {\itshape y cargarlo con} |\input|, |\include| {\itshape o con} |\Cliente|.
 %
 % \newpage
+% \setstretch{1}
 % \section{Tabla con todas las opciones}
 %
-% La tabla que sigue muestra una lista de las opciones posibles al momento de cargar la clase:
+% \noindent La tabla que sigue muestra una lista de las opciones posibles al momento de cargar la clase:
 %
-% \begin{tabular}{>{\ttfamily}rl}
+% \noindent \begin{tabular}{>{\ttfamily}rl}
 %  \rmfamily \bfseries Opción & \bfseries Significado \\ \hline
 %  prefactura & Imprime una prefactura. \\
 %  cotización & Imprime una cotización. \\
@@ -1219,11 +1355,16 @@
 %  todosiva & Expresa todos los tipos de IVA. \\
 %  G & Agrega una ``|G|'' en los ítems con IVA general. \\
 %  impdesc & Escribe la denominación del IVA en la descripción. \\
+%  centradesc & Centra la descripción de los ítems. \\
+%  sinmarcas & No escribe el carácter de fin de línea ni el carácter en las celdas vacías \\
+%            & cuando la descripción ocupa más que una línea. \\
 %  numitem & Enumera los ítems en la factura en otra columna extra a la izquierda. \\
 %  denom & Explicita la denominación del documento. \\
 %  sinnumero & No pone el número cuando se usa |denom|. \\
+%  sintotales & No escribe los totales al final del cuadro; para cotizaciones. \\
 %  sincantidad & Los artículos van sin expresar su cantidad. \\
 %  descuentos & Los artículos van con descuento individual. \\
+%  subtotal & Muestra el subtotal de cada ítem antes aplicar descuento. \\
 %  csv & Genera un archivo |.csv| con la información numérica de la factura. \\ \hline
 % \end{tabular}
 %
@@ -1232,7 +1373,7 @@
 %
 % A continuación presentamos una tabla con todos los comandos, que salvo |\FirmaReporte|, los |\Item| y |\Descripcion|, se poner todos en el preámbulo.
 %
-% \begin{tabular}{>{\ttfamily}rl}
+% \noindent \begin{tabular}{>{\ttfamily}rl}
 % \rmfamily \bfseries Comando & \bfseries Significado \\ \hline
 %  |\GeometriaFactura| & Establece los parámetros de la geometría de la factura. \\
 %  |\GeometriaReporte| & Establece los parámetros de la geometría del reporte. \\
@@ -1277,14 +1418,15 @@
 %  |\SepFilas| & Separación horizontal y vertical en los totales en el modo de filas. \\
 %  |\SepElementos| & Separación vertical entre los distintos elementos de la factura. \\
 %  |\SepEncabez| & Separación entre las cajas del encabezado de la factura y \\
-%               & separación interna entre el borde y el texto. \\
+%                & separación interna entre el borde y el texto. \\
+%  |\SepItemsExtra| & Separación vertical extra entre los elementos en la factura. \\
 %  |\SepDescrip| & Separación interna entre el borde y el texto en la descripción. \\
 % \end{tabular}
 % \newpage
-% \begin{tabular}{>{\ttfamily}rl}
+% \noindent \begin{tabular}{>{\ttfamily}rl}
 % \rmfamily \bfseries Comando & \bfseries Significado \\ \hline
 %  |\LineaEncabez| & Grosor de la línea de las cajas del encabezado de la factura. \\
-%                 & curvatura de la esquina y sombra. \\
+%                  & curvatura de la esquina y sombra. \\
 %  |\LineaDescrip| & Grosor de la línea de la caja de la descripción. \\
 %                  & curvatura de la esquina y sombra. \\
 %  |\LineaFirmas| & Longitud y grosor de las líneas para firmar. \\
@@ -1315,11 +1457,56 @@
 %  |\cantref| & Hace referencia a la cantidad del ítem. \\
 %  |\descref| & Hace referencia a la descripción del ítem. \\
 %  |\puref| & Hace referencia al precio unitario del ítem. \\
+%  |\subtref| & Hace referencia al subtotal del ítem. \\
 %  |\dctoref| & Hace referencia al descuento del ítem. \\
 %  |\ptref| & Hace referencia al precio total del ítem. \\
 %  |\mostrar| & Mostramos una variable que contenga ``|@|'' sin usar ``|\makeatletter|''\footnote{Este comando tampoco se usa en el preámbulo sino en cualquier otra parte del documento.}.
 % \end{tabular}
 %
+% \section{Ejemplos incluídos\label{sec:ejemplos}}
+% \todo*{Hay que hacer que en la documentación, toda opción y macro referencie al ejemplo donde se usa.}
+%
+%
+% Desde la página siguiente se muestran todos los ejemplos incluídos en la clase:
+%
+% \newpage
+% \newgeometry{marginparsep=0pt,vmargin={1cm,1cm},hmargin={1cm,1cm},footskip=0pt,footnotesep=0pt}
+% \setlength{\parindent}{0pt}
+% \hbadness=10000
+%
+% \Ejemplo{ejemplo-cotizacion}
+% \Ejemplo{ejemplo-prefactura}
+% \newpage
+% \Ejemplo{ejemplo-factura1}
+% \Ejemplo{ejemplo-factura2}[\small]
+% \newpage
+% \Ejemplo{ejemplo-factura3}
+% \Ejemplo{ejemplo-factura4}
+% \newpage
+% \Ejemplo{ejemplo-factura5}
+% \Ejemplo{ejemplo-factura6}
+% \newpage
+% \Ejemplo[0.4]{ejemplo-factura7}[\small]
+% \Ejemplo{ejemplo-factura8}
+% \newpage
+% \Ejemplo*[0.49]{ejemplo-reporte1}
+% \Ejemplo**[0.49]{ejemplo-reporte1}{2}
+% \Ejemplo[0.49]{ejemplo-reporte1}{3}
+% \newpage
+% \Ejemplo*[0.49]{ejemplo-reporte2}
+% \Ejemplo**[0.49]{ejemplo-reporte2}{2}
+% \Ejemplo[0.49]{ejemplo-reporte2}{3}
+% \newpage
+% \Ejemplo*[0.49]{ejemplo-reporte3}
+% \Ejemplo**[0.49]{ejemplo-reporte3}{2}
+% \Ejemplo[0.49]{ejemplo-reporte3}{3}
+% \newpage
+% \Ejemplo{beispiel-rechnung}
+%
+% \newpage
+% \hbadness=1000
+% \restoregeometry
+%
 % \StopEventually{\endorgo}
 %
 %    \begin{macrocode}
@@ -1338,6 +1525,7 @@
 \newif\if at descuentos
 \newif\if at denom
 \newif\if at sinnumero
+\newif\if at sintotales
 \newif\if at conlineasha
 \newif\if at linea
 \newif\if at lineacompleta
@@ -1369,11 +1557,14 @@
 \newif\if at nombre
 \newif\if at pagado
 \newif\if at impdesc
+\newif\if at centradesc
+\newif\if at sinmarcas
 \newif\if at pruebaref
 
 \RequirePackage{etoolbox}%  'etoolbox' para los condicionales binarios.
 
 \newbool{Descuentos}
+\newbool{Subtotal}
 \newbool{SinCantidad}
 \newbool{SinLineasVertInt}
 \newbool{SinLineasVertExt}
@@ -1402,11 +1593,26 @@
 \DeclareOption{unafirma}{\@unafirmatrue\@confirmastrue}%  No agrega el espacio para que firme quien recibe.
 \DeclareOption{dosfirmas}{\@unafirmafalse\@confirmastrue}%  Pone las dos firmas para firmar.
 \DeclareOption{descuentos}{\booltrue{Descuentos}\@descuentostrue}%  Para los descuentos individuales.
+\DeclareOption{subtotal}{%  Para la columna extra del subtotal antes del descuento.
+ \if at descuentos
+  \booltrue{Subtotal}
+ \else
+  \ClassWarning{factura}{La opción 'subtotal' no aplica sin descuentos individuales. Sin efecto opción 'subtotal'}{}
+ \fi}
 \DeclareOption{sincondiciones}{\@concondicionesfalse}%  No agrega el texto con las condiciones del documento.
 \DeclareOption{denom}{\@denomtrue}%  Agrega el texto con la denominación del documento, para las formas libres que no tienen el número de factura.
 \DeclareOption{sinnumero}{\@sinnumerotrue\@denomtrue}%  Escribir el texto de la denominación del documento pero sin escribir el número.
 \DeclareOption{G}{\@Gtrue}%  Con esta opción sale la letra 'G' en los items con IVA general, y sale el porcentaje en la base imponible general.
 \DeclareOption{filas}{\@filastrue}%  Estilo de totalización en filas.
+\DeclareOption{sintotales}{\@sintotalestrue%  No escribe los totales al final, por ejemplo para cotizaciones de productos similares.
+ \if at filas
+  \ClassWarning{factura}{La opción 'sintotales' no aplica para el modo de totalización en filas. Sin efecto opción 'filas'.}{}
+  \@filasfalse
+ \fi
+ \if at cotizacion
+ \else
+  \ClassWarning{factura}{La opción 'sintotales' no debe usarse en facturas sino en cotizaciones. No es válida una factura sin totales.}{}
+ \fi}
 \DeclareOption{centrado}{%  Total y exento 'centrado'; sólo para estilo 'filas'
  \if at filas
   \@centradotrue
@@ -1420,6 +1626,8 @@
   \@agrupadotrue
  \fi}
 \DeclareOption{impdesc}{\@impdesctrue}%  Para el tipo de impuesto en la descripción y no en el precio unitario y total.
+\DeclareOption{centradesc}{\@centradesctrue}%  Para centrar la descripción de cada ítem.
+\DeclareOption{sinmarcas}{\@sinmarcastrue}%  Para evitar que aparezcan los caracteres especiales cuando la descripción es larga.
 \DeclareOption{numitem}{\booltrue{NumItem}}%  Para poner una columna extra al principio con el número del ítem.
 \DeclareOption{dcu}{%  Descripción, luego cantidad y luego precio unitario.
  \@dcutrue\@cdufalse\@ducfalse
@@ -1478,7 +1686,7 @@
 \DeclareOption{csv}{%  Para la salida en modo csv también.
  \if at factura
   \@csvtrue
-  \AtEndDocument{\@EscribeTotalesEnCSV}
+  \if at sintotales\else\AtEndDocument{\@EscribeTotalesEnCSV}\fi
  \else
   \ClassWarning{factura}{La opción 'csv' require generar la factura. Sin efecto opción 'csv'.}{}
  \fi}
@@ -1554,7 +1762,10 @@
    \ClassWarning{factura}{** Fecha del documento\space \@Fecha\space distinta de la fecha de hoy. **}{}%
   \fi
  \fi
- \if at factura\ClassInfo{factura}{\@@Total: \space\space\space \Moneda \Total}{}\fi}
+ \if at sintotales
+ \else
+  \if at factura\ClassInfo{factura}{\@@Total: \space\space\space \Moneda \Total}{}\fi
+ \fi}
 
 %</class>
 %<*class|def>
@@ -1601,6 +1812,7 @@
 \def\@@Cantidad{Cantidad}
 \def\@@Descripcion{Descripci\'on}
 \def\@@PrecioU{Precio U.}
+\def\@@PrecioS{Subtotal}
 \def\@@PrecioT{Precio T.}
 \def\@@Precio{Precio}
 \def\@@AlicuotaG{IVA G}
@@ -1820,6 +2032,10 @@
 %<class>\def\SepEncabez#1#2{\setlength{\@SeparaEncabez}{#1}\setlength{\@SeparaInternaEncabez}{#2}}
 %<def>\SepEncabez{0.2cm}{6pt}
 
+%% Separación extra entre los elementos en la factura.
+%<class>\def\SepItemsExtra#1{\setlength{\@SeparaItemsExtra}{#1}}
+%<def>\SepItemsExtra{0pt}
+
 %% Separación interna entre la línea y el texto de la descripción.
 %<class>\def\SepDescrip#1{\setlength{\@SeparaInternaDescrip}{#1}}
 %<def>\SepDescrip{6pt}
@@ -2030,6 +2246,7 @@
 \newlength{\@TamCantidad}
 \newlength{\@TamDescrip}
 \newlength{\@TamPrecioU}
+\newlength{\@TamPrecioS}
 \newlength{\@TamDescuento}
 \newlength{\@TamPrecioT}
 \newlength{\@GrosorLineaFirmas}
@@ -2058,6 +2275,8 @@
 \newlength{\@EspacioVacioInicial}
 \newlength{\@EspacioVacioFinal}
 \newlength{\@SeparaEncabez}
+\newlength{\@SeparaItemsExtra}
+\newlength{\@SeparaItemsExtraFinal}
 \newlength{\@SeparaInternaEncabez}
 \newlength{\@SeparaInternaDescrip}
 \newlength{\@SeparaElementos}
@@ -2120,6 +2339,12 @@
  \RequirePackage{zref-savepos}%  Para la firma, que debe ser cargado aquí porque \FirmaReporte no se ejecuta desde el preámbulo.
 \fi
 
+\if at sinmarcas
+ \setlength{\@SeparaFinLineaDesc}{0pt}
+ \def\@CaracterCR{\mbox{}}
+ \def\@CaracterCeldasVacias{\mbox{}}
+\fi
+
 %% Comando para escribir el encabezado en la factura.
 \newcommand\@EncabezadoFactura{%
  \ifdefvoid{\@Resumen}{\@EscribeDatos}{\@EscribeDatosResumen}%
@@ -2152,15 +2377,18 @@
 %% http://tex.stackexchange.com/questions/248944/how-to-put-before-lines
 \newcommand{\@DescripcionAuxCmd}[2]{%
  \immediate\write\@auxout{\gdef\noexpand\@TamDescrip{\the\linewidth}}% Para poder establecer la línea diagonal hay que saber el tamaño del campo de la descripción.
- \setbox0\hbox{\parbox[t]{\linewidth}{#1%
+ \setbox0\hbox{\parbox[t]{\linewidth}{\if at centradesc\centering\arraybackslash\fi#1%
   \if at impdesc\hfill\ \@EscribeTipoDeImpuesto{#2}\fi%
   \par\global\count1=\prevgraf}}%
  \ifnum\count1 = 1
-  #1%
-  \if at impdesc\hfill\ \@EscribeTipoDeImpuesto{#2}\fi
+  \if at centradesc\centering\arraybackslash\fi#1%
+  \if at impdesc\vskip-\baselineskip\hfill\ \@EscribeTipoDeImpuesto{#2}\fi
  \else
   \parbox[t]{\linewidth-\wd\@CajaCaracterCR-\@SeparaFinLineaDesc}{%
-   \David at XStart#1\David at XEnd
+   \David at XStart
+   \if at centradesc\centering\arraybackslash\fi
+   #1%
+   \David at XEnd
    \par
    \count0=\prevgraf
    \count2=\prevgraf
@@ -2197,6 +2425,11 @@
  \ifdim\wd\@CajaPrueba > \@TamPrecioU \global\@TamPrecioU=\wd\@CajaPrueba\fi
  \parbox[t]{\@TamPrecioU}{#1}}
 
+\newcommand{\@PrecioSAuxCmd}[1]{%
+ \savebox{\@CajaPrueba}{#1}%
+ \ifdim\wd\@CajaPrueba > \@TamPrecioS \global\@TamPrecioS=\wd\@CajaPrueba\fi
+ \parbox[t]{\@TamPrecioS}{#1}}
+
 \newcommand{\@DescuentoAuxCmd}[1]{%
  \savebox{\@CajaPrueba}{#1}%
  \ifdim\wd\@CajaPrueba > \@TamDescuento \global\@TamDescuento=\wd\@CajaPrueba\fi
@@ -2446,13 +2679,17 @@
  \ifbool{DUC}{c}{r}
  % Quinta línea. 
  \ifbool{SinLineasVertInt}{}{|}
+ % Columna 'r' para subtotal antes del descuento, o columna fantasma si no se especifica 'subtotal').
+ \ifbool{Subtotal}{r}{l@{\extracolsep{0pt}}}
+ % Sexta línea, que sale solamente cuando hay columna de subtotales.
+ \ifbool{Subtotal}{\ifbool{SinLineasVertInt}{}{|}}{}
  % Columna 'c' para 'descuentos' y columna 'r' sin espacio si no hay descuentos individuales.
  \ifbool{Descuentos}{c}{r@{\extracolsep{0pt}}}
- % Sexta línea, que sale solamente cuando hay descuentos.
+ % Séptima línea, que sale solamente cuando hay descuentos.
  \ifbool{Descuentos}{\ifbool{SinLineasVertInt}{}{|}}{}
  % Columna 'r' siempre.
  r
- % Séptima y última línea.
+ % Octava y última línea.
  \ifbool{SinLineasVertExt}{}{|}}
 
 %% Comando auxiliar para abrir la tabla del cuadro de la factura y expandir completamente las columnas.
@@ -2460,7 +2697,7 @@
 
 %% Comando auxiliar para abrir el '\multicolumn' para los totales en el modo de columnas y expandir completamente las columnas cuando hay o no barras verticales.
 \edef\@ColumnasMultiColumnTotalesAuxCmd{%
- \noexpand\multicolumn{6}{\ifbool{SinLineasVertExt}{}{|} r}\begingroup
+ \noexpand\multicolumn{7}{\ifbool{SinLineasVertExt}{}{|} r}\begingroup
    \noexpand\ifdim \noexpand\ht\noexpand\@CajaEspacioVacio=0pt
    \noexpand\else
     \noexpand\if at linea\noexpand\zsaveposx{LineaNodoBCoordX}\noexpand\zsaveposy{LineaNodoBCoordY}\noexpand\fi\noexpand\fi% Fijamos la posición (x,y) final para la línea ya que estaremos justo en el punto donde escribimos el total, y hasta allí llega la línea en el modo de columnas.
@@ -2472,8 +2709,10 @@
  % Calculamos.
  \FPupn\PrecioU{#4 \@DigitosMoneda{} round}%
  \ifx\\#5\\\FPset\Dcto{0}\else\FPupn\Dcto{#5 \@DigitosPorc{} round clip}\fi% Fijamos en 0 el descuento si no se especifica.
- \FPupn\PrecioT{100 \Dcto{} 100 - / #2 * \PrecioU{} * \@DigitosMoneda{} round}%
+ \FPupn\PrecioS{#2 \PrecioU{} * \@DigitosMoneda{} round}%
+ \FPupn\PrecioT{100 \Dcto{} 100 - / \PrecioS{} * \@DigitosMoneda{} round}%
  \global\let\PrecioU\PrecioU
+ \global\let\PrecioS\PrecioS
  \global\let\Dcto\Dcto
  \global\let\PrecioT\PrecioT
  % Suma el elemento actual al subtotal acumulado.
@@ -2483,6 +2722,7 @@
  \expandafter\gdef\csname @Item@\romannumeral\value{@NumItem}@Cantidad\endcsname{\numprint{#2}}%
  \expandafter\gdef\csname @Item@\romannumeral\value{@NumItem}@Descripcion\endcsname{#3}%
  \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{@NumItem}@PrecioU\endcsname{\noexpand\numprint{\PrecioU}}%
+ \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{@NumItem}@PrecioS\endcsname{\noexpand\numprint{\PrecioS}}%
  \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{@NumItem}@Descuento\endcsname{\noexpand\numprint{\Dcto}}%
  \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{@NumItem}@PrecioT\endcsname{\noexpand\numprint{\PrecioT}}}
 
@@ -2502,6 +2742,7 @@
 \gdef\cantref#1{\@pruebaref{#1}\if at pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Cantidad\endcsname \fi}
 \gdef\descref#1{\@pruebaref{#1}\if at pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Descripcion\endcsname \fi}
 \gdef\puref#1{\@pruebaref{#1}\if at pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioU\endcsname \fi}
+\gdef\subtref#1{\@pruebaref{#1}\if at pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioS\endcsname \fi}
 \gdef\dctoref#1{\@pruebaref{#1}\if at pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Descuento\endcsname \fi}
 \gdef\ptref#1{\@pruebaref{#1}\if at pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioT\endcsname \fi}
 
@@ -2578,7 +2819,8 @@
   % Si no es el primer ítem, entonces hace falta \\ para terminar el ítem anterior.
   \ifnum\value{@NumItem}=1%
   \else
-   \\
+   \setlength{\@SeparaItemsExtraFinal}{\numexpr\the\count1\normalbaselineskip-\normalbaselineskip+\@SeparaItemsExtra}%
+   \\[\@SeparaItemsExtraFinal]
    \if at conlineasha\hline\fi% Líneas para separar cada ítem, si hiciera falta.
   \fi
   % Primer -opcional- campo: El número del ítem.
@@ -2615,8 +2857,15 @@
       \if at impdesc\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \numprint{\PrecioU}
      \fi}}% dcu y cdu.
    \fi}%
+  & % Quinto -opcional- campo: Subtotal (para luego descuentos).
+  \ifbool{Subtotal}{%
+   \David at XRight{\@PrecioSAuxCmd{%
+    \ifx##1X \hfill \@CaracterItemXVacio \hfill\mbox{}%
+    \else
+     \if at impdesc\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \numprint{\PrecioS}
+    \fi}}}{}
   &
-  % Quinto -opcional- campo: Descuento.
+  % Sexto -opcional- campo: Descuento.
   \ifbool{Descuentos}{%
    \David at XRight{\@DescuentoAuxCmd{%
     \ifx##1X \hfill \@CaracterItemXVacio \hfill\mbox{}%
@@ -2624,7 +2873,7 @@
      \mbox{}\hfill \@LetraNumeros \numprint{\Dcto}\%\hfill\mbox{}%
     \fi}}}{}% Tenemos que usar un condicional booleano porque si no da problemas con el condicional \FPifeq.
   &
-  % Sexto campo: El total.
+  % Séptimo campo: El total.
   \David at XRight{\@PrecioTAuxCmd{%
    \ifx##1X \hfill \@CaracterItemXVacio \hfill\mbox{}%
    \else
@@ -2687,6 +2936,8 @@
    \else
     \@PrecioUAuxCmd{\mbox{}\hfill \@LetraTitCuadro \@@PrecioU \space (\Moneda)\hfill\mbox{}}%
    \fi}%
+ &% Avanzamos hasta el subtotal, que puede o no existir,
+ \ifbool{Subtotal}{\@PrecioSAuxCmd{\mbox{}\hfill \@LetraTitCuadro \@@PrecioS \space (\Moneda)\hfill\mbox{}}}{}%
  &% Avanzamos hasta el descuento, que puede o no existir.
  \if at descuentos \@DescuentoAuxCmd{\mbox{}\hfill \@LetraTitCuadro \@@Descuento \hfill\mbox{}}\fi
  &% Avanzamos hasta el precio total.
@@ -2703,7 +2954,7 @@
   \ifdim \ht\@CajaEspacioVacio=0pt
    \ifbool{SinLineasHoriExt}{}{\if at conlineasha\else\hline\fi}% Verificamos si hay que poner la línea horizontal. Si está 'conlineasha' ya salió debido a esta opción.
   \else
-   \ifbool{PrimeroDescrip}{&\usebox{\@CajaEspacioVacio}&&&&\\}{&&\usebox{\@CajaEspacioVacio}&&&\\}%
+   \ifbool{PrimeroDescrip}{&\usebox{\@CajaEspacioVacio}&&&&&\\}{&&\usebox{\@CajaEspacioVacio}&&&&\\}%
    \ifbool{SinLineasHoriExt}{}{\hline}% Siempre que hay relleno se pone la línea acá.
   \fi
  \else
@@ -2712,27 +2963,34 @@
   \ifdim \ht\@CajaEspacioVacio=0pt
   \else
    % Rellenamos la tabla con espacio espúreo, y le agregamos las lineas externas, si aplica.
-   \ifbool{SinLineasVertExt}{\multicolumn{6}{c}{\usebox{\@CajaEspacioVacio}}}{\multicolumn{6}{|c|}{\usebox{\@CajaEspacioVacio}}}\\
+   \ifbool{SinLineasVertExt}{\multicolumn{7}{c}{\usebox{\@CajaEspacioVacio}}}{\multicolumn{7}{|c|}{\usebox{\@CajaEspacioVacio}}}\\
   \fi
-  % Modo de columnas: Abrimos la tabla para escribir los totales, y le agregamos las líneas verticales externas, si aplica.
-  \@ColumnasMultiColumnTotalesAuxCmd
-  \@CalculaTotalesI
-  \if at agrupado
-   \@EscribeTotalColAgrupado
+  % Si pedimos sin totalizaciones, entonces cerramos la tabla ya, si no, calculamos los totales y los escribimos
+  \if at sintotales
   \else
-   \if at Exento \@EscribeTotalCol{E}\fi
-   \if at BIR\@EscribeTotalCol{R}\if at ivaexpresado\@EscribeTotalColAlicuota{R}\fi\fi
-   \@EscribeTotalCol{G}\if at ivaexpresado\@EscribeTotalColAlicuota{G}\fi
-   \if at BIA\@EscribeTotalCol{A}\if at ivaexpresado\@EscribeTotalColAlicuota{A}\fi\fi
+   % Modo de columnas: Abrimos la tabla para escribir los totales, y le agregamos las líneas verticales externas, si aplica.
+   \@ColumnasMultiColumnTotalesAuxCmd
+   \@CalculaTotalesI
+   \if at agrupado
+    \@EscribeTotalColAgrupado
+   \else
+    \if at Exento \@EscribeTotalCol{E}\fi
+    \if at BIR\@EscribeTotalCol{R}\if at ivaexpresado\@EscribeTotalColAlicuota{R}\fi\fi
+    \@EscribeTotalCol{G}\if at ivaexpresado\@EscribeTotalColAlicuota{G}\fi
+    \if at BIA\@EscribeTotalCol{A}\if at ivaexpresado\@EscribeTotalColAlicuota{A}\fi\fi
+   \fi
+   \if at ivaexpresado\cline{2-2}\fi
+   \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\numprint{\Total}\\
+   \end{tabular}\endgroup
+   \\
+   \ifbool{SinLineasHoriExt}{}{\hline}%
   \fi
-  \if at ivaexpresado\cline{2-2}\fi
-  \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\numprint{\Total}\\
-  \end{tabular}\endgroup
-  \\
-  \ifbool{SinLineasHoriExt}{}{\hline}%
  \fi
  \end{tabularx}%
  %
+ % Generamos la macro \Total vacía para que no dé error en algún posible uso dentro del documento.
+ \if at sintotales\gdef\Total{}\fi
+ % Si pedimos no totalizar (sintotales), la opción filas queda desactivada.
  \if at filas
   \@CalculaTotalesI
   \@LetraNumTotales
@@ -2806,13 +3064,13 @@
  \vspace*{\@SeparaElementos}\par}
 
  \ifbool{SinCantidad}
- % Definamos todos los comandos \Item***.
+ % Definamos todos los comandos \Item***. El descuento es opcional; por eso usamos G{0} en \NewDocumentCommand.
  {%
   \if at descuentos
-   \newcommand{\Item}[3]{\@ITEM{G}{1}{#1}{#2}{#3}}% Ítem normal.
-   \newcommand{\ItemR}[3]{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
-   \newcommand{\ItemA}[3]{\global\@BIAtrue\global\@Gtrue\@ITEM{A}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
-   \newcommand{\ItemE}[3]{\global\@Exentotrue\global\@Gtrue\@ITEM{E}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
+   \NewDocumentCommand{\Item}{m m G{0}}{\@ITEM{G}{1}{#1}{#2}{#3}}% Ítem normal.
+   \NewDocumentCommand{\ItemR}{m m G{0}}{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
+   \NewDocumentCommand{\ItemA}{m m G{0}}{\global\@BIAtrue\global\@Gtrue\@ITEM{A}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
+   \NewDocumentCommand{\ItemE}{m m G{0}}{\global\@Exentotrue\global\@Gtrue\@ITEM{E}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
   \else
    \newcommand{\Item}[2]{\@ITEM{G}{1}{#1}{#2}{0}}% Ítem normal.
    \newcommand{\ItemR}[2]{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{1}{#1}{#2}{0}}% Ítem con IVA reducido.
@@ -2830,10 +3088,10 @@
   \fi}
  {%
   \if at descuentos
-   \newcommand{\Item}[4]{\@ITEM{G}{#1}{#2}{#3}{#4}}% Ítem normal.
-   \newcommand{\ItemR}[4]{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{#1}{#2}{#3}{#4}}% Ítem con IVA reducido.
-   \newcommand{\ItemA}[4]{\global\@BIAtrue\global\@Gtrue\@ITEM{A}{#1}{#2}{#3}{#4}}% Ítem con IVA adicional.
-   \newcommand{\ItemE}[4]{\global\@Exentotrue\global\@Gtrue\@ITEM{E}{#1}{#2}{#3}{#4}}% Ítem exento de IVA.
+   \NewDocumentCommand{\Item}{m m m G{0}}{\@ITEM{G}{#1}{#2}{#3}{#4}}% Ítem normal.
+   \NewDocumentCommand{\ItemR}{m m m G{0}}{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{#1}{#2}{#3}{#4}}% Ítem con IVA reducido.
+   \NewDocumentCommand{\ItemA}{m m m G{0}}{\global\@BIAtrue\global\@Gtrue\@ITEM{A}{#1}{#2}{#3}{#4}}% Ítem con IVA adicional.
+   \NewDocumentCommand{\ItemE}{m m m G{0}}{\global\@Exentotrue\global\@Gtrue\@ITEM{E}{#1}{#2}{#3}{#4}}% Ítem exento de IVA.
   \else
    \newcommand{\Item}[3]{\@ITEM{G}{#1}{#2}{#3}{0}}% Ítem normal.
    \newcommand{\ItemR}[3]{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{#1}{#2}{#3}{0}}% Ítem con IVA reducido.
@@ -3300,6 +3558,7 @@
 %<*!class&!def&!firma&!fondo&!membrete&!batchfile>
 %% Descripción de este ejemplo:
 %
+%%<desc>
 %<factuno|factdos|facttres|factcuatro|factcinco|factseis|factsiete|factocho|repuno|repdos>%%  Escribimos una factura,
 %<prefac>%%  Escribimos una prefactura (prefactura),
 %<cotiza>%%  Escribimos una cotización (cotizacion),
@@ -3319,12 +3578,13 @@
 %
 %<facttres>%%  Agrupados los totales por gravámenes (agrupado),
 %<factcuatro|factcinco|factsiete>%%  Totalización en modo de filas (filas),
-%<factcinco>%%  Centrados los totales en el modo de filas (centrado),
+%<factcuatro>%%  Centrados los totales en el modo de filas (centrado),
 %
 %<factdos>%%  Primero la descripción, luego la cantidad, luego el precio unitario (dcu),
 %<factcuatro>%%  Primero la descripción, luego el precio unitario, luego la cantidad (duc),
-%<factcinco|factseis>%%  Escribe la denominación ("FACTURA") y el número (denom),
-%<cotiza>%%  Escribe la denominación ("COTIZACIÓN") pero sin número (sinnumero),
+%<factcinco|factseis>%%  Escribe la denominación (“FACTURA”) y el número (denom),
+%<cotiza>%%  Escribe la denominación (“COTIZACIÓN”) pero sin número (sinnumero),
+%<cotiza>%%  No totaliza, para que el cliente tenga un presupuesto por distintos ítems que luego elegirá entre ellos, es decir, una lista de precios. (sintotales),
 %
 %<factdos|factseis>%%  Sin líneas verticales externas (sinlineasve),
 %<facttres|factcuatro>%%  Sin líneas verticales internas (sinlineasvi),
@@ -3337,6 +3597,9 @@
 %<prefac|facttres>%%  Con línea protectora del espacio en blanco (linea),
 %
 %<facttres>%%  Con el tipo de impuesto como parte de la descripción y no de los precios (impdesc),
+%<factdos>%%  Centra la descripción en los elementos en la factura (centradesc),
+%<factseis|factsiete>%%  Escribimos un ítem cuya descripción ocupa más que una línea,
+%<factsiete>%%  Cuando la descripción de un ítem ocupa más que una línea, no pone el carácter que indica continuación en la siguiente línea ni los caracteres en las columnas vacías (sinmarcas),
 %<factcinco|factseis|factsiete>%%  Obligando a especificar todos los IVA así no existan productos gravados con ellos (todosiva),
 %<factseis>%%  Especificando 'G' en los ítems gravados con IVA general (G),
 %<factocho>%%  Sin IVA (siniva),
@@ -3362,6 +3625,7 @@
 %
 %<factdos|facttres|factsiete>%%  Alterando la separación mínima vertical entre los elementos (\SepElementos),
 %<factdos|facttres|factsiete>%%  Alterando la separación horizontal en el encabezado y la distancia desde el contorno hasta el texto (\SepEncabez),
+%<factdos|factcuatro>%%  Agregando una separación extra entre los ítems en la factura (\SepItemsExtra),
 %<factdos|factsiete>%%  Alterando la la distancia desde el contorno hasta el texto en la descripción (\SepDescrip),
 %<factsiete>%%  Alterando la separación horizontal y vertical entre los totales en el modo de filas (\SepFilas),
 %<facttres|factsiete>%%  Alterando la línea de las cajas del encabezado, la curvatura en la esquina y la sombra (\LineaEncabez),
@@ -3371,7 +3635,7 @@
 %<factcuatro|factocho>%%  Cambiando varias de las tipografías (\Letra...),
 %<factseis>%%  Redefiniendo el formato de la fecha (redefiniendo \@@Fecha y \@EstiloFecha),
 %
-%<factdos|factcuatro>%%  Usando \Nombre y \CI en lugar de \RazonSocial y \RIF,
+%<factdos|factcuatro>%%  Usando “\Nombre” y “\CI” en lugar de “\RazonSocial” y “\RIF”,
 %<factcuatro>%%  Sin especificar la persona de contacto,
 %<factcuatro>%%  Sin especificar el e-mail del cliente,
 %<factcinco|repuno>%%  Especificando el nombre del emisor de la factura (\Emisor),
@@ -3392,6 +3656,7 @@
 %<!facttres&!reptres&!beispiel>%%  Con descripción larga (\Descripcion).
 %<facttres|reptres>%%  Sin descripción larga.
 %<beispiel>%%  Adaptado a otra legislación.
+%%</desc>
 %%
 %<factuno>\documentclass{factura}
 %<!factuno>\documentclass[
@@ -3405,10 +3670,11 @@
 %<factdos|factseis>numitem,
 %<factdos>descuentos,
 %<factcuatro|factcinco|factsiete>filas,
-%<factcinco>centrado,
+%<factcuatro>centrado,
 %<facttres>agrupado,
 %<factcinco|factseis>denom,
 %<cotiza>sinnumero, % sin esta opción aparecerá el número de la cotización.
+%<cotiza>sintotales,
 %<factdos>dcu,
 %<factcuatro>duc,
 %<factdos|factseis>sinlineasve,
@@ -3422,6 +3688,8 @@
 %<facttres|factcuatro|prefac>exparriba,
 %<facttres|prefac>linea,
 %<facttres>impdesc,
+%<factdos>centradesc,
+%<factsiete>sinmarcas,
 %<factcinco|factseis|factsiete>todosiva,
 %<factseis>G,
 %<factocho>siniva,
@@ -3439,41 +3707,41 @@
 %<beispiel>\usepackage[ngerman]{babel}
 %<beispiel>\usepackage[T1]{fontenc}
 %<beispiel>
-%<beispiel> \def\Moneda{\euro{}}
+%<beispiel>\def\Moneda{\euro{}}
 %<beispiel>\makeatletter
-%<beispiel> \def\@AlicuotaG{0.19}
-%<beispiel> \def\@AlicuotaR{0.07}
-%<beispiel> \def\@DenomAlicuotaG{A}
-%<beispiel> \def\@DenomAlicuotaR{C}
-%<beispiel> \def\@DenomAlicuotaE{B}
-%<beispiel> \def\@@Datos{Kundenidentifikation}
-%<beispiel> \def\@@Resumen{Zusammenfassung}
-%<beispiel> \def\@@Fecha{Datum:}
-%<beispiel> \def\@@Nombre{Kunde:} \def\@@RazonSocial{Kunde:}
-%<beispiel> \def\@@RIF{USt-IdNr:} \def\@@CT{USt-IdNr:}
-%<beispiel> \def\@@Contacto{Kontactperson:}
-%<beispiel> \def\@@Direccion{Adresse:}
-%<beispiel> \def\@@Telefono{Telefon:}
-%<beispiel> \def\@@Email{E-mail:}
-%<beispiel> \def\@@Cliente{Kunde:}
-%<beispiel> \def\@@Proveedor{Lieferant:}
-%<beispiel> \def\@@Cantidad{Menge}
-%<beispiel> \def\@@Descripcion{Beschreibung}
-%<beispiel> \def\@@PrecioU{Einzelpreis}
-%<beispiel> \def\@@PrecioT{Gesamt}
-%<beispiel> \def\@@Precio{Preis}
-%<beispiel> \def\@@AlicuotaG{MwSt A}
-%<beispiel> \def\@@AlicuotaR{MwSt C}
-%<beispiel> \def\@@BIG{Netto 19\%}
-%<beispiel> \def\@@BIR{Netto 7\%}
-%<beispiel> \def\@@BIE{Mwst-befreit}
-%<beispiel> \def\@@Total{Brutto}% Zu zahlen / Brutto / Summe / Gesamt
-%<beispiel> \def\@@Conforme{der Kunde}
-%<beispiel> \def\@@DenomFactura{Rechnung}
-%<beispiel> \def\@@DenomCotiza{Voranschlag}
-%<beispiel> % \LetraNumeracion{\fontsize{14}{14}\bfseries}
-%<beispiel> \renewcommand{\@EstiloDenom}{\@LetraDenom\@Denominacion-\if at sinnumero\else\@LetraNumeracion Nr:\space\@Num\fi}
-%<beispiel> \renewcommand{\@EstiloNumControl}{}
+%<beispiel>\def\@AlicuotaG{0.19}
+%<beispiel>\def\@AlicuotaR{0.07}
+%<beispiel>\def\@DenomAlicuotaG{A}
+%<beispiel>\def\@DenomAlicuotaR{C}
+%<beispiel>\def\@DenomAlicuotaE{B}
+%<beispiel>\def\@@Datos{Kundenidentifikation}
+%<beispiel>\def\@@Resumen{Zusammenfassung}
+%<beispiel>\def\@@Fecha{Datum:}
+%<beispiel>\def\@@Nombre{Kunde:} \def\@@RazonSocial{Kunde:}
+%<beispiel>\def\@@RIF{USt-IdNr:} \def\@@CT{USt-IdNr:}
+%<beispiel>\def\@@Contacto{Kontactperson:}
+%<beispiel>\def\@@Direccion{Adresse:}
+%<beispiel>\def\@@Telefono{Telefon:}
+%<beispiel>\def\@@Email{E-mail:}
+%<beispiel>\def\@@Cliente{Kunde:}
+%<beispiel>\def\@@Proveedor{Lieferant:}
+%<beispiel>\def\@@Cantidad{Menge}
+%<beispiel>\def\@@Descripcion{Beschreibung}
+%<beispiel>\def\@@PrecioU{Einzelpreis}
+%<beispiel>\def\@@PrecioT{Gesamt}
+%<beispiel>\def\@@Precio{Preis}
+%<beispiel>\def\@@AlicuotaG{MwSt A}
+%<beispiel>\def\@@AlicuotaR{MwSt C}
+%<beispiel>\def\@@BIG{Netto 19\%}
+%<beispiel>\def\@@BIR{Netto 7\%}
+%<beispiel>\def\@@BIE{Mwst-befreit}
+%<beispiel>\def\@@Total{Brutto}% Zu zahlen / Brutto / Summe / Gesamt
+%<beispiel>\def\@@Conforme{der Kunde}
+%<beispiel>\def\@@DenomFactura{Rechnung}
+%<beispiel>\def\@@DenomCotiza{Voranschlag}
+%<beispiel>% \LetraNumeracion{\fontsize{14}{14}\bfseries}
+%<beispiel>\renewcommand{\@EstiloDenom}{\@LetraDenom\@Denominacion-\if at sinnumero\else\@LetraNumeracion Nr:\space\@Num\fi}
+%<beispiel>\renewcommand{\@EstiloNumControl}{}
 %<beispiel>\makeatother
 
 %<factsiete>\GeometriaFactura{legalpaper,vmargin={5cm,5.5cm},hmargin={1cm,1cm},footskip=0pt,headsep=0pt,headheight=0pt}
@@ -3499,8 +3767,9 @@
 %<repuno|reptres>% \EstiloPagReporte[empty]{soloarriba}
 %<repuno|reptres>% \EstiloPagReporte{soloarriba}
 %<cotiza>\FirmaFactura{\includegraphics[width=5cm]{factura-ejemplo-firma.pdf}}[0pt][21pt]
-%<factdos|facttres|factsiete>\SepElementos{1cm}
+%<factdos|facttres|factsiete>\SepElementos{0.75cm}
 %<factdos|facttres|factsiete>\SepEncabez{1cm}{16pt}
+%<factdos|factcuatro>\SepItemsExtra{8pt}
 %<factdos|factsiete>\SepDescrip{16pt}
 %<factsiete>\SepFilas{1cm}{10pt}
 %<facttres|factsiete>\LineaEncabez{1pt}{20pt}{3pt}
@@ -3523,12 +3792,12 @@
 %<factocho>\LetraNumTotal{\fontsize{20}{30}\bfseries}
 %<factocho>\tabcolsep7pt
 %<factseis>\makeatletter
-%<factseis> \renewcommand{\@@Fecha}{\slshape FECHA DE EMISIÓN:}
+%<factseis> \renewcommand{\@@Fecha}{\slshape FECHA:}
 %<factseis> \renewcommand{\@EstiloFecha}{\@LetraFecha\bfseries\@@Fecha\space{\color{blue}\@Fecha}}
 %<factseis>\makeatother
 %<!factuno&!factcinco>
 %<cotiza>% \Denom{PRESUPUESTO} % También podemos cambiar el nombre del documento
-\Fecha{05-11-2016}
+\Fecha{06-11-2017}
 %<factcinco|factseis|cotiza|prefac|repuno|repdos|beispiel>\Num{1}
 %<!factdos&!factcuatro&!beispiel>\RazonSocial{Ayala San Vicente Usureros}
 %<factdos|factcuatro|beispiel>\Nombre{Jacinto de Ayala y San Vicente}
@@ -3556,7 +3825,10 @@
 %<!reptres>\begin{factura}
 %<!factdos&!factcinco&!factseis&!repdos&!reptres&!beispiel> \Item{1}{ítem con IVA general}{1000}
 %<factseis|repdos> \Item{2}{ítem con IVA general}{1000}\label{primeritem}
-%<factuno|factcuatro|factseis|repdos> \Item{4}{otro ítem con IVA general}{100}
+%<factuno|factcuatro|repdos> \Item{4}{otro ítem con IVA general}{100}
+%<factseis|factsiete> \Item{10}{otro ítem con IVA general -descripción larga para mostrar el cambio de línea-}{1000}
+%<cotiza> \Item{1}{otro ítem con IVA general}{1100}
+%<cotiza> \Item{1}{otro ítem más con IVA general}{1200}
 %<facttres|prefac> \ItemR{1}{ítem con IVA reducido}{1000}
 %<facttres> \ItemA{1}{ítem con IVA adicional}{1000}
 %<facttres> \ItemE{1}{ítem exento de impuesto}{1000}
@@ -3563,7 +3835,7 @@
 %<factdos> \Item{1}{ítem con IVA general, con descuento}{1000}{8}
 %<factdos> \ItemR{1}{ítem con IVA reducido, con descuento}{1000}{5}
 %<factdos> \ItemA{1}{ítem con IVA adicional, con descuento}{1000}{10}
-%<factdos> \ItemE{1}{ítem exento de impuesto, con descuento}{1000}{8}
+%<factdos> \ItemE{1}{ítem exento de impuesto, con descuento}{1000}
 %<factdos|factcuatro> \ItemX{1}{línea sin precio}
 %<factcinco> \Item{ítem sin cantidad, con IVA general}{1000}
 %<factcinco> \ItemA{ítem sin cantidad, con IVA adicional}{1000}
@@ -3581,7 +3853,7 @@
 %<repuno|repdos|reptres|factcinco|factocho>\begin{reporte}
 %<repuno|repdos|reptres|factcinco|factocho> El reporte - página 1\newpage El reporte - página 2 \newpage El reporte - página 3.
 %<repdos>
-%<factseis|repdos> En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} \descref{primeritem} por un valor de \Moneda\puref{primeritem} cada uno, dando un total de \Moneda\ptref{primeritem}, el IVA de este ítem es de \Moneda\AlicuotaG; luego se facturó otro ítem dando un total final de \Moneda\Total.
+%<factseis|repdos> En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} \descref{primeritem} por un valor de \Moneda\puref{primeritem} cada uno, el descuento porcentual de ese artículo es \dctoref{primeritem}, dando un total de \Moneda\ptref{primeritem}. El IVA de este ítem es de \Moneda\numprint\AlicuotaG; luego se facturó otro artículo más, dando un total final de \Moneda\numprint\Total.
 %<factseis|repdos> % También podemos usar \dctoref{primeritem} para la referencia al descuento, y en cuanto a las totalizaciones: \BIE, \BIR, \BIA, \AlicuotaR, \AlicuotaA, \SubtG, \SubtE, \SubtR, \SubtA, \DescG, \DescE, \DescR, \DescA para los demás totales.
 %<factseis>}
 %<repdos%<repdos|factcinco|factocho> \FirmaReporte[\includegraphics[width=5cm]{factura-ejemplo-firma}][0pt][21pt]
@@ -3732,7 +4004,7 @@
 %<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 at 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
+%<fondo>  e-mail: \hfill imprenta at sanrom.án. No. Providencia SENIAT 01/01060 de fecha 12/11/2008 - Control desde No. 00-000001 hasta No. 00-010000 / Fecha 01/01/2017.\par
  \end{minipage}
 \end{document}
 %</fondo|membrete>

Modified: trunk/Master/texmf-dist/source/latex/factura/factura.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/factura/factura.ins	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/source/latex/factura/factura.ins	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `batchfile')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -37,7 +37,7 @@
 \input docstrip.tex
 \preamble
 
-Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either
@@ -127,8 +127,9 @@
 \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{}
+\Msg{Also compile all other examples and recompile \jobname.dtx.}
+\Msg{}
 \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}

Modified: trunk/Master/texmf-dist/tex/latex/factura/factura.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/factura/factura.cls	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/tex/latex/factura/factura.cls	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `class')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -36,7 +36,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
 \ProvidesClass{factura}
-[2016/06/25 v2.82
+[2017/03/11 v3.00
 Clase para elaborar facturas legales
 en la República Bolivariana de Venezuela.
 ]
@@ -55,6 +55,7 @@
 \newif\if at descuentos
 \newif\if at denom
 \newif\if at sinnumero
+\newif\if at sintotales
 \newif\if at conlineasha
 \newif\if at linea
 \newif\if at lineacompleta
@@ -86,11 +87,14 @@
 \newif\if at nombre
 \newif\if at pagado
 \newif\if at impdesc
+\newif\if at centradesc
+\newif\if at sinmarcas
 \newif\if at pruebaref
 
 \RequirePackage{etoolbox}%  'etoolbox' para los condicionales binarios.
 
 \newbool{Descuentos}
+\newbool{Subtotal}
 \newbool{SinCantidad}
 \newbool{SinLineasVertInt}
 \newbool{SinLineasVertExt}
@@ -119,11 +123,26 @@
 \DeclareOption{unafirma}{\@unafirmatrue\@confirmastrue}%  No agrega el espacio para que firme quien recibe.
 \DeclareOption{dosfirmas}{\@unafirmafalse\@confirmastrue}%  Pone las dos firmas para firmar.
 \DeclareOption{descuentos}{\booltrue{Descuentos}\@descuentostrue}%  Para los descuentos individuales.
+\DeclareOption{subtotal}{%  Para la columna extra del subtotal antes del descuento.
+ \if at descuentos
+  \booltrue{Subtotal}
+ \else
+  \ClassWarning{factura}{La opción 'subtotal' no aplica sin descuentos individuales. Sin efecto opción 'subtotal'}{}
+ \fi}
 \DeclareOption{sincondiciones}{\@concondicionesfalse}%  No agrega el texto con las condiciones del documento.
 \DeclareOption{denom}{\@denomtrue}%  Agrega el texto con la denominación del documento, para las formas libres que no tienen el número de factura.
 \DeclareOption{sinnumero}{\@sinnumerotrue\@denomtrue}%  Escribir el texto de la denominación del documento pero sin escribir el número.
 \DeclareOption{G}{\@Gtrue}%  Con esta opción sale la letra 'G' en los items con IVA general, y sale el porcentaje en la base imponible general.
 \DeclareOption{filas}{\@filastrue}%  Estilo de totalización en filas.
+\DeclareOption{sintotales}{\@sintotalestrue%  No escribe los totales al final, por ejemplo para cotizaciones de productos similares.
+ \if at filas
+  \ClassWarning{factura}{La opción 'sintotales' no aplica para el modo de totalización en filas. Sin efecto opción 'filas'.}{}
+  \@filasfalse
+ \fi
+ \if at cotizacion
+ \else
+  \ClassWarning{factura}{La opción 'sintotales' no debe usarse en facturas sino en cotizaciones. No es válida una factura sin totales.}{}
+ \fi}
 \DeclareOption{centrado}{%  Total y exento 'centrado'; sólo para estilo 'filas'
  \if at filas
   \@centradotrue
@@ -137,6 +156,8 @@
   \@agrupadotrue
  \fi}
 \DeclareOption{impdesc}{\@impdesctrue}%  Para el tipo de impuesto en la descripción y no en el precio unitario y total.
+\DeclareOption{centradesc}{\@centradesctrue}%  Para centrar la descripción de cada ítem.
+\DeclareOption{sinmarcas}{\@sinmarcastrue}%  Para evitar que aparezcan los caracteres especiales cuando la descripción es larga.
 \DeclareOption{numitem}{\booltrue{NumItem}}%  Para poner una columna extra al principio con el número del ítem.
 \DeclareOption{dcu}{%  Descripción, luego cantidad y luego precio unitario.
  \@dcutrue\@cdufalse\@ducfalse
@@ -195,7 +216,7 @@
 \DeclareOption{csv}{%  Para la salida en modo csv también.
  \if at factura
   \@csvtrue
-  \AtEndDocument{\@EscribeTotalesEnCSV}
+  \if at sintotales\else\AtEndDocument{\@EscribeTotalesEnCSV}\fi
  \else
   \ClassWarning{factura}{La opción 'csv' require generar la factura. Sin efecto opción 'csv'.}{}
  \fi}
@@ -271,7 +292,10 @@
    \ClassWarning{factura}{** Fecha del documento\space \@Fecha\space distinta de la fecha de hoy. **}{}%
   \fi
  \fi
- \if at factura\ClassInfo{factura}{\@@Total: \space\space\space \Moneda \Total}{}\fi}
+ \if at sintotales
+ \else
+  \if at factura\ClassInfo{factura}{\@@Total: \space\space\space \Moneda \Total}{}\fi
+ \fi}
 
 %% La geometría en formato de factura y de reporte.
 %% El margen superior está definido desde el encabezado con los datos del cliente.
@@ -420,6 +444,9 @@
 %% Separación horizontal entre las cajas del encabezado y separación interna entre la línea y el texto.
 \def\SepEncabez#1#2{\setlength{\@SeparaEncabez}{#1}\setlength{\@SeparaInternaEncabez}{#2}}
 
+%% Separación extra entre los elementos en la factura.
+\def\SepItemsExtra#1{\setlength{\@SeparaItemsExtra}{#1}}
+
 %% Separación interna entre la línea y el texto de la descripción.
 \def\SepDescrip#1{\setlength{\@SeparaInternaDescrip}{#1}}
 
@@ -604,6 +631,7 @@
 \newlength{\@TamCantidad}
 \newlength{\@TamDescrip}
 \newlength{\@TamPrecioU}
+\newlength{\@TamPrecioS}
 \newlength{\@TamDescuento}
 \newlength{\@TamPrecioT}
 \newlength{\@GrosorLineaFirmas}
@@ -632,6 +660,8 @@
 \newlength{\@EspacioVacioInicial}
 \newlength{\@EspacioVacioFinal}
 \newlength{\@SeparaEncabez}
+\newlength{\@SeparaItemsExtra}
+\newlength{\@SeparaItemsExtraFinal}
 \newlength{\@SeparaInternaEncabez}
 \newlength{\@SeparaInternaDescrip}
 \newlength{\@SeparaElementos}
@@ -694,6 +724,12 @@
  \RequirePackage{zref-savepos}%  Para la firma, que debe ser cargado aquí porque \FirmaReporte no se ejecuta desde el preámbulo.
 \fi
 
+\if at sinmarcas
+ \setlength{\@SeparaFinLineaDesc}{0pt}
+ \def\@CaracterCR{\mbox{}}
+ \def\@CaracterCeldasVacias{\mbox{}}
+\fi
+
 %% Comando para escribir el encabezado en la factura.
 \newcommand\@EncabezadoFactura{%
  \ifdefvoid{\@Resumen}{\@EscribeDatos}{\@EscribeDatosResumen}%
@@ -726,15 +762,18 @@
 %% http://tex.stackexchange.com/questions/248944/how-to-put-before-lines
 \newcommand{\@DescripcionAuxCmd}[2]{%
  \immediate\write\@auxout{\gdef\noexpand\@TamDescrip{\the\linewidth}}% Para poder establecer la línea diagonal hay que saber el tamaño del campo de la descripción.
- \setbox0\hbox{\parbox[t]{\linewidth}{#1%
+ \setbox0\hbox{\parbox[t]{\linewidth}{\if at centradesc\centering\arraybackslash\fi#1%
   \if at impdesc\hfill\ \@EscribeTipoDeImpuesto{#2}\fi%
   \par\global\count1=\prevgraf}}%
  \ifnum\count1 = 1
-  #1%
-  \if at impdesc\hfill\ \@EscribeTipoDeImpuesto{#2}\fi
+  \if at centradesc\centering\arraybackslash\fi#1%
+  \if at impdesc\vskip-\baselineskip\hfill\ \@EscribeTipoDeImpuesto{#2}\fi
  \else
   \parbox[t]{\linewidth-\wd\@CajaCaracterCR-\@SeparaFinLineaDesc}{%
-   \David at XStart#1\David at XEnd
+   \David at XStart
+   \if at centradesc\centering\arraybackslash\fi
+   #1%
+   \David at XEnd
    \par
    \count0=\prevgraf
    \count2=\prevgraf
@@ -771,6 +810,11 @@
  \ifdim\wd\@CajaPrueba > \@TamPrecioU \global\@TamPrecioU=\wd\@CajaPrueba\fi
  \parbox[t]{\@TamPrecioU}{#1}}
 
+\newcommand{\@PrecioSAuxCmd}[1]{%
+ \savebox{\@CajaPrueba}{#1}%
+ \ifdim\wd\@CajaPrueba > \@TamPrecioS \global\@TamPrecioS=\wd\@CajaPrueba\fi
+ \parbox[t]{\@TamPrecioS}{#1}}
+
 \newcommand{\@DescuentoAuxCmd}[1]{%
  \savebox{\@CajaPrueba}{#1}%
  \ifdim\wd\@CajaPrueba > \@TamDescuento \global\@TamDescuento=\wd\@CajaPrueba\fi
@@ -1020,13 +1064,17 @@
  \ifbool{DUC}{c}{r}
  % Quinta línea.
  \ifbool{SinLineasVertInt}{}{|}
+ % Columna 'r' para subtotal antes del descuento, o columna fantasma si no se especifica 'subtotal').
+ \ifbool{Subtotal}{r}{l@{\extracolsep{0pt}}}
+ % Sexta línea, que sale solamente cuando hay columna de subtotales.
+ \ifbool{Subtotal}{\ifbool{SinLineasVertInt}{}{|}}{}
  % Columna 'c' para 'descuentos' y columna 'r' sin espacio si no hay descuentos individuales.
  \ifbool{Descuentos}{c}{r@{\extracolsep{0pt}}}
- % Sexta línea, que sale solamente cuando hay descuentos.
+ % Séptima línea, que sale solamente cuando hay descuentos.
  \ifbool{Descuentos}{\ifbool{SinLineasVertInt}{}{|}}{}
  % Columna 'r' siempre.
  r
- % Séptima y última línea.
+ % Octava y última línea.
  \ifbool{SinLineasVertExt}{}{|}}
 
 %% Comando auxiliar para abrir la tabla del cuadro de la factura y expandir completamente las columnas.
@@ -1034,7 +1082,7 @@
 
 %% Comando auxiliar para abrir el '\multicolumn' para los totales en el modo de columnas y expandir completamente las columnas cuando hay o no barras verticales.
 \edef\@ColumnasMultiColumnTotalesAuxCmd{%
- \noexpand\multicolumn{6}{\ifbool{SinLineasVertExt}{}{|} r}\begingroup
+ \noexpand\multicolumn{7}{\ifbool{SinLineasVertExt}{}{|} r}\begingroup
    \noexpand\ifdim \noexpand\ht\noexpand\@CajaEspacioVacio=0pt
    \noexpand\else
     \noexpand\if at linea\noexpand\zsaveposx{LineaNodoBCoordX}\noexpand\zsaveposy{LineaNodoBCoordY}\noexpand\fi\noexpand\fi% Fijamos la posición (x,y) final para la línea ya que estaremos justo en el punto donde escribimos el total, y hasta allí llega la línea en el modo de columnas.
@@ -1046,8 +1094,10 @@
  % Calculamos.
  \FPupn\PrecioU{#4 \@DigitosMoneda{} round}%
  \ifx\\#5\\\FPset\Dcto{0}\else\FPupn\Dcto{#5 \@DigitosPorc{} round clip}\fi% Fijamos en 0 el descuento si no se especifica.
- \FPupn\PrecioT{100 \Dcto{} 100 - / #2 * \PrecioU{} * \@DigitosMoneda{} round}%
+ \FPupn\PrecioS{#2 \PrecioU{} * \@DigitosMoneda{} round}%
+ \FPupn\PrecioT{100 \Dcto{} 100 - / \PrecioS{} * \@DigitosMoneda{} round}%
  \global\let\PrecioU\PrecioU
+ \global\let\PrecioS\PrecioS
  \global\let\Dcto\Dcto
  \global\let\PrecioT\PrecioT
  % Suma el elemento actual al subtotal acumulado.
@@ -1057,6 +1107,7 @@
  \expandafter\gdef\csname @Item@\romannumeral\value{@NumItem}@Cantidad\endcsname{\numprint{#2}}%
  \expandafter\gdef\csname @Item@\romannumeral\value{@NumItem}@Descripcion\endcsname{#3}%
  \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{@NumItem}@PrecioU\endcsname{\noexpand\numprint{\PrecioU}}%
+ \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{@NumItem}@PrecioS\endcsname{\noexpand\numprint{\PrecioS}}%
  \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{@NumItem}@Descuento\endcsname{\noexpand\numprint{\Dcto}}%
  \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{@NumItem}@PrecioT\endcsname{\noexpand\numprint{\PrecioT}}}
 
@@ -1074,6 +1125,7 @@
 \gdef\cantref#1{\@pruebaref{#1}\if at pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Cantidad\endcsname \fi}
 \gdef\descref#1{\@pruebaref{#1}\if at pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Descripcion\endcsname \fi}
 \gdef\puref#1{\@pruebaref{#1}\if at pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioU\endcsname \fi}
+\gdef\subtref#1{\@pruebaref{#1}\if at pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioS\endcsname \fi}
 \gdef\dctoref#1{\@pruebaref{#1}\if at pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Descuento\endcsname \fi}
 \gdef\ptref#1{\@pruebaref{#1}\if at pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioT\endcsname \fi}
 
@@ -1149,7 +1201,8 @@
   % Si no es el primer ítem, entonces hace falta \\ para terminar el ítem anterior.
   \ifnum\value{@NumItem}=1%
   \else
-   \\
+   \setlength{\@SeparaItemsExtraFinal}{\numexpr\the\count1\normalbaselineskip-\normalbaselineskip+\@SeparaItemsExtra}%
+   \\[\@SeparaItemsExtraFinal]
    \if at conlineasha\hline\fi% Líneas para separar cada ítem, si hiciera falta.
   \fi
   % Primer -opcional- campo: El número del ítem.
@@ -1186,8 +1239,15 @@
       \if at impdesc\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \numprint{\PrecioU}
      \fi}}% dcu y cdu.
    \fi}%
+  & % Quinto -opcional- campo: Subtotal (para luego descuentos).
+  \ifbool{Subtotal}{%
+   \David at XRight{\@PrecioSAuxCmd{%
+    \ifx##1X \hfill \@CaracterItemXVacio \hfill\mbox{}%
+    \else
+     \if at impdesc\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \numprint{\PrecioS}
+    \fi}}}{}
   &
-  % Quinto -opcional- campo: Descuento.
+  % Sexto -opcional- campo: Descuento.
   \ifbool{Descuentos}{%
    \David at XRight{\@DescuentoAuxCmd{%
     \ifx##1X \hfill \@CaracterItemXVacio \hfill\mbox{}%
@@ -1195,7 +1255,7 @@
      \mbox{}\hfill \@LetraNumeros \numprint{\Dcto}\%\hfill\mbox{}%
     \fi}}}{}% Tenemos que usar un condicional booleano porque si no da problemas con el condicional \FPifeq.
   &
-  % Sexto campo: El total.
+  % Séptimo campo: El total.
   \David at XRight{\@PrecioTAuxCmd{%
    \ifx##1X \hfill \@CaracterItemXVacio \hfill\mbox{}%
    \else
@@ -1258,6 +1318,8 @@
    \else
     \@PrecioUAuxCmd{\mbox{}\hfill \@LetraTitCuadro \@@PrecioU \space (\Moneda)\hfill\mbox{}}%
    \fi}%
+ &% Avanzamos hasta el subtotal, que puede o no existir,
+ \ifbool{Subtotal}{\@PrecioSAuxCmd{\mbox{}\hfill \@LetraTitCuadro \@@PrecioS \space (\Moneda)\hfill\mbox{}}}{}%
  &% Avanzamos hasta el descuento, que puede o no existir.
  \if at descuentos \@DescuentoAuxCmd{\mbox{}\hfill \@LetraTitCuadro \@@Descuento \hfill\mbox{}}\fi
  &% Avanzamos hasta el precio total.
@@ -1274,7 +1336,7 @@
   \ifdim \ht\@CajaEspacioVacio=0pt
    \ifbool{SinLineasHoriExt}{}{\if at conlineasha\else\hline\fi}% Verificamos si hay que poner la línea horizontal. Si está 'conlineasha' ya salió debido a esta opción.
   \else
-   \ifbool{PrimeroDescrip}{&\usebox{\@CajaEspacioVacio}&&&&\\}{&&\usebox{\@CajaEspacioVacio}&&&\\}%
+   \ifbool{PrimeroDescrip}{&\usebox{\@CajaEspacioVacio}&&&&&\\}{&&\usebox{\@CajaEspacioVacio}&&&&\\}%
    \ifbool{SinLineasHoriExt}{}{\hline}% Siempre que hay relleno se pone la línea acá.
   \fi
  \else
@@ -1283,27 +1345,34 @@
   \ifdim \ht\@CajaEspacioVacio=0pt
   \else
    % Rellenamos la tabla con espacio espúreo, y le agregamos las lineas externas, si aplica.
-   \ifbool{SinLineasVertExt}{\multicolumn{6}{c}{\usebox{\@CajaEspacioVacio}}}{\multicolumn{6}{|c|}{\usebox{\@CajaEspacioVacio}}}\\
+   \ifbool{SinLineasVertExt}{\multicolumn{7}{c}{\usebox{\@CajaEspacioVacio}}}{\multicolumn{7}{|c|}{\usebox{\@CajaEspacioVacio}}}\\
   \fi
-  % Modo de columnas: Abrimos la tabla para escribir los totales, y le agregamos las líneas verticales externas, si aplica.
-  \@ColumnasMultiColumnTotalesAuxCmd
-  \@CalculaTotalesI
-  \if at agrupado
-   \@EscribeTotalColAgrupado
+  % Si pedimos sin totalizaciones, entonces cerramos la tabla ya, si no, calculamos los totales y los escribimos
+  \if at sintotales
   \else
-   \if at Exento \@EscribeTotalCol{E}\fi
-   \if at BIR\@EscribeTotalCol{R}\if at ivaexpresado\@EscribeTotalColAlicuota{R}\fi\fi
-   \@EscribeTotalCol{G}\if at ivaexpresado\@EscribeTotalColAlicuota{G}\fi
-   \if at BIA\@EscribeTotalCol{A}\if at ivaexpresado\@EscribeTotalColAlicuota{A}\fi\fi
+   % Modo de columnas: Abrimos la tabla para escribir los totales, y le agregamos las líneas verticales externas, si aplica.
+   \@ColumnasMultiColumnTotalesAuxCmd
+   \@CalculaTotalesI
+   \if at agrupado
+    \@EscribeTotalColAgrupado
+   \else
+    \if at Exento \@EscribeTotalCol{E}\fi
+    \if at BIR\@EscribeTotalCol{R}\if at ivaexpresado\@EscribeTotalColAlicuota{R}\fi\fi
+    \@EscribeTotalCol{G}\if at ivaexpresado\@EscribeTotalColAlicuota{G}\fi
+    \if at BIA\@EscribeTotalCol{A}\if at ivaexpresado\@EscribeTotalColAlicuota{A}\fi\fi
+   \fi
+   \if at ivaexpresado\cline{2-2}\fi
+   \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\numprint{\Total}\\
+   \end{tabular}\endgroup
+   \\
+   \ifbool{SinLineasHoriExt}{}{\hline}%
   \fi
-  \if at ivaexpresado\cline{2-2}\fi
-  \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\numprint{\Total}\\
-  \end{tabular}\endgroup
-  \\
-  \ifbool{SinLineasHoriExt}{}{\hline}%
  \fi
  \end{tabularx}%
  %
+ % Generamos la macro \Total vacía para que no dé error en algún posible uso dentro del documento.
+ \if at sintotales\gdef\Total{}\fi
+ % Si pedimos no totalizar (sintotales), la opción filas queda desactivada.
  \if at filas
   \@CalculaTotalesI
   \@LetraNumTotales
@@ -1377,13 +1446,13 @@
  \vspace*{\@SeparaElementos}\par}
 
  \ifbool{SinCantidad}
- % Definamos todos los comandos \Item***.
+ % Definamos todos los comandos \Item***. El descuento es opcional; por eso usamos G{0} en \NewDocumentCommand.
  {%
   \if at descuentos
-   \newcommand{\Item}[3]{\@ITEM{G}{1}{#1}{#2}{#3}}% Ítem normal.
-   \newcommand{\ItemR}[3]{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
-   \newcommand{\ItemA}[3]{\global\@BIAtrue\global\@Gtrue\@ITEM{A}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
-   \newcommand{\ItemE}[3]{\global\@Exentotrue\global\@Gtrue\@ITEM{E}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
+   \NewDocumentCommand{\Item}{m m G{0}}{\@ITEM{G}{1}{#1}{#2}{#3}}% Ítem normal.
+   \NewDocumentCommand{\ItemR}{m m G{0}}{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
+   \NewDocumentCommand{\ItemA}{m m G{0}}{\global\@BIAtrue\global\@Gtrue\@ITEM{A}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
+   \NewDocumentCommand{\ItemE}{m m G{0}}{\global\@Exentotrue\global\@Gtrue\@ITEM{E}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
   \else
    \newcommand{\Item}[2]{\@ITEM{G}{1}{#1}{#2}{0}}% Ítem normal.
    \newcommand{\ItemR}[2]{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{1}{#1}{#2}{0}}% Ítem con IVA reducido.
@@ -1401,10 +1470,10 @@
   \fi}
  {%
   \if at descuentos
-   \newcommand{\Item}[4]{\@ITEM{G}{#1}{#2}{#3}{#4}}% Ítem normal.
-   \newcommand{\ItemR}[4]{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{#1}{#2}{#3}{#4}}% Ítem con IVA reducido.
-   \newcommand{\ItemA}[4]{\global\@BIAtrue\global\@Gtrue\@ITEM{A}{#1}{#2}{#3}{#4}}% Ítem con IVA adicional.
-   \newcommand{\ItemE}[4]{\global\@Exentotrue\global\@Gtrue\@ITEM{E}{#1}{#2}{#3}{#4}}% Ítem exento de IVA.
+   \NewDocumentCommand{\Item}{m m m G{0}}{\@ITEM{G}{#1}{#2}{#3}{#4}}% Ítem normal.
+   \NewDocumentCommand{\ItemR}{m m m G{0}}{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{#1}{#2}{#3}{#4}}% Ítem con IVA reducido.
+   \NewDocumentCommand{\ItemA}{m m m G{0}}{\global\@BIAtrue\global\@Gtrue\@ITEM{A}{#1}{#2}{#3}{#4}}% Ítem con IVA adicional.
+   \NewDocumentCommand{\ItemE}{m m m G{0}}{\global\@Exentotrue\global\@Gtrue\@ITEM{E}{#1}{#2}{#3}{#4}}% Ítem exento de IVA.
   \else
    \newcommand{\Item}[3]{\@ITEM{G}{#1}{#2}{#3}{0}}% Ítem normal.
    \newcommand{\ItemR}[3]{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{#1}{#2}{#3}{0}}% Ítem con IVA reducido.

Modified: trunk/Master/texmf-dist/tex/latex/factura/factura.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/factura/factura.def	2017-03-11 23:09:38 UTC (rev 43469)
+++ trunk/Master/texmf-dist/tex/latex/factura/factura.def	2017-03-11 23:09:59 UTC (rev 43470)
@@ -6,7 +6,7 @@
 %%
 %% factura.dtx  (with options: `def')
 %% 
-%% Copyright 2016 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia at gmail.com>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -35,7 +35,7 @@
 %% and factura-beispiel-rechnung.tex.
 %% 
 \ProvidesFile{factura.def}
-[2016/06/25 v2.82
+[2017/03/11 v3.00
 Archivo valores iniciales y condiciones de borde para factura.cls
 ]
 
@@ -74,6 +74,7 @@
 \def\@@Cantidad{Cantidad}
 \def\@@Descripcion{Descripci\'on}
 \def\@@PrecioU{Precio U.}
+\def\@@PrecioS{Subtotal}
 \def\@@PrecioT{Precio T.}
 \def\@@Precio{Precio}
 \def\@@AlicuotaG{IVA G}
@@ -151,6 +152,9 @@
 %% Separación horizontal entre las cajas del encabezado y separación interna entre la línea y el texto.
 \SepEncabez{0.2cm}{6pt}
 
+%% Separación extra entre los elementos en la factura.
+\SepItemsExtra{0pt}
+
 %% Separación interna entre la línea y el texto de la descripción.
 \SepDescrip{6pt}
 



More information about the tex-live-commits mailing list