Risposte nei forum create
-
AutoreRisposte
-
::
illinguista1972″ post=65873A quanto pare il problema del nome e del rimaneggiamento di un codice altrui e pubblicato non è del tutto sopito 😉
Dico ora la mia, da perfetto ignorante (mi piacerebbe saper scrivere un pacchetto e una classe, ma non ne sono capace). A me ClassicThesis piace, e piace molto. Mi piace quello che permette di ottenere, e mi piacerebbe che permettesse di ottenerlo anche su un formato più ridotto: non ho mai fatto mistero della mia avversione contro l’A4 al di fuori di un aula di scuola (un libro in A4 non sta sulla grande maggioranza delle librerie). Mi piace il suo stile così retrò, tanto che spesso la uso seguendo diligentemente le istruzioni di Miede e non mi metto a toccare nulla di nulla, tanto meno la gabbia del testo, pensata e voluta da Miede proprio così. Se uso classicthesis ne accetto le caratteristiche, se no uso un’altra classe. Punto. Io, almeno, la vedo così.
Ora, classicthesis attira le ire della comunità perché, da quello che ho capito, a ogni aggiornamento i file scritti con la versione precedente diventano incompilabili. Ma se Miede ha pensato così, perché cambiare le cose? Chi si sognerebbe di cambiare qualcosa in TeX, pensato dal Grande Mago Basilio Nodari? Nessuno, credo, guru compresi. Piuttosto, se sono le classi KOMA a rompere le scatole, si potrebbe chiedere a gran voce a Miede di svincolare classicthesis da Kohm per appoggiarsi a una più sobria book.
Insomma: il pacchetto frontespizio di Enrico richiede di compilare a parte un file .tex generato dalla compilazione del file principale, giusto? Ebbene, l’80% dei messaggi su frontespizio chiede di eliminare questa (ritenuta) aberrazione. La risposta è sempre un secco no da parte dell’autore.
Perché dunque cambiare qualcosa in classicthesis? Sinceramente non riesco a capire dove voglia andare a parare questo filone. Per me classicthesis funziona bene, anche se è molto rigida. Ma anche frontespizio è rigido, anche article è rigido per certi versi, anche siunitx è rigido, e via dicendo.Piuttosto: chiediamoci per quale tipo di documento vogliamo usare uno stile così scenografico come classicthesis. Forse per una tesi di laurea è davvero eccessivo, vero Ivan? 🙂 Forse andrebbe meglio per una tesi specialistica o, ancora meglio, di dottorato. O per un bel libro, ma non in formato A4. Ci vorrebbe poi un frontespizio adeguato in stile classicthesis, magari da chiamare con \usepackage[classicthesis]{frontespizio}, per rendere tutto il documento tipograficamente omogeneo. A me piace molto un frontespizio in stile con il resto del documento. Al diavolo le convenzioni delle segreterie! Facciamo una crociata? 😉
Riscrivere classicthesis.sty per trasformarlo in classicthesis.cls? Potrebbe essere effettivamente un buon banco di prova per imparare a scrivere una classe, senz’altro, ma se ne fossi capace io mi appoggerei a book e book modificherei, lasciando memoir a un parto più originale. Se invece la strada di memoir è quella giusta, allora chiedo perdono, ma non ho capito il perché, se non quello di imparare contemporaneamente a scrivere una classe e a usare memoir. Ma, ripeto, io non sono capace di produrre un pacchetto o una classe (vi anticipo che ne ho in mente una in collaborazione con l’autore di un articolo sulla classe exam nel numero 12 di ArsTeXnica), e la letteratura non abbonda in questo senso. Ecco di cosa ci sarebbe bisogno! 😉
Magari, dopo quattro pagine di messaggi, sarebbe bene fare un poco di ordine.
Ciao
TommasoAnche a me piace molto classicthesis originale e in alcuni lavori lo uso senza modifiche. In altri, lo modifico. Per questo il mio obiettivo è avere due classi: classicthesis originale e quello modificato.
Per quanto ne so, i problemi di classicthesis non sono delle classi Markus Kohm, ma di Miede. Altrimenti i filoni di richiesta d’aiuto si moltiplicherebbero. Addirittura, le classi KOMA hanno un’opzione “version=first” attiva di default che fa sì che anche avendo installata una versione successiva i documenti continuino a compilarsi come con quella vecchia (se si vuole usare la nuova versione bisogna specificare esplicitamente “version=last”).
Il fatto che classicthesis non sia adatto a una tesi di laurea è un argomento che voglio approfondire, ma non sembra che tutti concorderebbero, e comunque non vedo perché debba escludere il lavoro che sto facendo.
L’idea di usare memoir l’ha suggerita il Professore Claudio Beccari, peraltro con miei forti dubbi iniziali, ma più vado avanti e più mi prende.
::lorenzo.pantieri” post=65865Ciao a tutti, vorrei esporvi alcune riflessioni che ho maturato in questi giorni.
Su alcuni punti ti do certamente ragione, ma in generale secondo me sbagli prospettiva.
0.
Da quello che ho capito, i pacchetti per LaTeX sono pubblicati sotto una licenza che permette a chiunque di modificare e ri-distribuirne il codice. Quindi con i pacchetti LaTeX il plagio non esiste. Fin qui la “legge”. Tuttavia, mi lascia perplesso l’idea di “poter fare quello che si vuole” con il codice scritto da altri. Miede ha scritto un pacchetto, classicthesis.sty. Se ora un autore diverso da Miede scrive una classe con lo stesso nome, classicthesis.cls, questo mi sembra sollevare qualche problema.I pacchetti per LaTeX sono pubblicati sotto la licenza che decide l’autore. Non so se CTAN richiede che i pacchetti vengano rilasciati sotto LPPL, ma anche in questo caso l’autore potrebbe decidere di rilasciare un suo pacchetto sotto doppia licenza. Non ci metto la mano sul fuoco ma ne sono abbastanza convinto.
1.
Un primo problema è la possibilità di fare confusione. Se un utente scrive sul forum “ho un documento composto con ClassicThesis” non si sa più che cosa si riferisce. L’utente deve allora dire “ho un documento composto con il pacchetto classicthesis” oppure “ho un documento composto con la classe classicthesis”. Altra possibile confusione: se si consiglia (magari di fretta) a un utente “usa ClassicThesis per quel tuo documento” il consiglio è ambiguo, e l’utente può sbagliarsi.Vedi sotto.
2.
Se Miede volesse, in futuro, trasformare il suo pacchetto in classe mantenendo lo stesso nome, non potrebbe più farlo. Un bel paradosso.In termini di licenze, potrebbe farlo benissimo, così come chiunque potrebbe scriversi il suo classicthesis.sty.
3.
“ClassicThesis” è un nome legato al lavoro Miede. Scrivere una classe e chiamarla allo stesso modo vorrebbe dire (perdonate la metafora automobilistica) “rubare la scia” al lavoro di altri. Insomma, si sfrutta il lavoro che un altro ha fatto per dare al proprio lavoro un rilievo, una pubblicità che non necessariamente gli compete. Ancora: classicthesis.sty ha diversi anni di rodaggio alle spalle, ed è dunque un prodotto solido e affidabile; classicthesis.cls sarebbe un lavoro nuovo di zecca, e come tale probabilmente con qualche (naturalissimo, e scusabilissimo) difetto di gioventù. Non troverei molto sensato chiamare con due nomi quasi uguali cose così diverse sul piano della “maturità”.Secondo me sbagli prospettiva: riprendendo il suo lavoro e riadattandolo a classe, gli rendo merito di quello che ha fatto. Anzi, è proprio per dare (spero) maggiore visibilità e diffusione al lavoro di Miede che lo faccio. Ti dirò di più: è proprio per non prendermi celatamente meriti che chiamerei la classe con lo stesso nome del pacchetto originario, affiancando in prima pagina il mio nome a quello di André: un po’ come lui ha fatto con Bringhurst.
4.
Con un nome così simile, le due “cose” rischiano di avere un destino comune. Per esempio, supponiamo che classicthesis.cls fosse piena di bachi. Un utente alle prime armi potrebbe pensare che quei bachi li ha anche il pacchetto. Un utente frettoloso, poi, potrebbe pensare che i due lavori sono dello stesso autore.È proprio per questo motivo che la GPL richiede che si metta il nome di chi ha fatto le modifiche al codice originario (oltre che ovviamente specificare qual è il lavoro originario e di chi è). A pensare che i due lavori possano essere dello stesso autore può essere un utente così frettoloso che non ha nemmeno letto la prima pagina della documentazione o le prime righe del codice.
5.
Ho scritto e pubblicato un pacchetto, ArsClassica, che sto pensando di trasformare in classe. Ci resterei parecchio male se venissi a scoprire che qualcuno (magari a mia insaputa) ha usato il nome “ArsClassica” per scrivere una classe, che magari non mi piace neppure! Vedi i punti precedenti.Nessuno potrebbe farlo (senza il tuo permesso): la differenza tra tre e Miede è che lui ha usato la GPL, tu no.
6.
Su CTAN si può pubblicare quello che si vuole, ma un po’ di controllo c’è. Per esempio, quando pubblicai AsrClassica uno dei maintainer di CTAN (Reiner Hopf, se ben ricordo) mi chiese di modificare alcune cose, fra cui proprio il nome della cartella (“arsclassica” e non “ArsClassica”). Un’altra modifica che mi chiese di fare fu quella di non includere i file .sty di Miede nella cartella zippata, ma di limitarmi a caricarli con \RequirePackage).7.
Non escludo che se qualcuno (Macrì o chiunque altro), decidesse di caricare su CTAN una classe “classicthesis.cls”, potrebbe venire “invitato” a cambiarle il nome dai maintainer del CTAN. Per me, sarebbe opportuno.8.
Il nome “anthosthesis” non mi dispiace. 😉Beh, questo è tutto. 🙂
Se inviassi la classe su CTAN cambierei certamente nome, ancora prima che mi invitino (giustamente, anche secondo me) a farlo.
All’inizio era cominciato come una classe da usare io e una ristretta cerchia di conoscenti, in privato. Poi ho pensato di coinvolgere in qualche modo il forum per ricavare qualcosa di meglio di quello che posso fare da solo. Pubblicandola al di fuori da CTAN (attualmente è in un repository privato su BitBucket), mi piacerebbe mantenere lo stesso nome, come e perché ho già detto.
Tuttavia, dato che tu me lo stai praticamente chiedendo, rivedo seriamente la mia posizione.
Voglio però precisare che non lo faccio per una generica “onestà intellettuale” nei suoi confronti. In qualche modo mi stai accusando di violare i diritti morali di Miede, ma secondo me non è affatto così, il problema non si pone. Miede poteva usare la LPPL (che impone di cambiare nome e che credo sia quella di default pubblicando su CTAN) o qualsiasi altra licenza, ma ha deciso esplicitamente per la GPL. Ora, è anche vero che molti la usano solo perché fa figo e possono dire di aver pubblicato qualcosa “open source”, ma voglio sperare che André non sia tra questi.
Per inciso, si può aggiungere alla GPL una clausola in cui si vieta di riutilizzare lo stesso nome, ma bisogna farlo esplicitamente, se lo si vuole.
Detto questo, ripeto: sul fatto del nome ci ripenso, solo per evitare confusioni.
PS:
Il discorso si inserisce molto bene nel quadro del mondo LaTeX, in cui il cuore è centralizzato (vedi CTAN). Questo ha indubbiamente risvolti enormemente positivi, ma secondo me a volte si esagera. In ogni caso, proprio per rispettare questo mondo (io che verrei da un mondo più distribuito), mi adeguerò.
::OldClaudio” post=65848Antonio, ricordati sempre che 1pt è appena un briciolo di più di un terzo di millimetro; visibile ad occhio nudo, ma quando parli di geometria di pagina la cosa è del tutto impercettibile.
Hai ragione. Lì la differenza era di circa 0,9pt, meno di un terzo di millimetro, ma temevo ci potesse essere qualche effetto collaterale, qualche implicazione nascosta, perché ancora visivamente la differenza sembrava più grande del dovuto. Poi mi sono accorto del diverso rientro di paragrafo… 🙂
Ciao e grazie,
Antonio
::drjhons” post=658241. Ho la necessità di inserire dei caratteri in maiuscoletto nel titolo di un sottoparagrafo (\subsection), ma usando \textsc{
} nel PDF non viene visualizzato in maiuscoletto, mentre nell’indice generale si. Come posso fare? Devi riportare un esempio minimo. Qualcosa come:
`
\documentclass{article}
\usepackage[T1]{fontenc}
\begin{document}
\subsection{Titolo in \textsc{maiuscoletto}}
\end{document}
`funziona correttamente.2. Come posso nella didascalia di un’immagine sostituire l’etichetta “Figura” con “Schema”?
Devi farlo per una sola figura? Se nel tuo elaborato ci sono diversi schemi, allora ti può convenire usare pacchetti come float o newfloat per definirti un nuovo ambiente col quale inserire più “schemi”.
Ciao,
Antonio
::egreg9″ post=65825Io vedo solo un minimo sfasamento, dovuto al fatto che con KoMaScript viene \oddsidemargin=-27.90305pt, mentre con memoir risulta \oddsidemargin=-27pt (poco meno di un punto). Sinceramente non me ne preoccuperei.
Dici? Io ero partito proprio paranoico: all’inizio avevo scomodato ImageMagik per confrontare il pdf generato usando il pacchetto classicthesis originale col pdf ottenuto dalla classe che sto ricavando. Ma se tu mi tranquillizzi, non mi preoccupo più di tanto.
Mi spiegheresti perché si usa \@settopoint? Non ho trovato praticamente niente in giro per la rete.
In effetti trovo che il metodo di \areaset sia il meno intuitivo esistente al mondo.
Perché? A me l’interfaccia sembra abbastanza semplice, anzi \areaset è pure troppo semplice. Magari potevano essere forniti più comandi per impostare i parametri a gruppi, un po’ come si fa con memoir.
Grazie,
Antonio
::egreg9″ post=65786La “metatabella” consiste nel definire
…Grazie, alla fine ho fatto così.
Un paio di domandine:
- I commenti che metti alla fine di alcune righe sono solo per scrupolo, giusto? Quei comandi li uso solamente nel preambolo.
- Diverse volte Miede ridefinisce le lunghezze:
`\renewcommand{\cftsecindent}{0em}`
È concettualmente sbagliato, giusto? Ci metterei:
`\setlength{\cftsecindent}{\z@} % già che ci sono ottimizzo un po'`
Altrimenti il registro dimensionale che conteneva il valore di \cftsecindent rimane inutilizzato, vero?
Grazie ancora!
::
Grazie.egreg9″ post=65756In ogni caso, la strategia migliore è quella di scegliere una delle due sintassi e lavorare con quella; supponiamo tu voglia quella di tocloft:
`\ifcth@memoir
\let\cftbeforechapskip\cftbeforechapterskip
…
\fi`
In altre parole definisci una tabella di equivalenze e lavori con i comandi di tocloft. Occupazione di memoria minima e sintassi invariata. Puoi anche ideare facilmente una “metatabella”.Ciao
EnricoCredo di non aver capito. Se faccio
`
\ifcth@memoir
\let\cftbeforechapskip\cftbeforechapterskip
\let\cftsecnumwidth\cftsectionnumwidth
\let\cftsubsecpresnum\cftsubsectionpresnum
…
\fi
\setlength{\cftbeforechapskip}{.1em}
\addtolength{\cftsecnumwidth}{\newchnumberwidth}
\renewcommand{\cftsubsecpresnum}{\scshape\MakeTextLowercase}
…
`
le istruzioni con \setlength e \addtolength funzionano, ma i \renewcommand no (e ce ne sono tanti, sono anzi i più numerosi). Dovrei fare:
`
\ifcth@memoir
\let\cftbeforechapskip\cftbeforechapterskip
\let\cftsecnumwidth\cftsectionnumwidth
\let\cftsubsecpresnum\cftsubsectionpresnum
… % quelli per \setlength, \addtolength e \renewcommand
\fi
\setlength{\cftbeforechapskip}{.1em}
\addtolength{\cftsecnumwidth}{\newchnumberwidth}
\renewcommand{\cftsubsecpresnum}{\scshape\MakeTextLowercase}
…
\ifcth@memoir
\let\cftsubsectionpresnum\cftsubsecpresnum
… % solo quelli per \renewcommand (invertiti)
\fi
`
ma mi pare prolisso. 😕Che metatabella intendi?
::OldClaudio” post=65750Leggi nella documentazione di memoir: mi pare di aver letto che si possano disabilitare (alcuni de)i pacchetti simulati, come, per esempio tocloft, e caricarli espressamente. In quel caso, se vuoi usare sempre i comandi di tocloft non hai bisogno di eseguire quella “interfaccia” per renderli compatibili a seconda di quale classe usi come classe di base.
Ciao, Claudio, grazie.
Sì, ho visto il comando \DisemulatePackage, ma preferirei usare i comandi “nativi” di memoir, per avere maggiore coerenza (sempre che, lo verificherò, il risultato sia effettivamente lo stesso).
Cosa mi consigli sul liberare la memoria? (La richiesta deriva anche da una mia “deformazione professionale” che mi suggerisce il principio dell’information hiding: nascondere (cancellare) i comandi usati internamente, principio che il LaTeX è piuttosto blando.)
::illinguista1972″ post=65673Caricare arsclassica o classicthesis per cambiarne i margini come prima modifica, non mi sembra un’ottima cosa. No?
Chiedo scusa per il terribile off-topic, ma vedo un Linguista che mette la virgola tra soggetto e predicato. La ammetti se il soggetto è una proposizione, perché il tutto è un sintagma “più debole”, facilitando la lettura? Chiudo subito l’off-topic e di nuovo scusa.
::
Per il fatto dei colori, dipende chi è il tuo lettore, soprattutto quanti anni ha. 🙂 Per materiale universitario eviterei certamente, ma per dispense scolastiche perché no? Basta che i colori siano tenui e tutto stia in armonia. Ma altri possono argomentarti con forza certamente maggiore della mia.Ho dato una sistemata al codice:
`\documentclass{article}\usepackage{mdframed,lipsum,tikz}
\makeatletter
% #1: il nome dell'ambiente (es: teorema)
% #2: il colore (es: blue!20)
% #3: il titolo del teorema (es: di Pitagora)
\newenvironment{mdfthm}[3]{%
\expandafter\let\expandafter\mdframedtitleenv\csname @mdfthm@titenv@#1\endcsname
\stepcounter{#1}%
\ifstrempty{#3}%
{\mdfsetup{frametitle={\strut}}}%
{\mdfsetup{frametitle={:~#3}}}%
\begin{mdframed}[innertopmargin=0pt,linecolor=#2,%
linewidth=2pt,topline=false,]%
}{\end{mdframed}}% Argomenti:
% #1: il nome dell'ambiente (es: teorema)
% #2: il titolo dell'ambiente (es: Teorema)
% #3: il colore (es: blue!20)
% #4: il titolo del teorema (es: di Pitagora)
\newcommand{\@mdfthm@titenv}[4]{%
\@afterindentfalse
{\parindent \z@
\setlength{\parfillskip}{\z@ plus 1fil}%
\mdraggedtitle\nobreak
\makebox[\linewidth][l]{%
\hspace*{-1\mdf@innerleftmargin@length}%
\rlap{\color{white}%
\hspace*{-1\mdf@middlelinewidth@length}%
\rule[\mdf@middlelinewidth@length]%
{\dimexpr\linewidth+1\mdf@innerleftmargin@length
+\mdf@innerrightmargin@length
+2\mdf@middlelinewidth@length\relax}%
{\dimexpr\ht\strutbox+.3333em\relax}}%
\rlap{\color{#3}%
\rule{\dimexpr\linewidth+\mdf@innerleftmargin@length%
+\mdf@innerrightmargin@length\relax}%
{\mdf@middlelinewidth@length}}%
\hspace*{-1\mdf@middlelinewidth@length}%
\tikz[remember picture,baseline]%
\node[draw = none, text = black, fill = #3]%
{\mdf@frametitlefont\strut #2~\@nameuse{the#1}#4};\relax}%
\par\kern.5\baselineskip}%
\@afterheading}% Argomenti:
% #1: il nome dell'ambiente (es: teorema)
% #2: il titolo dell'ambiente (es: Teorema)
% #3: il colore (es: blue!20)
\newcommand\mdfnewtheorem[3]{%
\newcounter{#1}[section]%
\newenvironment{#1}[1][]{%
\begin{mdfthm}{#1}{#3}{##1}}{\end{mdfthm}}%
\@namedef{@mdfthm@titenv@#1}{%
\@mdfthm@titenv{#1}{#2}{#3}}}
\makeatother\mdfnewtheorem{teorema}{Teorema}{blue!20}
\mdfnewtheorem{definizione}{Definizione}{green!20}\begin{document}
\begin{teorema}[di pitagora]
\lipsum[3]
\end{teorema}
\begin{teorema}
\lipsum[2]
\end{teorema}
\begin{definizione}[di insieme]
\lipsum[4]
\end{definizione}
\begin{definizione}
\lipsum[6]
\end{definizione}
\end{document}`Noto però che c’è un’imperfezione sul lato superiore del disegno, e c’è anche nel codice originario (non ce l’ho messa io!). Servirebbe un esperto di TikZ per capirne il perché.
Ciao,
Antonio
::zippo” post=65676Per prima cosa desidero ringraziare OldClaudio per la sua risposta e per i suoi preziosi consigli che mi riprometto di testare con attenzione.
Come seconda cosa desidero chiedere a lorenzo.pantieri quali sono le 2 righe da apportare per cambiare la larghezza di classicthesis + arsclassica (l’unica cosa che saprei fare è porre a mano \textwidth=quanto? oppure mettere il layaureo?). Grazie.
Si usa il comando \areaset, senza caricare nessun altro pacchetto. Per la gabbia credo si riferisca a
`\areaset[current]{336pt}{750pt}`
che è la dimensione di ClassicThesis e che, a occhio, sembra la stessa dell’Arte.
-
AutoreRisposte
