aritmetica en TeX

Alvaro Herrera alvherre en alvh.no-ip.org
Mie Abr 8 23:24:24 CLT 2009


Alvaro Herrera escribió:

> Estoy tratando de hacerme una hoja en TeX para imprimir boletas de
> honorarios y me gustaría hacer aritmética en ellas.  Algo así:

Bien, finalmente lo resolví con ayuda de dos personas que contestaron
fuera de la lista (muchas gracias Pablo Jiménez y Germán Poo) y un buen
rato de búsqueda en el sitio de Tex Users Group tug.org.  Mi solución
final usa dos paquetes LaTeX que antes no conocía: el primero es
fltpoint para hacer los cálculos, de esta forma:

\usepackage{fltpoint}

\fpDecimalSign{.}

\newcommand{\invoiceunitvalue}{250}
\newcommand{\invoicefactor}{0.80}

\fpMul{\invoicevalue}{\invoiceunitvalue}{\invoicefactor}

Eso me define \invoicevalue que tiene el valor de la multiplicación.  Lo
bueno es que ahora puedo editar dos líneas en el archivo y la tabla que
es lo que realmente se imprime (y que tiene un formato de &/%$%& que
prefiero no tener que editar a mano) puedo dejarla tranquila.  Además,
el valor \invoicevalue se usa dos veces, así que me ahorro tener que
poner el número en dos lugares.  (Y además me ahorro tener que abrir un
terminal para ejecutar la calculadora, puesto que TeX se hace cargo de
calcular).

Lo otro es que como los valores se expresan en dólares US, y los gringos
usan dos decimales en sus cantidades de dinero, quiero que el número
aparezca con dos decimales incluso cuando el valor es un entero.  Eso lo
hago con el paquete siunitx:

\usepackage{siunitx}
\sisetup{fixdp,dp=2}

\num{\invoicevalue}


Para beneficio de la lista adjuntaría el .tex completo como ejemplo,
pero como la configuración fascista de esta lista se cepilla los
archivos adjuntos, no lo haré.  (No, tampoco voy a pegar el archivo como
texto en el correo.  Eso sería tonto; ¿para qué existen los adjuntos?)

-- 
Alvaro Herrera                          Developer, http://www.PostgreSQL.org/
"In Europe they call me Niklaus Wirth; in the US they call me Nickel's worth.
 That's because in Europe they call me by name, and in the US by value!"


Más información sobre la lista de distribución Linux