Re: \input{} fondere in un unico file

#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…

    Go to top