Problema: riferimenti incrociati + classe standalone

  • Creatore
    Topic
  • #115153
    Andrea
    Partecipante
      Up
      0
      Down
      ::


      Buongiorno a tutti,
      intanto un ringraziamento particolare per la guida “L’arte di disegnare con LaTeX” di Gordini e Pantieri: l’ho trovata veramente utile e soprattutto chiara! 🙂

      Ho un problema di referenze incrociate usando la classe standalone.
      Mi spiego meglio. Questo è il main.tex:

      `
      %** Main.tex**

      \documentclass{article}
      \usepackage[italian]{babel}
      \usepackage{amsmath,amssymb,amsthm}
      \usepackage{hyperref}
      \usepackage{graphicx}
      \usepackage{xcolor}
      \usepackage{pgfplots}
      \usepackage{standalone}
      \usepackage{tikz}
      \usetikzlibrary{spy}
      \usetikzlibrary{decorations.fractals}
      \usetikzlibrary{external}
      \tikzexternalize

      \newtheorem{theorem}{Teorema}
      %*********************************************************************************
      % Impostazioni di hyperref
      %*********************************************************************************
      \hypersetup{%
      hyperfootnotes=true,pdfpagelabels,
      colorlinks=true, linktocpage=true, pdfstartpage=1, pdfstartview=FitV,
      breaklinks=true, pdfpagemode=UseNone, pageanchor=true, pdfpagemode=UseOutlines,%
      plainpages=false, bookmarksnumbered, bookmarksopen=true, bookmarksopenlevel=1,%
      hypertexnames=true, pdfhighlight=/O,
      urlcolor=blue, linkcolor=blue, citecolor=webgreen,
      pdfsubject={},%
      pdfkeywords={},%
      pdfcreator={pdfLaTeX}
      }

      \begin{document}
      Si consideri la seguente equazione
      \begin{equation}
      \label{eqn:a=b}
      A=B\,\,.
      \end{equation}
      Con riferimento all'eq.\,\eqref{eqn:a=b} si consideri la tabella~\ref{tab:AB}.\\

      \tikzset{external/remake next=true}
      \begin{table}
      \hspace{-1cm}\includegraphics[width=1.2\textwidth]{DisgnRq}
      \caption{A vs B}
      \label{tab:AB}
      \end{table}
      Lorem ipsum …
      \begin{theorem}
      \label{thm:L}
      Dolor sit amet…
      \end{theorem}

      Dal Teorema~\ref{thm:L} segue…
      \end{document}
      `

      e questo è il DisgnRq.tex :
      `
      %** DisgnRq.tex**

      \documentclass[%
      border={1cm .5cm 2cm .5cm} % left bottom right top
      ]{standalone}
      \usepackage{amsmath,amssymb,amsthm}
      \usepackage{hyperref}
      \usepackage{xcolor}
      \usepackage{tikz}
      \usepackage{preview}
      \hypersetup{%
      hyperfootnotes=true,pdfpagelabels,
      colorlinks=true, linktocpage=true, pdfstartpage=1, pdfstartview=FitV,
      breaklinks=true, pdfpagemode=UseNone, pageanchor=true, pdfpagemode=UseOutlines,%
      plainpages=false, bookmarksnumbered, bookmarksopen=true, bookmarksopenlevel=1,%
      hypertexnames=true, pdfhighlight=/O,
      urlcolor=blue, linkcolor=blue, citecolor=webgreen,
      pdfsubject={},%
      pdfkeywords={},%
      pdfcreator={pdfLaTeX}
      }
      \PreviewEnvironment{tikzpicture}
      \usetikzlibrary[positioning]
      \usetikzlibrary{patterns}

      \tikzset{S1/.style = {draw, text centered,
      minimum height = 1.5cm,
      minimum width = 13em,
      fill = green!15
      }}
      \tikzset{S2/.style = {draw, text centered,
      minimum height = 1.5cm,
      minimum width = 8em,
      fill = yellow!30,
      text width = 12.35 em
      }}

      \begin{document}

      \begin{center}
      \begin{tikzpicture}[node distance=0 cm,outer sep = 0pt]

      \node[S1,minimum height = 1cm] (A) at (-7,5.5) {A};

      \node[S2,minimum height = 1cm] (B)

      {B};

      % A
      \node[S1] (A1) [below=of A] {A1 (cfr.\,eq.\,\eqref{eqn:a=b})};

      % B
      \node[S2] (B1) [below=of B] {B1\\ \vspace{.2em}\fontsize{7.5}{5}\selectfont{Lorem ipsum (vd.\,Teorema~\ref{thm:L})}};

      \end{tikzpicture}
      \end{center}

      \end{document}
      `

      Come potete vedere non si compilano i riferimenti relativi:

      [attachment=2193]Compilazione.png[/attachment]

      Avete qualche soluzione?
      Grazie anticipatamente

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


          Secondo me, è del tutto normale che i riferimenti incrociati definiti con un documento, vengano ignorati in un altro documento, anche se il primo viene immesso nel secondo; I riferimenti incrociati dipendono da cosa viene scritto nel file .aux. quelli del primo documento sono scritti, nel file Primo-documento.aux e il risultato dell’elaborazione di scontornamento si prova in primo-documento.pdf. Quando compili il secondo documento, importi un’immagine in formato pdf, quella di primo-documento.pdf, e non importi anche il file primo-documento.aux.

          Cosa fare?

          Bisogna fare esperimenti; io farei così, ma quello che ti dico non necessariamante funziona, bisogna provare.

          1) verso la fine del preambolo importi il file .aux, con \input{primo-documento.aux} poi compili il secondo-documento.tex almeno due volte.

          2) dopo averne letto la documentazione (da terminale texdoc pax) carichi il pacchetto pax sia nel primo sia nel seocndo documento e aggiungi gli altri comandi che la documentazione di pax ti richiede; poi procedi con le compiliazioni dei tuoi due file .tex.

          Nota Io ho provato ad usare pax in congiunzione con l’uso di pfdpages. Mi sembra che funzionasse come previsto, ma lho abbandonato perc´h è incompatibile con il pacchetto pdfx, che uso molto più spesso di standalone e di pdfpages. Percìo dato il tempo passato, non ti assicuro che le cose possano funzionare anche per te.

          Prova e lo saprai.

        • #115155
          Andrea
          Partecipante
            Up
            0
            Down
            ::


            Ti ringrazio dei suggerimenti.
            Ho provato ma o non funzionano o non sono riuscito a farli funzionare. 😕
            Riguardo questo:

            1) verso la fine del preambolo importi il file .aux, con \input{primo-documento.aux} poi compili il secondo-documento.tex almeno due volte.

            ho provato in questo modo:

            `
            %** Main.tex**

            \documentclass{article}
            \usepackage[italian]{babel}
            \usepackage{amsmath,amssymb,amsthm}
            \usepackage{hyperref}
            \usepackage{graphicx}
            \usepackage{xcolor}
            \usepackage{pgfplots}
            \usepackage{standalone}
            \usepackage{tikz}
            \usetikzlibrary{spy}
            \usetikzlibrary{decorations.fractals}
            \usetikzlibrary{external}
            \tikzexternalize

            \newtheorem{theorem}{Teorema}
            %*********************************************************************************
            % Impostazioni di hyperref
            %*********************************************************************************
            \hypersetup{%
            hyperfootnotes=true,pdfpagelabels,
            colorlinks=true, linktocpage=true, pdfstartpage=1, pdfstartview=FitV,
            breaklinks=true, pdfpagemode=UseNone, pageanchor=true, pdfpagemode=UseOutlines,%
            plainpages=false, bookmarksnumbered, bookmarksopen=true, bookmarksopenlevel=1,%
            hypertexnames=true, pdfhighlight=/O,
            urlcolor=blue, linkcolor=blue, citecolor=webgreen,
            pdfsubject={},%
            pdfkeywords={},%
            pdfcreator={pdfLaTeX}
            }

            \input{DisgnRq.aux} %modifica suggerita

            \begin{document}

            Si consideri la seguente equazione
            \begin{equation}
            \label{eqn:a=b}
            A=B\,\,.
            \end{equation}
            Con riferimento all'eq.\,\eqref{eqn:a=b} si consideri la tabella~\ref{tab:AB}.\\

            \tikzset{external/remake next=true}
            \begin{table}
            \hspace{-1cm}\includegraphics[width=1.2\textwidth]{DisgnRq}
            \caption{A vs B}
            \label{tab:AB}
            \end{table}
            Lorem ipsum …
            \begin{theorem}
            \label{thm:L}
            Dolor sit amet…
            \end{theorem}

            Dal Teorema~\ref{thm:L} segue…
            \end{document}
            `

            ed ho ottenuto il messaggio di errore in allegato (
            [attachment:1]C:\fakepath\Schermata errore.png[/attachment]
            ).
            Mentre per quanto riguarda il secondo suggerimento non sono riuscito a creare il file .pax come richiesto dalla documentazione e quindi a vedere se effettivamente funziona.

            Grazie ancora

          • #115156
            Andrea
            Partecipante
              Up
              0
              Down
              ::


              Ti ringrazio dei suggerimenti.
              Ho provato ma o non funzionano o non sono riuscito a farli funzionare. 😕
              Riguardo questo:

              1) verso la fine del preambolo importi il file .aux, con \input{primo-documento.aux} poi compili il secondo-documento.tex almeno due volte.

              ho provato in questo modo:

              `
              %** Main.tex**

              \documentclass{article}
              \usepackage[italian]{babel}
              \usepackage{amsmath,amssymb,amsthm}
              \usepackage{hyperref}
              \usepackage{graphicx}
              \usepackage{xcolor}
              \usepackage{pgfplots}
              \usepackage{standalone}
              \usepackage{tikz}
              \usetikzlibrary{spy}
              \usetikzlibrary{decorations.fractals}
              \usetikzlibrary{external}
              \tikzexternalize

              \newtheorem{theorem}{Teorema}
              %*********************************************************************************
              % Impostazioni di hyperref
              %*********************************************************************************
              \hypersetup{%
              hyperfootnotes=true,pdfpagelabels,
              colorlinks=true, linktocpage=true, pdfstartpage=1, pdfstartview=FitV,
              breaklinks=true, pdfpagemode=UseNone, pageanchor=true, pdfpagemode=UseOutlines,%
              plainpages=false, bookmarksnumbered, bookmarksopen=true, bookmarksopenlevel=1,%
              hypertexnames=true, pdfhighlight=/O,
              urlcolor=blue, linkcolor=blue, citecolor=webgreen,
              pdfsubject={},%
              pdfkeywords={},%
              pdfcreator={pdfLaTeX}
              }

              \input{DisgnRq.aux} %modifica suggerita

              \begin{document}

              Si consideri la seguente equazione
              \begin{equation}
              \label{eqn:a=b}
              A=B\,\,.
              \end{equation}
              Con riferimento all'eq.\,\eqref{eqn:a=b} si consideri la tabella~\ref{tab:AB}.\\

              \tikzset{external/remake next=true}
              \begin{table}
              \hspace{-1cm}\includegraphics[width=1.2\textwidth]{DisgnRq}
              \caption{A vs B}
              \label{tab:AB}
              \end{table}
              Lorem ipsum …
              \begin{theorem}
              \label{thm:L}
              Dolor sit amet…
              \end{theorem}

              Dal Teorema~\ref{thm:L} segue…
              \end{document}
              `

              ed ho ottenuto il messaggio di errore in allegato.
              Mentre per quanto riguarda il secondo suggerimento non sono riuscito a creare il file .pax come richiesto dalla documentazione e quindi a vedere se effettivamente funziona.

              Grazie ancora

            • #115157
              Andrea
              Partecipante
                Up
                0
                Down
                ::


                Ti ringrazio dei suggerimenti.
                Ho provato ma o non funzionano o non sono riuscito a farli funzionare. 😕
                Riguardo questo:

                1) verso la fine del preambolo importi il file .aux, con \input{primo-documento.aux} poi compili il secondo-documento.tex almeno due volte.

                ho provato in questo modo:

                `
                %** Main.tex**

                \documentclass{article}
                \usepackage[italian]{babel}
                \usepackage{amsmath,amssymb,amsthm}
                \usepackage{hyperref}
                \usepackage{graphicx}
                \usepackage{xcolor}
                \usepackage{pgfplots}
                \usepackage{standalone}
                \usepackage{tikz}
                \usetikzlibrary{spy}
                \usetikzlibrary{decorations.fractals}
                \usetikzlibrary{external}
                \tikzexternalize

                \newtheorem{theorem}{Teorema}
                %*********************************************************************************
                % Impostazioni di hyperref
                %*********************************************************************************
                \hypersetup{%
                hyperfootnotes=true,pdfpagelabels,
                colorlinks=true, linktocpage=true, pdfstartpage=1, pdfstartview=FitV,
                breaklinks=true, pdfpagemode=UseNone, pageanchor=true, pdfpagemode=UseOutlines,%
                plainpages=false, bookmarksnumbered, bookmarksopen=true, bookmarksopenlevel=1,%
                hypertexnames=true, pdfhighlight=/O,
                urlcolor=blue, linkcolor=blue, citecolor=webgreen,
                pdfsubject={},%
                pdfkeywords={},%
                pdfcreator={pdfLaTeX}
                }

                \input{DisgnRq.aux} %modifica suggerita

                \begin{document}

                Si consideri la seguente equazione
                \begin{equation}
                \label{eqn:a=b}
                A=B\,\,.
                \end{equation}
                Con riferimento all'eq.\,\eqref{eqn:a=b} si consideri la tabella~\ref{tab:AB}.\\

                \tikzset{external/remake next=true}
                \begin{table}
                \hspace{-1cm}\includegraphics[width=1.2\textwidth]{DisgnRq}
                \caption{A vs B}
                \label{tab:AB}
                \end{table}
                Lorem ipsum …
                \begin{theorem}
                \label{thm:L}
                Dolor sit amet…
                \end{theorem}

                Dal Teorema~\ref{thm:L} segue…
                \end{document}
                `

                ed ho ottenuto il messaggio di errore in allegato.
                Mentre per quanto riguarda il secondo suggerimento non sono riuscito a creare il file .pax come richiesto dalla documentazione e quindi a vedere se effettivamente funziona.

                Grazie ancora

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


                  Senza vedere il file aux è difficile dire perché non funzioni.

                • #115159
                  Andrea
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Ok! Allego allora la cartella contenente i files.

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


                      Avevo immaginato la causa, ma non potevo esserne sicuro.
                      Ma, il punto è che avevo distrattamente equivocato su quale file era necessario aggiungere il file .aux

                      Il file va importato dentro al file Disgn,Rq.tex; ma siccome contiene comandi che nel nome contengono il segno @, bisogna farlo precedere dal comando \makeatletter.

                      Ti allego i file modificati; ho apportato qualche modifica al file DisgnRq.tex, per mia personale chiarezza. La modifica essenziale è che ho tolto l’ambiente center, perché anche quello dà un errore, veniale fin che vuoi, ma da un messaggio d’error.

                      Io lo vedo perché compilo sempre in \errorstop mode; quindi il programma mi si ferma ad ogni errore, senza andare in crash, ma lasciandomi vedere subito nella console che cosa c’è che non va; quasi sempre sono in grado di correggere il sorgente e apportare la modifica richiesta subito al file che è in compilazione usando i comandi della console. Si può fare anche con shell editor diversi da TeXShop (il mio, che però gira solo sul Mac), per esempio TeXworks, TeXstudio, Texmaker (e chissà quanti altri); bisogna configurare le opzioni del comando che lo shell editor invia al sistema operativo quando nell’editor si clicca sull’icona o sulla voce di menù di compilazione. Lo trovo comodissimo, e tu stesso avresti trovato l’errore e la soluzione se usassi questa impostazione del tuo shell editor.

                      Comunque i file che ti allego funzionano in modo da produrre quello che vuoi ottenere.

                      [attachment=2196]FilesReviewed.zip[/attachment]

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


                        Grazie mille! 🙂
                        Il problema è quasi risolto: il punto è che mentre i riferimenti
                        nel corpo del testo sono “links attivi”, quelli nella tabella non lo sono 😕 (vd. allegato)

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


                          È lì che entrerebbe in gioco il pacchetto pax.
                          Come ho detto, non sono tanto esperto di pax, perché per i miei scopi non è usabile, quindi non lo usoa, ma ladocumentazione dovrebbe dire come fare.

                          In realtà se le immagini sono tutte di quel tipo, io userei i file come DisgnRq.tex per mettera a punto l’imagine, poi importerei direttamante tutto l’ambiente tikzpicture con un bel copia e incolla, e non avrei più problemi.

                        • #115163
                          Andrea
                          Partecipante
                            Up
                            0
                            Down
                            ::


                            Il problema è, come dicevo, che non riesco a creare il file DisgnRq.pax. Infatti quando nel terminale do il seguente comando

                            `java -jar pax.jar DisgnRq.pdf`

                            mi dà il seguente errore:

                            `Exception in thread “main” java.lang.NoClassDefFoundError: org/pdfbox/cos/ICOSVisitor
                            Caused by: java.lang.ClassNotFoundException: org.pdfbox.cos.ICOSVisitor
                            at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
                            at java.security.AccessController.doPrivileged(Native Method)
                            at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
                            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
                            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
                            at java.lang.ClassLoader.loadClass(ClassLoader.java:247)`

                            La tabella in realtà è piuttosto lunga ecco perchè stavo cercando un modo per gestirla meglio.
                            In ogni caso ho trovato un compromesso tra leggibilità del sorgente e praticità di compilazione,
                            commentando il preambolo di “DisgnRq.tex” (insieme all’ambiente center) e inserendo in “Main.tex”:

                            `\begin{table}
                            \centering
                            \resizebox{1\textwidth}{!}{\input{DisgnRq}}
                            \caption{A vs B}
                            \label{tab:AB}
                            \end{table}`

                            Grazie ancora della disponibilità e dei suggerimenti 🙂

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

                        Go to top