- Questo topic ha 27 risposte, 8 partecipanti ed è stato aggiornato l'ultima volta 15 anni fa da
francesco.biccari.
-
CreatoreTopic
-
24 Agosto 2011 alle 9:01 #62812
-
CreatoreTopic
-
AutoreRisposte
-
-
24 Agosto 2011 alle 10:19 #62813
-
24 Agosto 2011 alle 11:24 #62814
-
24 Agosto 2011 alle 15:32 #62815::
Per Bacco! Non hai mai sentito parlare del pacchetto amsmath che ti mette a disposizione una infinità di modi per rendere i sistemi? da terminale da’ il comando texdoc amsmath e leggi bene le istruzioni.Certo qualunque guida te lo avrebbe suggerito e ti avrebbe anche spiegato che con l’ambiente array i contenuti delle celle sono composti in quel tipo di modo particolare di comporre la matematica che TeX usa quando deve mettere una espressione in linea con il testo. Anche se il sistema è in display, ogni cella è come se fosse in mezzo al testo. Capisci che in linea con il testo vuol dire che TeX fa ogni sforzo possibile per schiacciare le formule, al costo di renderle del 30% più piccole.
-
24 Agosto 2011 alle 18:01 #62816
-
24 Agosto 2011 alle 19:51 #62817::
Sì, lo so, ma se hai caricato amsmath perché non componi il tuo sistema con:
`
\begin{align}
min_{x} Z_{5} = -\mu \overline{R_{P}} + \sigma_{P}^{2} &= -\mu \sum_{i=1}^{n+1} x_{i} \alpha_{i} + \sum_{i=1}^{n+1} x_{i}^{2} Q_{i} \\
\text{con vincoli} \\ % questa che equazione è?
\sum_{i=1}^{n} x_{i} \beta_{i} &= x_{n+1} = \beta_{P} \\
\sum_{i=1}^{n} x_{i} – 1 &= 0 \\
x_{i} &\geq 0
\end{align}
`
e perché non provi a spezzare al prima equazione molto lunga, che probabilmente può apparire come tre o quattro equazioni puché su aumenti il numero delle variabili e, quindi, delle incognite?Poi puoi usare:
`
\begin{equation}\label{eq:sistema}
\begin{subequations}
…
\end{subequations}
\end{equation}
`così hai tutto il sistema numerato con un solo numero e ogni equazione numerata come (10,3a), 10.3b), eccetera.
-
25 Agosto 2011 alle 5:19 #62818::
OldClaudio” post=61790Per Bacco! Non hai mai sentito parlare del pacchetto amsmath che ti mette a disposizione una infinità di modi per rendere i sistemi? da terminale da’ il comando texdoc amsmath e leggi bene le istruzioni.
Certo qualunque guida te lo avrebbe suggerito e ti avrebbe anche spiegato che con l’ambiente array i contenuti delle celle sono composti in quel tipo di modo particolare di comporre la matematica che TeX usa quando deve mettere una espressione in linea con il testo. Anche se il sistema è in display, ogni cella è come se fosse in mezzo al testo. Capisci che in linea con il testo vuol dire che TeX fa ogni sforzo possibile per schiacciare le formule, al costo di renderle del 30% più piccole.
Che sappia io, né LaTeX né amsmath definiscono un ambeinte per i sistemi. Ho sempre trovato questa lacuna abbastanza incredibile, ma tant’è.
Nell’Arte, infatti, consiglio di usare quell’ambiente ad hoc “sistema”, in mancanza di alternative “ufficiali”.
Usare subequations non è una vera soluziione: manca la graffa a sinistra che abbraccia tutte le equazioni.
Usare “cases” (come qualcuno fa) non è una buona soluzione: innanzitutto quell’ambiente è stato fatto per altro, come suggerisce il nome (scelte fatte “per casi”). Se si hanno due sistemi fatti coin cases affiancati, la spaziatura viene sbagliata.
Davvero, non ho mai capito il perché di questa lacuna: negli Statu Uniti non usano la graffa per i sistemi?
L.
-
25 Agosto 2011 alle 10:51 #62819::
OldClaudio” post=61796Sì, lo so, ma se hai caricato amsmath perché non componi il tuo sistema con:
`
\begin{align}
min_{x} Z_{5} = -\mu \overline{R_{P}} + \sigma_{P}^{2} &= -\mu \sum_{i=1}^{n+1} x_{i} \alpha_{i} + \sum_{i=1}^{n+1} x_{i}^{2} Q_{i} \\
\text{con vincoli} \\ % questa che equazione è?
\sum_{i=1}^{n} x_{i} \beta_{i} &= x_{n+1} = \beta_{P} \\
\sum_{i=1}^{n} x_{i} – 1 &= 0 \\
x_{i} &\geq 0
\end{align}
`Sto scrivendo in Latex un libro di matematica finanziaria per un mio professore, e le formule le vorrei rendere come in originale, con questo ambiente non viene la graffa o sbaglio?
Le formule non le voglio numerate 🙂
@Lorenzo.Pantieri, lei ha qualche suggerimento per poterli rendere meglio, con più spaziatura tra le equazioni?
Grazie mille
-
25 Agosto 2011 alle 11:16 #62820::
`\[
\min_{x} Z_{5} = -\mu \overline{R_{P}} + \sigma_{P}^{2} = -\mu \sum_{i=1}^{n+1} x_{i} \alpha_{i} + \sum_{i=1}^{n+1} x_{i}^{2} Q_{i}
\]
con i vincoli
\[
\begin{sistema}
\displaystyle\sum_{i=1}^{n} x_{i} \beta_{i} = x_{n+1} = \beta_{P} \\[2.5ex]
\displaystyle\sum_{i=1}^{n} x_{i} – 1 = 0 \\[2.5ex]
x_{i} \ge 0
\end{sistema}
\]
`
-
25 Agosto 2011 alle 11:18 #62821::
La graffa, secondo me è un impiccio, ma se il sistema non contiene proppo equazioni e non le si vuole numerate né singolarmente né come sistema ci sono altri modo che ams consente e che permettono di definire un nuovo ambiente sistema come meglio si crede; senza nuovi ambienti io farei così (no numero + graffa)
`
\begin(equation*)
\left\{
\begin{aligned}
… & … \\
… & …
\end{aligned}
\right.
\end{equation*}
`
-
25 Agosto 2011 alle 11:21 #62822
-
25 Agosto 2011 alle 15:36 #62823::
Grazie a Claudio per l’alternativa. Resta il fatto che anche quella è una cosa “manuale”: si apre la graffa con \left\{ e la si chiede con una graffa invisibile \right. Questi sono esoterismi.Il mio “debole parere” è che, così come esistono splendidi ambienti per le matrici (pmatrix e compagnia), sarebbe utile che amsmath (pre)definisse un ambiente per i sistemi, evitando all’utente la fatica di farlo “a mano”.
Ciao,
L.
-
25 Agosto 2011 alle 19:11 #62824::
Lorenzo, perché dici così.Certo saremmo tutti contenti se ci fossero una mezza dozzina di ambienti (sistema, sistema*, Sistema, Sistema*, ecc.) che facessero nelle varie combinazioni tutti i tipi di sistemi possibili, nello stesso modo con il quale amsmath ci ha messo a disposizione una mezza dozzina di ambienti di allineamento, una mezza dozzina di diversi tipi di matrici delimitate da delimitatori diversi.
Ma in fondo il bello di LaTeX è che fa tante belle cose da solo, ma anche ci mette a disposizione diversi meccanismi di assemblare i vari pezzettini di quel particolare LEGO formato dai pezzettini di comandi primitivi, di comandi derivati, di macro e ambienti già fatti. A me è sempre piaciuto giocare con i giochi di costruzioni, dal Meccano al LEGO, dai puzzle in legno per giocare con i miei bambini, ai puzzle di 5000 pezzi per fare cose che poi sarebbe dispiaciuto disfare dalle varie torri di Hanoi a giochi più complessi. Ora che sono vecchio, il mio gioco preferito è LaTeX, mi piace tanto così com’è che sto rimettendo in beamer un corso di LaTeX scritto da un collega portoghese che mi ha chiesto di dargli una mano; il risultato, oltre a dargli una mano, è che sto imparando a scrivere in portoghese; ma dove lo trovi un gioco che ti permetta di aprire così la mente?
Scusate tutti l’OT
Ciao
Claudio
-
26 Agosto 2011 alle 7:20 #62825::
fpolle” post=61778Buongiorno, nella compilazione di questo sistema sto avendo dei problemi: lo rende piccolo e mal leggibile..
`\[
\begin{sistema}
min_{x} Z_{5} = -\mu \overline{R_{P}} + \sigma_{P}^{2} = -\mu \sum_{i=1}^{n+1} x_{i} \alpha_{i} + \sum_{i=1}^{n+1} x_{i}^{2} Q_{i} \\
\text{con vincoli} \\
\sum_{i=1}^{n} x_{i} \beta_{i} = x_{n+1} = \beta_{P} \\
\sum_{i=1}^{n} x_{i} – 1 = 0 \\
x_{i} \geq 0
\end{sistema}
\]`
qualche suggerimento?Sì. L’ambiente “sistema” che usi è adatto a semplici equazioni senza simboli grandi. Quello che ti serve è, invece, una sua variazione:
`\usepackage{array}
\newenvironment{equazionevincolata}[1][1]
{\renewcommand{\arraystretch}{#1}\left\lbrace\begin{array}{@{}>{\displaystyle}l@{}}}
{\end{array}\right.}`
Puoi usare un argomento facoltativo che aumenta (o diminuisce) la spaziatura fra le righe:
`\[
\begin{equazionevincolata}[2]
\min_{x} Z_{5} = -\mu \overline{R_{P}} + \sigma_{P}^{2} = -\mu \sum_{i=1}^{n+1} x_{i} \alpha_{i} + \sum_{i=1}^{n+1} x_{i}^{2} Q_{i} \\
\text{con vincoli} \\
\sum_{i=1}^{n} x_{i} \beta_{i} = x_{n+1} = \beta_{P} \\
\sum_{i=1}^{n} x_{i} – 1 = 0 \\
x_{i} \geq 0
\end{equazionevincolata}
\]`
Sperimenta il valore da mettere fra parentesi quadre, ma probabilmente non ti servirà.Occhio a “min”: è un operatore già definito, che va scritto \min.
Ciao
Enrico
-
26 Agosto 2011 alle 8:14 #62826::
OldClaudio” post=61829Lorenzo, perché dici così.
Certo saremmo tutti contenti se ci fossero una mezza dozzina di ambienti (sistema, sistema*, Sistema, Sistema*, ecc.) che facessero nelle varie combinazioni tutti i tipi di sistemi possibili, nello stesso modo con il quale amsmath ci ha messo a disposizione una mezza dozzina di ambienti di allineamento, una mezza dozzina di diversi tipi di matrici delimitate da delimitatori diversi.
Ma in fondo il bello di LaTeX è che fa tante belle cose da solo, ma anche ci mette a disposizione diversi meccanismi di assemblare i vari pezzettini di quel particolare LEGO formato dai pezzettini di comandi primitivi, di comandi derivati, di macro e ambienti già fatti. A me è sempre piaciuto giocare con i giochi di costruzioni, dal Meccano al LEGO, dai puzzle in legno per giocare con i miei bambini, ai puzzle di 5000 pezzi per fare cose che poi sarebbe dispiaciuto disfare dalle varie torri di Hanoi a giochi più complessi. Ora che sono vecchio, il mio gioco preferito è LaTeX, mi piace tanto così com’è che sto rimettendo in beamer un corso di LaTeX scritto da un collega portoghese che mi ha chiesto di dargli una mano; il risultato, oltre a dargli una mano, è che sto imparando a scrivere in portoghese; ma dove lo trovi un gioco che ti permetta di aprire così la mente?
Scusate tutti l’OT
Eh eh, che LaTeX ci appassioni, mi pare fuori discussione. 🙂
Poi, ognuno ha i suoi gusti, e la vede a modo suo. Buon segno: LaTeX è come l’arte (con la minuscola, questa volta), impossibile trovare due persone che la vedano allo stesso modo su tutto. È il bello dell’arte, dico bene?
Ora, mi sento viziato e coccolato dagli ambienti (semplici ed eleganti) che amsmath mette a disposizione per scrivere le matrici: matrici con parentesi tonde, quadre, dritte, senza parentesi, matricette: c’è tutto.
Invece sui sistemi niente: neanche un ambiente, devo fare a meno e scrivere incantesimi “di basso livello”: e questa cosa (che, scommetto, tu trovi affascinante) a me non piace, va contro ai miei gusti di “pulizia” del codice.
È il bello di LaTeX, dico bene? 🙂
Ciao,
L.
-
26 Agosto 2011 alle 10:14 #62827::
Ciao a tutti, 🙂io sono d’accordo con Lorenzo.
Quello che penso è che quando ci sono delle alternative c’è scelta. Finché le cose stanno così tutti sono obbligati a fare le cose “a mano”; nel caso che vi fossero degli ambienti predefiniti, chi vuole può comunque continuare a fare le cose “a mano”, chi non vuole usa quegli ambienti. Il fatto di avere a disposizione degli ambienti non limita nessuno, ma consente la scelta a tutti.
A me, per esempio, piacerebbe avere un ambiente predefinito per i sistemi, nel quale la singola equazione, a seconda della lunghezza della stessa, venga suddivisa opportunamente su più righe.
Ciao, 🙂
Marco.
-
26 Agosto 2011 alle 12:36 #62828::
Sono d’accordo con Lorenzo. È incredibile che non ci sia un ambiente per i sistemi di equazioni
che riporti una bella graffa sulla sinistra.A tal proposito ecco il link a una vecchia discussione.
Alla fine proponevo, usando empheq e cases, le seguenti definizioni:
`\usepackage{mathtools}
\usepackage{cases}\newenvironment{system*}%
{\begin{displaymath}\left\lbrace \begin{lgathered}}%
{\end{lgathered} \right. \end{displaymath}\ignorespacesafterend}\newenvironment{system}[1][]%
{\begin{equation}#1\left\lbrace \begin{lgathered}}%
{\end{lgathered} \right. \end{equation}\ignorespacesafterend}\newenvironment{subsystem}[1][]%
{\begin{subnumcases}{#1}}%
{\end{subnumcases}\ignorespacesafterend}
`Ciao ciao.
Fra
-
26 Agosto 2011 alle 12:39 #62829
-
26 Agosto 2011 alle 20:19 #62830::
lorenzo.pantieri” post=61839Chi scrive a quelli di amsmath, che ci regalino un bell’ambiente “system”?
Ciao
L.A te l’onore Lorenzo! tech-support@ams.org.
Ciao ciao.
Fra
-
26 Agosto 2011 alle 20:20 #62831::
Come dice Lorenzo, l’arte è arte e non ci sono due persone che la pensino alla stessa maniera.
Cerco di essere asettico.
Prendo un libro a caso nella mia raccolta di libri di matematica, americano, C.R. Wylie Jr, Advanced Engineering Mathematics, Mac-Graw-Hill Book Co. New York 1960; un po’ vecchiotto, ma rappresenta lo “stile” americano di 50 anni fa, quando le mode, se c’erano, erano strettamente nazionali; non ho trovato un solo sistema con le graffe, ma li ho trovati a pacchetto con un solo numero per l’intero sistema. Questo implica che nell’impaginazione nessun sistema può essere tanto grande da dover essere spezzato in fondo pagina. In effetti i sistemi riportati non sono mai formati da più di tre righe/equazioni, e l’impaginazione non ne soffre.I Italia, quasi sempre, per non dire sempre, i sistemi sono raccolti da una graffa a sinistra e numerati come un’unica entità; anche questi non possono essere spezzati a fine pagina.
incolonnare le colonne con un ambiente align o un ambiente gather permette non solo di numerare le singole equazioni, ma volendo, anche di spezzare un lungo sistema a fondo pagina. Potendo è sempre preferibile non farlo, ma se il sistema contiene una dozzina di equazioni che a loro volta contengono delle sottoespressioni fratte con le frazioni \frac o \dfrac, l’intero sistema potrebbe essere più lungo di una pagina e lo si dovrebbe poter spezzare. Infine, sempre con la possibilità di spezzare amsmath permette di creare sistemi individuati da un solo numero, ma che contiene l’identificazione do ogni singola riga, così da poter commentare nel testo facendo riferimento alla singola espressione: basta usare subsystem.
Nei miei libri ho sempre usato un mio ambiente eqnsystem (sistema di equazioni) in cui potevo gestire la numerazione complessiva e la numerazione parziale; l’avevo scritto prima che nascesse LaTeX2e, quindi non avevo potuto fare altro che usare l’ambiente di LaTeX209 eqnarray, che, come tutti sanno, non ha la spaziatura corretta a cavallo dell’operatore di relazione su cui eseguire l’incolonnamento, e quindi avevo corretto anche quel dettaglio. In ogni caso avevo omesso la graffa e avevo consentito la divisione per un eventuale fine pagina; in effetti avevo anche lunghi sistemi con frazioni, sommatorie e integrali che mi superavano la lunghezza di una pagina.
Quando poi ho dovuto passare alle seconde o terze edizioni, disponendo di LaTeX2e e amsmath ho ridefinito il miei eqnsystem usando i comandi a disposizione, e obbligandomi alla revisione per togliere il secondo & di incolonnamento che gli ambienti di amsmath non vogliono.La mia è stata una soluzione dettata dalla necessità di scrivere “quella” matematica.
Fin qui credo che possiamo essere tutti d’accordo.
Ora veniamo alla pulizia del codice, che è una specialità di LaTeX e csi consegue usando correttamente, in un proprio file .sty, le definizioni necessarie, come propone Francesco. Ora messe quelle definizioni, generate per un’altra necessità particolare, in un proprio file .sty, il file sorgente del proprio documento si mantiene semplice e pulita, con codice chiaro e senza accrocchi.
Accrocchi che, fuori del proprio file .sty, talvolta bisogna usare lo stesso, per esempio quando bisogna spezzare una lunga equazione fra più righe e la graffa di aperura sta nella prima riga, mentre la graffa di chiusura sta nell’ultima riga, e le due graffe devono essere grandi nello stesso modo; \forse usare \bil\{, o \Bigl\{ o \biggl\{ o \Bigg;\{ è un modo pulito di fare le cose? e se nemmeno la più grande delle graffe (aperta o chiusa) è grande abbastanza? Se si vuole mantenere il codice pulito, bisogna definirsi nel proprio .sty opportune macro che rendano automatica la determinazione della grandezza di tali large delimiters, e poi usarle in pulito nel file sorgente del documento.
Concludendo, anche \newcoomand, \renewcoomand, \newenvironment, \renewenvironment sono comandi “puilti” ma quello che si mette dentro alle graffe che racchiudono le definizioni, può essere più o meno pulito o sporco, a seconda delle necessità. La macro servono appunto per nascondere nel file .sty le soluzioni magiche e di alta acrobazia, come gli accrocchi più immondi per trovare il modo di comporre cose strane o difficili.
Allora io non chiederò a quelli della AMS di creare dei comandi per una varietà di sistemi graffati; la American Mathematical Society, potrebbe chiedermi: “Ma a che cosa ti servono?” Come noto, gli americani non sono molto propensi a mettersi nei panni degli altri popoli; singole persone lo fanno, ma la mentalità generale è quella di dire, “noi siamo noi, e gli altri si adattino a noi.”
Ciao
Claudio
-
28 Agosto 2011 alle 8:11 #62832::
Claudio mi ha fatto venire la pulce nell’orecchio:http://en.wikipedia.org/wiki/System_of_linear_equations
http://it.wikipedia.org/wiki/Sistema_di_equazioni_lineariNon è una prova, però è un indizio. L’argomento è lo stesso: i sistemi lineari. Nel sito Wiki italiano la graffa c’è, in quello in inglese la graffa manca. Probabilmente è questo il motivo per cui amsmath non definisce un ambiente ad hoc per i sistemi: negli USA, evidentemente, la graffa si usa poco.
In Italia la graffa si usa sempre (o quasi): i sistemi lineari si fanno nel primo biennio di scuola superiore (ma forse si potrebbero fare anche alle medie), la graffa c’è in tutti i libri che ho visto, ed è un paradosso l’essere costretti a inventarsi un ambiente ad hoc per scriverli.
In ogni caso, ho preso dalla mia libreria un libro di fisica delle particelle, in inglese: c’è un sistema, con la sua brava graffa.
Io dico che vale la pena scrivere a quelli di amsmatn, che definiscano uno o più ambienti per i sistemi: in Europa la graffa si usa sempre (o quasi), negli USA capita di usarla. Mi sembra un buon argomento a favore. Se poi uno preferisce fare a mano, può continuare a farlo, liberissimo.
Ciao,
L.
-
28 Agosto 2011 alle 10:45 #62833::
Guardando anche le altre localizzazioni di Wikipedia vedo che la graffa
si usa in Spagna, Francia, Italia, ma non Germania. La graffa si usa anche
in Cina! 🙂Ho sfogliato un bel po’ di libri di fisica in inglese che ho in casa e in effetti
la graffa non l’ho mai trovata. Cercando su internet ho trovato la graffa in
un unico libro di algebra lineare, Linear Algebra For Dummies! 😀È curioso che in tanti anni mi accorga solo ora che gli inglesi non mettono
la graffa, questo mi fa pensare che in realtà forse non ce n’è poi così bisogno.Sono comunque d’accordo a scrivere a quelli dell’AMS. Però considerei due cose:
1. L’ultimo aggiornamento risale al 2004… questo mi fa essere pessimista.
2. Non possono creare un ambiente system con graffa e basta. Il fatto è che
un americano medio vorrebbe usare tale ambiente per i propri sistemi e si
ritroverebbe con una graffa non voluta. Sulla falsariga degli ambienti per le
matrici servirebbe l’ambiente system e Bsystem.Per quanto riguarda l’apertura dell’ambiente matematico e la numerazione
dovremmo lasciar fare tutto all’utente, senza definire ambienti tipo quelli da me
proposti sopra (system*, system, subsystem, Bsystem*, Bsystem, Bsubsystem)
sia per omogeneità con altri comandi sia per flessibilità.Ciao ciao.
Fra
-
28 Agosto 2011 alle 12:10 #62834::
D’accordo su tutto, Francesco. Peraltro, per inserire le matrici amsmath definisce ambienti per tutti i gusti: con parentesi tonde, quadre, dritte, doppie, senza parentesi, … Non vedo perché non sia possibile fare lo stesso per i sistemi: basterebbe un ambiente “system” senza graffa e uno “bsystem” con graffa.Ciao,
L.
-
29 Agosto 2011 alle 12:44 #62835
-
29 Agosto 2011 alle 16:27 #62836
-
29 Agosto 2011 alle 17:03 #62837::
Secondo il mio modestissimo parere, che=redo che sia meglio che uno usi \newcommand per definirsi il suo modo di comporre i sistemi;Io ritenf=go che in un detrminato documento i sistemi debbano essere composti nella stessa maniera. Se poi quel determinato documento contiene dei sistemi di equazioni matriciali, che riempiono uno spazio verticale molto esteso, è meglio che tutto i sistemi siano senza graffa e siano spezzabile in fondo pagina, mentr e in tutto il documento i sistemi sono di due o tre righe, si può penare di usare le graffe che impediscono di spezzare il sistema i=a fondo pagina.
Certo per un libro destinato alle scuole secondarie superiori un sistema di tre equazioni lineari in tre incognite è il massimo che si possa immaginare, ma in un testo destinato all’università, tre equazioni e tre incognite sono troppo poche e allora le graffe potrebbero essere di troppo.
Ciao
Claudio
-
29 Agosto 2011 alle 17:13 #62838::
lorenzo.pantieri” post=61935
Considererei anche il pacchetto mathtools.
E il pacchetto mathtools che “considereresti”, ce li ha gli ambienti per i sistemi? Io non li ho trovati, ma ho cercato in fretta…
Illuminami, ti prego.
Nel senso che secondo me conviene scrivere agli autori di mathtools. Leggendo la documentazione si capisce che il pacchetto introduce una serie di bugfix del pacchetto amsmath. Deduco che gli autori di quest’ultimo non siano particolarmente attivi. Dunque un nuovo ambiente system potrebbe essere annoverato tra le aggiunte apportate ad amsmath dal pacchetto mathtools (i cui autori sono ben noti).
Ciao,
Agostino
-
29 Agosto 2011 alle 18:34 #62839
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.