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…