Newsgroup: it.comp.software.tex
Titolo: Operazioni in colonna

Buongiorno a voi e perdonate la domanda a bruciapelo senza aver dato un
minimo di aiuto in precedenza (ma, vi assicuro, vi leggo moltissimo) :-)
Avrei bisogno di scrivere una moltiplicazione in colonna, con tutti i
prodotti parziali e la somma finale. Una cosa simile a questa (gli esperti
trattengano i conati di vomito, per pietà):
\[
begin{tabular}{rl}
       11100001 & $\times$\\
       10001110 & =\\
\hline
       00000000 &\\
      11100001- &\\
     11100001-- &\\
    11100001--- &\\
   00000000---- &\\
  00000000----- &\\
 00000000------ &\\
11100001------- &\\
\hline\hline
111110011001110
\end{tabular}
\]
Esiste, sì, il pacchetto "xlop" ma, come avrete notato, la moltiplicazione è
in base 2, che il pacchetto ancora non gestisce (infatti l'ho provato e il
risultato è sballato).
Potrei giocare un po' meglio con array o con tabular, ma la cosa sembra
lunga e complicata. C'è un modo più semplice?
Grazie mille e scusate gli orrori :-)
Gabry (sto imparando, siate clementi) :-)
-- 
http://poisson.phc.unipi.it/~stilli/
               ICQ UIN: 159169930
[HT] Lothlorien F.C. (51042, IV.53)               #156 Club dei Mille
Meglio essere ottimisti e avere torto, che pessimisti e avere ragione
[Albert Einstein]

 scrive:

La faccenda dipende dal fatto che noi scriviamo i numeri alla rovescia.
Fibonacci li imparò dagli arabi, che invece li scrivevano diritti (visto
che la loro scrittura è da destra a sinistra); infatti, a parte la forma
delle cifre, il numero 1234 si scrive con la stessa successione sia da 
noi che con la scrittura araba. Ovviamente loro non hanno alcun problema
a incolonnare!
Il tuo problema si risolve con una magia.
==== nel preambolo ====
\def\setupqm{\catcode`\?=13 }
\begingroup
\catcode`\?=13
\gdef?{\hphantom{0}}
\endgroup
==== nel documento ====
\[\setupqm
\begin{array}{rc}
       11100001 & \times\\
       10001110 & =\\
\hline
       00000000 &\\
      11100001? &\\
     11100001?? &\\
    11100001??? &\\
   00000000???? &\\
  00000000????? &\\
 00000000?????? &\\
11100001??????? &\\
\hline\hline
111110011001110
\end{array}
\]
====
Invece della magia, puoi semplicemente scrivere \hphantom{0}
al posto di ogni ?, ma così hai anche l'allineamento visivo.
Usa array e non tabular.
Ciao
Enrico

 Il tuo problema si risolve con una magia.
Parrebbe funzionare, grazie :-)
Ovviamente quando avrò tempo mi studierò il significato di un po' dei
comandi che dato :-)
Gabry (urrà) :-)


 Gabry (urrà) :-)
le magie sono una gran cosa, ma il carattere monospaced funziona
altrettanto bene e senza aggiunte
basta racchiudere l'operazione tra \texttt
\texttt{
\begin{tabular}{rl}
       11100001 & $\times$\\
       10001110 & =\\
\hline
       00000000 &\\
      11100001- &\\
     11100001-- &\\
    11100001--- &\\
   00000000---- &\\
  00000000----- &\\
 00000000------ &\\
11100001------- &\\
\hline\hline
111110011001110
\end{tabular}
}
-- 
ciao
El Bandolero

 basta racchiudere l'operazione tra \texttt
Eh, c'avevo pensato, ma è un po' più bruttino :-)
Per ora tengo così :-)
Gabry (strano, ma vero) :-)


 [CUT]
Uhm. A me pare 'na ...
1) I caratteri sono decisamente diversi da quelli normali.
2) Nelle operazioni in colonna ci sono spazi e non trattini
   dove le cifre non sono scritte.
3) Altre obiezioni assortite che non ho voglia di scrivere :-)
Le magie si riducono a poco, a dire il vero.
Il comando \setupqm serve ad assegnare al carattere "?" un significato 
speciale, in modo che si comporti come un comando (similmente al 
carattere "~").
La magia sta in seguito, dove questo comando denotato solo con il 
carattere "?" è definito come: "lascia uno spazio orizzontale come se 
al suo posto ci fosse uno zero".
Occorre la sintassi TeX e non quella LaTeX perché il comando va 
definito in un posto dove "?" sia considerato speciale (attivo, in 
termine TeXnico) e il modo più semplice è di definirlo globalmente
in un gruppo. Si potrebbe anche fare così:
\catcode`\?=13
\newcommand{?}{\hphantom{0}}
\catcode`\?=12
sapendo che il codice di categoria usuale di "?" è 12. Occorre poi dare 
il comando \setupqm dentro al \[...\] perché così solo lì il carattere
"?" acquista il significato speciale. Al posto di "?" può essere usato
un qualunque carattere; ho scelto "?" per due motivi: (1) è quello usato
da Knuth nell'analogo esempio sul TeXbook; (2) quasi certamente non 
compare nelle operazioni in colonna.
Ciao
Enrico

 3) Altre obiezioni assortite che non ho voglia di scrivere :-)
perchè tu sei una persona gentile
invece io, che non sono gentile, mi do dell'emerito somaro da solo:
quello che ho fatto io è proprio una *schifezza*...
PS
si può dire somaro su questo NG?
-- 
ciao
El Bandolero

 scrive:

Non so se è politicamente corretto, adesso che i somari sono
usati come lavoratori nel ramo delle manutenzioni stradali.
Ciao
Enrico