script di compilazione windows (pdflatex,bibtex,makeindex)

  • Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 15 anni, 9 mesi fa da v43.
  • Creatore
    Topic
  • #53054
    v43
      Up
      0
      Down
      ::


      questo script l’avevo già postato nel mio primo thread nella sezione “tex e latex”, ma dato che ho apportato dei miglioramenti, e credo che ora possa essere effettivamente d’aiuto ai meno esperti, lo pubblico, anche per sdebitarmi dell’aiuto ricevuto..

      `

      @echo off

      :: definisci le variabili
      :: *****************************************
      ::
      :: nome del file tex da compilare, senza estensione
      set file=def
      ::
      :: nome del file di stile per l'indice analitico, con estensione .ist
      set stile=def
      ::
      :: compilazione rapida (no indici, bibliografia e backreferences)?
      :: 0 -> no
      :: 1 -> si
      :: 2 -> chiedi
      set rapido=2
      ::
      :: cosa fare alla fine della compilazione?
      :: 0 -> esci
      :: 1 -> vedi il file pdf
      :: 2 -> chiedi
      set vpdf=2
      ::
      :: *****************************************

      cd “%~dp0” /D

      if not “%file%”==”def” goto st
      :nfile
      echo Indica il nome del file .tex da compilare, senza estensione:
      set /P file=
      if “%file%”==”def” goto nfile

      :st
      if not “%stile%”==”def” goto inizio
      :nstile
      echo Indica il nome del file di stile (.ist) per l'indice analitico, senza estensione:
      set /P stile=
      if “%stile%”==”def” goto nstile

      :inizio
      if %rapido%==0 goto build
      if %rapido%==1 goto skip
      echo Compilazione veloce (senza indici, bibliografia e backreferences)? (s/x)
      set fast=
      set /P fast=
      if “%fast%”==”s” goto skip

      :build
      call :subpdflatex
      call :submakeindex
      call :subbibtex

      :skip
      call :subpdflatex
      call :subpdflatex

      if %vpdf%==0 exit
      if %vpdf%==1 goto pdf

      echo Vedere il file prodotto? (x/n)
      set pdf=
      set /P pdf=
      if “%pdf%”==”n” exit

      :pdf
      call :subpdf
      exit

      :subpdflatex
      start “” /b /wait pdflatex %file%
      goto :EOF

      :subbibtex
      start “” /b /wait bibtex %file%
      goto :EOF

      :submakeindex
      start “” /b /wait makeindex -s %stile%.ist %file%
      goto :EOF

      :subpdf
      start “” /max %file%.pdf
      goto :EOF

      `

      lo script va salvato come file .bat da porre nella cartella di lavoro.
      volendo è possibile indicare una volta per tutte il nome del file di lavoro (vedi la sezione “definisci le variabili” nello script).

    Visualizzazione 1 filone di risposte
    • Autore
      Risposte
      • #53055
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::

          questo script l’avevo già postato nel mio primo thread nella sezione “tex e latex”, ma dato che ho apportato dei miglioramenti, e credo che ora possa essere effettivamente d’aiuto ai meno esperti, lo pubblico, anche per sdebitarmi dell’aiuto ricevuto..

          `

          @echo off

          :: definisci le variabili
          :: *****************************************
          ::
          :: nome del file tex da compilare, senza estensione
          set file=def
          ::
          :: nome del file di stile per l'indice analitico, con estensione .ist
          set stile=def
          ::
          :: compilazione rapida (no indici, bibliografia e backreferences)?
          :: 0 -> no
          :: 1 -> si
          :: 2 -> chiedi
          set rapido=2
          ::
          :: cosa fare alla fine della compilazione?
          :: 0 -> esci
          :: 1 -> vedi il file pdf
          :: 2 -> chiedi
          set vpdf=2
          ::
          :: *****************************************

          cd “%~dp0” /D

          if not “%file%”==”def” goto st
          :nfile
          echo Indica il nome del file .tex da compilare, senza estensione:
          set /P file=
          if “%file%”==”def” goto nfile

          :st
          if not “%stile%”==”def” goto inizio
          :nstile
          echo Indica il nome del file di stile (.ist) per l'indice analitico, senza estensione:
          set /P stile=
          if “%stile%”==”def” goto nstile

          :inizio
          if %rapido%==0 goto build
          if %rapido%==1 goto skip
          echo Compilazione veloce (senza indici, bibliografia e backreferences)? (s/x)
          set fast=
          set /P fast=
          if “%fast%”==”s” goto skip

          :build
          call :subpdflatex
          call :submakeindex
          call :subbibtex

          :skip
          call :subpdflatex
          call :subpdflatex

          if %vpdf%==0 exit
          if %vpdf%==1 goto pdf

          echo Vedere il file prodotto? (x/n)
          set pdf=
          set /P pdf=
          if “%pdf%”==”n” exit

          :pdf
          call :subpdf
          exit

          :subpdflatex
          start “” /b /wait pdflatex %file%
          goto :EOF

          :subbibtex
          start “” /b /wait bibtex %file%
          goto :EOF

          :submakeindex
          start “” /b /wait makeindex -s %stile%.ist %file%
          goto :EOF

          :subpdf
          start “” /max %file%.pdf
          goto :EOF

          `

          lo script va salvato come file .bat da porre nella cartella di lavoro.
          volendo è possibile indicare una volta per tutte il nome del file di lavoro (vedi la sezione “definisci le variabili” nello script).

          Interessante, potresti fare qualche esempio di sintassi giusto per capire come va lanciato lo script. Grazie

        • #53056
          v43
            Up
            0
            Down
            ::


            ah.. non avevo considerato l’idea di renderlo usabile da linea di comando con gli argomenti.. la prossima versione li avrà 😀

            per usarlo copia il testo in un file vuoto e salvalo con estensione .bat
            esegui il file bat
            rispondi alle domande:
            . nome del file tex da compilare
            . nome del file di stile per l’indice
            . compilazione veloce o no (fa solo 2 passaggi di pdflatex)
            . vedere il pdf o no
            nelle domande si/no, “s” sta per sì, “n” sta per no, “x” sta per qualsiasi tasto.
            tutto qua.. se non vuoi che sia interattivo e faccia tutto automaticamente basta impostare le variabili file, stile, rapido, vpdf come indicato all’inizio del file.. leggi la parte commentata compresa tra gli asterischi.

            magari domani lo modifico in modo che sia usabile anche senza personalizzare l’indice

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

        Go to top