Newsgroup: it.comp.software.tex
Titolo: Automatizzare LaTeX...

Ho definito una macro \inizio che uso in questo modo:
  \chapter{Mio capitolo}
  \label{cha:miocapitolo}
  \inizio Questo e` l'inizio del capitolo...
il cui effetto e` generare la lettera `Q' con un font di corpo piu`
grande, in modo da occupare 3 righe (con \hangindent + \hangafter)
Come posso fare affinche` il comando \inizio sia dato automaticamente ad
ogni capitolo, senza specificarlo manualmente ogni volta? (non m'e`
venuto in mente niente...)
-- 
Alessandro Colantonio
http://web.tiscalinet.it/cocciasik
http://www.cocciasik.org

 venuto in mente niente...)
mmmmhh questa e' interessante. Non ho la soluzione ma penso che si tratti
di andare a mettere le mani in book.cls (corrispondente a book.sty se e'
questo che stai utilizzando) e vedere bene come e' definito il comando
\chapter. Ci vuole una buona hacking ability, io no credo di essere
all'altezza, ti suggerisco pero' di provarlo in un book_colantonio.cls che
magari metterei in $TEXMFLOCAL. Dovrai anche fare una copia di book.sty in
book_colantonio.sty. Tutto questo e' per la fase di implementazione.
I tuoi tentativi li puo fare con \documentclass[]{book_colantonio.sty}
Ma sei proptio sicuro che non c'e' un pacchetto gia' fatto? Hai provato a
mandare un messaggio a comp.text.tex?
In bocca al lupo, quello che vuoi fare interessa anche a me che scrivero'
la mia tesi di Ph.D.  quest'anno. 
Ciao
Massimo
Massimo Pinto
Ph.D. student
pi...@graylab.ac.uk

 Ma sei proptio sicuro che non c'e' un pacchetto gia' fatto? 
Stasera, per caso, ho visto che fra il codice sperimentale di
www.latex-project.org
, c'e` proprio quello che fa per me (e moooolto di
piu`)! Il pacchetto si chiama xinitials e devo dire che e` veramente
impressionante... Altro che "hacking ability"! ;)
Ciao!


 
Ehmm... ho parlato troppo presto, ovvero prima di vedere come lavorava
effettivamente il pacchetto. In pratica fa quello che gia` ho fatto io,
ovvero bisogna specificare "a mano" quando si vuole la prima lettera
"supermaiuscola". Resta comunque un bel lavoro!


"supermaiuscola". Resta comunque un bel lavoro!
Infatti, di pacchetti per i capolettera ce ne sono diversi (dropping,
dropcaps...), ma tutti, che io sappia, prevedono che si debba specificare
l'iniziale. Anzi, la tua macro e' gia' piu' "automatica" di quella di
dropping, in cui dovresti scrivere qualcosa come:
    \dropping{3}{Q}uesta e' la prima riga....
Puoi eventualmente sempre usare questi pacchetti all'interno della tua
macro, per non reinventare tutto da capo, e ridurre il problema ad ottenere
la prima o le prime lettere della prima parola del capitolo.
Mi sa che una redifinizione di \chapter sia per forza di cose necessaria,
se vuoi automatizzare la cosa a questo punto.
Ciao.

 se vuoi automatizzare la cosa a questo punto.
Ci avevo pensato... il problema e` passare la prima lettera del capitolo
alla mia macro
Potrei fare qualcosa tipo (molto "grezzamente" ;):
  \def\miochapter#1#2{\chapter{#1}\dropping{3}{#2}}
ma non funziona perche`:
1) dropping cosi` funziona male
2) dopo \miochapter ci deve essere subito il testo e non un macro tipo
\label (ovvero il 99% dei miei casi)
Mah...


venuto in mente niente...)
Io non sono assolutamente un esperto di latex,  però la prima cosa che
mi viene in mente è ridefinire /chapter, o /section, o quello che è.
Non penso sia troppo difficile trovare il "codice" che la macro esegue
e riscriverlo aggiungendo la tua macro...


Ovviamente ridefinire \chapter e` stata la prima cosa che e` venuta in
mente anche a me! Uno dei *tanti* problemi che si possono porre e`
esemplificato proprio dalle tre righe di codice che ho proposto: se dopo
\chapter non c'e` subito un comando che "genera testo", ad esempio c'e`
\label, come si fa?
In realta` una mezza idea ce l'ho avuta: leggendo il TeXbook (che ho da
poco, per cui l'ho solo "sfogliato") ho visto che si puo` inserire una
lista di "token" all'inizio di ogni paragrafo, attraverso la primitiva
\everypar; con qualche stupido trucchetto di programmazione, non sarebbe
difficile ottenere un certo effetto solo nel primo paragrafo di un
capitolo... Il problema e` che \everypar, con LaTeX, fa cose strane!
(probabilmente LaTeX lo usa per scopi suoi)
Be'... appena avro` un minuto libero vedro` di risolvere il problema.
Nel frattempo, ben vengano i suggerimenti!
