Strano problema DVI vs. TikZ (+ errore incomprensibile)

  • Creatore
    Topic
  • #33692
    Up
    0
    Down
    ::


    Salve a tutti… Ho un problema DVI vs. TikZ che mi ha fatto perdere le ultime due ore invano…

    Ho un documentclass book bello corposo con diverse figure TikZ, ma a un certo punto mi da un problema.

    Se ci aggiunge il semplice codice (che, in un .tex separato, funziona perfettamente! -> 0 errori 0 warnings):

    `\begin{figure}
    \begin{tikzpicture}[scale=1]

    \tikzstyle{axes}=[]

    % Draw axes
    \begin{scope}[style=axes]
    \draw[->] (-2,0) — (3,0) node

    {$x$};
    \draw[->] (0,-2) — (0,3) node[above] {$y$};
    \end{scope}

    \draw[pattern=north west lines] (-2,-2) rectangle (2,3);

    \end{tikzpicture}
    \end{figure}`

    non ho errori aggiuntivi (tutto il documento rimane a 0 errori 0 warnings) ma il DVI mi dà un alert insistente di:

    The page could not be rendered

    Error: /undefined in pgfpat4
    Operand stack:
    –nostringval– –nostringval– –nostringval– 0 0 0
    Execution stack:
    %interp_exit .runexec2 –nostringval– –nostringval– –nostringval– 2 %stopped_push –nostringval– –nostringval– –nostringval– false 1 %stopped_push 1893 1 3 %oparray_pop 1892 1 3 %oparray_pop 1876 1 3 %oparray_pop 1755 1 3 %oparray_pop –nostringval– %errorexec_pop .runexec2 –nostringval– –nostringval– –nostringval– 2 %stopped_push –nostringval–
    Dictionary stack:
    –dict:1155/1684(ro)(G)– –dict:1/20(G)– –dict:88/200(L)– –dict:188/300(L)– –dict:74/200(L)–
    Current allocation mode is local
    Last OS error: No such file or directory
    MiKTeX GPL Ghostscript 8.60: Unrecoverable error, exit code 1

    Ho fatto delle ricerche su Google ma niente di pertinente…

    Devo chiamare un esorcista?

    P.S. Le librerie ci sono tutte perché ho altre immagini che fanno praticamente la stessa cosa con valori diversi e funzionano perfettamente.

Visualizzazione 9 filoni di risposte
  • Autore
    Risposte
    • #33693
      Up
      0
      Down
      ::

      Salve a tutti… Ho un problema DVI vs. TikZ che mi ha fatto perdere le ultime due ore invano…

      Ho un documentclass book bello corposo con diverse figure TikZ, ma a un certo punto mi da un problema.

      Se ci aggiunge il semplice codice (che, in un .tex separato, funziona perfettamente! -> 0 errori 0 warnings):

      `\begin{figure}
      \begin{tikzpicture}[scale=1]

      \tikzstyle{axes}=[]

      % Draw axes
      \begin{scope}[style=axes]
      \draw[->] (-2,0) — (3,0) node

      {$x$};
      \draw[->] (0,-2) — (0,3) node[above] {$y$};
      \end{scope}

      \draw[pattern=north west lines] (-2,-2) rectangle (2,3);

      \end{tikzpicture}
      \end{figure}`

      non ho errori aggiuntivi (tutto il documento rimane a 0 errori 0 warnings) ma il DVI mi dà un alert insistente di:

      The page could not be rendered

      Error: /undefined in pgfpat4
      Operand stack:
      –nostringval– –nostringval– –nostringval– 0 0 0
      Execution stack:
      %interp_exit .runexec2 –nostringval– –nostringval– –nostringval– 2 %stopped_push –nostringval– –nostringval– –nostringval– false 1 %stopped_push 1893 1 3 %oparray_pop 1892 1 3 %oparray_pop 1876 1 3 %oparray_pop 1755 1 3 %oparray_pop –nostringval– %errorexec_pop .runexec2 –nostringval– –nostringval– –nostringval– 2 %stopped_push –nostringval–
      Dictionary stack:
      –dict:1155/1684(ro)(G)– –dict:1/20(G)– –dict:88/200(L)– –dict:188/300(L)– –dict:74/200(L)–
      Current allocation mode is local
      Last OS error: No such file or directory
      MiKTeX GPL Ghostscript 8.60: Unrecoverable error, exit code 1

      Ho fatto delle ricerche su Google ma niente di pertinente…

      Devo chiamare un esorcista?

      P.S. Le librerie ci sono tutte perché ho altre immagini che fanno praticamente la stessa cosa con valori diversi e funzionano perfettamente.

      Il problema è con Ghostscript, evidentemente, il dvi non c’entra nulla. Difficile fare diagnosi con così pochi elementi. Prova con il “divide et impera”: dividi il tuo file a metà successive fino a che trovi l’errore. Ho il sospetto che non c’entri nulla con tikz.

      Ciao
      Enrico

    • #33694
      Up
      0
      Down
      ::


      L’unico modo per far andare il documento è togliere ENTRAMBE le figure simili che precedono (inframmezzate da del testo) la figure problematica di cui sopra.. Ovvero:

      `\begin{figure}
      \centering
      \begin{tikzpicture}[scale=1]

      \tikzstyle{axes}=[]

      % Draw axes
      \begin{scope}[style=axes]
      \draw[->] (-2,0) — (3,0) node

      {$x$};
      \draw[->] (0,-2) — (0,3) node[above] {$y$};
      \end{scope}

      \coordinate (A) at (2,2);

      \fill[black] (A) circle (1pt) node[above right] {$\left(X,Y \right)$};

      \draw[dashed] (-2,2) coordinate — (A) coordinate;

      \draw[dashed] (2,-2) coordinate — (A) coordinate;

      \draw [pattern=north west lines] (-2,2) — (2,2) — (2,-2) — (-2,-2) ;

      \end{tikzpicture}
      \label{fig:vcdoppia}
      \caption{Regione angolare del piano cartesiano}
      \end{figure}`

      e

      `\begin{figure}
      \centering
      \begin{tikzpicture}[scale=1]

      \tikzstyle{axes}=[]

      % Draw axes
      \begin{scope}[style=axes]
      \draw[->] (-2,0) — (3,0) node

      {$x$};
      \draw[->] (0,-2) — (0,3) node[above] {$y$};
      \end{scope}

      \coordinate (x2y2) at (2,2);
      \coordinate (x2y1) at (2,-0.5);
      \coordinate (x1y2) at (-0.5,2);
      \coordinate (x1y1) at (-0.5,-0.5);

      \fill[black] (x2y2) circle (1pt) node[above right] {$\left(x_2,y_2\right)$};

      \fill[black] (x2y1) circle (1pt) node[below right] {$\left(x_2,y_1\right)$};

      \fill[black] (x1y2) circle (1pt) node[above left] {$\left(x_1,y_2\right)$};

      \fill[black] (x1y1) circle (1pt) node[below left] {$\left(x_1,y_1\right)$};

      \draw[dashed] (x2y2) coordinate — (x2y1) coordinate;

      \draw[dashed] (x2y1) coordinate — (x1y1) coordinate;

      \draw[dashed] (x1y1) coordinate — (x1y2) coordinate;

      \draw[dashed] (x1y2) coordinate — (x2y2) coordinate;

      \draw [pattern=north west lines] (x2y2) — (x2y1) — (x1y1) — (x1y2) ;

      \end{tikzpicture}
      \label{fig:vcdoppia_proprietà}
      \caption{Regione angolare del piano cartesiano}
      \end{figure}`

      C’è qualcosa che va in conflitto?? E’ strano perché anche ammettendo ciò, queste due non danno problemi tra loro e, ripeto, vanno rimosse entrambe… 😯

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


        Ho provato a compilare le tue figure.
        Ho ottenuto un errore con l’opzione `[pattern=north west lines]` tolta la quale la compilazione pdflatex ha sfornato il pdf penso correttamente.

        Ho compilato anche con latex per ottenere il dvi. Non ci sono stati errori di compilazione ma non riesco ad aprire il dvi con dviout per errori a me incomprensibili anche perché non utilizzo mai il dvi.

        Spero che questo feedback ti sia utile.
        Ciao.

        Aggiungo il codice:
        `\documentclass{book}
        \usepackage{tikz}
        \begin{document}

        \begin{figure}
        \centering
        \begin{tikzpicture}[scale=1]

        \tikzstyle{axes}=[]

        % Draw axes
        \begin{scope}[style=axes]
        \draw[->] (-2,0) — (3,0) node

        {$x$};
        \draw[->] (0,-2) — (0,3) node[above] {$y$};
        \end{scope}
        \coordinate (A) at (2,2);
        \fill[black] (A) circle (1pt) node[above right] {$\left(X,Y \right)$};
        \draw[dashed] (-2,2) coordinate — (A) coordinate;
        \draw[dashed] (2,-2) coordinate — (A) coordinate;
        \draw (-2,2) — (2,2) — (2,-2) — (-2,-2) ;
        %[pattern=north west lines]
        \end{tikzpicture}
        \label{fig:vcdoppia}
        \caption{Regione angolare del piano cartesiano}
        \end{figure}

        \begin{figure}
        \centering
        \begin{tikzpicture}[scale=1]
        \tikzstyle{axes}=[]

        % Draw axes
        \begin{scope}[style=axes]
        \draw[->] (-2,0) — (3,0) node

        {$x$};
        \draw[->] (0,-2) — (0,3) node[above] {$y$};
        \end{scope}

        \coordinate (x2y2) at (2,2);
        \coordinate (x2y1) at (2,-0.5);
        \coordinate (x1y2) at (-0.5,2);
        \coordinate (x1y1) at (-0.5,-0.5);
        \fill[black] (x2y2) circle (1pt) node[above right] {$\left(x_2,y_2\right)$};
        \fill[black] (x2y1) circle (1pt) node[below right] {$\left(x_2,y_1\right)$};
        \fill[black] (x1y2) circle (1pt) node[above left] {$\left(x_1,y_2\right)$};
        \fill[black] (x1y1) circle (1pt) node[below left] {$\left(x_1,y_1\right)$};
        \draw[dashed] (x2y2) coordinate — (x2y1) coordinate;
        \draw[dashed] (x2y1) coordinate — (x1y1) coordinate;
        \draw[dashed] (x1y1) coordinate — (x1y2) coordinate;
        \draw[dashed] (x1y2) coordinate — (x2y2) coordinate;
        \draw (x2y2) — (x2y1) — (x1y1) — (x1y2) ;
        %[pattern=north west lines]
        \end{tikzpicture}
        \label{fig:vcdoppia_proprietà}
        \caption{Regione angolare del piano cartesiano}
        \end{figure}
        \end{document}`

      • #33696
        Up
        0
        Down
        ::

        L’unico modo per far andare il documento è togliere ENTRAMBE le figure simili che precedono (inframmezzate da del testo) la figure problematica di cui sopra.. Ovvero:

        `\begin{figure}
        \centering
        \begin{tikzpicture}[scale=1]

        \tikzstyle{axes}=[]

        % Draw axes
        \begin{scope}[style=axes]
        \draw[->] (-2,0) — (3,0) node

        {$x$};
        \draw[->] (0,-2) — (0,3) node[above] {$y$};
        \end{scope}

        \coordinate (A) at (2,2);

        \fill[black] (A) circle (1pt) node[above right] {$\left(X,Y \right)$};

        \draw[dashed] (-2,2) coordinate — (A) coordinate;

        \draw[dashed] (2,-2) coordinate — (A) coordinate;

        \draw [pattern=north west lines] (-2,2) — (2,2) — (2,-2) — (-2,-2) ;

        \end{tikzpicture}
        \label{fig:vcdoppia}
        \caption{Regione angolare del piano cartesiano}
        \end{figure}`

        e

        `\begin{figure}
        \centering
        \begin{tikzpicture}[scale=1]

        \tikzstyle{axes}=[]

        % Draw axes
        \begin{scope}[style=axes]
        \draw[->] (-2,0) — (3,0) node

        {$x$};
        \draw[->] (0,-2) — (0,3) node[above] {$y$};
        \end{scope}

        \coordinate (x2y2) at (2,2);
        \coordinate (x2y1) at (2,-0.5);
        \coordinate (x1y2) at (-0.5,2);
        \coordinate (x1y1) at (-0.5,-0.5);

        \fill[black] (x2y2) circle (1pt) node[above right] {$\left(x_2,y_2\right)$};

        \fill[black] (x2y1) circle (1pt) node[below right] {$\left(x_2,y_1\right)$};

        \fill[black] (x1y2) circle (1pt) node[above left] {$\left(x_1,y_2\right)$};

        \fill[black] (x1y1) circle (1pt) node[below left] {$\left(x_1,y_1\right)$};

        \draw[dashed] (x2y2) coordinate — (x2y1) coordinate;

        \draw[dashed] (x2y1) coordinate — (x1y1) coordinate;

        \draw[dashed] (x1y1) coordinate — (x1y2) coordinate;

        \draw[dashed] (x1y2) coordinate — (x2y2) coordinate;

        \draw [pattern=north west lines] (x2y2) — (x2y1) — (x1y1) — (x1y2) ;

        \end{tikzpicture}
        \label{fig:vcdoppia_proprietà}
        \caption{Regione angolare del piano cartesiano}
        \end{figure}`

        C’è qualcosa che va in conflitto?? E’ strano perché anche ammettendo ciò, queste due non danno problemi tra loro e, ripeto, vanno rimosse entrambe… 😯

        È il problema di usare front-end troppo “intelligenti” che non mostrano i messaggi di errore. 👿

        Il log dice che si deve scrivere \usetikzlibrary{patterns} nel preambolo.

        Ciao
        Enrico

      • #33697
        Up
        0
        Down
        ::


        \usetikzlibrary{patterns} io nel preambolo ce l’avevo messo 😀

        Comunque si, è “pattern=north west lines” che da problemi.. Ma l’ho presi pari pari dal manuale di TikZ/PGF 🙁

        Come fare per ottenere lo stesso effetto senza usarlo? 😕

        Comunque vi ringrazio molto per l’aiuto! Mi rendo conto che sia un argomento un po’ noioso…

      • #33698
        Up
        0
        Down
        ::

        \usetikzlibrary{patterns} io nel preambolo ce l’avevo messo 😀

        Comunque si, è “pattern=north west lines” che da problemi.. Ma l’ho presi pari pari dal manuale di TikZ/PGF 🙁

        Come fare per ottenere lo stesso effetto senza usarlo? 😕

        Comunque vi ringrazio molto per l’aiuto! Mi rendo conto che sia un argomento un po’ noioso…

        Crea un documento con le sole illustrazioni tikz, ma senza gli ambienti figure e le didascalie, che sembrano irrilevanti; nel preambolo metti solo \usepackage{tikz} e \usetikzlibrary{patterns}; prima di \documentclass aggiungi \listfiles. Hai lo stesso errore? Se sì, riporta la lista dei file. Se no, sai che il problema è altrove.

        Se lo faccio ottengo una compilazione corretta sia con latex+dvips+ps2pdf che con pdflatex. Vedo benissimo le immagini sia con xdvi che con Ghostview.

        Ciao
        Enrico

      • #33699
        Up
        0
        Down
        ::


        Accidenti… non mi da il problema. °______°

        Ma allora dove cavolo sarà….. 😈

        Vabbé, lo cercherò… Nel frattempo per la cronaca posso risolvere usando “east” invece di “west”: cambiando l’orientamento delle linee non mi da errore… -_______-‘

      • #33700
        Up
        0
        Down
        ::


        Ma che storia!

        Ho cambiato pattern all’immagine che dà problemi: se sotto metto un’altra immagine con lo stesso pattern mi dà lo stesso errore!

        Non posso cambiare pattern ad ogni immagine e, in ogni caso, non ha senso! 😯

        Vi posto tutto il preambolo, magari c’è qualche coincidenza astrale nell’ordine delle librerie che andrebbe modificata:

        `\documentclass[oneside]{book}

        \usepackage[italian]{babel}
        \usepackage[latin1]{inputenc}
        \usepackage[T1]{fontenc}

        %\usepackage{hyperref}
        %\usepackage{draftcopy}
        %\draftcopyName{Bozza}

        \usepackage{booktabs}
        \providecommand{\tabularnewline}{\\}

        \usepackage{verbatim}

        \usepackage{tikz}
        \usepackage{pstricks,pst-plot,pst-bar}
        \usetikzlibrary{automata,%
        positioning}
        \usetikzlibrary{patterns}

        \usepackage{enumitem,indentfirst}

        \usepackage{epsdice,amsthm,amsfonts,amsmath,amsopn}
        \newcommand{\plim}{\operatornamewithlimits{plim}}

        \theoremstyle{definition}
        \newtheorem{definizione}{Definizione}[section]
        \theoremstyle{plain}
        \newtheorem{teorema}{Teorema}[section]
        \theoremstyle{definition}
        \newtheorem{esempio}{Esempio}[section]
        \theoremstyle{definition}
        \newtheorem{dimostrazione}{Dimostrazione}[section]

        \usepackage{indentfirst}

        \title{…}
        \author{…}

        \usepackage[plainpages=false,pdfpagelabels]{hyperref}`

      • #33701
        Up
        0
        Down
        ::


        Vabbé amen, sono passato al Latex > PDF e ho risolto… Non è che si possa perdere tempo (io e voi) dietro a queste bizzarrie, no? 😕

      • #33702
        Up
        0
        Down
        ::

        Ma che storia!

        Ho cambiato pattern all’immagine che dà problemi: se sotto metto un’altra immagine con lo stesso pattern mi dà lo stesso errore!

        Non posso cambiare pattern ad ogni immagine e, in ogni caso, non ha senso! 😯

        Non ho alcun errore, con quel preambolo, che ha solo un po’ di ridondanze: chiami due volte indentfirst e dai un \providecommand perfettamente inutile. Se anche \tabularnewline non fosse definito, definirlo come \\ non risolverebbe il problema per cui è stato introdotto.

        Può darsi che l’elenco dei file che ti avevo chiesto possa fare luce sul problema. Se proprio devi usare pstricks non c’è molto da fare (ma esiste pdftricks che permette di usare pstricks, con qualche limitazione, con pdflatex).

        Ciao
        Enrico

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

    Go to top