divisione del testo in più files

  • Creatore
    Topic
  • #90390
    Up
    0
    Down
    ::


    Salve a tutti,

    vorrei un aiuto sull’organizzazione dei file per testi lunghi.
    A dire il vero si tratta di articoli per riviste scientifiche e quindi non sono molto lunghi, una trentina di pagine in genere.
    Però sono molto complessi, nel senso che ci sono molte tabelle e tante figure. Il problema è che fare tutto in un unico file .tex anche se per poche pagine mi risulta molto scomodo.
    Il problema principale sta nelle tabelle e nelle figure che rendono lo scorrimento del file .tex molto articolato (le figure le compongo con pgfplot e quindi allungano notevolmete il file .tex), nel senso che mi perdo ed è anche scomodo tornare nel pdf, scorrerlo e poi linkarmi al punto del file .tex che mi serve.
    Avevo pensato a due soluzioni:
    1) usare il comando \input per inserire uno alla volta differenti file .tex corrispondenti alle diverse sezione dell’articolo;
    2) dato che si tratta solo di una trentina di pagine, piene di tabelle e figure, vorrei creare un file .tex in cui inserisco solo il testo, uno solo per le tabelle e uno solo per le figure.

    La seconda opzione mi sembra la più comoda, ma ha un problema. Come inserisco di volta in volta nel file .tex le figure e le tabelle, senza creare un file per ogni singola figura e per ogni singola tabella?
    Grazie per l’aiuto

Visualizzazione 12 filoni di risposte
  • Autore
    Risposte
    • #90391
      alegenn
      Partecipante
        Up
        0
        Down
        ::

        rodolfo84″ post=89909Salve a tutti,

        vorrei un aiuto sull’organizzazione dei file per testi lunghi.
        A dire il vero si tratta di articoli per riviste scientifiche e quindi non sono molto lunghi, una trentina di pagine in genere.
        Però sono molto complessi, nel senso che ci sono molte tabelle e tante figure. Il problema è che fare tutto in un unico file .tex anche se per poche pagine mi risulta molto scomodo.
        Il problema principale sta nelle tabelle e nelle figure che rendono lo scorrimento del file .tex molto articolato (le figure le compongo con pgfplot e quindi allungano notevolmete il file .tex), nel senso che mi perdo ed è anche scomodo tornare nel pdf, scorrerlo e poi linkarmi al punto del file .tex che mi serve.
        Avevo pensato a due soluzioni:
        1) usare il comando \input per inserire uno alla volta differenti file .tex corrispondenti alle diverse sezione dell’articolo;
        2) dato che si tratta solo di una trentina di pagine, piene di tabelle e figure, vorrei creare un file .tex in cui inserisco solo il testo, uno solo per le tabelle e uno solo per le figure.

        La seconda opzione mi sembra la più comoda, ma ha un problema. Come inserisco di volta in volta nel file .tex le figure e le tabelle, senza creare un file per ogni singola figura e per ogni singola tabella?
        Grazie per l’aiuto

        Ciao,
        hai provato a leggere la documentazione della classe [tt]standalone[/tt] ([tt]texdoc standlaone[/tt] da terminale)?

      • #90392
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          \input o \include, con le loro sostanziali differenze sono entrambi usabili;

          \include ti permette di eseguire una compilazione selettiva, senza sostanzialmente cambiare il main file che include tutti gli altri, ma facendo sì che i riferimenti incrociati siano rispettati almeno per i file già compilati almeno una volta. il file principla edeve contenere nle preambolo il comando \includeonly{…} il cuoi argomento contiene la lista dei file da compilare.

          Il tutto è spiegato:
          1) nella guida tematica Il LaTeX Reference Manual commentato e tradotto in italiano scaricanile dalla sottosezione delle guide tematiche della sezione Documentazione di questo sito;
          2) nella guida L’Arte di scrivere con LaTeX da scaricare dalla sezione Documentazione
          3) la cosiddetta Guida GuIT da scaricare dal sito Documentazione.

          Naturalmente l’approccio della classe standalone è validissimo e raccomandabile; una volta compilata ogni tabella e figura in modalità standalone, le immetti con \input e non rallenti più la compilazione. Come ti ha suggerito @alegen, leggi la documentazione di standalone dando da terminale il comando texdoc standalone

        • #90393
          Up
          0
          Down
          ::


          Leggendo la documentazione della classe standalone mi sembra di capire che l’unico vantaggio rispetto al semplice uso di \input/\include sta nella possibilità di compilare singolarmente i vari subfile contenenti le figure, tabelle o altro materiale.
          In ogni caso, non mi sembra che il problema presentato da me sia affrontabile con i metodi proposti. Infatti, almeno che non stia sbagliando, sia con \include/\input che con standalone dovrei creare un file separato per ogni figura e per ogni tabella. Io vorrei invece creare un unico file per tutte le figure, uno per tutte le tabelle e poi richiamarle in qualche modo nel main file tramite ad esempio le rispettive label. Si può fare?

          Grazie

        • #90394
          Up
          0
          Down
          ::

          rodolfo84″ post=89932In ogni caso, non mi sembra che il problema presentato da me sia affrontabile con i metodi proposti. Infatti, almeno che non stia sbagliando, sia con \include/\input che con standalone dovrei creare un file separato per ogni figura e per ogni tabella. Io vorrei invece creare un unico file per tutte le figure, uno per tutte le tabelle e poi richiamarle in qualche modo nel main file tramite ad esempio le rispettive label. Si può fare?

          Tutto si può fare, basta vedere se conviene o meno.

          In questo caso direi di no. Perché se hai un file per ogni figura (stesso discorso per le tabelle) puoi semplicemente scrivere:`
          \begin{figure}
          \centering
          \includegraphics[]{nome-file}
          \caption{}
          \label{}
          \end{figure}
          ` Se il nome-file è unico, allora ti serve qualcosa in più per identificare all’interno del file a quale figura ti stai riferendo. Se hai un nome-file.tex che ha solo codice di figure, come fai a capire che vuoi il codice per la terza figura rispetto a quello della seconda?

          Il modo per farlo però ci sarebbe in effetti (beh, non ho pensato a tutte le ipotesi del caso, ma credo funzioni solo se hai tutte le figure in codice TikZ). L’ipotesi è forte, me ne rendo conto, e serve perché documenti composti con classe standalone in cui ci sono solo ambienti tikzpicture producono una pagina per figura. Con un unico file mie-figure.tex, compili ottenendo mie-figure.pdf. A quel punto sei a posto perché con il pacchetto pdfpages includi come figura nel documento principale la pagina di mie-figure.pdf che ti serve. Ma puoi vedere benissimo che non è un metodo banale.

          Ciao
          Claudio

        • #90395
          alegenn
          Partecipante
            Up
            0
            Down
            ::

            rodolfo84″ post=89932Leggendo la documentazione della classe standalone mi sembra di capire che l’unico vantaggio rispetto al semplice uso di \input/\include sta nella possibilità di compilare singolarmente i vari subfile contenenti le figure, tabelle o altro materiale.
            In ogni caso, non mi sembra che il problema presentato da me sia affrontabile con i metodi proposti. Infatti, almeno che non stia sbagliando, sia con \include/\input che con standalone dovrei creare un file separato per ogni figura e per ogni tabella. Io vorrei invece creare un unico file per tutte le figure, uno per tutte le tabelle e poi richiamarle in qualche modo nel main file tramite ad esempio le rispettive label. Si può fare?

            Grazie

            Ciao,
            ma se inserisci tutte le figure in un unico file, come potresti poi spiegare al sistema TeX che deve prendere solo la figura, diciamo 4, come farebbe a scorporarne il codice ed inserirlo dove vuoi tu?
            Dici che con [tt]standalone[/tt] l’unico vantaggio è di avere i codici in un file separato, a parte che non è vero, perché ti consente di risparmiare sui tempi di compilazione, specie se si tratta di figure fatte con [tt]tikz[/tt], ma questo non migliorerebbe la leggibilità del sorgente, come da te richiesto?
            Saluti

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


              Ciao,
              io produco testi simili (relazioni tecniche).
              Non simili per contenuto, ma simili perché anche nei miei documenti ci sono moltissime figure e tabelle.
              In genere contengono centinaia di figure e tabelle.

              Per orientarmi e lavorare comodamente uso questa impostazione:
              1 – un main file principale che carica il preambolo ed uno alla volta (con \input) i file delle sezioni (un sorgente per una sezione) (così diventa comodo compilare con le righe magiche di TeX works direttamente dal sorgente della sezione ed eventualmente commentare nel file principale le sezioni che non interessano così da rendere breve la compilazione);
              2 – nelle singole sezioni carico le figure da file esterno salvandole tutte nella sotto cartella “image”.

              Puoi quindi costruire un file sorgente con la classe standalone (che ritaglia automaticamente i bordi bianchi del documento) per ottenere i vari grafici. Devi solo far attenzione che i font sia lo stesso che quello principale.
              Nel file di sezione avrai solamente il classico ambiente figure con il comando \includegraphics.
              (ehm, code risapute se tu avessi letto il nostro articolo su pgfplots su ArsTeXnica)

              Per le tabelle, se sono brevi meglio inserirle nel sorgente. Quelle importanti per dimensione conviene inserirle in un file .tex a parte e caricarle all’interno di un table environment.

              A volte, se si hanno molte figure si fatica un po’ a scrivere il codice di inserimento perchè si devono conoscere i nomi dei file.
              Una convenzione standard aiuta molto a risolvere questo aspetto.
              Per esempio, potresti nominare i file dei grafici premettendo la stessa sigla:
              per i modi di vibrare di una struttura che sono anche una decina di immagini, uso i nomi: SD_mode_01, ecc

              Comunque, una funzionalità ben fatta dell’editor potrebbe aiutare…
              R.

            • #90397
              Up
              0
              Down
              ::


              Le figure devono essere inserite nel testo, non posso fare una figura per ogni pagina.
              Comunque Grazie

            • #90398
              Up
              0
              Down
              ::

              cfiandra” post=89934

              In ogni caso, non mi sembra che il problema presentato da me sia affrontabile con i metodi proposti. Infatti, almeno che non stia sbagliando, sia con \include/\input che con standalone dovrei creare un file separato per ogni figura e per ogni tabella. Io vorrei invece creare un unico file per tutte le figure, uno per tutte le tabelle e poi richiamarle in qualche modo nel main file tramite ad esempio le rispettive label. Si può fare?

              Tutto si può fare, basta vedere se conviene o meno.

              In questo caso direi di no. Perché se hai un file per ogni figura (stesso discorso per le tabelle) puoi semplicemente scrivere:`
              \begin{figure}
              \centering
              \includegraphics[]{nome-file}
              \caption{}
              \label{}
              \end{figure}
              ` Se il nome-file è unico, allora ti serve qualcosa in più per identificare all’interno del file a quale figura ti stai riferendo. Se hai un nome-file.tex che ha solo codice di figure, come fai a capire che vuoi il codice per la terza figura rispetto a quello della seconda?

              Il modo per farlo però ci sarebbe in effetti (beh, non ho pensato a tutte le ipotesi del caso, ma credo funzioni solo se hai tutte le figure in codice TikZ). L’ipotesi è forte, me ne rendo conto, e serve perché documenti composti con classe standalone in cui ci sono solo ambienti tikzpicture producono una pagina per figura. Con un unico file mie-figure.tex, compili ottenendo mie-figure.pdf. A quel punto sei a posto perché con il pacchetto pdfpages includi come figura nel documento principale la pagina di mie-figure.pdf che ti serve. Ma puoi vedere benissimo che non è un metodo banale.

              Ciao
              Claudio

              Le figure dovrebbero essere incluse nel testo, quindi non posso fare una pagina per ogni figura. Comunque grazie.

            • #90399
              Up
              0
              Down
              ::

              alegenn” post=89935

              Leggendo la documentazione della classe standalone mi sembra di capire che l’unico vantaggio rispetto al semplice uso di \input/\include sta nella possibilità di compilare singolarmente i vari subfile contenenti le figure, tabelle o altro materiale.
              In ogni caso, non mi sembra che il problema presentato da me sia affrontabile con i metodi proposti. Infatti, almeno che non stia sbagliando, sia con \include/\input che con standalone dovrei creare un file separato per ogni figura e per ogni tabella. Io vorrei invece creare un unico file per tutte le figure, uno per tutte le tabelle e poi richiamarle in qualche modo nel main file tramite ad esempio le rispettive label. Si può fare?

              Grazie

              Ciao,
              ma se inserisci tutte le figure in un unico file, come potresti poi spiegare al sistema TeX che deve prendere solo la figura, diciamo 4, come farebbe a scorporarne il codice ed inserirlo dove vuoi tu?
              Dici che con [tt]standalone[/tt] l’unico vantaggio è di avere i codici in un file separato, a parte che non è vero, perché ti consente di risparmiare sui tempi di compilazione, specie se si tratta di figure fatte con [tt]tikz[/tt], ma questo non migliorerebbe la leggibilità del sorgente, come da te richiesto?
              Saluti

              Il tuo primo quesito è proprio il mio quesito.
              Per quanto riguarda standalone, come puoi leggere ho riconosciuto la possibilità di compilare singolarmente ogni file.
              Comunque grazie.

            • #90400
              Up
              0
              Down
              ::

              rodolfo84″ post=89948Le figure dovrebbero essere incluse nel testo, quindi non posso fare una pagina per ogni figura. Comunque grazie.

              Chiaramente mi sono espresso male.

              Rispiego il concetto. Hai un file [tt]la-mia-tesi.tex[/tt], ossia il tuo testo dove devi inserire le figure. Tu vuoi avere [tt]le-figure-della-tesi.tex[/tt] come unico file con tutte le figure della tua tesi.

              Quello che proponevo io era: crea [tt]le-figure-della-tesi.tex[/tt] con la classe standalone. Se tutte le figure sono figure fatte con TikZ, compilando [tt]le-figure-della-tesi.tex[/tt] avrai [tt]le-figure-della-tesi.pdf[/tt] in cui in ogni pagina c’è una singola figura. Chiaro che le vuoi inserire nel testo, ci mancherebbe. Con il pacchetto pdfpages, a questo punto puoi scrivere in [tt]la-mia-tesi.tex[/tt]: `
              \begin{figure}
              \centering
              \includepdf[pages=3]{le-figure-della-tesi}
              \caption
              \label
              \end{figure}
              ` e magicamente apparirà la terza figura del file.

              Chiaro che è un procedimento contorto e chiaro che non funzionerebbe se dovendo aggiungere una figura tu la inserissi non in fondo ma nel bel mezzo di [tt]le-figure-della-tesi.tex[/tt]. Ma è altrettanto chiaro che anche la richiesta non è normale.

              Ciao
              Claudio

            • #90401
              Liverpool
              Partecipante
                Up
                0
                Down
                ::


                Metti tutti i codici per generare le figure in un file .tex (ad esempio [tt]figure.tex[/tt]). Ogni ambiente per il grafico andrà inserito in un apposito [tt]\newcommand[/tt], ad esempio:
                `\newcommand{\parabola}{%
                \begin{tikzpicture}
                \begin{axis}
                \addplot {x^2};
                \end{axis}
                \end{tikzpicture}
                }`Carichi il file delle figure nel preambolo con [tt]\input{figure}[/tt]. A questo punto, nella posizione in cui vuoi inserire la figura scrivi:
                `\begin{figure}
                \parabola
                \caption{didascalia}
                \label{fig:etichetta}
                \end{figure}`
                oppure inserisci direttamente il comando in linea con il testo con [tt]\parabola[/tt]. Per le tabelle ti comporti allo stesso modo con un file a parte.

                Ciao

                P.S.: ovviamente, per abbreviare ancora di più puoi inserire anche l’ambiente [tt]figure[/tt] o [tt]table[/tt] con la sua didascalia nel comando.

              • #90402
                Up
                0
                Down
                ::

                Liverpool” post=89951Metti tutti i codici per generare le figure in un file .tex (ad esempio [tt]figure.tex[/tt]). Ogni ambiente per il grafico andrà inserito in un apposito [tt]\newcommand[/tt], ad esempio:
                `\newcommand{\parabola}{%
                \begin{tikzpicture}
                \begin{axis}
                \addplot {x^2};
                \end{axis}
                \end{tikzpicture}
                }`Carichi il file delle figure nel preambolo con [tt]\input{figure}[/tt]. A questo punto, nella posizione in cui vuoi inserire la figura scrivi:
                `\begin{figure}
                \parabola
                \caption{didascalia}
                \label{fig:etichetta}
                \end{figure}`
                oppure inserisci direttamente il comando in linea con il testo con [tt]\parabola[/tt]. Per le tabelle ti comporti allo stesso modo con un file a parte.

                Ciao

                P.S.: ovviamente, per abbreviare ancora di più puoi inserire anche l’ambiente [tt]figure[/tt] o [tt]table[/tt] con la sua didascalia nel comando.

                funziona… e non mi sembra neanche molto contorto come metodo. grazie.

              • #90403
                Up
                0
                Down
                ::

                rodolfo84″ post=89959

                Metti tutti i codici per generare le figure in un file .tex (ad esempio [tt]figure.tex[/tt]). Ogni ambiente per il grafico andrà inserito in un apposito [tt]\newcommand[/tt], ad esempio:
                `\newcommand{\parabola}{%
                \begin{tikzpicture}
                \begin{axis}
                \addplot {x^2};
                \end{axis}
                \end{tikzpicture}
                }`Carichi il file delle figure nel preambolo con [tt]\input{figure}[/tt]. A questo punto, nella posizione in cui vuoi inserire la figura scrivi:
                `\begin{figure}
                \parabola
                \caption{didascalia}
                \label{fig:etichetta}
                \end{figure}`
                oppure inserisci direttamente il comando in linea con il testo con [tt]\parabola[/tt]. Per le tabelle ti comporti allo stesso modo con un file a parte.

                Ciao

                P.S.: ovviamente, per abbreviare ancora di più puoi inserire anche l’ambiente [tt]figure[/tt] o [tt]table[/tt] con la sua didascalia nel comando.

                funziona… e non mi sembra neanche molto contorto come metodo. grazie.

                Ho usato la parola contorto per il mio metodo 😀 Quello di @Liverpool è decisamente più semplice, ovviamente devi tenere il conto dei nomi da dare a figure a tabelle: in una control sequence non si possono usare tutti i caratteri della tastiera per differenziare i nomi.

                Ma, in merito a “pulizia”, chiarezza e semplicità di metodo (almeno secondo me), non c’è nulla di meglio di quando descritto da Elrond nella sua guida tematica ai makefile! Anche meglio della procedura di esternalizzazione interna a TikZ.

                Ciao
                Claudio

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

            Go to top