Re: TeXShop ed espressioni regolari

#99047
robitex
Amministratore del forum
    Up
    0
    Down
    ::

    ivan” post=98605Poniamo di avere il seguente testo, aperto in TeXShop
    `\textgreek{Μετά} \textgreek{τα} \textgreek{φυσικά} `
    È possibile, usando un’espressione regolare nella funzione Cerca e Sostituisci,
    Ottenere questo
    `\textgreek{Μετά τα φυσικά} `
    ?

    Naturalmente la soluzione deve prescindere dall’argomento dei vari \textgreek 😉
    Cerco infatti una soluzione generale per ovviare a problemi simili, che nascono spesso quando si converte un documento .odt con writer2latex.

    Ringrazio in anticipo! Se ci fossero altre soluzioni, ben vengano…

    Ciao
    Ivan

    Ciao Ivan.
    Questi sono problemi tipici dell’elaborazione di file testuali.
    Ti propongo uno script in Lua non molto efficiente ma che dovrebbe svolgere il seguente compito: raggruppa tutti gli argomenti di \textgreek consecutivi al più separati da spazi in un unico \textgreek.

    Istruzioni:
    1 copia il seguente codice in un file di testo chiamandolo “degreek”
    `#! /usr/bin/lua

    — synopsis
    — degreek input_filename output_filename
    — degreek input_filename

    local infile = arg[1]
    local outfile = arg[2] or infile

    local f = assert(io.open(infile, “r”))
    local res = f:read(“*a”)
    f:close()

    local pattern = “\\textgreek{(.-)}%s*\\textgreek{(.-)}”

    while string.match(res, pattern) do
    res = string.gsub(
    res,
    pattern,
    function (t1, t2)
    return string.format(“\\textgreek{%s %s}”, t1, t2)
    end
    )
    end

    — saving file
    local f = assert(io.open(outfile, “w”))
    f:write(res)
    f:close()
    `

    2 assegnagli i permessi di esecuzione
    3 spostalo nella cartella dove è presente il file da elaborare per esempio chiamato tesi.tex
    4 dai il comando da terminale:
    `$ degreek tesi.tex tesi-dk.tex`
    Dovrebbe comparire il file tesi-dk.tex con il testo che desideri.
    Attenzione:
    Se non specifichi il nome del file di output, il file originale sarà sovrascritto.

    Se incontri problemi con il comando Lua allora usa:
    `$ texlua degreek tesi.tex tesi-dk.tex`

    texlua è un interprete Lua distribuito con TeX Live, non devi quindi installare niente.
    Buona serata.
    R.

    Go to top