File .pdf con nome diverso dal file .tex

  • Creatore
    Topic
  • #90709
    OldClaudio
    Partecipante
      Up
      0
      Down
      ::


      Devo creare un file con un file A.tex che include il file B.pdf, e vorrei che l’uscita di A.tex si chiamasse b-m.pdf.

      Posso scrivere una procedura bat su windows, o bash per le macchine *NIX (Linux e Mac) ma è possibile generare confusione e preferirei evitarlo.

      Posso eseguire la compilazione cu un comando nel terminale`pdflatex -jobname=B-m A.tex`ma se chi usa queste procedre non ha abbastanza dimestichezza conla riga di comando, rischia di non farcela.

      So che la variabile interna [tt]\jobname[/tt] contiene il nome del job, ma se lo ridefinisco internamente al file A.tex, cambia il ome ai file ausilari, ma il file .pdf di uscita continua a chiamarsi A.pdf.

      Non ci sono modi per cambiare il nome del file di uscita dall’interno del file A.tex?

      Grazie
      Claudio

    Visualizzazione 5 filoni di risposte
    • Autore
      Risposte
      • #90710
        Up
        0
        Down
        ::


        No, se la tua intenzione è usarla come variabile: http://tex.stackexchange.com/questions/19182/how-to-influence-the-name-of-the-pdf-file-created-with-pdflatex-from-within-the

        Se ti interessa solo impostare il nome del file all’interno del sorgente puoi impostare l’opzione [tt]-jobname[/tt] sfruttando il parsing della prima riga:
        `%& -jobname=NOME`

        Edit: in TeX Live nella prima riga si può impostare solo il file di formato, non le opzioni da linea di comando: https://www.tug.org/pipermail/tex-live/2009-June/021047.html Solo MikTeX permette di specificare anche le opzioni da riga di comando

      • #90711
        Up
        0
        Down
        ::

        OldClaudio” post=90257Devo creare un file con un file A.tex che include il file B.pdf, e vorrei che l’uscita di A.tex si chiamasse b-m.pdf.

        Posso scrivere una procedura bat su windows, o bash per le macchine *NIX (Linux e Mac) ma è possibile generare confusione e preferirei evitarlo.

        Posso eseguire la compilazione cu un comando nel terminale`pdflatex -jobname=B-m A.tex`ma se chi usa queste procedre non ha abbastanza dimestichezza conla riga di comando, rischia di non farcela.

        So che la variabile interna [tt]\jobname[/tt] contiene il nome del job, ma se lo ridefinisco internamente al file A.tex, cambia il ome ai file ausilari, ma il file .pdf di uscita continua a chiamarsi A.pdf.

        Non ci sono modi per cambiare il nome del file di uscita dall’interno del file A.tex?

        No, non si può cambiare [tt]\jobname[/tt] una volta che si è lanciata la compilazione. Si può ridefinire, ma il risultato è quello che dici. Sai certamente che il nome del file DVI (o PDF con pdflatex) è deciso al momento in cui viene aperto il primo file. Con la linea di comando si può fingere che il nome del file sia quello assegnato con [tt]–jobname[/tt].

        Usa arara:
        `% arara: pdflatex: { options: '-jobname=pippo' }
        \documentclass{article}
        \begin{document}
        \jobname
        \end{document}`
        Non è la stessa cosa, but, hey, it works! 🙂

        Ciao
        Enrico

      • #90712
        Liverpool
        Partecipante
          Up
          0
          Down
          ::


          Qual è la differenza tra la soluzione di @Elrond e quella di Enrico?

          Ciao

        • #90713
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Grazie Enrico, mi hai dato un ulteriore motivo per essere meno ostile ai programmi che fanno tutto…:smile:

            Io posso seguire le tue indicazioni, che mi sembrano più comprensibili dei quelle di @Elrond (non ho provato, ma ho qualche dubbio; devo provare e capire meglio perché ci vedo sotto sotto una interazione fra l’editor e il programma di compilazione, tuttavia finché non o provato resto dubbioso…).

            Il punto è che mi sarebbe piaciuto sfruttare l’interattività di pdfLaTeX tramite \typein[…]{…} per rendere l’operazione interattiva e indipendente dall’editing del file sorgente. Posso però trasferire questa interattività in un file bat o bash.

            Enrico, ero al corrente che il nome del file di uscita è stabilito di norma dal nome del file sorgente e una volta lanciata la compilazione non si può fare più niente; speravo che il linguaggio interno di pdftex (contrariamente a quello di tex) permettesse questo genere di cose, ma la mia attenta lettura del manuale pdftex non mi aveva permesso di trovare niente, speravo che mi fosse sfuggito.

            Grazie mille a tutti
            Claudio

          • #90714
            Up
            0
            Down
            ::

            OldClaudio” post=90264[…]Enrico, ero al corrente che il nome del file di uscita è stabilito di norma dal nome del file sorgente e una volta lanciata la compilazione non si può fare più niente; speravo che il linguaggio interno di pdftex (contrariamente a quello di tex) permettesse questo genere di cose, ma la mia attenta lettura del manuale pdftex non mi aveva permesso di trovare niente, speravo che mi fosse sfuggito.

            Il problema è che il file [tt].log[/tt] viene aperto immediatamente quando il primo comando (nello stomaco) è eseguito; se è [tt]\input[/tt] (magari implicito perché al prompt [tt]**[/tt] viene passato qualcosa che comincia con [tt]\[/tt] o, che è lo stesso, c’è un nome di file nella linea di comando, il nome del file [tt].log[/tt] viene definito come lo stesso nome del file che deve essere letto; altrimenti diventa [tt]texput[/tt]. Allo stesso tempo il nome viene memorizzato e sarà usato per l’eventuale file di output (DVI o PDF che sia) e l’espansione di [tt]\jobname[/tt] sarà quello stesso nome.

            Il trucco di [tt]–jobname[/tt] è di sostituire, in quel momento, l’argomento dato all’opzione invece del nome del file (o [tt]texput[/tt]).

            Il nome degli altri file ausiliari è invece stabilito tramite definizioni varie, sulla base del valore di [tt]\jobname[/tt]. Perciò, se il file si chiama [tt]pippo.tex[/tt] e comincia con
            `\def\jobname{pluto}
            \documentclass[a4paper]{article}`
            l’esecuzione di [tt]pdflatex pippo[/tt] produrrà
            `pippo.log
            pippo.pdf
            pluto.aux`

            Roba nota agli esperti, naturalmente; mi è sembrata una buona occasione per divulgarla.

            Ciao
            Enrico

          • #90715
            Up
            0
            Down
            ::

            Liverpool” post=90262Qual è la differenza tra la soluzione di @Elrond e quella di Enrico?

            Ciao

            La “mia” (in realtà ho riportato una soluzione suggerita nel link che ho fornito) non richiede strumenti esterni ma funziona solo su MikTeX (il riconoscimento delle opzioni del compilatore è stata esclusa da TeX Live per motivi di sicurezza), quella di Enrico richiede Arara.

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

        Go to top