Creare un diario con LaTeX

  • Creatore
    Topic
  • #77054
    Up
    0
    Down
    ::


    Salve a tutti.
    Vorrei scrivere un diario utilizzando LaTeX, con data, ora, e magari un titolo per ogni singolo “intervento” sul diario.
    Purtroppo non esiste una classe predefinita (come book, article ecc.), e non so bene come muovermi.

    Ho cercato delle guide online per la creazione di una classe, ma mi sembrano abbastanza dispersive dal momento che ognuna di esse richiama ad altre guide, e non riesco a venirne a capo.
    Per caso sapete se esistono dei tutorial di base, magari con degli esempi semplici da seguire passo dopo passo, per la creazione di una classe?

    Ci sono alternative?

Visualizzazione 8 filoni di risposte
  • Autore
    Risposte
    • #77055
      Up
      0
      Down
      ::


      Ciao mietitore,

      nella sezione “Documentazione” di questo sito (in alto) ci sono alcune guide tematiche del GuIT. Una, scritta da Claudio Beccari, riguarda proprio la creazione di classi personali.

      Ciao,
      Marco.

    • #77056
      Up
      0
      Down
      ::


      Ho provato a copiare e incollare il codice di esempio riportato nella guida, ma mi è impossibile compilare in pdflatex il file .dtx che ho scritto: compare l’errore “File di Log non trovato”.

      Copio il codice:

      `% \iffalse
      % !TEX encoding = UTF-8 Unicode
      % !TEX TS-program = pdflatex
      %<*system>
      \begingroup
      \input docstrip.tex
      \keepsilent
      \preamble
      ______________________________________________________
      The libro class for typesetting books in Italian
      Copyright (C) 2011 Mario rossi
      All rights reserved

      License information appended

      \endpreamble
      \postamble
      Copyright 2011 Mario Rossi

      Distributable under the LaTeX Project Public License,
      version 1.3c or higher (your choice). The latest version of
      this license is at: http://www.latex-project.org/lppl.txt

      This work is “author-maintained”

      This work consists of this file libro.dtx,
      and the derived files libro.cls and libro.pdf.

      \endpostamble
      \askforoverwritefalse
      %
      \generate{\file{libro.cls}{\from{libro.dtx}{class}}}
      %
      \def\tmpa{plain}
      \ifx\tmpa\fmtname\endgroup\expandafter\bye\fi
      \endgroup
      %
      % \fi
      %
      % \iffalse
      %<*driver>
      \ProvidesFile{libro.dtx}
      %
      %\NeedsTeXFormat{LaTeX2e}[2009/01/01]
      %
      \ProvidesClass{libro}%
      %<*class>
      [2011/11/25 v.0.4 Classe per comporre libri in italiano]
      %

      %<*driver>
      \documentclass[a4paper]{ltxdoc}
      \usepackage[utf8]{inputenc}
      \usepackage[T1]{fontenc}
      \usepackage{lmodern,textcomp}
      \usepackage[italian]{babel}
      \hfuzz 10pt
      %
      \begin{document}\errorcontextlines=9
      \GetFileInfo{libro.dtx}
      \title{La classe \texttt{libro}\thanks{Version number \fileversion; ultima
      revisione \filedate.}}
      \author{Mario Rossi\thanks{e-mail: \texttt{mario dot rossi at mymail dot net}}}
      \maketitle
      \DocInput{libro.dtx}
      \end{document}
      %
      % \fi
      %
      %
      % \CheckSum{10}
      % \begin{abstract}
      % Questa classe serve per comporre libri in italiano
      % appoggiandosi alla classe \texttt{book} ma includendo
      % i pacchetti necessari.
      % \end{abstract}
      %
      % \section{Generalità}
      % La classe \texttt{libro.cls} serve per comporre libri in italiano con
      % le seguenti specifiche:
      % \begin{itemize}
      % \item La classe di supporto è la classe standard del
      % system \TeX\ \texttt{book.cls}.
      % \item Tutte le opzioni inserite nell’istruzione |\documentclass|
      % vengono trasferite integralmente alla classe \texttt{book}.
      % \item La codifica di entrata è fissata con la specifica \texttt{utf8}
      % e non è possibile con questa classe specificare una codifica differente.
      % \item La codifica dei font di uscita è \texttt{T1} e non è
      % possibile specificare una codifica differente, cosa che sarebbe quanto
      % mai sgradevole per comporre in italiano dove sono presenti molte lettere
      % accentate.
      % \item Il pacchetto \texttt{babel} viene caricato con la sola opzione
      % \texttt{italian}; nei rari casi in cui sia necessario usare anche altre
      % lingue, esse vanno specificate come opzione alla classe, perché non si può
      % chiamare \texttt{babel} due volte con opzioni diverse. Le opzioni della
      % classe sono globali e vengono passate automaticamente a tutti i pacchetti
      % che sanno che cosa farne.
      % \end{itemize}
      % \StopEventually{}
      %
      % \section{Codice commentato}
      % Le due righe contenti il formato e l’identificazione della classe sono
      % già state inserite prima; ora possiamo passare alla gestione delle opzioni
      % che vengono tutte passate alla classe \texttt{book}
      % \iffalse
      %<*class>
      % \fi
      % \begin{macrocode}
      \DeclareOption*{\PassOptionToClass{\CurrentOption}{book}}
      \ProcessOptions*\relax
      \LoadClass{book}
      % \end{macrocode}
      % Poi carichiamo i pacchetti relativi alle codifiche di ingresso e di uscita:
      % \begin{macrocode}
      \usepackage[utf8]{inputenc}
      \usepackage[T1]{fontenc}
      % \end{macrocode}
      % Scegliamo per l’uscita un font eccellente come Latin Modern, ma
      % lo accompagniamo con il pacchetto texttt{textcomp} così da completarlo
      % con molti altri segni alfabetici e analfabetici.
      % \begin{macrocode}
      \usepackage{lmodern,textcomp}
      % \end{macrocode}
      % Infine chiamiamo \texttt{babel} per scegliere la lingua del documento.
      % \begin{macrocode}
      \usepackage[italian]{babel}
      % \end{macrocode}
      % \iffalse
      %
      % \fi
      % Questo è tutto.
      % \Finale
      %
      % \endinput`

      Sicuramente sbaglio qualcosa di elementare, ma non saprei da dove iniziare per trovare l’errore. Suggerimenti?

    • #77057
      Up
      0
      Down
      ::


      Ciao,

      purtroppo non ho ancora letto quella guida, né tanto meno provato a fare quello che dice. Però posso farti una domanda: sei sicuro che il file dtx debba essere compilato? Mi pare una cosa molto strana a dire il vero.

      Ciao,
      Marco.

    • #77058
      Up
      0
      Down
      ::


      A pagina 6 c’è scritto:

      Salvando questo file con codifica utf8 come specificato nell’istruzione della codifica di entrata della seconda parte, e compilandolo con pdfLaTeX si ottengono contemporaneamente i file libro.cls e libro.pdf

      Forse sto interpretando male…

    • #77059
      Up
      0
      Down
      ::


      Ciao,

      no, hai ragione. La cosa viene ripetuta anche a pagina 38. Ho provato a copiare il codice che hai riportato in un file vuoto nel mio editor. Poi l’ho salvato come prova.dtx e infine ho eseguito pdfLaTeX su prova.dtx. Durante la compilazione mi viene detto che non viene trovato il file libro.dtx, ma se mando avanti, la compilazione termina. A questo punto come output ottengo i file: prova.pdf, prova.log e prova.aux.

      Tu come hai proceduto?

      Ciao,
      Marco.

    • #77060
      admin
      Amministratore del forum
        Up
        0
        Down
        ::


        Sarà un problema di copia e incolla, perché il formato del file è abbastanza particolare (per esempio ci devono essere quattro spazi tra [tt]%[/tt] e [tt]\begin{macrocode}[/tt] e [tt]%[/tt] e [tt]\end{macrocode}[/tt]). Provate a compilare questo

        `% \iffalse
        % !TEX encoding = UTF-8 Unicode
        % !TEX TS-program = pdflatex
        %<*system>
        \begingroup
        \input docstrip.tex
        \keepsilent
        \preamble
        ______________________________________________________
        The libro class for typesetting books in Italian
        Copyright (C) 2011 Mario rossi
        All rights reserved

        License information appended

        \endpreamble
        \postamble
        Copyright 2011 Mario Rossi

        Distributable under the LaTeX Project Public License,
        version 1.3c or higher (your choice). The latest version of
        this license is at: http://www.latex-project.org/lppl.txt

        This work is “author-maintained”

        This work consists of this file libro.dtx,
        and the derived files libro.cls and libro.pdf.

        \endpostamble
        \askforoverwritefalse
        %
        \generate{\file{libro.cls}{\from{libro.dtx}{class}}}
        %
        \def\tmpa{plain}
        \ifx\tmpa\fmtname\endgroup\expandafter\bye\fi
        \endgroup
        %
        % \fi
        %
        % \iffalse
        %<*driver>
        \ProvidesFile{libro.dtx}
        %
        %\NeedsTeXFormat{LaTeX2e}[2009/01/01]
        %
        \ProvidesClass{libro}%
        %<*class>
        [2011/11/25 v.0.4 Classe per comporre libri in italiano]
        %

        %<*driver>
        \documentclass[a4paper]{ltxdoc}
        \usepackage[utf8]{inputenc}
        \usepackage[T1]{fontenc}
        \usepackage{lmodern,textcomp}
        \usepackage[italian]{babel}
        \hfuzz 10pt
        %
        \begin{document}\errorcontextlines=9
        \GetFileInfo{libro.dtx}
        \title{La classe \texttt{libro}\thanks{Version number \fileversion; ultima
        revisione \filedate.}}
        \author{Mario Rossi\thanks{e-mail: \texttt{mario dot rossi at mymail dot net}}}
        \maketitle
        \DocInput{libro.dtx}
        \end{document}
        %
        % \fi
        %
        %
        % \CheckSum{10}
        % \begin{abstract}
        % Questa classe serve per comporre libri in italiano
        % appoggiandosi alla classe \texttt{book} ma includendo
        % i pacchetti necessari.
        % \end{abstract}
        %
        % \section{Generalità}
        % La classe \texttt{libro.cls} serve per comporre libri in italiano con
        % le seguenti specifiche:
        % \begin{itemize}
        % \item La classe di supporto è la classe standard del
        % system \TeX\ \texttt{book.cls}.
        % \item Tutte le opzioni inserite nell'istruzione |\documentclass|
        % vengono trasferite integralmente alla classe \texttt{book}.
        % \item La codifica di entrata è fissata con la specifica \texttt{utf8}
        % e non è possibile con questa classe specificare una codifica differente.
        % \item La codifica dei font di uscita è \texttt{T1} e non è
        % possibile specificare una codifica differente, cosa che sarebbe quanto
        % mai sgradevole per comporre in italiano dove sono presenti molte lettere
        % accentate.
        % \item Il pacchetto \texttt{babel} viene caricato con la sola opzione
        % \texttt{italian}; nei rari casi in cui sia necessario usare anche altre
        % lingue, esse vanno specificate come opzione alla classe, perché non si può
        % chiamare \texttt{babel} due volte con opzioni diverse. Le opzioni della
        % classe sono globali e vengono passate automaticamente a tutti i pacchetti
        % che sanno che cosa farne.
        % \end{itemize}
        % \StopEventually{}
        %
        % \section{Codice commentato}
        % Le due righe contenti il formato e l'identificazione della classe sono
        % già state inserite prima; ora possiamo passare alla gestione delle opzioni
        % che vengono tutte passate alla classe \texttt{book}
        % \iffalse
        %<*class>
        % \fi
        % \begin{macrocode}
        \DeclareOption*{\PassOptionToClass{\CurrentOption}{book}}
        \ProcessOptions*\relax
        \LoadClass{book}
        % \end{macrocode}
        % Poi carichiamo i pacchetti relativi alle codifiche di ingresso e di uscita:
        % \begin{macrocode}
        \usepackage[utf8]{inputenc}
        \usepackage[T1]{fontenc}
        % \end{macrocode}
        % Scegliamo per l'uscita un font eccellente come Latin Modern, ma
        % lo accompagniamo con il pacchetto texttt{textcomp} così da completarlo
        % con molti altri segni alfabetici e analfabetici.
        % \begin{macrocode}
        \usepackage{lmodern,textcomp}
        % \end{macrocode}
        % Infine chiamiamo \texttt{babel} per scegliere la lingua del documento.
        % \begin{macrocode}
        \usepackage[italian]{babel}
        % \end{macrocode}
        % \iffalse
        %
        % \fi
        % Questo è tutto.
        % \Finale
        %
        % \endinput`
        Il file va compilato con pdflatex.

        Ciao
        Orlando

      • #77061
        Up
        0
        Down
        ::


        Niente da fare. Con TexStudio mi dà lo stesso errore di prima. Se invece provo con TeXWorks mi dà questo output di errore:

        `This is pdfTeX, Version 3.1415926-2.3-1.40.12 (MiKTeX 2.9)
        entering extended mode
        (“F:\Documenti\LateX prove\da forum\libro.dtx”
        LaTeX2e <2009/09/24>
        Babel and hyphenation patterns for english, afrikaans, ancientgreek, ar
        abic, armenian, assamese, basque, bengali, bokmal, bulgarian, catalan, coptic,
        croatian, czech, danish, dutch, esperanto, estonian, farsi, finnish, french, ga
        lician, german, german-x-2009-06-19, greek, gujarati, hindi, hungarian, iceland
        ic, indonesian, interlingua, irish, italian, kannada, kurmanji, lao, latin, lat
        vian, lithuanian, malayalam, marathi, mongolian, mongolianlmc, monogreek, ngerm
        an, ngerman-x-2009-06-19, nynorsk, oriya, panjabi, pinyin, polish, portuguese,
        romanian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, swis
        sgerman, tamil, telugu, turkish, turkmen, ukenglish, ukrainian, uppersorbian, u
        senglishmax, welsh, loaded.

        ! LaTeX Error: Missing \begin{document}.

        See the LaTeX manual or LaTeX Companion for explanation.
        Type H for immediate help.

        l.1 �
        ��% \iffalse
        ? `

        AGGIORNAMENTO: Sono andato a capo nella riga ` \begin{document}\errorcontextlines=9` e ora funziona. Quindi suppongo che in precedenza ci fosse qualche errore di copia/incolla.
        Grazie mille, partirò da qui per cercare di andare oltre 🙂

      • #77062
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Veramente sono stupito. Per fortuna
          @ansys vi ha dato le dritte giuste, ma mi stupisco che un file che legge se stesso almeno due volte con il suo proprio nome,venga salvato con il nome prova.dtx, quando dentro c’è scritto che la classe vene generata estraendo il codice da libro.dtx; e anche quando dentro c’è scritto che si vogliono le informazioni sul file libro.dtx e che la compilazione che produce sia l’estrazione del codice sia la documentazione leggendo ed elaborando il file libro.dtx, e non prova.dtx.
          Mi stupisco anche che ci sia qualche programma che risponda in italiano che il file Log non viene trovato; file Log con l’iniziale maiuscola non esistono, e non mi risulta che il processo di estrazione produca alcunché che abbai nome o ostensione Log.

          Ora le cose dovrebbero essere chiare; tra l’altro INtroClassi.pdf dice chiaramante che `% \begin{macrocode}` e `% \end{macrocode}` devono avere esattamente quattro spazi fra il percento e il backslash.

          Se facendo copia e incolla sul video non si vedono i quattro spazi, è evidente che il copia e incolla non ha rispettato gli spazi e bisogna correggere a mano; è altresì evidente che in questa processo di “correzione” non bisogna introdurre ulteriori errori.

          Quando ho scritto IntroClassi.pdf non sono sceso in dettagli così fini, confidando da una parte che il processo di copia e incolla non alterasse quanto copiato; quindi se questo succede, purtroppo dovrò aggiungere qualche spiegazione per superare questo inconveniente. Ma credevo che il testo descrittivo del formato generale dei file dtx fosse sufficientemente chiaro e che il processo di estrazione-compilazione fosse sufficientemente chiaro; evidentemente non lo è e mi scuso con i lettori; ma vorrei anche raccomandare loro di leggere la documentazione prima di commettere errori grossolani. E in una faccenda come quella di creare nuove classi, davo per scontato che il livello di competenza e di conoscenza del sistema TeX potesse essere anche modesta, ma non nulla. Per usare qualcosa che deve gestire del codice, mi spetterei che l’utente legga il file sorgente di quel “qualcosa” e capisca che cosa quel “qualcosa” faccia; se non lo capisce il suo livello di competenza non è sufficiente.

          Questo detto senza offesa per nessuno; io ho una buona conocenza del sistema TeX, ma prima di arrivare a questo livello ho commesso un numero enorme di errori e continuo a commetterne; spero solo che ora i miei errori non siano così ingenui. Tutti siamo passati attraverso il livello dell’ingenuità; se dico che il livello di conoscenza/competenza è insufficiente, non dico niente di strano: tutti siamo passati attraverso questo livello. L’importante è riuscire a passare al livello successivo. 😉 🙂

          C;audio

        • #77063
          Up
          0
          Down
          ::

          mietitore” post=76220Salve a tutti.
          Vorrei scrivere un diario utilizzando LaTeX, con data, ora, e magari un titolo per ogni singolo “intervento” sul diario.
          Purtroppo non esiste una classe predefinita (come book, article ecc.), e non so bene come muovermi.
          [..]
          Ci sono alternative?

          Non so se ti può essere utile, io avevo postato del codice per organizzare le mie note.
          Sono un neofita e non so se è sintatticamente corretto ma funziona bene. Lo puoi anche usare come una sorta di diario.
          Ecco il link al thread

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

      Go to top