letteracdp e calctab

  • Creatore
    Topic
  • #102626
    Up
    0
    Down
    ::


    Ho finalmente il tempo di progettare un modello di fattura con LaTeX così da ridurre ulteriormente la presenza inquietante di Worz nella mia vita. Avrei pensato a letteracdp e calctab. L’esempio minimo:
    `\documentclass{letteracdp}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[italian]{cdpbabel}
    \usepackage{tabularx}
    \usepackage{calctab}
    \usepackage{layaureo}
    \usepackage{lipsum}
    \usepackage{eurosym}

    \address{Avv.~Tal dei Tali\\
    piazza bo 1\\
    00153 Roma\\
    CF UNCODICEFISCALE\\
    P.IVA UNAPARTITAIVA}

    \signature{Firma}

    \place{Un luogo}
    \begin{document}
    \begin{letter}{Cliente Tal dei Tali\\
    largo mah 1\\
    00153 Roma\\
    CF CF UNCODICEFISCALE\\
    P.IVA UNAPARTITAIVA\\
    }%
    [\textbf{Fattura n.\ 1 del \today}. Pratiche qui, quo e qua.]
    \opening{}

    \begin{calctab}
    \amount[id=qui]{Consulenza pratica Qui}{500}
    \amount[id=quo]{Consulenza pratica Quo}{500}
    \amount[id=qua]{Consulenza pratica Qua}{500}
    \perc[id=cpa]{Contributo cassa di appartanenza}{4}
    \add{Totale complessivo}
    \end{calctab}

    \vspace{2cm}
    {
    \noindent Operazione assoggettata al regime fiscale di vantaggio previsto dall’art. 1, commi 96-117, L. n. 244/2007 come modificata dall'art. 27, commi 1 e 2, del D.L.\ n.\ 98/2011;
    non soggetta ad applicazione di ritenuta d'acconto ai sensi del provvedimento del Direttore Agenzia Entrate n. 185820 del 22/12/2011.
    }

    \closing{}

    \end{letter}
    \end{document}`

    Le perplessità: i) anzitutto, non so perché compare un “Items descriptions” in luogo della prevista “Descrizione voce”; che fare più che caricare italian in babel?
    ii) non riesco a fare una cosa banale come espandere la larghezza di paragrafo dell’ambiente calctab fino a farla coincidere con \textwidth. Ho letto la guida
    (il codice lo trovo però difficile) e anche il bellissimo articolo sempre di Roberto su ArsTeXnica di ottobre 2008. Ma niente. Non mi interessa (tanto) risolvere,
    mi interessa capire quale è il comando che regola questo parametro. iii) Inoltre, per il momento il numero della fattura compare nell’oggetto ma questa soluzione non
    mi piace e ho pensato di mettere questa informazione più in evidenza ma l’ho fatto in modo inelegante annidandola fra i dettagli del destinatario, ovvero (tornando al mio esempio compilabile):
    `\begin{letter}{Cliente Tal dei Tali\
    largo mah 1\\
    00153 Roma\\
    CF CF UNCODICEFISCALE\\
    P.IVA UNAPARTITAIVA\\
    \vspace{1cm}
    Fattura n.\ 1 del \today}`
    Qual è il modo migliore di ottenere questo risultato?
    iv) ancora, mantenendo \opening{}, come è necessario (?), finisco per ripetere due volte una stessa informazione (la data: una appunto in \opening{} e l’altra in Fattura n.\ 1 \today). Secondo voi è tollerabile
    o dovrei eliminare una delle due? Nel caso, quale?
    v) Infine (perplessità tipografica) vorrei inserire un’indicazione circa le modalità di pagamento
    con bonifico bancario e le mie coordinate bancarie. Non vorrei comparissero assieme alle altre informazioni sull’emittente fattura, però. Piuttosto, in fondo alla pagina, magari.
    Non ho trovato alcun modello di fattura convincente online, su questo punto come vi regolate? O come pensate si possa risolvere in modo elegante?
    (P.S. mi rendo conto che la carta intestata è un po’ spartana ma quando avrò tempo dedicherò un po’ di energie a migliorare anche quella.)
    Grazie.

Visualizzazione 10 filoni di risposte
  • Autore
    Risposte
    • #102627
      Up
      0
      Down
      ::


      Proviamo ad andare per approssimazioni successive: io suggerisco una soluzione provvisoria, @furbenzio risponde quanto siamo vicini e in che direzione fare il passo successivo.

      Approssimazione n. 1:
      `\documentclass[noindent]{letteracdp}
      \usepackage[T1]{fontenc}
      \usepackage[utf8]{inputenc}
      \usepackage[italian]{cdpbabel}
      \usepackage{tabularx}
      \usepackage{calctab}
      \usepackage{layaureo}
      % \usepackage{lipsum}
      \usepackage{eurosym}

      \makeatletter

      \newcommand*{\invoice}[2]{%
      \textbf{Fattura n.~#1 del~\@date:} #2%
      }

      \makeatother

      \addto\captionsitalian{\def\subjectname{}}
      \ctdescription{Descrizione voce}

      \address{
      Avv.~Tal dei Tali\\
      Piazza Bo, 1\\
      00153\quad ROMA\quad RM\\[\medskipamount]
      c.f.\@: DTL\,TLA\,65A27\,H501\,Z\\
      P.~IVA\@: 11111111111
      }
      \signature{Firma}

      \place{Un luogo}
      \begin{document}
      \begin{letter}{
      Cliente Tal dei Tali\\
      Largo Mah, 2\\
      00153\quad ROMA\quad RM\\[\medskipamount]
      c.f.\@: DTL\,TLA\,85H01\,H501\,K\\
      P.~IVA\@: 22222222222
      }
      [\invoice{1}{Pratiche Qui, Quo e Qua}]

      \makepresentation

      \begin{calctab}
      \amount[id=qui]{Consulenza pratica Qui}{500}
      \amount[id=quo]{Consulenza pratica Quo}{500}
      \amount[id=qua]{Consulenza pratica Qua}{500}
      \perc[id=cpa]{Contributo cassa di appartanenza}{4}
      \add{Totale complessivo}
      \end{calctab}

      \vspace{2cm}

      {\small Operazione assoggettata al regime fiscale di vantaggio previsto
      dall'art.~1, commi \mbox{96-117}, L.~n.~244/2007 come modificata dall'art.~27,
      commi 1 e~2, del D.L.\ n.\ 98/2011; non soggetta ad applicazione di ritenuta
      d'acconto ai sensi del provvedimento del Direttore Agenzia Entrate n.~185820 del
      22/12/2011.\par}

      \makesignature

      \end{letter}
      \end{document}
      `

      Punti da notare:

      1. L’opzione [tt]noindent[/tt] data alla classe letteracdp sopprime l’indentazione di tutti i capoversi.
      2. Definisco un comando [tt]\invoice[/tt] che “formatta” (perdonate l’anglicismo) l’intestazione della fattura, prelevandone la data dalla macro interna [tt]\@date[/tt]: questo assicura che sia possibile specificare una data alternativa a [tt]\today[/tt], utilizzando la solita dichiarazione [tt]\date[/tt].
      3. Disattivo la scritta “Oggetto:” ridefinendo il comando [tt]\subjectname[/tt] come una stringa vuota; siccome (cdp)babel ripristinerebbe l’impostazione originaria “Oggetto:” al [tt]\begin{document}[/tt], utilizzo [tt]\addto\captionsitalian[/tt]. Volendo, si può fare in modo più elegante.
      4. Non è affatto obbligatorio usare il comando [tt]\opening[/tt]; per esempio, posso usare il comando [tt]\makepresentation[/tt] (senza argomenti), che stampa gli indirizzi e l’oggetto (non la data)
      5. Il testo finale è stampato [tt]\small[/tt] (io opterei anche per [tt]\footnotesize[/tt]). Notare il gruppo [tt]{\small … \par}[/tt], con il comando [tt]\par[/tt] dato prima che il gruppo finisca.
      6. Nemmeno il comando [tt]\closing[/tt] è obbligatorio: [tt]\makesignature[/tt] stampa solo la firma. Proverei anche con l’opzione [tt]signaturerule[/tt] (data alla classe; richiede letteracdp vers. 0.36, disponibile in TeXLive 2015).

      Sentiamo le controdeduzioni… 🙂

      Ciao.


      Gustavo

    • #102628
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::


        Il primo posto dove guardare è naturalmente, la documentazione di calctab.
        Vedrai che trovi i comandi per impostare i parametri.
        Purtroppo calctab non supporta babel e quindi la lingua impostata con questo pacchetto è ininfluente.
        Buona domenica.
        R.

      • #102629
        Up
        0
        Down
        ::


        Ovviamente non posso avere alcuna controdeduzione… Va tutto benissimo. Apprezzo in particoalre il comando \invoice, che velocizza molto, e la soluzione con eliminazione del campo oggetto per evitare la reiterazione della data. Mi piace molto. Grazie.

        Con quale altra piccola modifica nel frattempo apportata, il codice appare ora così:
        `\documentclass[noindent,signaturerule]{letteracdp}
        \usepackage[T1]{fontenc}
        \usepackage[utf8]{inputenc}
        \usepackage[italian]{cdpbabel}
        \usepackage{hyperref}
        \usepackage{tabularx}
        \usepackage{calctab}
        \usepackage{layaureo}
        \usepackage{codicefiscaleitaliano}
        \usepackage{eurosym}
        \usepackage[customletterhead]{cdpaddon}[2015/01/21]
        \usepackage{graphics}
        \usepackage{url}
        \usepackage{fancyhdr}
        %\usepackage{marvosym}
        \usepackage[skins]{tcolorbox}

        \makeatletter
        \newcommand*{\invoice}[2]{\textbf{Fattura n.~#1 del~\@date:} #2}
        \makeatother

        \addto\captionsitalian{\def\subjectname{}}
        \ctdescription{Descrizione voce}

        \newcommand{\marca}{%
        \begin{tcolorbox}[
        rounded corners=all,
        width=3.5cm,
        colframe=gray,
        % borderline={1.5pt}{-5pt}{blue,dotted},%not working!!
        opacityback=0.9,
        opacityframe=0.3,
        opacityupper=0.3,
        left=0.1cm,
        right=0.1cm,
        top=0.1cm,
        bottom=0.1cm
        ]

        \sffamily Apporre marca da bollo da \euro\ 2,00

        \end{tcolorbox}

        }

        \signature{Taldei Tali}

        %\place{Padova} %solo il luogo? senza luogo? bo..

        % Definition of your letterhead occurs here:
        \begin{customletterhead}{0.7\textwidth}
        \centering \huge
        \textsc{\bfseries Avv.~Taldei Tali}
        \end{customletterhead}
        \begin{customletterfoot}{\textwidth}
        \center \footnotesize
        \ruleacrossheadorfoot
        Piazza Eulero 3 00153 Roma\\
        Tel.\ %\Telefon~
        +3934022222222 %\textbullet %opzionale:introduce stacco grafico
        fax\ %\FAX~
        06222222222?? \\
        email: %\MVAt~
        nome.cognome@gmail.com %\textbullet~
        pec: unapec@pec.it\\
        C.F.\@: ZZZ\,VIA\,85H04\,H903\,J\\
        P.~IVA\@: 22222222222\\
        Polizza assicurativa n.\ 22222222
        \end{customletterfoot}

        \begin{document}
        \begin{letterhead}{Cliente Tal dei Tali\\
        Largo Mah, 2\\
        00153\quad ROMA\quad RM\\[\medskipamount]
        C.F.\@: DTL\,TLA\,85H01\,H501\,K\\
        P.~IVA\@: 22222222222}
        [\textbf{Fattura n.\ 1 del \today}. Pratiche qui, quo e qua.]
        \makepresentation
        %\maketopdate\relax %no data:ok; ma no luogo:ok?

        %fattura con calctab non funzionante con riguardo alla lingua
        \begin{calctab}
        \amount[id=qui]{Consulenza pratica Qui}{500}
        \amount[id=quo]{Consulenza pratica Quo}{500}
        \amount[id=qua]{Consulenza pratica Qua}{500}
        \perc[id=cpa]{Contributo cassa di appartanenza}{4}
        \add{Totale complessivo}
        \end{calctab}

        \vspace{2cm}
        {
        \footnotesize Operazione assoggettata al regime fiscale di vantaggio previsto dall'art. 1, commi 96-117, L. n. 244/2007 come modificata dall'art. 27, commi 1 e 2, del D.L.\ n.\ 98/2011;
        non soggetta ad applicazione di ritenuta d'acconto ai sensi del provvedimento del Direttore Agenzia Entrate n. 185820 del 22/12/2011.
        }

        \vspace{2cm}
        \makesignature

        \vspace{2cm}
        \marca

        \end{letterhead}
        \end{document}
        `

        Questioni aperte: i) l’eliminazione della data con makepresentation si porta via anche il luogo. è tollerabile, in un documento come questo, tale mancanza? ii) come modificare l’ampiezza della tabella (vorrei coincidesse con \textwidth); iii) a piè pagina compaiono i riferimenti del mittente. vorrei impiegare i simboli messi a disposizione dal pacchetto marvosym per significare email, tel, fax in luogo delle corrisondenti parole ma ottengo un errore (decommentare ove opportuno per credere): c’è forse qualche interferenza fra marvosym ed eurosym? iv) al riguardo, esiste un’icona per la pec? se no, perché non farne una simile a quella del fax (pacchetto marvosym)? v) [META] come faccio formattare singole parole come “signaturerule” nel post di Gustavo?

        Carlo

      • #102630
        Up
        0
        Down
        ::


        Per completezza, anche a mente dell’intervento di @robitex, va inserito `\ctontraslation{di}` dopo `\ctdescription{Descrizione voce}` Ciao!

        Dimenticavo: se qualcuno avesse una buona idea su come inserire la modalità di pagamento a mezzo bonifico e i riferimenti bancari sarei interessato a conoscerla. Inoltre ho inserito segnaposto per apporre la marca da bollo (che mi dimentico sempre); nella versione attuale, è abbastanza penoso e se pensate si possa fare meglio condividete! Carlo

      • #102631
        Up
        0
        Down
        ::

        letteracdp” post=102512Notare il gruppo [tt]{\small … \par}[/tt], con il comando [tt]\par[/tt] dato prima che il gruppo finisca.

        A cosa serve quella scrittura?

      • #102632
        Up
        0
        Down
        ::

        furbenzio” post=102519

        Notare il gruppo [tt]{\small … \par}[/tt], con il comando [tt]\par[/tt] dato prima che il gruppo finisca.

        A cosa serve quella scrittura?

        A impostare la dimensione [tt]\small[/tt]. Dato che il comando vale dal punto in cui viene dato fino a nuovi comandi di dimensionamento del font, allora è necessario racchiuderlo dentro a un gruppo (che può essere [tt]\begingroup … \endgroup[/tt], due parentesi graffe [tt]{ … }[/tt] o [tt]\bgroup … \egroup[/tt], ci sono alcune lievi differenze tra le tre diverse tipologie, ma in questo caso non sono importanti).

        La giusta osservazione di @letteracdp ti fa notare che occorre dare un comando [tt]\par[/tt] dentro al gruppo. Questo è assolutamente necessario nel caso in cui il gruppo racchiuda delle variazioni nelle dimensioni del testo perché l’avanzamento di linea non viene impostato fino a quando non finisce il capoverso (ossia fino a quando LaTeX non trova una riga vuota o un [tt]\par[/tt]). Se quindi non termini il capoverso prima di chiudere il gruppo, l’avanzamento di linea non verrà impostato in base alla nuova dimensione, ma sarà impostato rispetto all’ultima dimensione in vigore prima dell’apertura del gruppo (in questo caso la dimensione normale).

        Il risultato di tutto ciò si traduce in una scorretta spaziatura del capoverso con dimensione di font diversa (in questo caso eccessiva perché ancora impostata per il font normale e non per il ridotto). Questo aspetto è da tenere bene a mente in tutti i casi in cui alteri la dimensione del font in un capoverso che contiene più righe (per esempio nelle pagine del frontespizio, se decidi di comporlo manualmente)

        Nota la differenza tra i due paragrafi con e senza il [tt]\par[/tt] dentro al gruppo (è necessaria la versione asteriscata di [tt]\kant[/tt] perché la versione normale pone automaticamente un [tt]\par[/tt] al fondo del testo fittizio).
        `
        \documentclass{article}
        \usepackage{kantlipsum}
        \begin{document}
        {\small \kant*[1]\par}

        {\small \kant*[1]}
        \end{document}
        `

      • #102633
        Up
        0
        Down
        ::


        Approssimazione n. 2:

        `\documentclass
        [noindent,italicsignature,signaturerule]
        {letteracdp}
        \usepackage[T1]{fontenc}
        \usepackage[utf8]{inputenc}
        \usepackage[italian]{cdpbabel}
        % \usepackage{tabularx}
        \usepackage

        {eurosym} % also loaded by calctab, but without “left” option
        \usepackage{calctab}
        \usepackage{layaureo}
        % \usepackage{codicefiscaleitaliano} % does not tolerate “\,”
        % Begin excerpt from “marvosym.sty”
        \newcommand{\mvs}{\fontfamily{mvs}\fontencoding{U}%
        \fontseries{m}\fontshape{n}\selectfont}
        \newcommand{\mvchr}[1]{{\mvs\char#1}}
        \newcommand\MVAt {\mvchr{64}}
        \newcommand\FAX {\mvchr{117}}
        \newcommand\Fax {\mvchr{118}} % why not this?
        \newcommand\fax {\mvchr{116}} % or this?
        \newcommand\Telefon{\mvchr{84}}
        % End excerpt from “marvosym.sty”
        \usepackage[customletterhead]{cdpaddon}[2015/01/21]
        % \usepackage{graphics} % … or graphicx? Anyway, not needed for now.
        \usepackage[skins]{tcolorbox}
        % \usepackage{url} % loaded by hyperref
        \usepackage{hyperref}
        % \usepackage{fancyhdr} % ???

        \signature{Taldei Tali}
        \place{Roma}

        \newcommand*{\invoice}[2]{\textbf{Fattura n.~#1:} #2.}
        \newcommand*{\makeinvoicepresentation}{%
        \begin{presentation}%
        \makeaddressee*
        \prevdepth 0pt
        \vspace{-\baselineskip}%
        \makedate\relax
        \nobreak\bigskip
        \noindent\ignorespaces\thesubject\par
        \end{presentation}%
        }

        \ctdescription{Descrizione voce}

        \newcommand{\marca}{%
        \begin{tcolorbox}[
        % rounded corners=all,%
        width=3.5cm,%
        colframe=gray,%
        % borderline={1.5pt}{-5pt}{blue,dotted},%not working!!
        % opacityback=0.9,%
        % opacityframe=0.3,%
        % opacityupper=0.3,%
        left=0.1cm,%
        right=0.1cm,%
        top=0.1cm,%
        bottom=0.1cm%
        ]%
        \hbadness 3000 % avoid “Underfull \hbox …” warning
        \sffamily Apporre marca da bollo da \EUR{2,00}%
        \end{tcolorbox}%
        }
        \renewcommand*{\stopletter}{%
        \begingroup
        \footnotesize
        Operazione assoggettata al regime fiscale di vantaggio previsto
        dall'art.~1, commi \mbox{96-117}, della L.~n.~244/2007 come modificata
        dall'art.~27, commi 1 e~2, del D.L.~n.\ 98/2011;
        non soggetta ad applicazione di ritenuta d'acconto ai sensi del
        provvedimento del Direttore Agenzia Entrate n.~185820 del
        22/12/2011.\par
        \endgroup
        \bigskip\marca
        }

        % Definition of your letterhead occurs here:
        \begin{customletterhead}{\textwidth}
        \centering \huge\bfseries\scshape
        Avv.~Taldei Tali
        \end{customletterhead}
        \begin{customletterfoot}{\textwidth}
        \centering \footnotesize
        \ruleacrossheadorfoot
        Piazza Eulero~3, 00153 Roma —
        Tel.~\Telefon~+3934022222222 \textbullet\ % opzionale: introduce stacco
        % grafico
        fax~\FAX~06222222222??\\
        email~\MVAt~nome.cognome@gmail.com \textbullet\
        pec: unapec@pec.it\\
        \textsc{c.f.}\@:~TLA\,TLD\,85H04\,H903\,H \textbullet\
        \textsc{p.~iva}:~22222222222 \textbullet\
        Polizza assicurativa n.~22222222
        \end{customletterfoot}

        \begin{document}

        \begin{letterhead}{
        Cliente Tal dei Tali\\
        Largo Mah, 2\\
        00153\quad ROMA\quad RM\\[\medskipamount]
        \textsc{c.f.}\@:~DTL\,TLA\,85H01\,H501\,K\\
        \textsc{p.~iva}:~22222222222}
        [\invoice{1}{Pratiche qui, quo e qua}]

        \makeinvoicepresentation

        %fattura con calctab non funzionante con riguardo alla lingua
        \begin{calctab}
        \amount[id=qui]{Consulenza pratica Qui}{500}
        \amount[id=quo]{Consulenza pratica Quo}{500}
        \amount[id=qua]{Consulenza pratica Qua}{500}
        \perc[id=cpa]{Contributo cassa di appartanenza}{4}
        \add{Totale complessivo}
        \end{calctab}

        \bigskip\makesignature

        \end{letterhead}

        \end{document}
        `

        Commenti:

        1. Il pacchetto marvosym ha effettivamente almeno un’incompatibilità con eurosym: entrombi cercano di definire il comando [tt]\EUR[/tt] (con due significati diversi!). Risolvo evitando di caricare marvosym e definendo direttamente i pochi comandi che effettivamente andrò a utilizzare.
        2. Ho tolto un po’ di pacchetti non utilizzati o caricati due volte. Notare che hyperref va caricato per ultimo!
        3. Non è obbligatorio nemmeno iniziare una lettera con [tt]\makepresentation[/tt]. Qui definisco un mio comando [tt]\makeinvoicepresentation[/tt] concepito nel modo seguente:
          1. Innanzitutto, inviluppo tutta la stampa prodotta da [tt]\makeinvoicepresentation[/tt] in un ambiente [tt]presentation[/tt]; quseto consente di confezionare una “presentazione” (la parte iniziale della lettera che normalmente contiene indirizzi e oggetto) fatta come la vogliamo noi. L’ambiente [tt]presentation[/tt] serve ad assicurare che il resto della classe “veda” il nostro contenuto alla stregua di una “presentazione” standard, e lo tratti come tale, cioè come, ripeto, la parte dedicata a indirizzi e oggetto.

          2. Utilizzo il comando [tt]\makeaddressee*[/tt] per produrre l’indirizzo del destinatario; la [tt]*[/tt]-form serve a eliminare, però, la spaziatura che normalmente seguirebbe.
          3. Stampo luogo e data con [tt]\makedate[/tt], preceduto da un trucchetto che allinea la data con l’ultima riga dell’indirizzo.
          4. Stampo l’oggetto. Potrei usare il comando [tt]\makesubject[/tt], ma questo produrrebbe l’oggetto con la formattazione predefinita, che in questo caso non va bene; invece [tt]\thesubject[/tt] mi restituisce il contenuto “grezzo” dell’argomento opzionale dedicato all’oggetto (attenzione: spazi iniziali e finali compresi!), lasciandomi libero di dargli io il formato che voglio. Notare che questa soluzione rende inutile ridefinire [tt]\subjectname[/tt] come la stringa nulla. Un’ultima osservazione: si potrebbe usare un trucco in più per evitare di dover scrivere ogni volta [tt]\invoice[/tt] nell’oggetto, ma ho prefeito evitarlo.

          [/li]

        4. Nel comando [tt]\marca[/tt] ho commentato un po’ di cose che non mi funzionano, probabilmente perché sono al mare e sto usando il computer vecchio, che ha una TeXLive 2013. Ripristinate voi il codice che ritenete opportuno.
        5. Il comando [tt]\stopletter[/tt] contiene codice da eseguire alla fine di ogni lettera; normalmente è vuoto, e va ridefinito con [tt]\renewcommand[/tt].
        6. La classe letteracdp accetta l’opzione [tt]italicsignature[/tt], che fa stampare la firma in corsivo.
        7. [/ol]
          Meta: Per stampare stringhe come [tt]\macro[/tt] bisogna scrivere: [ tt ]\macro[ /tt ], ovviamente senza gli spazi (li ho messi per evitare che il parser interpretasse il markup.

          Ciao.


          Gustavo

    • #102634
      Up
      0
      Down
      ::


      Ok grazie! Con qualche piccola modifica, il risultato al momento è questo:
      `\documentclass
      [noindent,signaturerule]
      {letteracdp}
      \usepackage[T1]{fontenc}
      \usepackage[utf8]{inputenc}
      \usepackage[italian]{cdpbabel}
      \usepackage

      {eurosym} % also loaded by calctab, but without “left” option
      \usepackage{calctab}
      \usepackage{layaureo}
      % Begin excerpt from “marvosym.sty”
      \newcommand{\mvs}{\fontfamily{mvs}\fontencoding{U}%
      \fontseries{m}\fontshape{n}\selectfont}
      \newcommand{\mvchr}[1]{{\mvs\char#1}}
      \newcommand\MVAt {\mvchr{64}}
      \newcommand\FAX {\mvchr{117}}
      \newcommand\Fax {\mvchr{118}} % why not this?
      \newcommand\fax {\mvchr{116}} % or this?
      \newcommand\Telefon{\mvchr{84}}
      \newcommand\Mobilefon{\mvchr{72}}

      % End excerpt from “marvosym.sty”
      \usepackage[customletterhead]{cdpaddon}[2015/01/21]
      \usepackage[skins]{tcolorbox}
      \usepackage{hyperref}

      \signature{Taldei Tali}
      \place{Roma}

      \newcommand*{\invoice}[2]{\textbf{Fattura n.~#1/\the\year:} #2.}
      \newcommand*{\makeinvoicepresentation}{%
      \begin{presentation}%
      \makeaddressee*
      \prevdepth 0pt
      \vspace{\baselineskip}%
      \hfill\makedate\relax
      \nobreak\bigskip
      \noindent\ignorespaces\thesubject\par
      \end{presentation}%
      }

      \ctdescription{Descrizione voce}
      \ctontraslation{su}

      \newcommand{\marca}{%
      \begin{tcolorbox}[
      % rounded corners=all,
      width=3.5cm,
      colframe=gray,
      opacityback=0.9,
      opacityframe=0.3,
      opacityupper=0.3,
      left=0.1cm,
      right=0.1cm,
      top=0.1cm,
      bottom=0.1cm
      ]
      \hbadness 3000
      \sffamily Apporre marca da bollo da \euro\ 2,00
      \end{tcolorbox}
      }

      \renewcommand*{\stopletter}{%
      \begingroup
      \footnotesize
      Operazione assoggettata al regime fiscale di vantaggio previsto
      dall'art.~1, commi \mbox{96-117}, della L.~n.~244/2007 come modificata
      dall'art.~27, commi 1 e~2, del D.L.~n.\ 98/2011;
      non soggetta ad applicazione di ritenuta d'acconto ai sensi del
      provvedimento del Direttore Agenzia Entrate n.~185820 del
      22/12/2011.\par
      \endgroup
      \bigskip\marca
      \bigskip\makesignature
      }

      % Definition of your letterhead occurs here:
      \begin{customletterhead}{0.7\textwidth}
      \centering \huge \bfseries \scshape
      Avv.~Taldei Tali
      \end{customletterhead}

      % Definition of your letterfott occurs here:
      \begin{customletterfoot}{\textwidth}
      \centering \footnotesize
      \ruleacrossheadorfoot
      % address
      Piazza di Eulero~3 00153 Roma \textbullet\
      % tel/fax
      \Telefon/\FAX~0622222222 \textbullet\
      % cell
      \Mobilefon~34022222222 \\
      % email
      \MVAt~taldei.tali@gmail.com \textbullet\
      % pec
      taldeitali@ordineavvocatiroma.org\\
      % CF
      \textsc{c.f.}\@:~TLD\,TLL\,54C08\,F839\,S \textbullet\
      % Piva
      \textsc{p.~iva}:~22222222222 %\textbullet\
      % Polizza assicurativa
      % Polizza assicurativa n.~22222222
      \end{customletterfoot}

      \begin{document}
      \begin{letterhead}{%
      Nome Cognome\\
      largo Pinco pallo 1\\
      00153\quad ROMA\quad RM\\[\medskipamount]

      \textsc{c.f.}\@: PNC\,PLL\,50P20\,H302\,J\\
      \textsc{p.~iva}: 22222222}
      [\invoice{1}{pratiche Tom, Titti, Lessie, Furia}]

      \makeinvoicepresentation

      \begin{calctab}
      \amount[id=tom]{Consulenza pratica Tom c/ Jerry}{300}
      \amount[id=titti]{Consulenza pratica Titti c/ Silvestro}{300}
      \amount[id=lessie]{Consulenza pratica Lessie c/ Rex}{300}
      \amount[id=furia]{Consulenza pratica Furia c/ Varenne}{300}
      \perc[id=cpa]{Contributo cassa di appartanenza}{4}
      \add{Totale complessivo}
      \end{calctab}

      \vspace{1.5cm}
      \textsc{Coordinate bancarie}:

      \begin{center}
      \textbf{IBAN JJ 22 E 22222 22222 222222JJJ}\\
      UniCredit Banca di Roma\\
      Agenzia “Nome Agenzia''\\
      Piazzetta IndirizzoAgenzia n.\ 2 Roma
      \end{center}

      \bigskip

      \end{letterhead}
      \end{document}`

      La firma al di sotto di tutto mi sembra migliore o c’è qualche ragione per l’opzione contraria? La stessa cosa per la data: mi pare un po’ meglio disallinearla.

    • #102635
      Up
      0
      Down
      ::


      Se si preferisce lasciare un po’ di spazio fra l’intestatario della fattura e la data, suggerirei la seguente definizione di [tt]\makeinvoicepresentation[/tt], più “pulita”:
      `\newcommand*{\makeinvoicepresentation}{%
      \begin{presentation}%
      \makeaddressee\relax % nota: non “\makeaddressee*”
      \makedate\relax % nota: niente “\prevdepth = 0pt” che precede
      \bigskip
      \noindent\ignorespaces\thesubject\par
      \end{presentation}%
      }`
      Inserire [tt]\makesignature[/tt] dentro il comando [tt]\stopletter[/tt] è un po’ strano dal punto di vista della leggibilità del markup (un umano che legge il sorgente si aspetta di trovare, alla fine della lettera, un [tt]\closing{…}[/tt] o qualcosa di logicamente equivalente), ma non ha alcuna controindicazione pratica. Non capisco però, a questo punto, perché non includere in [tt]\stopletter[/tt] anche le istruzioni per il pagamento. A proposito, secondo me c’è troppo spazio verticale sopra queste ultime, un [tt]\bigskip[/tt] è già troppo; toglierei anche il [tt]\bigskip[/tt] fra le coordinate bancarie e il testo successivo («Operazione assoggettata…»), giacché lo spazio fornito dall’ambiente [tt]center[/tt] mi sembra già perfetto. In ogni caso, quando si mette dello spazion verticale sotto un ambiente come [tt]center[/tt], è preferibile usare il comando [tt]\addvspace[/tt]: per esempio, [tt]\addvspace{1cm}[/tt], non [tt]\vspace{1cm}[/tt].

      Infine, nel piedino, forse è meglio sostituire i pallini con dei trattini medi ([tt]–[/tt]).

      Ciao.


      Gustavo

    • #102636
      Up
      0
      Down
      ::

      letteracdp” post=102546 In ogni caso, quando si mette dello spazion verticale sotto un ambiente come [tt]center[/tt], è preferibile usare il comando [tt]\addvspace[/tt]: per esempio, [tt]\addvspace{1cm}[/tt], non [tt]\vspace{1cm}[/tt].

      Perché?

      Quanto al resto, recepisco tutto, grazie (tranne i trattini, a cui preferisco i pallini…). Per il momento va bene così. Col tempo vorrei aggiungere un po’ di colore, un elemento grafico per la letterhead. E creare un’icona per la pec simile a quella per “fax” di [tt]marvosym[/tt]. Vedremo. Grazie per l’aiuto e le spiegazioni! Carlo

    • #102637
      Up
      0
      Down
      ::

      furbenzio” post=102549

      In ogni caso, quando si mette dello spazion verticale sotto un ambiente come [tt]center[/tt], è preferibile usare il comando [tt]\addvspace[/tt]: per esempio, [tt]\addvspace{1cm}[/tt], non [tt]\vspace{1cm}[/tt].

      Perché?

      […]

      Il LaTeX ha due comandi, [tt]\addvspace[/tt] e [tt]\addpenalty[/tt], che possono essere usati in combinazione in modo che una sequenza di [tt]\addvspace[/tt] e [tt]\addpenalty[/tt], in qualunque ordine, produca sulla lista verticale principale lo stesso effetto pratico che produrrebbe un’unica penalità data prima di tutti gli spazi, seguita da uno spazio verticale pari al massimo fra tutti quelli specificati come argomento ai vari comandi [tt]\addvspace[/tt]; ciò assicura che, se una qualunque delle penalità indicate come argomento a uno dei comandi [tt]\addpenalty[/tt] viene scelta come punto di cesura della pagina, quest’ultima verrà interrotta prima dello spazio verticale. Facciamo un esempio: supponiamo di scrivere nel fle sorgente
      `Quel ramo del lago di Como, che volge a mezzogiorno, tra due catene non interrotte di monti,
      tutto a seni e a golfi, a seconda dello sporgere e del rientrare di quelli, vien, quasi a un tratto, a ristringersi,
      e a prender corso e figura di fiume, tra un promontorio a destra, e un'ampia costiera dall'altra parte;
      e il ponte, che ivi congiunge le due rive, par che renda ancor pi\`{u} sensibile all'occhio questa trasformazione,
      e segni il punto in cui il lago cessa, e l'Adda rincomincia, per ripigliar poi nome di lago dove le rive,
      allontanandosi di nuovo, lascian l'acqua distendersi e rallentarsi in nuovi golfi e in nuovi seni.

      \addvspace{15pt}
      \addpenalty{-111}
      \addvspace{20pt}
      \addpenalty{-222}
      \addpenalty{-333}
      \addvspace{25pt}
      \addpenalty{-555}

      La costiera, formata dal deposito di tre grossi torrenti, scende appoggiata a due monti contigui,
      l'uno detto di san Martino, l'altro, con voce lombarda, il \emph{Resegone}, dai molti suoi cocuzzoli in fila,
      che in vero lo fanno somigliare a una sega\ldots`
      Se chiediamo a TeX, con il comando [tt]\showlists[/tt], di mostrarci l’effetto della catena di [tt]\addvspace[/tt]/[tt]\addpenalty[/tt], otteniamo, nel transcript file, la seguente descrizione:
      `\glue 15.0
      \glue -15.0
      \penalty -111
      \glue 15.0
      \glue -15.0
      \glue 20.0
      \glue -20.0
      \penalty -222
      \glue 20.0
      \glue -20.0
      \penalty -333
      \glue 20.0
      \glue -20.0
      \glue 25.0
      \glue -25.0
      \penalty -555
      \glue 25.0`
      Come si vede, ciascuno spazio verticale precedentemente impartito viene annullato da un corrispondente spazio negativo prima di inserire la penalità; questo fa sì che un’eventuale interruzione di pagina avvenga prima dello spazio verticale risultante. In effetti, se facciamo in modo che la catena di [tt]\addvspace[/tt]/[tt]\addpenalty[/tt] capiti in fondo a una pagina e poniamo [tt]\tracingpages = 1[/tt], così che TeX ci mostri il calcolo con cui trova il punto in cui interrompere la pagina stessa, verrà riportato qualcosa del genere:
      `% t=586.0 plus 5.0 g=598.0 b=1377 p=0 c=1377#
      % t=587.94397 plus 5.0 g=598.0 b=812 p=-111 c=701#
      % t=587.94397 plus 5.0 g=598.0 b=812 p=-222 c=590#
      % t=587.94397 plus 5.0 g=598.0 b=812 p=-333 c=479#
      % t=587.94397 plus 5.0 g=598.0 b=812 p=-555 c=257#`
      Come si vede, i punti di cesura possibili sono solo quelli corrispondenti alle penalità di -111, -222, ecc. che abbiamo esplicitamente impartito, e sono tutti collocati alla stessa altezza (587.94397pt), che si trova al di sopra dello spazio verticale (l’ultima riga di testo ha evidentemente una profondità di 1.94397pt). Se abbiamo anche specificato [tt]\flushbottom[/tt] (che è di default, con l’opzione [tt]twoside[/tt]), possiamo anche verificare nella stampa prodotta che l’ultima riga di testo è a filo con il margine inferiore, senza spazi aggiunti sotto.

      Per poter funzionare in questo modo, i comandi [tt]\addvspace[/tt]/[tt]\addpenalty[/tt] devono rigorosamente essere usati in catena: un [tt]\vspace[/tt] interrompe la catena, allo stesso modo in cui la interromperebbe, per esempio, un capoverso. A questo punto, se una penalità successiva, anche aggiunta con [tt]\addvpenalty[/tt], venisse scelta come punto di cesura, la pagina appena conclusa includerebbe dello spazio verticale alla fine, il che è chiaramente erroneo.

      Ora, tutto ciò premesso, ricordiamo che l’ambiente [tt]center[/tt] aggiunge lo spazio verticale che lo conclude con [tt]\addvspace[/tt]; esso quindi si “comporta bene” nei confronti di eventuali comandi [tt]\addpenalty[/tt] che dovessero seguire, o perché impartiti direttamente dall’utente, o perché inclusi in altri comandi o ambienti predefiniti. Ma se io aggiungo un [tt]\vspace[/tt] subito dopo, rompo la catena, e qualsiasi (eventuale) successivo comando [tt]\addpenalty[/tt] non funzionerà come dovuto, poiché inserirebbe nella lista verticale un potenziale punto di cesura che lascerebbe dello spazio verticale spurio in fondo alla pagina appena conclusa.

      La spiegazione è stata un po’ lunga, ma in effetti la questione è piuttosto complessa. Spero di essere riuscito a sciogliere i dubbi.

      Ciao.

      Gustavo

    • Visualizzazione 10 filoni di risposte
      • Devi essere connesso per rispondere a questo topic.

      Go to top