Riferimenti

  • Creatore
    Topic
  • #113129
    Up
    0
    Down
    ::


    Ciao a tutti, in alcuni dei miei documenti uso le utilissime linee di codice seguenti: `\makeatletter
    \def\set#1#2{\global\@namedef{namespacekey@#1}{#2}}
    \def\get#1{%
    \@ifundefined{namespacekey@#1}
    {%CASO INDEFINITO
    ~}
    {\@nameuse{namespacekey@#1}}%
    }
    \makeatother
    % \set{#1}{#2} \get{#1}: stampa #2`
    che avevo ricevuto a suo tempo da un benefattore su questo forum.
    In pratica questi comandi mi permettono di associare una stringa ad una “label” da chiamare poi nel documento per ottenere il testo. Tutto funziona a meraviglia quando dichiaro prima il comando
    `\set` e poi il `\get` come farebbe qualsiasi persona civile.
    Io però avrei bisogno poter stampare con \get anche se il \set si trova solo successivamente, ovviamente non ad una prima compilazione, ma pensavo a qualcosa di simile a come funziona \label… qualche suggerimento? Grazie mille!

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

        Matteo Dann” post=113479Ciao a tutti, in alcuni dei miei documenti uso le utilissime linee di codice seguenti: `\makeatletter
        \def\set#1#2{\global\@namedef{namespacekey@#1}{#2}}
        \def\get#1{%
        \@ifundefined{namespacekey@#1}
        {%CASO INDEFINITO
        ~}
        {\@nameuse{namespacekey@#1}}%
        }
        \makeatother
        % \set{#1}{#2} \get{#1}: stampa #2`
        che avevo ricevuto a suo tempo da un benefattore su questo forum.
        In pratica questi comandi mi permettono di associare una stringa ad una “label” da chiamare poi nel documento per ottenere il testo. Tutto funziona a meraviglia quando dichiaro prima il comando
        `\set` e poi il `\get` come farebbe qualsiasi persona civile.
        Io però avrei bisogno poter stampare con \get anche se il \set si trova solo successivamente, ovviamente non ad una prima compilazione, ma pensavo a qualcosa di simile a come funziona \label… qualche suggerimento? Grazie mille!

        Ciao.
        Si, se il \set capita dopo il \get occorre serializzare i dati in un file esterno ausiliario.
        Al momento dell’avvio della compilazione si ricarica quel file definito dalla compilazione precedente.
        Sarebbe interessante implementare il tutto via Lua. Puoi passare a LuaLaTeX?
        R.

      • #113131
        Up
        0
        Down
        ::


        Ciao,
        sarebbe perfettissimo!
        L’unico problema minimo è che non riesco a compilare via Lua, sapresti magari darmi qualche info (uso TexMaker)? Grazie

        robitex” post=113501

        Ciao a tutti, in alcuni dei miei documenti uso le utilissime linee di codice seguenti: `\makeatletter
        \def\set#1#2{\global\@namedef{namespacekey@#1}{#2}}
        \def\get#1{%
        \@ifundefined{namespacekey@#1}
        {%CASO INDEFINITO
        ~}
        {\@nameuse{namespacekey@#1}}%
        }
        \makeatother
        % \set{#1}{#2} \get{#1}: stampa #2`
        che avevo ricevuto a suo tempo da un benefattore su questo forum.
        In pratica questi comandi mi permettono di associare una stringa ad una “label” da chiamare poi nel documento per ottenere il testo. Tutto funziona a meraviglia quando dichiaro prima il comando
        `\set` e poi il `\get` come farebbe qualsiasi persona civile.
        Io però avrei bisogno poter stampare con \get anche se il \set si trova solo successivamente, ovviamente non ad una prima compilazione, ma pensavo a qualcosa di simile a come funziona \label… qualche suggerimento? Grazie mille!

        Ciao.
        Si, se il \set capita dopo il \get occorre serializzare i dati in un file esterno ausiliario.
        Al momento dell’avvio della compilazione si ricarica quel file definito dalla compilazione precedente.
        Sarebbe interessante implementare il tutto via Lua. Puoi passare a LuaLaTeX?
        R.

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

    Go to top