Newsgroup: it.comp.software.tex
Titolo: notazione per matrici e vettori

Ax=b
dove A è la matrice dei coefficienti, x vettore delle variabili, b
vettore dei termini noti
cx
dove c è il vettore dei coefficienti di una funzione, e x vettore
delle variabili
Quali lettere vanno in grassetto, e quali no?
La domanda può sembrare banale, ma ho trovato in giro dispense scritte
in LaTeX dove tutte le lettere sono in grassetto, o tutte non sono in
grassetto. Mah...

 scrive:

Questione di gusti e di convenzioni. Secondo le norme ISO/UNI, per
molti versi assurde da un punto di vista matematico, vettori e matrici 
dovrebbero andare in nero corsivo.
Molti matematici se ne fregano altamente e usano tranquillamente il
normale corsivo, specialmente in testi di carattere avanzato.
Personalmente uso il nero tondo (\mathbf) per vettori, con lettere
minuscole, e matrici, con lettere maiuscole.
In ogni caso meglio definirsi un paio di macro
\newcommand*{\matr}{\mathbf}
\newcommand*{\vett}{\mathbf}
in modo da poter in ogni momento cambiare la convenzione senza
dover rivedere tutto il manoscritto.
Ciao
Enrico

minuscole, e matrici, con lettere maiuscole.
È la convenzione con cui sono stato educato, e che vedo tuttora più
spesso (e che uso).

 Enrico
OK.
Altre due domande:
1. ai fini pratici che differenza c'è tra \mathbf e \textbf nelle
formule?
(a parte il fatto ovvio che il primo fa parte di amsmath e il secondo
no)
2. il "nero corsivo" sarebbe \mathit ?


Secondo me, devi solo dichiararlo all'inizio del tuo testo. Cosi' come
non ho mai visto font speciali per gli elementi dei gruppi commutativi,
non vedo perche' bisognerebbe usarli per gli elementi di uno spazio
vettoriale. Anche le funzioni sono vettori, dovrei scriverle in grassetto?
Paradossi a parte, io uso il font corsivo di default sia per le matrici, sia
per i vettori.

 2. il "nero corsivo" sarebbe \mathit ?
No, quello è il corsivo normale che va usato per nomi di variabili
"multilettera".
Per il nero corsivo il modo più semplice è di caricare il pacchetto
bm e scrivere \bm{<lettera>}.
Ciao
Enrico

 > > minuscole, e matrici, con lettere maiuscole.
http://pastebin.com/9p8bEdjG
ho raggiunto il risultato finale che volevo (incolonnare x_b e x_n),
ma facendo tutto "a mano" (\hspace, \qquad ecc.).
Se uso tabular con le colonne giustificate a destra, ho troppo spazio
tra una colonna e l'altra.
Se uso tabbing, lo spazio tra una tabulazione e l'altra mi va bene, ma
l'allineamento è a sinistra (forse c'è un comando per allineare con
precisione a destra? ho fatto qualche prova senza successo).
In conclusione, mi chiedevo se ci fosse un modo un po' più logico per
produrre la stessa cosa.
Come al solito, trattasi di codice che non devo distribuire in giro...
Tuttavia, migliorarsi fa sempre bene :-)

 scrive:

Fa abbastanza orrore. :)
Per questa soluzione occorre il pacchetto array: nel preambolo
scrivi
\usepackage{array}
\newcolumntype{R}{@{}>{{}}r<{{}}}
e poi
\begin{align*}
\min z = {}
&
\begin{array}[t]{RRRRR}
\vett{c}{N}\vett{x}{N}& + & \vett{c}{B}\vett{x}{B} & + & d \\
\matr{N}\vett{x}{N} & + & \matr{B}\vett{x}{B} & = & \matr{b} \\
\vett{x}{n}\rlap{,} &   & \vett{x}{B}         &\geq& 0
\end{array}
\end{align*}
L'idea di \textsc{#2} è piuttosto balzana: meglio
\newcommand{\vett}[3][]{\matr{#2}^{#1}_\textup{#3}}
Così hai (1) che il comando \vett è definito in termini di
\matr e non occorre ricordarsi di cambiare anche questo se
per caso decidi di modificare la resa di \matr; (2) indichi
le variabili con il loro nome.
Se non devi mai mettere esponenti alle tue variabili che
indichi con \vett, puoi usare la definizione più semplice
\newcommand{\vett}[2]{\matr{#1}^{}_\textup{#2}}
L'esponente vuoto serve per abbassare il pedice. Se usi esponenti,
con l'altra definizione li indichi come argomento opzionale:
\vett[2]{x}{N}
Tuttavia propenderei per un altro modo di rendere il tutto, non
vedo alcuna necessità di allineare verticalmente le variabili x.
\begin{align*}
\min z = {}
&\vett{c}{N}\vett{x}{N} + \vett{c}{B}\vett{x}{B} + d \\[1ex]
&\matr{N}\vett{x}{N} + \matr{B}\vett{x}{B} = \matr{b} \\
&\vett{x}{N},\vett{x}{B} \geq 0
\end{align*}
Normalmente i punti di allineamento si mettono prima di un
simbolo di relazione; in questo caso si mette dopo, ma allora
bisogna ricordarsi di un gruppo vuoto per mantenere la
spaziatura corretta dopo il simbolo =.
Ciao
Enrico


...non la vedo neppure io, ma avevo semplicemente voglia di
sperimentare.

 sperimentare.
You're welcome, direbbero gli americani.
Ciao
Enrico