Modificare ambiente venndiagram2sets

  • Creatore
    Topic
  • #90697
    GuITstaff
    Amministratore del forum
      Up
      0
      Down
      ::


      Ciao!

      Devo disegnare tramite il pacchetto venndiagram il complementare di un insieme A, utilizzando l’ambiente venndiagram2sets mi disegna il rettangolo con dentro contenuti gli insiemi A e B, io invece voglio che ci sia l’insieme A solamente e l’area circostante dentro il rettangolo indicata con l’insieme X, come si può vedere dall’immagine allegata.

      [attachment=847]Immagine_2013-11-28.jpg[/attachment]

      Ho provato a creare un nuovo ambiente tramite questo codice:

      \newenvironment{venndiagram1set}[1][]%
      {%
      \setkeys{venn}{#1}%
      \def\fillA{\path[fill=\@venn@shade] (\@venn@Ax,\@venn@Ay)circle (\@venn@radius);}%
      \def\fillAll{\path[fill=\@venn@shade] (0,0) rectangle (\@venn@w,\@venn@h);}%
      \def\fillNotA{\path[fill=\@venn@shade,even odd rule](0,0) rectangle (\@venn@w,\@venn@h) (\@venn@Ax,\@venn@Ay) circle (\@venn@radius);}%
      \ifdefempty{\@venn@tikzoptions}%
      {%
      \def\@venn@dobegin{\begin{tikzpicture}}%
      }%
      {%
      \edef\@venn@dobegin{\noexpand\begin{tikzpicture}%
      [\expandonce\@venn@tikzoptions]}%
      }%
      \@venn@dobegin
      \path (0,0) coordinate (venn bottom left)(0,\@venn@h) coordinate (venn top left)(\@venn@w,\@venn@h) coordinate (venn top right)(\@venn@w,0) coordinate (venn bottom right);
      }%
      {%
      \draw (venn bottom left) rectangle (\@venn@w,\@venn@h);
      \draw (\@venn@Ax,\@venn@Ay) circle (\@venn@radius);
      \draw (\@venn@Ax,\@venn@Ay) node[above,left] (labelOnlyA) {\@venn@label@OnlyA};
      \draw (\@venn@vgap,\@venn@hgap) node (labelNotA) {\@venn@label@NotA};
      \draw (\@venn@Ax,\@venn@Ay+\@venn@radius) node[below] (labelA) {\@venn@label@A};
      \@postvennhook
      \end{tikzpicture}
      }

      E poi nel documento ho scritto:

      \begin{figure}[!htbp]
      \centering
      \begin{venndiagram1set}[labelNotA={X}]
      \fillNotA
      \end{venndiagram1set}}
      \end{figure}

      Ma compilando mi dice che non esiste il comando labelNotA, forse ho sbagliato a definirlo?

      Qualcuno può aiutarmi?

      Grazie.

      Attachments:
      You must be logged in to view attached files.
    Visualizzazione 2 filoni di risposte
    • Autore
      Risposte
      • #90698
        Up
        0
        Down
        ::


        Invece di complicarti la vita a ridefinire i comandi, non potresti utilizzare direttamente TiKz come già fa quel pacchetto? 😀 Nel tuo caso dovresti scrivere qualcosa come
        `
        \begin{tikzpicture}
        \draw[fill=gray!30](0,0) rectangle (3cm,2cm);
        \node[above left] at (0,0) {$X$};
        \filldraw(1.5cm,1cm) circle (.8cm);
        \draw(1.5cm,1cm) ++(90:.7cm) node{$A$};
        \end{tikzpicture}
        `
        Per personalizzarlo consulta la guida “Arte TiKz” scaricabile dalla documentazione o il manuale del pacchetto (ottenibile dando [tt]texdoc tikz[/tt] nella shell, anche se è molto voluminoso :D).

      • #90699
        GuITstaff
        Amministratore del forum
          Up
          0
          Down
          ::


          Grazie mille ho risolto, utilizzando il codice che mi hai fornito.
          Non ci avevo pensato e mi stavo complicando la vita, definendo un nuovo ambiente.

        • #90700
          Up
          0
          Down
          ::

          skevin93″ post=90231Invece di complicarti la vita a ridefinire i comandi, non potresti utilizzare direttamente TiKz come già fa quel pacchetto? 😀 Nel tuo caso dovresti scrivere qualcosa come
          `
          \begin{tikzpicture}
          \draw[fill=gray!30](0,0) rectangle (3cm,2cm);
          \node[above left] at (0,0) {$X$};
          \filldraw(1.5cm,1cm) circle (.8cm);
          \draw(1.5cm,1cm) ++(90:.7cm) node{$A$};
          \end{tikzpicture}
          `
          Per personalizzarlo consulta la guida “Arte TiKz” scaricabile dalla documentazione o il manuale del pacchetto (ottenibile dando [tt]texdoc tikz[/tt] nella shell, anche se è molto voluminoso :D).

          TikZ 😉

          Ciao
          Claudio

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

      Go to top