Messaggi in console

  • Creatore
    Topic
  • #45108
    robitex
    Amministratore del forum
      Up
      0
      Down
      ::


      Ciao,
      la primitiva \message di TeX accoda semplicemente un testo ai messaggi in output che vengono riportati in console ed anche nel log.
      Viceversa il comando LaTeX \ClassInfo, lavora solo sul file di log senza lasciare tracce in console.
      L’unico modo per far apparire un messaggio all’utente anche in console sembra, che sappia io, il comando \message.

      In una classe che sto scrivendo un messaggio informativo circa il “lavoro svolto” è emesso con \message con il comando \AtEndDocument{}, tuttavia la formattazione non è molto soddisfacente: il messaggio è “mescolato” con i normali messaggi di TeX come i numeri di pagina tra parentesi quadre appena composte.
      Ecco come appare l’output di console (il documento è di due pagine):
      `…
      (/usr/local/texlive/2009/texmf-dist/tex/generic/babel/italian.ldf
      (/usr/local/texlive/2009/texmf-dist/tex/generic/babel/babel.def))) (./test.aux)
      *geometry* driver: auto-detecting
      *geometry* detected driver: dvips
      [1] myreport: I printed 22 table/s [2]
      (./test.aux)
      `

      Esiste un modo per rimediare immettendo dei ritorni a capo?
      Mi accontenterei di un:
      `…
      (/usr/local/texlive/2009/texmf-dist/tex/generic/babel/italian.ldf
      (/usr/local/texlive/2009/texmf-dist/tex/generic/babel/babel.def))) (./test.aux)
      *geometry* driver: auto-detecting
      *geometry* detected driver: dvips
      [1]
      myreport: I printed 22 table/s
      [2]
      (./test.aux)
      `
      Grazie.

    Visualizzazione 2 filoni di risposte
    • Autore
      Risposte
      • #45109
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::


          Mi sono accorto che un risultato migliore si ottiene con \ClassWarning, tuttavia il messaggio compare corredato della scritta ‘Class myreport Warning: text info’.
          Dovrebbe essere invece: ‘Class myreport: text info’

          Preferisco comunque questa soluzione a quella basata su \message (anche se credo che \ClassWarning sia basato su \message).
          Grazie.

        • #45110
          Up
          0
          Down
          ::

          Mi sono accorto che un risultato migliore si ottiene con \ClassWarning, tuttavia il messaggio compare corredato della scritta ‘Class myreport Warning: text info’.
          Dovrebbe essere invece: ‘Class myreport: text info’

          Preferisco comunque questa soluzione a quella basata su \message (anche se credo che \ClassWarning sia basato su \message).
          Grazie.

          `\makeatletter
          \GenericWarning{\space\@spaces\@spaces\@spaces\@spaces\@spaces}
          {Class myreport info: Ho fatto bingo!\MessageBreak
          E tombola\@gobble}
          \makeatother`
          fa esattamente quello che desideri. Quindi nella tua classe definirai
          `\def\MyInfo#1{%
          \GenericWarning{\space\@spaces\@spaces\@spaces\@spaces\@spaces}
          {Class myreport info: #1\@gobble}}`
          e inserirai
          `\AtEndDocument{
          \MyInfo{Ho fatto questo e quello\MessageBreak
          su due righe!}
          }`
          Nota come la seconda riga è allineata alla prima tramite il primo argomento di \GenericWarning; ogni \@spaces equivale a quattro spazi.

          Ciao
          Enrico

        • #45111
          robitex
          Amministratore del forum
            Up
            0
            Down
            ::


            Splendido!!!
            Un altro mattone che si aggiunge alla costruzione finale.
            Grazie Enrico!!!

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

        Go to top