- Questo topic ha 11 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 18 anni, 2 mesi fa da
warsaw.
-
CreatoreTopic
-
21 Giugno 2008 alle 7:18 #24979::
Ciao a tutti, questa è proprio una finezza da ossessivi. Quale delle seguenti possibilità è la migliore?
`Tizio, Caio, \dots sono nomi fittizi.Tizio, Caio, \dots{} sono nomi fittizi.
Tizio, Caio, \dots\unkern{} sono nomi fittizi.`
E in questo caso, invece?
`Parlammo di Tizio, Caio, \dots Poi cambiammo discorso.Parlammo di Tizio, Caio, \dots{} Poi cambiammo discorso.
Parlammo di Tizio, Caio, \dots\unkern{} Poi cambiammo discorso.`
E in questo?
`Parlammo molto (di Tizio, Caio, \dots). Poi cambiammo discorso.Parlammo molto (di Tizio, Caio, \dots\unkern). Poi cambiammo discorso.
`
In tutti questi casi, penso che il risultato migliore si ottenga con l’ultima riga.Che ne dite?
Ammesso (ma non concesso) che quella sia la soluzione migliore, resta il fatto che quel
`\dots\unkern{}`
e quel
`\dots\unkern`
da scrivere sono molto scomodi. Il pacchetto ellipsis sarebbe quello che ci vuole, se non che… come emerso in una precedente discussione, questo pacchetto confligge con amsmath, che ridefinisce \dots in modo da renderlo sensibile al contesto: con amsmath,
`$a_1+\dots+a_n$`
dà punti ellittici diversi da
`$a_1, dots, $a_n$`Se la pensate come me (cioè che la spaziatura predefinita di LaTeX attorno ai punti ellittici sia insoddisfacente), potrei scrivere all’autore del pacchetto per renderlo compatibile con amsmath.
Che ne dite?
L.
-
CreatoreTopic
-
AutoreRisposte
-
-
21 Giugno 2008 alle 14:21 #24980::
Ecco, mi è venuta in mente una (mezza) idea. Si potrebbe dire a LaTeX, “quando sei in modo matematico, usa la definizione di \dots data da amsmath, mentre quando sei in modalità testuale, usa quella data da ellipsis”?Si tratta di una costruzione fattibile?
(Ho spulciato il codice di amsmath.sty: la definizione di \dots è davvero impressionante…)
Grazie mille,
L.P.
-
22 Giugno 2008 alle 9:09 #24981::
Ecco, mi è venuta in mente una (mezza) idea. Si potrebbe dire a LaTeX, “quando sei in modo matematico, usa la definizione di \dots data da amsmath, mentre quando sei in modalità testuale, usa quella data da ellipsis”?
Si tratta di una costruzione fattibile?
(Ho spulciato il codice di amsmath.sty: la definizione di \dots è davvero impressionante…)
Grazie mille,
L.P.Bhè… credo che si potrebbe fare una cosa del genere:
`
\usepackage{ellipsis}
\makeatletter
\let\ellipsis@dots\dots
\makeatother
\usepackage{amsmath}
\makeatletter
\let\ams@math@dots\dots
\renewcommand\dots{\ifmmode \expandafter\ams@math@dots\else \expandafter\ellipsis@dots\fi}
\makeatother
`(Credo) che dovrebbe andare, anche se sei vincolato a inserire questo codice tra il caricamento di ellipsis e quello di amsmath. (Spero di non aver detto tante castronerie! :d)
Ciao, Daniele.
-
22 Giugno 2008 alle 10:25 #24982::
Ho provato, ma non funziona.
`\documentclass{article}\usepackage{ellipsis}
\makeatletter
\let\ellipsis@dots\dots
\makeatother\usepackage{amsmath}
\makeatletter
\let\ams@math@dots\dots
\renewcommand\dots{\ifmmode \expandafter\ams@math@dots\else \expandafter\ellipsis@dots\fi}
\makeatother\begin{document}
$a+\dots+b$ $a,b,\dots$
\end{document}`
Come vedi, i punti ellittici in modo matematico non sono sensibili al contesto.In effetti, la convivenza tra i due pacchetti (così come sono) mi pare ardua, visto che danno due definizioni diverse (e verosimilmente incompatibili) dello stesso comando (\dots).
Un vero peccato, perché la spaziatura predefinita di LaTeX attorno ai punti ellittici è insoddisfacente, si tratta di un (piccolo, ma fastidioso) bug: questo lo spiega -in modo che trovo assolutamente convincente- la brevissima documentazione di ellipsis. (Fra l’altro, al pacchetto ellipsis ha contribuito addirittura Frank Mittelbach.)
Ho scritto all’autore di ellipsis evidenziandogli il problema, vi terrò aggiornati se ci saranno sviluppi.
Vediamo se qualcuno sul forum ha qualche idea. Credo che si tratti in problemino intrigante, un esercizio di programmazione che se risolto bene può dare soddisfazioni…
Buona domenica,
L.P.S. In mancanza, di meglio mi rassegnerò a usare tutti quegli `\unkern`
😐
-
23 Giugno 2008 alle 7:32 #24983
-
23 Giugno 2008 alle 21:30 #24984
-
23 Giugno 2008 alle 22:42 #24985::
Ecco, mi è venuta in mente una (mezza) idea. Si potrebbe dire a LaTeX, “quando sei in modo matematico, usa la definizione di \dots data da amsmath, mentre quando sei in modalità testuale, usa quella data da ellipsis”?
Si tratta di una costruzione fattibile?
(Ho spulciato il codice di amsmath.sty: la definizione di \dots è davvero impressionante…)
È esattamente quello che succede: la definizione di \dots data da amsmath è
`\DeclareRobustCommand{\dots}{%
\ifmmode \expandafter\mdots@\else \expandafter\textellipsis \fi
}`
che quindi in modo testo usa la ridefinizione di \textellipsis data dal pacchetto ellipsis. L’unico problema è che il pacchetto ellipsis pospone la ridefinizione di \dots in \AtBeginDocument. Soluzione
`\usepackage{ellipsis}
\usepackage{amsmath}
\makeatletter
\@xp\let\csname ams@dots\@xp\endcsname\csname dots \endcsname
\AtBeginDocument{\@xp\def\csname dots \@xp\endcsname\@xp{\ams@dots}}
\makeatother`
Spiegazione: \dots è definito da entrambi i pacchetti con \DeclareRobustCommand, quindi il vero comando da ridefinire è “\dots ” con lo spazio! Quindi definisco \ams@dots come “\dots ” ridefinito da amsmath; poi dico che al \begin{document} venga ridefinito “\dots ” come l’espansione di primo livello di \ams@dots.Facile, no?
Naturalmente sarebbe più semplice scrivere
`\usepackage{ellipsis}
\usepackage{amsmath}
\makeatletter
\DeclareRobustCommand{\dots}{%
\ifmmode \@xp\mdots@\else \@xp\textellipsis \fi
}
\makeatother`
solo che questo potrebbe “rompersi” qualora l’AMS decidesse di cambiare la definizione di \dots.L’autore di ellipsis potrebbe inserire un test prima di ridefinire \dots, prevedendo la possibilità che sia stato caricato amsmath. In questo modo sarebbe irrilevante l’ordine di caricamento.
Il pacchetto mi ha però sempre dato qualche perplessità e rimango del parere che una costruzione come […] abbia bisogno di una sua definizione a parte:
`\def\omissis{[\dots\unkern]}`
Ciao
Enrico
-
24 Giugno 2008 alle 11:16 #24986::
Per Warsaw: per convincerti che \dots e \ldots non sono la stessa cosa, basta che compili questo esempio:
`\documentclass{minimal}
\usepackage{amsmath}
\begin{document}
$a+\dots+b$
$a+\ldots+b$
\end{document}
`
Quanto all’idea di ridefinire \dots come \dots\unkern, non funziona: lo spazietto che segue i punti ellittici a volte ci va, a volte no. Per esempio:
`Che ne pensi di Tizio, Caio, \dots? % Qui lo spazietto ci va
Parlammo (di Tizio, Caio, \dots). % Qui lo spazietto non ci va
`
Come scritto nella documentazione di ellipsis, il (piccolissimo!) bug di LaTeX sta nel mettere *sempre* quello spazietto, anziché limitarsi ad aggiungerlo solo nelle occasioni in cui è necessario.Naturalmente, concordo con Enrico sull’utilità di definire un apposito comando
`\newcommand{\omissis}{[\dots\negthinspace]}
`Tuttavia ciò non risolve tutti i problemi relativi alla spaziatura dei punti ellittici. Per esempio, se non si usa il pacchetto ellipsis bisognerebbe scrivere
`Parlammo (di Tizio, Caio, \dots\unkern).
`che è un po’ scomodo (soprattutto perché nel documento è facile che qualche \unkern scappi, producendo risultati difformi).La correzione suggerita da Enrico funziona molto bene 😀 (grazie mille egreg9, sei una sicurezza!), per mettere d’accordo ellipsis con amsmath. Ecco, a dirla tutta qualche problemino si potrebbe presentare comunque. Per esempio, se si ridefinisce la spaziatura fra i puntini con il comando
`\renewcommand{\ellipsisgap}{0.1em}`
ciò ha effetto sui punti in modo testuale, ma non in modo matematico.Se Enrico non ha altre aggiunte da fare, girerò la sua “bug fix” all’autore di ellipsis, che mi ha detto di essere disposto a correggere il pacchetto.
Si tratta di finezze, ovvio, ma ad ellipsis ci sono affezionato: i bug di LaTeX che conosco si contano sulla punta delle dita di una mano, e quello (pur minuscolo) a cui rimedia ellipsis è il primo in cui mi sono imbattuto nella mia esperienza di utente di LaTeX…
Ciao,
L.
-
24 Giugno 2008 alle 11:56 #24987::
Per Warsaw: per convincerti che \dots e \ldots non sono la stessa cosa, basta che compili questo esempio:
`\documentclass{minimal}
\usepackage{amsmath}
\begin{document}
$a+\dots+b$
$a+\ldots+b$
\end{document}
`
Quanto all’idea di ridefinire \dots come \dots\unkern, non funziona: lo spazietto che segue i punti ellittici a volte ci va, a volte no. Per esempio:
`Che ne pensi di Tizio, Caio, \dots? % Qui lo spazietto ci va
Parlammo (di Tizio, Caio, \dots). % Qui lo spazietto non ci va
`
Come scritto nella documentazione di ellipsis, il (piccolissimo!) bug di LaTeX sta nel mettere *sempre* quello spazietto, anziché limitarsi ad aggiungerlo solo nelle occasioni in cui è necessario.Naturalmente, concordo con Enrico sull’utilità di definire un apposito comando
`\newcommand{\omissis}{[\dots\negthinspace]}
`Tuttavia ciò non risolve tutti i problemi relativi alla spaziatura dei punti ellittici. Per esempio, se non si usa il pacchetto ellipsis bisognerebbe scrivere
`Parlammo (di Tizio, Caio, \dots\unkern).
`che è un po’ scomodo (soprattutto perché nel documento è facile che qualche \unkern scappi, producendo risultati difformi).La correzione suggerita da Enrico funziona molto bene 😀 (grazie mille egreg9, sei una sicurezza!), per mettere d’accordo ellipsis con amsmath. Ecco, a dirla tutta qualche problemino si potrebbe presentare comunque. Per esempio, se si ridefinisce la spaziatura fra i puntini con il comando
`\renewcommand{\ellipsisgap}{0.1em}`
ciò ha effetto sui punti in modo testuale, ma non in modo matematico.Se Enrico non ha altre aggiunte da fare, girerò la sua “bug fix” all’autore di ellipsis, che mi ha detto di essere disposto a correggere il pacchetto.
Si tratta di finezze, ovvio, ma ad ellipsis ci sono affezionato: i bug di LaTeX che conosco si contano sulla punta delle dita di una mano, e quello (pur minuscolo) a cui rimedia ellipsis è il primo in cui mi sono imbattuto nella mia esperienza di utente di LaTeX…
Le tradizioni tipografiche divergono sull’uso dei puntini; in quella inglese e americana sono spaziati, in quella francese sono ravvicinati. Ho l’impressione che, come accade spesso, in Italia si segua ora l’una ora l’altra convenzione.
L’importante è seguirne una in ciascun documento. Personalmente preferisco quella inglese, con i puntini spaziati e in genere cerco di usarli solo dove sono necessari (nelle formule), evitandoli nel testo normale. Posso capire quelli tra parentesi quadre per indicare un’omissione da una citazione; detesto quelli “sospensivi”. Detesto anche “ecc.”, ovviamente, come tutte le abbreviazioni (come p. es., cf., v. e simili), limitandomi a “p.” per “pagina” se seguita da un numero e poche altre fra cui quelle tradizionali dei titoli onorifici o professionali, che però tenderei a omettere.
Quanto alle differenze fra puntini fuori dal modo matematico e dentro, bisogna osservare che, in definitiva, amsmath usa certi comandi che sono scelti in modo complicato, ma sono in tutto due: quelli per i puntini centrati sull’asse delle formule e quelli bassi. “Basta” modificare quelli.
Ciao
Enrico
-
24 Giugno 2008 alle 14:08 #24988::
Per Warsaw: per convincerti che \dots e \ldots non sono la stessa cosa, basta che compili questo esempio:
`\documentclass{minimal}
\usepackage{amsmath}
\begin{document}
$a+\dots+b$
$a+\ldots+b$
\end{document}
`
Quanto all’idea di ridefinire \dots come \dots\unkern, non funziona: lo spazietto che segue i punti ellittici a volte ci va, a volte no. Per esempio:
`Che ne pensi di Tizio, Caio, \dots? % Qui lo spazietto ci va
Parlammo (di Tizio, Caio, \dots). % Qui lo spazietto non ci va
`
Come scritto nella documentazione di ellipsis, il (piccolissimo!) bug di LaTeX sta nel mettere *sempre* quello spazietto, anziché limitarsi ad aggiungerlo solo nelle occasioni in cui è necessario.Naturalmente, concordo con Enrico sull’utilità di definire un apposito comando
`\newcommand{\omissis}{[\dots\negthinspace]}
`Tuttavia ciò non risolve tutti i problemi relativi alla spaziatura dei punti ellittici. Per esempio, se non si usa il pacchetto ellipsis bisognerebbe scrivere
`Parlammo (di Tizio, Caio, \dots\unkern).
`che è un po’ scomodo (soprattutto perché nel documento è facile che qualche \unkern scappi, producendo risultati difformi).Grazie, ora è abbastanza chiaro. Non uso LaTeX in modo matematico, non mi ero mai imbattuto nel comando \dots, ho sempre usato \ldots e mai a fine frase, ma solo tra parentesi quadre, per indicare un omissis.
Comunque non proponevo di ridefinire \dots ma di creare un nuovo comando\Dots
`\newcommand{\Dots}{\dots\unkern{ }}`
da utilizzare quando serve. Più che altro mi interessava capire se il mio suggerimento è una strada percorribile o meno, o meglio, se la creazione di nuovi comandi in generale sia una pratica da seguire o da non utilizzare eccessivamente.
-
25 Giugno 2008 alle 18:05 #24989::
Più che altro mi interessava capire se il mio suggerimento è una strada percorribile o meno, o meglio, se la creazione di nuovi comandi in generale sia una pratica da seguire o da non utilizzare eccessivamente.
Per Warsaw: definire nuovi comandi può essere utile o dannoso, a seconda dei casi.
Per esempio (classico), se devi scrivere un libro di botanica e vuoi che tutti i nomi latini delle piante appaiano in corsivo, è utile definire un nuovo comando che stampa il suo argomento in corsivo: in questo modo, se l’editore dovesse successivamente chiederti di comporre i nomi latini in neretto e non in corsivo, basterebbe una sola modifica al documento.
Ci sono casi, invece, in cui definire nuovi comandi non solo è inutile, ma può finire con l’intorbidare le acque. Un comando come
`\newcommand{\a}{\alpha}
`
permette di risparmiare qualche carattere, ma rischia di rendere il sorgente poco leggibile (soprattutto se ci sono molti comandi di quel tipo), e anche poco portabile. Mi è capitato di dover raccogliere in un unico documento lavori scritti da autori diversi; se un autore definisce
`\newcommand{\a}{\mathcal{A}}`
ed un altro dà di \a la definizione precedente, i due preamboli sono incompatibili e bisogna metterci mano.Le tradizioni tipografiche divergono sull’uso dei puntini; in quella inglese e americana sono spaziati, in quella francese sono ravvicinati.
[…]
Quanto alle differenze fra puntini fuori dal modo matematico e dentro, bisogna osservare che, in definitiva, amsmath usa certi comandi che sono scelti in modo complicato, ma sono in tutto due: quelli per i puntini centrati sull’asse delle formule e quelli bassi. “Basta” modificare quelli.
Quello che hai esposto, Enrico, è un motivo in più a favore della possibilità di ridefinire la spaziatura tra i puntini intervenendo su \ellipsisgap. Purtroppo, anche dopo la tua modifica, intervenire su \ellipsisgapo ha effetto solo sulla spaziatura dei punti in modo testuale, ma non matematico, e questo non è il massimo.
Ho parlato con l’autore di ellipsis, che dice di non aver (più) tempo per rimaneggiare il pacchetto. Uffa. Perché se si trovasse il modo (leggi: se tu trovassi il modo…) di correggere anche questo problema, mi sentirei senz’altro di consigliare il pacchetto ellipsis (integrato della tua modifica). Stando così le cose, invece, non mi senitrei di consigliare un pacchetto (per certi aspetti) “difettato”. Un vero peccato.
Grazie mille, comunque…
A presto,
L.
-
25 Giugno 2008 alle 19:05 #24990::
Per Warsaw: definire nuovi comandi può essere utile o dannoso, a seconda dei casi.
Per esempio (classico), se devi scrivere un libro di botanica e vuoi che tutti i nomi latini delle piante appaiano in corsivo, è utile definire un nuovo comando che stampa il suo argomento in corsivo: in questo modo, se l’editore dovesse successivamente chiederti di comporre i nomi latini in neretto e non in corsivo, basterebbe una sola modifica al documento.
Ci sono casi, invece, in cui definire nuovi comandi non solo è inutile, ma può finire con l’intorbidare le acque. Un comando come
`\newcommand{\a}{\alpha}
`
permette di risparmiare qualche carattere, ma rischia di rendere il sorgente poco leggibile (soprattutto se ci sono molti comandi di quel tipo), e anche poco portabile. Mi è capitato di dover raccogliere in un unico documento lavori scritti da autori diversi; se un autore definisce
`\newcommand{\a}{\mathcal{A}}`
ed un altro dà di \a la definizione precedente, i due preamboli sono incompatibili e bisogna metterci mano.tutto chiaro, grazie mille.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.