Pàgines

dijous, 27 de desembre del 2018

Facturació amb LaTeX

Ja hem parlat de com fer factures amb LaTeX en l'article Factures professionals amb l'ajuda del paquet invoice. Malauradament aquest paquet no està essent mantingut i ha quedat un xic desfasat. Per això ha aparegut el paquet invoice2, programat en LaTeX3 per substituir-lo.

invoice2 bàsicament el que fa és crear un entorn, anomenat també invoice, que calcula imports i IVAs dels diferents conceptes de la factura, en calcula el subtotal, li afegeix l'IVA i, finalment, calcula el total a pagar. També situa cadascun d'aquests valors en una taula de manera que sigui de fàcil visualització.

L'entorn invoice té aquesta estructura:

\begin{invoice}[opcions]
\invoiceitem[iva en format decimal]{unitats}{concepte}{preu sense iva}
\end{invoice}

Les opcions no són encara molt variades, és un paquet recent, però si tots els articles tenen el mateix tipus d'IVA, permet posar-lo un sol cop a l'encapçalament de la taula. També permet acolorir les files perquè sigui de més fàcil lectura, usar diferent tipus d'unitat monetària, etc.

Vet aquí un exemple d'ús on cada article té un IVA diferent, s'ha acolorit i  s'utilitza l'euro € com a moneda:

\begin{invoice}[currency-symbol={\euro{}},
currency-in-header,
colorize,
even-color={lightgray!50}]
\invoiceitem[.21]{6}{amp. Vi Castell de Siurana}{6.79}
\invoiceitem[.04]{2.75}{Kg Cigrons de Pedrosillo(import)}{3.31}
\invoiceitem[.10]{6}{caixes Galetes Núria}{3.4}
\end{invoice}

A l'exemple hem utilitzat un document creat amb komaletter per situar aquesta factura i donar-li una aparença més agradable. Però es pot situar en qualsevol mena de document.

Com que el paquet no té traducció catalana, l'hem creat i la trobareu en el fitxer invoice2-catalan.trsl contingut en el comprimit invoice2_komaletter.zip que inclou tots els fitxers font (fins i tot el de configuració de la komaletter asymTypB.lco actualitzat).

Podeu veure el resultat fent clic aquí.

diumenge, 4 de febrer del 2018

Caixes de text

A l'entrada Llibre de format actual vam veure com fer caixes per text amb una icona identificativa amb l'ajut del paquet bclogo. Ara veurem una altra manera, molt potent també però amb el paquet tcolorbox que permet definir diferents tipus de caixa en un document i, a més, referenciar-les internament.

Per defecte una caixa amb tcolorbox es crea com un entorn:

\begin{tcolorbox}
 Contingut de la caixa de text
\end{tcolorbox}

A cada caixa se la pot configurar especialment amb la configuració dels paràmetres corresponents.
Però potser és més interessant és definir un nou tipus de caixa de text en el preàmbul del document amb el comandament \newtcolorbox i, al cos del document, cridar-la simplement com si fos un entorn.

Així al preàmbul podem definir una caixa nova:

\newtcolorbox[auto counter,%comptador automàtic
      number within=section,% %numera per seccions: secció.número de caixa
      ]%
      {caixablava}[2][]%nom de la caixa de text
      {colback=blue!5!white,%color de fons
      colframe=blue!75!black,%color del marc
      fonttitle=\bfseries,%tipus de lletra del títol
      breakable,%es pot trencar entre pàgines
      pad at break*=0mm,
      title=Caixa Blava \thetcbcounter: #2,#1}%títol de la caixa: text fix, comptador i text variable

Quan al contingut del document volem que aparegui alguna d'aquestes caixes simplement escriurem aquest codi:

\begin{caixablava}[label=cb:referencia1]{Primera caixa}
    Contingut de la caixa
\end{caixablava}

Observi's que cada caixa pot tenir una etiqueta (label) que en el nostre cas hem identificat amb el prefix cb. S'ha fet així perquè amb l'ajut del paquet \prettyref després es pot referenciar la caixa per aquesta etiqueta (vegeu l'article Millores en les referències creuades amb prettyref).

Es poden definir diferents tipus de caixa per un document. Per exemple: una caixa d'Exemple, d'Atenció. d'ampliació... que només cal definir un cop, al preàmbul, i cridar-la després al contingut del document en el moment en què sigui menester. Si els posem una etiqueta a cada cqaixa després és fàcil referencial-les i adreçar al lector a la caixa i la pàgina on es troba.

Al document font adjunt caixadetext.tex es pot estudiar el codi i veure com definir diferents tipus de caixa. I es pot veure el resultat, i les referències creuades, al document PDF caixadetext.pdf adjunt.