Immagini unite

  • Creatore
    Topic
  • #91276
    Up
    0
    Down
    ::


    Rieccomi con un nuovo quesito relativo al manuale che sto scrivendo.
    Dovendo disegnare modelli esplicativi di tracciati elettrocardiografici ho costruito un template normale che poi duplico a volontà aggiungendo le variazioni necessarie di volta in volta. Così facendo ottengo tuttavia una serie di immagini tra loro staccate. Ho quindi tolto tutti gli spazi fra i comandi raggiungendo un risultato migliore ma non ancora perfetto; per meglio intenderci, se guardate il risultato della compilazione, noterete dei piccoli intervalli bianchi tra i vari complessi elettrocardiografici (in stampa sono ancor più visibili). Pensate sia possibile rimuoverli completamente? Forse l’utilizzo di box può aiutarmi in questo compito?, ma se la risposta è questa, come devo inserire i miei template nei Box?
    Cordialità, Ezio

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 11 filoni di risposte
  • Autore
    Risposte
    • #91277
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Io inserirei degli spazi negativi prima di ogni \tikz tranne il primo:`\documentclass{report}
        \usepackage{lmodern}
        \usepackage{graphicx}

        \usepackage{tikz}
        \usetikzlibrary{shapes,arrows,positioning}
        \usetikzlibrary{backgrounds}

        \begin{document}
        % ……………………………………………………………………………………………………………………………………………………………………….
        \tikz \draw[thick,rounded corners=2pt](0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–(1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–(1.5,0)–(1.7,0.5)–(1.9,0)–(2.3,0);\negthinspace\tikz \draw[thick,rounded corners=2pt](0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–(1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–(1.5,0)–(1.7,0.5)–(1.9,0)–(1.91,0);\kern-0.5pt
        \tikz \draw[thick,rounded corners=2pt](0,0)–(0.3,0)–(0.4,-0.25)–(0.5,0)–(0.8,0)–(0.9,-0.2)–(1,1)–(1.1,-0.4)–(1.15,0)–(1.3,0)–(1.5,0.5)–(1.7,0)–(2.1,0);\negthinspace
        \tikz \draw[thick,rounded corners=2pt](0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–(1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–(1.5,0)–(1.7,0.5)–(1.9,0)–(2.3,0);\negthinspace\tikz \draw[thick,rounded corners=2pt](0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–(1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–(1.5,0)–(1.7,0.5)–(1.9,0)–(2.3,0);
        % ……………………………………………………………………………………………………………………………………………………………………….
        \end{document}`In realtà potresti sempre usare \kern seguito da uno spazietto negativo più o meno grande da aggiustare a seconda di come si raccordano i vari tratti dell’elettrocardiogramma; \negthinspace in alcuni casi è troppo , ma va bene dove devono raccordarsi dei tratti orizzontali, anche se si ricoprono un poco. Comunque puoi sperimetare un poco e trovare il valore ottima da usare sempre fra ogni copia di disegni affiancati.

        Molto rudimentale ma efficace.

        Ovviamente @cfiandra può suggerirti qualcosa di meglio.

      • #91278
        Liverpool
        Partecipante
          Up
          0
          Down
          ::


          Io farei un unico disegno:
          `\begin{tikzpicture}
          \foreach \i in {0,…,4}
          \draw [thick, rounded corners=2pt, xshift=\i*2.3cm]
          (0,0) — (0.5,0) — (0.6,0.25) — (0.7,0) — (1,0) — (1.1,-0.2) —
          (1.2,1) — (1.3,-0.4) — (1.35,0) — (1.5,0) — (1.7,0.5) — (1.9,0) — (2.3,0);
          \end{tikzpicture}`
          [OT] L’onda T mi sembra un po’ troppo appuntita [/OT]

        • #91279
          Up
          0
          Down
          ::


          Ti propongo un’unica “picture”, anche se non è praticissimo; forse esiste un modo per dirgli di avanzare senza dovergli specificare quanto.
          `\documentclass{report}
          \usepackage{lmodern}
          \usepackage{graphicx}

          \usepackage{tikz}
          \usetikzlibrary{shapes,arrows,positioning}
          \usetikzlibrary{backgrounds}

          \begin{document}

          \begin{tikzpicture}
          \begin{scope}
          \draw[thick,rounded corners=2pt]
          (0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–
          (1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–
          (1.5,0)–(1.7,0.5)–(1.9,0)–(2.3,0);
          \end{scope}
          \begin{scope}[xshift=2.3cm]
          \draw[thick,rounded corners=2pt]
          (0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–
          (1,0)–(1.1,-0.2)–(1.2,1)–(1.3,-0.4)–
          (1.35,0)–(1.5,0)–(1.7,0.5)–(1.9,0)–(1.91,0);
          \end{scope}
          \begin{scope}[xshift=4.21cm]
          \draw[thick,rounded corners=2pt]
          (0,0)–(0.3,0)–(0.4,-0.25)–(0.5,0)–
          (0.8,0)–(0.9,-0.2)–(1,1)–(1.1,-0.4)–
          (1.15,0)–(1.3,0)–(1.5,0.5)–(1.7,0)–(2.1,0);
          \end{scope}
          \begin{scope}[xshift=6.31cm]
          \draw[thick,rounded corners=2pt]
          (0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–
          (1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–
          (1.5,0)–(1.7,0.5)–(1.9,0)–(2.3,0);
          \end{scope}
          \begin{scope}[xshift=8.61cm]
          \draw[thick,rounded corners=2pt]
          (0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–
          (1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–
          (1.5,0)–(1.7,0.5)–(1.9,0)–(2.3,0);
          \end{scope}
          \end{tikzpicture}

          \end{document}`
          Ciao
          Enrico

        • #91280
          Liverpool
          Partecipante
            Up
            0
            Down
            ::


            C’è una sottile differenza tra il codice che ho inserito prima e il seguente:
            `\newcommand{\besv}{
            — ++(0.5,0) — ++(0.1,0.25) — ++(0.1,-0.25) — ++(0.3,0) —
            ++(0.1,-0.2) — ++(0.1,1.2) — ++(0.1,-1.4) — ++(0.05,+0.4) —
            ++(0.15,0) — ++(0.2,0.5) — ++(0.2,-0.5) — ++(0.4,0)
            }

            \tikz \draw [thick, rounded corners=2pt] (0,0) \besv \besv \besv \besv \besv;`
            La differenza è che il disegno viene tracciato senza mai interrompere il tratto, perché ho utilizzato un unico comando [tt]\draw[/tt], mentre prima ne avevo usato cinque nascosti all’interno del ciclo.

            La notazione [tt]++[/tt] fa sì che il punto che segue si intenda riferito al punto precedente anziché all’origine. In questo modo [tt]++(0.5,0)[/tt] del secondo [tt]besv[/tt] vuol dire [tt](0.5,0)[/tt] rispetto a [tt](2.3,0)[/tt] che era l’ultimo punto. Naturalmente, dovendo esprimerti rispetto all’ultimo punto inserito, i numeri che scrivi nelle coordinate sono differenti rispetto a quelli che hai scritto tu, perché sono pari rispettivamente alla differenza tra le ascisse e le ordinate di due coordinate successive.
            Puoi trovare maggiori dettagli in questo articolo nel paragrafo 3.2.

            Ciao

          • #91281
            Up
            0
            Down
            ::


            Io propongo un’altra soluzione: di mio c’è proprio poco visto che il percorso è rubato dall’ultima risposta di Liverpool e il punto chiave della soluzione da http://tex.stackexchange.com/a/114943/13304 (ero sicuro mi sarebbe tornato utile).

            Il codice completo è:`
            \documentclass{report}
            \usepackage{lmodern}

            \usepackage{tikz}

            % code by Qrrbrbirlbel:
            % http://tex.stackexchange.com/a/114943/13304
            \tikzset{
            saveuse path/.code 2 args={
            \pgfkeysalso{#1/.estyle={insert path={#2}}}%
            \global\expandafter\let\csname pgfk@\pgfkeyscurrentpath/.@cmd\expandafter\endcsname % not optimal as it is now global through out the document
            \csname pgfk@\pgfkeyscurrentpath/.@cmd\endcsname
            \pgfkeysalso{#1}%
            }
            }

            \begin{document}

            \begin{tikzpicture}[thick,rounded corners=2pt]
            \path[saveuse path={elettrocardio}{– ++(0.5,0) — ++(0.1,0.25) — ++(0.1,-0.25) — ++(0.3,0) —
            ++(0.1,-0.2) — ++(0.1,1.2) — ++(0.1,-1.4) — ++(0.05,+0.4) —
            ++(0.15,0) — ++(0.2,0.5) — ++(0.2,-0.5) — ++(0.4,0)}];

            \draw (0,0)[elettrocardio,elettrocardio,elettrocardio,elettrocardio];
            \end{tikzpicture}

            \end{document}
            ` Il punto chiave è lo stile [tt]saveuse path[/tt] che richiede due argomenti: il nome del percorso e il percorso stesso. Il bello è che poi ti basta usare il nome in un normale costrutto [tt]\draw[/tt] per disegnare una serie. Bisogna fare attenzione che: 1) devi richiamare il nome tante volte quanto è lunga la sequenza, 2) devi necessariamente inserire le coordinate di origine prima del nome.

            La cosa interessante, è che in teoria puoi crearti diversi percorsi e poi combinarli insieme. Ad esempio: `
            \draw (0,0)[elettrocardio,elettrocardio n.2,elettrocardio,elettrocardio n.2];
            ` E, si, puoi dare come nome “elttrocardio n.2”.

            Ciao
            Claudio

          • #91282
            Up
            0
            Down
            ::


            Eccellente soluzione, ma mi permette di inserire solo forme d’onda ricorsive; nel mio esempio è invece presente un battito anticipato (BESV) con onda P negativa. Il fatto che le onde T siano appuntite è semplicemente dovuto alla fretta con cui o disegnato il primo template inserendo coordinate piuttosto simmetriche.
            Grazie comunque per il suggerimento che mi tornerà utile quando dovrò disegnare esempi di bigeminismo.

            Ezio

          • #91283
            Up
            0
            Down
            ::


            Caspita, questo sistema sembra dare veramente l’effetto desiderato; ora provo ad applicare altri template e poi ti faccio sapere.
            Grazie mille, Ezio

          • #91284
            Liverpool
            Partecipante
              Up
              0
              Down
              ::

              Aimè” post=90883Eccellente soluzione, ma mi permette di inserire solo forme d’onda ricorsive; nel mio esempio è invece presente un battito anticipato (BESV) con onda P negativa. Il fatto che le onde T siano appuntite è semplicemente dovuto alla fretta con cui o disegnato il primo template inserendo coordinate piuttosto simmetriche.
              Grazie comunque per il suggerimento che mi tornerà utile quando dovrò disegnare esempi di bigeminismo.

              E’ colpa mia. Sinceramente ho guardato il disegno, ho confrontato le prime coordinate e ho dedotto erroneamente che fossero tutte uguali, trascinando nell’errore anche @cfiandra. Comunque puoi applicare ugualmente il metodo delle coordinate relative, anche se, ad essere sincero, penso che il metodo di @egreg9 oppure il metodo con i draw e gli shift non diano problemi visibili tranne che su visualizzatori scadenti (e mi è capitato in altre circostanze).

              Ciao

            • #91285
              Liverpool
              Partecipante
                Up
                0
                Down
                ::


                La soluzione che segue è equivalente a quella con le coordinate relative:
                `\tikz \draw[thick,rounded corners=2pt]
                (0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–(1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–(1.5,0)–(1.7,0.5)–(1.9,0)–(2.3,0) [xshift=2.3cm] —
                (0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–(1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–(1.5,0)–(1.7,0.5)–(1.9,0)–(1.91,0) [xshift=1.91cm] —
                (0,0)–(0.3,0)–(0.4,-0.25)–(0.5,0)–(0.8,0)–(0.9,-0.2)–(1,1)–(1.1,-0.4)–(1.15,0)–(1.3,0)–(1.5,0.5)–(1.7,0)–(2.1,0) [xshift=2.1cm] —
                (0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–(1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–(1.5,0)–(1.7,0.5)–(1.9,0)–(2.3,0) [xshift=2.3cm] —
                (0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–(1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–(1.5,0)–(1.7,0.5)–(1.9,0)–(2.3,0);`
                Osservazioni:

                1) si possono usare più [tt]xshift[/tt] in uno stesso percorso. In tal modo si può spostare ripetutamente l’origine rispetto alla sua ultima posizione sulla tela e quindi non è necessario calcolare lo spostamento totale;
                2) il doppio trattino a fine riga consente di non interrompere la linea e deve essere inserito dopo le opzioni locali.

                Ciao

              • #91286
                Up
                0
                Down
                ::


                Il risultato è il medesimo, ma forse, a questo punto, posso creare un nuovo comando \newcommand che crei un battito differente da inserire a piacere all’interno del mio tracciato; ora mi fermo per la cena, ma poi ci provo e vi faccio sapere.
                Grazie per non avermi subissato di insulti; in effetti l’articolo a cui ti riferisci fa parte della mole di documenti già in mio possesso, ma, evidentemente, la mia lettura non è stata abbastanza attenta.
                Ora comunque credo di avere materiale adeguato per risolvere il problema. Alla fine del lavoro, se, come spero, la fatica esiterà nella pubblicazione a stampa, non mancherò certo di inserire un sentito ringraziamento a tutto il Forum che mi ha seguito.

                Ezio

              • #91287
                Up
                0
                Down
                ::

                Liverpool” post=90887A volte ci complichiamo la vita! Colpa della memoria… Perché [tt]xshift[/tt] è una di quelle opzioni che possono essere date ripetutamente all’interno di un percorso, perciò non c’era bisogno nemmeno delle coordinate relative.
                Ecco la soluzione (equivalente a quella di @egreg9):
                `\tikz \draw[thick,rounded corners=2pt]
                (0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–(1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–(1.5,0)–(1.7,0.5)–(1.9,0)–(2.3,0) [xshift=2.3cm]
                (0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–(1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–(1.5,0)–(1.7,0.5)–(1.9,0)–(1.91,0) [xshift=1.91cm]
                (0,0)–(0.3,0)–(0.4,-0.25)–(0.5,0)–(0.8,0)–(0.9,-0.2)–(1,1)–(1.1,-0.4)–(1.15,0)–(1.3,0)–(1.5,0.5)–(1.7,0)–(2.1,0) [xshift=2.1cm]
                (0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–(1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–(1.5,0)–(1.7,0.5)–(1.9,0)–(2.3,0) [xshift=2.3cm]
                (0,0)–(0.5,0)–(0.6,0.25)–(0.7,0)–(1,0)–(1.1,-0.2)–(1.2,1)–(1.3,-0.4)–(1.35,0)–(1.5,0)–(1.7,0.5)–(1.9,0)–(2.3,0);`

                Bello; forse tra tutti è anche il più pratico.
                Ezio

              • #91288
                Liverpool
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Però rileggiti l’intervento perché l’ho modificato per essere più chiaro.

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

              Go to top