Grazie a tutti per avermi ospitato 🙂

  • Creatore
    Topic
  • #16975
    Up
    0
    Down
    ::


    Gentilissimi del forum,
    vi ringrazio per permettermi di partecepitare e magari in seguito fornire il mio contributo sulla base di ciò che sperimenterò con il meraviglioso Tex/Latex
    E’ da poco che mi sono avvicinato a questo linguaggio che consente di comporre in modo professionale un’opera che il nostro cervello può aver più o meno sapientemente partorito 🙂
    Non essendo digiuno di programmazione mi sono cimentato da subito studiando il pacchetto genialmente ideato per scrivere un frontespizio.
    Lo scopo del mio studio è ovviamente buttar giù qualcosa che possa aiutare a comporre la prima pagina di un libro
    Il pacchetto dal quale ho preso lo spunto è dedicato appunto alla stesura del frontespizio della tesi di laurea.
    Vi chiedevo il significato logico delle seguenti righe di codice:
    (penso di averle dedotte ma c’è qualcosa che mi sfugge)

    \def\@mia_string1@parametro{TT\fi\@nameeuse{ifmia_string2@parametro}}

    si defisce poi

    \newif\ifmia_string2+parametro

    per arrivare poi alla

    \if\@mia_string1@{parametro}

    altre control_sequence

    \fi
    Vi chiedo:
    supponiamo di aver inserito il parametro ‘x_y_z’
    i
    una volta espanso arrivo ad ottenere

    \if\TT\fi\ifmia_string2@x_y_z
    \fi
    il primo if quale condizione assumerebbe,nessuna???la cs ‘\TT’ dopo l’if come si comporta???

    Certo di una vs risposta vi saluto a tutti e vi ringrazio davvero di cuore
    A

Visualizzazione 7 filoni di risposte
  • Autore
    Risposte
    • #16976
      Up
      0
      Down
      ::

      Gentilissimi del forum,
      vi ringrazio per permettermi di partecepitare e magari in seguito fornire il mio contributo sulla base di ciò che sperimenterò con il meraviglioso Tex/Latex
      E’ da poco che mi sono avvicinato a questo linguaggio che consente di comporre in modo professionale un’opera che il nostro cervello può aver più o meno sapientemente partorito 🙂
      Non essendo digiuno di programmazione mi sono cimentato da subito studiando il pacchetto genialmente ideato per scrivere un frontespizio.
      Lo scopo del mio studio è ovviamente buttar giù qualcosa che possa aiutare a comporre la prima pagina di un libro
      Il pacchetto dal quale ho preso lo spunto è dedicato appunto alla stesura del frontespizio della tesi di laurea.
      Vi chiedevo il significato logico delle seguenti righe di codice:
      (penso di averle dedotte ma c’è qualcosa che mi sfugge)

      \def\@mia_string1@parametro{TT\fi\@nameeuse{ifmia_string2@parametro}}

      si defisce poi

      \newif\ifmia_string2+parametro

      per arrivare poi alla

      \if\@mia_string1@{parametro}

      altre control_sequence

      \fi
      Vi chiedo:
      supponiamo di aver inserito il parametro ‘x_y_z’
      i
      una volta espanso arrivo ad ottenere

      \if\TT\fi\ifmia_string2@x_y_z
      \fi
      il primo if quale condizione assumerebbe,nessuna???la cs ‘\TT’ dopo l’if come si comporta???

      Non so a quale pacchetto tu ti riferisca. Il trucco che usa (implicitamente) quella costruzione
      `\if TT\fi`
      serve per potersi definire comandi condizionali senza avere problemi. Evito le tue notazioni un po’ troppo pesanti. Supponiamo di volerci definire un comando che restituisca il ramo “vero” se un certo numero è pari, quello “falso” se il numero è dispari. Una costruzione come
      `\def\ifiseven#1#2#3{\ifodd #1\relax #3\else #2\fi}`
      funzionerebbe benissimo. Ma a volte questa non è una buona procedura, perché è complicato annidare i condizionali. Perciò si può fare in un altro modo:
      `\newif\ifiseven
      \def\iseven#1{TT\fi\ifodd #1\relax\isevenfalse\else\iseventrue\fi\ifiseven}`
      Adesso il codice
      `\if\iseven{}\else\fi`
      funziona anche annidato in altri condizionali. Infatti l’espansione di \if prevede l’espansione del token che segue, in questo caso \iseven che prima di tutto raccoglie il suo argomento; a questo punto viene sostituita la lista di token della definizione e la lista diventa
      `\if TT\fi\ifodd\relax\isevenfalse\else\iseventrue\fi\ifiseven
      \else\fi`
      Ora dopo \if ci sono due token non espandibili e \if TT\fi sparisce senza fare nulla (con espansione vuota, per la precisione) e il condizionale richiesto viene valutato correttamente.

      Se invece il codice “\if\iseven{}\else\fi” fosse all’interno del ramo non seguito da un altro condizionale, TeX accoppia \if con \fi ed è felicissimo di gettare via quei token alla svelta.

      Ciao
      Enrico

    • #16977
      Up
      0
      Down
      ::


      La procedura è inserita all’interno del pacchetto front-vr.
      Da quello che leggo (siccome sono una new entry qui :-)), la sua paternità credo sia associata a LEI Prof!:-)…o mi sbaglio???In caso i miei più sentiti complimenti!!!
      Mi sto creando (prendendo come spunto proprio il pacchetto in questione),un qualcosa per comporre il titolo di un libro,magari inserendo una figura al centro della pagina (o dopo il titolo stesso).
      La cosa che mi manda in confusione è la sequenza di controllo \if TT.
      E’ una istruzione???
      Grazie tantissime
      Alessandro

    • #16978
      Up
      0
      Down
      ::

      La procedura è inserita all’interno del pacchetto front-vr.
      Da quello che leggo (siccome sono una new entry qui :-)), la sua paternità credo sia associata a LEI Prof!:-)…o mi sbaglio???In caso i miei più sentiti complimenti!!!
      Mi sto creando (prendendo come spunto proprio il pacchetto in questione),un qualcosa per comporre il titolo di un libro,magari inserendo una figura al centro della pagina (o dopo il titolo stesso).
      La cosa che mi manda in confusione è la sequenza di controllo \if TT.
      E’ una istruzione???

      Immagino che sia la versione “fronte-th.sty”.

      Per comporre il frontespizio, uso un procedimento asincrono: alla prima compilazione del documento, viene scritto un file .tex ausiliario da compilare successivamente. Alle compilazioni successive viene inserito il frontespizio così composto.

      Lo stesso pacchetto serve a due scopi: a scrivere il file ausiliario, se chiamato dal documento principale; a comporre il frontespizio, quando è chiamato dal file ausiliario.

      Per evitare di definire una miriade di comandi che sarebbero inutili durante la compilazione del file principale, ho scelto di racchiudere queste definizioni in un condizionale, che risulta vero se si sta componendo il frontespizio, falso se si sta scrivendo il file ausiliario.

      A questo punto, però, molte delle definizioni che il condizionale deve “saltare” sarebbero della forma “\ifqualcosa … \else … \fi”. Se \ifqualcosa non è definito, sarei nei pasticci, perché TeX accoppierebbe il primo di questi \fi con il condizionale che mi dovrebbe far “saltare” questa parte di codice.

      Perciò ho adottato questa procedura indiretta:
      `\iffront@write % vero se stiamo scrivendo il file ausiliario

      \else %falso se stiamo componendo il frontespizio
      \newif\iffront@titoiletto % vero se il titoletto è presente

      \if\@front@{logo}
      \includegraphics[height=\front@logosize]{\front@logo}\par
      \vspace{6pt}
      \fi

      \fi % chiude \iffront@write`
      Siamo proprio nella situazione descritta nel messaggio precedente (con qualche modifica): se il condizionale \iffront@write è vero, tutta la parte fino al \fi di chiusura può essere omessa senza problemi, perché TeX accoppia gli \if interni con il relativo \fi.

      Se invece siamo nel caso opposto, TeX troverà \if\@front@{logo}\fi

      La regola vuole che il token che segue \if venga espanso: la definizione di \@front@ produce allora la lista di token
      `\if TT\fi\@nameuse{iffront@logo}\fi`
      Come già detto, l’espansione di \if TT\fi è vuota e TeX si trova davanti a
      `\iffront@logo
      \fi`
      che sa gestire bene. Il comando \@nameuse{pippo} equivale a scrivere \pippo.

      Tutta la parte sui condizionali nel TeXbook è racchiusa, come dice Knuth in un condizionale
      `\ifexperienced … \fi`
      Not for the faint of heart, direbbe la pubblicità di un film dell’orrore. 🙂

      Ciao
      Enrico

    • #16979
      Up
      0
      Down
      ::


      Ora mi sto cimentando in questa piccola avventura 🙂
      Scrivere qualcosa che aiuti a compoprre il titolo e la prima pagina di un libro
      Alcuni quesiti Prof:
      la sequenza ‘TT’ è una stringa a caso???cosa va a generare???Potevo pure mettere ‘XX’ per dire???
      Il mio obiettivo è per esempio inserire anzichè il logo, una immagine sotto il titolo e/o titoletto (a centro pagina per es.) 🙂
      Ops dimenticavo, il pacchetto front-th.sty mi genera dei warning sui font.
      Credo vi sia onflitto con il pacchetto Fourier che viene inserito come esempio e sono sostituiti da altre tipologie.
      E’ possibile evitare la selva di msg in compilazione magari by-passando la tipologia di caratteri usati???
      Ancora ..un sentitissimo grazie 🙂
      Alessandro

    • #16980
      Up
      0
      Down
      ::


      IL_MAGO_GANDALF\n

      Ora mi sto cimentando in questa piccola avventura 🙂
      Scrivere qualcosa che aiuti a compoprre il titolo e la prima pagina di un libro
      Alcuni quesiti Prof:
      la sequenza ‘TT’ è una stringa a caso???cosa va a generare???Potevo pure mettere ‘XX’ per dire???[/code]
      Può essere qualsiasi cosa, purché consista di due token inespandibili (due caratteri vanno bene).

      Il mio obiettivo è per esempio inserire anzichè il logo, una immagine sotto il titolo e/o titoletto (a centro pagina per es.) 🙂

      Prima o poi metterò una nuova versione sul sito. 🙂

      Ops dimenticavo, il pacchetto front-th.sty mi genera dei warning sui font.
      Credo vi sia conflitto con il pacchetto Fourier che viene inserito come esempio e sono sostituiti da altre tipologie.
      E’ possibile evitare la selva di msg in compilazione magari by-passando la tipologia di caratteri usati???

      I messaggi di Fourier sono del tutto innocui. Purtroppo i suoi autori hanno deciso di renderli “obbligatori”.

      Ciao
      Enrico

    • #16981
      Up
      0
      Down
      ::


      Prof,
      una ulteriore domanda sul pacchetto,visto che il tutto si delinea ben bene all’orizzonte:
      come mai è sorta la necessità di comporto in doppia ‘mandata’ per così dire???
      Vale a dire la generazione automatica di un file.tex che poi comporrà il frontespizio e l’inserimento del logo non nel DVI bensì nel PDF??(nel senso vi è una esigenza oggettiva nei passaggi per vincoli di linguaggio??)
      Un calorosissimo grazie
      Ale.

    • #16982
      Up
      0
      Down
      ::

      Prof,
      una ulteriore domanda sul pacchetto,visto che il tutto si delinea ben bene all’orizzonte:
      come mai è sorta la necessità di comporto in doppia ‘mandata’ per così dire???
      Vale a dire la generazione automatica di un file.tex che poi comporrà il frontespizio e l’inserimento del logo non nel DVI bensì nel PDF??(nel senso vi è una esigenza oggettiva nei passaggi per vincoli di linguaggio??)

      Il PDF è per comodità, ma penso che si potrà arrivare a permettere l’uso del DVI.

      Ho scelto la compilazione “indiretta” per via della difficoltà di modificare i margini delle pagine in LaTeX: ci sono troppe varianti di cui tenere conto fra una classe e l’altra. Nel modo che ho sviluppato, elimino il problema (forse nascondendolo sotto al tappeto :)) a prezzo della piccola scomodità di doversi compilare il documento ausiliario.

      Ciao
      Enrico

    • #16983
      Up
      0
      Down
      ::


      Non posso che ringraziare sentitamente per l’aiuto che mi è stato fornito.
      Analizzando appunto la struttura del front-th ho capito molte cose riguardo l’ auto composizione di parti personalizzate in Latex.
      Andando a fondo qundi i due token inespandibili (‘TT’) stanno per imporre una condizione fittizia ed un ramo x il true (fittizio anche quello).
      Invece per il fatto della compilazione ‘indiretta’,se se ne tentasse una diretta,occorrerebbe modificare la classe book stessa???(riferendomi alla struttura dei margini delle pagine tra una classe e l’altra)???
      In buona sostanza si dovrebbero fare modifiche sostanziali alla stessa classe book anche utilizzando un file .sty???
      Un saluto ed un immancabile grazie per tutta l’assistenza
      Alessandro

Visualizzazione 7 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top