Problema con \ClassWarningNoLine

  • Creatore
    Topic
  • #71154
    Up
    0
    Down
    ::


    Ciao a tutti! Vi sottopongo un problema misterioso (per me).

    Si assuma di caricare suftesi con le opzioni sctitles e authortitle
    e di voler ridefinire il comando \title in modo che abbia due argomenti:
    il primo (opzionale) per il titolo che va nelle testatine; il secondo per il titolo usato dal comando \maketitle.
    Il tentativo è nel codice qui sotto. Fin qui non ci sono problemi. (A parte il fatto che ho più qualche sospetto
    sulla correttezza del codice che ho usato.)

    `
    % !TEX encoding = UTF-8 Unicode
    \documentclass[sctitles,authortitle]{suftesi}

    \makeatletter

    % \def\suf@rightmark{{\@headtitle}}

    \renewcommand{\title}[2][\@title]{\gdef\@title{#2}\gdef\@headtitle{#1}}

    \def\@headtitle{–missing title–
    \protect\ClassWarningNoLine{suftesi}{No \noexpand\title given}
    }

    \makeatother

    %\title[Titolo corto]{Titolo lungo}
    \begin{document}
    %\maketitle

    Ciao mondo!

    \end{document}
    `

    Nel caso non venga dichiarato il titolo con uno dei due comandi:
    ` \title{Titolo}
    \title[Titolo corto]{Titolo lungo} `
    deve essere emesso un warning o un errore. E qui nascono i problemi.
    Il codice qui sopra gira, però noterete che il testo dichiarato nel warning perde le maiuscole e lo spazio dopo \title. Ciò è dovuto al fatto che \@headtitle compare nella definizione:
    `
    \def\suf@rightmark{\suftesi@smallcaps{\@headtitle}}
    `
    ovvero all’interno di un comando (\suftesi@smallcaps) che usa al suo interno \MakeTextLowercase, che è il responsabile dell’effetto indesiderato. Notate che \ClassWarningNoLine ha bisogno di \protect per funzionare, sempre per lo stesso motivo.

    C’è un modo per ottenere qualcosa di decente?
    Spero proprio che si possa fare senza rivoluzionare la classe 🙁

    Ciao
    Ivan

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


      A me il messaggio viene
      `Class suftesi Warning: No \title given.`
      Ciao
      Enrico

    • #71156
      Up
      0
      Down
      ::

      egreg9″ post=70429A me il messaggio viene
      `Class suftesi Warning: No \title given.`
      Ciao
      Enrico

      Il mistero si infittisce…Anche copiando, per sicurezza, suftesi.cls di texlive 2011 nella cartella di lavoro
      co il codice sopra ottengo questo errore:

      `latex error: no \titlegiven`

      Non aggiorno la distribuzione da un po’ (ho una pubblicazione da consegnare e voglio evitare sorprese).
      Potrebbe essere questo?

      Ciao
      Ivan

    • #71157
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Metti:
        `
        protect\ClassWarningNoLine{suftesi}{No \string\title\space given}
        `
        come viene fatto negli esempi di clsguide.

      • #71158
        Up
        0
        Down
        ::

        OldClaudio” post=70444Metti:
        `
        protect\ClassWarningNoLine{suftesi}{No \string\title\space given}
        `
        come viene fatto negli esempi di clsguide.

        Grazie Claudio. Direi che ora può andare.

        Ciao
        Ivan

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

    Go to top