- Questo topic ha 9 risposte, 5 partecipanti ed è stato aggiornato l'ultima volta 13 anni, 12 mesi fa da
proxima.
-
CreatoreTopic
-
14 Agosto 2012 alle 10:46 #77054::
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?
-
CreatoreTopic
-
AutoreRisposte
-
-
14 Agosto 2012 alle 11:06 #77055
-
14 Agosto 2012 alle 11:39 #77056::
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 reservedLicense information appended
\endpreamble
\postamble
Copyright 2011 Mario RossiDistributable 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.txtThis 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?
-
14 Agosto 2012 alle 11:50 #77057
-
14 Agosto 2012 alle 12:01 #77058
-
14 Agosto 2012 alle 12:49 #77059::
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.
-
14 Agosto 2012 alle 13:04 #77060::
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 reservedLicense information appended
\endpreamble
\postamble
Copyright 2011 Mario RossiDistributable 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.txtThis 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
-
14 Agosto 2012 alle 14:25 #77061::
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>
Babeland 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 Hfor 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 🙂
-
15 Agosto 2012 alle 18:28 #77062::
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
-
17 Settembre 2012 alle 10:28 #77063::
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
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.