È possibile modificare \graffito con tikz?

  • Creatore
    Topic
  • #92787
    Up
    0
    Down
    ::


    Ciao a tutti,

    ho una domanda un po’ sciocca.
    Sto scrivendo la tesi di dottorato con classicthesis+arsclassica.
    So bene che il pacchetto todonotes ha dei problemi a causa della modificazione di \marginpar e quindi mentre le note inserite “in line” funzionano, quelle a margine no.
    So anche che per le note a margine c’é già implementato in arclassica il comando \graffito{}.

    Supponiamo però di voler creare un nuovo comando, diciamo \graffitox, che crei delle note a margine come fa todonotes e cioè racchiuse dentro scatole colorate (che così sono belle facili da vedere, soprattutto se si tratta di commenti come ad esempio cose da aggiungere, da riscrivere, etc..).
    E’ possibile usare tikz?
    Mhm…nel caso, da dove dovrei cominciare? Qualcuno ha qualche idea?
    So usare tikz, ma non ho la minima idea di come dovrei agire per modificare \graffito{} e a dirla tutta non so nemmeno se sia fattibile…..

    Grazie per l’aiuto

    Sofia

Visualizzazione 11 filoni di risposte
  • Autore
    Risposte
    • #92788
      Up
      0
      Down
      ::


      Ok, mi sono risposta da sola.

      Ho aggiunto nel preambolo, subito dopo aver chiamato arsclassica,

      \let\marginpar\oldmarginpar

      In questo modo le note a margine vengono fatte solo come vuole todonotes. Quindi in realtà la domanda resta aperta, se volessi avere due comandi, uno che faccia le note a margine come \graffito ed uno che invece le faccia come \todo, cosa dovrei fare?

      Qualche idea?

      Grazie mille..

      Sofia

    • #92789
      Up
      0
      Down
      ::


      Usa il pacchetto todonotes: è stato creato apposta 😉 Oltretutto, si basa appunto su TikZ.

      Ciao
      Claudio

    • #92790
      Up
      0
      Down
      ::


      Ciao,

      é proprio quello che stavo cercando di fare, ma come ho scritto todonotes sfrutta \marginpar che é modificato da classicthesis.

      Quindi, se usi classicthesis e vuoi fare le note a margine fatte con todonotes non funzionano (ti vengono sdoppiate ed in linea) a meno di non fare come ho scritto e cioé inserire nel preambolo (dopo aver chiamato classicthesis e prima di chiamare todonotes)

      \let\marginpar\oldmarginpar

      Quindi si, mi ero risposta da sola.

      Grazie comunque.. 😀

    • #92791
      Up
      0
      Down
      ::


      Scusami, ho letto di fretta il messaggio.

      Allora non usare todonotes: ci sono sempre altri modi con TikZ 😉 Il seguente, è la mia personale interpretazione di http://tex.stackexchange.com/q/49832/13304:`
      \documentclass[a4paper]{scrreprt}
      \usepackage{classicthesis}
      \usepackage{arsclassica}
      \usepackage{soul}
      \usepackage{marginnote}
      \usepackage{tikz}
      \usetikzlibrary{calc,shadows}

      % based on:
      % http://tex.stackexchange.com/a/52336/13304
      \definecolor{HLcolor}{RGB}{124,18,18}
      \sethlcolor{HLcolor!20}

      \makeatletter
      \newdimen\SOUL@dimen %new
      \def\SOUL@ulunderline#1{{%
      \setbox\z@\hbox{#1}%
      \SOUL@dimen=\wd\z@ %new
      \dimen@i=\SOUL@uloverlap
      \advance\SOUL@dimen2\dimen@i %\dimen@ exchanged too
      \rlap{%
      \null
      \kern-\dimen@i
      \SOUL@ulcolor{\SOUL@ulleaders\hskip\SOUL@dimen}% new
      }%
      \unhcopy\z@
      }}
      \makeatother

      \newcommand\tikzmark[1]{\tikz[overlay,remember picture] \node (#1) {};}

      \newcommand\MarkText[3][1cm]{%
      \marginnote{\tikzmark{e}\color{HLcolor}%
      \tikz[remember picture]{%
      \node[drop shadow,top color=white, bottom color=HLcolor!20,rounded corners,draw,text width=0.9\marginparwidth,font=\itshape](n){#3};}
      }[#1]\tikzmark{s}\hl{#2}
      \begin{tikzpicture}[remember picture, overlay]
      \draw[HLcolor,stealth-] let \p1 = (s), \p2 = (e) in ($(\x2,\y1)-(\marginparsep,0)$) — ($(n.north west)!0.5!(n.south west)$);
      \end{tikzpicture}
      }

      \begin{document}
      \chapter{Boh}
      \section{Bla bla}
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
      vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida
      mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.
      Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus
      et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra
      metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus
      eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium
      quis, viverra ac, nunc. \MarkText{Praesent eget sem vel leo ultrices bibendum. Aenean
      faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Cur-
      abitur auctor semper nulla.}{I really don't understand what you are talking about} Donec varius orci eget risus. Duis nibh mi, congue
      eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim
      rutrum.

      Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. Morbi
      auctor lorem non justo. Nam lacus libero, pretium at, lobortis vitae, ultricies et,
      tellus. Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna,
      vitae ornare odio metus a mi. Morbi ac orci et nisl hendrerit mollis. Suspendisse
      ut massa. Cras nec ante. Pellentesque a nulla. \MarkText[-\baselineskip]{Cum sociis natoque penatibus et
      magnis dis parturient montes, nascetur ridiculus mus.}{I still don't understand} Aliquam tincidunt urna. Nulla ullamcorper vestibulum turpis. Pellentesque cursus luctus mauris.

      \end{document}
      `
      Il risultato non è malaccio:

      [attachment=935]ScreenShot2014-02-24at3.00.55PM.png[/attachment]

      Ricordati di compilare 3 volte.

      Ciao
      Claudio

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


      Ahah, grazie mille! E’ esattamente quello che volevo fare, ma cercavo di farlo definendo delle scatole con tikz..e quindi non andavo molto lontano.

      Non ci sarei mai arrivata da sola!

      Grazie mille 😀

      Ora dovrò spiegarlo al mio advisor 😉

    • #92793
      Up
      0
      Down
      ::



      @cfiandra
      : ho trovato utilissima la tua soluzione e l’ho prontamente sostituita a quella autocostruita da me sulla falsariga proposta nella “guida tikzmark”: usando anche io per la tesi [tt]arsclassica[/tt] e compagnia, mi dava un sacco di problemi. Comunque, ho notato che produce inevitabilmente uno spazio alla fine della parte evidenziata. Ho provato a dare un occhiata alla documentazione di [tt]soul[/tt] (molto veloce, ammetto) e non ho trovato risposta; nel tuo codice non vedo perché #2 dovrebbe generare uno spazio… da cosa potrebbe dipendere? È risolvibile? Poi, sempre sulla documentazione di [tt]soul[/tt] ho letto che può essere inglobata anche una formula, a patto che sia inclusa tra una coppia di singoli dollari; il fatto che non funzioni è un non-problema ma visto che mi è capitato: te lo segnalo 🙂 (brutalmente avevo cercato di evidenziare tutto l’enunciato di un lemma).

      Grazie mille per la perla (utilissima!)

      Ciao ciao,
      Corrado.

    • #92794
      Up
      0
      Down
      ::

      Dork” post=96163 @cfiandra: ho trovato utilissima la tua soluzione e l’ho prontamente sostituita a quella autocostruita da me sulla falsariga proposta nella “guida tikzmark”: usando anche io per la tesi [tt]arsclassica[/tt] e compagnia, mi dava un sacco di problemi. Comunque, ho notato che produce inevitabilmente uno spazio alla fine della parte evidenziata. Ho provato a dare un occhiata alla documentazione di [tt]soul[/tt] (molto veloce, ammetto) e non ho trovato risposta; nel tuo codice non vedo perché #2 dovrebbe generare uno spazio… da cosa potrebbe dipendere? È risolvibile? Poi, sempre sulla documentazione di [tt]soul[/tt] ho letto che può essere inglobata anche una formula, a patto che sia inclusa tra una coppia di singoli dollari; il fatto che non funzioni è un non-problema ma visto che mi è capitato: te lo segnalo 🙂 (brutalmente avevo cercato di evidenziare tutto l’enunciato di un lemma).

      Grazie mille per la perla (utilissima!)

      Ciao ciao,
      Corrado.

      Si si, è risolvibile 🙂 Molto semplicemente ho dimenticato qualche %. Sostituisci [tt]\MarkText[/tt] con:`
      \newcommand\MarkText[3][1cm]{%
      \marginnote{\tikzmark{e}\color{HLcolor}%
      \tikz[remember picture]{%
      \node[drop shadow,top color=white, bottom color=HLcolor!20,rounded corners,draw,text width=0.9\marginparwidth,font=\itshape](n){#3};}
      }[#1]\tikzmark{s}\hl{#2}% <= missing \begin{tikzpicture}[remember picture, overlay] \draw[HLcolor,stealth-] let \p1 = (s), \p2 = (e) in ($(\x2,\y1)-(\marginparsep,0)$) -- ($(n.north west)!0.5!(n.south west)$); \end{tikzpicture}% <= missing } ` Per il problema nelle formule, è chiaramente un non-problema ( 😉 ) perché esistono altri pacchetti che permettono di evidenziarle in maniera più robusta. Potresti provare [tt]hf-tikz[/tt]. Con quel pacchetto non sono certo al 100% si possa creare una macro analoga a [tt]\MarkText[/tt], ma dividendo il workflow in due passaggi (evidenziare-aggiungere freccia e testo) è sicuramente possibile.

      Ciao
      Claudio

    • #92795
      Up
      0
      Down
      ::


      Magico (sopratutto per la rapidità impressionante), grazie!

      [tt]hf-tikz[/tt] era quello che avevo caricato per la mia macro (e che ho tolto perché confligge con la tua anche se tolgo la definizione di \tikzmark). Finemese consegno la tesi, poi mi ci dedico di più al tikz. Promesso 🙂

      Grazie ancora, ora è tutto perfetto! 🙂

      Ciao ciao,
      Corrado.

    • #92796
      Up
      0
      Down
      ::

      Dork” post=96166Magico (sopratutto per la rapidità impressionante), grazie!

      Era l’unico posto in cui avrei potuto dimenticare qualche spazio spurio 😉

      Dork” post=96166[tt]hf-tikz[/tt] era quello che avevo caricato per la mia macro (e che ho tolto perché confligge con la tua anche se tolgo la definizione di \tikzmark).

      Provando questo codice io non ottengo problemi:`
      \documentclass[a4paper]{scrreprt}
      \usepackage{amsmath}
      \usepackage{classicthesis}
      \usepackage{arsclassica}
      \usepackage{soul}
      \usepackage{marginnote}
      \usepackage{tikz}
      \usetikzlibrary{calc,shadows}

      \usepackage{hf-tikz}

      % based on:
      % http://tex.stackexchange.com/a/52336/13304
      \definecolor{HLcolor}{RGB}{124,18,18}
      \sethlcolor{HLcolor!20}

      \makeatletter
      \newdimen\SOUL@dimen %new
      \def\SOUL@ulunderline#1{{%
      \setbox\z@\hbox{#1}%
      \SOUL@dimen=\wd\z@ %new
      \dimen@i=\SOUL@uloverlap
      \advance\SOUL@dimen2\dimen@i %\dimen@ exchanged too
      \rlap{%
      \null
      \kern-\dimen@i
      \SOUL@ulcolor{\SOUL@ulleaders\hskip\SOUL@dimen}% new
      }%
      \unhcopy\z@
      }}
      \makeatother

      \newcommand\tikzmark[1]{\tikz[overlay,remember picture] \node (#1) {};}

      \newcommand\MarkText[3][1cm]{%
      \marginnote{\tikzmark{e}\color{HLcolor}%
      \tikz[remember picture]{%
      \node[drop shadow,top color=white, bottom color=HLcolor!20,rounded corners,draw,text width=0.9\marginparwidth,font=\itshape](n){#3};}
      }[#1]\tikzmark{s}\hl{#2}%
      \begin{tikzpicture}[remember picture, overlay]
      \draw[HLcolor,stealth-] let \p1 = (s), \p2 = (e) in ($(\x2,\y1)-(\marginparsep,0)$) — ($(n.north west)!0.5!(n.south west)$);
      \end{tikzpicture}%
      }

      \begin{document}
      \chapter{Boh}
      \section{Bla bla}
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
      vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida
      mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.
      Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus
      et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra
      metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. \MarkText{Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Curabitur auctor semper nulla.}{I really don't understand what you are talking about} Donec varius orci eget risus. Duis nibh mi, congue
      eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum.

      Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. Morbi
      auctor lorem non justo. Nam lacus libero, pretium at, lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna, vitae ornare odio metus a mi. Morbi ac orci et nisl hendrerit mollis. Suspendisse ut massa. Cras nec ante. Pellentesque a nulla. \MarkText[-\baselineskip]{Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.}{I still don't understand} Aliquam tincidunt urna. Nulla ullamcorper vestibulum turpis. Pellentesque cursus luctus mauris.

      \begin{equation}
      \tikzmarkin{a}x+y\tikzmarkend{a}+z=100
      \end{equation}

      \[P=
      \begin{pmatrix}
      0 & \tikzmarkin{b}1 & 1\\
      1 & 1\tikzmarkend{b} & 0\\
      \end{pmatrix}
      \]
      \end{document}
      ` Ma molto dipende da come avevi definito la macro tu.

      Dork” post=96166
      Finemese consegno la tesi, poi mi ci dedico di più al tikz. Promesso 🙂

      Ottimo 🙂

      Ciao
      Claudio

    • #92797
      Up
      0
      Down
      ::


      Nota al volo: all’interno della parte commentata si può mettere qualunque cosa (matematica, paragrafi, citazioni…), all’interno di quella evidenziata, solo testo… senza accenti e nessun “carattere speciale” (al di là di matematica in-linea che sappiamo già non ci può andare).

      Ciao ciao,
      Corrado.

    • #92798
      Up
      0
      Down
      ::

      Dork” post=96315Nota al volo: all’interno della parte commentata si può mettere qualunque cosa (matematica, paragrafi, citazioni…), all’interno di quella evidenziata, solo testo… senza accenti e nessun “carattere speciale” (al di là di matematica in-linea che sappiamo già non ci può andare).

      Ciao ciao,
      Corrado.

      Esattamente. In pratica nella parte evidenziata si hanno le limitazioni imposte da soul.

      Ciao
      Claudio

    • #92799
      Up
      0
      Down
      ::


      In realtà ho detto una falsità: sono andato a vedere e ho provato… matematica tra dollari (non tra tonde) la inserisce, gli accenti pure…ma solo espliciti:

      \MarkText{ciao $\frac{1}{3}2\tau_x$ cio\`e} funziona;
      \MarkText{ciao $\frac{1}{3}2\tau_x$ cioè} non funziona.

      Si si…la matematica che inserivo io non funzionava probabilmente perché includeva degli \index o roba simile…

      Ciao ciao
      Corrado 🙂

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

Go to top