Comando \input

  • Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 17 anni fa da pi00100100.
  • Creatore
    Topic
  • #36457
    Up
    0
    Down
    ::


    Ciao. Ho un dubbio riguardante il comando \input. E’ vero che l’argomento di \input deve sempre essere un percorso relativo al sorgente principale e non un percorso relativo al sorgente in cui il comando stesso compare? Ad esempio, supponiamo di avere una directory test0 in cui vi sono un file test0.tex e una sottodirectory test1. In test1 vi è un file test1.tex e un’altra sottodirectory test2. Infine, in test2 vi è soltanto un file test2.tex e nessuna altra sottodirectory. Il contenuto di test0.tex è:
    `\documentclass{article}
    \begin{document}
    \input{test1/test1.tex}
    \end{document}`
    Il contenuto di test1.tex è:
    `\input{test2/test2.tex}`
    Il contenuto di test2.tex non è rilevante. Quello che vorrei è che test0.tex caricasse test1.tex, e che quest’ultimo caricasse a sua volta test2.tex. In realtà compilando test0.tex ottengo il seguente messaggio di errore:
    `! LaTeX Error: File `test2/test2.tex' not found.

    Type X to quit or to proceed,
    or enter new name. (Default extension: tex)`
    In effetti il file test2/test2.tex non esiste se il percorso è relativo a test0.tex. In definitiva, è possibile in altro modo ottenere qualcosa di simile a quello che ho tentato di spiegare o non vi è alcuna possibilità di farlo? Grazie.

Visualizzazione 1 filone di risposte
  • Autore
    Risposte
    • #36458
      Up
      0
      Down
      ::

      Ciao. Ho un dubbio riguardante il comando \input. E’ vero che l’argomento di \input deve sempre essere un percorso relativo al sorgente principale e non un percorso relativo al sorgente in cui il comando stesso compare? Ad esempio, supponiamo di avere una directory test0 in cui vi sono un file test0.tex e una sottodirectory test1. In test1 vi è un file test1.tex e un’altra sottodirectory test2. Infine, in test2 vi è soltanto un file test2.tex e nessuna altra sottodirectory. Il contenuto di test0.tex è:
      `\documentclass{article}
      \begin{document}
      \input{test1/test1.tex}
      \end{document}`
      Il contenuto di test1.tex è:
      `\input{test2/test2.tex}`
      Il contenuto di test2.tex non è rilevante. Quello che vorrei è che test0.tex caricasse test1.tex, e che quest’ultimo caricasse a sua volta test2.tex. In realtà compilando test0.tex ottengo il seguente messaggio di errore:
      `! LaTeX Error: File `test2/test2.tex' not found.

      Type X to quit or to proceed,
      or enter new name. (Default extension: tex)`
      In effetti il file test2/test2.tex non esiste se il percorso è relativo a test0.tex. In definitiva, è possibile in altro modo ottenere qualcosa di simile a quello che ho tentato di spiegare o non vi è alcuna possibilità di farlo? Grazie.

      Con \input{/} stai chiedendo a TeX di aprire un file che ha quel percorso. Quando legge un file, TeX non è “andato là”: il processo ha come directory base quella da dove è stato lanciato (cioè quella dove risiede il documento principale).

      Potresti però cercare di spiegarti meglio.

      Ciao
      Enrico

    • #36459
      Up
      0
      Down
      ::


      Provo a spiegare meglio ciò che vorrei ottenere. Invece di avere un unico documento che gestisce per intero la suddivisione in sezioni, come ad esempio in
      `\section{Section 1}
      \subsection{Subsection 1}
      \subsubsection{Subsubsection 1}
      Hello world!`
      vorrei dovermi preoccupare, a livello di documento principale, soltanto della suddivisione in sezioni di livello più elevato (chapters o sections) e delegare la suddivisione in sezioni di livello inferiore ad altri file più specifici.
      Per esempio avere un file main.tex come segue:
      `\section{Section 1}\input{section1/section1.tex}`
      un file section1/section1.tex come segue:
      `\subsection{Subsection 1}\input{subsection1/subsection1.tex}`
      un file section1/subsection1/subsection1.tex come segue:
      `\subsubsection{Subsubsection 1}\input{subsubsection1/subsubsection1.tex}`
      ed infine un file section1/subsection1/subsubsection1/subsubsection1.tex come segue:
      `Hello world!`
      Ad ogni modo la mia non è una necessità imprescindibile, posso decisamente fare a meno di tutto ciò. Si tratta piuttosto di semplice curiosità e del desiderio di capire meglio il comportamento del comando \input di LaTeX. Grazie ancora.

Visualizzazione 1 filone di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top