Input di file da albero locale o personale

  • Creatore
    Topic
  • #74470
    franen
    Partecipante
      Up
      0
      Down
      ::


      Torno su una questione che già avevo aperto qui e a cui Claudio aveva dato una risposta precisa e completa, ma che non ha soddisfatto completamente le mie domande sull’argomento.
      Il problema è sempre lo stesso, fare in modo che pdfLaTex o chi per lui cerchi al’interno dell’albero locale o personale un file che deve essere letto e, magari, stampato nel documento, il tutto automaticamente.
      Quindi se io scrivo ` \input{pippo.tex} `oppure un comando che esegua
      ` \file_input:n {pippo.tex} `se pippo.tex non è nella cartella di lavoro il programma deve cercarlo negli alberi locale e personale.

      Ho pensato a queste soluzioni:
      1. Usare file con estensione .sty anziché .tex. Il trucco funziona (e la compilazione pare essere anche più rapida, 46 secondi contro 49 per i famosi 1328 capitoli della Bibbia). C’è qualche controindicazione? (nei file non ho “@”, se avesse importanza)

      2. Usare \file_path_include:n di LaTeX3, ma il problema è definire il percorso rispetto alla cartella di lavoro attuale. Si potrebbe eseguire uno script all’inizio della compilazione che determini il percorso di texmf-local e di texmf (personale), lo salvi in una token list per poi poterlo dare come argomento di \file_path_include:n? Eventuali suggerimenti su come impostare la cosa?

      Lavoro principalmente su OSX, ma sarebbe bello se la soluzione potesse essere multipiattaforma. (Chiaramente se la soluzione 1 non ha controindicazioni il problema è risolto!)

      Francesco

    Visualizzazione 2 filoni di risposte
    • Autore
      Risposte
      • #74471
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Se spieghi meglio perché la soluzione dei symbolic link non ti soddisfa, forse posso capire meglio il tuo problema.

          La soluzione è certamente più semplce e indolore che cambiare l’estensione a tutti i 1300 e passa file o a scrivere degli script iniziali come suggeriresti mel tuo messaggio e non vedo inconvenienti di sorta a creare una cartella virtuale nella cartelal del tuto file principlae mediante un symbolic link; è una operazione di qualche secondo una tantum e non da ripetere ogni volata che esegui i tuoi programmi.

          Se non mi sono spiegato bene, ripeto: i tuoi 1300 e passa file si trovano tutti nella tua cartella ~/Bibbia. Compili il tuo documento il cui main faile si trova nella cartella ~/CitazioniBibliche. Apri il terminale e con qualche comando cd (cd , cd CitazioniBibibliche) ti sposti in questa cartella di lavoro; poi scrivi:
          `
          ln -s ~/Bibbia Bibbia
          `
          e poi dai
          . Se guardi nel Finder, ora nella cartella Citazioni Bibliche vedi una cartella Bibbia; se guardi bene, vedi che il disegno celeste della cartellina nell’angolo in basso a sinistra contiene una frecciolina orientata a NE; quella frecciolina caratterizza una cartella (in generale un file) che si trova altrove, ma che appare virtualmente presente nella cartella locale. Naturalmente puoi ripetere questa operazione per le cartelle del texmf tuo personale o per quelle del texmf-local (ti serve davvero questa ramificazione? serve per tutti gli utenti della tua macchina; quanti siete? di solito non è scrivibile, perché si assume che vi possa accedere solo l’amministratore della macchina in nome e per conto di tutti gli utenti, e non si consente ad ogni utente di pasticciarci a suo piacimento).

          Detto questo ora la cartella simbolica Bibbia fa credere ai programmi di compilazione di TeX (tex, pdftex, xetex,luatex, eccetera) che i file che si trovano nella cartella simbolica siano subalterni alla cartella del tuo main file.

          Ripeto: pochi secondi per creare ciascun link virtuale e sei a posto per sempre; e quando creerai una altro documento chil cui main si trova altrove, spenderai pochi secondi di nuovo per creare un’altra cartella simbolica in quella del tuo nuovo mainfile. Tutto questo senza spostare mai i file veri dal luogo dove si trovano, senza cambiare loro i nomi, senza trucchi e senza inganni. 🙂

        • #74472
          franen
          Partecipante
            Up
            0
            Down
            ::


            Claudio, la soluzione dei link simbolici è perfettamente chiara e funzionale. È solo che volevo evitare anche quel minimo passaggio “manuale” di vari “$ cd ..” e avere una soluzione automatica. Chiamiamola prigrizia, o forse curiosità di capire se c’è un altro modo.
            Per le mie esigenze la tua soluzione va benissimo, ma sai, mi sono venute in mente queste altre idee che, secondo me, semplificano il processo, e volevo sapere se chi ne sa più di me le ritiene sensate.

            Un’altra soluzione che viene ora in mente è quella di automatizzare il processo di creazione dei link simbolici.

            Insomma, non sono cose fondamentali, ma son curioso di sapere se si possono fare.

            Francesco

          • #74473
            Up
            0
            Down
            ::

            franen” post=73557Torno su una questione che già avevo aperto qui e a cui Claudio aveva dato una risposta precisa e completa, ma che non ha soddisfatto completamente le mie domande sull’argomento.
            Il problema è sempre lo stesso, fare in modo che pdfLaTex o chi per lui cerchi al’interno dell’albero locale o personale un file che deve essere letto e, magari, stampato nel documento, il tutto automaticamente.
            Quindi se io scrivo ` \input{pippo.tex} `oppure un comando che esegua
            ` \file_input:n {pippo.tex} `se pippo.tex non è nella cartella di lavoro il programma deve cercarlo negli alberi locale e personale.

            Ho pensato a queste soluzioni:
            1. Usare file con estensione .sty anziché .tex. Il trucco funziona (e la compilazione pare essere anche più rapida, 46 secondi contro 49 per i famosi 1328 capitoli della Bibbia). C’è qualche controindicazione? (nei file non ho “@”, se avesse importanza)

            2. Usare \file_path_include:n di LaTeX3, ma il problema è definire il percorso rispetto alla cartella di lavoro attuale. Si potrebbe eseguire uno script all’inizio della compilazione che determini il percorso di texmf-local e di texmf (personale), lo salvi in una token list per poi poterlo dare come argomento di \file_path_include:n? Eventuali suggerimenti su come impostare la cosa?

            Pagina 27 di kpathsea.pdf ([tt]texdoc kpathsea[/tt]):

            Exception to all of the above: If the filename being searched for is absolute or explicitly relative, i.e., starts with ‘[tt]/[/tt]’ or ‘[tt]./[/tt]’ or ‘[tt]../[/tt]’, Kpathsea simply checks if that file exists.

            Dunque [tt]\input{./pippo}[/tt] è la risposta.

            Ciao
            Enrico

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

        Go to top