ArteLaTeX (febbraio 2012) figura 8: bibliografie suddivise

  • Creatore
    Topic
  • #80608
    alegenn
    Partecipante
      Up
      0
      Down
      ::


      Buongiorno,
      volevo sapere quale pacchetto utilizzare per creare figure come quella alla quale faccio riferimento in oggetto.
      Grazie

    Visualizzazione 44 filoni di risposte
    • Autore
      Risposte
      • #80609
        claudio
        Partecipante
          Up
          0
          Down
          ::


          i metodi sono due
          pacchetti:
          subfig e subcaption
          per quale sia il migliore
          vedi questa discussione
          discussione
          ciao
          claudio

        • #80610
          Up
          0
          Down
          ::

          alegenn” post=79824Buongiorno,
          volevo sapere quale pacchetto utilizzare per creare figure come quella alla quale faccio riferimento in oggetto.
          Grazie

          Intendi le figure a pagina con l’orecchia piegata? Le ha fatte Lorenzo con OmniGraffle, un programma a pagamento per Mac.

          Ciao
          Tommaso

        • #80611
          alegenn
          Partecipante
            Up
            0
            Down
            ::


            Precisamente, supponevo ci fosse un programma apposito…
            Forse nel mio post mi sono espresso male, non mi riferivo alla disposizione e numerazione delle figure, bensì alla loro forma.
            Grazie a tutti.

          • #80612
            Up
            0
            Down
            ::


            Serve assolutamente una versione con TikZ 😉 …

            … ad esempio:

            [attachment=515]tikz_sphere.jpg[/attachment]

            Il relativo codice:`
            \documentclass{article}
            \usepackage{tikz,lipsum}

            \makeatletter

            \pgfkeys{/tikz/.cd,
            corner size/.initial=10pt
            }

            \pgfdeclareshape{document}{
            \inheritsavedanchors[from=rectangle]
            \inheritanchorborder[from=rectangle]
            \inheritanchor[from=rectangle]{center}
            \inheritanchor[from=rectangle]{north}
            \inheritanchor[from=rectangle]{south}
            \inheritanchor[from=rectangle]{west}
            \inheritanchor[from=rectangle]{east}

            \savedmacro\cornersize{%
            \edef\cornersize{\pgfkeysvalueof{/tikz/corner size}}%
            }

            % … and possibly more
            \backgroundpath{
            \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
            \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
            % compute corner of ‘‘flipped page’’
            \pgf@xc=\pgf@xb \advance\pgf@xc by-\cornersize
            \pgf@yc=\pgf@yb \advance\pgf@yc by-\cornersize
            % construct main path
            \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
            \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
            \pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yb}}
            \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
            \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
            \pgfpathclose
            % add little corner
            \pgfpathmoveto{\pgfpoint{\pgf@xc}{\pgf@yb}}
            \pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
            \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
            \pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
            }
            }
            \makeatother

            \begin{document}

            \tikzset{document color/.style={top color=cyan!10, bottom color=cyan!20}}
            \tikzset{document size/.style={minimum width=\textwidth,minimum height=0.8\textheight,text width=0.7\textwidth}}
            \begin{tikzpicture}
            \node[draw,document, corner size=50pt,document color, document size] (x) {
            \lipsum[1-2]
            };
            \end{tikzpicture}

            \end{document}
            ` Notare che può essere sicuramente migliorato (magari con un ripiego più smooth) da qualche esperto di forme come Spike: io ho semplicemente “rubato” il codice a pagina 631 del manuale di TikZ.. ed aggiunto un parametro per cambiare le dimensioni del ripiego.

            Ciao
            Claudio

            Attachments:
            You must be logged in to view attached files.
          • #80613
            lorenzo.pantieri
            Partecipante
              Up
              0
              Down
              ::

              cfiandra” post=79833
              Notare che può essere sicuramente migliorato (magari con un ripiego più smooth)

              Magari? 😉

              cfiandra” post=79833
              da qualche esperto […]

              Come volevasi dimostrare: TikZ è roba per esperti. Io quel disegno l’ho ottenuto in tre secondi con un programma di grafica vettoriale (OmniGraffle, appunto) senza alcuna esperienza e senza aver aperto il manuale. Per avere un disegno di quella qualità con TikZ ci vuole un super-esperto. Ecco perché l’Arte non parla di TikZ.

            • #80614
              Up
              0
              Down
              ::

              lorenzo.pantieri” post=79834

              Notare che può essere sicuramente migliorato (magari con un ripiego più smooth)

              Magari? 😉

              Direi che ci posso pensare un attimo.. in realtà basterebbe cambiare le righe
              `% add little corner
              \pgfpathmoveto{\pgfpoint{\pgf@xc}{\pgf@yb}}
              \pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
              \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
              \pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}` con qualcosa tipo [tt]\pgfpathcurveto[/tt] o [tt]\pgfpatharc[/tt].. insomma è fattibile.

              lorenzo.pantieri” post=79834

              da qualche esperto […]

              Come volevasi dimostrare: TikZ è roba per esperti. Io quel disegno l’ho ottenuto in tre secondi con un programma di grafica vettoriale (OmniGraffle, appunto) senza alcuna esperienza e senza aver aperto il manuale. Per avere un disegno di quella qualità con TikZ ci vuole un super-esperto. Ecco perché l’Arte non parla di TikZ.

              In realtà mi ricordavo di un post in cui si diceva che la prossima versione dell’Arte avrebbe avuto un capitolo su TikZ (o quanto meno sul disegno programmato)… (lo troverò un giorno :D: trovato, con google non con la ricerca interna del forum: http://guitex.org/home/it/forum/5-tex-e-latex/76161-un-pacchetto-qscientificoq-per-larte-consigli?limit=15#76163)

              Poi va detto che, ad essere onesti, il codice importante non è in TikZ, ma PGF per la dichiarazione della forma. TikZ viene solo usato nel documento e non credo sia poi così complicato da scrivere come codice. Certo se proprio si è alle prime armi magari non si definiscono le dimensioni e i colori con [tt]tikzset[/tt], ma io resto sempre convinto che TikZ sia intuitivo.. per essere codice. Poi concordo che a volte con due colpi di mouse si fa prima, ma ci si perde la soddisfazione di capire cosa succede veramente dietro le quinte.

              Ciao
              Claudio

            • #80615
              Up
              0
              Down
              ::


              `\documentclass[a4paper]{article}

              \usepackage{tikz}
              \usepackage{lipsum}

              \begin{document}
              \begin{tikzpicture}
              \draw[fill=cyan!10] (-6,-8) — (-6,10) — (4.5,10) — (6,8.5) — (6,-8) — cycle;
              \draw (4.5,10) |- (6,8.5);
              \node[text width=10cm,align=justify] at (0,0){\lipsum[1-3]};
              \end{tikzpicture}
              \end{document}
              `
              con ben 3 righe di codice ora si che mi sento un super-mega-esperto. A parte gli scherzi, l’approccio di claudio è un po’ più complicato, ma sicuramente più potente visto che rende disponibile la forma permettendo di riutilizzarla quante volte si vuole. Se si devono fare pochi disegni bastano queste 3 righe e 5 minuti. Inutile stare a dire che un sistema è più veloce dell’altro. Ovvio che una interfaccia grafica è più veloce dello scrivere codice all’inizio, e se si fa un solo disegno la differenza si vede. Ma quando bisogna produrne molti molto simili in questo modo è molto più facile modificare le parti che interessano e riutilizzare le altre. Senza contare di avere il vantaggio di usare un solo programma (open source, tra l’altro).
              Per fare questo disegno ci vogliono 5 minuti (se non sei esperto). Dire “senza aprire il manuale” è come dire “uso word e non apro le guide invece con LaTeX devo leggerne a bizzeffe”. La filosofia è la stessa.

              Ciao
              Fra

            • #80616
              Up
              0
              Down
              ::


              Si potrebbe definire un comando apposito, per esempio:
              `\documentclass[a5paper]{article}

              \usepackage{tikz}
              \usetikzlibrary{calc,backgrounds}
              \usepackage{pdfpages}

              \def\foldedpageside{5em}
              \def\foldedpagecorner{0.25}
              \newcommand\insertfoldedpage[2][]{%
              \begin{tikzpicture}[inner sep=0pt, radius=\foldedpagecorner*\foldedpageside]
              \node (foldedpage) {\includegraphics[#1]{#2}};
              \begin{scope}[on background layer]
              \draw[fill=cyan!10]
              ($(foldedpage.north east)-(0,\foldedpageside)$)
              arc[start angle=0, end angle=45] coordinate (b)
              arc[start angle=45, end angle=90] -|
              ($(foldedpage.north east)-({(1-\foldedpagecorner)*\foldedpageside},
              \foldedpagecorner*\foldedpageside)$)
              arc[start angle=0, end angle=45] coordinate (a)
              arc[start angle=45, end angle=90] —
              (foldedpage.north west) — (foldedpage.south west) —
              (foldedpage.south east) — cycle;
              \draw[fill=cyan] (a) — (b);
              \end{scope}
              \end{tikzpicture}%
              }

              \begin{document}
              \insertfoldedpage[width=0.8\textwidth]{esempio.pdf}
              \end{document}`

            • #80617
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                La Guida GuIT usa la paginetta disegnata con uno sfondoc celeste chiaro da alcuni anni. Ora sono all’estero e non mi ricorso se il codice è commentata nel testo, oppure è solo inserito fra le macro usate per la compilazione della Guida. Si tratta di un codice molto simile a quello invato da Francesco. Ci volgiono vermante pochi minuti per programmare quel disegnino. Io non ho aperto il manuale e non sono un esperto di TiKz.

              • #80618
                lorenzo.pantieri
                Partecipante
                  Up
                  0
                  Down
                  ::

                  Spike” post=79838
                  con ben 3 righe di codice ora si che mi sento un super-mega-esperto.

                  L’equazione di Dirac occupa mezza riga. Tu diresti che allora è facile e/o alla portata di un non esperto?

                  Spike” post=79838Per fare questo disegno ci vogliono 5 minuti (se non sei esperto). Dire “senza aprire il manuale” è come dire “uso word e non apro le guide invece con LaTeX devo leggerne a bizzeffe”. La filosofia è la stessa.

                  No, non mi pare la stessa cosa. Per comporre un disegno come quello partendo da zero, con OmniGraffle bastano due minuti per capire che la possibilità esiste e due secondi per farlo; con TikZ bisogna prima investire un buon numero di ore per impadronirsi della sintassi del programma (anche se una volta fatto questo massiccio investimento il disegno è questione di poche istruzioni).

                • #80619
                  lorenzo.pantieri
                  Partecipante
                    Up
                    0
                    Down
                    ::

                    cfiandra” post=79836
                    In realtà mi ricordavo di un post in cui si diceva che la prossima versione dell’Arte avrebbe avuto un capitolo su TikZ (o quanto meno sul disegno programmato).

                    No: la nuova Arte conterrà un capitolo (solo) su pgfplots.

                  • #80620
                    lorenzo.pantieri
                    Partecipante
                      Up
                      0
                      Down
                      ::

                      antonio.macrì” post=79841
                      Si potrebbe definire un comando apposito, per esempio:

                      Complimenti per il tuo codice (di cui non capisco nulla): lo considero un pezzo di bravura, alla pari di quelli che dà spesso Enrico per risolvere problemi specifici: roba per esperti, non per utenti “normali”.

                    • #80621
                      Up
                      0
                      Down
                      ::


                      Ciao,

                      lorenzo.pantieriComplimenti per il tuo codice (di cui non capisco nulla): lo considero un pezzo di bravura, alla pari di quelli che dà spesso Enrico per risolvere problemi specifici: roba per esperti, non per utenti “normali”

                      In effetti non avrei saputo scrivere il codice scritto da Antonio; almeno non così su due piedi. Comunque ho provato a rifare il suo disegno alla veloce con le mie conoscenze (da non esperto). Ecco il risultato:
                      `\documentclass[a5paper]{article}

                      \usepackage{tikz}
                      % Librerie
                      \usetikzlibrary{automata}
                      \usetikzlibrary{arrows}
                      \usetikzlibrary{backgrounds}
                      \usetikzlibrary{calc}
                      \usetikzlibrary{hobby}
                      \usetikzlibrary{intersections}
                      \usetikzlibrary{mindmap}
                      \usetikzlibrary{patterns}
                      \usetikzlibrary{positioning}
                      \usetikzlibrary{shadows}
                      \usetikzlibrary{shapes}
                      \usetikzlibrary{through}
                      \usetikzlibrary{trees}
                      % Pacchetti
                      \usepackage{tkz-euclide}
                      \usetkzobj{all}

                      \usepackage{lipsum}

                      \pagestyle{empty}

                      \begin{document}

                      \centering
                      \begin{tikzpicture}[scale=.75]

                      % definizioni e macro
                      \def\lung{10.5} %larghezza foglio
                      \def\alt{14.85} %altezza foglio
                      \def\pieg{2.5}
                      \def\r{1.1}

                      % coordinate
                      \coordinate (bs) at (0,0); %punto in basso a sinistra
                      \coordinate (bd) at ($(bs)+(\lung,0)$); %punto in basso a destra
                      \coordinate (ad) at ($(bs)+(\lung,\alt)$); %punto in alto a destra
                      \coordinate (as) at ($(bs)+(0,\alt)$); %punto in alto a sinistra
                      \coordinate (bad) at ($(ad)+(0,-\pieg)$);
                      \coordinate (sad) at ($(ad)+(-\pieg,0)$);
                      \coordinate (bbad) at ($(bad)+(0,-\r)$);
                      \coordinate (ssad) at ($(sad)+(-\r,0)$);

                      \coordinate (fpa) at ($(bbad)+(-\r,0)+(90:\r)$);
                      \coordinate (intfpa) at ($(bbad)+(-\r,0)+(45:\r)$);
                      \coordinate (fsa) at ($(ssad)+(0,-\r)+(0:\r)$);
                      \coordinate (intfsa) at ($(ssad)+(0,-\r)+(45:\r)$);
                      \coordinate (spigolo) at (fpa -| fsa);

                      % disegno foglio
                      \draw [gray!85] (intfpa) — (intfsa);
                      \draw [gray!85,shade, bottom color=white, top color=cyan!35] (bs) — (bd) — (bbad) arc (0:90:\r) — (spigolo) — (fsa) arc (0:90:\r) — (as) — cycle;

                      % scritta
                      \draw ($(bs)!.5!(ad)+(-.5,0)$) [text width=4.5cm, align=justify] node {\small \lipsum[3]};

                      \end{tikzpicture}

                      \end{document}`
                      Come si può notare il disegno è parametrico e quindi rapidamente modificabile in pochi attimi. Certo, così com’è è proprio da sistemare…

                      Lorenzo, questo non c’entra con [tt]TikZ:[/tt] il disegno della pagina che hai fatto non mi sembra fisicamente del tutto corretto. Infatti “l’angolo piegato” mantiene i suoi lati paralleli a quelli del foglio, ma l’angolo che il tratto inclinato in alto a destra nel disegno definisce non è di 45 gradi…

                      Ciao e buona serata!
                      Marco.

                    • #80622
                      alegenn
                      Partecipante
                        Up
                        0
                        Down
                        ::

                        antonio.macrì” post=79841Si potrebbe definire un comando apposito, per esempio:
                        `\documentclass[a5paper]{article}

                        \usepackage{tikz}
                        \usetikzlibrary{calc,backgrounds}
                        \usepackage{pdfpages}

                        \def\foldedpageside{5em}
                        \def\foldedpagecorner{0.25}
                        \newcommand\insertfoldedpage[2][]{%
                        \begin{tikzpicture}[inner sep=0pt, radius=\foldedpagecorner*\foldedpageside]
                        \node (foldedpage) {\includegraphics[#1]{#2}};
                        \begin{scope}[on background layer]
                        \draw[fill=cyan!10]
                        ($(foldedpage.north east)-(0,\foldedpageside)$)
                        arc[start angle=0, end angle=45] coordinate (b)
                        arc[start angle=45, end angle=90] -|
                        ($(foldedpage.north east)-({(1-\foldedpagecorner)*\foldedpageside},
                        \foldedpagecorner*\foldedpageside)$)
                        arc[start angle=0, end angle=45] coordinate (a)
                        arc[start angle=45, end angle=90] —
                        (foldedpage.north west) — (foldedpage.south west) —
                        (foldedpage.south east) — cycle;
                        \draw[fill=cyan] (a) — (b);
                        \end{scope}
                        \end{tikzpicture}%
                        }

                        \begin{document}
                        \insertfoldedpage[width=0.8\textwidth]{esempio.pdf}
                        \end{document}`

                        Complimenti, mi tolgo il cappello… Funziona egregiamente.
                        Non avevo pensato a tikz…
                        Saluti e grazie

                      • #80623
                        Up
                        0
                        Down
                        ::


                        Bene.. ho scatenato una maratona 😀

                        Quello che mi piace della forma è che una volta fatta si è a posto per sempre. Il mio nuovo tentativo farà storcere il naso a qualcuno (per il numero di nuove dimensioni create), ma ci ho impiegato 35 minuti e sinceramente devo ancora impratichirmi su questo argomento. Il bello è che pur programmando male il risultato è altamente personalizzabile…`\documentclass{article}
                        \usepackage{tikz,lipsum}

                        \makeatletter

                        \pgfkeys{/tikz/.cd,
                        corner size/.initial=10pt,
                        inner corner size/.initial=5pt,
                        corner start/.initial=15pt,
                        corner end/.initial=5pt,
                        corner up height/.initial=5pt,
                        corner down height/.initial=15pt,
                        fine sep/.initial=1.35pt,
                        }

                        \newlength\pgf@xd
                        \newlength\pgf@xe
                        \newlength\pgf@yf
                        \newlength\pgf@yg
                        \newlength\pgf@xh
                        \newlength\pgf@yh
                        \newlength\pgf@xi
                        \newlength\pgf@yi

                        \pgfdeclareshape{document}{
                        \inheritsavedanchors[from=rectangle]
                        \inheritanchorborder[from=rectangle]
                        \inheritanchor[from=rectangle]{center}
                        \inheritanchor[from=rectangle]{north}
                        \inheritanchor[from=rectangle]{north west}
                        \inheritanchor[from=rectangle]{south}
                        \inheritanchor[from=rectangle]{west}
                        \inheritanchor[from=rectangle]{east}

                        \savedmacro\cornersize{%
                        \edef\cornersize{\pgfkeysvalueof{/tikz/corner size}}%
                        }

                        \savedmacro\innercornersize{%
                        \edef\innercornersize{\pgfkeysvalueof{/tikz/inner corner size}}%
                        }

                        \savedmacro\startcornersize{%
                        \edef\startcornersize{\pgfkeysvalueof{/tikz/corner start}}%
                        }

                        \savedmacro\endcornersize{%
                        \edef\endcornersize{\pgfkeysvalueof{/tikz/corner end}}%
                        }

                        \savedmacro\cornerupheight{%
                        \edef\cornerupheight{\pgfkeysvalueof{/tikz/corner up height}}%
                        }

                        \savedmacro\cornerdownheight{%
                        \edef\cornerdownheight{\pgfkeysvalueof{/tikz/corner down height}}%
                        }

                        \savedmacro\finesep{%
                        \edef\finesep{\pgfkeysvalueof{/tikz/fine sep}}%
                        }
                        % … and possibly more
                        \backgroundpath{
                        \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
                        \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
                        % compute corner of ‘‘flipped page’’
                        \pgf@xc=\pgf@xb \advance\pgf@xc by-\cornersize
                        \pgf@yc=\pgf@yb \advance\pgf@yc by-\cornersize

                        \setlength{\pgf@xd}{\pgf@xb}
                        \advance\pgf@xd by-\startcornersize

                        \setlength{\pgf@xe}{\pgf@xb}
                        \advance\pgf@xe by-\endcornersize

                        \setlength{\pgf@yf}{\pgf@yb}
                        \advance\pgf@yf by-\cornerupheight

                        \setlength{\pgf@yg}{\pgf@yb}
                        \advance\pgf@yg by-\cornerdownheight

                        \setlength{\pgf@xh}{\pgf@xb}
                        \advance\pgf@xh by-\cornersize
                        \advance\pgf@xh by-\finesep

                        \setlength{\pgf@yh}{\pgf@yb}
                        \advance\pgf@yh by-\finesep

                        \setlength{\pgf@xi}{\pgf@xb}
                        \advance\pgf@xi by-\finesep

                        \setlength{\pgf@yi}{\pgf@yb}
                        \advance\pgf@yi by-\cornersize
                        \advance\pgf@yi by-\finesep

                        % construct main path
                        \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}} %start
                        \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}} % go up
                        \pgfpathlineto{\pgfpoint{\pgf@xd}{\pgf@yb}} % go straight on untill start corner
                        \pgfpatharc{90}{0}{\innercornersize}
                        \pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
                        \pgfpathlineto{\pgfpoint{\pgf@xe}{\pgf@yc}}
                        \pgfpatharc{90}{0}{\innercornersize}
                        \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
                        \pgfpathclose
                        % add little corner
                        \pgfpathmoveto{\pgfpoint{\pgf@xh}{\pgf@yh}}
                        \pgfpathlineto{\pgfpoint{\pgf@xi}{\pgf@yi}}
                        }
                        }
                        \makeatother

                        \begin{document}

                        \tikzset{document color/.style={top color=cyan!5, bottom color=cyan!20}}

                        \begin{tikzpicture}
                        \node[draw,document,document color,minimum height=2cm,text width=1.75cm] (x) {
                        This is my node
                        with some text
                        };
                        \end{tikzpicture}
                        \vspace{1cm}
                        \tikzset{document size/.style={
                        minimum width=\textwidth,minimum height=0.8\textheight,text width=0.7\textwidth,
                        corner size=50pt,
                        inner corner size=25pt,
                        corner start=75pt,
                        corner end=25pt,
                        fine sep/.initial=7pt,
                        inner sep=2cm,
                        }}

                        \begin{tikzpicture}
                        \node[draw,document,document color,document size] (x) {
                        \lipsum[1-2]
                        };
                        \end{tikzpicture}
                        \end{document}
                        ` Ecco i risultati; in piccolo:

                        [attachment=516]Immagine1.jpg[/attachment]

                        e in grande:

                        [attachment=518]Immagine_2012-11-16.jpg[/attachment]

                        Ovviamente si può utilizzare il metodo di Antonio per includere direttamente una pagina in pdf con il pacchetto pdfpages. Ah.. seguendo il suo metodo, per calcolare gli estremi della pagina, potrebbe essere utile sfruttare il pacchetto tikzpagenodes.

                        Ciao
                        Claudio

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



                          @cfiandra
                          anche a me piacciono le forme, ma sono effettivamente un po’ complicate. Probabilmente una volta che ci hai messo mano diventa semplice come il resto…
                          Comunque, la tua pagina mi piace, però mi chiedo come starebbe con il retro pagina di ciano con un’altra intensità e un po’ di ombra sotto “l’orecchia”. Chissà perché io l’angolo rivoltato lo vedrei più acuto che retto.

                        • #80625
                          Up
                          0
                          Down
                          ::

                          lorenzo.pantieri” post=79871

                          Si potrebbe definire un comando apposito, per esempio:

                          Complimenti per il tuo codice (di cui non capisco nulla): lo considero un pezzo di bravura, alla pari di quelli che dà spesso Enrico per risolvere problemi specifici: roba per esperti, non per utenti “normali”.

                          Ti ringrazio per i complimenti, Lorenzo, ma credo che il tuo paragone sia un po’ forte :). Non sono un esperto di TikZ, a questo filone ha partecipato gente che ne sa oggettivamente più di me. Per scrivere quel codice bastava sapere alcune cose: come si usano gli archi (facilmente raggiungibile dalla documentazione, anche se ci può volere qualche minuto per inquadrarli); che si può inserire la dichiarazione di una coordinata in una [tt]\draw[/tt] (ma non era fondamentale); che si può includere un’immagine nel corpo di un nodo (può sembrare scontato ma potrebbe non esserlo); e soprattutto i livelli (non ricordavo l’esatta sintassi ma mi è bastato cercare [tt]background layer[/tt] nel manuale). Il resto è pensare un attimo a come tracciare le linee.

                          cfiandra” post=79881
                          Ovviamente si può utilizzare il metodo di Antonio per includere direttamente una pagina in pdf con il pacchetto pdfpages. Ah.. seguendo il suo metodo, per calcolare gli estremi della pagina, potrebbe essere utile sfruttare il pacchetto tikzpagenodes.

                          No, in realtà caricavo pdfpages senza motivo, per qualche esperimento precedente… 🙂 L’inclusione della pagina avviene con un semplice [tt]\includegraphics[/tt]. Immaginavo che @alegenn volesse un comando analogo, per inserire una o più immagini o PDF in un ambiente [tt]figure[/tt].
                          Tra l’altro nel mio codice precedente ho dimenticato di levare un [tt]fill=cyan[/tt] inutile.

                          Liverpool” post=79890… Chissà perché io l’angolo rivoltato lo vedrei più acuto che retto.

                          Intendi un angolo ottuso? Si potrebbe provare con delle ellissi… magari stasera. 😉

                        • #80626
                          Liverpool
                          Partecipante
                            Up
                            0
                            Down
                            ::

                            antonio.macrì” post=79893Intendi un angolo ottuso? Si potrebbe provare con delle ellissi… magari stasera. 😉

                            Sì scusa. Ho ovviamente sbagliato.

                          • #80627
                            Up
                            0
                            Down
                            ::

                            lorenzo.pantieri” post=79869L’equazione di Dirac occupa mezza riga. Tu diresti che allora è facile e/o alla portata di un non esperto?

                            Hai ragione, ma mi stai dicendo che non capisci cosa fanno quelle tre righe di codice? Credo che l’unica difficoltà possa essere capire che oggetto è un [tt]\node[/tt], ma 5 minuti di manuale te lo spiegano. La prima volta che lo apri intendo, perché è una delle cose che si usa di più in assoluto.

                            No, non mi pare la stessa cosa. Per comporre un disegno come quello partendo da zero, con OmniGraffle bastano due minuti per capire che la possibilità esiste e due secondi per farlo; con TikZ bisogna prima investire un buon numero di ore per impadronirsi della sintassi del programma (anche se una volta fatto questo massiccio investimento il disegno è questione di poche istruzioni).

                            Hai mai provato ad utilizzare TikZ? Credo che almeno una prova sia d’obbligo per sapere se davvero qualcosa sia difficile o no. Guardare il codice degli altri e dire “è difficile” succede sempre. Pure uno che confronta LaTeX e Word dice che LaTeX è più difficile di Word. E ci credo, è così, però mi sembra che i vantaggi siano anche notevoli. La curva di apprendimento iniziale è ripida per LaTeX e per TikZ rispetto a Word e Omnigraffle, però credo che i primi 2 abbiano potenzialità 100 volte maggiori dei secondi.

                            Ciao
                            Fra

                          • #80628
                            Up
                            0
                            Down
                            ::



                            @Antonio
                            : non ti serve guardare gli ellissi… l’operazione [tt]arc[/tt] ha già di per se la capacità di generare ellissi (a pagina 246 c’è un esempio in cui indirettamente si evidenzia che la forma [tt]ellipse[/tt] può essere disegnata con [tt]arc[/tt]).


                            @Liverpool
                            : io ho cominciato veramente da poco a voler imparare la gestione delle forme.. pian piano migliorerò: come in ogni cosa ci vuole tempo. Ammetto che non è semplice capire il funzionamento, sapere esattamente quali dimensioni possono essere definite (ad esempio mi beccavo sempre un sacco di errori definendo [tt]\pgf@xd[/tt] e così via- per questo poi ho tagliato corto). Devo dire, però che anche se non perfetto, il mio metodo permette anche di fare cose più fancy rispetto ad una semplice piegatura ad angolo retto.

                            Nel nuovo esempio servono due ulteriori parametri che permettono di modificare il segmento di congiunzione della piega: `\documentclass{article}
                            \usepackage{tikz,lipsum}

                            \makeatletter
                            \pgfkeys{/tikz/.cd,
                            corner size/.initial=10pt,
                            inner corner size/.initial=5pt,
                            corner start/.initial=15pt,
                            corner end/.initial=5pt,
                            corner up height/.initial=5pt,
                            corner down height/.initial=15pt,
                            fine sep start/.initial=1.35pt,
                            fine sep end/.initial=1.35pt,
                            }

                            \newlength\pgf@xd
                            \newlength\pgf@xe
                            \newlength\pgf@yf
                            \newlength\pgf@yg
                            \newlength\pgf@xh
                            \newlength\pgf@yh
                            \newlength\pgf@xi
                            \newlength\pgf@yi

                            \pgfdeclareshape{document}{
                            \inheritsavedanchors[from=rectangle]
                            \inheritanchorborder[from=rectangle]
                            \inheritanchor[from=rectangle]{center}
                            \inheritanchor[from=rectangle]{north}
                            \inheritanchor[from=rectangle]{north west}
                            \inheritanchor[from=rectangle]{south}
                            \inheritanchor[from=rectangle]{west}
                            \inheritanchor[from=rectangle]{east}

                            \savedmacro\cornersize{%
                            \edef\cornersize{\pgfkeysvalueof{/tikz/corner size}}%
                            }

                            \savedmacro\innercornersize{%
                            \edef\innercornersize{\pgfkeysvalueof{/tikz/inner corner size}}%
                            }

                            \savedmacro\startcornersize{%
                            \edef\startcornersize{\pgfkeysvalueof{/tikz/corner start}}%
                            }

                            \savedmacro\endcornersize{%
                            \edef\endcornersize{\pgfkeysvalueof{/tikz/corner end}}%
                            }

                            \savedmacro\cornerupheight{%
                            \edef\cornerupheight{\pgfkeysvalueof{/tikz/corner up height}}%
                            }

                            \savedmacro\cornerdownheight{%
                            \edef\cornerdownheight{\pgfkeysvalueof{/tikz/corner down height}}%
                            }

                            \savedmacro\finesep{%
                            \edef\finesep{\pgfkeysvalueof{/tikz/fine sep start}}%
                            }

                            \savedmacro\finesepend{%
                            \edef\finesepend{\pgfkeysvalueof{/tikz/fine sep end}}%
                            }

                            % … and possibly more
                            \backgroundpath{
                            \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
                            \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
                            % compute corner of ‘‘flipped page’’
                            \pgf@xc=\pgf@xb \advance\pgf@xc by-\cornersize
                            \pgf@yc=\pgf@yb \advance\pgf@yc by-\cornersize

                            \setlength{\pgf@xd}{\pgf@xb}
                            \advance\pgf@xd by-\startcornersize

                            \setlength{\pgf@xe}{\pgf@xb}
                            \advance\pgf@xe by-\endcornersize

                            \setlength{\pgf@yf}{\pgf@yb}
                            \advance\pgf@yf by-\cornerupheight

                            \setlength{\pgf@yg}{\pgf@yb}
                            \advance\pgf@yg by-\cornerdownheight

                            \setlength{\pgf@xh}{\pgf@xb}
                            \advance\pgf@xh by-\cornersize
                            \advance\pgf@xh by-\finesep

                            \setlength{\pgf@yh}{\pgf@yb}
                            \advance\pgf@yh by-\finesep

                            \setlength{\pgf@xi}{\pgf@xb}
                            \advance\pgf@xi by-\finesepend

                            \setlength{\pgf@yi}{\pgf@yb}
                            \advance\pgf@yi by-\cornersize
                            \advance\pgf@yi by-\finesepend

                            % construct main path
                            \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}} %start
                            \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}} % go up
                            \pgfpathlineto{\pgfpoint{\pgf@xd}{\pgf@yb}} % go straight on untill start corner
                            \pgfpatharc{90}{0}{\innercornersize}
                            \pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
                            \pgfpathlineto{\pgfpoint{\pgf@xe}{\pgf@yc}}
                            \pgfpatharc{90}{0}{\innercornersize}
                            \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
                            \pgfpathclose
                            % add little corner
                            \pgfpathmoveto{\pgfpoint{\pgf@xh}{\pgf@yh}}
                            \pgfpathlineto{\pgfpoint{\pgf@xi}{\pgf@yi}}
                            \pgfpathclose
                            }
                            }
                            \makeatother

                            \begin{document}

                            \tikzset{document color/.style={top color=cyan!5, bottom color=cyan!20}}
                            \tikzset{document size/.style={
                            minimum width=0.7\textwidth,
                            minimum height=0.8\textheight,
                            text width=0.6\textwidth,
                            inner sep=2.35cm,
                            align=justify,
                            corner size=60pt,
                            inner corner size=25pt,
                            corner start=80pt,
                            corner end=25pt,
                            fine sep end=7.4pt,
                            fine sep start=4.8pt,
                            }
                            }

                            \begin{tikzpicture}
                            \node[draw,document,document color,document size] (x) {
                            \lipsum[1-2]
                            };
                            \end{tikzpicture}
                            \end{document}
                            ` Risultato:

                            [attachment=519]Immagine_2012-11-16-2.jpg[/attachment]

                            Per quanto riguarda la colorazione della parte piegata: è un vero casino… cioè, siccome il path viene originato a metà di un arco, prosegue verso una seconda metà di un arco prima di dirigersi in una coordinata nota (l’angolo del foglio) mi riesce complicato con le conoscenze attuali capire come fare. L’ombreggiatura, invece, dovrebbe essere meno complicata: pensavo di disegnare un secondo segmento più spesso partendo dall’estremo del foglio, seguendo l’arco e arrivando nell’angolo del foglio per poi applicare un fading. Appena capisco come si fa aggiorno. 😉

                            Ciao
                            Claudio

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



                              @cfiandra
                              , molto bello. Purtroppo però penso di averti condotto involontariamente ad un errore: l’angolo di piegatura dovrebbe essere ottuso e non acuto, come ha giustamente osservato Antonio. Io pensavo a qualcosa tipo triangolo isoscele con un vertice sulla bisettrice dell’angolo retto non ripiegato. Ovviamente poi ognuno il foglio se lo piega come vuole, ma visto dall’alto, non penso che l’angolo possa sembrare acuto in nessun caso (forse mi sbaglio). Scusa.

                              Ciao

                            • #80630
                              Up
                              0
                              Down
                              ::

                              cfiandra” post=79896Per quanto riguarda la colorazione della parte piegata: è un vero casino… cioè, siccome il path viene originato a metà di un arco, prosegue verso una seconda metà di un arco prima di dirigersi in una coordinata nota (l’angolo del foglio) mi riesce complicato con le conoscenze attuali capire come fare.

                              Infatti. Bene, me lo segno: [tt]start angle[/tt] e [tt]end angle[/tt] con le ellissi non funzionano come ci si aspetterebbe. Gli angoli che si danno non vengono presi come riferiti all’ellisse stessa, bensì al cerchio che la contiene. Mi ci è voluto un po’ per capire come funzionasse la cosa, ma alla fine l’ho trovata spiegata qui. La documentazione certo è spartana, per nulla chiara:

                              [tt]\pgfpatharc{start angle}{end angle}{radius and y-radius}[/tt]

                              Imaging the curve between start angle and end angle on a circle of radius

                              Comunque:`
                              \documentclass[a4paper]{article}

                              \usepackage{tikz}
                              \usetikzlibrary{calc,backgrounds}
                              \usepackage[labelfont=bf]{caption}
                              \usepackage{subfig}

                              \def\foldedpagefold{1cm}
                              \def\foldedpagecorner{0.4}
                              \newcommand\includefoldedpage[2][]{%
                              \begin{tikzpicture}[inner sep=0pt, x=1pt, y=1pt]
                              \node (foldedpage) {\includegraphics[#1]{#2}};
                              \begin{scope}[on background layer]
                              \pgfmathparse{\foldedpagefold}\let\a\pgfmathresult
                              \pgfmathparse{(\foldedpagecorner*\foldedpagefold)}\let\b\pgfmathresult
                              % pagina
                              \draw[fill=cyan!10]
                              ($(foldedpage.north east)-(\a,\a)$) arc (90:0:{\a} and \b) |-
                              (foldedpage.south west) |-
                              ($(foldedpage.north east)-(\a+\b,0)$) arc (90:0:{\b} and \a) — cycle;
                              % ombreggiatura
                              \draw[fill=black!10, draw=none]
                              ($(foldedpage.north east)-(\a+\b,0)$)
                              arc (90:0:{\b} and \a) arc (90:0:{\a} and \b)
                              arc (0:90:\a-1 and \b-4) arc (0:90:\b+1 and \a+4);
                              % riempimento piega
                              \draw[fill=cyan!5]
                              ($(foldedpage.north east)-(\a+\b,\a)+({\b^2/sqrt(\a^2+\b^2)},{\a^2/sqrt(\a^2+\b^2)})$)
                              arc (atan(\a/\b):0:{\b} and \a) arc (90:atan(\b/\a):{\a} and \b) — cycle;
                              % ricalco i due archi di ellisse rimanenti “sporcati'' dall'ombreggiatura
                              \draw ($(foldedpage.north east)-(\a+\b,0)$) arc (90:atan(\a/\b):{\b} and \a);
                              \draw ($(foldedpage.north east)-(0,\a+\b)$) arc (0:atan(\b/\a):{\a} and \b);
                              \end{scope}
                              \end{tikzpicture}%
                              }

                              \begin{document}
                              \begin{figure}
                              \centering
                              \subfloat[La bibliografia]{%
                              \includefoldedpage[width=0.45\textwidth,page=201]{ArteLaTeX.pdf}}\quad
                              \subfloat[L'indice analitico]{%
                              \includefoldedpage[width=0.45\textwidth,page=203]{ArteLaTeX.pdf}}
                              \caption{Materiale finale}
                              \end{figure}
                              \end{document}`
                              (Ridefinisco le unità di misura predefinite ([tt]x=1pt, y=1pt[/tt]) perché [tt]\pgfmathresult[/tt] è sempre espresso in punti, mentre [tt]\draw[/tt] si aspetterebbe centimetri.)

                              [tt]start angle[/tt] e [tt]end angle[/tt] sono individuati dai punti in cui la tangente all’ellisse è 45 gradi, aventi coordinate come \(P=(a^2/\sqrt{a^2+b^2},b^2/\sqrt{a^2+b^2})\). L’angolo formato con l’orizzontale (o la verticale, a seconda dei casi) è nella forma \(\alpha=\mathop{\rm atan}(b^2/a^2)\). Ma siccome pgf vuole l’angolo del cerchio che la circoscrive (è come se poi restringesse il cerchio, per tracciare l’ellisse), bisogna fare qualche calcolo: \(\alpha’=\mathop{\rm atan}(b/a)\).

                              [attachment=521]foldedpage2.jpg[/attachment]

                              Attachments:
                              You must be logged in to view attached files.
                            • #80631
                              robitex
                              Amministratore del forum
                                Up
                                0
                                Down
                                ::

                                antonio.macrì” post=79901[tt]start angle[/tt] e [tt]end angle[/tt] sono individuati dai punti in cui la tangente all’ellisse è 45 gradi, aventi coordinate come \(P=(a^2/\sqrt{a^2+b^2},b^2/\sqrt{a^2+b^2})\). L’angolo formato con l’orizzontale (o la verticale, a seconda dei casi) è nella forma \(\alpha=\mathop{\rm atan}(b^2/a^2)\). Ma siccome pgf vuole l’angolo del cerchio che la circoscrive (è come se poi restringesse il cerchio, per tracciare l’ellisse), bisogna fare qualche calcolo: \(\alpha’=\mathop{\rm atan}(b/a)\).

                                Problemi di calcoli?
                                Perché non usare LuaLaTeX o LaTeX3…
                                Saluti

                              • #80632
                                Up
                                0
                                Down
                                ::

                                Liverpool” post=79897 @cfiandra, molto bello. Purtroppo però penso di averti condotto involontariamente ad un errore: l’angolo di piegatura dovrebbe essere ottuso e non acuto, come ha giustamente osservato Antonio. Io pensavo a qualcosa tipo triangolo isoscele con un vertice sulla bisettrice dell’angolo retto non ripiegato. Ovviamente poi ognuno il foglio se lo piega come vuole, ma visto dall’alto, non penso che l’angolo possa sembrare acuto in nessun caso (forse mi sbaglio). Scusa.

                                Ciao

                                Nessun problema figurati. In realtà stavo facendo esperimenti sui parametri ed è stato allora che cambiando un po’ i parametri è saltato fuori l’effetto. Tutto ciò mi ha permesso di capire che per rendere veramente migliore la forma documento, non bisogna lasciare all’utente la possibilità di pasticciare a piacere perché in realtà c’è un collegamento (quindi solo alcuni parametri possono essere cambiati, gli altri dovrebbero venire di conseguenza). Inoltre, se ci fossero due [tt]\innercornersize[/tt] l’utente potrebbe creare molte più piegature. Insomma, con calma ci lavorerò.

                                L’ultimo esempio di Antonio è veramente carino, specialmente per l’impostazione che ha dato ai calcoli, ma non sono rimasto soddisfatto dall’ombreggiatura (è l’ultima delle cose a cui pensare, lo so 😉 più che altro volevo staccare dal ripetere la presentazione o mi si secca la gola) . Mi sono permesso di applicare un fading e di lasciar impostare il parametro [tt]\foldedpagecorner[/tt] all’utente (per questo è richiesto [tt]xparse[/tt] che è molto più flessibile).`
                                \documentclass[a4paper]{article}

                                \usepackage{tikz}
                                \usetikzlibrary{calc,backgrounds,fadings}
                                \tikzfading[name=fade horizontal,
                                left color=transparent!100,
                                right color=transparent!20]

                                \usepackage[labelfont=bf]{caption}
                                \usepackage{subfig}
                                \usepackage{xparse}

                                \def\foldedpagefold{1cm}
                                \NewDocumentCommand\includefoldedpage{o O{0.4} m}{%
                                \pgfmathsetmacro\foldedpagecorner{#2}
                                \begin{tikzpicture}[inner sep=0pt, x=1pt, y=1pt]
                                \node (foldedpage) {\includegraphics[#1]{#3}};
                                \begin{scope}[on background layer]
                                \pgfmathparse{\foldedpagefold}\let\a\pgfmathresult
                                \pgfmathparse{(\foldedpagecorner*\foldedpagefold)}\let\b\pgfmathresult
                                % pagina
                                \draw[fill=cyan!10]
                                ($(foldedpage.north east)-(\a,\a)$) arc (90:0:{\a} and \b) |-
                                (foldedpage.south west) |-
                                ($(foldedpage.north east)-(\a+\b,0)$) arc (90:0:{\b} and \a) — cycle;
                                % ombreggiatura realizzata con fading
                                \fill[black!50,path fading=fade horizontal]
                                ($(foldedpage.north east)-(\a+\b,0)$)
                                arc (90:0:{\b} and \a) arc (90:0:{\a} and \b)
                                arc (0:90:\a-1 and \b-4) arc (0:90:\b+1 and \a+4);
                                % riempimento piega
                                \draw[fill=cyan!5]
                                ($(foldedpage.north east)-(\a+\b,\a)+({\b^2/sqrt(\a^2+\b^2)},{\a^2/sqrt(\a^2+\b^2)})$)
                                arc (atan(\a/\b):0:{\b} and \a) arc (90:atan(\b/\a):{\a} and \b) — cycle;
                                % ricalco i due archi di ellisse rimanenti “sporcati'' dall'ombreggiatura
                                \draw ($(foldedpage.north east)-(\a+\b,0)$) arc (90:atan(\a/\b):{\b} and \a);
                                \draw ($(foldedpage.north east)-(0,\a+\b)$) arc (0:atan(\b/\a):{\a} and \b);
                                \end{scope}
                                \end{tikzpicture}%
                                }

                                \begin{document}
                                \begin{figure}
                                \centering
                                \subfloat[La bibliografia]{%
                                \includefoldedpage[width=0.45\textwidth,page=201]{ArteLaTeX.pdf}}\quad
                                \subfloat[L'indice analitico]{%
                                \includefoldedpage[width=0.45\textwidth,page=203][0.2]{ArteLaTeX.pdf}}
                                \caption{Materiale finale}
                                \end{figure}

                                \begin{figure}
                                \centering
                                \subfloat[La matematica]{%
                                \includefoldedpage[width=0.45\textwidth,page=77][1]{ArteLaTeX.pdf}}\quad
                                \subfloat[Tabelle e figure]{%
                                \includefoldedpage[width=0.45\textwidth,page=103][1.4]{ArteLaTeX.pdf}}
                                \caption{Capitoli 5 e 6}
                                \end{figure}
                                \end{document}
                                ` A questo punto chi vorrà cimentarsi sa dove agire per magari sfumare in modo migliore (con un fading costruito ad hoc). Cambiando il parametro [tt]\foldedpagecorner[/tt] permette di ottenere in modo semplice diversi effetti (anche se alcuni sono un po’ irrealistici).

                                Il risultato:

                                [attachment=524]Immagine1_2012-11-19.jpg[/attachment]

                                [attachment=525]Immagine2.jpg[/attachment]

                                Ciao
                                Claudio

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


                                Con l’ombreggiatura di Claudio è decisamente meglio.

                                Beh, direi che abbiamo spaccato la piega in quattro! 😀

                              • #80634
                                alegenn
                                Partecipante
                                  Up
                                  0
                                  Down
                                  ::


                                  Grazie a tutti per le risposte.
                                  Non avrei mai immaginato di suscitare tanto interesse…
                                  Adesso ho tutte le soluzioni che mi servono e diversi spunti di studio per il codice che avete fornito.
                                  Grazie, grazie, grazie 🙂

                                • #80635
                                  Up
                                  0
                                  Down
                                  ::

                                  robitex” post=79902

                                  [tt]start angle[/tt] e [tt]end angle[/tt] sono individuati dai punti in cui la tangente all’ellisse è 45 gradi, aventi coordinate come \(P=(a^2/\sqrt{a^2+b^2},b^2/\sqrt{a^2+b^2})\). L’angolo formato con l’orizzontale (o la verticale, a seconda dei casi) è nella forma \(\alpha=\mathop{\rm atan}(b^2/a^2)\). Ma siccome pgf vuole l’angolo del cerchio che la circoscrive (è come se poi restringesse il cerchio, per tracciare l’ellisse), bisogna fare qualche calcolo: \(\alpha’=\mathop{\rm atan}(b/a)\).

                                  Problemi di calcoli?
                                  Perché non usare LuaLaTeX o LaTeX3…
                                  Saluti

                                  Ciao Roberto, vorrei chiederti una cosa: è possibile far svolgere dei calcoli a LuaLaTeX in un documento LaTeX? C’è qualche documentazione alla quale posso fare riferimento?

                                  Grazie mille e buona domenica,
                                  Marco.

                                • #80636
                                  Up
                                  0
                                  Down
                                  ::

                                  robitex” post=79902Problemi di calcoli?
                                  Perché non usare LuaLaTeX o LaTeX3…
                                  Saluti

                                  Qualche problema di overflow può esserci (nel calcolo di [tt]\a^2+\b^2[/tt]), ma è perché in quel modo i calcoli son fatti in pt e TeX può al massimo gestire [tt]\maxdimen[/tt] punti (circa 16000). Per eliminare il problema basta esprimere tutto in centimetri. Per esempio, togliere:
                                  `x=1pt, y=1pt`
                                  e usare
                                  `\pgfmathparse{\foldedpagefold*2.54/72.27}\let\a\pgfmathresult
                                  \pgfmathparse{\foldedpagecorner*\foldedpagefold*2.54/72.27}\let\b\pgfmathresult`
                                  (regolando poi l’ombreggiatura).

                                  LuaTeX è potentissimo, ma non credo sia il caso di scomodarlo; comunque pare che basterebbe qualcosa del tipo
                                  `\draw[fill=cyan!5]
                                  ($(foldedpage.north east)-(\a+\b,\a)
                                  +({\directlua{tex.print(\b^2/math.sqrt(\a^2+\b^2))}},{\directlua{tex.print(\a^2/math.sqrt(\a^2+\b^2))}})$)
                                  arc (atan(\a/\b):0:{\b} and \a) arc (90:atan(\b/\a):{\a} and \b) — cycle;`
                                  (non conosco LuaTeX quasi per niente).

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

                                    Marco87″ post=79921

                                    [quote=”antonio.macrì” post=79901][tt]start angle[/tt] e [tt]end angle[/tt] sono individuati dai punti in cui la tangente all’ellisse è 45 gradi, aventi coordinate come \(P=(a^2/\sqrt{a^2+b^2},b^2/\sqrt{a^2+b^2})\). L’angolo formato con l’orizzontale (o la verticale, a seconda dei casi) è nella forma \(\alpha=\mathop{\rm atan}(b^2/a^2)\). Ma siccome pgf vuole l’angolo del cerchio che la circoscrive (è come se poi restringesse il cerchio, per tracciare l’ellisse), bisogna fare qualche calcolo: \(\alpha’=\mathop{\rm atan}(b/a)\).

                                    Problemi di calcoli?
                                    Perché non usare LuaLaTeX o LaTeX3…
                                    Saluti

                                    Ciao Roberto, vorrei chiederti una cosa: è possibile far svolgere dei calcoli a LuaLaTeX in un documento LaTeX? C’è qualche documentazione alla quale posso fare riferimento?

                                    Grazie mille e buona domenica,
                                    Marco.[/quote]
                                    Buona domenica anche a te.
                                    Certo che è possibile, guarda l’esempio di Antonio.
                                    La modalità dipende da quello che ti serve.
                                    Nella primitiva LuaTeX \directlua può essere inserito codice Lua che però prima viene letto da TeX pertanto le macro che contengono numeri vengono completamente espanse e ciò che rimane nel codice sono i dati.
                                    La funzione print o sprint della tabella tex (e quindi eseguibile con la dot notation tex.print() immette token nell’elaborazione sequenziale di TeX).
                                    Così molto semplicemente è possibile fornire a Lua dei dati da TeX e viceversa.
                                    Bisognerà aspettare una buona guida LuaTeX per capire come fare per qualcosa di più sofisticato.
                                    `
                                    \def\x{6.2145245}
                                    \directlua{tex.sprint(\x^2)}
                                    `

                                    Leggi anche l’ultimo numero di ArsTeXnica, l’articolo di Agostino De Marco.
                                    Ciao.

                                  • #80638
                                    lorenzo.pantieri
                                    Partecipante
                                      Up
                                      0
                                      Down
                                      ::

                                      antonio.macrì” post=79901

                                      [attachment=521]foldedpage2.jpg[/attachment]

                                      Santo cielo! Il codice per me è arabo, ma il risultato è meraviglioso. Quell’ombreggiatura dietro l’orecchia semplicemente deliziosa. 🙂

                                      Il che, sia detto in modo non urlato, conferma la mia idea: il disegno programmato con LaTeX permette di produrre risultati di qualità superlativa, ma bisogna essere super-esperti per padroneggiarlo davvero. Il paragone con LaTeX/Word non regge: per imparare a usare LaTeX non bisogna essere super-esperti, basta un minimo di pratica.

                                    • #80639
                                      Up
                                      0
                                      Down
                                      ::

                                      robitex” post=79928

                                      [quote=”robitex” post=79902][quote=”antonio.macrì” post=79901][tt]start angle[/tt] e [tt]end angle[/tt] sono individuati dai punti in cui la tangente all’ellisse è 45 gradi, aventi coordinate come \(P=(a^2/\sqrt{a^2+b^2},b^2/\sqrt{a^2+b^2})\). L’angolo formato con l’orizzontale (o la verticale, a seconda dei casi) è nella forma \(\alpha=\mathop{\rm atan}(b^2/a^2)\). Ma siccome pgf vuole l’angolo del cerchio che la circoscrive (è come se poi restringesse il cerchio, per tracciare l’ellisse), bisogna fare qualche calcolo: \(\alpha’=\mathop{\rm atan}(b/a)\).

                                      Problemi di calcoli?
                                      Perché non usare LuaLaTeX o LaTeX3…
                                      Saluti

                                      Ciao Roberto, vorrei chiederti una cosa: è possibile far svolgere dei calcoli a LuaLaTeX in un documento LaTeX? C’è qualche documentazione alla quale posso fare riferimento?

                                      Grazie mille e buona domenica,
                                      Marco.[/quote]
                                      Buona domenica anche a te.
                                      Certo che è possibile, guarda l’esempio di Antonio.
                                      La modalità dipende da quello che ti serve.
                                      Nella primitiva LuaTeX \directlua può essere inserito codice Lua che però prima viene letto da TeX pertanto le macro che contengono numeri vengono completamente espanse e ciò che rimane nel codice sono i dati.
                                      La funzione print o sprint della tabella tex (e quindi eseguibile con la dot notation tex.print() immette token nell’elaborazione sequenziale di TeX).
                                      Così molto semplicemente è possibile fornire a Lua dei dati da TeX e viceversa.
                                      Bisognerà aspettare una buona guida LuaTeX per capire come fare per qualcosa di più sofisticato.
                                      `
                                      \def\x{6.2145245}
                                      \directlua{tex.sprint(\x^2)}
                                      `

                                      Leggi anche l’ultimo numero di ArsTeXnica, l’articolo di Agostino De Marco.
                                      Ciao.[/quote]

                                      Grazie mille Roberto! Ora cercherò di sfruttare queste informazioni.

                                      Buona giornata, 🙂
                                      Marco.

                                    • #80640
                                      Liverpool
                                      Partecipante
                                        Up
                                        0
                                        Down
                                        ::


                                        Antonio e Claudio, scusate se non mi sono fatto più vivo, ma ho improvvisamente scoperto di avere molto lavoro arretrato, perciò non ho il tempo necessario per studiare attentamente i vostri codici. I risultati sono eccellenti. Non avrei mai pensato all’ellisse. Probabilmente avrei usato le curve di Bézier, come il maestro @OldClaudio insegna, ma avrei dovuto procedere per tentativi. Avrei in mente un altro miglioramento, ma siccome ho paura di essere linciato e non ho la più pallida idea di quanto sia difficile realizzarlo, me lo tengo per me.

                                        [OT]

                                        @cfiandra
                                        , ma quand’è la data? L’hai già detto e me lo sono perso? Facci sapere.
                                        [/OT]

                                      • #80641
                                        Up
                                        0
                                        Down
                                        ::

                                        Liverpool” post=79942Antonio e Claudio, scusate se non mi sono fatto più vivo, ma ho improvvisamente scoperto di avere molto lavoro arretrato, perciò non ho il tempo necessario per studiare attentamente i vostri codici. I risultati sono eccellenti. Non avrei mai pensato all’ellisse. Probabilmente avrei usato le curve di Bézier, come il maestro @OldClaudio insegna, ma avrei dovuto procedere per tentativi. Avrei in mente un altro miglioramento, ma siccome ho paura di essere linciato e non ho la più pallida idea di quanto sia difficile realizzarlo, me lo tengo per me.

                                        A me non dispiacerebbe vedere il risultato (con [tt]hobby[/tt]? 😉 )…

                                        Ho fatto un upload leggermente migliore delle immagini nel mio precedente messaggio (purtroppo non mi ricordo quali sono i formati supportati perciò allego sempre in jpg e non è il massimo…).

                                        Liverpool” post=79942[OT]

                                        @cfiandra
                                        , ma quand’è la data? L’hai già detto e me lo sono perso? Facci sapere.
                                        [/OT]

                                        [OT]
                                        Non lo avevo ancora detto: il 26 discussione e il 30 proclamazione. 🙂 Proprio questa mattina ho stampato la tesi! 🙂
                                        [/OT]

                                        Ciao
                                        Claudio

                                      • #80642
                                        Up
                                        0
                                        Down
                                        ::

                                        cfiandra” post=79964[OT]
                                        Non lo avevo ancora detto: il 26 discussione e il 30 proclamazione. 🙂 Proprio questa mattina ho stampato la tesi! 🙂
                                        [/OT]

                                        Considerati il destinatario del messaggio 12000, allora; e pensa un po’ anche a noi alla festa!

                                        Ciao
                                        Enrico

                                      • #80643
                                        Up
                                        0
                                        Down
                                        ::



                                        @Lorenzo
                                        : hai visto il risultato con l’ombreggiatura di Claudio? Quella sfumatura è un tocco di classe. 😉


                                        @Claudio
                                        e @Liverpool: Bezier, Hobby… stiamo dando di matto!? 😀
                                        A parte gli scherzi, il problema con Bezier (Hobby non lo conosco affatto) è che bisogna ricavarsi le coordinate dei punti in cui la tangente è a -45°. Anzi, per questo credo che con qualche calcolo ce la possiamo cavare, ma poi bisogna dire a TikZ di tracciare solo una parte della curva (per disegnare il riempimento della piega) e questo non ho idea di come si possa fare. A meno forse di usare qualche trucco, forse.


                                        @Liverpool
                                        : avanti con l’idea, ormai le stiamo provando tutte! 🙂

                                      • #80644
                                        Up
                                        0
                                        Down
                                        ::


                                        Ciao Antonio,

                                        antonio.macrìHobby non lo conosco affatto

                                        Parlo da inesperto di [tt]TikZ.[/tt] Ho avuto occasione di usare la nuova libreria [tt]hobby,[/tt] e ho riscontrato che in diversi casi è più facilmente applicabile e usabile rispetto agli altri sistemi disponibili in [tt]TikZ[/tt] per tracciare determinate curve. La documentazione ([tt]texdoc hobby[/tt]) è di sole 11 pagine. 🙂

                                        Ciao e buona serata,
                                        Marco.

                                      • #80645
                                        lorenzo.pantieri
                                        Partecipante
                                          Up
                                          0
                                          Down
                                          ::

                                          antonio.macrì” post=79990 @Lorenzo: hai visto il risultato con l’ombreggiatura di Claudio? Quella sfumatura è un tocco di classe. 😉

                                          Certo, il risultato è magnifico! Se Tommaso avrà voglia, la nuova Arte avrà tutte le figure così… 😉

                                        • #80646
                                          Up
                                          0
                                          Down
                                          ::

                                          egreg9″ post=79965Considerati il destinatario del messaggio 12000, allora; e pensa un po’ anche a noi alla festa!

                                          Ciao
                                          Enrico

                                          Grazie Enrico 🙂

                                          In realtà ho pensato a voi anche per i ringraziamenti:

                                          A special thank is extended to the users of the GuIT forum and to the users of the
                                          TeX.StackExchange site: they shared with me their LaTeX experience (and not only), largely used in
                                          typesetting this document.

                                          Sono doverosi in quanto, da quando frequento abitualmente il forum (circa un anno) e TeX.SX (circa sei o sette mesi), ho imparato un sacco di cose: molte volte neppure chiedendo, ma semplicemente leggendo i post; altre volte chiedendo direttamente e altre ancora cercando di ricordare i consigli (ad esempio mi viene in mente quello di Luigi in merito al commento dei grafici nelle presentazioni).

                                          Ciao
                                          Claudio

                                        • #80647
                                          Up
                                          0
                                          Down
                                          ::

                                          Marco87″ post=79991Ciao Antonio,

                                          Hobby non lo conosco affatto

                                          Parlo da inesperto di [tt]TikZ.[/tt] Ho avuto occasione di usare la nuova libreria [tt]hobby,[/tt] e ho riscontrato che in diversi casi è più facilmente applicabile e usabile rispetto agli altri sistemi disponibili in [tt]TikZ[/tt] per tracciare determinate curve. La documentazione ([tt]texdoc hobby[/tt]) è di sole 11 pagine. 🙂

                                          Ciao e buona serata,
                                          Marco.

                                          In merito a [tt]hobby[/tt], consiglio di utilizzare la development version presente su http://bazaar.launchpad.net/~tex-sx/tex-sx/development/files, che ha delle notevoli migliorie: ne parlavo qui. Ad esempio, la gestione di [tt]hobby-aware paths[/tt] in cicli è supportata.

                                          In realtà, da quanto mi ricordo, questa versione dovrebbe essere pubblicata a breve su CTAN.

                                          Ciao
                                          Claudio

                                        • #80648
                                          Liverpool
                                          Partecipante
                                            Up
                                            0
                                            Down
                                            ::

                                            antonio.macrì” post=79990 @Liverpool: avanti con l’idea, ormai le stiamo provando tutte! 🙂

                                            Veramente: va benissimo così. E’ un lavoro eccellente.

                                            Ciao

                                          • #80649
                                            Up
                                            0
                                            Down
                                            ::


                                            Già che ci siamo, completiamo la carrellata. 😉
                                            `\documentclass[a4paper]{article}

                                            \usepackage{tikz}
                                            \usetikzlibrary{calc,backgrounds,fadings}
                                            \tikzfading[
                                            name = fade horizontal,
                                            left color = transparent!95,
                                            right color = transparent!30
                                            ]

                                            \usepackage[labelfont=bf]{caption}
                                            \usepackage{subfig}
                                            \usepackage{xparse}

                                            \makeatletter
                                            \def\foldedpagefold{1cm}
                                            \NewDocumentCommand\includefoldedpage{o O{0.7} O{0.2} m}{%
                                            \begin{tikzpicture}[inner sep=0pt]
                                            \node (foldedpage) {\includegraphics[#1]{#4}};
                                            \begin{scope}[on background layer]
                                            \pgfmathsetmacro\a{\foldedpagefold*2.54/72.27}
                                            \pgfmathsetmacro\b{#2*\a}
                                            \pgfmathsetmacro\c{#3*\b}
                                            \coordinate(p0) at ($(foldedpage.north east)-(\a+\b,0)$);
                                            \coordinate(p1) at ($(foldedpage.north east)-(\a+\c,0)$);
                                            \coordinate(p2) at ($(foldedpage.north east)-(\a,\a)$);
                                            \coordinate(p3) at ($(foldedpage.north east)-(0,\a+\c)$);
                                            \coordinate(p4) at ($(foldedpage.north east)-(0,\a+\b)$);
                                            % riempimento piega (non proprio)
                                            \ifdim\a pt=\b pt\relax
                                            \def\t{0.5}
                                            \else
                                            \pgfmathsetmacro\t{(\c-\b+sqrt((\b-\c)*(\a-\c)))/(\a-\b)}
                                            \fi
                                            \draw[fill=cyan!5] (p2) —
                                            ($(p0)+({3*\t*(\b-\c)*(1-\t)+\b*\t^3)},-\a*\t^3)$) —
                                            ($(p4)+(-\a*\t^3,{3*\t*(\b-\c)*(1-\t)+\b*\t^3)})$) — cycle;
                                            % bordi piega
                                            \draw (p0) .. controls (p1) .. (p2);
                                            \draw (p4) .. controls (p3) .. (p2);
                                            % pagina
                                            \draw[fill=cyan!10]
                                            (p0) .. controls (p1) .. (p2)
                                            (p2) .. controls (p3) .. (p4) |- (foldedpage.south west) |- (p0);
                                            % ombreggiatura realizzata con fading
                                            \fill[black!40, path fading=fade horizontal, fading angle=40]
                                            ($(p2)!0.1!(p3)$) coordinate (start) .. controls (p3) .. (p4)
                                            .. controls ($(p3)+(0,-1pt)$) .. ($(start)!0.2!($(start)+(p2)-(p1)$)$);
                                            \end{scope}
                                            \end{tikzpicture}%
                                            }

                                            \begin{document}
                                            \begin{figure}
                                            \centering
                                            \subfloat[La bibliografia]{%
                                            \includefoldedpage[width=0.45\textwidth,page=201]{ArteLaTeX.pdf}}\quad
                                            \subfloat[L'indice analitico]{%
                                            \includefoldedpage[width=0.45\textwidth,page=203][0.8][0.3]{ArteLaTeX.pdf}}
                                            \caption{Materiale finale}
                                            \end{figure}
                                            \end{document}`

                                            [attachment=531]folded-page-bezier.jpg[/attachment]

                                            Devo dire che il risultato con Bezier (senza Hobby) sembra particolarmente naturale. Sono curve di Bezier cubiche con i due punti intermedi coincidenti.

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

                                            antonio.macrì” post=80034Già che ci siamo, completiamo la carrellata. 😉
                                            `\documentclass[a4paper]{article}

                                            \usepackage{tikz}
                                            \usetikzlibrary{calc,backgrounds,fadings}
                                            \tikzfading[
                                            name = fade horizontal,
                                            left color = transparent!95,
                                            right color = transparent!30
                                            ]

                                            \usepackage[labelfont=bf]{caption}
                                            \usepackage{subfig}
                                            \usepackage{xparse}

                                            \makeatletter
                                            \def\foldedpagefold{1cm}
                                            \NewDocumentCommand\includefoldedpage{o O{0.7} O{0.2} m}{%
                                            \begin{tikzpicture}[inner sep=0pt]
                                            \node (foldedpage) {\includegraphics[#1]{#4}};
                                            \begin{scope}[on background layer]
                                            \pgfmathsetmacro\a{\foldedpagefold*2.54/72.27}
                                            \pgfmathsetmacro\b{#2*\a}
                                            \pgfmathsetmacro\c{#3*\b}
                                            \coordinate(p0) at ($(foldedpage.north east)-(\a+\b,0)$);
                                            \coordinate(p1) at ($(foldedpage.north east)-(\a+\c,0)$);
                                            \coordinate(p2) at ($(foldedpage.north east)-(\a,\a)$);
                                            \coordinate(p3) at ($(foldedpage.north east)-(0,\a+\c)$);
                                            \coordinate(p4) at ($(foldedpage.north east)-(0,\a+\b)$);
                                            % riempimento piega (non proprio)
                                            \ifdim\a pt=\b pt\relax
                                            \def\t{0.5}
                                            \else
                                            \pgfmathsetmacro\t{(\c-\b+sqrt((\b-\c)*(\a-\c)))/(\a-\b)}
                                            \fi
                                            \draw[fill=cyan!5] (p2) —
                                            ($(p0)+({3*\t*(\b-\c)*(1-\t)+\b*\t^3)},-\a*\t^3)$) —
                                            ($(p4)+(-\a*\t^3,{3*\t*(\b-\c)*(1-\t)+\b*\t^3)})$) — cycle;
                                            % bordi piega
                                            \draw (p0) .. controls (p1) .. (p2);
                                            \draw (p4) .. controls (p3) .. (p2);
                                            % pagina
                                            \draw[fill=cyan!10]
                                            (p0) .. controls (p1) .. (p2)
                                            (p2) .. controls (p3) .. (p4) |- (foldedpage.south west) |- (p0);
                                            % ombreggiatura realizzata con fading
                                            \fill[black!40, path fading=fade horizontal, fading angle=40]
                                            ($(p2)!0.1!(p3)$) coordinate (start) .. controls (p3) .. (p4)
                                            .. controls ($(p3)+(0,-1pt)$) .. ($(start)!0.2!($(start)+(p2)-(p1)$)$);
                                            \end{scope}
                                            \end{tikzpicture}%
                                            }

                                            \begin{document}
                                            \begin{figure}
                                            \centering
                                            \subfloat[La bibliografia]{%
                                            \includefoldedpage[width=0.45\textwidth,page=201]{ArteLaTeX.pdf}}\quad
                                            \subfloat[L'indice analitico]{%
                                            \includefoldedpage[width=0.45\textwidth,page=203][0.8][0.3]{ArteLaTeX.pdf}}
                                            \caption{Materiale finale}
                                            \end{figure}
                                            \end{document}`

                                            [attachment=531]folded-page-bezier.jpg[/attachment]

                                            Devo dire che il risultato con Bezier (senza Hobby) sembra particolarmente naturale. Sono curve di Bezier cubiche con i due punti intermedi coincidenti.

                                            Veramente un gran bel risultato: bravo! 🙂

                                            Ciao
                                            Claudio

                                          • #80651
                                            Liverpool
                                            Partecipante
                                              Up
                                              0
                                              Down
                                              ::

                                              cfiandra” post=79964Non lo avevo ancora detto: il 26 discussione e il 30 proclamazione.

                                              [OT]
                                              In bocca al lupo, Claudio!
                                              [/OT]

                                            • #80652
                                              Up
                                              0
                                              Down
                                              ::

                                              Liverpool” post=80185

                                              Non lo avevo ancora detto: il 26 discussione e il 30 proclamazione.

                                              [OT]
                                              In bocca al lupo, Claudio!
                                              [/OT]

                                              Mi sento in dovere di dire che è andata bene 🙂 e non solo per quanto riguarda la presentazione in sè, ma credo di avere suscitato abbastanza interesse anche per gli strumenti utilizzati 😉 (così non mi sento troppo OT 😀 ).

                                              Ad esempio, ho realizzato un grafico interattivo in cui ho potuto evidenziare volta per volta le curve di cui dovevo parlare, oppure, per la mappa con la rilevanza delle fermate, ho fatto uno zoom sul centro città e dintorni grazie ad una libreria fantastica trovata su TeX.SX.

                                              Allego il link in cui la presentazione è reperibile: link. Per quanto riguarda il grafico interattivo il pacchetto usato è [tt]ocgx[/tt] mentre la libreria è reperibile qui.

                                              Ciao
                                              Claudio

                                            • #80653
                                              Up
                                              0
                                              Down
                                              ::


                                              Ciao Claudio,

                                              complimenti per tutto! 🙂 E grazie per le indicazioni; ne prendo nota. 😉

                                              Ciao e buona serata,
                                              Marco.

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

                                          Go to top