Codice suftesi: \maketitle con più autori e \marginpar

  • Creatore
    Topic
  • #65593
    Up
    0
    Down
    ::


    In questi giorni qui sul forum si sta parlando molto di suftesi (e classicthesis). Aggiungo due questioncine.

    1)
    Nel codice di suftesi, a un certo punto nella definizione di \maketitle si fa:
    `
    \begin{tabular}[t]{c}%
    {\small\@author\par}
    \end{tabular}`
    Chiedo: perché quelle parentesi graffe? Se non ci fossero si potrebbero specificare più autori scrivendo
    `
    \author{Primo Autore\\Secondo Autore}`
    esattamente come si fa (o almeno io faccio) con le classi standard e con classicthesis. E analogamente verrebbero stampati in fila uno sotto l’altro. Insomma, sarebbe un grado di compatibilità in più di suftesi con book e altre classi.

    Peraltro non capiso a cosa serva tabular in quel modo.

    Sbaglio io? Perché?

    2)
    In suftesi (ancora prima in classicthesis, in realtà), viene ridefinito \marginpar come comando con un solo argomento (obbligatorio). Questo ha l’indubbio vantaggio di forzare l’utente a disinteressarsi dell’allineamento, ma comporta che, per esempio, non si possa utilizzare il pacchetto todonotes (che richiede il vecchio marginpar con argomento opzionale). Chiaramente il problema è risolvibile con qualcosa come
    `\def\marginpar{%
    \@ifnextchar[\marginnote\graffito}`
    Mi chiedo perché non è stato fatto direttamente nel codice di suftesi. Lo svantaggio che ho detto è maggiore dei vantaggi?

    Grazie,
    Antonio

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #65594
      Up
      0
      Down
      ::

      antonio.macrì” post=64669In questi giorni qui sul forum si sta parlando molto di suftesi (e classicthesis). Aggiungo due questioncine.

      1)
      Nel codice di suftesi, a un certo punto nella definizione di \maketitle si fa:
      `
      \begin{tabular}[t]{c}%
      {\small\@author\par}
      \end{tabular}`
      Chiedo: perché quelle parentesi graffe? Se non ci fossero si potrebbero specificare più autori scrivendo
      `
      \author{Primo Autore\\Secondo Autore}`
      esattamente come si fa (o almeno io faccio) con le classi standard e con classicthesis. E analogamente verrebbero stampati in fila uno sotto l’altro. Insomma, sarebbe un grado di compatibilità in più di suftesi con book e altre classi.

      Peraltro non capiso a cosa serva tabular in quel modo.

      Hai ragione. Ho messo \small nel posto sbagliato. Il gruppo va tolto perché è dannoso, appunto. Ho corretto. Per il resto il codice è quello di book. Lo risistemo perché la possibilità di usare \maketitle modificato l’ho aggiunta alla fine, senza badarci più di tanto e in attesa che qualcuno provasse la classe 🙂

      antonio.macrì” post=64669
      2)
      In suftesi (ancora prima in classicthesis, in realtà), viene ridefinito \marginpar come comando con un solo argomento (obbligatorio). Questo ha l’indubbio vantaggio di forzare l’utente a disinteressarsi dell’allineamento, ma comporta che, per esempio, non si possa utilizzare il pacchetto todonotes (che richiede il vecchio marginpar con argomento opzionale). Chiaramente il problema è risolvibile con qualcosa come
      `\def\marginpar{%
      \@ifnextchar[\marginnote\graffito}`
      Mi chiedo perché non è stato fatto direttamente nel codice di suftesi. Lo svantaggio che ho detto è maggiore dei vantaggi?

      Grazie,
      Antonio

      Avevo notato anch’io l’incompatibilita con todonotes. Non ho mai cercato di risolvere il problema perché, come sopra, aspettavo che qualcuno lo sollevasse. Con todo non dovrebbero esserci problemi. Lo uso tutt’ora. Però vedrò di sistemare la cosa.

      Ti ringrazio e spero che la discussione su suftesi vada avanti. Per me la classe è nata qualche giorno fa, quando si è cominciato veramente a discuterne.
      Quindi era più che naturale, e augurabile dal mio punto di vista, che venissero scoperti bug e malfunzionamenti.

      Ciao
      Ivan

    • #65595
      Up
      0
      Down
      ::


      Risolto il problema con todonotes:

      `

      \newcommand{\graffito}[1]{\marginnote%
      [\graffito@setup\raggedleft\hspace{0pt}{#1}]%
      {\graffito@setup\raggedright\hspace{0pt}{#1}}}
      \let\marginnote\marginpar
      \def\marginpar{%
      \@ifnextchar[\marginnote\graffito}
      \ifsuftesi@nomarginpar
      \let\graffito\@gobble
      \else
      \fi
      `

      Rimane un problema. Se nel documento si è usato il comando:
      `\marginpar[nota di sinistra]{nota di destra}`
      Il secondo argomento verrà comunque stampato, secondo lo stile di default di \marginpar, anche con l’opzione nomarginpar.
      Il fatto è che
      `\let\marginpar\@gobble`
      si mangia solo il primo argomento. Con \@gobbletwo non cambia.
      Quest’ultimo codice, nello specifico, non risolve il problema. Ma avendo la possibilità di annullare l’effetto di un comando con due argomenti la soluzione poi è semplice.

      Chi ne sa qualcosa in merito?

      Ciao
      Ivan

    • #65596
      Up
      0
      Down
      ::

      ivan” post=64690Risolto il problema con todonotes:

      `

      \newcommand{\graffito}[1]{\marginnote%
      [\graffito@setup\raggedleft\hspace{0pt}{#1}]%
      {\graffito@setup\raggedright\hspace{0pt}{#1}}}
      \let\marginnote\marginpar
      \def\marginpar{%
      \@ifnextchar[\marginnote\graffito}
      \ifsuftesi@nomarginpar
      \let\graffito\@gobble
      \else
      \fi
      `

      Rimane un problema. Se nel documento si è usato il comando:
      `\marginpar[nota di sinistra]{nota di destra}`
      Il secondo argomento verrà comunque stampato, secondo lo stile di default di \marginpar, anche con l’opzione nomarginpar.
      Il fatto è che
      `\let\marginpar\@gobble`
      si mangia solo il primo argomento. Con \@gobbletwo non cambia.
      Quest’ultimo codice, nello specifico, non risolve il problema. Ma avendo la possibilità di annullare l’effetto di un comando con due argomenti la soluzione poi è semplice.

      Chi ne sa qualcosa in merito?

      Ciao
      Ivan

      Non basta fare
      `
      \ifsuftesi@nomarginpar
      \let\graffito\@gobble
      \renewcommand\marginpar[2][]{}
      \fi`
      ?

      Grazie della tua disponibilità.
      Ciao,
      A.

    • #65597
      Up
      0
      Down
      ::

      antonio.macrì” post=64693
      Non basta fare
      `
      \ifsuftesi@nomarginpar
      \let\graffito\@gobble
      \renewcommand\marginpar[2][]{}
      \fi`
      ?

      Già, proprio così. Mi ero fissato con \@gobble…

      Ciao
      Ivan

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

Go to top