Newsgroup: it.comp.software.tex
Titolo: Effetti speciali: lettere con numeri sottoscritti

Nell'ambito di un lavoro di glottologia, avrei la necessità
di scrivere delle parole dove, sotto alcune lettere e solo
e precisamente sotto quelle, vanno posti dei numeri riferentisi
poi a delle note. Per essere più chiaro:
La mela è rossa e dolce
   1      2       3
dove sotto la m di "mela" deve stare il numero 1,
sotto la r di "rossa" il numero 2 ecc. Questi numeri
richiamano poi una serie di note. È fattibile
una cosa del genere?
Grazie mille
M.

 scrive:

====
\newcommand{\specialchar}[2]{\oalign{#1\vphantom{g}\cr
  \hidewidth\footnotesize#2\hidewidth\crcr
  \noalign{\vskip\lineskip}}}
La \specialchar{m}{1}ela \`e \specialchar{r}{2}ossa e 
do\specialchar{l}{3}ce.
====
Questo dovrebbe fare almeno una parte di ciò che chiedi. Per le
note bisognerebbe sapere se si tratta di un apparato distinto da
quello delle note al piede.
Ciao
Enrico

 quello delle note al piede.
Si tratta di un apparato distinto,
che dovrebbe avere un font un po' più grande
di quello di default delle note.
Grazie
M.

 scrive:

Pacchetto bigfoot; potrebbe essere necessario un po' di lavoro
per inserire le note che vuoi, ma non mi pare così complicato,
una volta che sappiamo come inserire il numerino.
Ciao
Enrico

 una volta che sappiamo come inserire il numerino.
Mai usato. Nei prossimi giorni vedo di sperimentare.
Anche se non è così improbabile che posti nuovamente
in questo lidi...
Intanto grazie mille
M.

 scrive:

Siamo qui. :-) E anche altrove. :-)
Ciao
Enrico

 Siamo qui. :-) E anche altrove. :-)
Come disse il poeta,
"io vivo altrove, e sento 
che sono intorno nate le viole"
M. :-)

   \noalign{\vskip\lineskip}}}
[cut]
E se volessi inoltre che i numeri risultassero
di un corpo più piccolo, e magari anche sans-serif?
Sempre più difficile...
Grazie!
M.

 scrive:

Sostituisci \footnotesize con \tiny\sffamily; mi sembra evidente. :-)
Ciao
Enrico

 Sostituisci \footnotesize con \tiny\sffamily; mi sembra evidente. :-)
Pensavo a qualcosa di molto più complicato.
Del resto metà del codice che mi hai postato
mi è in pratica ignoto e, per non fare
un mero copia-incolla adesso deve cercare
di capirlo un po' meglio...
Grazie
M.

 scrive:

La macro \oalign è definita in Plain TeX (ma anche in LaTeX):
\def\oalign#1{%
  \leavevmode
  \vtop{
    \baselineskip\z@skip \lineskip.25ex
    \ialign{##\crcr#1\crcr}%
  }%
}
La macro \leavevmode serve per essere in modo orizzontale; a questo 
punto si apre una \vtop, che è analoga a una \parbox[t], ma non 
richiede che si specifichi la larghezza: sarà quella della più larga
box al suo interno. Dentro si imposta l'avanzamento di riga a zero;
non significa che le righe si sovrappongano, ma solo che due righe
successive saranno sempre "troppo vicine" e quindi tra esse verrà
inserito uno spazio verticale di ampiezza \lineskip (che viene impostato
a .25ex, con un font a corpo 10 è circa 1pt, ma così la spaziatura è
proporzionata al corpo).
Ecco la box interna, che è sotto forma di un \halign, la primitiva di
TeX per gli allineamenti. Qui c'è \ialign, che è solo un \halign con
la sicurezza che non vengono aggiunti spazi prima, tra e dopo le
colonne. Questa è la sintassi di \halign:
\halign{<preambolo>\cr<riga 1>\cr<riga 2>\cr...<riga n>\cr}
<riga i> è una serie di celle, separate da &
<preambolo> è la specifica delle celle; per esempio, una colonna
con allineamento a destra va specificata con "\hfil#" (senza 
virgolette!), al carattere # va sostituito il contenuto della cella
corrispondente nelle varie righe.
Qui il <preambolo> è il più semplice possibile: # (quindi una sola
colonna) senza alcun formato particolare. È raddoppiato perché lo
si sta usando all'interno di una definizione.
Noterai \crcr invece di \cr: sono essenzialmente equivalenti.
Adesso vediamo l'applicazione al tuo caso specifico: con 
\specialchar{m}{1} si otterrebbe, facendo le debite sostituzioni,
\leavevmode
\vtop{
  \ialign{#\cr 
    m\vphantom{g}\cr
    \hidewidth\footnotesize 1\hidewidth\cr
    \noalign{\vskip\lineskip}
  }%
}
Dunque le due celle vengono incolonnate una sopra l'altra: la prima
contiene "m\vphantom{g}" (uso la g in modo che il numerino sia alla
stessa altezza relativa anche se il carattere non ha tratti discendenti)
e la seconda contiene "\hidewidth\footnotesize 1\hidewidth". Fra le
due celle ci sarà uno spazio verticale di 0.25ex, uguale a quello che
inserisco poi sotto, per staccare meglio dalla riga sottostante.
Che fa \hidewidth? Inserisce "\hskip -1000pt plus 1fill". E che è?
Facciamo i conti. La cella superiore contiene essenzialmente una m
perché \vphantom{g} non occupa spazio in orizzontale. Con il preambolo
semplice all'allineamento si specifica, a dire il vero, una colonna
allineata a sinistra. TeX compone le varie celle e poi decide qual è
la più ampia. La seconda è ampia -2000pt + "larghezza di 1", quindi
di sicuro è più stretta di "larghezza di m"! Dunque la cella più ampia
è la superiore, e questa darà l'ampiezza della \vtop.
Non c'è alcun Underfull nella cella sottostante, perché c'era tutta
l'espandibilità necessaria nei due \hskip. Quindi gli \hskip si
espandono fino a riempire la cella di spazio bianco e il carattere 1
se ne sta bel bello in mezzo.
Puoi notare che questo è del tutto indipendente dall'ampiezza del
carattere che sta di sopra; lo puoi apprezzare nel terzo esempio,
con \specialchar{l}{3}: anche se il "3" è più largo di "l", non ci
sono spazi orizzontali aggiunti fra la "l" e le lettere attorno.
Ciao
Enrico

 La macro \oalign è definita in Plain TeX (ma anche in LaTeX):
[cut]
Sublime! :-)
Cmq devo tirare fuori il manuale,
perché, nonostante la tua amplissima
e dettagliatissima esposizione, ci sono
elementi a me ben poco noti.
Come diceva il saggio, non si finisce
mai di imparare...
Ancora mille grazie
M.

 una volta che sappiamo come inserire il numerino.
Ma l'unica documentazione sul suo uso
è quella, breve e non poi tanto chiara,
inserita nel pacchetto stesso? In rete
ben poco trovai...
M.

 scrive:

Cerca la documentazione di manyfoot, sul quale bigfoot è basato.
Ciao
Enrico