texlive[47816] Master/texmf-dist: factura (23may18)

commits+karl at tug.org commits+karl at tug.org
Thu May 24 00:07:20 CEST 2018


Revision: 47816
          http://tug.org/svn/texlive?view=revision&revision=47816
Author:   karl
Date:     2018-05-24 00:07:19 +0200 (Thu, 24 May 2018)
Log Message:
-----------
factura (23may18)

Modified Paths:
--------------
    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-factura01.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura02.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura03.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura04.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura05.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura06.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura07.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura08.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura09.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura10.tex
    trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.pdf
    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/tex/latex/factura/factura.cls
    trunk/Master/texmf-dist/tex/latex/factura/factura.def

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -39,7 +39,7 @@
 %%<desc>
 %%  Adaptado a otra legislación
 %%  (prefactura) Escribimos una prefactura
-%%  (nospanish) Sin cargar babel en castellano, ‘lmodern’ ni la codificación T1 para la tipografías
+%%  (nospanish) Sin cargar babel en castellano, ni la codificación T1 para la tipografías
 %%  (\Condiciones) Con condiciones del documento
 %%</desc>
 %%
@@ -98,7 +98,7 @@
 \Telefono{+58 (987) 654.32.10}
 \Email{jacinto at ayala.sv}
 
-\Fecha{06-11-2018}
+\Fecha{17-11-2018}
 
 \FondoFactura{factura-ejemplo-fondo}
 

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -66,7 +66,7 @@
 \Telefono{+58 (987) 654.32.10}
 \Email{jacinto at ayala.sv}
 
-\Fecha{06-11-2018}
+\Fecha{17-11-2018}
 
 \FondoFactura{factura-ejemplo-fondo}
 \FirmaFactura{\includegraphics[width=4.5cm]{factura-ejemplo-firma}}[0pt][17pt]

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura01.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura01.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura01.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -56,7 +56,7 @@
 \Telefono{+58 (987) 654.32.10}
 \Email{jacinto at ayala.sv}
 
-\Fecha{06-11-2018}
+\Fecha{17-11-2018}
 
 \Condiciones{Las condiciones del documento...}
 \Resumen{El resumen opcional}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura02.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura02.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura02.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -42,6 +42,7 @@
 %%  (descuentos) Con la columna para descuentos individuales
 %%  (dcu) Primero la descripción, luego la cantidad, luego el precio unitario
 %%  (sinlineasve) Sin líneas verticales externas
+%%  (sinlineahtot) Sin línea horizontal interna después de los ítems y antes de los totales
 %%  (centradesc) Centra la descripción en los elementos en la factura
 %%  (unafirma) Sólo la firma del emisor
 %%  Usando \Nombre y \CI en lugar de \RazonSocial y \RIF
@@ -49,8 +50,8 @@
 %%  (\SepVertical) Alterando la separación mínima vertical entre los elementos
 %%  (\SepDatosResumen) Alterando la separación horizontal entre los datos del cliente y el resumen
 %%  (\SepEncabezado) Alterando el margen interno desde el contorno hasta el texto en el encabezado
+%%  (\SepDescripcion) Alterando la distancia desde el contorno hasta el texto en la descripción
 %%  (\SepItemsExtra) Agregando una separación extra entre los ítems en la factura
-%%  (\SepDescripcion) Alterando la distancia desde el contorno hasta el texto en la descripción
 %%  (\LineaDescripcion) Alterando la línea de la descripción, la curvatura en la esquina y la sombra
 %%  (\Condiciones) Con condiciones del documento
 %%  (\Resumen) Con resumen
@@ -64,6 +65,7 @@
 descuentos,
 dcu,
 sinlineasve,
+sinlineahtot,
 centradesc,
 unafirma,
 ]{factura}
@@ -77,7 +79,7 @@
 \Telefono{+58 (987) 654.32.10}
 \Email{jacinto at ayala.sv}
 
-\Fecha{06-11-2018}
+\Fecha{17-11-2018}
 
 \SepVertical{0.75cm}
 \SepDatosResumen{1cm}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura03.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura03.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura03.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -42,7 +42,6 @@
 %%  (sinlineasvi) Sin líneas verticales internas
 %%  (conlineasha) Separado cada ítem con una línea horizontal
 %%  (expandecuadro) Expande el cuadro de la factura con espacio en blanco
-%%  (linea) Con línea protectora del espacio en blanco
 %%  (impdesc) Con el tipo de impuesto como parte de la descripción y no de los precios
 %%  (sinfirmas) Sin firmas
 %%  (\FormatoFecha) Cambiando el separador de la fecha para que salga escrita dd/mm/yyyy
@@ -61,7 +60,6 @@
 sinlineasvi,
 conlineasha,
 expandecuadro,
-linea,
 impdesc,
 sinfirmas,
 ]{factura}
@@ -77,7 +75,7 @@
 \Email{jacinto at ayala.sv}
 
 \FormatoFecha{ddmmyyyy}{/}
-\Fecha{06-11-2018}
+\Fecha{17-11-2018}
 
 \DescuentoE{15}
 \DescuentoG{20}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura04.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura04.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura04.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -41,8 +41,9 @@
 %%  (filas) Totalización en modo de filas
 %%  (duc) Primero la descripción, luego el precio unitario, luego la cantidad
 %%  (sinlineasvi) Sin líneas verticales internas
-%%  (sinlineashi) Sin líneas horizontales internas
+%%  (sinlineahtit) Sin línea horizontal interna después del título de las columnas
 %%  (expandecuadro) Expande el cuadro de la factura con espacio en blanco
+%%  (linea) Con línea para inutilizar el espacio en blanco
 %%  Usando \Nombre y \CI en lugar de \RazonSocial y \RIF
 %%  Sin especificar la persona de contacto
 %%  Sin especificar el e-mail del cliente
@@ -60,8 +61,9 @@
 filas,
 duc,
 sinlineasvi,
-sinlineashi,
+sinlineahtit,
 expandecuadro,
+linea,
 ]{factura}
 
 \input{factura-ejemplo-aux.tex}% Se incluye para efectos del ejemplo, así tendremos disponible la macro \Ejemplo.
@@ -72,7 +74,7 @@
 \Direccion{Av. Ayala, Galpón San Vicente, Sector Arauca, Apure, Venezuela}
 \Telefono{+58 (987) 654.32.10}
 
-\Fecha*{2018}{11}{06}
+\Fecha*{2018}{11}{17}
 
 \SepItemsExtra{5pt}
 \LetraDescripcion{\fontsize{20}{30}}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura05.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura05.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura05.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -80,7 +80,7 @@
 \Conforme{\Contacto}
 
 \FormatoFecha[yyyymmdd]{ddmmyyyy}{.}
-\Fecha{20181106}
+\Fecha{20181117}
 
 \SepDatosResumen{1cm}
 \Condiciones{Las condiciones del documento...}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura06.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura06.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura06.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -41,7 +41,7 @@
 %%  (numitem) Con la columna para enumerar los ítems
 %%  (denom) Escribe la denominación (“FACTURA”) y el número
 %%  (sinlineasve) Sin líneas verticales externas
-%%  (sinlineashe) Sin líneas horizontales externas
+%%  (sinlineashi) Sin líneas horizontales internas
 %%  (todosiva) Forzando a totalizar todos los IVA así no existan productos gravados con ellos
 %%  Sin especificar el teléfono del cliente
 %%  Sin especificar el e-mail del cliente
@@ -60,7 +60,7 @@
 numitem,
 denom,
 sinlineasve,
-sinlineashe,
+sinlineashi,
 todosiva,
 ]{factura}
 
@@ -75,7 +75,7 @@
 \Conforme{Ramela San Vicente}
 
 \FormatoFecha{default}{/}
-\Fecha{06-11-2018}
+\Fecha{17-11-2018}
 
 \SepEncabezado{16pt}
 \SepDescripcion{16pt}
@@ -85,7 +85,7 @@
 \begin{document}
 
 \begin{factura}
- \Item{2}{ítem con IVA general}{1000}\label{primeritem}
+ \Item{2}{ítem con IVA general}{1000}[Un ítem que ofrecemos a precio de costo y que está gravado con IVA general]\label{primeritem}
  \Item{10}{otro ítem con IVA general (descripción larga para mostrar el cambio de línea)}{1000}
 \end{factura}
 
@@ -93,9 +93,9 @@
 
  Se facturaron en total \arabic{NumItem} artículos.
 
- 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 subtotal por este elemento de \Moneda\subtref{primeritem}; el descuento en ese artículo es del \dctoref{primeritem}\%, dando un total de \Moneda\ptref{primeritem}, y esta gravado con IVA de \ivaref{primeritem}\%.
+ En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} “\descref{primeritem}”, cada uno por un valor de \Moneda~\puref{primeritem}, dando un subtotal por este elemento de \Moneda~\subtref{primeritem}; el descuento en ese artículo es del \dctoref{primeritem}\%, dando un total de \Moneda~\ptref{primeritem}, y esta gravado con IVA de \ivaref{primeritem}\%. Ampliando la descripción podemos decir que este ítem es: “\ldescref{primeritem}”.
 
- La base imponible total de esta factura es de \Moneda\numprint\BIG; el IVA es de \Moneda\numprint\AlicuotaG, el descuento presidencial en el IVA es de \Moneda\numprint\AlicuotaGDesc, y el total final es de \Moneda\numprint\Total.
+ La base imponible total de esta factura es de \Moneda~\numprint\BIG; el IVA es de \Moneda~\numprint\AlicuotaG, el descuento presidencial en el IVA es de \Moneda~\numprint\AlicuotaGDesc, y el total final es de \Moneda~\numprint\Total.
 
  % Estas son todas las macros para las totalizaciones: \BIG, \BIR, \BIA, \BIE, \AlicuotaG, \AlicuotaGDesc, \AlicuotaR, \AlicuotaA, \SubtG, \SubtR, \SubtA, \SubtE, \DescG, \DescR, \DescA, \DescE.
 }

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura07.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura07.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura07.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -43,6 +43,7 @@
 %%  (filas) Totalización en modo de filas
 %%  (centrado) Centrados los totales en el modo de filas
 %%  (denom) Escribe la denominación (“FACTURA”) y el número
+%%  (sinlineashe) Sin líneas horizontales externas
 %%  (sinmarcas) 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
 %%  (todosiva) Forzando a totalizar todos los IVA así no existan productos gravados con ellos
 %%  Redefiniendo el texto para la cantidad (redefiniendo macro \@@Cantidad)
@@ -65,6 +66,7 @@
 filas,
 centrado,
 denom,
+sinlineashe,
 sinmarcas,
 todosiva,
 ]{factura}
@@ -80,7 +82,7 @@
 \Telefono{+58 (987) 654.32.10}
 \Email{jacinto at ayala.sv}
 
-\Fecha{06-11-2018}
+\Fecha{17-11-2018}
 
 \makeatletter
  \renewcommand{\@@Cantidad}{Cant.}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura08.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura08.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura08.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -42,15 +42,14 @@
 %%  (sinexpandir) Sin expandir el cuadro de la factura ni la descripción
 %%  (siniva) Sin IVA
 %%  (csv) Escribe un archivo CSV con la información numérica de la factura
-%%  Sin especificar fecha para que tome la del día
 %%  Redefiniendo el formato de la fecha (redefiniendo macros \@@Fecha y \@EstiloFecha)
-%%  (\Descuento*) Con descuentos totales en moneda aplicables por igual a todos los tipos de elementos existentes
+%%  (\Descuento*) Con descuentos totales en moneda (y no en porcentajes) aplicables por igual a todos los tipos de elementos existentes
 %%  (\Letra***) Cambiando varias de las tipografías
 %%  (\Condiciones) Con condiciones del documento
 %%  (\Resumen) Con resumen
 %%  (\NotaInterna) Con nota interna
 %%  (\Descripcion) Con descripción larga
-%%  (\FirmaReporte) Agregando la firma escaneada en el reporte
+%%  (\FirmaReporte) Agregando la firma escaneada en el reporte; ajustando el corrimiento en “y” de la firma respecto a la línea
 %%</desc>
 %%
 \documentclass[
@@ -69,7 +68,7 @@
 \Telefono{+58 (987) 654.32.10}
 \Email{jacinto at ayala.sv}
 
-% \Fecha{06-11-2018}
+\Fecha{17-11-2018}
 
 \makeatletter
  \renewcommand{\@@Fecha}{\slshape FECHA:}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura09.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura09.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura09.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -39,10 +39,11 @@
 %%<desc>
 %%  Escribimos una factura
 %%  Escribimos en el reverso de la factura
+%%  (sinlineahni)  Sin línea horizontal interna después de la nota interna.
 %%  (G) Escribiendo una letra ‘G’ en los ítems gravados con IVA general así sea el único gravamen a facturar
 %%  (electro) Con descuento en IVA al pagar por medios electrónicos
-%%  Sin especificar fecha para que tome la del día
-%%  (\Credito) Especificando la cantidad días para el crédito
+%%  Con nota interna automática por el descuento en pagos electrónicos.
+%%  (\Credito) Especificando la cantidad de días para el crédito
 %%  (\SepNotaPrevia) Alterando el margen interno desde el contorno hasta el texto en la nota previa
 %%  (\SepCondiciones) Especificando la distancia desde el contorno hasta el texto de las condiciones, predeterminadamente sin contorno
 %%  (\LineaCondiciones) Agregando el contorno para las condiciones que predeterminadamente está deshabilitado
@@ -49,12 +50,12 @@
 %%  (\Condiciones) Con condiciones del documento
 %%  Haciendo mención a las fechas y al crédito en las condiciones
 %%  (\NotaPrevia) Con nota previa
-%%  Con nota interna predeterminada por usar opción ‘electro’
 %%  (\NotaExterna) Con nota externa
 %%  (\Descripcion) Con descripción larga
 %%</desc>
 %%
 \documentclass[
+sinlineahni,
 G,
 electro,
 ]{factura}
@@ -69,7 +70,7 @@
 \Telefono{+58 (987) 654.32.10}
 \Email{jacinto at ayala.sv}
 
-% \Fecha{06-11-2018}
+\Fecha{17-11-2018}
 \Credito{21}
 
 \SepNotaPrevia{16pt}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura10.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura10.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura10.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -40,15 +40,15 @@
 %%  Escribimos una factura
 %%  Escribimos en el reverso de la factura
 %%  Establecemos las opciones de la clase a través de comandos
-%%  (sinlineasv) Sin lineas verticales
-%%  (sinlineash) Sin lineas horizontales
-%%  (electro) Con descuento en IVA al pagar por medios electrónicos
+%%  (sinlineasv) Sin líneas verticales
+%%  (sinlineash) Sin líneas horizontales
 %%  (vencimiento) Con fecha de vencimiento explícita así no haya crédito
+%%  Sin especificar fecha para que tome la del día.
+%%  Con nota interna automática con el monto en Bs.S dada la fecha de emisión de la factura antes del cambio en la moneda el dia 04-06-2018.
 %%  (\GeometriaReverso) Cambiando la geometría del reverso de la factura
 %%  (\LineaNotaPrevia) Alterando la línea de la nota previa, para desaparecerla
 %%  (\Condiciones) Con condiciones del documento
 %%  (\NotaPrevia) Con nota previa
-%%  Con nota interna predeterminada por usar opción ‘electro’
 %%  (\Descripcion) Con descripción larga
 %%</desc>
 %%
@@ -59,7 +59,7 @@
 csv, % luego queda sin efecto con \csvfalse en el preámbulo
 ]{factura}
 
-\electrotrue \vencimientotrue \filasfalse \csvfalse
+\vencimientotrue \filasfalse \csvfalse
 
 \input{factura-ejemplo-aux.tex}% Se incluye para efectos del ejemplo, así tendremos disponible la macro \Ejemplo.
 \usepackage[utf8]{inputenc}
@@ -71,7 +71,7 @@
 \Telefono{+58 (987) 654.32.10}
 \Email{jacinto at ayala.sv}
 
-\Fecha{06-11-2018}
+% \Fecha{17-11-2018}
 
 \GeometriaReverso{vmargin={4cm,4cm},hmargin={4cm,4cm},footskip=0pt,headsep=0pt,headheight=0pt}
 \LineaNotaPrevia{0pt}

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

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -39,7 +39,7 @@
 %%<desc>
 %%  (prefactura) Escribimos una prefactura
 %%  (expandecuadro) Expande el cuadro de la factura con espacio en blanco
-%%  (linea) Con línea protectora del espacio en blanco
+%%  (linea) Con línea para inutilizar el espacio en blanco
 %%  (\Descuento) Con descuentos totales en porcentaje aplicables por igual a todos los tipos de elementos existentes
 %%  (\FondoFactura) Con el fondo de la imprenta agregado
 %%  (\Condiciones) Con condiciones del documento
@@ -68,7 +68,7 @@
 \Telefono{+58 (987) 654.32.10}
 \Email{jacinto at ayala.sv}
 
-\Fecha{06-11-2018}
+\Fecha{17-11-2018}
 
 \Descuento{18}
 \FondoFactura{factura-ejemplo-fondo}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -70,7 +70,7 @@
 \Email{jacinto at ayala.sv}
 \Emisor{Lázaro de la Vega}
 
-\Fecha{06-11-2018}
+\Fecha{17-11-2018}
 
 \FondoReporte{factura-ejemplo-membrete}
 \InicioReporte{2.2cm}

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -48,7 +48,8 @@
 %%  Sin resumen
 %%  (\Descripcion) Con descripción larga
 %%  Con etiquetas y referencias
-%%  (\FirmaReporte) Agregando la firma escaneada en el reporte
+%%  (\FirmaReporte) Agregando la firma escaneada en el reporte; ajustando el corrimiento en “y” de la firma respecto a la línea
+%%  Cambiando la ubicación en “x” de la línea de la firma y cambiando la longitud de la línea hacia los lados
 %%</desc>
 %%
 \documentclass[
@@ -67,7 +68,7 @@
 \Email{jacinto at ayala.sv}
 \Proveedor{Lázaro de la Vega y San Román}
 
-\Fecha{06-11-2018}
+\Fecha{17-11-2018}
 
 \GeometriaReporte{vmargin={4.4cm,2.5cm},hmargin={3cm,2cm},footskip=1.2cm,headsep=0.777cm,headheight=1.5cm}
 \FondoReporte*{factura-ejemplo-membrete}
@@ -81,7 +82,7 @@
 \begin{document}
 
 \begin{factura}
- \Item{2}{ítem con IVA general}{1000}\label{primeritem}
+ \Item{2}{ítem con IVA general}{1000}[Un ítem que ofrecemos a precio de costo y que está gravado con IVA general]\label{primeritem}
  \Item{4}{otro ítem con IVA general}{100}
 \end{factura}
 
@@ -92,12 +93,12 @@
 
  Se facturaron en total \arabic{NumItem} artículos.
 
- 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 subtotal por este elemento de \Moneda\subtref{primeritem}; el descuento en ese artículo es del \dctoref{primeritem}\%, dando un total de \Moneda\ptref{primeritem}, y esta gravado con IVA de \ivaref{primeritem}\%.
+ En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} “\descref{primeritem}”, cada uno por un valor de \Moneda~\puref{primeritem}, dando un subtotal por este elemento de \Moneda~\subtref{primeritem}; el descuento en ese artículo es del \dctoref{primeritem}\%, dando un total de \Moneda~\ptref{primeritem}, y esta gravado con IVA de \ivaref{primeritem}\%. Ampliando la descripción podemos decir que este ítem es: “\ldescref{primeritem}”.
 
- La base imponible total de esta factura es de \Moneda\numprint\BIG; el IVA es de \Moneda\numprint\AlicuotaG, el descuento presidencial en el IVA es de \Moneda\numprint\AlicuotaGDesc, y el total final es de \Moneda\numprint\Total.
+ La base imponible total de esta factura es de \Moneda~\numprint\BIG; el IVA es de \Moneda~\numprint\AlicuotaG, el descuento presidencial en el IVA es de \Moneda~\numprint\AlicuotaGDesc, y el total final es de \Moneda~\numprint\Total.
 
  % Estas son todas las macros para las totalizaciones: \BIG, \BIR, \BIA, \BIE, \AlicuotaG, \AlicuotaGDesc, \AlicuotaR, \AlicuotaA, \SubtG, \SubtR, \SubtA, \SubtE, \DescG, \DescR, \DescA, \DescE.
- \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt]
+ \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt][3cm][3cm]
 \end{reporte}
 
 %% Este es un comando auxiliar suministrado por factura-ejemplo-aux.tex para escribir el detalle del ejemplo en la última hoja.

Modified: trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex	2018-05-23 22:07:19 UTC (rev 47816)
@@ -48,7 +48,9 @@
 %%  (\InfoPagina) Personalizamos la información de la cabecera del reporte y mostramos el nombre del proveedor allí
 %%  (\EstiloPagReporte) Cambiamos el estilo de página para que la información del reporte aparezca como pie de página
 %%  Sin descripción larga
-%%  (\FirmaReporte) Agregando la firma escaneada en el reporte
+%%  (\FirmaReporte) Agregando la firma escaneada en el reporte; ajustando el corrimiento en “y” de la firma respecto a la línea
+%%  Cambiando la ubicación en “x” de la línea de la firma y cambiando la longitud de la línea hacia los lados
+%%  Cambiando el nombre de la persona que va a firmar
 %%</desc>
 %%
 \documentclass[
@@ -62,7 +64,7 @@
 \RazonSocial{Ayala San Vicente Usureros}
 \Proveedor{Lázaro de la Vega y San Román}
 
-\Fecha{06-11-2018}
+\Fecha{17-11-2018}
 
 \TituloReporte{El título del reporte}
 \InfoPagina{La cabecera o pie del reporte - \Proveedor}
@@ -82,7 +84,7 @@
 
 \begin{reporte}
  El reporte - página 1\newpage El reporte - página 2 \newpage El reporte - página 3.
- \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt]{el que firma}[5cm][0.5cm]
+ \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt]{el que firma}[4cm][0.8cm]
 \end{reporte}
 
 %% Este es un comando auxiliar suministrado por factura-ejemplo-aux.tex para escribir el detalle del ejemplo en la última hoja.

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	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/source/latex/factura/factura.dtx	2018-05-23 22:07:19 UTC (rev 47816)
@@ -173,9 +173,9 @@
 %<class>\ProvidesClass{factura}
 %<def>\ProvidesFile{factura.def}
 %<*class|def>
-[2018/04/17 v3.47
+[2018/05/22 v3.56
 %<class>Clase para elaborar facturas legales
-%<class>en la República Bolivariana de Venezuela.
+%<class>en la Repu'blica Bolivariana de Venezuela.
 %<def>Archivo de valores iniciales y condiciones de borde para factura.cls
 ]
 
@@ -267,22 +267,25 @@
 
 \catcode`\%=11
 \catcode`\|=14
-\NewDocumentCommand{\Ejemplo}{s s s O{0.5} m O{} G{1} o}{|
- \IfFileExists{factura-#5.pdf}{|
+\NewDocumentCommand{\Ejemplo}{s O{0.5} m s O{} G{1} o}{|
+ \IfFileExists{factura-#3.pdf}{|
   \catcode`\<=12
   \catcode`\>=12
-  \IfBooleanTF{#3}{\def\Ancho{0}\booltrue{DescripEjemplo}}{|
-   \def\Ancho{#4}\booltrue{Ejemplo}|
-   \IfBooleanT{#2}{\booltrue{EjemploDer}}|
-   \IfBooleanTF{#1}{\booltrue{EjemploIzq}}{\booltrue{DescripEjemplo}}}|
+  \IfBooleanTF{#4}
+   {\IfBooleanTF{#1}
+    {\booltrue{DescripEjemplo}}
+    {\booltrue{Ejemplo}\booltrue{EjemploDer}}}
+   {\IfBooleanTF{#1}
+    {\booltrue{Ejemplo}\booltrue{EjemploIzq}}
+    {\booltrue{Ejemplo}\booltrue{EjemploIzq}\booltrue{DescripEjemplo}}}
   \ifbool{Ejemplo}
-   {\ifnum #7=1 {\phantomsection\par\mbox{}\hfill{\color{RoyalBlue}\ttfamily \large factura-#5}\hfill\mbox{}\par}{}\fi}
-   {}|
+   {\ifnum #6=1 \def\Ancho{#2}{\phantomsection\par\mbox{}\hfill{\color{RoyalBlue}\ttfamily \large factura-#3}\hfill\mbox{}\par}{}\fi}
+   {\def\Ancho{0.05}}|
   \ifbool{EjemploDer}{\hfill}{}|
   \ifbool{Ejemplo}
    {\begin{minipage}{\Ancho\linewidth}
-     \fbox{\includegraphics[page=#7,width=\linewidth-2\fboxrule-2\fboxsep]{factura-#5}}
-     \IfBooleanF{#1}{\addcontentsline{toc}{subsection}{factura-#5}}
+     \fbox{\includegraphics[page=#6,width=\linewidth-2\fboxrule-2\fboxsep]{factura-#3}}
+     \ifbool{DescripEjemplo}{\addcontentsline{toc}{subsection}{factura-#3}}{}
     \end{minipage}}
    {}|
   \ifbool{EjemploIzq}{\hfill}{}|
@@ -291,7 +294,7 @@
    | Gracias a cfr y a egreg por el esclarecimiento en cuanto a la necesidad de \makeatletter en \CatchFileBetweenDelims y antes de \regexpatchcmd*.
    | Thanks to cfr and egreg for the clarification on the use of \makeatletter on \CatchFileBetweenDelims and before \regexpatchcmd*.
    | (https://tex.stackexchange.com/questions/380796/how-to-patch-a-macro-with-control-sequences-using-regexpatch)
-   \CatchFileBetweenDelims{\DescEjemplo}{factura-#5.tex}{<desc>}{</desc>}[\catcode37=11\catcode13=14\makeatletter]|
+   \CatchFileBetweenDelims{\DescEjemplo}{factura-#3.tex}{<desc>}{</desc>}[\catcode37=11\catcode13=14\makeatletter]|
    \catcode`\%=11
    \makeatletter
    | Gracias a Werner y a egreg por el uso de \begingroup\ttfamily\string ... \endgroup.
@@ -305,16 +308,16 @@
    \begin{minipage}{\linewidth-\Ancho\linewidth}
     \begin{itemize}
      \setlength{\itemsep}{0pt}
-     #6\DescEjemplo
+     #5\DescEjemplo
     \end{itemize}
    \end{minipage}
-   \IfValueT{#8}{{#8}}}
+   \IfValueT{#7}{{#7}}}
    {}|
   \boolfalse{Ejemplo}\boolfalse{EjemploIzq}\boolfalse{EjemploDer}\boolfalse{DescripEjemplo}|
   \catcode`\%=9
   \catcode`\<=13
   \catcode`\>=13
- }{\message{^^JLaTeX Warning: No existe factura-#5.pdf; hay que compilarlo antes de compilar este documento.^^J}}}
+ }{\message{^^JLaTeX Warning: No existe factura-#4.pdf; hay que compilarlo antes de compilar este documento.^^J}}}
 \catcode`\%=14
 \catcode`\|=12
 
@@ -404,18 +407,22 @@
  
  % v3.40 -> En la misma versión 3.40 se cambió la estructura de la sección de los comandos en esta documentación y se agregó una página de descripción al final de cada ejemplo.
  
- El cambio en la política impositiva reflejado en la versión 3.40 queda sin efecto para fines legales, ya no está vigente dicho descuento; sin embargo, no eliminamos el código que lo produce sino que la clase arroja una advertencia cuando se pide usar la opción de descuentos por pago electrónico.%v3.44
+ % v3.44 -> El cambio en la política impositiva reflejado en la versión 3.40 queda sin efecto para fines legales, ya no está vigente dicho descuento; sin embargo, no eliminamos el código que lo produce sino que la clase arroja una advertencia cuando se pide usar la opción de descuentos por pago electrónico.
  
- Desde la versión 3.44 podemos activar cualquier opción de la clase a través de condicionales en el preámbulo y no solamente como una opción al cargar la clase; también se puede ahora quitar el efecto de cualquier opción previamente dada al cargar la clase, esto con el propósito de hacer más versátil el uso de las opciones y así poder incluirlas también en archivos |.tex| o |.def| personalizados.%v3.44
+ % v3.44 -> Desde la versión 3.44 podemos activar cualquier opción de la clase a través de condicionales en el preámbulo y no solamente como una opción al cargar la clase; también se puede ahora quitar el efecto de cualquier opción previamente dada al cargar la clase, esto con el propósito de hacer más versátil el uso de las opciones y así poder incluirlas también en archivos |.tex| o |.def| personalizados.
  
- Adicionalmente desde la versión 3.44 el archivo |.log| de las compilaciones tiene como comentario todas las opciones que fueron pedidas al cargar la clase.%v3.44
+ % v3.44 -> Adicionalmente desde la versión 3.44 el archivo |.log| de las compilaciones tiene como comentario todas las opciones que fueron pedidas al cargar la clase.
  
  La versión 3.47 corrige problemas con la compilación en \LuaLaTeX{} y escribe la versión de la clase en el campo \texttt{Subject} de la {\slshape metadata} del archivo |.pdf| compilado.%v3.45
  
  La versión 3.47 agrega el comando |\Moneda| para cambiar fácilmente la moneda.%v3.46
  
- {\bfseries La versión 3.47 se saca para dar cumplimiento a la Gaceta Oficial número 41.366 sobre la Reconvesión Monetaria.} La moneda Bolívar pasará a ser Bolívar Soberano eliminando tres ceros. Desde el 1 de mayo del 2018 hay que establecer los montos en Bolívares Soberanos (BsS.) hasta el 4 de junio del año 2018 cuando vuelve a llamarse Bolívar (Bs.) a menos de que el plazo sea extendido y haya que seguir llamando a la moneda Bolívar Soberano (BsS.) temporalmente hasta nuevo aviso según alguna disposición que emita el Banco Central de Venezuela. Si esto ocurriese, es decir, si después del 4 de junio hubiese que continuar llamando BsS a la moneda de curso legal, deberá usarse el comando |\Moneda| para que no se cambie automáticamente la moneda al Bolívar (Bs.) tal como está programado en esta clase.
+ {\bfseries La versión 3.56 se saca para corregir la versión 3.47 en cuanto a dar cumplimiento al Decreto Presidencial 3.332 sobre la Reconvesión Monetaria.} Desde el 4 de junio del año 2018 la moneda pasará a llamarse Bolívar Soberano (Bs.S) y luego en una fecha aún no definida (la asumimos como el 1 de enero del año 2019) la moneda volverá a llamarse Bolívar (Bs.). Eventualmente el Banco Central de Venezuela emitirá un comunicado para establecer desde cuándo la moneda de curso legal vuelve a llamarse simplemente Bolívar. A partír de esa fecha deberá usarse el comando |\Moneda| para cambiar la moneda a su denominación definitiva mientras no se haya emitido la actualización de esta clase. Esa fecha aún no está determinada, así que la suponemos -y hacemos el cambio de moneda automático en esta clase- como el inicio del año 2019. Antes del 4 de junio, se establece una nota interna automática que escribe el total también en Bolívares Soberanos.
  
+ Por otra parte, la versión 3.56 elimina la inclusión del paquete |lmodern| y discrimina la inclusión de |fontenc| solamente para la compilación con pdf\LaTeX, que es lo correcto. Además, en esta versión se agrega un campo extra opcional en los ítems de la factura para poder agregar una descripción más larga a cada ítem que podrá ser referenciada en otras partes del documento (por ejemplo en el reporte) pero que no aparece en el cuadro de la factura.
+ 
+ Finalmente, fueron corregidos errores en cuanto al posicionamiento de la línea diagonal y se agregaron las opciones: \texttt{sinlineahni}, \texttt{sinlineahtit} y \texttt{sinlineahtot} para poder quitar las líneas horizontales internas una a una y no como antes, todas a la vez, con \texttt{sinlineashi}.
+ 
  \section*{Agradecimientos}
  
  Por pruebas y sugerencias que dieron lugar a mejoras agradezco a Ritguey%
@@ -494,7 +501,7 @@
 % \changes{v2.6}{2016/03/07}{Textos “PAGADO” y “Por el emisor” para las facturas y cotizaciones cuando no se define el emisor del documento.}
 % \changes{v2.6}{2016/03/07}{Nueva opción \texttt{dosfirmas} para poner las dos firmas en casos en los que lo predeterminado sea una o ninguna firma (cotizaciones o prefacturas).}
 % \changes{v2.6}{2016/03/07}{Nuevo comando \cs{Conforme} para el nombre de quien recibe la factura.}
-% \changes{v2.6}{2016/03/07}{Cambiado el lugar en el código donde se llama a la macro que dibuja la línea “protectora” y se hace ahora con \cs{AddToShipoutPicture} para que no se genere un espacio en blanco extra.}
+% \changes{v2.6}{2016/03/07}{Cambiado el lugar en el código donde se llama a la macro que dibuja la línea inutilizadora del espacio en blanco y se hace ahora con \cs{AddToShipoutPicture} para que no se genere un espacio en blanco extra.}
 % \changes{v2.6}{2016/03/07}{El ejemplo de la documentación es de una cotización y no de una prefactura; actualizada la documentación y los ejemplos.}
 % \changes{v2.6}{2016/03/07}{En el índice ponemos “entorno” en lugar de “environment”.}
 % \changes{v2.6}{2016/03/07}{El verbo “poner” es digno para la documentación. No sólo las gallinas ponen.}
@@ -521,7 +528,7 @@
 % \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}{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.}
@@ -578,8 +585,15 @@
 % \changes{v3.47}{2018/04/17}{No compilaba con \LuaLaTeX{} por diferencias en el motor. Ya compila.}
 % \changes{v3.47}{2018/04/17}{Agrega la versión de la clase bajo \texttt{Subject} en la metadata de los PDF compilados.}
 % \changes{v3.47}{2018/04/17}{Se agrega la macro \cs{Moneda} para cambiar el signo monetario a usar.}
-% \changes{v3.47}{2018/04/17}{Se da cumplimiento a la Gaceta Oficial número 41.366 de la reconversión monetaria.}
+% \changes{v3.47}{2018/04/17}{Se da cumplimiento al Decreto Presidencial 3.332 de la reconversión monetaria.}
 % \changes{v3.47}{2018/04/17}{Cambiados algunos de los \cs{immediate}\cs{write} por \cs{write}.}
+% \changes{v3.56}{2018/05/09}{Quitamos \texttt{lmodern} de todas partes y mejoramos la inclusión discrecional de \texttt{fontenc}.}
+% \changes{v3.56}{2018/05/21}{Agregada la opción de una descripción larga para cada ítem de la factura únicamente para referenciarla luego en otra parte del documento.}
+% \changes{v3.56}{2018/05/21}{La implementación anterior del Bolívar Soberano tenía defectos; ya están corregidos.}
+% \changes{v3.56}{2018/05/21}{Volvimos a agregar la macro interna \cs{@TamDescripcion} quitada en la versión v3.40. Sin ella la línea no salía bien con la opción \texttt{filas}.}
+% \changes{v3.56}{2018/05/21}{Creamos condicionales internos: \cs{if at ExpandeCuadro} y otros para evaluar la línea inutilizadora del espacio en blanco, así como también unas macros que guardan los valores de \cs{baselineskip} y \cs{tabcolsep} y otros cambios en la línea.}
+% \changes{v3.56}{2018/05/21}{Nuevas opciones \texttt{sinlineahni}, \texttt{sinlineahtit} y \texttt{sinlineahtot} para no poner la línea horizontal antes de la nota interna, después del título de las columnas y antes de los totales.}
+% \changes{v3.56}{2018/05/21}{Agregamos el paquete \texttt{anyfontsize}.}
 %
 %
 % \tableofcontents
@@ -595,7 +609,7 @@
 %
 % \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, 0071 y 0048, válidas éstas para abril del año 2018.
+% 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, 0071 y 0048, válidas éstas para mayo del año 2018.
 %
 % 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{}.
 %
@@ -616,7 +630,9 @@
 %
 % Aparte, el usuario puede escribir un reporte largo asociado a la factura, es decir, esta clase sirve también para escribir reportes.
 %
+% \newpage
 %
+%
 % \section{Instalación}
 %
 % El paquete que está en CTAN consta de un archivo |README| en formato |UTF-8|, esta documentación compilada como |factura.pdf| y el archivo |factura.dtx|, del cual se generan todos los demás archivos.
@@ -745,7 +761,7 @@
 %
 % Para compilar una |factura| puede usar cualquiera de los motores \LaTeX, pdf\LaTeX, \XeLaTeX{} o \LuaLaTeX, naturalmente con las restricciones que impone cada uno.
 %
-% Hay casos en los que hace falta compilar más de una vez el documento. Dos veces necesita ser compilado un documento cuando alguna descripción en el cuadro de la factura ocupa más que una línea; también dos veces cuando se incluye una firma en el reporte, y más de dos veces cuando se pide que se dibuje una línea oblicua protectora del espacio restante en el cuadro de la factura o cuando se usan etiquetas (sección \ref{sec:etiquetas}).
+% Hay casos en los que hace falta compilar más de una vez el documento. Dos veces necesita ser compilado un documento cuando alguna descripción en el cuadro de la factura ocupa más que una línea; también dos veces cuando se incluye una firma en el reporte, y tres o cuatro veces cuando se pide que se dibuje una línea oblicua que inutilice el espacio restante en el cuadro de la factura o cuando se usan etiquetas (sección \ref{sec:etiquetas}).
 %
 % Todo documento |.pdf| compilado con la clase |factura| escribe en la {\slshape metadata} del |.pdf| un texto con la versión y la fecha de la clase con la que se compiló; ese texto va en el campo |Subject| de dicha {\slshape metadata}.
 %
@@ -811,7 +827,7 @@
 %  Agrega el monto exento y todos los tipos de IVA en los totales así no se hayan incluído elementos gravados con los distintos tipos de impuesto.
 %
 % \DescribeOption{electro}
-%  {\bfseries Esta opción se deja pero ya no está admitida en la legislación vigente.} Se agrega esta opción para dar cumplimiento con las Gacetas Oficiales números 41239, 41242 y 41244\footnote{De fecha 19, 21 y 26 de septiembre del año 2017, respectivamente. En la última de estas gacetas está la Providencia Administrativa PA0048 del SENIAT.} donde se establece que las operaciones de compra (salvo excepciones establecidas en la Gaceta) gravadas con IVA general gozarán de un descuento cuando son pagadas mediante medios electrónicos. El descuento es del 3\% cuando la factura es de un monto menor a Bs. 2.000.000 y del 5\% cuando el monto de la factura es de Bs. 2.000.000 o más. Al dar esta opción el descuento queda establecido según la Gaceta correspondiente al Decreto Presidencial número 3085.
+%  {\bfseries Esta opción se deja pero ya no está admitida en la legislación vigente.} Se agrega esta opción para dar cumplimiento con las Gacetas Oficiales números 41239, 41242 y 41244\footnote{De fecha 19, 21 y 26 de septiembre del año 2017, respectivamente. En la última de estas gacetas está la Providencia Administrativa PA0048 del SENIAT.} donde se establece que las operaciones de compra (salvo excepciones establecidas en la Gaceta) gravadas con IVA general gozarán de un descuento cuando son pagadas mediante medios electrónicos. El descuento es del 3\% cuando la factura es de un monto menor a Bs. 2.000.000 y del 5\% cuando el monto de la factura es de Bs. 2.000.000 o más. Al dar esta opción el descuento queda establecido según el Decreto Presidencial número 3085.
 %
 % {\itshape Esta opción no es compatible con el modo de totalización en filas.}
 %
@@ -830,14 +846,21 @@
 % \DescribeOption{sinlineashe}
 % \DescribeOption{sinlineashi}
 % \DescribeOption{sinlineash}
-%  La clase provee varias opciones para no dibujar las líneas del cuadro de la factura. La clase diferencia entre las líneas internas y las líneas externas. Las líneas externas son las que conforman el contorno externo del cuadro de la factura. Las líneas internas en el caso de las horizontales son la línea que va después del título de cada columna (cantidad, descripción, ...), y la línea que separa los ítems de los totales; en el caso de las verticales, las líneas internas son las que separan las columnas.
+%  La clase provee varias opciones para no dibujar las líneas del cuadro de la factura. La clase diferencia entre las líneas internas y las líneas externas. Las líneas externas son las que conforman el contorno externo del cuadro de la factura. Las líneas internas en el caso de las horizontales son la línea que va después del título de las columnas (cantidad, descripción, ...), la línea que separa los ítems de los totales y la línea que separa los totales de la nota interna; en el caso de las verticales, las líneas internas son las que separan las columnas.
 %
 %  Podemos apagar cada conjunto de línea; ya explicado qué es interno y qué es externo, queda aclarar que “ve” significa vertical externa, “vi” vertical interna, “he” horizontal externa y “hi” horizontal interna. Usando |sinlineasv| o |sinlineash| apagamos todas las líneas verticales u horizontales.
 %
+% \DescribeOption{sinlineahtit}
+% \DescribeOption{sinlineahtot}
+% \DescribeOption{sinlineahni}
+%  Adicionalmente podemos apagar las líneas horizontales internas por separado, es decir, la línea que va después del título de las columnas la podemos quitar con \texttt{sinlineahtit}, la línea que separa los elementos a facturar de los totales generales se puede quitar con \texttt{sinlineahtot} y la línea que separa los totales de la -opcional- nota interna la podemos quitar con \texttt{sinlineahni}. 
+% 
 % \DescribeOption{conlineasha}
 %  Agrega una línea horizontal separando cada artículo o ítem de los demás dentro del cuadro de la factura, como las facturas hechas a mano que tienen un espacio determinado para cada artículo.
 %
+%  Si no se especifica nada sobre las líneas, saldrán todas ellas (verticales y horizontales) salvo las que separan  los ítems a facturar entre sí.
 %
+%
 % \subsection{Elementos a mostrar o no mostrar en la factura}
 %
 % \DescribeOption{sinmarcas}
@@ -865,7 +888,7 @@
 %  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{linea}
-%  Agrega una línea diagonal protegiendo los espacios vacíos en el cuadro de la factura. Esta opción requiere de la opción |expandecuadro|, explicada a continuación.
+%  Agrega una línea diagonal que inutiliza el espacio vacío en el cuadro de la factura, para evitar posibles futuras adiciones de texto. Esta opción requiere de la opción |expandecuadro|, explicada a continuación.
 %
 %
 % \subsection{Disposición de algunos elementos en la factura}
@@ -892,7 +915,7 @@
 % \subsection{Otras opciones}
 %
 % \DescribeOption{nospanish}
-%  No carga |babel| en castellano\footnote{Por ejemplo para cargar {\ttfamily polyglossia} en su lugar.}, la codificación |T1| de las letras ni el paquete |lmodern|. Si no se especifica esta opción todo esto se carga, pero si se quiere no cargar algo de esto, entonces debe especificarse esta opción y cargar lo que se quiera a mano.
+%  No carga |babel| en castellano\footnote{Por ejemplo para cargar {\ttfamily polyglossia} en su lugar.}, ni la codificación |T1| de las letras en el caso de compilar con pdf\LaTeX. Si no se especifica esta opción se cargan ambos paquetes.
 %
 % \DescribeOption{twoside}
 %  Establece que el reporte se imprime por los dos lados del papel. (Obviamente se ignora esta opción cuando el motor no va a generar un reporte puesto que las facturas ocupan una hoja solamente).
@@ -904,7 +927,7 @@
 %
 % Cualquiera de estas opciones también se puede activar o desactivar en el preámbulo y así poder incluirlas dentro de archivos que vayan a ser cargados con |\input| o |\include| como se explicará en la subsección \ref{subsec:aux}. Esto significa que podremos desactivar una opción que hayamos dado en |\documentclass| o activar alguna que no hayamos activado allí.
 %
-% Para hacer eso debemos usar el condicional que cada opción maneja y activarlo o desactivarlo de la forma como se hace en \TeX{}. El condicional de cada opción tiene el mismo nombre de la opción. Por ejemplo, para quitar las lineas verticales (|sinlineasv|) usaríamos |\sinlineasvtrue| en el preámbulo, o para desactivar la creación del archivo |.csv|, previamente activada en |\documentclass|, usaríamos |\csvfalse|.
+% Para hacer eso debemos usar el condicional que cada opción maneja y activarlo o desactivarlo de la forma como se hace en \TeX{}. El condicional de cada opción tiene el mismo nombre de la opción. Por ejemplo, para quitar las líneas verticales (|sinlineasv|) usaríamos |\sinlineasvtrue| en el preámbulo, o para desactivar la creación del archivo |.csv|, previamente activada en |\documentclass|, usaríamos |\csvfalse|.
 %
 % }
 %
@@ -985,7 +1008,7 @@
 %
 % \DescribeMacro{\PosFirmas}{\color{RoyalBlue}|\PosFirmas|\marg{pos. x-inicial}\marg{pos. x-final}\marg{pos. y}}
 %
-%  Con |\PosFirmas| controlamos dónde se ubica la caja que dibuja las lineas para firmar en la factura. {\itshape Aquí delimitamos el intervalo en |X| donde van las firmas, por eso hay una coordenada inicial y una final. La inicial indica dónde empieza la primera linea (para que firme quien recibe), y la coordenada final establece dónde termina la segunda linea para firmar (para que firme el emisor de la factura), que va a estar al lado de la primera. Aquí las coordenadas |X| no aceptan valores negativos; la inicial va medida desde el margen izquierdo y la final va medida desde el margen derecho.}
+%  Con |\PosFirmas| controlamos dónde se ubica la caja que dibuja las líneas para firmar en la factura. {\itshape Aquí delimitamos el intervalo en |X| donde van las firmas, por eso hay una coordenada inicial y una final. La inicial indica dónde empieza la primera linea (para que firme quien recibe), y la coordenada final establece dónde termina la segunda linea para firmar (para que firme el emisor de la factura), que va a estar al lado de la primera. Aquí las coordenadas |X| no aceptan valores negativos; la inicial va medida desde el margen izquierdo y la final va medida desde el margen derecho.}
 %
 % }
 %
@@ -1331,30 +1354,32 @@
 % \subsection{Agregando elementos a la factura}
 %
 % \noindent
+% {\color{Red}|\Item|\marg{cantidad}\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\oarg{descripción sólo para \\ \mbox{}\hfill referencias}}
 % \DescribeMacro{\Item}
 % \DescribeMacro{\ItemR}
 % \DescribeMacro{\ItemA}
 % \DescribeMacro{\ItemE}
-% {\color{Red}|\Item|\marg{cantidad}\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}}
 %
 % Con estos comandos agregamos elementos a la factura propiamente dicha. Con |\Item| agregamos un elemento gravado con IVA general (actualmente 12\%); con |\ItemR| agregamos uno con IVA reducido (8\%), con |\ItemA| uno con IVA adicional (27\%), y con |\ItemE| agregamos un elemento exento de impuesto al valor agregado.
 %
-% Como podemos ver, se especifica la cantidad, luego la descripción y al final el precio unitario, todos entre llaves, pudiendo intercalar entre estos dos últimos un parámetro adicional entre corchetes que sirve para escribir otro texto al archivo |.csv| en sustitución de la descripción, ya que a veces la descripción puede tener macros o caracteres no imprimibles; si se declara una descripción y una descripción para el |.csv|, la factura impresa manejará la descripción dada entre llaves y al archivo |.csv| se escribirá la descripción dada entre corchetes.
+% Como podemos ver, se especifica la cantidad, luego la descripción y al final el precio unitario, todos entre llaves, pudiendo intercalar entre estos dos últimos un parámetro adicional entre corchetes que sirve para escribir otro texto al archivo |.csv| en sustitución de la descripción, ya que a veces la descripción puede tener macros o caracteres no imprimibles. Si se declara una descripción y otra descripción para el |.csv|, la factura impresa manejará la descripción dada primero (entre llaves) y en el archivo |.csv| se escribirá la descripción dada después (entre corchetes).
 %
+% El último parámetro opcional (entre corchetes) es otro campo de descripción pero que no se imprime en el cuadro de la factura sino que se guarda bajo una etiqueta para luego poder usarse en cualquier parte del documento con el comando |\ldescref| (véase la sección \ref{sec:etiquetas} de las etiquetas). Dicha descripción puede tener formato de párrafos largos con saltos de línea.
+%
 % También tenemos la posibilidad de agregar un ítem al que no le ponemos precio, por ejemplo por ser parte de un total, y sus argumentos son la cantidad y la descripción nada más.
 %
 % \noindent
-% \DescribeMacro{\ItemX}{\color{RoyalBlue}|\ItemX|\marg{cantidad}\marg{descripción}\oarg{descripción para csv}}
+% \DescribeMacro{\ItemX}{\color{RoyalBlue}|\ItemX|\marg{cantidad}\marg{descripción}\oarg{descripción para csv}\oarg{descripción sólo para referencias}}
 %
 %
 % \subsubsection{Opción `{\ttfamily descuentos}'\label{subsec:descuentos}}
 %
 % \noindent
+% {\color{Red}|\Item|\marg{cantidad}\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\marg{\% descuento}\oarg{descrip- \\ \mbox{}\hfill ción sólo para referencias}}
 % \DescribeMacro{\Item}
 % \DescribeMacro{\ItemR}
 % \DescribeMacro{\ItemA}
 % \DescribeMacro{\ItemE}
-% {\color{Red}|\Item|\marg{cantidad}\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\marg{\% 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:
 %
@@ -1366,16 +1391,16 @@
 % \DescribeMacro{\ItemR}
 % \DescribeMacro{\ItemA}
 % \DescribeMacro{\ItemE}
-% {\color{Red}|\Item|\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}}
+% {\color{Red}|\Item|\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\oarg{descripción sólo para referencias}}
 %
-% \noindent {\color{Red}|\Item|\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\marg{\% descuento}}
+% \noindent {\color{Red}|\Item|\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\marg{\% descuento}\oarg{descripción sólo para \\ \mbox{}\hfill referencias}}
 %
 % Por otra parte, si se usa la opción |sincantidad| al cargar la clase, todos los comandos |\Item| aceptan un argumento menos, que es el de la cantidad; eso significa que sin usar la opción |descuentos|, la sintaxis de |\Item| queda como lo indica la primera línea, y usando |descuentos|, queda como lo indica la segunda línea.
 %
 % \noindent
-% \DescribeMacro{\ItemX}{\color{RoyalBlue}|\ItemX|\marg{descripción}\oarg{descripción para csv}}
+% \DescribeMacro{\ItemX}{\color{RoyalBlue}|\ItemX|\marg{descripción}\oarg{descripción para csv}\oarg{descripción sólo para referencias}}
 % 
-% Puesto que |\ItemX| se usa para argumentos sin precio, al usar |sincantidad| quedará aceptando solo un argumento obligatorio que es la descripción, y el opcional para la descripción para el archivo |.csv|. Cuando se activa la opción |descuentos|, |\ItemX| queda igual puesto que esta macro no lleva precio, entonces tampoco acepta descuentos.
+% Puesto que |\ItemX| se usa para elementos sin precio, al usar |sincantidad| quedará aceptando sólo un argumento obligatorio que es la descripción y dos opcionales para la descripción en el archivo |.csv| y la descripción larga para referenciar luego. Cuando se activa la opción |descuentos|, |\ItemX| queda igual puesto que esta macro no lleva precio, entonces tampoco acepta descuentos.
 %
 % {\itshape Todas las variaciones de estos comandos |\Item| pueden apreciarse en los ejemplos.}
 %
@@ -1584,7 +1609,10 @@
 \begin{verbatim}
 \begin{factura}
  \Item{1}{Artículo gravado con IVA general}{1000}
- \Item{3}{Otro artículo gravado con IVA general}{1500}{10}\label{el-otro}
+ \Item{3}{Otro artículo gravado con IVA general}{1500}{10}[Descripción larga 
+  para referenciar el reporte u otro fin.
+  
+  Con formato de párrafo con saltos de línea si se desea.]\label{el-otro}
 \end{factura}
 \end{verbatim}
 % \iffalse
@@ -1600,12 +1628,16 @@
 % \noindent \DescribeMacro{\subtref}{\color{RoyalBlue}|\subtref|\marg{etiqueta}}\\
 % \noindent \DescribeMacro{\dctoref}{\color{RoyalBlue}|\dctoref|\marg{etiqueta}}\\
 % \noindent \DescribeMacro{\ivaref}{\color{RoyalBlue}|\ivaref|\marg{etiqueta}}\\
-% \noindent \DescribeMacro{\ptref}{\color{RoyalBlue}|\ptref|\marg{etiqueta}}\par
+% \noindent \DescribeMacro{\ptref}{\color{RoyalBlue}|\ptref|\marg{etiqueta}}\\
+% \noindent \DescribeMacro{\ldescref}{\color{RoyalBlue}|\ldescref|\marg{etiqueta}}\par
 %
 % Si se quiere mostrar el número de la línea 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 porcentaje del descuento del ítem citado usamos |\dctoref|, que para el ejemplo sería “|10|”. Para el porcentaje del IVA, usamos |\ivaref|, en nuestro caso escribiría “|12|”. 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|, |\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.
 %
+% También podemos referenciar la -opcional- descripción larga que podemos usar por ejemplo en el reporte; esa descripción que va entre corchetes la podremos citar con |\ldescref|, y en nuestro ejemplo sería:
+% “Descripción larga para referenciar el reporte u otro fin. Con formato de párrafo con saltos de línea si se desea.”\footnote{Aquí suprimimos los saltos de línea.}
+%
 % 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. Para estas referencias se escogieron nombres de las macros que terminan en “\texttt{ref}” por compatibilidad con comandos de \LaTeX{} como |\pageref|.
 %
 %
@@ -1672,7 +1704,7 @@
 %
 % Estas últimas son las que están definidas dentro de |factura.def|, y que eventualmente puede desearse cambiarlas.
 %
-% Adicionalmente tenemos las macros que escriben el contenido de distintas partes de la factura y el reporte como los datos del cliente, el resumen, la nota previa, las condiciones, los encabezados, la información en el archivo |.csv|, y la macro que dibuja la línea “de protección” dentro del cuadro de la factura. Todas estas son macros internas que no deben ser llamadas por el usuario, y no consideramos que pueda sea necesario cambiarlas.
+% Adicionalmente están las macros que se encargan de distintas partes de la factura y del reporte como los datos del cliente, el resumen, la nota previa, las condiciones, los encabezados, la información en el archivo |.csv|, y la macro que dibuja la línea que inutiliza el espacio en blanco. Todas estas son macros internas que no deben ser llamadas por el usuario, y no consideramos que pueda sea necesario cambiarlas.
 %
 % Por último, las macros que alojan el diseño \tikz de los datos del cliente, la nota previa, la descripción larga y las condiciones del documento son |\@DatosTIKZ|, |\@NotaPreviaTIKZ|, |\@DescripcionTIKZ| y |\@CondicionesTIKZ|; están definidas en el archivo |factura.def|.
 %
@@ -1708,8 +1740,8 @@
 %  G & Agrega una “|G|” en los ítems con IVA general. \\
 %  impdesc & Escribe la denominación del IVA en la descripción. \\
 %  iva & Expresa en otra columna el porcentaje de IVA para cada elemento a facturar. \\
-%  linea & Dibuja una línea protectora en el cuadro de la factura. \\
-%  nospanish & No carga |babel|, |fontenc| ni |lmodern|. \\
+%  linea & Dibuja una línea que inutiliza el espacio en blanco en el cuadro de la factura. \\
+%  nospanish & No carga |babel| ni |fontenc|. \\
 %  numitem & Enumera los ítems en la factura en otra columna extra al principio. \\
 %  prefactura & Imprime una prefactura. \\
 %  sincantidad & Los artículos van sin expresar su cantidad. \\
@@ -1717,12 +1749,15 @@
 %  sinfirmas & No incluye espacios para firmar. \\
 %  siniva & No incluye IVA, pero lo deja expresado. \\
 %  sinivaexpresado & No incluye IVA ni lo expresa. \\
+%  sinlineahni & No dibuja la línea horizontal entre totales y nota interna. \\
+%  sinlineahtit & No dibuja la línea horizontal del título de las columnas. \\
+%  sinlineahtot & No dibuja la línea horizontal entre ítems y totales. \\
+%  sinlineashi & No dibuja las líneas horizontales internas. \\
+%  sinlineashe & No dibuja las líneas horizontales externas. \\
+%  sinlineash & No dibuja ninguna línea horizontal. \\
 %  sinlineasvi & No dibuja las líneas verticales internas. \\
 %  sinlineasve & No dibuja las líneas verticales externas. \\
 %  sinlineasv & No dibuja ninguna línea vertical. \\
-%  sinlineashi & No dibuja las líneas horizontales internas. \\
-%  sinlineashe & No dibuja las líneas horizontales externas. \\
-%  sinlineash & No dibuja ninguna línea horizontal. \\
 %  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. \\
 %  sinnumero & No pone el número cuando se usa |denom|. \\
@@ -1779,6 +1814,7 @@
 %  |\itemref| & Muestra el número de línea en la factura del ítem referenciado. \\
 %  |\ivaref| & Muestra al IVA del ítem referenciado. \\
 %  |\label| & Agrega una etiqueta a un ítem de la factura\footnote{Se mantiene el nombre “\cs{label}” por compatibilidad con los comandos conocidos de \LaTeX. Este comando también se escribe dentro del ambiente \texttt{factura}.}. \\
+%  |\ldescref| & Muestra a la descripción larga del ítem referenciado. \\
 % \end{tabular}
 % \newpage
 % \noindent \begin{tabular}{>{\ttfamily}ll}
@@ -1879,35 +1915,35 @@
 %   \Ejemplo{ejemplo-prefactura}
 %   \newpage
 %   \Ejemplo{ejemplo-factura01}
-%   \Ejemplo{ejemplo-factura02}[\small\parskip=3pt]
+%   \Ejemplo{ejemplo-factura02}[\small\parskip=2pt]
 %   \newpage
-%   \Ejemplo{ejemplo-factura03}[\parskip=2pt]
+%   \Ejemplo{ejemplo-factura03}
 %   \Ejemplo{ejemplo-factura04}
 %   \newpage
 %   \Ejemplo{ejemplo-factura05}
 %   \Ejemplo{ejemplo-factura06}
 %   \newpage
-%   \Ejemplo[0.4]{ejemplo-factura07}[\small\parskip=3pt]
+%   \Ejemplo[0.4]{ejemplo-factura07}[\small\parskip=2pt]
 %   \Ejemplo{ejemplo-factura08}
 %   \newpage
 %   \Ejemplo*[0.49]{ejemplo-factura09}
-%   \Ejemplo**[0.49]{ejemplo-factura09}{2}
-%   \Ejemplo***{ejemplo-factura09}
+%   \Ejemplo[0.49]{ejemplo-factura09}*{2}
+%   \Ejemplo*{ejemplo-factura09}*
 %   \newpage
 %   \Ejemplo*[0.49]{ejemplo-factura10}
-%   \Ejemplo**[0.49]{ejemplo-factura10}{2}
-%   \Ejemplo***{ejemplo-factura10}
+%   \Ejemplo[0.49]{ejemplo-factura10}*{2}
+%   \Ejemplo*{ejemplo-factura10}*
 %   \newpage
 %   \Ejemplo*[0.49]{ejemplo-reporte1}
-%   \Ejemplo**[0.49]{ejemplo-reporte1}{2}
+%   \Ejemplo[0.49]{ejemplo-reporte1}*{2}
 %   \Ejemplo[0.49]{ejemplo-reporte1}{4}[\slshape Por espacio se omitió la página 2 en esta representación.]
 %   \newpage
 %   \Ejemplo*[0.49]{ejemplo-reporte2}
-%   \Ejemplo**[0.49]{ejemplo-reporte2}{2}
+%   \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}*{2}
 %   \Ejemplo[0.49]{ejemplo-reporte3}{3}
 %   \newpage
 %   \Ejemplo{beispiel-rechnung}
@@ -1933,7 +1969,9 @@
 \newbool{SinCantidad}
 \newbool{SinLineasVertInt}
 \newbool{SinLineasVertExt}
-\newbool{SinLineasHoriInt}
+\newbool{SinLineaHoriNI}
+\newbool{SinLineaHoriTit}
+\newbool{SinLineaHoriTot}
 \newbool{SinLineasHoriExt}
 \newbool{DCU}
 \newbool{DUC}
@@ -1983,6 +2021,9 @@
 \newif\ifsinfirmas
 \newif\ifsiniva
 \newif\ifsinivaexpresado
+\newif\ifsinlineahni
+\newif\ifsinlineahtit
+\newif\ifsinlineahtot
 \newif\ifsinlineash
 \newif\ifsinlineashe
 \newif\ifsinlineashi
@@ -2010,9 +2051,11 @@
 \newif\if at FondoReporteStar
 \newif\if at Nombre
 \newif\if at PruebaRef
-\newif\if at LineaCompleta
+\newif\if at ExpandeCuadro
+\newif\if at LineaDesdeInicio
 \newif\if at LineaHastaTotal
-\newif\if at LineaDesdeInicio
+\newif\if at LineaHastaFinal
+\newif\if at LineaDescripcion
 \newif\if at BIR
 \newif\if at BIA
 \newif\if at Exento
@@ -2033,6 +2076,7 @@
 \newlength{\@TamLineaFirmas}
 \newlength{\@TamNumItem}
 \newlength{\@TamCantidad}
+\newlength{\@TamDescripcion}
 \newlength{\@TamPrecioU}
 \newlength{\@TamPrecioS}
 \newlength{\@TamDescuento}
@@ -2093,6 +2137,8 @@
 \newlength{\@FirmaReportePosX}
 \newlength{\@FirmaReporteExcesoLinea}
 \newlength{\@TempDimen}
+\newlength{\tabcolsep@@}
+\newlength{\baselineskip@@}
 
 %% Cajas para uso interno.
 \newbox{\@CajaDatos}
@@ -2138,7 +2184,7 @@
 \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{impdesc}{\impdesctrue}%  Para el tipo de impuesto en la descripción y no en el precio unitario y total.
 \DeclareOption{iva}{\ivatrue}%  Para la columna del IVA.
-\DeclareOption{linea}{\lineatrue}%  Para la línea que protege el espacio en blanco.
+\DeclareOption{linea}{\lineatrue}%  Para la línea que inutiliza el espacio en blanco.
 \DeclareOption{nospanish}{\nospanishtrue}%  No carga babel en castellano ni la codificación T1 de las letras.
 \DeclareOption{numitem}{\numitemtrue}%  Para poner una columna extra al principio con el número del ítem.
 \DeclareOption{prefactura}{\prefacturatrue}%  La prefactura; con el diseño de la forma libre... para enviar por correo electrónico, fax o imprimir preliminarmente.
@@ -2147,6 +2193,9 @@
 \DeclareOption{sinfirmas}{\sinfirmastrue}%  No agrega los espacios para firmar.
 \DeclareOption{sinivaexpresado}{\sinivaexpresadotrue}%  Cuando no se cobra IVA y tampoco se quiere que aparezca la totalización del IVA.
 \DeclareOption{siniva}{\sinivatrue}%  No cobra IVA.
+\DeclareOption{sinlineahni}{\sinlineahnitrue}%  Estilo 'sinlineahni'.
+\DeclareOption{sinlineahtot}{\sinlineahtottrue}%  Estilo 'sinlineahtot'.
+\DeclareOption{sinlineahtit}{\sinlineahtittrue}%  Estilo 'sinlineahtit'.
 \DeclareOption{sinlineashe}{\sinlineashetrue}%  Estilo 'sinlineashe'.
 \DeclareOption{sinlineashi}{\sinlineashitrue}%  Estilo 'sinlineashi'.
 \DeclareOption{sinlineash}{\sinlineashtrue}%  Estilo 'sinlineash'.
@@ -2182,6 +2231,7 @@
 \RequirePackage{environ}%  Con 'environ' podemos usar tabularx dentro del ambiente de la factura y escribir texto en el enddef.
 \RequirePackage{fancyhdr}%  Las cabeceras fancy; así se use solamente en reporte, hay que cargarlo siempre.
 \RequirePackage[calc]{datetime2}%  Para calcular la fecha del vencimiento del crédito.
+\RequirePackage{anyfontsize}%  Para las tipografías en tamaños arbitrarios.
 \RequirePackage{ifxetex}%  Para poder modificar correctamente la metadata del PDF y agregar la versión de la clase.
 \RequirePackage{ifluatex}%  Ditto.
 \RequirePackage{zref-savepos}[2016/05/21]%  Para guardar la posición en 'Y' expandiendo el cuadro, para la línea y para la firma en el reporte si la hubiera.
@@ -2242,8 +2292,18 @@
  \ifsinlineasv\booltrue{SinLineasVertExt}\booltrue{SinLineasVertInt}\fi
  \ifsinlineasvi\booltrue{SinLineasVertInt}\fi
  \ifsinlineasve\booltrue{SinLineasVertExt}\fi
- \ifsinlineash\booltrue{SinLineasHoriExt}\booltrue{SinLineasHoriInt}\fi
- \ifsinlineashi\booltrue{SinLineasHoriInt}\fi
+ \ifsinlineash\booltrue{SinLineasHoriExt}\booltrue{SinLineaHoriNI}\booltrue{SinLineaHoriTit}\booltrue{SinLineaHoriTot}\fi
+ \ifsinlineashi\booltrue{SinLineaHoriNI}\booltrue{SinLineaHoriTit}\booltrue{SinLineaHoriTot}\fi
+ \ifsinlineahni\booltrue{SinLineaHoriNI}\fi
+ \ifsinlineahtit\booltrue{SinLineaHoriTit}\fi
+ \ifsinlineahtot
+  \iffilas
+   \CLASSWARNING{Las opciones 'sinlineahtot' y 'filas' no son compatibles. Sin efecto opcio'n 'sinlineahtot'}
+   \sinlineahtotfalse
+  \else
+   \booltrue{SinLineaHoriTot}
+  \fi
+ \fi
  \ifsinlineashe\booltrue{SinLineasHoriExt}\fi
 
  \ifdosfirmas
@@ -2292,11 +2352,11 @@
   \booltrue{SinCantidad}
   \ifdcu
    \dcufalse\@cdutrue\boolfalse{DCU}\boolfalse{PrimeroDescripcion}
-   \CLASSWARNING{La opción 'sincantidad' no es compatible con 'dcu'. Sin efecto opción 'dcu'}
+   \CLASSWARNING{La opcio'n 'sincantidad' no es compatible con 'dcu'. Sin efecto opcio'n 'dcu'}
   \fi
   \ifduc
    \ducfalse\@cdutrue\boolfalse{DUC}\boolfalse{PrimeroDescripcion}
-   \CLASSWARNING{La opción 'sincantidad' no es compatible con 'duc'. Sin efecto opción 'duc'}
+   \CLASSWARNING{La opcio'n 'sincantidad' no es compatible con 'duc'. Sin efecto opcio'n 'duc'}
   \fi
  \fi
  \ifdescuentos\booltrue{Descuentos}\fi
@@ -2305,7 +2365,7 @@
   \ifdescuentos
    \booltrue{Subtotal}
   \else
-   \CLASSWARNING{La opción 'subtotal' no aplica sin descuentos individuales. Sin efecto opción 'subtotal'}
+   \CLASSWARNING{La opcio'n 'subtotal' no aplica sin descuentos individuales. Sin efecto opcio'n 'subtotal'}
   \fi
  \fi
 
@@ -2313,11 +2373,11 @@
  \ifsintotales
   \iffilas
    \filasfalse
-   \CLASSWARNING{La opción 'sintotales' no aplica para el modo de totalización en filas. Sin efecto opción 'filas'}
+   \CLASSWARNING{La opcio'n 'sintotales' no aplica para el modo de totalizacio'n en filas. Sin efecto opcio'n 'filas'}
   \fi
   \ifcotizacion
   \else
-   \CLASSWARNING{La opción 'sintotales' no debe usarse en facturas sino en cotizaciones. No es válida una factura sin totales}
+   \CLASSWARNING{La opcio'n 'sintotales' no debe usarse en facturas sino en cotizaciones. No es va'lida una factura sin totales}
   \fi
  \fi
 
@@ -2325,13 +2385,13 @@
   \iffilas
   \else
    \centradofalse
-   \CLASSWARNING{La opción 'centrado' no es compatible con el modo de totalización en columnas. Sin efecto opción 'centrado'}
+   \CLASSWARNING{La opcio'n 'centrado' no es compatible con el modo de totalizacio'n en columnas. Sin efecto opcio'n 'centrado'}
   \fi
  \fi
  \ifagrupado
   \iffilas
    \agrupadofalse
-   \CLASSWARNING{La opción 'agrupado' no es compatible con el modo de totalización en filas. Sin efecto opción 'agrupado'}
+   \CLASSWARNING{La opcio'n 'agrupado' no es compatible con el modo de totalizacio'n en filas. Sin efecto opcio'n 'agrupado'}
   \fi
  \fi
 
@@ -2338,11 +2398,11 @@
  \ifelectro
   \booltrue{Electro}
   \gdef\@NotaInterna{\@TextoDescuentoPresidencial}
-  \CLASSWARNING{Ya no está vigente el descuento en la alícuota general. Aplicándolo igual como se pidió}
-  \CLASSINFO{Se estableció el texto aclaratorio del descuento presidencial como 'nota interna'}
+  \CLASSWARNING{Ya no esta' vigente el descuento en la ali'cuota general. Aplica'ndolo igual como se pidio'}
+  \CLASSWARNING{Se establecio' el texto aclaratorio del descuento presidencial como 'nota interna'}
   \iffilas
    \filasfalse
-   \CLASSWARNING{La opción 'electro' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'}
+   \CLASSWARNING{La opcio'n 'electro' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'}
   \fi
  \fi
 
@@ -2351,7 +2411,7 @@
  \ifsinivaexpresado
   \iffilas
    \filasfalse
-   \CLASSWARNING{La opción 'sinivaexpresado' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'}
+   \CLASSWARNING{La opcio'n 'sinivaexpresado' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'}
   \else
    \AtBeginDocument{\gdef\@ImpuestoG{0}\gdef\@ImpuestoR{0}\gdef\@ImpuestoA{0}}
   \fi
@@ -2360,7 +2420,7 @@
  \iflinea
   \ifexpandecuadro
   \else
-   \CLASSWARNING{La opción 'linea' requiere la opción 'expandecuadro'. Activando la opción 'expandecuadro'}
+   \CLASSWARNING{La opcio'n 'linea' requiere la opcio'n 'expandecuadro'. Activando la opcio'n 'expandecuadro'}
    \expandecuadrotrue
   \fi
  \fi
@@ -2368,8 +2428,13 @@
  \ifnospanish
  \else
   \RequirePackage[spanish]{babel}%  Babel en castellano.
-  \RequirePackage[T1]{fontenc}%  Codificación T1 para las tipografías.
-  \IfFileExists{lmodern.sty}{\RequirePackage{lmodern}}{}
+  \ifxetex
+  \else
+   \ifluatex
+   \else
+    \RequirePackage[T1]{fontenc}%  Codificación T1 para las tipografías; no aplica para XeLaTeX ni LuaLaTeX.
+   \fi
+  \fi
  \fi
 
  \ifexpandecuadro
@@ -2388,7 +2453,7 @@
   \@reportetrue
   \ifsoloreporte
    \soloreportefalse
-   \CLASSWARNING{La opción 'soloreporte' no es compatible con 'conreporte'. Sin efecto 'soloreporte'}
+   \CLASSWARNING{La opcio'n 'soloreporte' no es compatible con 'conreporte'. Sin efecto 'soloreporte'}
   \fi
  \fi
  \ifsoloreporte\@reportetrue\@facturafalse\@reversofalse\fi
@@ -2399,7 +2464,7 @@
    \ifsintotales\else\AtEndDocument{\@EscribeTotalesEnCSV}\fi
   \else
    \csvfalse
-   \CLASSWARNING{La opción 'csv' require generar la factura. Sin efecto opción 'csv'}
+   \CLASSWARNING{La opcio'n 'csv' require generar la factura. Sin efecto opcio'n 'csv'}
   \fi
  \fi
  
@@ -2410,49 +2475,52 @@
  \fi
 
  % Escribimos en el .log las opciones cargadas:
- \ifagrupado \CLASSINFO{Opción cargada: agrupado}\fi
- \ifcentradesc \CLASSINFO{Opción cargada: centradesc}\fi
- \ifcentrado \CLASSINFO{Opción cargada: centrado}\fi
- \ifconlineasha \CLASSINFO{Opción cargada: conlineasha}\fi
- \ifconreporte \CLASSINFO{Opción cargada: conreporte}\fi
- \ifcotizacion \CLASSINFO{Opción cargada: cotizacion}\fi
- \ifcsv \CLASSINFO{Opción cargada: csv}\fi
- \ifdcu \CLASSINFO{Opción cargada: dcu}\fi
- \ifdenom \CLASSINFO{Opción cargada: denom}\fi
- \ifdescuentos \CLASSINFO{Opción cargada: descuentos}\fi
- \ifdosfirmas \CLASSINFO{Opción cargada: dosfirmas}\fi
- \ifduc \CLASSINFO{Opción cargada: duc}\fi
- \ifelectro \CLASSINFO{Opción cargada: electro}\fi
- \ifexpandecuadro \CLASSINFO{Opción cargada: expandecuadro}\fi
- \iffilas \CLASSINFO{Opción cargada: filas}\fi
- \ifG \CLASSINFO{Opción cargada: G}\fi
- \ifimpdesc \CLASSINFO{Opción cargada: impdesc}\fi
- \ifiva \CLASSINFO{Opción cargada: iva}\fi
- \iflinea \CLASSINFO{Opción cargada: linea}\fi
- \ifnospanish \CLASSINFO{Opción cargada: nospanish}\fi
- \ifnumitem \CLASSINFO{Opción cargada: numitem}\fi
- \ifprefactura \CLASSINFO{Opción cargada: prefactura}\fi
- \ifsincantidad \CLASSINFO{Opción cargada: sincantidad}\fi
- \ifsinexpandir \CLASSINFO{Opción cargada: sinexpandir}\fi
- \ifsinfirmas \CLASSINFO{Opción cargada: sinfirmas}\fi
- \ifsiniva \CLASSINFO{Opción cargada: siniva}\fi
- \ifsinivaexpresado \CLASSINFO{Opción cargada: sinivaexpresado}\fi
- \ifsinlineash \CLASSINFO{Opción cargada: sinlineash}\fi
- \ifsinlineashe \CLASSINFO{Opción cargada: sinlineashe}\fi
- \ifsinlineashi \CLASSINFO{Opción cargada: sinlineashi}\fi
- \ifsinlineasv \CLASSINFO{Opción cargada: sinlineasv}\fi
- \ifsinlineasve \CLASSINFO{Opción cargada: sinlineasve}\fi
- \ifsinlineasvi \CLASSINFO{Opción cargada: sinlineasvi}\fi
- \ifsinmarcas \CLASSINFO{Opción cargada: sinmarcas}\fi
- \ifsinnumero \CLASSINFO{Opción cargada: sinnumero}\fi
- \ifsinreverso \CLASSINFO{Opción cargada: sinreverso}\fi
- \ifsintotales \CLASSINFO{Opción cargada: sintotales}\fi
- \ifsoloreporte \CLASSINFO{Opción cargada: soloreporte}\fi
- \ifsubtotal \CLASSINFO{Opción cargada: subtotal}\fi
- \iftodosiva \CLASSINFO{Opción cargada: todosiva}\fi
- \iftwoside \CLASSINFO{Opción cargada: twoside}\fi
- \ifunafirma \CLASSINFO{Opción cargada: unafirma}\fi
- \ifvencimiento \CLASSINFO{Opción cargada: vencimiento}\fi
+ \ifagrupado \CLASSINFO{Opcio'n cargada: agrupado}\fi
+ \ifcentradesc \CLASSINFO{Opcio'n cargada: centradesc}\fi
+ \ifcentrado \CLASSINFO{Opcio'n cargada: centrado}\fi
+ \ifconlineasha \CLASSINFO{Opcio'n cargada: conlineasha}\fi
+ \ifconreporte \CLASSINFO{Opcio'n cargada: conreporte}\fi
+ \ifcotizacion \CLASSINFO{Opcio'n cargada: cotizacion}\fi
+ \ifcsv \CLASSINFO{Opcio'n cargada: csv}\fi
+ \ifdcu \CLASSINFO{Opcio'n cargada: dcu}\fi
+ \ifdenom \CLASSINFO{Opcio'n cargada: denom}\fi
+ \ifdescuentos \CLASSINFO{Opcio'n cargada: descuentos}\fi
+ \ifdosfirmas \CLASSINFO{Opcio'n cargada: dosfirmas}\fi
+ \ifduc \CLASSINFO{Opcio'n cargada: duc}\fi
+ \ifelectro \CLASSINFO{Opcio'n cargada: electro}\fi
+ \ifexpandecuadro \CLASSINFO{Opcio'n cargada: expandecuadro}\fi
+ \iffilas \CLASSINFO{Opcio'n cargada: filas}\fi
+ \ifG \CLASSINFO{Opcio'n cargada: G}\fi
+ \ifimpdesc \CLASSINFO{Opcio'n cargada: impdesc}\fi
+ \ifiva \CLASSINFO{Opcio'n cargada: iva}\fi
+ \iflinea \CLASSINFO{Opcio'n cargada: linea}\fi
+ \ifnospanish \CLASSINFO{Opcio'n cargada: nospanish}\fi
+ \ifnumitem \CLASSINFO{Opcio'n cargada: numitem}\fi
+ \ifprefactura \CLASSINFO{Opcio'n cargada: prefactura}\fi
+ \ifsincantidad \CLASSINFO{Opcio'n cargada: sincantidad}\fi
+ \ifsinexpandir \CLASSINFO{Opcio'n cargada: sinexpandir}\fi
+ \ifsinfirmas \CLASSINFO{Opcio'n cargada: sinfirmas}\fi
+ \ifsiniva \CLASSINFO{Opcio'n cargada: siniva}\fi
+ \ifsinivaexpresado \CLASSINFO{Opcio'n cargada: sinivaexpresado}\fi
+ \ifsinlineahni \CLASSINFO{Opcio'n cargada: sinlineahni}\fi
+ \ifsinlineahtit \CLASSINFO{Opcio'n cargada: sinlineahtit}\fi
+ \ifsinlineahtot \CLASSINFO{Opcio'n cargada: sinlineahtot}\fi
+ \ifsinlineash \CLASSINFO{Opcio'n cargada: sinlineash}\fi
+ \ifsinlineashe \CLASSINFO{Opcio'n cargada: sinlineashe}\fi
+ \ifsinlineashi \CLASSINFO{Opcio'n cargada: sinlineashi}\fi
+ \ifsinlineasv \CLASSINFO{Opcio'n cargada: sinlineasv}\fi
+ \ifsinlineasve \CLASSINFO{Opcio'n cargada: sinlineasve}\fi
+ \ifsinlineasvi \CLASSINFO{Opcio'n cargada: sinlineasvi}\fi
+ \ifsinmarcas \CLASSINFO{Opcio'n cargada: sinmarcas}\fi
+ \ifsinnumero \CLASSINFO{Opcio'n cargada: sinnumero}\fi
+ \ifsinreverso \CLASSINFO{Opcio'n cargada: sinreverso}\fi
+ \ifsintotales \CLASSINFO{Opcio'n cargada: sintotales}\fi
+ \ifsoloreporte \CLASSINFO{Opcio'n cargada: soloreporte}\fi
+ \ifsubtotal \CLASSINFO{Opcio'n cargada: subtotal}\fi
+ \iftodosiva \CLASSINFO{Opcio'n cargada: todosiva}\fi
+ \iftwoside \CLASSINFO{Opcio'n cargada: twoside}\fi
+ \ifunafirma \CLASSINFO{Opcio'n cargada: unafirma}\fi
+ \ifvencimiento \CLASSINFO{Opcio'n cargada: vencimiento}\fi
 
  % Cargamos aquí 'geometry' para que sea después de haber establecido 'twoside'.
  \RequirePackage{geometry}}
@@ -2503,11 +2571,11 @@
 
 %% La moneda:
 \def\@MonedaBs{Bs.}
-\def\@MonedaBsS{BsS.}
+\def\@MonedaBsS{Bs.S}
 
 %% Las fechas de la entrada de la reconversión monetaria:
-\DTMsavedate{FechaBsS}{2018-05-01}
-\DTMsavedate{FechaBs}{2018-06-04}
+\DTMsavedate{FechaBsS}{2018-06-04}
+\DTMsavedate{FechaBs}{2019-01-01}
 
 %% Al lado de cada ítem va la letra que designa el gravamen que aplica sobre él:
 \def\@DenomAlicuotaG{G}
@@ -2516,7 +2584,7 @@
 \def\@DenomAlicuotaE{(E)}
 
 %% El texto predeterminado para la nota interna por el descuento presidencial.
-\def\@TextoDescuentoPresidencial{Se aplica un descuento del \@AlicuotaGDescPorc\% al IVA General seg\'un Decreto Presidencial 3085 en Gaceta Oficial 41239.}
+\def\@TextoDescuentoPresidencial{Se aplica un descuento del \@AlicuotaGDescPorc\% al IVA General seg\'un Decreto Presidencial 3.085 en Gaceta Oficial 41.239.}
 
 %% Macros que guardan textos que corresponden a nombres de campos:
 \def\@@Fecha{Fecha de emisi\'on:}
@@ -2681,7 +2749,7 @@
 
 %% Nota interna al cuadro de la factura y nota externa a él (que sale antes de \Descripcion).
 \NewDocumentCommand{\NotaInterna}{+m}{%
- \ifdefvoid{\@NotaInterna}{}{\CLASSWARNING{Se sobreescribió la nota interna automática aclaratoria del descuento presidencial}}%
+ \ifdefvoid{\@NotaInterna}{}{\CLASSWARNING{Se sobreescribio' la nota interna previamente definida}}%
  \gdef\@NotaInterna{#1}}
 \NewDocumentCommand{\NotaExterna}{+m}{\gdef\@NotaExterna{#1}}
 
@@ -2688,7 +2756,7 @@
 \AtBeginDocument{%
  % Si no se especificó fecha, tomamos la de hoy. Además, advertimos cuando el documento se está compilando en una fecha distinta de la fecha establecida en el encabezado.
  \DTMifsaveddate{FechaEmision}{}{%
-  \CLASSWARNING{No se especificó fecha. Asumiendo la fecha de hoy}%
+  \CLASSWARNING{No se especifico' fecha. Asumiendo la fecha de hoy}%
   \DTMsavedate{FechaEmision}{\the\year-\the\month-\the\day}}%
  \DTMsavenow{Ahora}%
  \DTMsaveddatediff{FechaEmision}{Ahora}{\AuxFecha}%
@@ -2708,43 +2776,46 @@
     \Moneda{\@MonedaBsS}%
    \fi
   \else
+   \LetraNotaInterna{\fontsize{14}{18}}%
+   \NotaInterna{\FPupn\TotalBsS{\Total{} 1000 div \@DigitosMoneda{} round}Según Decreto Presidencial 3.332, el total en Bolívares Soberanos es de {\bfseries \@MonedaBsS~\numprint{\TotalBsS}}}%
+   \CLASSWARNING{Se establecio' el texto aclaratorio sobre el total en Boli'vares Soberanos como una nota interna}%
    \Moneda{\@MonedaBs}%
   \fi
  \fi
 
  % Efectuamos distintos chequeos para dar errores o advertencias si faltó algo.
- \ifdefvoid{\@RazonSocial}{\CLASSERROR{Hay que definir la razón social}}{}%
+ \ifdefvoid{\@RazonSocial}{\CLASSERROR{Hay que definir la razo'n social}}{}%
  \if at reporte
-  \ifdefvoid{\@Num}{\CLASSWARNING{No se especificó el número de la factura. Puede dar error si el título del reporte no se especifica que aparezca en las cabeceras}}{}%
+  \ifdefvoid{\@Num}{\CLASSWARNING{No se especifico' el nu'mero de la factura. Puede dar error si el ti'tulo del reporte no se especifica que aparezca en las cabeceras}}{}%
   \ifdefvoid{\@Proveedor}{%
    \ifdefvoid{\@Emisor}
     {\CLASSERROR{Hay que definir el nombre del proveedor cuando se emite un reporte}}%
-    {\CLASSWARNING{Se toma el emisor como el proveedor por no haberse especificado este último}%
+    {\CLASSWARNING{Se toma el emisor como el proveedor por no haberse especificado este u'ltimo}%
     \let\@Proveedor=\@Emisor}}
    {}%
  \fi
  \if at factura
   \ifdefvoid{\@RIF}{\CLASSERROR{Hay que definir el R.I.F}}{}%
-  \ifdefvoid{\@Direccion}{\CLASSERROR{Hay que definir la dirección fiscal}}{}%
-  \ifdefvoid{\@Telefono}{\CLASSWARNING{Pudiera definirse un número telefónico}}{}%
-  \ifdefvoid{\@Email}{\CLASSWARNING{Pudiera definirse una dirección de correo electrónico}}{}%
+  \ifdefvoid{\@Direccion}{\CLASSERROR{Hay que definir la direccio'n fiscal}}{}%
+  \ifdefvoid{\@Telefono}{\CLASSWARNING{Pudiera definirse un nu'mero telefo'nico}}{}%
+  \ifdefvoid{\@Email}{\CLASSWARNING{Pudiera definirse una direccio'n de correo electro'nico}}{}%
   \ifdefvoid{\@Condiciones}{\CLASSWARNING{Pudieran definirse las condiciones del documento}}{}%
   \ifcotizacion
-   \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opción para cotizacion se recomienda agregar el fondo}}{}%
+   \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opcio'n para cotizacion se recomienda agregar el fondo}}{}%
   \fi
   \ifprefactura
-   \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opción para prefactura se recomienda agregar el fondo}}{}%
+   \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opcio'n para prefactura se recomienda agregar el fondo}}{}%
   \fi
   \ifsinnumero
    \ifcotizacion
    \else
-    \CLASSERROR{La opción para no poner el número sólo es compatible con las cotizaciones}%
+    \CLASSERROR{La opcio'n para no poner el nu'mero so'lo es compatible con las cotizaciones}%
    \fi
   \fi
   \ifdenom
    \ifsinnumero
    \else
-    \ifdefvoid{\@Num}{\CLASSERROR{Hay que definir el número de la factura}}{}%
+    \ifdefvoid{\@Num}{\CLASSERROR{Hay que definir el nu'mero de la factura}}{}%
    \fi
   \fi
  \fi
@@ -3174,6 +3245,7 @@
 %% http://tex.stackexchange.com/questions/296035/insert-a-special-character-at-each-end-of-line-in-a-paragraph
 %% http://tex.stackexchange.com/questions/248944/how-to-put-before-lines
 \newcommand{\@DescripcionAuxCmd}[2]{%
+ \immediate\write\@auxout{\gdef\noexpand\@TamDescripcion{\the\linewidth}}% Para poder establecer la línea diagonal hay que saber el tamaño del campo de la descripción.
  \ifimpdesc\settowidth{\@TempDimen}{\@EscribeTipoDeImpuesto{#2}}\fi
  \savebox{\@CajaPrueba}{%
   \parbox[t]{\linewidth}{%
@@ -3543,7 +3615,9 @@
  \ifbool{SinLineasVertExt}{}{|}}
 
 %% Comando para hacer los cálculos sobre cada ítem y establecer las macros con el contenido de cada ítem introducido.
-\NewDocumentCommand{\@CalculaItem}{m m m o m m}{%
+%% Aquí tenemos que hacer coincidir los parámetros de \@CalculaItem con los de \@ITEM para poder hacer
+%% \let\@CalculaItem\@ITEM cuando no hay factura sino solamente reporte.
+\NewDocumentCommand{\@CalculaItem}{m m m o m m +o}{%
  \addtocounter{NumItem}{1}%
  % Calculamos.
  \FPupn\PrecioU{#5 \@DigitosMoneda{} round}%
@@ -3550,7 +3624,7 @@
  \ifbool{Descuentos}
   {\ifx\\#6\\\FPset\Dcto{0}\else\FPupn\Dcto{#6 \@DigitosPorc{} round clip}\fi}% Fijamos en 0 el descuento si no se especifica en \Item***.
   {\FPset\Dcto{#6}%
-   \FPifeq\Dcto{0}\else\CLASSWARNING{Se pidió un descuento individual sin dar la opción de la clase 'descuentos'. No se tomará en cuenta}\fi
+   \FPifeq\Dcto{0}\else\CLASSWARNING{Se pidio' un descuento individual sin dar la opcio'n de la clase 'descuentos'. No se tomara' en cuenta}\fi
    \FPset\Dcto{0}}% También fijamos en 0 el descuento por si se especifica en \Item*** pero no se pide la opción 'descuentos'.
  \FPupn\PrecioS{#2 \PrecioU{} * \@DigitosMoneda{} round}%
  \FPupn\PrecioT{100 \Dcto{} 100 - / \PrecioS{} * \@DigitosMoneda{} round}%
@@ -3567,6 +3641,7 @@
  \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\gdef\csname @Item@\romannumeral\value{NumItem}@DescripcionLarga\endcsname{#7}%
  \expandafter\global\expandafter\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@IVA\endcsname{%
   \noexpand\numprint\expandafter{\csname @Alicuota#1porc\endcsname}}%
  \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@PrecioT\endcsname{\noexpand\numprint{\PrecioT}}}
@@ -3574,7 +3649,7 @@
 %% Macro interna para saber si una etiqueta existe o no.
 \gdef\@pruebaref#1{%
  \expandafter\ifx\csname @Etiqueta@#1\endcsname\relax
-  \CLASSWARNING{La etiqueta `#1' no está definida}\ignorespaces
+  \CLASSWARNING{La etiqueta `#1' no esta' definida}\ignorespaces
   \@PruebaReffalse
  \else
   \@PruebaReftrue
@@ -3582,7 +3657,7 @@
 
 %% Comandos para las referencias: i) referencia al número de ítem, ii) a la cantidad, iii) a la descripción, iv) al precio unitario, v) al descuento, vi) al precio total.
 \gdef\itemref#1{%
- \ifbool{NumItem}{}{\CLASSWARNING{Es recomendable usar la opción 'numitem' para enumerar los ítems}}%
+ \ifbool{NumItem}{}{\CLASSWARNING{Es recomendable usar la opcio'n 'numitem' para enumerar los i'tems}}%
  \@pruebaref{#1}\if at PruebaRef \csname @Etiqueta@#1\endcsname \fi}
 \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}
@@ -3589,6 +3664,7 @@
 \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\ldescref#1{\@pruebaref{#1}\if at PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @DescripcionLarga\endcsname \fi}
 \gdef\ivaref#1{\@pruebaref{#1}\if at PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @IVA\endcsname \fi}
 \gdef\ptref#1{\@pruebaref{#1}\if at PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioT\endcsname \fi}
 
@@ -3596,13 +3672,13 @@
 \newcommand{\label at factura}[1]{%
  \expandafter\ifx\csname @Etiqueta@#1\endcsname\relax
   \expandafter\global\expandafter\edef\csname @Etiqueta@#1\endcsname{\arabic{NumItem}}\ignorespaces
-  \CLASSINFO{Etiqueta `#1' definida para el ítem \arabic{NumItem}}%
+  \CLASSINFO{Etiqueta `#1' definida para el i'tem \arabic{NumItem}}%
  \else
   \edef\@label at test@uno{\csname @Etiqueta@#1\endcsname}%
   \edef\@label at test@dos{\theNumItem}%
   \ifx\@label at test@uno\@label at test@dos
   \else
-   \CLASSWARNING{La etiqueta `#1' se definió más de una vez}\ignorespaces
+   \CLASSWARNING{La etiqueta `#1' se definio' ma's de una vez}\ignorespaces
   \fi
  \fi}
 
@@ -3620,8 +3696,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{8}{\ifbool{SinLineasVertExt}{}{|} r}\begingroup
-    \noexpand\ifdim \noexpand\ht\noexpand\@CajaEspacioVacio=0pt
-    \noexpand\else
+    \noexpand\if at ExpandeCuadro
      \noexpand\iflinea\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.
      \noexpand\begin{tabular}[b]{@{\noexpand\extracolsep{2\noexpand\tabcolsep}}lr \ifbool{SinLineasVertExt}{}{|}}}
 
@@ -3632,18 +3707,17 @@
    \setlength{\@EspacioVacioFinal}{\zposy{EspacioVacioFinal}sp}%
    \global\@EspacioVacioInicial=\@EspacioVacioInicial% Hay que globalizarlas
    \global\@EspacioVacioFinal=\@EspacioVacioFinal
-   \savebox{\@CajaEspacioVacio}{\parbox[b][\@EspacioVacioInicial-\@EspacioVacioFinal]{0pt}{%
+   \savebox{\@CajaEspacioVacio}{\parbox[b][\@EspacioVacioInicial-\@EspacioVacioFinal]{\@TamDescripcion}{%
     \iflinea
-     \if at LineaCompleta
+     \if at LineaHastaFinal
       \zsaveposy{LineaNodoBCoordY}%
      \else
-      \if at LineaHastaTotal
-      \else
+      \if at LineaDescripcion
        \zsaveposx{LineaNodoACoordX}\mbox{}\hfill \zsaveposx{LineaNodoBCoordX}\zsaveposy{LineaNodoBCoordY}%
       \fi
      \fi
     \fi}}%
-   \ifdim \ht\@CajaEspacioVacio=0pt \global\lineafalse \fi
+   \ifdim \ht\@CajaEspacioVacio=0pt \global\lineafalse \else \@ExpandeCuadrotrue \fi
   \fi
 
   \ifx\undefined\Total\relax\else\CLASSERROR{Parece ya haberse usado un entorno de factura}\fi
@@ -3685,9 +3759,9 @@
    \global\@SeparaItemsExtraFinal=\@SeparaItemsExtraFinal}
   %
   % Comando interno general para agregar cualquier ítem.
-  \NewDocumentCommand{\@ITEM}{m m m o m m}{%
-   % 1. [R|G|A|E|X]; 2. cantidad; 3. descripción; 4. descripción para el csv (entre corchetes); 5. p/u; 6. dcto.
-   \@CalculaItem{##1}{##2}{##3}{##5}{##6}%
+  \NewDocumentCommand{\@ITEM}{m m m o m m +o}{%
+   % 1. [R|G|A|E|X]; 2. cantidad; 3. descripción; 4. descripción para el csv (entre corchetes); 5. p/u; 6. dcto; 7. la descripción para el reporte.
+   \@CalculaItem{##1}{##2}{##3}{##5}{##6}[##7]%
    % Si no es el primer ítem, entonces hace falta \\ para terminar el ítem anterior.
    \ifnum\value{NumItem}=1% Aquí, \@CalculaItem aumenta en 1 el contador NumItem, que si vale 1 significa que aún no hemos procesado la línea 1, es decir, no hay que hacer el salto de línea. La última línea se termina en otro lado.
    \else
@@ -3718,7 +3792,7 @@
    {\@DescripcionAuxCmd{##3}{##1}}% cdu.
    &
    % Cuarto campo: Acá puede ir el precio unitario (cdu y dcu) o la cantidad (duc).
-   \FPifeq\PrecioU{##5}\else\CLASSWARNING{Se está introduciendo un precio con más de dos decimales: (##3 - ##5. Redondeado a \PrecioU)}{}\fi% Advertimos cuando el precio unitario tiene más de dos decimales.
+   \FPifeq\PrecioU{##5}\else\CLASSWARNING{Se esta' introduciendo un precio con ma's de dos decimales: (##3 - ##5. Redondeado a \PrecioU)}{}\fi% Advertimos cuando el precio unitario tiene más de dos decimales.
    \ifbool{SinCantidad}{}{%
     \ifduc
      \David at XRight{\@CantidadAuxCmd{\mbox{}\hfill \@LetraNumeros \numprint{##2}\hfill\mbox{}}}% duc.
@@ -3797,11 +3871,15 @@
   % Usamos la definición de \label at factura dentro del entorno de la factura para que sea local aquí nada más.
   \let\label\label at factura
   \@LetraItems% Este es el tipo de letra que tendrán los ítems, y en este tipo de letra se define el \baselineskip de toda la factura.
+  \setlength{\baselineskip@@}{\baselineskip}%
+  \global\baselineskip@@=\baselineskip@@
   \@FacturaAuxInicioCmd
   \ifbool{SinLineasHoriExt}{}{\hline}%
   \@ZERO
+  \setlength{\tabcolsep@@}{\tabcolsep}%
+  \global\tabcolsep@@=\tabcolsep@@
   % Estamos en el número del ítem, si aplicara.
-  \if at LineaDesdeInicio \hspace*{-\tabcolsep}\zsaveposx{LineaNodoACoordX}\hspace*{\tabcolsep}\fi
+  \if at LineaDesdeInicio \zsaveposx{LineaNodoACoordX}\fi
   \ifbool{NumItem}{\@NumItemAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@NumItem \hfill\mbox{}}}{}%
   &
   % Avanzamos a la cantidad, o la descripción.
@@ -3828,40 +3906,51 @@
   \ifbool{IVA}{\@IVAAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@IVA \hfill\mbox{}}}{}
   &% Avanzamos hasta el precio total.
   \@PrecioTAuxCmd{\mbox{}\hfill \@LetraTitColumnas \ifbool{SinCantidad}{\@@Precio}{\@@PrecioT}\space (\Moneda)\hfill\mbox{}}%
-  \if at LineaCompleta \hspace*{\tabcolsep}\zsaveposx{LineaNodoBCoordX}\hspace*{-\tabcolsep}\fi
+  \if at LineaHastaFinal \zsaveposx{LineaNodoBCoordX}\fi
   \\
-  \ifbool{SinLineasHoriInt}{}{\hline}%
+  \ifbool{SinLineaHoriTit}{}{\hline}%
   %
   #1% Aquí entran todos los items que el usuario declara dentro del ambiente.
+  \@CalculaTotalesI
   \@CalculaSeparaItemsExtraFinal
   \\[\@SeparaItemsExtraFinal]% El último fin de línea se hace aquí.
-  \ifconlineasha\hline\fi% Se verifica si hace falta una línea horizontal o no.
+  \ifconlineasha
+   \ifdefvoid{\@NotaInterna}{%
+    \ifbool{SinLineasHoriExt}{\if at ExpandeCuadro\hline\fi}{\hline}}{\hline}%
+  \fi% Se verifica si hace falta una línea horizontal o no.
   \iffilas
    % Esto en lugar de \ifexpandecuadro para que no se haga una linea vacía en la tabla cuando la caja está vacía.
-   \ifdim \ht\@CajaEspacioVacio=0pt
+   \if at ExpandeCuadro
+    \ifbool{PrimeroDescripcion}{&\usebox{\@CajaEspacioVacio}&&&&&&\\}{&&\usebox{\@CajaEspacioVacio}&&&&&\\}%
+    \ifdefvoid{\@NotaInterna}{}
+    {\ifbool{SinLineaHoriNI}{}{\hline}%
+     \@ColumnasMultiColumnNotaIntAuxCmd}%
+    \ifbool{SinLineasHoriExt}{}{\hline}% Siempre que hay relleno se pone la línea acá.
+   \else
     \ifdefvoid{\@NotaInterna}{%
      \ifbool{SinLineasHoriExt}{}{%
-      \ifconlineasha\else\hline\fi}% Verificamos si hay que poner la línea horizontal. Si está 'conlineasha' ya salió debido a esta opción.
-     }{\@ColumnasMultiColumnNotaIntAuxCmd\ifbool{SinLineasHoriExt}{}{\hline}}%
+      \ifconlineasha\else\hline\fi}}% Verificamos si hay que poner la línea horizontal. Si está 'conlineasha' entonces ya salió la línea.
+     {\ifbool{SinLineaHoriNI}{}{\ifconlineasha\else\hline\fi}%
+      \@ColumnasMultiColumnNotaIntAuxCmd
+      \ifbool{SinLineasHoriExt}{}{\hline}}%
+   \fi
+  \else
+   \ifsintotales
    \else
-    \ifbool{PrimeroDescripcion}{&\usebox{\@CajaEspacioVacio}&&&&&&\\}{&&\usebox{\@CajaEspacioVacio}&&&&&\\}%
-    \ifdefvoid{\@NotaInterna}{}{\@ColumnasMultiColumnNotaIntAuxCmd}%
-    \ifbool{SinLineasHoriExt}{}{\hline}% Siempre que hay relleno se pone la línea acá.
+    \ifbool{SinLineaHoriTot}{}{\ifconlineasha\else\hline\fi}% Línea que cierra los ítems en la tabla.
    \fi
-  \else
-   \ifbool{SinLineasHoriInt}{}{\ifconlineasha\else\hline\fi}% Línea que cierra los ítems en la tabla.
    % Agregamos el espacio espúreo.
-   \ifdim \ht\@CajaEspacioVacio=0pt
-   \else
-    % Rellenamos la tabla con espacio espúreo, y le agregamos las lineas externas, si aplica.
+   \if at ExpandeCuadro
+    % Rellenamos la tabla con espacio espúreo, y le agregamos las líneas externas, si aplica.
     \ifbool{SinLineasVertExt}{\multicolumn{8}{c}{\usebox{\@CajaEspacioVacio}}}{\multicolumn{8}{|c|}{\usebox{\@CajaEspacioVacio}}}\\
    \fi
-   % Si pedimos sin totalizaciones, entonces cerramos la tabla ya, si no, calculamos los totales y los escribimos
+   % Si pedimos sin totalizaciones, entonces cerramos la tabla ya, si no, calculamos los totales y los escribimos.
    \ifsintotales
+    \ifdefvoid{\@NotaInterna}{}{\ifbool{SinLineaHoriNI}{}{\hline}\@ColumnasMultiColumnNotaIntAuxCmd}%
+    \ifbool{SinLineasHoriExt}{}{\hline}%
    \else
-    % Modo de columnas: Abrimos la tabla para escribir los totales, y le agregamos las líneas verticales externas, si aplica.
+    % Modo de columnas: Abrimos la tabla para escribir los totales y le agregamos las líneas verticales externas, si aplica.
     \@ColumnasMultiColumnTotalesAuxCmd
-    \@CalculaTotalesI
     \ifagrupado
      \@EscribeTotalColAgrupado
     \else
@@ -3875,7 +3964,7 @@
     \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\numprint{\Total}\\
     \end{tabular}\endgroup
     \\
-    \ifdefvoid{\@NotaInterna}{}{\@ColumnasMultiColumnNotaIntAuxCmd}%
+    \ifdefvoid{\@NotaInterna}{}{\ifbool{SinLineaHoriNI}{}{\hline}\@ColumnasMultiColumnNotaIntAuxCmd}%
     \ifbool{SinLineasHoriExt}{}{\hline}%
    \fi
   \fi
@@ -3885,7 +3974,6 @@
   \ifsintotales\gdef\Total{}\fi
   % Si pedimos no totalizar (sintotales), la opción filas queda desactivada.
   \iffilas
-   \@CalculaTotalesI
    \@LetraNumTotales
    \vspace*{\@SeparaVertical}\par
    \ifexpandecuadro\else\vfill\fi
@@ -3936,7 +4024,7 @@
       \if at Exento\usebox{\@CajaBIE}\hspace*{\@SeparaMinTotales}\fi\usebox{\@CajaTotal}%
       \ifcentrado\hspace*{\@SepTotales}\fi
      \else% Aquí casi cualquier cosa tiene aspecto feo.
-      \CLASSWARNING{Es mejor no usar la opción de totalización en filas en este caso, o disminuir los tamaños de los tipos de letra para la totalización}%
+      \CLASSWARNING{Es mejor no usar la opcio'n de totalizacio'n en filas en este caso, o disminuir los tama~nos de los tipos de letra para la totalizacio'n}%
       \centering{%
        \begin{tabular}{r@{\hspace*{\@SeparaMinTotales}}l}
         \usebox{\@CajaBIAliR} & \usebox{\@CajaBIAliA} \\[\@SeparaFilas]
@@ -3960,11 +4048,11 @@
   \ifbool{SinCantidad}
   % Definamos todos los comandos \Item***. El descuento es opcional; por eso usamos G{0} en \NewDocumentCommand.
   {%
-   \NewDocumentCommand{\Item}{m o m G{0}}{\@ITEM{G}{1}{#1}[#2]{#3}{#4}}% Ítem normal.
-   \NewDocumentCommand{\ItemR}{m o m G{0}}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{1}{#1}[#2]{#3}{#4}}% Ítem con IVA reducido.
-   \NewDocumentCommand{\ItemA}{m o m G{0}}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{1}{#1}[#2]{#3}{#4}}% Ítem con IVA adicional.
-   \NewDocumentCommand{\ItemE}{m o m G{0}}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{1}{#1}[#2]{#3}{#4}}% Ítem exento de IVA.
-   \NewDocumentCommand{\ItemX}{m o}{\@ITEM{X}{1}{#1}[#2]{0}{0}}% Ítem sin precio.
+   \NewDocumentCommand{\Item}{m o m G{0} +o}{\@ITEM{G}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem normal.
+   \NewDocumentCommand{\ItemR}{m o m G{0} +o}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem con IVA reducido.
+   \NewDocumentCommand{\ItemA}{m o m G{0} +o}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem con IVA adicional.
+   \NewDocumentCommand{\ItemE}{m o m G{0} +o}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem exento de IVA.
+   \NewDocumentCommand{\ItemX}{m o +o}{\@ITEM{X}{1}{#1}[#2]{0}{0}[#3]}% Ítem sin precio.
    \let\ItemG\Item
    \ifcsv
     \ifdescuentos
@@ -3974,11 +4062,11 @@
     \fi
    \fi}
   {%
-   \NewDocumentCommand{\Item}{m m o m G{0}}{\@ITEM{G}{#1}{#2}[#3]{#4}{#5}}% Ítem normal.
-   \NewDocumentCommand{\ItemR}{m m o m G{0}}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{#1}{#2}[#3]{#4}{#5}}% Ítem con IVA reducido.
-   \NewDocumentCommand{\ItemA}{m m o m G{0}}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{#1}{#2}[#3]{#4}{#5}}% Ítem con IVA adicional.
-   \NewDocumentCommand{\ItemE}{m m o m G{0}}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{#1}{#2}[#3]{#4}{#5}}% Ítem exento de IVA.
-   \NewDocumentCommand{\ItemX}{m m o}{\@ITEM{X}{#1}{#2}[#3]{0}{0}}% Ítem sin precio.
+   \NewDocumentCommand{\Item}{m m o m G{0} +o}{\@ITEM{G}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem normal.
+   \NewDocumentCommand{\ItemR}{m m o m G{0} +o}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem con IVA reducido.
+   \NewDocumentCommand{\ItemA}{m m o m G{0} +o}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem con IVA adicional.
+   \NewDocumentCommand{\ItemE}{m m o m G{0} +o}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem exento de IVA.
+   \NewDocumentCommand{\ItemX}{m m o +o}{\@ITEM{X}{#1}{#2}[#3]{0}{0}[#4]}% Ítem sin precio.
    \let\ItemG\Item
    \ifcsv
     \if at cdu
@@ -4008,7 +4096,7 @@
   % Los descuentos totales no son compatibles -y no creo que lo vayan a ser- con el modo de totalización en filas.
   \iffilas
    \if at DescuentoTotal
-    \CLASSWARNING{La opción 'filas' no es compatible con los descuentos totales; sin efecto opción 'filas'}
+    \CLASSWARNING{La opcio'n 'filas' no es compatible con los descuentos totales; sin efecto opcio'n 'filas'}
     \filasfalse
    \fi
   \fi
@@ -4043,9 +4131,13 @@
    % Para determinar las coordenadas de la línea hay que usar \AtBeginShipoutNext porque si no se hace en el 'shipout' de la página se genera un espacio en blanco extra.
    \AtBeginShipoutNext{\iflinea\@DibujaLinea\fi}
     \iffilas
-     \ifbool{SinLineasVertInt}{\@LineaCompletatrue}
+     \ifbool{SinLineasVertInt}{\@LineaDesdeIniciotrue\@LineaHastaFinaltrue}{\@LineaDescripciontrue}%
     \else
-     \@LineaHastaTotaltrue\@LineaDesdeIniciotrue
+     \ifsintotales
+      \@LineaDesdeIniciotrue\@LineaHastaFinaltrue
+     \else
+      \@LineaDesdeIniciotrue\@LineaHastaTotaltrue
+     \fi
     \fi
   \fi
   %% El comando para la descripción del servicio prestado.
@@ -4298,25 +4390,40 @@
 
 %% Comando que coloca la línea diagonal.
 \newcommand{\@DibujaLinea}{%
- \@LetraItems% Volvemos a fijar el \baselineskip de la tabla.
  \setlength{\@LineaNodoXo}{\zposx{LineaNodoACoordX} sp}%
  \setlength{\@LineaNodoYo}{\zposy{LineaNodoBCoordY} sp}%
  \setlength{\@LineaNodoXf}{\zposx{LineaNodoBCoordX} sp}%
  \setlength{\@LineaNodoYf}{\zposy{LineaNodoBCoordY} sp}%
  \addtolength{\@LineaNodoYo}{\@EspacioVacioInicial-\@EspacioVacioFinal}%
+ \if at LineaDesdeInicio
+  \addtolength{\@LineaNodoXo}{-\tabcolsep@@}%
+ \fi
+ \if at LineaHastaFinal
+  \addtolength{\@LineaNodoXf}{\tabcolsep@@}%
+ \fi
  \iffilas
+  \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}%
+  \if at LineaDescripcion
+   \addtolength{\@LineaNodoXo}{-\tabcolsep@@}%
+   \addtolength{\@LineaNodoXf}{\tabcolsep@@}%
+  \fi
  \else
-  \if at DescG \addtolength{\@LineaNodoYo}{2\baselineskip}\fi
-  \if at DescR \if at BIR \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi
-  \if at DescA \if at BIA \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi
-  \if at DescE \if at Exento \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi
-  \addtolength{\@LineaNodoYo}{\baselineskip/2}%
-  \ifsinivaexpresado
+  \ifsintotales
+  \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}%
   \else
-   \addtolength{\@LineaNodoYo}{2\baselineskip}%
-   \if at BIR\addtolength{\@LineaNodoYo}{2\baselineskip}\fi
-   \if at BIA\addtolength{\@LineaNodoYo}{2\baselineskip}\fi
-   \if at Exento\addtolength{\@LineaNodoYo}{\baselineskip}\fi
+   \if at DescG \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi
+   \if at DescR \if at BIR \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi
+   \if at DescA \if at BIA \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi
+   \if at DescE \if at Exento \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi
+   \addtolength{\@LineaNodoYo}{\baselineskip@@}%
+   \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}%
+   \ifsinivaexpresado
+   \else
+    \addtolength{\@LineaNodoYo}{2\baselineskip@@}%
+    \if at BIR\addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi
+    \if at BIA\addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi
+    \if at Exento\addtolength{\@LineaNodoYo}{\baselineskip@@}\fi
+   \fi
   \fi
  \fi
  \iflinea
@@ -4509,15 +4616,18 @@
 %
 %<factdos|factseis>%%  (sinlineasve) Sin líneas verticales externas
 %<facttres|factcuatro>%%  (sinlineasvi) Sin líneas verticales internas
-%<factdiez>%%  (sinlineasv) Sin lineas verticales
-%<factcuatro>%%  (sinlineashi) Sin líneas horizontales internas
-%<factseis>%%  (sinlineashe) Sin líneas horizontales externas
-%<factdiez>%%  (sinlineash) Sin lineas horizontales
+%<factdiez>%%  (sinlineasv) Sin líneas verticales
+%<factdos>%%  (sinlineahtot) Sin línea horizontal interna después de los ítems y antes de los totales
+%<factcuatro>%%  (sinlineahtit) Sin línea horizontal interna después del título de las columnas
+%<factseis>%%  (sinlineashi) Sin líneas horizontales internas
+%<factsiete>%%  (sinlineashe) Sin líneas horizontales externas
+%<factnueve>%%  (sinlineahni)  Sin línea horizontal interna después de la nota interna.
+%<factdiez>%%  (sinlineash) Sin líneas horizontales
 %<facttres|factcinco>%%  (conlineasha) Separado cada ítem con una línea horizontal
 %
 %<factcinco|factocho>%%  (sinexpandir) Sin expandir el cuadro de la factura ni la descripción
 %<facttres|factcuatro|prefac>%%  (expandecuadro) Expande el cuadro de la factura con espacio en blanco
-%<prefac|facttres>%%  (linea) Con línea protectora del espacio en blanco
+%<prefac|factcuatro>%%  (linea) Con línea para inutilizar el espacio en blanco
 %
 %<facttres>%%  (impdesc) Con el tipo de impuesto como parte de la descripción y no de los precios
 %<factdos>%%  (centradesc) Centra la descripción en los elementos en la factura
@@ -4525,13 +4635,13 @@
 %<factcinco|factseis|factsiete>%%  (todosiva) Forzando a totalizar todos los IVA así no existan productos gravados con ellos
 %<factnueve>%%  (G) Escribiendo una letra ‘G’ en los ítems gravados con IVA general así sea el único gravamen a facturar
 %<factocho>%%  (siniva) Sin IVA
-%<factnueve|factdiez>%%  (electro) Con descuento en IVA al pagar por medios electrónicos
+%<factnueve>%%  (electro) Con descuento en IVA al pagar por medios electrónicos
 %<factdos>%%  (unafirma) Sólo la firma del emisor
 %<facttres>%%  (sinfirmas) Sin firmas
 %<factdiez>%%  (vencimiento) Con fecha de vencimiento explícita así no haya crédito
 %
 %<factocho>%%  (csv) Escribe un archivo CSV con la información numérica de la factura
-%<beispiel>%%  (nospanish) Sin cargar babel en castellano, ‘lmodern’ ni la codificación T1 para la tipografías
+%<beispiel>%%  (nospanish) Sin cargar babel en castellano, ni la codificación T1 para la tipografías
 %
 %<factdos|factcuatro>%%  Usando \Nombre y \CI en lugar de \RazonSocial y \RIF
 %<factdos|factcuatro|reptres>%%  Sin especificar la persona de contacto
@@ -4542,7 +4652,9 @@
 %<repuno>%%  Sin especificar el proveedor, así toma el emisor de la factura como el nombre del proveedor
 %<repdos|reptres>%%  (\Proveedor) Especificando el nombre del proveedor para el encabezado del reporte
 %
-%<factocho|factnueve>%%  Sin especificar fecha para que tome la del día
+%<factdiez>%%  Sin especificar fecha para que tome la del día.
+%<factnueve>%%  Con nota interna automática por el descuento en pagos electrónicos.
+%<factdiez>%%  Con nota interna automática con el monto en Bs.S dada la fecha de emisión de la factura antes del cambio en la moneda el dia 04-06-2018.
 %
 %<factcuatro>%%  (\Fecha*) Suministrando la fecha según formato de datetime2 sin alterar cómo sale escrita
 %<facttres>%%  (\FormatoFecha) Cambiando el separador de la fecha para que salga escrita dd/mm/yyyy
@@ -4550,9 +4662,9 @@
 %<factseis>%%  (\FormatoFecha) Cambiando el formato para que la fecha salga escrita en el formato default de datetime2 pero cambiando el separador yyyy/mm/dd
 %<factocho>%%  Redefiniendo el formato de la fecha (redefiniendo macros \@@Fecha y \@EstiloFecha)
 %
-%<factnueve>%%  (\Credito) Especificando la cantidad días para el crédito
+%<factnueve>%%  (\Credito) Especificando la cantidad de días para el crédito
 %<facttres>%%  (\DescuentoE y \DescuentoG) Con descuentos totales en porcentajes para exentos y gravables con IVA general
-%<factocho>%%  (\Descuento*) Con descuentos totales en moneda aplicables por igual a todos los tipos de elementos existentes
+%<factocho>%%  (\Descuento*) Con descuentos totales en moneda (y no en porcentajes) aplicables por igual a todos los tipos de elementos existentes
 %<prefac>%%  (\Descuento) Con descuentos totales en porcentaje aplicables por igual a todos los tipos de elementos existentes
 %
 %<factsiete>%%  Redefiniendo el texto para la cantidad (redefiniendo macro \@@Cantidad)
@@ -4575,9 +4687,9 @@
 %<factdos|factcinco>%%  (\SepDatosResumen) Alterando la separación horizontal entre los datos del cliente y el resumen
 %<factdos|facttres|factseis>%%  (\SepEncabezado) Alterando el margen interno desde el contorno hasta el texto en el encabezado
 %<factnueve>%%  (\SepNotaPrevia) Alterando el margen interno desde el contorno hasta el texto en la nota previa
-%<factdos|factcuatro>%%  (\SepItemsExtra) Agregando una separación extra entre los ítems en la factura
 %<factdos|factseis>%%  (\SepDescripcion) Alterando la distancia desde el contorno hasta el texto en la descripción
 %<factnueve>%%  (\SepCondiciones) Especificando la distancia desde el contorno hasta el texto de las condiciones, predeterminadamente sin contorno
+%<factdos|factcuatro>%%  (\SepItemsExtra) Agregando una separación extra entre los ítems en la factura
 %<factsiete>%%  (\SepFilas) Alterando la separación horizontal y vertical entre los totales en el modo de filas
 %<facttres|factsiete>%%  (\LineaEncabezado) Alterando la línea de las cajas del encabezado, la curvatura en la esquina y la sombra
 %<factdiez>%%  (\LineaNotaPrevia) Alterando la línea de la nota previa, para desaparecerla
@@ -4594,7 +4706,6 @@
 %<facttres|factcuatro|factseis|factsiete|prefac|cotiza|repuno|repdos>%%  Sin resumen
 %<factcuatro|factnueve|factdiez>%%  (\NotaPrevia) Con nota previa
 %<factocho>%%  (\NotaInterna) Con nota interna
-%<factnueve|factdiez>%%  Con nota interna predeterminada por usar opción ‘electro’
 %<factnueve>%%  (\NotaExterna) Con nota externa
 %
 %<factdos|facttres>%%  Con artículos gravados con todos los IVA
@@ -4607,7 +4718,9 @@
 %<factseis|repdos>%%  Con etiquetas y referencias
 %
 %<repuno>%%  (\FirmaReporte) Agregando en el reporte la línea para firmar a mano
-%<factocho|repdos|reptres>%%  (\FirmaReporte) Agregando la firma escaneada en el reporte
+%<factocho|repdos|reptres>%%  (\FirmaReporte) Agregando la firma escaneada en el reporte; ajustando el corrimiento en “y” de la firma respecto a la línea
+%<repdos|reptres>%%  Cambiando la ubicación en “x” de la línea de la firma y cambiando la longitud de la línea hacia los lados
+%<reptres>%%  Cambiando el nombre de la persona que va a firmar
 %%</desc>
 %%
 %<factuno>\documentclass{factura}
@@ -4636,13 +4749,16 @@
 %<factdos|factseis>sinlineasve,
 %<facttres|factcuatro>sinlineasvi,
 %<factdiez>sinlineasv,
-%<factcuatro>sinlineashi,
-%<factseis>sinlineashe,
+%<factdos>sinlineahtot,
+%<factcuatro>sinlineahtit,
+%<factseis>sinlineashi,
+%<factsiete>sinlineashe,
+%<factnueve>sinlineahni,
 %<factdiez>sinlineash,
 %<facttres|factcinco>conlineasha,
 %<factcinco|factocho>sinexpandir,
 %<facttres|factcuatro|prefac>expandecuadro,
-%<facttres|prefac>linea,
+%<factcuatro|prefac>linea,
 %<facttres>impdesc,
 %<factdos>centradesc,
 %<factsiete>sinmarcas,
@@ -4650,7 +4766,6 @@
 %<factnueve>G,
 %<factocho>siniva,
 %<factnueve>electro,
-% factdiez también lleva 'electro' pero desde una opción.
 %<factdos>unafirma,
 %<prefac|cotiza>% dosfirmas, % para poner las dos firmas.
 %<prefac>% unafirma, % para poner la firma del emisor.
@@ -4661,7 +4776,7 @@
 %<factdiez>csv, % luego queda sin efecto con \csvfalse en el preámbulo
 %<!factuno>]{factura}
 
-%<factdiez>\electrotrue \vencimientotrue \filasfalse \csvfalse
+%<factdiez>\vencimientotrue \filasfalse \csvfalse
 %<factdiez>
 \input{factura-ejemplo-aux.tex}% Se incluye para efectos del ejemplo, así tendremos disponible la macro \Ejemplo.
 \usepackage[utf8]{inputenc}
@@ -4725,10 +4840,10 @@
 %<factcinco>\FormatoFecha[yyyymmdd]{ddmmyyyy}{.}
 %<facttres>\FormatoFecha{ddmmyyyy}{/}
 %<factseis>\FormatoFecha{default}{/}
-%<!factcuatro&!factcinco&!factocho&!factnueve>\Fecha{06-11-2018}
-%<factocho|factnueve>% \Fecha{06-11-2018}
-%<factcuatro>\Fecha*{2018}{11}{06}
-%<factcinco>\Fecha{20181106}
+%<!factcuatro&!factcinco&!factdiez>\Fecha{17-11-2018}
+%<factcuatro>\Fecha*{2018}{11}{17}
+%<factcinco>\Fecha{20181117}
+%<factdiez>% \Fecha{17-11-2018}
 %<factsiete|factocho>
 %<factsiete|factocho>\makeatletter
 %<factocho> \renewcommand{\@@Fecha}{\slshape FECHA:}
@@ -4810,7 +4925,7 @@
 %<!reptres>
 %<!reptres>\begin{factura}
 %<!factdos&!factcinco&!factseis&!factsiete&!factdiez&!repdos&!reptres&!beispiel> \Item{1}{ítem con IVA general}{1000}
-%<factseis|repdos> \Item{2}{ítem con IVA general}{1000}\label{primeritem}
+%<factseis|repdos> \Item{2}{ítem con IVA general}{1000}[Un ítem que ofrecemos a precio de costo y que está gravado con IVA general]\label{primeritem}
 %<factdiez>  \Item{1}{ítem con IVA general}{2000000}
 %<factuno|factcuatro|repdos> \Item{4}{otro ítem con IVA general}{100}
 %<factseis> \Item{10}{otro ítem con IVA general (descripción larga para mostrar el cambio de línea)}{1000}
@@ -4849,15 +4964,16 @@
 %<repdos>
 %<factseis|repdos> Se facturaron en total \arabic{NumItem} artículos.
 %<factseis|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 subtotal por este elemento de \Moneda\subtref{primeritem}; el descuento en ese artículo es del \dctoref{primeritem}\%, dando un total de \Moneda\ptref{primeritem}, y esta gravado con IVA de \ivaref{primeritem}\%.
+%<factseis|repdos> En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} “\descref{primeritem}”, cada uno por un valor de \Moneda~\puref{primeritem}, dando un subtotal por este elemento de \Moneda~\subtref{primeritem}; el descuento en ese artículo es del \dctoref{primeritem}\%, dando un total de \Moneda~\ptref{primeritem}, y esta gravado con IVA de \ivaref{primeritem}\%. Ampliando la descripción podemos decir que este ítem es: “\ldescref{primeritem}”.
 %<factseis|repdos>
-%<factseis|repdos> La base imponible total de esta factura es de \Moneda\numprint\BIG; el IVA es de \Moneda\numprint\AlicuotaG, el descuento presidencial en el IVA es de \Moneda\numprint\AlicuotaGDesc, y el total final es de \Moneda\numprint\Total.
+%<factseis|repdos> La base imponible total de esta factura es de \Moneda~\numprint\BIG; el IVA es de \Moneda~\numprint\AlicuotaG, el descuento presidencial en el IVA es de \Moneda~\numprint\AlicuotaGDesc, y el total final es de \Moneda~\numprint\Total.
 %<factseis|repdos>
 %<factseis|repdos> % Estas son todas las macros para las totalizaciones: \BIG, \BIR, \BIA, \BIE, \AlicuotaG, \AlicuotaGDesc, \AlicuotaR, \AlicuotaA, \SubtG, \SubtR, \SubtA, \SubtE, \DescG, \DescR, \DescA, \DescE.
 %<factseis>}
 %<repuno> \vspace{1.5cm}\FirmaReporte
-%<factocho|repdos> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt]
-%<reptres> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt]{el que firma}[5cm][0.5cm]
+%<factocho> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt]
+%<repdos> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt][3cm][3cm]
+%<reptres> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt]{el que firma}[4cm][0.8cm]
 %<factcinco|factocho|repuno|repdos|reptres>\end{reporte}
 
 %% Este es un comando auxiliar suministrado por factura-ejemplo-aux.tex para escribir el detalle del ejemplo en la última hoja.

Modified: trunk/Master/texmf-dist/tex/latex/factura/factura.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/factura/factura.cls	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/tex/latex/factura/factura.cls	2018-05-23 22:07:19 UTC (rev 47816)
@@ -37,9 +37,9 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
 \ProvidesClass{factura}
-[2018/04/17 v3.47
+[2018/05/22 v3.56
 Clase para elaborar facturas legales
-en la República Bolivariana de Venezuela.
+en la Repu'blica Bolivariana de Venezuela.
 ]
 
 \RequirePackage{etoolbox}%  'etoolbox' para los condicionales binarios y para \AtEndPreamble.
@@ -52,7 +52,9 @@
 \newbool{SinCantidad}
 \newbool{SinLineasVertInt}
 \newbool{SinLineasVertExt}
-\newbool{SinLineasHoriInt}
+\newbool{SinLineaHoriNI}
+\newbool{SinLineaHoriTit}
+\newbool{SinLineaHoriTot}
 \newbool{SinLineasHoriExt}
 \newbool{DCU}
 \newbool{DUC}
@@ -102,6 +104,9 @@
 \newif\ifsinfirmas
 \newif\ifsiniva
 \newif\ifsinivaexpresado
+\newif\ifsinlineahni
+\newif\ifsinlineahtit
+\newif\ifsinlineahtot
 \newif\ifsinlineash
 \newif\ifsinlineashe
 \newif\ifsinlineashi
@@ -129,9 +134,11 @@
 \newif\if at FondoReporteStar
 \newif\if at Nombre
 \newif\if at PruebaRef
-\newif\if at LineaCompleta
+\newif\if at ExpandeCuadro
+\newif\if at LineaDesdeInicio
 \newif\if at LineaHastaTotal
-\newif\if at LineaDesdeInicio
+\newif\if at LineaHastaFinal
+\newif\if at LineaDescripcion
 \newif\if at BIR
 \newif\if at BIA
 \newif\if at Exento
@@ -152,6 +159,7 @@
 \newlength{\@TamLineaFirmas}
 \newlength{\@TamNumItem}
 \newlength{\@TamCantidad}
+\newlength{\@TamDescripcion}
 \newlength{\@TamPrecioU}
 \newlength{\@TamPrecioS}
 \newlength{\@TamDescuento}
@@ -212,6 +220,8 @@
 \newlength{\@FirmaReportePosX}
 \newlength{\@FirmaReporteExcesoLinea}
 \newlength{\@TempDimen}
+\newlength{\tabcolsep@@}
+\newlength{\baselineskip@@}
 
 %% Cajas para uso interno.
 \newbox{\@CajaDatos}
@@ -257,7 +267,7 @@
 \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{impdesc}{\impdesctrue}%  Para el tipo de impuesto en la descripción y no en el precio unitario y total.
 \DeclareOption{iva}{\ivatrue}%  Para la columna del IVA.
-\DeclareOption{linea}{\lineatrue}%  Para la línea que protege el espacio en blanco.
+\DeclareOption{linea}{\lineatrue}%  Para la línea que inutiliza el espacio en blanco.
 \DeclareOption{nospanish}{\nospanishtrue}%  No carga babel en castellano ni la codificación T1 de las letras.
 \DeclareOption{numitem}{\numitemtrue}%  Para poner una columna extra al principio con el número del ítem.
 \DeclareOption{prefactura}{\prefacturatrue}%  La prefactura; con el diseño de la forma libre... para enviar por correo electrónico, fax o imprimir preliminarmente.
@@ -266,6 +276,9 @@
 \DeclareOption{sinfirmas}{\sinfirmastrue}%  No agrega los espacios para firmar.
 \DeclareOption{sinivaexpresado}{\sinivaexpresadotrue}%  Cuando no se cobra IVA y tampoco se quiere que aparezca la totalización del IVA.
 \DeclareOption{siniva}{\sinivatrue}%  No cobra IVA.
+\DeclareOption{sinlineahni}{\sinlineahnitrue}%  Estilo 'sinlineahni'.
+\DeclareOption{sinlineahtot}{\sinlineahtottrue}%  Estilo 'sinlineahtot'.
+\DeclareOption{sinlineahtit}{\sinlineahtittrue}%  Estilo 'sinlineahtit'.
 \DeclareOption{sinlineashe}{\sinlineashetrue}%  Estilo 'sinlineashe'.
 \DeclareOption{sinlineashi}{\sinlineashitrue}%  Estilo 'sinlineashi'.
 \DeclareOption{sinlineash}{\sinlineashtrue}%  Estilo 'sinlineash'.
@@ -301,6 +314,7 @@
 \RequirePackage{environ}%  Con 'environ' podemos usar tabularx dentro del ambiente de la factura y escribir texto en el enddef.
 \RequirePackage{fancyhdr}%  Las cabeceras fancy; así se use solamente en reporte, hay que cargarlo siempre.
 \RequirePackage[calc]{datetime2}%  Para calcular la fecha del vencimiento del crédito.
+\RequirePackage{anyfontsize}%  Para las tipografías en tamaños arbitrarios.
 \RequirePackage{ifxetex}%  Para poder modificar correctamente la metadata del PDF y agregar la versión de la clase.
 \RequirePackage{ifluatex}%  Ditto.
 \RequirePackage{zref-savepos}[2016/05/21]%  Para guardar la posición en 'Y' expandiendo el cuadro, para la línea y para la firma en el reporte si la hubiera.
@@ -361,8 +375,18 @@
  \ifsinlineasv\booltrue{SinLineasVertExt}\booltrue{SinLineasVertInt}\fi
  \ifsinlineasvi\booltrue{SinLineasVertInt}\fi
  \ifsinlineasve\booltrue{SinLineasVertExt}\fi
- \ifsinlineash\booltrue{SinLineasHoriExt}\booltrue{SinLineasHoriInt}\fi
- \ifsinlineashi\booltrue{SinLineasHoriInt}\fi
+ \ifsinlineash\booltrue{SinLineasHoriExt}\booltrue{SinLineaHoriNI}\booltrue{SinLineaHoriTit}\booltrue{SinLineaHoriTot}\fi
+ \ifsinlineashi\booltrue{SinLineaHoriNI}\booltrue{SinLineaHoriTit}\booltrue{SinLineaHoriTot}\fi
+ \ifsinlineahni\booltrue{SinLineaHoriNI}\fi
+ \ifsinlineahtit\booltrue{SinLineaHoriTit}\fi
+ \ifsinlineahtot
+  \iffilas
+   \CLASSWARNING{Las opciones 'sinlineahtot' y 'filas' no son compatibles. Sin efecto opcio'n 'sinlineahtot'}
+   \sinlineahtotfalse
+  \else
+   \booltrue{SinLineaHoriTot}
+  \fi
+ \fi
  \ifsinlineashe\booltrue{SinLineasHoriExt}\fi
 
  \ifdosfirmas
@@ -411,11 +435,11 @@
   \booltrue{SinCantidad}
   \ifdcu
    \dcufalse\@cdutrue\boolfalse{DCU}\boolfalse{PrimeroDescripcion}
-   \CLASSWARNING{La opción 'sincantidad' no es compatible con 'dcu'. Sin efecto opción 'dcu'}
+   \CLASSWARNING{La opcio'n 'sincantidad' no es compatible con 'dcu'. Sin efecto opcio'n 'dcu'}
   \fi
   \ifduc
    \ducfalse\@cdutrue\boolfalse{DUC}\boolfalse{PrimeroDescripcion}
-   \CLASSWARNING{La opción 'sincantidad' no es compatible con 'duc'. Sin efecto opción 'duc'}
+   \CLASSWARNING{La opcio'n 'sincantidad' no es compatible con 'duc'. Sin efecto opcio'n 'duc'}
   \fi
  \fi
  \ifdescuentos\booltrue{Descuentos}\fi
@@ -424,7 +448,7 @@
   \ifdescuentos
    \booltrue{Subtotal}
   \else
-   \CLASSWARNING{La opción 'subtotal' no aplica sin descuentos individuales. Sin efecto opción 'subtotal'}
+   \CLASSWARNING{La opcio'n 'subtotal' no aplica sin descuentos individuales. Sin efecto opcio'n 'subtotal'}
   \fi
  \fi
 
@@ -432,11 +456,11 @@
  \ifsintotales
   \iffilas
    \filasfalse
-   \CLASSWARNING{La opción 'sintotales' no aplica para el modo de totalización en filas. Sin efecto opción 'filas'}
+   \CLASSWARNING{La opcio'n 'sintotales' no aplica para el modo de totalizacio'n en filas. Sin efecto opcio'n 'filas'}
   \fi
   \ifcotizacion
   \else
-   \CLASSWARNING{La opción 'sintotales' no debe usarse en facturas sino en cotizaciones. No es válida una factura sin totales}
+   \CLASSWARNING{La opcio'n 'sintotales' no debe usarse en facturas sino en cotizaciones. No es va'lida una factura sin totales}
   \fi
  \fi
 
@@ -444,13 +468,13 @@
   \iffilas
   \else
    \centradofalse
-   \CLASSWARNING{La opción 'centrado' no es compatible con el modo de totalización en columnas. Sin efecto opción 'centrado'}
+   \CLASSWARNING{La opcio'n 'centrado' no es compatible con el modo de totalizacio'n en columnas. Sin efecto opcio'n 'centrado'}
   \fi
  \fi
  \ifagrupado
   \iffilas
    \agrupadofalse
-   \CLASSWARNING{La opción 'agrupado' no es compatible con el modo de totalización en filas. Sin efecto opción 'agrupado'}
+   \CLASSWARNING{La opcio'n 'agrupado' no es compatible con el modo de totalizacio'n en filas. Sin efecto opcio'n 'agrupado'}
   \fi
  \fi
 
@@ -457,11 +481,11 @@
  \ifelectro
   \booltrue{Electro}
   \gdef\@NotaInterna{\@TextoDescuentoPresidencial}
-  \CLASSWARNING{Ya no está vigente el descuento en la alícuota general. Aplicándolo igual como se pidió}
-  \CLASSINFO{Se estableció el texto aclaratorio del descuento presidencial como 'nota interna'}
+  \CLASSWARNING{Ya no esta' vigente el descuento en la ali'cuota general. Aplica'ndolo igual como se pidio'}
+  \CLASSWARNING{Se establecio' el texto aclaratorio del descuento presidencial como 'nota interna'}
   \iffilas
    \filasfalse
-   \CLASSWARNING{La opción 'electro' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'}
+   \CLASSWARNING{La opcio'n 'electro' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'}
   \fi
  \fi
 
@@ -470,7 +494,7 @@
  \ifsinivaexpresado
   \iffilas
    \filasfalse
-   \CLASSWARNING{La opción 'sinivaexpresado' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'}
+   \CLASSWARNING{La opcio'n 'sinivaexpresado' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'}
   \else
    \AtBeginDocument{\gdef\@ImpuestoG{0}\gdef\@ImpuestoR{0}\gdef\@ImpuestoA{0}}
   \fi
@@ -479,7 +503,7 @@
  \iflinea
   \ifexpandecuadro
   \else
-   \CLASSWARNING{La opción 'linea' requiere la opción 'expandecuadro'. Activando la opción 'expandecuadro'}
+   \CLASSWARNING{La opcio'n 'linea' requiere la opcio'n 'expandecuadro'. Activando la opcio'n 'expandecuadro'}
    \expandecuadrotrue
   \fi
  \fi
@@ -487,8 +511,13 @@
  \ifnospanish
  \else
   \RequirePackage[spanish]{babel}%  Babel en castellano.
-  \RequirePackage[T1]{fontenc}%  Codificación T1 para las tipografías.
-  \IfFileExists{lmodern.sty}{\RequirePackage{lmodern}}{}
+  \ifxetex
+  \else
+   \ifluatex
+   \else
+    \RequirePackage[T1]{fontenc}%  Codificación T1 para las tipografías; no aplica para XeLaTeX ni LuaLaTeX.
+   \fi
+  \fi
  \fi
 
  \ifexpandecuadro
@@ -507,7 +536,7 @@
   \@reportetrue
   \ifsoloreporte
    \soloreportefalse
-   \CLASSWARNING{La opción 'soloreporte' no es compatible con 'conreporte'. Sin efecto 'soloreporte'}
+   \CLASSWARNING{La opcio'n 'soloreporte' no es compatible con 'conreporte'. Sin efecto 'soloreporte'}
   \fi
  \fi
  \ifsoloreporte\@reportetrue\@facturafalse\@reversofalse\fi
@@ -518,7 +547,7 @@
    \ifsintotales\else\AtEndDocument{\@EscribeTotalesEnCSV}\fi
   \else
    \csvfalse
-   \CLASSWARNING{La opción 'csv' require generar la factura. Sin efecto opción 'csv'}
+   \CLASSWARNING{La opcio'n 'csv' require generar la factura. Sin efecto opcio'n 'csv'}
   \fi
  \fi
 
@@ -529,49 +558,52 @@
  \fi
 
  % Escribimos en el .log las opciones cargadas:
- \ifagrupado \CLASSINFO{Opción cargada: agrupado}\fi
- \ifcentradesc \CLASSINFO{Opción cargada: centradesc}\fi
- \ifcentrado \CLASSINFO{Opción cargada: centrado}\fi
- \ifconlineasha \CLASSINFO{Opción cargada: conlineasha}\fi
- \ifconreporte \CLASSINFO{Opción cargada: conreporte}\fi
- \ifcotizacion \CLASSINFO{Opción cargada: cotizacion}\fi
- \ifcsv \CLASSINFO{Opción cargada: csv}\fi
- \ifdcu \CLASSINFO{Opción cargada: dcu}\fi
- \ifdenom \CLASSINFO{Opción cargada: denom}\fi
- \ifdescuentos \CLASSINFO{Opción cargada: descuentos}\fi
- \ifdosfirmas \CLASSINFO{Opción cargada: dosfirmas}\fi
- \ifduc \CLASSINFO{Opción cargada: duc}\fi
- \ifelectro \CLASSINFO{Opción cargada: electro}\fi
- \ifexpandecuadro \CLASSINFO{Opción cargada: expandecuadro}\fi
- \iffilas \CLASSINFO{Opción cargada: filas}\fi
- \ifG \CLASSINFO{Opción cargada: G}\fi
- \ifimpdesc \CLASSINFO{Opción cargada: impdesc}\fi
- \ifiva \CLASSINFO{Opción cargada: iva}\fi
- \iflinea \CLASSINFO{Opción cargada: linea}\fi
- \ifnospanish \CLASSINFO{Opción cargada: nospanish}\fi
- \ifnumitem \CLASSINFO{Opción cargada: numitem}\fi
- \ifprefactura \CLASSINFO{Opción cargada: prefactura}\fi
- \ifsincantidad \CLASSINFO{Opción cargada: sincantidad}\fi
- \ifsinexpandir \CLASSINFO{Opción cargada: sinexpandir}\fi
- \ifsinfirmas \CLASSINFO{Opción cargada: sinfirmas}\fi
- \ifsiniva \CLASSINFO{Opción cargada: siniva}\fi
- \ifsinivaexpresado \CLASSINFO{Opción cargada: sinivaexpresado}\fi
- \ifsinlineash \CLASSINFO{Opción cargada: sinlineash}\fi
- \ifsinlineashe \CLASSINFO{Opción cargada: sinlineashe}\fi
- \ifsinlineashi \CLASSINFO{Opción cargada: sinlineashi}\fi
- \ifsinlineasv \CLASSINFO{Opción cargada: sinlineasv}\fi
- \ifsinlineasve \CLASSINFO{Opción cargada: sinlineasve}\fi
- \ifsinlineasvi \CLASSINFO{Opción cargada: sinlineasvi}\fi
- \ifsinmarcas \CLASSINFO{Opción cargada: sinmarcas}\fi
- \ifsinnumero \CLASSINFO{Opción cargada: sinnumero}\fi
- \ifsinreverso \CLASSINFO{Opción cargada: sinreverso}\fi
- \ifsintotales \CLASSINFO{Opción cargada: sintotales}\fi
- \ifsoloreporte \CLASSINFO{Opción cargada: soloreporte}\fi
- \ifsubtotal \CLASSINFO{Opción cargada: subtotal}\fi
- \iftodosiva \CLASSINFO{Opción cargada: todosiva}\fi
- \iftwoside \CLASSINFO{Opción cargada: twoside}\fi
- \ifunafirma \CLASSINFO{Opción cargada: unafirma}\fi
- \ifvencimiento \CLASSINFO{Opción cargada: vencimiento}\fi
+ \ifagrupado \CLASSINFO{Opcio'n cargada: agrupado}\fi
+ \ifcentradesc \CLASSINFO{Opcio'n cargada: centradesc}\fi
+ \ifcentrado \CLASSINFO{Opcio'n cargada: centrado}\fi
+ \ifconlineasha \CLASSINFO{Opcio'n cargada: conlineasha}\fi
+ \ifconreporte \CLASSINFO{Opcio'n cargada: conreporte}\fi
+ \ifcotizacion \CLASSINFO{Opcio'n cargada: cotizacion}\fi
+ \ifcsv \CLASSINFO{Opcio'n cargada: csv}\fi
+ \ifdcu \CLASSINFO{Opcio'n cargada: dcu}\fi
+ \ifdenom \CLASSINFO{Opcio'n cargada: denom}\fi
+ \ifdescuentos \CLASSINFO{Opcio'n cargada: descuentos}\fi
+ \ifdosfirmas \CLASSINFO{Opcio'n cargada: dosfirmas}\fi
+ \ifduc \CLASSINFO{Opcio'n cargada: duc}\fi
+ \ifelectro \CLASSINFO{Opcio'n cargada: electro}\fi
+ \ifexpandecuadro \CLASSINFO{Opcio'n cargada: expandecuadro}\fi
+ \iffilas \CLASSINFO{Opcio'n cargada: filas}\fi
+ \ifG \CLASSINFO{Opcio'n cargada: G}\fi
+ \ifimpdesc \CLASSINFO{Opcio'n cargada: impdesc}\fi
+ \ifiva \CLASSINFO{Opcio'n cargada: iva}\fi
+ \iflinea \CLASSINFO{Opcio'n cargada: linea}\fi
+ \ifnospanish \CLASSINFO{Opcio'n cargada: nospanish}\fi
+ \ifnumitem \CLASSINFO{Opcio'n cargada: numitem}\fi
+ \ifprefactura \CLASSINFO{Opcio'n cargada: prefactura}\fi
+ \ifsincantidad \CLASSINFO{Opcio'n cargada: sincantidad}\fi
+ \ifsinexpandir \CLASSINFO{Opcio'n cargada: sinexpandir}\fi
+ \ifsinfirmas \CLASSINFO{Opcio'n cargada: sinfirmas}\fi
+ \ifsiniva \CLASSINFO{Opcio'n cargada: siniva}\fi
+ \ifsinivaexpresado \CLASSINFO{Opcio'n cargada: sinivaexpresado}\fi
+ \ifsinlineahni \CLASSINFO{Opcio'n cargada: sinlineahni}\fi
+ \ifsinlineahtit \CLASSINFO{Opcio'n cargada: sinlineahtit}\fi
+ \ifsinlineahtot \CLASSINFO{Opcio'n cargada: sinlineahtot}\fi
+ \ifsinlineash \CLASSINFO{Opcio'n cargada: sinlineash}\fi
+ \ifsinlineashe \CLASSINFO{Opcio'n cargada: sinlineashe}\fi
+ \ifsinlineashi \CLASSINFO{Opcio'n cargada: sinlineashi}\fi
+ \ifsinlineasv \CLASSINFO{Opcio'n cargada: sinlineasv}\fi
+ \ifsinlineasve \CLASSINFO{Opcio'n cargada: sinlineasve}\fi
+ \ifsinlineasvi \CLASSINFO{Opcio'n cargada: sinlineasvi}\fi
+ \ifsinmarcas \CLASSINFO{Opcio'n cargada: sinmarcas}\fi
+ \ifsinnumero \CLASSINFO{Opcio'n cargada: sinnumero}\fi
+ \ifsinreverso \CLASSINFO{Opcio'n cargada: sinreverso}\fi
+ \ifsintotales \CLASSINFO{Opcio'n cargada: sintotales}\fi
+ \ifsoloreporte \CLASSINFO{Opcio'n cargada: soloreporte}\fi
+ \ifsubtotal \CLASSINFO{Opcio'n cargada: subtotal}\fi
+ \iftodosiva \CLASSINFO{Opcio'n cargada: todosiva}\fi
+ \iftwoside \CLASSINFO{Opcio'n cargada: twoside}\fi
+ \ifunafirma \CLASSINFO{Opcio'n cargada: unafirma}\fi
+ \ifvencimiento \CLASSINFO{Opcio'n cargada: vencimiento}\fi
 
  % Cargamos aquí 'geometry' para que sea después de haber establecido 'twoside'.
  \RequirePackage{geometry}}
@@ -675,7 +707,7 @@
 
 %% Nota interna al cuadro de la factura y nota externa a él (que sale antes de \Descripcion).
 \NewDocumentCommand{\NotaInterna}{+m}{%
- \ifdefvoid{\@NotaInterna}{}{\CLASSWARNING{Se sobreescribió la nota interna automática aclaratoria del descuento presidencial}}%
+ \ifdefvoid{\@NotaInterna}{}{\CLASSWARNING{Se sobreescribio' la nota interna previamente definida}}%
  \gdef\@NotaInterna{#1}}
 \NewDocumentCommand{\NotaExterna}{+m}{\gdef\@NotaExterna{#1}}
 
@@ -682,7 +714,7 @@
 \AtBeginDocument{%
  % Si no se especificó fecha, tomamos la de hoy. Además, advertimos cuando el documento se está compilando en una fecha distinta de la fecha establecida en el encabezado.
  \DTMifsaveddate{FechaEmision}{}{%
-  \CLASSWARNING{No se especificó fecha. Asumiendo la fecha de hoy}%
+  \CLASSWARNING{No se especifico' fecha. Asumiendo la fecha de hoy}%
   \DTMsavedate{FechaEmision}{\the\year-\the\month-\the\day}}%
  \DTMsavenow{Ahora}%
  \DTMsaveddatediff{FechaEmision}{Ahora}{\AuxFecha}%
@@ -702,43 +734,46 @@
     \Moneda{\@MonedaBsS}%
    \fi
   \else
+   \LetraNotaInterna{\fontsize{14}{18}}%
+   \NotaInterna{\FPupn\TotalBsS{\Total{} 1000 div \@DigitosMoneda{} round}Según Decreto Presidencial 3.332, el total en Bolívares Soberanos es de {\bfseries \@MonedaBsS~\numprint{\TotalBsS}}}%
+   \CLASSWARNING{Se establecio' el texto aclaratorio sobre el total en Boli'vares Soberanos como una nota interna}%
    \Moneda{\@MonedaBs}%
   \fi
  \fi
 
  % Efectuamos distintos chequeos para dar errores o advertencias si faltó algo.
- \ifdefvoid{\@RazonSocial}{\CLASSERROR{Hay que definir la razón social}}{}%
+ \ifdefvoid{\@RazonSocial}{\CLASSERROR{Hay que definir la razo'n social}}{}%
  \if at reporte
-  \ifdefvoid{\@Num}{\CLASSWARNING{No se especificó el número de la factura. Puede dar error si el título del reporte no se especifica que aparezca en las cabeceras}}{}%
+  \ifdefvoid{\@Num}{\CLASSWARNING{No se especifico' el nu'mero de la factura. Puede dar error si el ti'tulo del reporte no se especifica que aparezca en las cabeceras}}{}%
   \ifdefvoid{\@Proveedor}{%
    \ifdefvoid{\@Emisor}
     {\CLASSERROR{Hay que definir el nombre del proveedor cuando se emite un reporte}}%
-    {\CLASSWARNING{Se toma el emisor como el proveedor por no haberse especificado este último}%
+    {\CLASSWARNING{Se toma el emisor como el proveedor por no haberse especificado este u'ltimo}%
     \let\@Proveedor=\@Emisor}}
    {}%
  \fi
  \if at factura
   \ifdefvoid{\@RIF}{\CLASSERROR{Hay que definir el R.I.F}}{}%
-  \ifdefvoid{\@Direccion}{\CLASSERROR{Hay que definir la dirección fiscal}}{}%
-  \ifdefvoid{\@Telefono}{\CLASSWARNING{Pudiera definirse un número telefónico}}{}%
-  \ifdefvoid{\@Email}{\CLASSWARNING{Pudiera definirse una dirección de correo electrónico}}{}%
+  \ifdefvoid{\@Direccion}{\CLASSERROR{Hay que definir la direccio'n fiscal}}{}%
+  \ifdefvoid{\@Telefono}{\CLASSWARNING{Pudiera definirse un nu'mero telefo'nico}}{}%
+  \ifdefvoid{\@Email}{\CLASSWARNING{Pudiera definirse una direccio'n de correo electro'nico}}{}%
   \ifdefvoid{\@Condiciones}{\CLASSWARNING{Pudieran definirse las condiciones del documento}}{}%
   \ifcotizacion
-   \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opción para cotizacion se recomienda agregar el fondo}}{}%
+   \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opcio'n para cotizacion se recomienda agregar el fondo}}{}%
   \fi
   \ifprefactura
-   \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opción para prefactura se recomienda agregar el fondo}}{}%
+   \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opcio'n para prefactura se recomienda agregar el fondo}}{}%
   \fi
   \ifsinnumero
    \ifcotizacion
    \else
-    \CLASSERROR{La opción para no poner el número sólo es compatible con las cotizaciones}%
+    \CLASSERROR{La opcio'n para no poner el nu'mero so'lo es compatible con las cotizaciones}%
    \fi
   \fi
   \ifdenom
    \ifsinnumero
    \else
-    \ifdefvoid{\@Num}{\CLASSERROR{Hay que definir el número de la factura}}{}%
+    \ifdefvoid{\@Num}{\CLASSERROR{Hay que definir el nu'mero de la factura}}{}%
    \fi
   \fi
  \fi
@@ -1109,6 +1144,7 @@
 %% http://tex.stackexchange.com/questions/296035/insert-a-special-character-at-each-end-of-line-in-a-paragraph
 %% http://tex.stackexchange.com/questions/248944/how-to-put-before-lines
 \newcommand{\@DescripcionAuxCmd}[2]{%
+ \immediate\write\@auxout{\gdef\noexpand\@TamDescripcion{\the\linewidth}}% Para poder establecer la línea diagonal hay que saber el tamaño del campo de la descripción.
  \ifimpdesc\settowidth{\@TempDimen}{\@EscribeTipoDeImpuesto{#2}}\fi
  \savebox{\@CajaPrueba}{%
   \parbox[t]{\linewidth}{%
@@ -1478,7 +1514,9 @@
  \ifbool{SinLineasVertExt}{}{|}}
 
 %% Comando para hacer los cálculos sobre cada ítem y establecer las macros con el contenido de cada ítem introducido.
-\NewDocumentCommand{\@CalculaItem}{m m m o m m}{%
+%% Aquí tenemos que hacer coincidir los parámetros de \@CalculaItem con los de \@ITEM para poder hacer
+%% \let\@CalculaItem\@ITEM cuando no hay factura sino solamente reporte.
+\NewDocumentCommand{\@CalculaItem}{m m m o m m +o}{%
  \addtocounter{NumItem}{1}%
  % Calculamos.
  \FPupn\PrecioU{#5 \@DigitosMoneda{} round}%
@@ -1485,7 +1523,7 @@
  \ifbool{Descuentos}
   {\ifx\\#6\\\FPset\Dcto{0}\else\FPupn\Dcto{#6 \@DigitosPorc{} round clip}\fi}% Fijamos en 0 el descuento si no se especifica en \Item***.
   {\FPset\Dcto{#6}%
-   \FPifeq\Dcto{0}\else\CLASSWARNING{Se pidió un descuento individual sin dar la opción de la clase 'descuentos'. No se tomará en cuenta}\fi
+   \FPifeq\Dcto{0}\else\CLASSWARNING{Se pidio' un descuento individual sin dar la opcio'n de la clase 'descuentos'. No se tomara' en cuenta}\fi
    \FPset\Dcto{0}}% También fijamos en 0 el descuento por si se especifica en \Item*** pero no se pide la opción 'descuentos'.
  \FPupn\PrecioS{#2 \PrecioU{} * \@DigitosMoneda{} round}%
  \FPupn\PrecioT{100 \Dcto{} 100 - / \PrecioS{} * \@DigitosMoneda{} round}%
@@ -1502,6 +1540,7 @@
  \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\gdef\csname @Item@\romannumeral\value{NumItem}@DescripcionLarga\endcsname{#7}%
  \expandafter\global\expandafter\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@IVA\endcsname{%
   \noexpand\numprint\expandafter{\csname @Alicuota#1porc\endcsname}}%
  \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@PrecioT\endcsname{\noexpand\numprint{\PrecioT}}}
@@ -1509,7 +1548,7 @@
 %% Macro interna para saber si una etiqueta existe o no.
 \gdef\@pruebaref#1{%
  \expandafter\ifx\csname @Etiqueta@#1\endcsname\relax
-  \CLASSWARNING{La etiqueta `#1' no está definida}\ignorespaces
+  \CLASSWARNING{La etiqueta `#1' no esta' definida}\ignorespaces
   \@PruebaReffalse
  \else
   \@PruebaReftrue
@@ -1517,7 +1556,7 @@
 
 %% Comandos para las referencias: i) referencia al número de ítem, ii) a la cantidad, iii) a la descripción, iv) al precio unitario, v) al descuento, vi) al precio total.
 \gdef\itemref#1{%
- \ifbool{NumItem}{}{\CLASSWARNING{Es recomendable usar la opción 'numitem' para enumerar los ítems}}%
+ \ifbool{NumItem}{}{\CLASSWARNING{Es recomendable usar la opcio'n 'numitem' para enumerar los i'tems}}%
  \@pruebaref{#1}\if at PruebaRef \csname @Etiqueta@#1\endcsname \fi}
 \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}
@@ -1524,6 +1563,7 @@
 \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\ldescref#1{\@pruebaref{#1}\if at PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @DescripcionLarga\endcsname \fi}
 \gdef\ivaref#1{\@pruebaref{#1}\if at PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @IVA\endcsname \fi}
 \gdef\ptref#1{\@pruebaref{#1}\if at PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioT\endcsname \fi}
 
@@ -1531,13 +1571,13 @@
 \newcommand{\label at factura}[1]{%
  \expandafter\ifx\csname @Etiqueta@#1\endcsname\relax
   \expandafter\global\expandafter\edef\csname @Etiqueta@#1\endcsname{\arabic{NumItem}}\ignorespaces
-  \CLASSINFO{Etiqueta `#1' definida para el ítem \arabic{NumItem}}%
+  \CLASSINFO{Etiqueta `#1' definida para el i'tem \arabic{NumItem}}%
  \else
   \edef\@label at test@uno{\csname @Etiqueta@#1\endcsname}%
   \edef\@label at test@dos{\theNumItem}%
   \ifx\@label at test@uno\@label at test@dos
   \else
-   \CLASSWARNING{La etiqueta `#1' se definió más de una vez}\ignorespaces
+   \CLASSWARNING{La etiqueta `#1' se definio' ma's de una vez}\ignorespaces
   \fi
  \fi}
 
@@ -1555,8 +1595,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{8}{\ifbool{SinLineasVertExt}{}{|} r}\begingroup
-    \noexpand\ifdim \noexpand\ht\noexpand\@CajaEspacioVacio=0pt
-    \noexpand\else
+    \noexpand\if at ExpandeCuadro
      \noexpand\iflinea\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.
      \noexpand\begin{tabular}[b]{@{\noexpand\extracolsep{2\noexpand\tabcolsep}}lr \ifbool{SinLineasVertExt}{}{|}}}
 
@@ -1567,18 +1606,17 @@
    \setlength{\@EspacioVacioFinal}{\zposy{EspacioVacioFinal}sp}%
    \global\@EspacioVacioInicial=\@EspacioVacioInicial% Hay que globalizarlas
    \global\@EspacioVacioFinal=\@EspacioVacioFinal
-   \savebox{\@CajaEspacioVacio}{\parbox[b][\@EspacioVacioInicial-\@EspacioVacioFinal]{0pt}{%
+   \savebox{\@CajaEspacioVacio}{\parbox[b][\@EspacioVacioInicial-\@EspacioVacioFinal]{\@TamDescripcion}{%
     \iflinea
-     \if at LineaCompleta
+     \if at LineaHastaFinal
       \zsaveposy{LineaNodoBCoordY}%
      \else
-      \if at LineaHastaTotal
-      \else
+      \if at LineaDescripcion
        \zsaveposx{LineaNodoACoordX}\mbox{}\hfill \zsaveposx{LineaNodoBCoordX}\zsaveposy{LineaNodoBCoordY}%
       \fi
      \fi
     \fi}}%
-   \ifdim \ht\@CajaEspacioVacio=0pt \global\lineafalse \fi
+   \ifdim \ht\@CajaEspacioVacio=0pt \global\lineafalse \else \@ExpandeCuadrotrue \fi
   \fi
 
   \ifx\undefined\Total\relax\else\CLASSERROR{Parece ya haberse usado un entorno de factura}\fi
@@ -1620,9 +1658,9 @@
    \global\@SeparaItemsExtraFinal=\@SeparaItemsExtraFinal}
   %
   % Comando interno general para agregar cualquier ítem.
-  \NewDocumentCommand{\@ITEM}{m m m o m m}{%
-   % 1. [R|G|A|E|X]; 2. cantidad; 3. descripción; 4. descripción para el csv (entre corchetes); 5. p/u; 6. dcto.
-   \@CalculaItem{##1}{##2}{##3}{##5}{##6}%
+  \NewDocumentCommand{\@ITEM}{m m m o m m +o}{%
+   % 1. [R|G|A|E|X]; 2. cantidad; 3. descripción; 4. descripción para el csv (entre corchetes); 5. p/u; 6. dcto; 7. la descripción para el reporte.
+   \@CalculaItem{##1}{##2}{##3}{##5}{##6}[##7]%
    % Si no es el primer ítem, entonces hace falta \\ para terminar el ítem anterior.
    \ifnum\value{NumItem}=1% Aquí, \@CalculaItem aumenta en 1 el contador NumItem, que si vale 1 significa que aún no hemos procesado la línea 1, es decir, no hay que hacer el salto de línea. La última línea se termina en otro lado.
    \else
@@ -1653,7 +1691,7 @@
    {\@DescripcionAuxCmd{##3}{##1}}% cdu.
    &
    % Cuarto campo: Acá puede ir el precio unitario (cdu y dcu) o la cantidad (duc).
-   \FPifeq\PrecioU{##5}\else\CLASSWARNING{Se está introduciendo un precio con más de dos decimales: (##3 - ##5. Redondeado a \PrecioU)}{}\fi% Advertimos cuando el precio unitario tiene más de dos decimales.
+   \FPifeq\PrecioU{##5}\else\CLASSWARNING{Se esta' introduciendo un precio con ma's de dos decimales: (##3 - ##5. Redondeado a \PrecioU)}{}\fi% Advertimos cuando el precio unitario tiene más de dos decimales.
    \ifbool{SinCantidad}{}{%
     \ifduc
      \David at XRight{\@CantidadAuxCmd{\mbox{}\hfill \@LetraNumeros \numprint{##2}\hfill\mbox{}}}% duc.
@@ -1732,11 +1770,15 @@
   % Usamos la definición de \label at factura dentro del entorno de la factura para que sea local aquí nada más.
   \let\label\label at factura
   \@LetraItems% Este es el tipo de letra que tendrán los ítems, y en este tipo de letra se define el \baselineskip de toda la factura.
+  \setlength{\baselineskip@@}{\baselineskip}%
+  \global\baselineskip@@=\baselineskip@@
   \@FacturaAuxInicioCmd
   \ifbool{SinLineasHoriExt}{}{\hline}%
   \@ZERO
+  \setlength{\tabcolsep@@}{\tabcolsep}%
+  \global\tabcolsep@@=\tabcolsep@@
   % Estamos en el número del ítem, si aplicara.
-  \if at LineaDesdeInicio \hspace*{-\tabcolsep}\zsaveposx{LineaNodoACoordX}\hspace*{\tabcolsep}\fi
+  \if at LineaDesdeInicio \zsaveposx{LineaNodoACoordX}\fi
   \ifbool{NumItem}{\@NumItemAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@NumItem \hfill\mbox{}}}{}%
   &
   % Avanzamos a la cantidad, o la descripción.
@@ -1763,40 +1805,51 @@
   \ifbool{IVA}{\@IVAAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@IVA \hfill\mbox{}}}{}
   &% Avanzamos hasta el precio total.
   \@PrecioTAuxCmd{\mbox{}\hfill \@LetraTitColumnas \ifbool{SinCantidad}{\@@Precio}{\@@PrecioT}\space (\Moneda)\hfill\mbox{}}%
-  \if at LineaCompleta \hspace*{\tabcolsep}\zsaveposx{LineaNodoBCoordX}\hspace*{-\tabcolsep}\fi
+  \if at LineaHastaFinal \zsaveposx{LineaNodoBCoordX}\fi
   \\
-  \ifbool{SinLineasHoriInt}{}{\hline}%
+  \ifbool{SinLineaHoriTit}{}{\hline}%
   %
   #1% Aquí entran todos los items que el usuario declara dentro del ambiente.
+  \@CalculaTotalesI
   \@CalculaSeparaItemsExtraFinal
   \\[\@SeparaItemsExtraFinal]% El último fin de línea se hace aquí.
-  \ifconlineasha\hline\fi% Se verifica si hace falta una línea horizontal o no.
+  \ifconlineasha
+   \ifdefvoid{\@NotaInterna}{%
+    \ifbool{SinLineasHoriExt}{\if at ExpandeCuadro\hline\fi}{\hline}}{\hline}%
+  \fi% Se verifica si hace falta una línea horizontal o no.
   \iffilas
    % Esto en lugar de \ifexpandecuadro para que no se haga una linea vacía en la tabla cuando la caja está vacía.
-   \ifdim \ht\@CajaEspacioVacio=0pt
+   \if at ExpandeCuadro
+    \ifbool{PrimeroDescripcion}{&\usebox{\@CajaEspacioVacio}&&&&&&\\}{&&\usebox{\@CajaEspacioVacio}&&&&&\\}%
+    \ifdefvoid{\@NotaInterna}{}
+    {\ifbool{SinLineaHoriNI}{}{\hline}%
+     \@ColumnasMultiColumnNotaIntAuxCmd}%
+    \ifbool{SinLineasHoriExt}{}{\hline}% Siempre que hay relleno se pone la línea acá.
+   \else
     \ifdefvoid{\@NotaInterna}{%
      \ifbool{SinLineasHoriExt}{}{%
-      \ifconlineasha\else\hline\fi}% Verificamos si hay que poner la línea horizontal. Si está 'conlineasha' ya salió debido a esta opción.
-     }{\@ColumnasMultiColumnNotaIntAuxCmd\ifbool{SinLineasHoriExt}{}{\hline}}%
+      \ifconlineasha\else\hline\fi}}% Verificamos si hay que poner la línea horizontal. Si está 'conlineasha' entonces ya salió la línea.
+     {\ifbool{SinLineaHoriNI}{}{\ifconlineasha\else\hline\fi}%
+      \@ColumnasMultiColumnNotaIntAuxCmd
+      \ifbool{SinLineasHoriExt}{}{\hline}}%
+   \fi
+  \else
+   \ifsintotales
    \else
-    \ifbool{PrimeroDescripcion}{&\usebox{\@CajaEspacioVacio}&&&&&&\\}{&&\usebox{\@CajaEspacioVacio}&&&&&\\}%
-    \ifdefvoid{\@NotaInterna}{}{\@ColumnasMultiColumnNotaIntAuxCmd}%
-    \ifbool{SinLineasHoriExt}{}{\hline}% Siempre que hay relleno se pone la línea acá.
+    \ifbool{SinLineaHoriTot}{}{\ifconlineasha\else\hline\fi}% Línea que cierra los ítems en la tabla.
    \fi
-  \else
-   \ifbool{SinLineasHoriInt}{}{\ifconlineasha\else\hline\fi}% Línea que cierra los ítems en la tabla.
    % Agregamos el espacio espúreo.
-   \ifdim \ht\@CajaEspacioVacio=0pt
-   \else
-    % Rellenamos la tabla con espacio espúreo, y le agregamos las lineas externas, si aplica.
+   \if at ExpandeCuadro
+    % Rellenamos la tabla con espacio espúreo, y le agregamos las líneas externas, si aplica.
     \ifbool{SinLineasVertExt}{\multicolumn{8}{c}{\usebox{\@CajaEspacioVacio}}}{\multicolumn{8}{|c|}{\usebox{\@CajaEspacioVacio}}}\\
    \fi
-   % Si pedimos sin totalizaciones, entonces cerramos la tabla ya, si no, calculamos los totales y los escribimos
+   % Si pedimos sin totalizaciones, entonces cerramos la tabla ya, si no, calculamos los totales y los escribimos.
    \ifsintotales
+    \ifdefvoid{\@NotaInterna}{}{\ifbool{SinLineaHoriNI}{}{\hline}\@ColumnasMultiColumnNotaIntAuxCmd}%
+    \ifbool{SinLineasHoriExt}{}{\hline}%
    \else
-    % Modo de columnas: Abrimos la tabla para escribir los totales, y le agregamos las líneas verticales externas, si aplica.
+    % Modo de columnas: Abrimos la tabla para escribir los totales y le agregamos las líneas verticales externas, si aplica.
     \@ColumnasMultiColumnTotalesAuxCmd
-    \@CalculaTotalesI
     \ifagrupado
      \@EscribeTotalColAgrupado
     \else
@@ -1810,7 +1863,7 @@
     \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\numprint{\Total}\\
     \end{tabular}\endgroup
     \\
-    \ifdefvoid{\@NotaInterna}{}{\@ColumnasMultiColumnNotaIntAuxCmd}%
+    \ifdefvoid{\@NotaInterna}{}{\ifbool{SinLineaHoriNI}{}{\hline}\@ColumnasMultiColumnNotaIntAuxCmd}%
     \ifbool{SinLineasHoriExt}{}{\hline}%
    \fi
   \fi
@@ -1820,7 +1873,6 @@
   \ifsintotales\gdef\Total{}\fi
   % Si pedimos no totalizar (sintotales), la opción filas queda desactivada.
   \iffilas
-   \@CalculaTotalesI
    \@LetraNumTotales
    \vspace*{\@SeparaVertical}\par
    \ifexpandecuadro\else\vfill\fi
@@ -1871,7 +1923,7 @@
       \if at Exento\usebox{\@CajaBIE}\hspace*{\@SeparaMinTotales}\fi\usebox{\@CajaTotal}%
       \ifcentrado\hspace*{\@SepTotales}\fi
      \else% Aquí casi cualquier cosa tiene aspecto feo.
-      \CLASSWARNING{Es mejor no usar la opción de totalización en filas en este caso, o disminuir los tamaños de los tipos de letra para la totalización}%
+      \CLASSWARNING{Es mejor no usar la opcio'n de totalizacio'n en filas en este caso, o disminuir los tama~nos de los tipos de letra para la totalizacio'n}%
       \centering{%
        \begin{tabular}{r@{\hspace*{\@SeparaMinTotales}}l}
         \usebox{\@CajaBIAliR} & \usebox{\@CajaBIAliA} \\[\@SeparaFilas]
@@ -1895,11 +1947,11 @@
   \ifbool{SinCantidad}
   % Definamos todos los comandos \Item***. El descuento es opcional; por eso usamos G{0} en \NewDocumentCommand.
   {%
-   \NewDocumentCommand{\Item}{m o m G{0}}{\@ITEM{G}{1}{#1}[#2]{#3}{#4}}% Ítem normal.
-   \NewDocumentCommand{\ItemR}{m o m G{0}}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{1}{#1}[#2]{#3}{#4}}% Ítem con IVA reducido.
-   \NewDocumentCommand{\ItemA}{m o m G{0}}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{1}{#1}[#2]{#3}{#4}}% Ítem con IVA adicional.
-   \NewDocumentCommand{\ItemE}{m o m G{0}}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{1}{#1}[#2]{#3}{#4}}% Ítem exento de IVA.
-   \NewDocumentCommand{\ItemX}{m o}{\@ITEM{X}{1}{#1}[#2]{0}{0}}% Ítem sin precio.
+   \NewDocumentCommand{\Item}{m o m G{0} +o}{\@ITEM{G}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem normal.
+   \NewDocumentCommand{\ItemR}{m o m G{0} +o}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem con IVA reducido.
+   \NewDocumentCommand{\ItemA}{m o m G{0} +o}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem con IVA adicional.
+   \NewDocumentCommand{\ItemE}{m o m G{0} +o}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem exento de IVA.
+   \NewDocumentCommand{\ItemX}{m o +o}{\@ITEM{X}{1}{#1}[#2]{0}{0}[#3]}% Ítem sin precio.
    \let\ItemG\Item
    \ifcsv
     \ifdescuentos
@@ -1909,11 +1961,11 @@
     \fi
    \fi}
   {%
-   \NewDocumentCommand{\Item}{m m o m G{0}}{\@ITEM{G}{#1}{#2}[#3]{#4}{#5}}% Ítem normal.
-   \NewDocumentCommand{\ItemR}{m m o m G{0}}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{#1}{#2}[#3]{#4}{#5}}% Ítem con IVA reducido.
-   \NewDocumentCommand{\ItemA}{m m o m G{0}}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{#1}{#2}[#3]{#4}{#5}}% Ítem con IVA adicional.
-   \NewDocumentCommand{\ItemE}{m m o m G{0}}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{#1}{#2}[#3]{#4}{#5}}% Ítem exento de IVA.
-   \NewDocumentCommand{\ItemX}{m m o}{\@ITEM{X}{#1}{#2}[#3]{0}{0}}% Ítem sin precio.
+   \NewDocumentCommand{\Item}{m m o m G{0} +o}{\@ITEM{G}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem normal.
+   \NewDocumentCommand{\ItemR}{m m o m G{0} +o}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem con IVA reducido.
+   \NewDocumentCommand{\ItemA}{m m o m G{0} +o}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem con IVA adicional.
+   \NewDocumentCommand{\ItemE}{m m o m G{0} +o}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem exento de IVA.
+   \NewDocumentCommand{\ItemX}{m m o +o}{\@ITEM{X}{#1}{#2}[#3]{0}{0}[#4]}% Ítem sin precio.
    \let\ItemG\Item
    \ifcsv
     \if at cdu
@@ -1943,7 +1995,7 @@
   % Los descuentos totales no son compatibles -y no creo que lo vayan a ser- con el modo de totalización en filas.
   \iffilas
    \if at DescuentoTotal
-    \CLASSWARNING{La opción 'filas' no es compatible con los descuentos totales; sin efecto opción 'filas'}
+    \CLASSWARNING{La opcio'n 'filas' no es compatible con los descuentos totales; sin efecto opcio'n 'filas'}
     \filasfalse
    \fi
   \fi
@@ -1978,9 +2030,13 @@
    % Para determinar las coordenadas de la línea hay que usar \AtBeginShipoutNext porque si no se hace en el 'shipout' de la página se genera un espacio en blanco extra.
    \AtBeginShipoutNext{\iflinea\@DibujaLinea\fi}
     \iffilas
-     \ifbool{SinLineasVertInt}{\@LineaCompletatrue}
+     \ifbool{SinLineasVertInt}{\@LineaDesdeIniciotrue\@LineaHastaFinaltrue}{\@LineaDescripciontrue}%
     \else
-     \@LineaHastaTotaltrue\@LineaDesdeIniciotrue
+     \ifsintotales
+      \@LineaDesdeIniciotrue\@LineaHastaFinaltrue
+     \else
+      \@LineaDesdeIniciotrue\@LineaHastaTotaltrue
+     \fi
     \fi
   \fi
   %% El comando para la descripción del servicio prestado.
@@ -2233,25 +2289,40 @@
 
 %% Comando que coloca la línea diagonal.
 \newcommand{\@DibujaLinea}{%
- \@LetraItems% Volvemos a fijar el \baselineskip de la tabla.
  \setlength{\@LineaNodoXo}{\zposx{LineaNodoACoordX} sp}%
  \setlength{\@LineaNodoYo}{\zposy{LineaNodoBCoordY} sp}%
  \setlength{\@LineaNodoXf}{\zposx{LineaNodoBCoordX} sp}%
  \setlength{\@LineaNodoYf}{\zposy{LineaNodoBCoordY} sp}%
  \addtolength{\@LineaNodoYo}{\@EspacioVacioInicial-\@EspacioVacioFinal}%
+ \if at LineaDesdeInicio
+  \addtolength{\@LineaNodoXo}{-\tabcolsep@@}%
+ \fi
+ \if at LineaHastaFinal
+  \addtolength{\@LineaNodoXf}{\tabcolsep@@}%
+ \fi
  \iffilas
+  \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}%
+  \if at LineaDescripcion
+   \addtolength{\@LineaNodoXo}{-\tabcolsep@@}%
+   \addtolength{\@LineaNodoXf}{\tabcolsep@@}%
+  \fi
  \else
-  \if at DescG \addtolength{\@LineaNodoYo}{2\baselineskip}\fi
-  \if at DescR \if at BIR \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi
-  \if at DescA \if at BIA \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi
-  \if at DescE \if at Exento \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi
-  \addtolength{\@LineaNodoYo}{\baselineskip/2}%
-  \ifsinivaexpresado
+  \ifsintotales
+  \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}%
   \else
-   \addtolength{\@LineaNodoYo}{2\baselineskip}%
-   \if at BIR\addtolength{\@LineaNodoYo}{2\baselineskip}\fi
-   \if at BIA\addtolength{\@LineaNodoYo}{2\baselineskip}\fi
-   \if at Exento\addtolength{\@LineaNodoYo}{\baselineskip}\fi
+   \if at DescG \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi
+   \if at DescR \if at BIR \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi
+   \if at DescA \if at BIA \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi
+   \if at DescE \if at Exento \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi
+   \addtolength{\@LineaNodoYo}{\baselineskip@@}%
+   \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}%
+   \ifsinivaexpresado
+   \else
+    \addtolength{\@LineaNodoYo}{2\baselineskip@@}%
+    \if at BIR\addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi
+    \if at BIA\addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi
+    \if at Exento\addtolength{\@LineaNodoYo}{\baselineskip@@}\fi
+   \fi
   \fi
  \fi
  \iflinea

Modified: trunk/Master/texmf-dist/tex/latex/factura/factura.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/factura/factura.def	2018-05-23 22:06:55 UTC (rev 47815)
+++ trunk/Master/texmf-dist/tex/latex/factura/factura.def	2018-05-23 22:07:19 UTC (rev 47816)
@@ -36,7 +36,7 @@
 %% factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex.
 %% 
 \ProvidesFile{factura.def}
-[2018/04/17 v3.47
+[2018/05/22 v3.56
 Archivo de valores iniciales y condiciones de borde para factura.cls
 ]
 
@@ -68,11 +68,11 @@
 
 %% La moneda:
 \def\@MonedaBs{Bs.}
-\def\@MonedaBsS{BsS.}
+\def\@MonedaBsS{Bs.S}
 
 %% Las fechas de la entrada de la reconversión monetaria:
-\DTMsavedate{FechaBsS}{2018-05-01}
-\DTMsavedate{FechaBs}{2018-06-04}
+\DTMsavedate{FechaBsS}{2018-06-04}
+\DTMsavedate{FechaBs}{2019-01-01}
 
 %% Al lado de cada ítem va la letra que designa el gravamen que aplica sobre él:
 \def\@DenomAlicuotaG{G}
@@ -81,7 +81,7 @@
 \def\@DenomAlicuotaE{(E)}
 
 %% El texto predeterminado para la nota interna por el descuento presidencial.
-\def\@TextoDescuentoPresidencial{Se aplica un descuento del \@AlicuotaGDescPorc\% al IVA General seg\'un Decreto Presidencial 3085 en Gaceta Oficial 41239.}
+\def\@TextoDescuentoPresidencial{Se aplica un descuento del \@AlicuotaGDescPorc\% al IVA General seg\'un Decreto Presidencial 3.085 en Gaceta Oficial 41.239.}
 
 %% Macros que guardan textos que corresponden a nombres de campos:
 \def\@@Fecha{Fecha de emisi\'on:}



More information about the tex-live-commits mailing list