[conc.#1]Scritta DRAFT in diagonale grigio chiara sul foglio

  • Creatore
    Topic
  • #83031
    Up
    0
    Down
    ::


    Ciao, vorrei inserire la scritta DRAFT in diagonale su ciascun foglio del documento latex. Mi date una dritta o una referenza (titolo e pagina possibilmente)?
    Inoltre è possibile mettere in nome dell’autore su ogni foglio in basso? Mi date, anche per questo, una dritta o una referenza (titolo e pagina possibilmente)?
    Ciao,
    grazie.

Visualizzazione 43 filoni di risposte
  • Autore
    Risposte
    • #83032
      Up
      0
      Down
      ::

      virgo” post=82410Ciao, vorrei inserire la scritta DRAFT in diagonale su ciascun foglio del documento latex. Mi date una dritta o una referenza (titolo e pagina possibilmente)?
      Inoltre è possibile mettere in nome dell’autore su ogni foglio in basso? Mi date, anche per questo, una dritta o una referenza (titolo e pagina possibilmente)?
      Ciao,
      grazie.

      Ciao e benvento/a.

      Per la filigrana cerca appunto “filigrane” nell’Arte di scrivere con LaTeX che puoi scaricare dalla sezione Documentazione qui sopra.

      Per l’altro tuo quesito, ci sono classi che lo fanno automaticamente dando un’opzione particolare. Che classe stai usando?

      Ciao
      Tommaso

    • #83033
      Up
      0
      Down
      ::

      virgo” post=82410Ciao, vorrei inserire la scritta DRAFT in diagonale su ciascun foglio del documento latex. Mi date una dritta o una referenza (titolo e pagina possibilmente)?
      Inoltre è possibile mettere in nome dell’autore su ogni foglio in basso? Mi date, anche per questo, una dritta o una referenza (titolo e pagina possibilmente)?
      Ciao,
      grazie.

      Ciao e benvenuta 🙂

      Visto che nell’Arte non si parla di TikZ (non me ne vogliano Lorenzo e Tommaso 😉 ) ecco una soluzione che ne fa uso grazie a due pacchetti: background e tikzpagenodes. È il mio approccio preferito per questo tipo di compiti perché background è espressamente realizzato per inserire elementi in ogni pagina del documento in modo semplice e tikzpagenode permette di accedere a nodi basati su elementi standard della pagina.

      Il codice: `
      \documentclass{article}
      \usepackage{tikzpagenodes}% permette l'accesso a nodi speciali, si veda la documentazione
      % in questo esempio non viene usato, ma potrebbe servire per altri scopi
      \usetikzlibrary{calc}
      \usepackage[contents={}]{background}

      \usepackage{lipsum}% for dummy text

      \newcommand{\draftlogo}[1][red,rotate=60]{%
      \tikz[remember picture,overlay]{%
      \node[scale=5,font=\bfseries\Huge,
      opacity=0.5,#1] at (current page.center)
      {Draft};
      }%
      }

      \newcommand{\authornote}[2][blue]{%
      \tikz[remember picture,overlay]{%
      \node[anchor=east,#1] at
      ($(current page footer area.south east)!0.3!(current page footer area.north east)$)
      {#2};
      }%
      }

      \AddEverypageHook{%
      \draftlogo
      \authornote{IL mio nome}
      \BgMaterial}

      \begin{document}
      \lipsum[1-8]
      \end{document}
      `

      Il risultato (una pagina a caso):
      [attachment=607]prova_guit.jpg[/attachment]

      EDIT: è fondamentale compilare due volte per le opzioni [tt]remember picture,overlay[/tt].

      Ciao
      Claudio

      Attachments:
      You must be logged in to view attached files.
    • #83034
      Up
      0
      Down
      ::

      cfiandra” post=82417

      Ciao, vorrei inserire la scritta DRAFT in diagonale su ciascun foglio del documento latex. Mi date una dritta o una referenza (titolo e pagina possibilmente)?
      Inoltre è possibile mettere in nome dell’autore su ogni foglio in basso? Mi date, anche per questo, una dritta o una referenza (titolo e pagina possibilmente)?
      Ciao,
      grazie.

      Ciao e benvenuta 🙂

      Visto che nell’Arte non si parla di TikZ (non me ne vogliano Lorenzo e Tommaso 😉 ) ecco una soluzione che ne fa uso grazie a due pacchetti: background e tikzpagenodes. È il mio approccio preferito per questo tipo di compiti perché background è espressamente realizzato per inserire elementi in ogni pagina del documento in modo semplice e tikzpagenode permette di accedere a nodi basati su elementi standard della pagina.

      Il codice: `
      \documentclass{article}
      \usepackage{tikzpagenodes}% permette l'accesso a nodi speciali, si veda la documentazione
      % in questo esempio non viene usato, ma potrebbe servire per altri scopi
      \usetikzlibrary{calc}
      \usepackage[contents={}]{background}

      \usepackage{lipsum}% for dummy text

      \newcommand{\draftlogo}[1][red,rotate=60]{%
      \tikz[remember picture,overlay]{%
      \node[scale=5,font=\bfseries\Huge,
      opacity=0.5,#1] at (current page.center)
      {Draft};
      }%
      }

      \newcommand{\authornote}[2][blue]{%
      \tikz[remember picture,overlay]{%
      \node[anchor=east,#1] at
      ($(current page footer area.south east)!0.3!(current page footer area.north east)$)
      {#2};
      }%
      }

      \AddEverypageHook{%
      \draftlogo
      \authornote{IL mio nome}
      \BgMaterial}

      \begin{document}
      \lipsum[1-8]
      \end{document}
      `

      Il risultato (una pagina a caso):
      [attachment=607]prova_guit.jpg[/attachment]

      EDIT: è fondamentale compilare due volte per le opzioni [tt]remember picture,overlay[/tt].

      Ciao
      Claudio

      Siamo sempre alle solite 😉

      Come si fa a parlare di un pacchetto che permette di fare tutto quello che si vuole, in pratica?

      Ciao
      Tommaso

    • #83035
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        È vero che siamo sempre alle solite; e oggi TikZ è diventato de facto il pacchetto “ufficiale” di tutto ciò che è grafico nel mondo LaTeX.

        Ma siamo anche alle solite, nel senso che se uno deve solo scrivere Draft come sfondo alle pagine, perché deve caricare un pacchetto complicato e pesante sulla memoria come TikZ?; ci sono anche altri pacchetti più semplici e meno pesanti; ovviamente se TikZ serve anche per altro, allora il mio discorso non serve.

        E volendo fare tutto con i mezzi di LaTeX, senza ricorrere ad altri pacchetti?

        Si può fare ed è facile con l’ambiente picture.

        Indico perciò un concorso per la soluzione migliore che usi solo l’ambiente picture (integrato con pict2e, evidentemente) per scrivere allineata e centrata sulla diagonale della griglia interna di stampa la parola Draft scritta in grigio e con il font tondo con grazie di default nel documento, usando caratteri di corpo 45pt. È consentito usare il pacchetto color (anche xcolor, purché sia necessario anche per altri scopi), e il pacchetto fancyhdr, che comunque viene usato abbastanza spesso; una soluzione che non preveda fancyhdr richiede due o tre righe di codice in più e verrebbe apprezzata dalla giuria.

        La giuria è formata da me stesso, da solo, senza l’aiuto di altri, semplicemente perché qui nel forum sembra che io sia l’unico a conoscere un poco e ad apprezzare l’ambiente picture (esteso con pict2e), mentre tutti conoscono TiKZ 😉 e lo usano con tanta disinvoltura da poterlo fare a occhi chiusi :mrgreen: (il verde, è il verde dell’invidia).

        Chi di voi vorrà cimentarsi in questo piccolissimo esercizio e sarà dichiarato vincitore della gara, riceverà come premio il mio pubblico apprezzamento — be’ certo, tramite il forum e i nick name non è possibile inviare un premio tangibile, più tangibile di qualche parola.

        Dal concorso sono esclusi coloro che nel forum hanno totalizzato più di 1000 messaggi: io quindi sono escluso (ovviamente).

      • #83036
        Up
        0
        Down
        ::

        OldClaudio” post=82423Ma siamo anche alle solite, nel senso che se uno deve solo scrivere Draft come sfondo alle pagine, perché deve caricare un pacchetto complicato e pesante sulla memoria come TikZ?; ci sono anche altri pacchetti più semplici e meno pesanti; ovviamente se TikZ serve anche per altro, allora il mio discorso non serve.

        E volendo fare tutto con i mezzi di LaTeX, senza ricorrere ad altri pacchetti?

        Si può fare ed è facile con l’ambiente picture.

        Concordo sul fatto che TikZ è pesante, ma se il pacchetto viene già usato nel documento ecco che lo svantaggio non esiste. Oltretutto, a essere sinceri, con le capacità delle macchine attuali anche caricare un pacchetto pesante non ha effetti così drastici.

        OldClaudio” post=82423Indico perciò un concorso per la soluzione migliore che usi solo l’ambiente picture (integrato con pict2e, evidentemente) per scrivere allineata e centrata sulla diagonale della griglia interna di stampa la parola Draft scritta in grigio e con il font tondo con grazie di default nel documento, usando caratteri di corpo 45pt. È consentito usare il pacchetto color (anche xcolor, purché sia necessario anche per altri scopi), e il pacchetto fancyhdr, che comunque viene usato abbastanza spesso; una soluzione che non preveda fancyhdr richiede due o tre righe di codice in più e verrebbe apprezzata dalla giuria.

        La giuria è formata da me stesso, da solo, senza l’aiuto di altri, semplicemente perché qui nel forum sembra che io sia l’unico a conoscere un poco e ad apprezzare l’ambiente picture (esteso con pict2e), mentre tutti conoscono TiKZ 😉 e lo usano con tanta disinvoltura da poterlo fare a occhi chiusi :mrgreen: (il verde, è il verde dell’invidia).

        Chi di voi vorrà cimentarsi in questo piccolissimo esercizio e sarà dichiarato vincitore della gara, riceverà come premio il mio pubblico apprezzamento — be’ certo, tramite il forum e i nick name non è possibile inviare un premio tangibile, più tangibile di qualche parola.

        Dal concorso sono esclusi coloro che nel forum hanno totalizzato più di 1000 messaggi: io quindi sono escluso (ovviamente).

        Iniziativa interessante 🙂 Sfortunatamente non posso partecipare: avendo visto un certo codice di OldClaudio (che è liberamente accessibile) mi sentirei come in quella pubblicità dove dicono: “Ti piace vincere facile?”. 😀

        Ciao
        Claudio

      • #83037
        claudio
        Partecipante
          Up
          0
          Down
          ::


          dovrebbe bastare questo
          `
          \usepackage{draftwatermark}
          \SetWatermarkText{DRAFT}
          `
          ciao
          claudio

        • #83038
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Infatti (più o meno), ma questa soluzione è fuori concorso 🙂 🙂 🙂

            Il “più o meno” dipende dalla clausola insidiosa sottolineata nel prossimo messaggio.

          • #83039
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::

              Iniziativa interessante Sfortunatamente non posso partecipare: avendo visto un certo codice di OldClaudio (che è liberamente accessibile) mi sentirei come in quella pubblicità dove dicono: “Ti piace vincere facile?”.

              Certo sei fuori concorso; ma non è nemmeno valido copiare; quindi se vuoi concorrere lo stesso, tieni presente che c’è una clausola insidiosa: che la scritta in diagonale non sia solo messa obliqua di traverso, ma allineata al centro della diagonale della gabbia interna; farlo in modo automatico, lasciando fare i conti a pdftex (sia pure mediante macro costruite da noi) è mooooolto difficile; se vuoi concorrere, senza ricorrere a TikZ ma solo al”ambiente picture, al pacchetto pict2e, certamente graphicx, ma nessun nessun altro pacchetto e con la classe book. sei liberissimo di provarci.

              Attento a quella clausola; non basta che il testo sia genericamente lungo una qualunque linea obliqua, ma deve giacere sulla diagonale della gabbia interna e centrato rispetto a questa in tutte le direzioni; la diagonale della gabbia deve infilzare tutte le lettere della scritta.

            • #83040
              Up
              0
              Down
              ::

              OldClaudio” post=82452

              Iniziativa interessante Sfortunatamente non posso partecipare: avendo visto un certo codice di OldClaudio (che è liberamente accessibile) mi sentirei come in quella pubblicità dove dicono: “Ti piace vincere facile?”.

              Certo sei fuori concorso; ma non è nemmeno valido copiare; quindi se vuoi concorrere lo stesso, tieni presente che c’è una clausola insidiosa: che la scritta in diagonale non sia solo messa obliqua di traverso, ma allineata al centro della diagonale della gabbia interna; farlo in modo automatico, lasciando fare i conti a pdftex (sia pure mediante macro costruite da noi) è mooooolto difficile; se vuoi concorrere, senza ricorrere a TikZ ma solo al”ambiente picture, al pacchetto pict2e, certamente graphicx, ma nessun nessun altro pacchetto e con la classe book. sei liberissimo di provarci.

              Attento a quella clausola; non basta che il testo sia genericamente lungo una qualunque linea obliqua, ma deve giacere sulla diagonale della gabbia interna e centrato rispetto a questa in tutte le direzioni; la diagonale della gabbia deve infilzare tutte le lettere della scritta.

              Il problema principale è che il “watermark” deve stare sotto il testo vero e proprio.

              Ciao
              Enrico

            • #83041
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Non è difficile mettere il Watermark sotto al testo:
                [attachment]C:\fakepath\Bozza.png[/attachment]

              • #83042
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Non è difficile mettere il watermark sotto al testo
                  [attachment]C:\fakepath\Bozza.png[/attachment]

                • #83043
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Non è difficile mettere il watermark sotto al testo:

                    [attachment=609]Bozza-2.pdf[/attachment]

                    Attachments:
                    You must be logged in to view attached files.
                  • #83044
                    Up
                    0
                    Down
                    ::

                    claudio” post=82444dovrebbe bastare questo
                    `
                    \usepackage{draftwatermark}
                    \SetWatermarkText{DRAFT}
                    `
                    ciao
                    claudio

                    Ciao e grazie a tutti, anche ai soli lettori per i quali spero che il post sia stato utile.
                    Credo che la soluzione di Claudio sia la migliore: semplice ed efficace anche per i non esperti.

                    Ho visto la documentazione QUI.

                    Ci sono due cose che, però, non ho capito:

                    1. la scritta DRAFT nel frontespizio della tesi non è al di sotto del testo, ma sopra. Nelle restati pagine è al di sotto. Si può risolvere il problema?
                    2. Se volessi mettere due righe, ad esempio DRAFT e sotto CIAO CIAO CIAO, è possibile? Ho provato usando \SetWatermarkText{DRAFT \\ CIAO CIAO CIAO}, ma non funziona.

                    Grazie ancora!

                  • #83045
                    OldClaudio
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Sì certo, si può risolvere il Draft sopra il testo nel frontespizio, non mettendo draft; Sarebbe un fonrtespizio orrendo con la scritta Draft sia sotto che, peggio ancora, sopra il testo.:smile:

                    • #83046
                      OldClaudio
                      Partecipante
                        Up
                        0
                        Down
                        ::


                        Scusa @virgo, ma ci siamo accaniti sulle filigrane, ma non ti abbiamo detto granché sulla tua seconda domanda:

                        Inoltre è possibile mettere in nome dell’autore su ogni foglio in basso? Mi date, anche per questo, una dritta o una referenza (titolo e pagina possibilmente)?

                        Se usi il pacchetto fancyhdr, allora la spiegazione di come fare è nella documentazione di quel pacchetto, nelle prime poche pagine; la documentazione si legge dando da terminale o da prompt dei comandi (a seconda del sistema operativo) il comando texdoc fancyhdr.

                        Devi in sostanza definire uno stile di pagina dove specifichi che cosa vuoi avere sia nelle tastatine, sia nei piedini; per questi devi usare un comando del tipo:`\fancyfoot[LO,RE]{Maria Rossi}`da aggiungere agli altri comandi per configurare le testatine. ricco di esempi, è tutto spiegato nella documentazione che ti ho indicato.

                      • #83047
                        Up
                        0
                        Down
                        ::

                        OldClaudio” post=82507Scusa @virgo, ma ci siamo accaniti sulle filigrane, ma non ti abbiamo detto granché sulla tua seconda domanda:

                        Inoltre è possibile mettere in nome dell’autore su ogni foglio in basso? Mi date, anche per questo, una dritta o una referenza (titolo e pagina possibilmente)?

                        In realtà il mio metodo già ne teneva conto (guardare la figura) 😉

                        P.S. Non mi sono dimenticato del concorso, ma causa influenza mi ci dedicherò prossimamente 🙂

                        Ciao
                        Claudio

                      • #83048
                        Liverpool
                        Partecipante
                          Up
                          0
                          Down
                          ::


                          A che punto è la competizione? Se tutti i concorrenti si sono ritirati, mi piacerebbe conoscere la soluzione, perché io non ne sono capace. Volendo, si potrebbe mettere in uno spoiler, così chi vuole continuare a provare può farlo.

                          Ciao

                        • #83049
                          Up
                          0
                          Down
                          ::

                          Liverpool” post=83585A che punto è la competizione? Se tutti i concorrenti si sono ritirati, mi piacerebbe conoscere la soluzione, perché io non ne sono capace. Volendo, si potrebbe mettere in uno spoiler, così chi vuole continuare a provare può farlo.

                          Ciao

                          Fermi tutti 🙂

                          Causa qualche impegno di troppo non ho ancora avuto tempo per mettermici davvero sopra (ho solo una semi-bozza), ma lo farò sicuramente nei prossimi giorni: spero ci siano anche altri interessati a prendere parte alla competizione 🙂

                          Ciao
                          Claudio

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

                            cfiandra” post=83590

                            A che punto è la competizione? Se tutti i concorrenti si sono ritirati, mi piacerebbe conoscere la soluzione, perché io non ne sono capace. Volendo, si potrebbe mettere in uno spoiler, così chi vuole continuare a provare può farlo.

                            Ciao

                            Fermi tutti 🙂

                            Causa qualche impegno di troppo non ho ancora avuto tempo per mettermici davvero sopra (ho solo una semi-bozza), ma lo farò sicuramente nei prossimi giorni: spero ci siano anche altri interessati a prendere parte alla competizione 🙂

                            Ciao
                            Claudio

                            Ma certamente Claudio.
                            Lancio la mia sfida con questo codice:
                            `% !TEX program = pdflatex
                            % !TEX encoding = UTF-8 Unicode

                            \documentclass[a4paper]{article}
                            \usepackage{graphicx}
                            \usepackage{xcolor}
                            \usepackage{kantlipsum}

                            \def\draftonpage{
                            \vbox to 0pt {
                            \vbox to 160pt {}
                            \hbox to 0pt {%
                            \scalebox{14.5}{%
                            \rotatebox{38}{%
                            \textcolor{gray!58}{Draft}%
                            }
                            }
                            }
                            }
                            }

                            \begin{document}
                            \draftonpage

                            \kant
                            \end{document}`

                            A voi…
                            R.

                          • #83051
                            franen
                            Partecipante
                              Up
                              0
                              Down
                              ::


                              Eh no, troppo facile! 🙂
                              La cosa su cui mi sono bloccato è la richiesta che la scritta debba stare sulla diagonale della gabbia di testo. Centrala non è un problema, ma dare a \rotatebox l’angolo giusto in funzione delle dimensioni della gabbia non è immediato, per me.
                              Ho provato a mettere giù uno sviluppo in serie di Taylor per l’arcotangente, ma per avere qualcosa di preciso ci vogliono 20 termini… Probabilmente non è la soluzione migliore.
                              Fran

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

                                franen” post=83599Eh no, troppo facile! 🙂
                                La cosa su cui mi sono bloccato è la richiesta che la scritta debba stare sulla diagonale della gabbia di testo. Centrala non è un problema, ma dare a \rotatebox l’angolo giusto in funzione delle dimensioni della gabbia non è immediato, per me.
                                Ho provato a mettere giù uno sviluppo in serie di Taylor per l’arcotangente, ma per avere qualcosa di preciso ci vogliono 20 termini… Probabilmente non è la soluzione migliore.
                                Fran

                                Perché è obbligatorio che la scritta sia centrata sulla diagonale?
                                Non lo sapevo.
                                Studierò qualcosa…

                              • #83053
                                franen
                                Partecipante
                                  Up
                                  0
                                  Down
                                  ::

                                  robitex” post=83602Perché è obbligatorio che la scritta sia centrata sulla diagonale?

                                  Così ha chiesto Claudio… 🙂

                                • #83054
                                  OldClaudio
                                  Partecipante
                                    Up
                                    0
                                    Down
                                    ::


                                    Roberto, la tua soluzione va bene solo per la pagina A4 scritta per la classe article, quindi con quella particolare gabbia. Semplice ma di tipo “one shot”: o usi la classe article standard o non funziona.


                                    @franen
                                    si può evitare di calcolare l’arcotangente, ma se la vuoi usare rivolgiti alle frazioni continue, non alle serie.

                                    Nota che fra la matematica di pgf/tikz nell’apposita libreria c’è il modo di calcolare l’arcotangener, ma si basa su una tabella di interpolazione di un migliaio di punti; siccome è vietato usare pgf/tikz nel concorso, quella soluzione non è accettabile, evidentemente, nemmeno se la rprlichi nel tuo codice.

                                    Ma fa piacere che il concorso attragga ancora qualche affezionato frequentatore del forum; io ho già fatto il mio compitino e ho trovato due o tre soluzioni, sceglibili a piacere; una non calcola l’arcotangente.

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

                                      OldClaudio” post=83627Roberto, la tua soluzione va bene solo per la pagina A4 scritta per la classe article, quindi con quella particolare gabbia. Semplice ma di tipo “one shot”: o usi la classe article standard o non funziona.


                                      @franen
                                      si può evitare di calcolare l’arcotangente, ma se la vuoi usare rivolgiti alle frazioni continue, non alle serie.

                                      Nota che fra la matematica di pgf/tikz nell’apposita libreria c’è il modo di calcolare l’arcotangener, ma si basa su una tabella di interpolazione di un migliaio di punti; siccome è vietato usare pgf/tikz nel concorso, quella soluzione non è accettabile, evidentemente, nemmeno se la rprlichi nel tuo codice.

                                      Ma fa piacere che il concorso attragga ancora qualche affezionato frequentatore del forum; io ho già fatto il mio compitino e ho trovato due o tre soluzioni, sceglibili a piacere; una non calcola l’arcotangente.

                                      Ciao di nuovo.
                                      Propongo una soluzione con il calcolo della tangente, unendo comandi primitivi di TeX per posizionare una scatola al centro della pagina ma senza che quest’ultima abbia uno spessore diverso da zero, così che il testo successivo — che sovrascriverà la scritta in diagonale — con funzioni del nuovo nucleo di LaTeX3 che si occuperanno dei calcoli.
                                      Siccome il LaTeX3 team non ha ancora implementato le funzioni trigonometriche inverse nel modulo fp, occorre escogitare un calcolo artigianale molto semplice, poco efficiente ma compatto e funzionante: incremento una variabile in virgola mobile finché la differenza tra la tangente ed il rapporto tra le dimensione della gabbia del testo risultano abbastanza piccoli.
                                      Ecco il codice:
                                      `% !TEX program = pdflatex
                                      % !TEX encoding = UTF-8 Unicode

                                      \documentclass[a4paper]{article}
                                      \usepackage{graphicx}
                                      \usepackage{xcolor}
                                      \usepackage{kantlipsum}
                                      \usepackage{tikz}

                                      \ExplSyntaxOn
                                      \fp_new:N \l_alpha
                                      \fp_set:Nn \l_alpha { 0.50 }

                                      \fp_new:N \l_x
                                      \fp_new:N \l_y

                                      \fp_set_from_dim:Nn \l_x { \textwidth }
                                      \fp_set_from_dim:Nn \l_y { \textheight }
                                      \fp_new:N \l_ratio
                                      \fp_set:Nn \l_ratio { \l_y / \l_x}

                                      \fp_while_do:nn
                                      { tan(\l_alpha) – \l_ratio < 0.01 } { \fp_add:Nn \l_alpha {0.001} } \fp_set:Nn \l_alpha { \l_alpha * 180 / pi} \NewDocumentCommand { \scbx } { } { \scalebox{8}{ \rotatebox{\fp_use:N \l_alpha}{\textcolor{gray!58}{Draft}} } } \ExplSyntaxOff \def\draftonpage#1{% \hbox to 0pt {% \vbox to 0pt {% \vbox to \textheight {% \vfil \hbox to \textwidth {\hfil#1\hfil}% \vfil }\vss }\hss }% } \begin{document} \draftonpage{\scbx} \draftonpage{\tikz\draw (0.4pt,0.4pt) -- (\textwidth,\textheight);} L'angolo calcolato della diagonale vale $\ExplSyntaxOn \fp_use:N \l_alpha \ExplSyntaxOff$. \kant \end{document} ` La sfida continua... R.

                                    • #83056
                                      OldClaudio
                                      Partecipante
                                        Up
                                        0
                                        Down
                                        ::


                                        Che la sfida continui!

                                        Roberto, il codice è abbastanza elegante, ma parti da un valore dell’angolo di mezzo radiante (un po’ meno di 29°), per andare su di millesimo in millesimo fino ad angoli che superano il radiante; in una pagina della serie ISO l’angolo della diagonale è di circa 55°; nel formato letter è di circa 52°; Se partissi dall’equivalente di 45°, circa 0,7854 rad, risparmieresti quasi 300 iterazioni e il corrispondente tempo di calcolo.

                                        Il metodo è artigianale, di per sé buono, ma non certo “risparmioso” sulla quantità di calcoli.

                                        Quando vedrete (se verrà pubblicato su Ars) la mia soluzione senza l’uso dell’arcotangente vedrete che si può fare di meglio in pochissime righe di programma. È vero, bisogna eseguire il calcolo di una funzione “irrazionale” (non cablata con i comandi del semplice TeX) e richiede di conoscere intimamente i meccanismi interni, ma il codice rimane leggibile (in questo caso anche quello di L3 è abbastanza facilmente leggibile).

                                        Forza matematici; forza ingegneri; forza appassionati di codice TeX/LaTeX!

                                        Il problemino è semplice, nel senso che richiede complessivamente poche decine di righe di programma, ma richiede un po’ di lateral thinking e di saper maneggiare bene le modeste capacità di calcolo di TeX, anche se ora sono arricchita dalla libreria dei calcoli floating point di L3 (complessivamente include anche i comandi per definire che cosa si vuole scrivere in diagonale, DRAFT, BOZZA, RISERVATO, CLASSIFIED, o altro, e le alternative se usare graphics, oppure no, se usare pict2e oppure no, e simili)

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


                                          Claudio,
                                          ovvio che il numero di interazioni si può drasticamente ridurre gestendo in maniera più intelligente il valore di incremento dell’angolo di tentativo.
                                          Questa volta il nuovo angolo viene incrementato sulla base del valore della pendenza della retta tangente alla curva che vale:
                                          \begin{equation}
                                          \frac{1}{\cos{\alpha}^2}
                                          \end{equation}
                                          Tuttavia c’è un antipatico problema sul comando con gli \hbox ed i \vbox. Ogni volta che viene chiamato il comando \draftonpage viene inserito un capoverso.

                                          Alla prossima puntata… (allego il codice completo)
                                          R.

                                          `% !TEX program = pdflatex
                                          % !TEX encoding = UTF-8 Unicode

                                          \documentclass[a4paper]{article}
                                          \usepackage{graphicx}
                                          \usepackage{xcolor}
                                          \usepackage{kantlipsum}
                                          \usepackage{tikz}

                                          \ExplSyntaxOn
                                          \fp_new:N \l_alpha
                                          \fp_set:Nn \l_alpha { 1 }

                                          \fp_new:N \l_x
                                          \fp_new:N \l_y

                                          \fp_set_from_dim:Nn \l_x { \textwidth }
                                          \fp_set_from_dim:Nn \l_y { \textheight }
                                          \fp_new:N \l_ratio
                                          \fp_set:Nn \l_ratio { \l_y / \l_x}

                                          \int_new:N \l_iter

                                          \fp_while_do:nn
                                          { abs(tan(\l_alpha) – \l_ratio) > 0.000000001 }
                                          { \int_incr:N \l_iter
                                          \fp_add:Nn \l_alpha
                                          { (\l_ratio – tan(\l_alpha))*cos(\l_alpha)^{2} }
                                          }

                                          \fp_set:Nn \l_alpha { \l_alpha * 180 / pi}

                                          \NewDocumentCommand { \scbx } { O{ Draft } } {
                                          \scalebox{8}{
                                          \rotatebox{\fp_use:N \l_alpha}{\textcolor{gray!58}{ #1 }}
                                          }
                                          }

                                          \ExplSyntaxOff

                                          \def\draftonpage#1{%
                                          \hbox to 0pt{%
                                          \vbox to 0pt{%
                                          \vbox to \textheight{%
                                          \vfil
                                          \hbox to \textwidth{\hfil#1\hfil}%
                                          \vfil}\vss}\hss}%
                                          }

                                          \begin{document}
                                          \draftonpage{\scbx}
                                          \draftonpage{\tikz\draw (0.4pt,0.4pt) — (\textwidth,\textheight);}

                                          \ExplSyntaxOn \fp_use:N \l_x , \fp_use:N \l_y \ExplSyntaxOff

                                          L'angolo calcolato della diagonale vale $\alpha = \ExplSyntaxOn \fp_use:N \l_alpha \ExplSyntaxOff$. Numero interazioni: $n = \ExplSyntaxOn \int_use:N \l_iter \ExplSyntaxOff$

                                          \kant
                                          \end{document}`

                                        • #83058
                                          OldClaudio
                                          Partecipante
                                            Up
                                            0
                                            Down
                                            ::


                                            Infatti \tikz inserisce un nuovo capoverso; inoltre il pacchetto tiks è vietato per questo concorso, a meno che non si accetta al sfida che ha accettato claudio @cfiandra, di fare qualcosa di molto superlativo, per mettere la scritta su pagine scelte, per riferirsi allo specchio di stampa oppure alla pagina completa, e per fare altre acrobazie tipiche di tikz. Il “concorso” era per dimostrare che la cosa si può fare in modo relativamente semplice senza ricorrere a TikZ.

                                            Coraggio che se fai attenzione ci riesci, ci sei quasi.


                                            @franen
                                            , non gettare la spugna. Non esistono solo gli sviluppi in serie per l’arcotangente; non solo ma non è nemmeno necessario che il suo calcolo sia così preciso; a parte il fatto che si può risolvere il problema senza ricorrere all’arcotangente.

                                            Ciao
                                            Claudio

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

                                              OldClaudio” post=83657Infatti \tikz inserisce un nuovo capoverso; inoltre il pacchetto tiks è vietato per questo concorso, a meno che non si accetta al sfida che ha accettato claudio @cfiandra, di fare qualcosa di molto superlativo, per mettere la scritta su pagine scelte, per riferirsi allo specchio di stampa oppure alla pagina completa, e per fare altre acrobazie tipiche di tikz. Il “concorso” era per dimostrare che la cosa si può fare in modo relativamente semplice senza ricorrere a TikZ.

                                              Coraggio che se fai attenzione ci riesci, ci sei quasi.


                                              @franen
                                              , non gettare la spugna. Non esistono solo gli sviluppi in serie per l’arcotangente; non solo ma non è nemmeno necessario che il suo calcolo sia così preciso; a parte il fatto che si può risolvere il problema senza ricorrere all’arcotangente.

                                              Ciao
                                              Claudio

                                              Un momento un momento, anch’io ho qualche argomento…
                                              Uso TikZ solo per disegnare la diagonale che serve visivamente a controllare la giusta disposizione della scritta.
                                              Poi, in realtà non è TikZ che inserisce il capoverso: se si toglie il secondo comando il testo scende comunque.
                                              Buona Pasqua a tutti gli utenti TeX & C.
                                              R.

                                            • #83060
                                              OldClaudio
                                              Partecipante
                                                Up
                                                0
                                                Down
                                                ::

                                                Poi, in realtà non è TikZ che inserisce il capoverso: se si toglie il secondo comando il testo scende comunque.

                                                Sì,l’ho capito, ma il problema non è solo \tikz; anche la prima scatola, benché di dimensioni nulle, impegna una riga; ecco perché il testo scende.

                                                Buona Pasqua a te e a tutti i frequentatori del Forum

                                                Claudio

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

                                                  OldClaudio” post=83670

                                                  Poi, in realtà non è TikZ che inserisce il capoverso: se si toglie il secondo comando il testo scende comunque.

                                                  Sì,l’ho capito, ma il problema non è solo \tikz; anche la prima scatola, benché di dimensioni nulle, impegna una riga; ecco perché il testo scende.

                                                  Buona Pasqua a te e a tutti i frequentatori del Forum

                                                  Claudio

                                                  Innanzi tutto rinnovo i miei auguri di Buona Pasqua.
                                                  Per la sfida propongo il seguente codice che utilizza alcune primitive di pdftex, in particolare \pdfsetmatrix che imposta la matrice di traformazione.
                                                  Se vi inseriamo i coseni direttori della diagonale, si riesce a ruotare il materiale contenuto fino a \pdfrestore, che ripristina le impostazioni geometriche fissate con \pdfsave.
                                                  Il seno e coseno dell’angolo li calcolo ancora con il modulo fp di LaTeX3.
                                                  Tuttavia ci sono tre problemi:
                                                  Il primo che affliggeva anche le soluzioni della classe precedente (quelle con il calcolo dell’arcotangente), è lo spostamento verso il basso del testo, così che la scritta non risulta perfettamente disposta sotto il testo.

                                                  Il secondo problema è che non so ancora bene trattare il materiale tra \pdfsave e \pdfrestore e la scritta Draft pur se bel allineata on la diagonale della gabbia del testo, se ne va per conto suo disponendosi dove gli pare.

                                                  Il terzo problema è che non c’è verso ma il secondo parametro numerico della matrice, non può essere l’espansione di \fp_use:N perché altrimenti non funziona, chissà perché invece gli altri tre possono esserlo.

                                                  Ok, ho finito, non mi resta che postarvi il codice e salutarvi:
                                                  `% !TEX program = pdflatex
                                                  % !TEX encoding = UTF-8 Unicode

                                                  \documentclass[a4paper]{article}
                                                  \usepackage{graphicx}
                                                  \usepackage{xcolor}
                                                  \usepackage{kantlipsum}

                                                  \ExplSyntaxOn

                                                  \fp_new:N \g_diag
                                                  \fp_set:Nn \g_diag { ( \textwidth^2 + \textheight^2 )^{0.5} }

                                                  \fp_new:N \g_sin
                                                  \fp_new:N \g_cos

                                                  \fp_set:Nn \g_sin { \textheight / \g_diag }
                                                  \fp_set:Nn \g_cos { \textwidth / \g_diag }

                                                  \NewDocumentCommand { \mtrxdataset } { } {
                                                  \pdfsetmatrix {
                                                  \fp_use:N \g_cos ~ 0.866 ~
                                                  -\fp_use:N \g_sin ~ \fp_use:N \g_cos
                                                  }
                                                  }

                                                  \ExplSyntaxOff

                                                  \def\draftonpage{%
                                                  \hbox to 0pt {%
                                                  \vbox to 0pt {%
                                                  \pdfsave
                                                  \mtrxdataset
                                                  \hbox to \textwidth {%
                                                  \hfil
                                                  \scalebox{8}{\textcolor{gray!75}{Draft}}%
                                                  \hfil
                                                  }\pdfrestore
                                                  \vss}%
                                                  \hss}%
                                                  }

                                                  \begin{document}
                                                  \draftonpage

                                                  \kant
                                                  \end{document}
                                                  `

                                                • #83062
                                                  OldClaudio
                                                  Partecipante
                                                    Up
                                                    0
                                                    Down
                                                    ::


                                                    Roberto, la matrice di trasformazione è una buona idea, ma la definisci in modo errato quindi l’intero file che hai postato non funziona; scrive Draft in orizzontale nella prima metà dello specchio di stampa.

                                                    Mi fa piacere vedere quei nuovi comandi di pdftex che non conoscevo, anche se ho letto spesso il manuale di pdftex; tuttavia la matrice di trasformazione è una matrice 2 per 3 di cui le prime due colonne sono la matrice di rotoamplificazione e l’ultima colonna è il vettore di traslazione. Nel linguaggio PostScript e anche in quello PDF i dati vanno inseriti normalmente per righe, non per colonne e i sei dati vanno inseriti di seguito; non so se \pfdsetmatrix provveda a questo riordino dei dati; certo è che al posto di un seno tu hai scritto 0.866, e hai inserito solo 4 dati.

                                                    Poi c’è il solito problema che la prima \hbox costituisce la prima riga del materiale su cui scrivere il testo e, non nel tuo esempio, ma in altre situazioni la scritta Deraft potrebbe ricoprire il testo, invece che esserne ricoperta.

                                                    Devo dire che hai affrontato il problema per una delle vie giuste, ma ti sono successe un paio di distrazioni strada facendo.

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


                                                      Il manuale di pdftex è piuttosto scarno di esempi eh eh eh …
                                                      ma dice che servono soltanto i primi quattro parametri della matrice perché gli ultimi due si riferiscono alla traslazione e sono presi pari a zero perché dovrebbe pensarci TeX a piazzare il materiale nella pagina.

                                                      Il fatto che ho lasciato il numero come secondo parametro è dovuto al fatto che così è corretto mentre se si mette il \fp_use:N \g_sin si ottiene un risultato non solo di pura rotazione. Forse è un bug di fp3 non so.

                                                      Comunque, sono consapevole che si tratta solo di un abbozzo ma contiene una base per trovare la soluzione a questo problema, sia con che senza il calcolo dell’arcotangente.
                                                      Mica posso fare tutto io… 😀
                                                      R.

                                                    • #83064
                                                      OldClaudio
                                                      Partecipante
                                                        Up
                                                        0
                                                        Down
                                                        ::


                                                        Come ti ho detto io non conosceve \pdfsetmatrix; ho letto il manuale pdtex he ho visto la differenza che c’è tra usare \pdfliteral (quello che uso io) e \psdfsave, \pdfsetmatrix e \pdfrestore. Nella mia riposta di prima non sono stato esplicito, anche eprché non avevo ancora digerito al documenyazione; tuttavia la matrice di rotazione di 30* antiorari è indicata come esempio sul pdftex manual con questa matrice

                                                        cos 30 -sin30
                                                        sin 30 cos30

                                                        Perché si tratti di pura rotazione la matrice deve avere quella forma antisimmetrica e deve avere determinate unitario (bé ho il sospetto che non basti, ma comunque se ha quella forma produce la sola rotazione. Siccome \pdfliteral e \pdfsetmatrix vogliono la matrice elencata rispettivamente con 6 o 4 numeri numeri per colonne, i numeri devono essere elencati così: cos30 sin30 -sin30 cos30 0 0 oppure cos30 sin30 -sin30 cos30.

                                                        Lo stesso vale se l’angolo è diverso, ovvero se il seno e il coseno li hai già calcolati (come hai fatto tu) e li rappresenti mediane delle macro.

                                                        Io non mi ricordo queste formule di rotazione a memoria, ma se pensi all’operatore di rotazione in termini di numeri complessi exp(iφ) e il vettore da ruotare u + iv, il loro prodotto da: (cosφ u -sinφ v) + i(sinφ u+cosφ v); il che è lo stesso che moltiplicare per la matrice che ho scritto sopra con φ al posto di 30 per il vettore colonna (u,v)’.

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


                                                          Novità?
                                                          Ho vinto qualcosa?
                                                          R.

                                                        • #83066
                                                          OldClaudio
                                                          Partecipante
                                                            Up
                                                            0
                                                            Down
                                                            ::


                                                            Ancora no, non hai vinto ancora niente.

                                                            Però di do un aiutino; i quattro argomenti da dare in pasto a \pdfsetmatrix NON possono essere delle macro da eseguire come quelle che passi tu, ma al massimo sono ammesse degli sviluppi di primo livello che passano a quel comando il valore esatto del seno o del coseno; quindi dopo avere definito i modi di calcolare il seno e il coseno con l’aritmetica floaitng point di expl3; quindi devi prima espandere quei valori, magari tutti e quattro con una cosa del tipo`\edef\matrice{\fp_use:N \g_cos\space \fp_use:N \g_sin\space -\fp_use:N \g_sin\space \fp_use:N \g_cos}` e poi passare come unico argomento a \pdfsetmatirx la cs che hai appena definito.

                                                            Poi devi trovare il modo di collorare la scritta al posto giusto, poi devi farein modo che essa non appaia solo in una pagina, ma in tante pagine consecutive, magari tutte le pagine del documento, oppure solo quelle che contengono un paragrafo in bozza, o anche solo un capoverso non ancora definitivo.

                                                            Come vedi ce n’è ancora tanto da fare. Ma visto che hai infilato la strada giusta, non dovrebbe essere difficile completare il lavoretto.:wink:

                                                            Ciao
                                                            Claudio

                                                          • #83067
                                                            OldClaudio
                                                            Partecipante
                                                              Up
                                                              0
                                                              Down
                                                              ::


                                                              Questo era il conocrosne #1.

                                                              Ora c’è in ballo il concorsone #2

                                                              E le sezioni coniche sembra diventare il concorsone #3

                                                              Per il concorsone #1, restando fermi alla soluzione più semplice, quella manuale, il codice ammonterebbe a poche righe; la soluzione si appoggia all’ambiente standard picture, e al pacchetto graphicx, includendo le righe per introdurre valori personalizzati da usare al posto di DRAFT, le sue dimensioni, il suo colore e l’angolo di inclinazione. @cfiandra ha presentato una soluzione di questo genere, usando TikZ da pari suo, cioè magistralmente; peccato che TikZ non fosse ammesso nel concorso; ciò nonostante la sua soluzione è istruttiva e rappresenta un ottimo esercizio per chi si avvicina all’uso di TikZ.

                                                              Le soluzioni con le macro per far determinare al codice stesso l’angolo di rotazione per mettere la scritta sulla diagonale dello specchio di stampa ha presentato difficoltà solo parzialmente risolrte dai concorrenti: @robitex ha trovato come determinare l’arcotangente del rapporto altezza/larghezza dello psecchio di stampa, ma poi non è riuscito a trovare il modo corretto di immettere la filigrana sotto tutte le pagine, almeno sotto un range di pagine, senza dovorlo specificare pagina per pagina.


                                                              @franen
                                                              sembra avere trovato il modo di inseririre la filigrana in modo automatico, ma non ci ha mostrato nessuna soluzione; di fatto si è arenato nel calcolo dell’arcotangente.

                                                              Io ho deciso di scrivere un articoletto per ArsTeXnica, per il numero in lavorazione che dovrebbe uscire entro questo aprile. ma mi sono reso conto che il concorso per la determinazione automatica dell’arcotangente è un problemaccio di calcolo numerico da eseguire su una macchina per la quale il calcolo numerico non le è congeniale. @robitex ci ha mostrato però come usare la libreria l3fp del nuovo linguaggio LaTeX3; quindi volendo anche il calcolo dell’arcotangente non sarebbe un vero problema; peccato che trovare una funzioni che approssimi decentemente l’arcotangente non sia facile; @franen infatti ha constatato che uno sviluppo in serie di McLaurin richiede almeno una ventina di termini.

                                                              C’è il modo di approssimare l’arcotangente con frazioni di polinomi, e in effetti un’approssimazione con un numeratore dispari di grado 5 e un denominatore pari di grado 4 con qualche fatica e sapendo dove guardare si trova. Ma se si vuole un’approssimazione migliore bisogna calcolarsi i coefficienti dei polinomi a numeratore e a denominatore risolvendo sistemi di equazioni di grado elevato.


                                                              @robitex
                                                              ci ha mostrato, però che si può fare a meno dell’arcotangente; bastano seno e coseno dell’angolo di rotazione; poi il linguaggio pdftex{che sottosta a pdflatex} permette di definire localmente la matrice di rotazione, e il tutto diventa abbastanza banale; non serve l’angolo, ma basta partire dalla tangente dell’angolo, pari al rapporto altezza/larghezza dello specchio di stampa, e il giochetto è fatto. Più semplicemente, con Pitagora, basta calcolare la lunghezza della diagonale dello specchio di stampa e poi due banali divisioni porgono il seno e il coseno.

                                                              Ciò premesso, se sieta erivati a leggere fin qui, può farvi piacere scoprire che l’articolo che ho scritto ammonta a 13 pagine della nsotra rivista; quindi è fuori discussione che ne inserisca il testo qui in questo messaggio. la lunghezza dell’articolo è per lo più occupata da spiegazioni di carattere matematico per introdurre il codice che ho scritto interamente con le funzionalità del motore di composizione pdftex (funziona anche con Xelatex, comunque). quindi il concorsone #1 non era affatto facile se si voleva che il codice facesse tutto quanto da solo.

                                                              Non dichiaro vincitore nessuno, perché non ho visto nessuna soluzione completa, ma il messaggio dice chiaramente che @robitex, restando all’interno delle condizioni al contorno, è quello che è andato più lontano di tutti.

                                                              Ora divertiamoci con gli altri due concorsoni.

                                                            • #83068
                                                              franen
                                                              Partecipante
                                                                Up
                                                                0
                                                                Down
                                                                ::


                                                                Per condividere i miei sforzi…

                                                                Non ho finito il lavoro: nonostante la disponibilità di Claudio che mi ha suggerito di utilizzare le formule di Padè per la stima dell’arcotangente, non sono più andato avanti.
                                                                Ho inserito la scritto usando fancyhdr, usando un ambiente picture.
                                                                Ho dovuto inserire a mano quel “+0.9ex” in [tt]draftyoffset[/tt], altrimenti il tutto risultava un po’ spostato verso l’alto, ma non capisco perchè.

                                                                Fran
                                                                `\documentclass{book}

                                                                \usepackage{lipsum}
                                                                \usepackage{fancyhdr}
                                                                \usepackage{pict2e}
                                                                \usepackage{xcolor}
                                                                \usepackage{graphicx}
                                                                \usepackage{calc}
                                                                \usepackage{fix-cm}
                                                                \setlength{\parindent}{0pt}
                                                                \newlength{\draftyoffset}
                                                                \setlength{\draftyoffset}{\textheight+\headsep+0.9ex}
                                                                \makeatletter
                                                                \newcommand{\draftyyoffset}{\strip@pt\draftyoffset}
                                                                \newcommand{\draftxpos}{\strip@pt\textwidth}
                                                                \newcommand{\draftypos}{\strip@pt\textheight}
                                                                \makeatother

                                                                %\usepackage{layout}
                                                                \pagestyle{fancy}
                                                                \fancyhf{}
                                                                \fancyhead[LO,LE]{%
                                                                \begin{picture}(0,0)
                                                                \put(0,-\draftyyoffset){\line(\draftxpos,\draftypos){345}}% tanto per vedere che la scritta sia allineata per bene
                                                                \end{picture}
                                                                \begin{picture}(0,0)(\numexpr-\draftxpos/2\relax,-\numexpr\draftypos/2\relax)
                                                                \put(0,-\draftyyoffset){\rotatebox{58}{\makebox(0,0)[c]{\fontsize{45}{45}\selectfont\textcolor{gray}{\framebox{DRAFT}}}}}
                                                                \end{picture}
                                                                }

                                                                \begin{document}
                                                                \lipsum[1-13]
                                                                \end{document}
                                                                `

                                                              • #83069
                                                                OldClaudio
                                                                Partecipante
                                                                  Up
                                                                  0
                                                                  Down
                                                                  ::


                                                                  Il tuo codice può venire semplificato un poco:`\documentclass{book}

                                                                  \usepackage{lipsum}
                                                                  \usepackage{fancyhdr}
                                                                  \usepackage{pict2e}
                                                                  \usepackage{xcolor}
                                                                  \usepackage{graphicx}
                                                                  \usepackage{lmodern}

                                                                  \makeatletter
                                                                  \edef\draftxpos{\strip@pt\textwidth}
                                                                  \edef\draftypos{\strip@pt\textheight}

                                                                  %\usepackage{layout}
                                                                  \pagestyle{fancy}
                                                                  \fancyhf{}
                                                                  \fancyhead[LO,LE]{%
                                                                  \begin{picture}(0,0)(0,\strip@pt\dimexpr\headsep+0.9ex)\unitlength=1pt%
                                                                  \put(\draftxpos,0){\line(-\draftxpos,-\draftypos){345}}% tanto per vedere che la scritta sia allineata per bene
                                                                  \put(\numexpr\draftxpos/2,-\numexpr\draftypos/2){\rotatebox{58}{\makebox(0,0)[cc]{\fontsize{45}{45}\selectfont\textcolor{gray}{\framebox{DRAFT}}}}}
                                                                  \end{picture}%
                                                                  }
                                                                  \makeatother

                                                                  \begin{document}
                                                                  \lipsum[1-13]
                                                                  \end{document}`
                                                                  lo spostamanto di 0.9ex si rende enecessario perché la base della scatoal che contiene la testatina si trova 0.9ex sopra il filetto.
                                                                  Invece, è importante rilevare che invece di fare tuti quegli spostamanti, basta tenere conto dello spaziatore \headsep tra testaina e blocco del testo; come vedi, anche se quei 0.9ex sono usati ancora, sono in una posizionoe chiarissima dove si capisce subito che risptto alla base della testatina scendi del separatore e di quello psazio aggiuntivo; mentre se giochi con \textheight, non rieci a capire come gioci quello spaio ulteriore rispetto al blocco del testo, non rispetto alla testatina.

                                                                  Comunque, sì, in sostanza la filigrana fa immessa con la testatina sotto al testo e quella è la strada giusta.

                                                                  Ovviamente il pacchetto calc è inutile.

                                                                  Aver usato \edef invece di \newcommand, velocizza le cose, perché quel piccolo calcolo viene eseguito una volta per tutte, altrimenti viene ripetuto ogni volta che si genera una pagina. in questo caso il vantaggio è minimo, ma in altri casi può essere significativo.

                                                                  io suggerirei di non usare mai il pacchetto fic-cm, se non altro perché i font CM non andrebbero usati mai. L’unica cosa buona che fa quel pacchetto è quella di rendere continuamente scalabili tutti i font CM, compresi i font matematici che non dispongono di una collezione di corpi ottici, ma ne contengono uno solo come i cmmib10 (i math italic bold) che per essere usati nei pedici richiedono di caricare un altro pacchettino. Ma usando i font Latin Modern questi problemi svaniscono perché son scalbili con continuità benché dispongano di corpi ottici. Per noi europei che usiamo lettere accentate è essenziale, comunque usare fotn in codifica T1, e i Latin Modern sono fatti apposta. Anche i cm-super furono creati apposta, ma non sono scalbili con continuità; ecco perché fix-cm sistma questa anomalia, residuo dei tempi in cui si usavano solo font bitmapped.
                                                                  Vabbe’, queste considerazioni sono OT.

                                                                • #83070
                                                                  Up
                                                                  0
                                                                  Down
                                                                  ::


                                                                  Beh.. posto anche io il mio risultato, ma metto le mani avanti: non è assolutamente neppure avvicinabile al livello degli altri (anche se vedo con piacere che qualche misura l’ho azzeccata 🙂 ).

                                                                  `
                                                                  \documentclass{article}

                                                                  \usepackage{lipsum}
                                                                  \usepackage{fancyhdr}
                                                                  \usepackage{pict2e}

                                                                  \makeatletter
                                                                  \pagestyle{fancy}
                                                                  \fancyhead[L]{%
                                                                  \begin{picture}(0,0)
                                                                  \put(\strip@pt\dimexpr0.5\textwidth-3.25em,-\strip@pt\dimexpr0.525\textheight+\headsep+0.9ex){
                                                                  \pdfliteral{q .1 .1 .1 .1 k}% apro il gruppo e imposto il colore
                                                                  \pdfliteral{0.585 1 -1 1 0 0 cm}% ruoto il testo
                                                                  \pdfliteral{3 0 0 3 0 0 cm}% scalo il testo
                                                                  \pdfescapestring{Draft}%
                                                                  \pdfliteral{Q}% chiudo il gruppo
                                                                  }
                                                                  \end{picture}
                                                                  }
                                                                  \makeatother

                                                                  \begin{document}
                                                                  \lipsum[1-13]
                                                                  \end{document}
                                                                  `

                                                                  Ciao
                                                                  Claudio

                                                                • #83071
                                                                  OldClaudio
                                                                  Partecipante
                                                                    Up
                                                                    0
                                                                    Down
                                                                    ::


                                                                    Claudio ti sei buttato su comandi pdf avanzati, ma hai toppato completamante al matrice di rotazione; quella che tu hai usato
                                                                    `\pdfliteral{0.585 1 -1 1 0 0 cm}% ruoto il testo` produxe sì una rotazione, ma anche uno slant del testo; la matrice di sola rotazione ha un determinante unitario, mentre la tua NON ha determinante unitario.

                                                                  • #83072
                                                                    Up
                                                                    0
                                                                    Down
                                                                    ::

                                                                    OldClaudio” post=84399Claudio ti sei buttato su comandi pdf avanzati, ma hai toppato completamante al matrice di rotazione; quella che tu hai usato
                                                                    `\pdfliteral{0.585 1 -1 1 0 0 cm}% ruoto il testo` produxe sì una rotazione, ma anche uno slant del testo; la matrice di sola rotazione ha un determinante unitario, mentre la tua NON ha determinante unitario.

                                                                    Ah ecco… avevo trovato un esempio `
                                                                    \pdfliteral{0 1 -1 0 0 0 cm}%
                                                                    ` che produce una rotazione di 90 gradi, ma non avevo assolutamente idea che i componenti fossero una matrice e che dovesse avere determinate unitario. 🙂

                                                                    Sotto c’è lo stesso principio di [tt]\pdfsetmatrix[/tt] che Roberto ha introdotto nei messaggi precedenti?

                                                                    Ciao
                                                                    Claudio

                                                                  • #83073
                                                                    OldClaudio
                                                                    Partecipante
                                                                      Up
                                                                      0
                                                                      Down
                                                                      ::


                                                                      Il concetto di [tt]\pdfliteral{…. cm}[/tt] è quello di definire la “current matrix”, da cui la sigla “cm”.

                                                                      La matrice di trasformazione per PostScritp e per PDF non è per davvero una matrice in senso matematico, anche se è un insieme ordinato di numeri; i sei numeri da mette al posto dei puntini hanno il significato seguente:`
                                                                      a11 a12 b1
                                                                      a21 a22 b2
                                                                      ` Nel comando [tt]\pdfliteral[/tt] vano elencati per colonne:`
                                                                      \pdfliteral{a11 a21 a12 a22 b1 b2}`
                                                                      la “colonna [tt]b1 b2[/tt] rappresenta le componenti del vettore di traslazione, mentre al matrice [tt]a11 a21 a12 a22[/tt] è la matrice di trasformazione; essa può essere scomposta in matrici parziali ognuna delle quali specifica una operazione: scalamento, stiramento, rotazione; con la terza colonna si ha anche traslazione.

                                                                      ora una trasformazione consistente in una semplice rotazione dell’angolo φ corrisponde ad un amatrice `
                                                                      cos φ -sin φ
                                                                      sin φ cos φ`
                                                                      Se non ci credi, tu che sei un comunicazionista e conosci il concetto di operatore di rotazione espresso in termini di numeri complessi, puoi verificare che questo operatore [yy]exp j φ[/tt] ha modulo unitario e componenti [tt](cos φ , sin φ)[/tt]; prendi un vettore di componenti (u , v) e moltiplicalo per quell’operatore di rotazione; in termini di parte reale e parte immaginaria ottieni proprio lo stesso effetto che ricavi moltiplicando la matrice che ho scritto sopra per il vettore colonna delle componenti del vettore da ruotare. Questo è anche uno dei motivi per i quali questo tipo di grafica si chiama grafica vettoriale. Ma queste sono cose che hai studiato in uno dei vari corsi di matematica che hai seguito durante la laurea triennale; capisco che, se non si usano tutti i giorni, è facile dimenticarsene.

                                                                      Comunque se φ=0, non si ha rotazione e la matrice suddetta diventa una matrice identità; se φ=90° i coseni si annullano e i seni diventano unitari per cui la rotazione di 90° corrisponde alla matrice che hai indicato tu. Ma il determinate della matrice è unitario, come puoi verificare con concetti di trigonometria della scuola secondaria.

                                                                      Come vedi non si tratta di cose strane e misteriose; non dico che siano alla portata di tutti, perché chi non ha studiato trigonometria e analisi complessa né al liceo né all’università o non ha fatto un corso universitario di “algebra e geometria” non ha le basi per comprenderle. Non è il caso di sentirsi in colpa se non si ha mai avuto l’opportunità di studiare queste cose.

                                                                      Allora la matrice di trasformazione che hai usato tu ha le componenti del vettore di traslazione nulle, ma la amtrice che rimane costituisce, se il nome è giusto, una omotetia unita ad una rotazione; se ti ricordi del calcolo matriciale potresti trovare quale sia la componente di rotazione e quale quella di stiramento oltre ad un fattore moltiplicativo di scala.

                                                                      Questo è anche il motivo per il quale quando usi la matrice di trasformazione di componenti [tt]3 0 0 3[/tt], che corrisponde a scalare il disegno di tre vole, il risultato non è proprio un ingrandimento del fattore tre, perché c’è di mezzo anche il fattore di scala della prima matrice.

                                                                      Ora, a parte questo bignamino di ripasso sulle matrici, si capisce che sotto la grafica vettoriale, di cui usiamo i risultati milioni di volte al giorno (ogni volta che leggiamo un testo composto con caratteri vettoriali TrueType, Type 1,, OpenType) ciè una quantità di matematica non indifferente e talvolta che va al di là delle conoscenze di base che sarebbe utile che tutti avessimo.
                                                                      Io posso essere polarizzato su queste cose perché ho usato la matematica da ricercatore in tecnologia per parecchi lustri, quindi ho una certa familiarità con queste cose. Inoltre sono stato anche per 4 anni assistente alla cattedra di matematica superiore per ingegneri, che mi ha lasciato tracce evidenti.

                                                                      Non pretendo affatto che tutti abbiano le conoscenze che ho io, e che sono la minima parte delle conoscenze che ha, invece, Enrico. Ricordo solo che ai testi di ammissione alle facoltà di ingegneria la conoscenza attesa delle basi di matematica posseduta dai futuri iscritti ammonta a circa il 30% di quello che sarebbe desiderabile; e bisogna accontentarsi, perché le conoscenza attese di fisica e chimica ammontano generalmente a un modesto 20% o qualche punto in più. Le materie scientifiche di matematica, fisica e chimica, basate su concetti non qualitativi, sono da sempre le cenerentole della formazione di base della nostra scuola secondaria superiore. Questi vuoi si colmano in alcune facoltà e tu sei fortunato che ne hai avuto al possibilità frequentando un corso di laurea dove la matematica e la statistica avanzate sono il pane quotidiano. ma penso a certe altre formazioni universitarie che…

                                                                      Scusami; scusatemi, con le mie catilinarie sono andato off topic ancora una volta.

                                                                    • #83074
                                                                      Up
                                                                      0
                                                                      Down
                                                                      ::

                                                                      OldClaudio” post=84411Il concetto di [tt]\pdfliteral{…. cm}[/tt] è quello di definire la “current matrix”, da cui la sigla “cm”.

                                                                      La matrice di trasformazione per PostScritp e per PDF non è per davvero una matrice in senso matematico, anche se è un insieme ordinato di numeri; i sei numeri da mette al posto dei puntini hanno il significato seguente:`
                                                                      a11 a12 b1
                                                                      a21 a22 b2
                                                                      ` Nel comando [tt]\pdfliteral[/tt] vano elencati per colonne:`
                                                                      \pdfliteral{a11 a21 a12 a22 b1 b2}`
                                                                      la “colonna [tt]b1 b2[/tt] rappresenta le componenti del vettore di traslazione, mentre al matrice [tt]a11 a21 a12 a22[/tt] è la matrice di trasformazione; essa può essere scomposta in matrici parziali ognuna delle quali specifica una operazione: scalamento, stiramento, rotazione; con la terza colonna si ha anche traslazione.

                                                                      ora una trasformazione consistente in una semplice rotazione dell’angolo φ corrisponde ad un amatrice `
                                                                      cos φ -sin φ
                                                                      sin φ cos φ`
                                                                      Se non ci credi, tu che sei un comunicazionista e conosci il concetto di operatore di rotazione espresso in termini di numeri complessi, puoi verificare che questo operatore [yy]exp j φ[/tt] ha modulo unitario e componenti [tt](cos φ , sin φ)[/tt]; prendi un vettore di componenti (u , v) e moltiplicalo per quell’operatore di rotazione; in termini di parte reale e parte immaginaria ottieni proprio lo stesso effetto che ricavi moltiplicando la matrice che ho scritto sopra per il vettore colonna delle componenti del vettore da ruotare. Questo è anche uno dei motivi per i quali questo tipo di grafica si chiama grafica vettoriale. Ma queste sono cose che hai studiato in uno dei vari corsi di matematica che hai seguito durante la laurea triennale; capisco che, se non si usano tutti i giorni, è facile dimenticarsene.

                                                                      Comunque se φ=0, non si ha rotazione e la matrice suddetta diventa una matrice identità; se φ=90° i coseni si annullano e i seni diventano unitari per cui la rotazione di 90° corrisponde alla matrice che hai indicato tu. Ma il determinate della matrice è unitario, come puoi verificare con concetti di trigonometria della scuola secondaria.

                                                                      Come vedi non si tratta di cose strane e misteriose; non dico che siano alla portata di tutti, perché chi non ha studiato trigonometria e analisi complessa né al liceo né all’università o non ha fatto un corso universitario di “algebra e geometria” non ha le basi per comprenderle. Non è il caso di sentirsi in colpa se non si ha mai avuto l’opportunità di studiare queste cose.

                                                                      Allora la matrice di trasformazione che hai usato tu ha le componenti del vettore di traslazione nulle, ma la amtrice che rimane costituisce, se il nome è giusto, una omotetia unita ad una rotazione; se ti ricordi del calcolo matriciale potresti trovare quale sia la componente di rotazione e quale quella di stiramento oltre ad un fattore moltiplicativo di scala.

                                                                      Questo è anche il motivo per il quale quando usi la matrice di trasformazione di componenti [tt]3 0 0 3[/tt], che corrisponde a scalare il disegno di tre vole, il risultato non è proprio un ingrandimento del fattore tre, perché c’è di mezzo anche il fattore di scala della prima matrice.

                                                                      Ora, a parte questo bignamino di ripasso sulle matrici, si capisce che sotto la grafica vettoriale, di cui usiamo i risultati milioni di volte al giorno (ogni volta che leggiamo un testo composto con caratteri vettoriali TrueType, Type 1,, OpenType) ciè una quantità di matematica non indifferente e talvolta che va al di là delle conoscenze di base che sarebbe utile che tutti avessimo.
                                                                      Io posso essere polarizzato su queste cose perché ho usato la matematica da ricercatore in tecnologia per parecchi lustri, quindi ho una certa familiarità con queste cose. Inoltre sono stato anche per 4 anni assistente alla cattedra di matematica superiore per ingegneri, che mi ha lasciato tracce evidenti.

                                                                      Non pretendo affatto che tutti abbiano le conoscenze che ho io, e che sono la minima parte delle conoscenze che ha, invece, Enrico. Ricordo solo che ai testi di ammissione alle facoltà di ingegneria la conoscenza attesa delle basi di matematica posseduta dai futuri iscritti ammonta a circa il 30% di quello che sarebbe desiderabile; e bisogna accontentarsi, perché le conoscenza attese di fisica e chimica ammontano generalmente a un modesto 20% o qualche punto in più. Le materie scientifiche di matematica, fisica e chimica, basate su concetti non qualitativi, sono da sempre le cenerentole della formazione di base della nostra scuola secondaria superiore. Questi vuoi si colmano in alcune facoltà e tu sei fortunato che ne hai avuto al possibilità frequentando un corso di laurea dove la matematica e la statistica avanzate sono il pane quotidiano. ma penso a certe altre formazioni universitarie che…

                                                                      Scusami; scusatemi, con le mie catilinarie sono andato off topic ancora una volta.

                                                                      Ecco una spiegazione chiara 🙂 Grazie mille.

                                                                      In effetti, adesso sapendo cosa sono esattamente i componenti, direi che per avere un risultato sicuro è meglio calcolarsi prima a mano l’identità (omotetia e rotazione insieme se ben ricordo).

                                                                      Una precisazione, però: sono telematico 😉 È una sfumatura sottile, concordo, ma avendo passato diversi anni a rispondere: “Ma che differenza c’è tra telecomunicazioni e telematica?”…

                                                                      Ciao
                                                                      Claudio

                                                                    • #83075
                                                                      OldClaudio
                                                                      Partecipante
                                                                        Up
                                                                        0
                                                                        Down
                                                                        ::

                                                                        Una precisazione, però: sono telematico È una sfumatura sottile, concordo, ma avendo passato diversi anni a rispondere: “Ma che differenza c’è tra telecomunicazioni e telematica?”…

                                                                        Si, lo so, hai fatto più informatica e meno elettronica, ma le materie di base e le basi della teoria delle comunicazioni sono le stesse. Perciò la matematica di base è la stessa.

                                                                        Per la sola rotazione non hai bisogno di calcolare nessun prodotto di matrici; se vuoi ruotare di 58°, per esempio, ti calcoli con una macchinetta il seno (0.848048096156426) e il coseno (0.529919264233205), magari con soli 5 decimali, e usi:`
                                                                        \pdfliteral{0.52992 0.84805 -0.84805 0.52992 0 0 cm}` ed è fatto tutto. Per ingrandire la scritta Draft puoi usare la current transofrm che hai usato tu; bisogna vedere se conviene usarla prima o dopo della trsformazione per la rotazione; essendo una matrice diagonale, non dovrebbe esserci differenza.

                                                                        Se invece vuoi specificare l’angolo devi scrivere le macro per calcolare seno e coseno; se vuoi determinare il seno e coseno con le dimensioni dalla gabbia di stampa, devi usare il teorema di Pitagora, ma devi anche scriverti una macro per la radice quadrata, necessaria per calcolare la diagonale, cioè l’ipotenusa del triangolo rettangolo ottenuto dividendo la gabbia/rettangolo di stampa con la sua diagonale.

                                                                        Come vedi non è concettualmente difficile; lo è dal punto di vista della programmazione se non puoi usare altri pacchetti oltre a quelli specificati dai termini del concorso #1. 😉 Oppure usi la libreria l3fp che è ormai parte integrante di pdflatex, anche se è scritta in linguaggio LaTeX3 sperimentale, linguaggio che pochi conoscono. Io non lo conosco, anche se ci ho provato; per la libreria l3fp riesco a “indovinare” gli algoritmi, ma non riesco a seguire i dettagli.:sad:

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

                                                                    Go to top