Newsgroup: it.comp.software.tex
Titolo: Chisura di un insieme

Stavo cercando di indicare la chiusura di un insieme col simbolo
standard, una barra orizzontale al di sopra dell'insieme, e per farlo ho
scritto ciò:
Poiché $D \subset \bar{B( 0, M )}$, sarà vero che $D^n$ è unione finita
di insiemi di diametro $< \epsilon$.
Però non ottengo il risultato voluto: la barra è piccola, e sta più o
meno a metà. Come posso risolvere?
Grazie
PS: in realtà ho scritto questo:
\providecommand{\ball}[2]{\ensuremath{B_( #1, #2 )}}
\providecommand{\closure}[1]{\ensuremath{\bar{#1}}}
...
Poiché $D \subset \closure{\ball{0}{M}}$, sarà vero che $D^n$ è unione
finita di insiemi di diametro $< \epsilon$.
ma il risultato chiaramente non cambia.
-- 
Andrea Bergia

 scrive:

Sconsiglio l'uso del comando \ensuremath; non costa tanta fatica in più
scrivere $\ball{0}{r}$ invece di \ball{0}{r}. Il primo modo tiene le
formule al loro posto e rende più facile trovarle in caso di bisogno.
Anche \providecommand non andrebbe usato: se per caso carichi un
pacchetto che definisce il comando \pippo e tu dai
\providecommand{\pippo}{...}
potresti avere effetti alquanto indesiderati. :-o
Quanto al tuo problema, la "soluzione" è \overline, con una
piccola correzione:
\newcommand{\closure}[2][3]{%
  {}\mkern#1mu \overline{\mkern-#1mu #2 \mkern-#1mu}\mkern#1mu {}}
Se dai \overline{\ball{0}{r}} il risultato non è bellissimo; con
\closure definito così diventa meglio. C'è un argomento opzionale
a \closure per "allungare" o "rimpicciolire" la barra orizzontale:
prova a giudicare fra
\closure{\ball{0}{r}}
\closure[0]{\ball{0}{r}}
\closure[-1]{\ball{0}{r}}
In certe situazioni, l'uso di questo argomento opzionale potrebbe 
essere vantaggioso. Aggiusta il "3" dato come default come più ti 
aggrada.
Il trucco è di far apparire la formula da sovralineare "più stretta"
di quanto non sia in realtà (con i due kern negativi), ma aggiungendo
a lato due kern per compensare. I gruppi vuoti {} all'inizio e alla fine
servono per non far "sparire" i kern positivi a inizio o fine riga.
Non mi pare tanto bello "B_{(0,r)}", preferisco un semplice "B(0,r)". 
Ma, visto che ti sei definito un comando astratto, puoi cambiare
quando ti pare. :-)
Ciao
Enrico

 ...
a questo proposito qualche anno fa con l'aiuto di Donald Arseneau
avevo elaborato qualcosa del genere; in sostanza si misura l'ampiezza
di cio' che vuoi soprallineato, e si usa quella dimensione come
lunghezza della barra.  il tutto funziona anche in subscripts e
superscripts.  eccolo qui:
% "Right length and right position" overlined symbols: works for
% symbols used in subscripts, superscripts or sizes different from
% textstyle.
%
% - A first command \ob[size]{symbol} is intended for use in textstyle
%   and displaystyle sizes only, both in math and text mode: the first
%   parameter (the height of the overbar line) is optional and
%   defaults to 0.48 pt; the second parameter is the (math) symbol to
%   be overlined.
% - A second command \overbar{symbol} is intended for use in math mode
%   only; and scales appropriately for every text size and in sub- and
%   superscripts.
\newcommand{\ob}[2][0.48pt]{\setbox0=\hbox{\ensuremath{#2}}%
  \dimen0=\ht0\advance\dimen0 by0.2ex%
  \dimen3=0.17\ht0%
  \dimen1=\wd0\advance\dimen1 by-\dimen3\advance\dimen1 by-0.02em%
  \dimen2=\dimen1\advance\dimen2 by-0.03em%
  \box0%
  \kern-\dimen1\hbox{\rule[\dimen0]{\dimen2}{#1}}%
}
\newcommand{\overbar}[1]{{\mathchoice
  {\displaystyle\ob{\displaystyle#1}}%
  {\textstyle\ob{\textstyle#1}}%
  {\scriptstyle\ob[0.36pt]{\scriptstyle#1}}%
  {\scriptscriptstyle\ob[0.24pt]{\scriptscriptstyle#1}}}}
Esempio (dal mio libro):
        \overbar{\mathcal{R}}_k
        \overbar{E}
        ...
-- 
|   Maurizio Loreti -- 
ROT13:ybe...@cq.vasa.vg
   |  (@_
| Un. of Padova, Dept. of Physics, Padova, Italy |  //\
|     
http://www.pd.infn.it/~loreti/mlo.html
     |  V_/_

 scrive:

In effetti non andrebbe la correzione dopo:
\newcommand{\closure}[2][3]{%
  {}\mkern#1mu \overline{\mkern-#1mu #2}}
Questo comando funziona da sé anche negli apici e indici. Non mi
pare che il risultato sia cosě diverso dal vostro. Ma naturalmente
non ho molti test.
Di fatto la vostra macro č un po' difettosa:
\setbox0=\hbox{$\closure{A}$}
\showthe\wd0
\setbox0=\hbox{$A$}
\showthe\wd0
\setbox0=\hbox{$\overbar{A}$}
\showthe\wd0
Risultati: 7.50002pt, 7.50002pt e 7.20003pt.
La vostra macro si mangia 0.3pt. :-o
Ciao
Enrico

 quando ti pare. :-)
Era un errore di battitura, infatti :-) 
Grazie mille
-- 
Andrea Bergia

 >   {}\mkern#1mu \overline{\mkern-#1mu #2 \mkern-#1mu}\mkern#1mu {}}
Modificalo:
\newcommand{\closure}[2][3]{{}\mkern#1mu \overline{\mkern-#1mu #2}}
Il secondo kern non ci va proprio. Vedi la mia risposta al messaggio
di Maurizio.
Ciao
Enrico