\input{} fondere in un unico file

  • Creatore
    Topic
  • #86120
    Up
    0
    Down
    ::


    Ho un file contenente molti \input{} di capitoli, è possibile fondere il tutto in un unico file, mi serve per poter usare pandoc.

    Grazie.

Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #86121
      Up
      0
      Down
      ::

      joaogas” post=85573Ho un file contenente molti \input{} di capitoli, è possibile fondere il tutto in un unico file, mi serve per poter usare pandoc.

      Grazie.

      Grazie per la segnalazione.

      Ciao
      Tommaso

    • #86122
      Up
      0
      Down
      ::

      joaogas” post=85573Ho un file contenente molti \input{} di capitoli, è possibile fondere il tutto in un unico file, mi serve per poter usare pandoc.

      Grazie.

      Non con TeX. Con comandi di shell è semplicissimo:
      `cat capitolo1.tex capitolo2.tex capitolo3.tex > completo.tex`
      Esistono in giro programmini che unificano file anche su diversi sistemi operativi.

      Ciao
      Enrico

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

        joaogas” post=85573Ho un file contenente molti \input{} di capitoli, è possibile fondere il tutto in un unico file, mi serve per poter usare pandoc.

        Grazie.

        Questo che ti propongo è una soluzione con Lua:
        Istruzioni:
        Crea il file con il codice seguente e salvalo nella cartella con i file da unire con il nome di “mergeall.lua”.
        Apri una console e rendi corrente quella cartella con i comandi cd
        dai il comando seguente:
        `$ texlua mergeall.lua`

        Il programma texlua è distribuito con TeX Live ed è una sorta di controparte di LuaTeX. Dovresti quindi già averlo senza che sia necessario installare Lua.

        Il listato è il seguente (filtra i file in base all’estensione e li unisce nel file “all.tex”):
        `
        –[[

        assembla tutti i file sorgenti TeX

        –]]

        require “lfs”

        local counter = 0

        local function isTeX(fn)
        — caso mai l'estensione fosse upper case…
        return string.match(fn, “%.tex$”) or
        string.match(fn, “%.TEX$”)
        end

        local function merge(tab, fn)
        local fl = assert(io.open(fn))
        tab[#tab + 1] = fl:read(“*a”)
        fl:close()
        end

        local curdir = lfs.currentdir()
        local t = {} — conterrà tutti i file TeX
        for filename in lfs.dir (curdir) do
        if isTeX(filename) then
        merge(t, filename)
        counter = counter + 1
        end
        end
        local fl = assert(io.open('all.tex', “w”))
        fl:write(table.concat(t,”\n”))
        fl:close()

        print(counter..” file uniti”)
        `

        R.
        Ps. un buon esempio da aggiungere alla guida tematica alla riga di comando…

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

    Go to top