Matteo D'Anna

Risposte nei forum create

Stai visualizzando 15 risposte – dal 1 al 15 (di 35 totali)
  • Autore
    Risposte
  • in risposta a: Compatibilità di split-index con hyperref #116107
    Up
    0
    Down
    ::


    Grazie mille per i commenti!
    Ricordo che avevo iniziato anche io utilizzando imakeidx, ma poi avevo deciso di passare a split-index perché se non ricordo male il numero massimo di indici che è possibile creare con imakeidx si aggira intorno alla decina e io ne avevo bisogno di più…
    Detto questo ho provato a compilare il mio file con il “vecchio” latex e (a parte che bisogna commentare i pacchetti appositi per Lua, tipo luacode) non ottengo errori di compilazione ma il problema persiste…

    in risposta a: Sintassi per configurare un .engine di TeXShop #113983
    Up
    0
    Down
    ::


    Ciao, purtroppo non posso fare altrimenti…
    Questa procedura mi era chiara, quello che non so è che sintassi usare per scrivere quanto necessario, in particolare come si dice di eseguire il \jobname
    Grazie!

    in risposta a: Utilizzo di \newcommand e LuaLaTeX #113810
    Up
    0
    Down
    ::


    Grazie mille per la risposta, saresti così gentile da spiegarmi come procederesti nel mio caso? Ho provato a guardare un po’ in giro (compreso in texdoc luatex) ma sono ancora poco in chiaro su come far funzionare il tutto…

    in risposta a: aumentare la dimensione di main_memory #113556
    Up
    0
    Down
    ::


    Ciao, no le righe magiche non funzionano su texmaker, ma ho trovato il motivo per cui avevo problemi di compilazione: il percorso per compilare Lua era sbagliato… (shame on me…)
    Comunque visto che ormai stiamo spaziando su vari argomenti vorrei se suggerisci qualche altro editor… sinceramente basterebbe anche un buon editor di testo e poi passare da terminale.
    Molte grazie!
    Matteo

    in risposta a: aumentare la dimensione di main_memory #113553
    Up
    0
    Down
    ::


    Io uso texmaker e lì ho “semplicemente” cambiato il comando di compilazione da pdflatex a lualatex, ma purtroppo non ottengo nessun risultato… Di che “riga magica” stai parlando? Molte grazie!

    in risposta a: aumentare la dimensione di main_memory #113551
    Up
    0
    Down
    ::


    La miglior soluzione mi sembra passare a luatex, per caso qualcuno saprebbe indicarmi dove posso trovare le indicazioni necessarie per farlo funzionare? Utilizzo TeXlive18 via mactex, e nonostante svarianti tentativi non sono ancora riuscito ad ottenere un file compilato in luatex, ad esempio:
    `\RequirePackage{luatex85}
    \documentclass[12pt,border=2pt]{standalone}
    \usepackage{luacode}
    \begin{luacode*}
    function trigtable ()
    for t=0, 45, 3 do
    local x=math.rad(t)
    local sf =[[%2d$^{\circ}$ & %1.9f & %1.9f & %1.9f & %1.9f \\]]
    tex.print(string.format(sf, t, x, math.sin(x), math.cos(x), math.tan(x)))
    end
    end
    \end{luacode*}

    \newcommand{\trigtable}{\luadirect{trigtable()}}

    \begin{document}
    \begin{tabular}{rcccc}
    \hline
    & $x$ & $\sin(x)$ & $\cos(x)$ & $\tan(x)$ \\
    \hline
    \trigtable
    \hline
    \end{tabular}
    \end{document}`
    non funziona in nessun modo.
    Grazie per il supporto!

    in risposta a: pacchetto python e shell-escape #113393
    Up
    0
    Down
    ::


    Ho risolto tutto con pythontex, grazie!

    Sono uno studente di un politecnico, e siccome ho seguito un corso che prevedeva l’utilizzo di python mi torna molto utile utilizzarlo anche in altri contesti… Inoltre è il linguaggio di programmazione con cui mi sono trovato meglio finora, quindi ho preferito continuare ad usarlo piuttosto che imparare un nuovo linguaggio (inoltre non so quanto buone siano le librerie per la numerica e la programmazione scientifica in generale in lua….)

    robitex” post=113755

    Ciao, vorrei utilizzare il pacchetto python e sul readme ho letto che devo attivare l’opzione shell-escape (oltre ovviamente ad avere python installato). Ho provato a cercare qualche indicazione ma non sono riuscito a capire cosa devo fare (come editor uso texmaker e come compilatore pdflatex), qualcuno avrebbe qualche indicazione? Grazie mille!

    Al momento pdflatex è settato su: “/Library/TeX/texbin/pdflatex” -synctex=1 -interaction=nonstopmode %.tex

    Ciao. Perché usare Python? La domanda sorge spontanea considerando LuaTeX.
    Comunque sia, leggi la documentazione del pacchetto PythonTeX.
    Saluti.
    R.

    in risposta a: Riferimenti #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.

    in risposta a: pacchetto imakeidx con splitindex #113102
    Up
    0
    Down
    ::


    Io invece purtroppo ricevo proprio il messaggio che ho esaurito il numero di indici a disposizione, e quindi come riportato nella documentazione di imakeidx ho provato ad utilizzare l’opzione splitindex

    Molte grazie!

    in risposta a: “Doppi” comandi #112858
    Up
    0
    Down
    ::


    Meraviglioso grazie mille, se ora volessi far funzionare un comando simile dentro un altro comando, come potrei fare? Io ho provato con`\newcommand{\inizializza}[1]{%
    \PreProcessArguments{\COPYinVarName}{%
    \MakeCSFromString{0}
    \MakeCSFromString{totale#1}%
    }%
    }`
    ma non funziona… (Qui sarebbe per “inizializzare” un valore a zero)

    in risposta a: “Doppi” comandi #112856
    Up
    0
    Down
    ::


    Ciao, sarebbe interessante.
    Potresti darmi qualche dritta su come fare? Oppure una bella guida introduttiva? (Purtroppo non conosco quasi per nulla LuaTeX…)
    Grazie!

    robitex” post=113226Ciao.
    Ma se hai a che fare con dati, non è molto più semplice usare LuaTeX?
    R.

    in risposta a: “Doppi” comandi #112855
    Up
    0
    Down
    ::


    Ciao, scusate se chiedo ancora, ma la sintassi per definire `\newcommand*\MakeCSFromSecondFourthAndFifthArgument[5]` e collega, e mi farebbe molto comodo avere anche quello per fare la somma di due “variabili” a cui è già stato assegnato un valore tramite `\COPYinVarName`

    Molte grazie

    letteracdp” post=113219È colpa mia, che ho risposto frettolosamente e — lo ammetto! — senza leggere affatto la tua replica alla prima risposta di @OldClaudio, nella quale delineavi lo scenario di utilizzo che sottostà al tuo problema: non bisognerebbe mai fare così, e mi scuso per averlo fatto. 😳

    Le macro [tt]\@nameuse[/tt] e [tt]\@namedef[/tt] vanno bene per essere usate da sole, ma, in generale, non possono essere usate per “fabbricare” nomi di comandi che debbano essere passati come argomenti ad altri comandi. Quello che vuoi fare tu è complicato, e vedo tre modi per farlo, l’ultimo dei quali vira alquanto sul tacón (nel senso @egreg9-iano del termine):

    1. studiare l’implementazione del pacchetto calculator e implementare il comportamento desiderato direttamente al suo interno, modificandone il codice;
    2. imparare il LaTeX3 😉 ;
    3. pre-processare gli argomenti da passare ai comandi del pacchetto calculator mediante i vecchi trucchi di basso livello a base di [tt]\edef[/tt], [tt]\expandafter[/tt], [tt]\noxepand[/tt] e [tt]\unexpanded[/tt].

    Vediamo come potrebbe essere realizzato il punto 3, limitandoci a una proof of concept. Il codice seguente definisce tre macro che consentono di richiamare un dato comando, il quale si aspetta che certi suoi argomenti siano dei nomi di comando (più esattamente, delle sequenze di controllo), costruendo tali nomi a partire da altrettante sequenze di caratteri passate in argomenti corrispondenti per posizione. Per esempio, nel codice che segue, le linee
    `
    \COPYinVarName{357}{dividendo}
    \INTEGERDIVISIONwithVarDividendVarQuotientVarRemainder
    {dividendo}{12}{quoziente}{resto}
    `
    generano le due chiamate
    `
    \COPY{357}{\dividendo}
    \INTEGERDIVISION{\dividendo}{12}{\quoziente}{\resto}
    `
    L’esempio in questione utilizza la primitiva [tt]\unexpanded[/tt], che non fa parte del «TeX di Knuth», sebbene sia disponibile da parecchi anni nella variante di TeX di più comune utilizzo, cioè pdf(e)TeX. In teoria, si potrebbe ottenere un comportamento equipollente anche col puro TeX knuthiano, utilizzando la primitiva [tt]\the[/tt] applicata a un token register: si forniscono due esempi, per il momento commentati, di implementazioni alternative mediante questa tecnica, che potrai sperimentare decommentandole (e commentando, naturalmente, le corrispondenti implementazioni tramite [tt]\unexpanded[/tt]).

    `
    % My standard header for TeX.SX answers:
    \documentclass[a4paper]{article} % To avoid confusion, let us explicitly
    % declare the paper format.

    \usepackage[T1]{fontenc} % Not always necessary, but recommended.
    % End of standard header. What follows pertains to the problem at hand.

    \usepackage[italian]{babel}
    \usepackage{calculator}

    \makeatletter

    %
    % Implementation with e-TeX's “\unexpanded”:
    \newcommand*\MakeCSFromSecondArgument[2]{%
    \edef\@tempa{%
    \unexpanded{#1}%
    \expandafter\noexpand \csname #2\endcsname
    }%
    \@tempa
    }
    % %
    % % “Purely Knuthian” implementation:
    % \newcommand*\MakeCSFromSecondArgument[2]{%
    % \toks@ {#1}%
    % \expandafter\the \expandafter\toks@
    % \csname #2\endcsname
    % }

    %
    % Implementation with e-TeX's “\unexpanded”:
    \newcommand*\MakeCSFromSecondAndThirdArgument[3]{%
    \edef\@tempa{%
    \unexpanded{#1}%
    \expandafter\noexpand \csname #2\endcsname
    \expandafter\noexpand \csname #3\endcsname
    }%
    \@tempa
    }
    % %
    % % “Purely Knuthian” implementation:
    % \newcommand*\MakeCSFromSecondAndThirdArgument[3]{%
    % \toks@ {#1}%
    % \expandafter\the \expandafter\toks@
    % \csname #2\expandafter\endcsname
    % \csname #3\endcsname
    % }

    %
    % Implementation with e-TeX's “\unexpanded”:
    \newcommand*\MakeCSFromSecondFourthAndFifthArgument[5]{%
    \edef\@tempa{%
    \unexpanded{#1}%
    {\expandafter\noexpand \csname #2\endcsname}%
    \unexpanded{#3}%
    \expandafter\noexpand \csname #4\endcsname
    \expandafter\noexpand \csname #5\endcsname
    }%
    \@tempa
    }
    %
    % No “purely Knuthian” version fot this one!

    \makeatother

    \newcommand*{\COPYinVarName}[2]{%
    \MakeCSFromSecondArgument{\COPY{#1}}{#2}%
    }
    \newcommand*{\INTEGERDIVISIONwithVarQuotientVarRemainder}[4]{%
    \MakeCSFromSecondAndThirdArgument
    {\INTEGERDIVISION{#1}{#2}}%
    {#3}{#4}% variable names
    }
    \newcommand*{\INTEGERDIVISIONwithVarDividendVarQuotientVarRemainder}[4]{%
    \MakeCSFromSecondFourthAndFifthArgument
    \INTEGERDIVISION
    {#1}% variable name
    {{#2}}%
    {#3}{#4}% variable names
    }

    \begin{document}

    \COPYinVarName{33.333}{pippo}

    Ora \( \verb|\pippo| = \pippo \).

    \COPYinVarName{-12.345}{pippo}

    Adesso, per\`{o}, \( \verb|\pippo| = \pippo \).

    \INTEGERDIVISIONwithVarQuotientVarRemainder{38}{5}{quoziente}{resto}

    Il quoziente di $138$ diviso~$15$ \`{e} $\quoziente$ con resto~$\resto$
    perch\'{e}
    \[
    \quoziente \times 15 + \resto = 138
    \]

    \INTEGERDIVISIONwithVarQuotientVarRemainder{187}{17}{quoziente}{resto}

    Il quoziente di $187$ diviso~$17$ \`{e} $\quoziente$ con resto~$\resto$
    perch\'{e}
    \[
    \quoziente \times 17 + \resto = 187
    \]

    \COPYinVarName{357}{dividendo}
    \INTEGERDIVISIONwithVarDividendVarQuotientVarRemainder
    {dividendo}{12}{quoziente}{resto}

    Il quoziente di $\dividendo$ diviso~$12$ \`{e} $\quoziente$ con resto~$\resto$
    perch\'{e}
    \[
    \quoziente \times 12 + \resto = \dividendo
    \]

    \end{document}
    `

    Permettetemi di chiudere con una nota mestamente nostalgica per gli arditi [tt]\edef[/tt], le delicate collanine di [tt]\expandafter[/tt], fragili e iridescenti come trine di brina, le espansioni controllate dei [tt]\the[/tt] applicati a un token register, gli ossimorici [tt]\expandafter\noexpand[/tt]… Tutte cose che, con il LaTeX3, sono destinate a scomparire… 😥

    Ciao.


    Gustavo

    in risposta a: “Doppi” comandi #112853
    Up
    0
    Down
    ::


    Grazie mille, stasera o domani mattina al più presto ci guardo dietro, grazie davvero

    letteracdp” post=113219È colpa mia, che ho risposto frettolosamente e — lo ammetto! — senza leggere affatto la tua replica alla prima risposta di @OldClaudio, nella quale delineavi lo scenario di utilizzo che sottostà al tuo problema: non bisognerebbe mai fare così, e mi scuso per averlo fatto. 😳

    Le macro [tt]\@nameuse[/tt] e [tt]\@namedef[/tt] vanno bene per essere usate da sole, ma, in generale, non possono essere usate per “fabbricare” nomi di comandi che debbano essere passati come argomenti ad altri comandi. Quello che vuoi fare tu è complicato, e vedo tre modi per farlo, l’ultimo dei quali vira alquanto sul tacón (nel senso @egreg9-iano del termine):

    1. studiare l’implementazione del pacchetto calculator e implementare il comportamento desiderato direttamente al suo interno, modificandone il codice;
    2. imparare il LaTeX3 😉 ;
    3. pre-processare gli argomenti da passare ai comandi del pacchetto calculator mediante i vecchi trucchi di basso livello a base di [tt]\edef[/tt], [tt]\expandafter[/tt], [tt]\noxepand[/tt] e [tt]\unexpanded[/tt].

    Vediamo come potrebbe essere realizzato il punto 3, limitandoci a una proof of concept. Il codice seguente definisce tre macro che consentono di richiamare un dato comando, il quale si aspetta che certi suoi argomenti siano dei nomi di comando (più esattamente, delle sequenze di controllo), costruendo tali nomi a partire da altrettante sequenze di caratteri passate in argomenti corrispondenti per posizione. Per esempio, nel codice che segue, le linee
    `
    \COPYinVarName{357}{dividendo}
    \INTEGERDIVISIONwithVarDividendVarQuotientVarRemainder
    {dividendo}{12}{quoziente}{resto}
    `
    generano le due chiamate
    `
    \COPY{357}{\dividendo}
    \INTEGERDIVISION{\dividendo}{12}{\quoziente}{\resto}
    `
    L’esempio in questione utilizza la primitiva [tt]\unexpanded[/tt], che non fa parte del «TeX di Knuth», sebbene sia disponibile da parecchi anni nella variante di TeX di più comune utilizzo, cioè pdf(e)TeX. In teoria, si potrebbe ottenere un comportamento equipollente anche col puro TeX knuthiano, utilizzando la primitiva [tt]\the[/tt] applicata a un token register: si forniscono due esempi, per il momento commentati, di implementazioni alternative mediante questa tecnica, che potrai sperimentare decommentandole (e commentando, naturalmente, le corrispondenti implementazioni tramite [tt]\unexpanded[/tt]).

    `
    % My standard header for TeX.SX answers:
    \documentclass[a4paper]{article} % To avoid confusion, let us explicitly
    % declare the paper format.

    \usepackage[T1]{fontenc} % Not always necessary, but recommended.
    % End of standard header. What follows pertains to the problem at hand.

    \usepackage[italian]{babel}
    \usepackage{calculator}

    \makeatletter

    %
    % Implementation with e-TeX's “\unexpanded”:
    \newcommand*\MakeCSFromSecondArgument[2]{%
    \edef\@tempa{%
    \unexpanded{#1}%
    \expandafter\noexpand \csname #2\endcsname
    }%
    \@tempa
    }
    % %
    % % “Purely Knuthian” implementation:
    % \newcommand*\MakeCSFromSecondArgument[2]{%
    % \toks@ {#1}%
    % \expandafter\the \expandafter\toks@
    % \csname #2\endcsname
    % }

    %
    % Implementation with e-TeX's “\unexpanded”:
    \newcommand*\MakeCSFromSecondAndThirdArgument[3]{%
    \edef\@tempa{%
    \unexpanded{#1}%
    \expandafter\noexpand \csname #2\endcsname
    \expandafter\noexpand \csname #3\endcsname
    }%
    \@tempa
    }
    % %
    % % “Purely Knuthian” implementation:
    % \newcommand*\MakeCSFromSecondAndThirdArgument[3]{%
    % \toks@ {#1}%
    % \expandafter\the \expandafter\toks@
    % \csname #2\expandafter\endcsname
    % \csname #3\endcsname
    % }

    %
    % Implementation with e-TeX's “\unexpanded”:
    \newcommand*\MakeCSFromSecondFourthAndFifthArgument[5]{%
    \edef\@tempa{%
    \unexpanded{#1}%
    {\expandafter\noexpand \csname #2\endcsname}%
    \unexpanded{#3}%
    \expandafter\noexpand \csname #4\endcsname
    \expandafter\noexpand \csname #5\endcsname
    }%
    \@tempa
    }
    %
    % No “purely Knuthian” version fot this one!

    \makeatother

    \newcommand*{\COPYinVarName}[2]{%
    \MakeCSFromSecondArgument{\COPY{#1}}{#2}%
    }
    \newcommand*{\INTEGERDIVISIONwithVarQuotientVarRemainder}[4]{%
    \MakeCSFromSecondAndThirdArgument
    {\INTEGERDIVISION{#1}{#2}}%
    {#3}{#4}% variable names
    }
    \newcommand*{\INTEGERDIVISIONwithVarDividendVarQuotientVarRemainder}[4]{%
    \MakeCSFromSecondFourthAndFifthArgument
    \INTEGERDIVISION
    {#1}% variable name
    {{#2}}%
    {#3}{#4}% variable names
    }

    \begin{document}

    \COPYinVarName{33.333}{pippo}

    Ora \( \verb|\pippo| = \pippo \).

    \COPYinVarName{-12.345}{pippo}

    Adesso, per\`{o}, \( \verb|\pippo| = \pippo \).

    \INTEGERDIVISIONwithVarQuotientVarRemainder{38}{5}{quoziente}{resto}

    Il quoziente di $138$ diviso~$15$ \`{e} $\quoziente$ con resto~$\resto$
    perch\'{e}
    \[
    \quoziente \times 15 + \resto = 138
    \]

    \INTEGERDIVISIONwithVarQuotientVarRemainder{187}{17}{quoziente}{resto}

    Il quoziente di $187$ diviso~$17$ \`{e} $\quoziente$ con resto~$\resto$
    perch\'{e}
    \[
    \quoziente \times 17 + \resto = 187
    \]

    \COPYinVarName{357}{dividendo}
    \INTEGERDIVISIONwithVarDividendVarQuotientVarRemainder
    {dividendo}{12}{quoziente}{resto}

    Il quoziente di $\dividendo$ diviso~$12$ \`{e} $\quoziente$ con resto~$\resto$
    perch\'{e}
    \[
    \quoziente \times 12 + \resto = \dividendo
    \]

    \end{document}
    `

    Permettetemi di chiudere con una nota mestamente nostalgica per gli arditi [tt]\edef[/tt], le delicate collanine di [tt]\expandafter[/tt], fragili e iridescenti come trine di brina, le espansioni controllate dei [tt]\the[/tt] applicati a un token register, gli ossimorici [tt]\expandafter\noexpand[/tt]… Tutte cose che, con il LaTeX3, sono destinate a scomparire… 😥

    Ciao.


    Gustavo

    in risposta a: “Doppi” comandi #112850
    Up
    0
    Down
    ::


    Non proprio, io vorrei che il risultato fosse:
    \comando#partevariabile
    dove poi \comando#partevariabile viene considerato un comando valido nel testo…

    OldClaudio” post=113203Intanto \@nameuse usa la stessa sequenza che ho usato io, quindi se vuoi pupi usare questo`\makeatletter
    \@namedef{comandopippo}{\emph{Pippo}}
    \newcommand\*comando[1]{\@nameuse{comando#1}}`
    Se nel documento .tex scrivi \comando{pippo} nel nel documento composto vien scritto Pippo.

    Era questo che volevi fare?

    in risposta a: “Doppi” comandi #112848
    Up
    0
    Down
    ::


    Grazie!
    Potresti fornirmi anche un esempio di caso con parte del nome variabile?

    Matteo

    letteracdp” post=113200Sì, direi che senz’altro ciò di cui sei in cerca è il costrutto [tt]\csname …\endcsname[/tt], il quale permette di costruire un comando at run-time; se si preferisce, è il meccanismo con il quale il TeX realizza l’indirezione nei comandi. Il nucleo del LaTeX rende disponibile la stessa funzione tramite la macro [tt]\@nameuse[/tt].

    Esempio minimo compilabile:
    `
    % My standard header for TeX.SX answers:
    \documentclass[a4paper]{article} % To avoid confusion, let us explicitly
    % declare the paper format.

    \usepackage[T1]{fontenc} % Not always necessary, but recommended.
    % End of standard header. What follows pertains to the problem at hand.

    \newcommand*{\comando}[1]{\csname comando#1\endcsname}

    % % Definizione alternativa:
    % \makeatletter
    % \newcommand*\comando[1]{\@nameuse{comando#1}}
    % \makeatother

    \newcommand*{\comandoA}{Pippo}
    \newcommand*{\comandoB}{Pluto}
    \newcommand*{\comandoC}{Paperino}

    \begin{document}

    \comando{A}, \comando{B} e \comando{C}.

    \end{document}
    `

    Se poi vuoi anche definire un comando con (parte de) il nome variabile, devi anche imparare l’uso di [tt]\expandafter[/tt] :smile:, oppure usare [tt]\@namedef[/tt].

    Ciao.


    Gustavo

Stai visualizzando 15 risposte – dal 1 al 15 (di 35 totali)

Go to top