- Questo topic ha 19 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 19 anni, 3 mesi fa da
egreg9.
-
CreatoreTopic
-
7 Febbraio 2006 alle 9:31 #7909::
Salve.Dopo aver cercato nel forum e nei vari help non ho capito se si puo’ e come, creare nuovi caratteri dalla sovrapposizione di due. Non nel senso di uno “sopra” l’altro usando stackrel, ma proprio uno che scrive nello stesso spazio dell’altro. Mi spiego meglio: io devo usare una cosa che si chiamerebbe \bigcupdot o \bigudot in ambiente matematico, che e’ il simbolo di unione grande (una grossa U) con un punto nel mezzo. Fra i simboli standard + quelli dell’AMS si trovano questi due:
`
\biguplus
\bigodot
`
una grossa O col punto, e una U con un + in mezzo, ma non la U col punto. Non sono riuscito a trovare alcuna estensione o quant’altro che lo contenga, eppure l’ho visto usare e lo dovrei riprodurre.Qualche suggermimento ?
Grazie anticipatamente
-
CreatoreTopic
-
AutoreRisposte
-
-
7 Febbraio 2006 alle 10:06 #7910
-
7 Febbraio 2006 alle 10:17 #7911::
Grazie innanzitutto per la risposta. Per spiegarmi meglio, a questo link
http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf
a pagina 23 (tabella 47) ci sono due simboli: \bigodot e \biguplus, che sono rispettivamente una grossa o con un punto (tipo \cdot) nel mezzo, e una grossa u con un +. Io vorrei (perche’ non mi accontento mai.. 😉 ) la grossa U con il puntino nel mezzo. Magari se fosse possibile, che non dipendesse dalla dimensione del carattere.Grazie di nuovo.
-
7 Febbraio 2006 alle 10:21 #7912::
Grazie innanzitutto per la risposta. Per spiegarmi meglio, a questo link
http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf
a pagina 23 (tabella 47) ci sono due simboli: \bigodot e \biguplus, che sono rispettivamente una grossa o con un punto (tipo \cdot) nel mezzo, e una grossa u con un +. Io vorrei (perche’ non mi accontento mai.. 😉 ) la grossa U con il puntino nel mezzo. Magari se fosse possibile, che non dipendesse dalla dimensione del carattere.Grazie di nuovo.
Prova con
`\newcommand\bigcupdot{\bigcup\mkern -15.5mu \cdot}`Ciao
Andrea
-
7 Febbraio 2006 alle 10:43 #7913::
Ciao andrea.Purtroppo il puntino non mi viene al centro, ma tutto spostato a sx. Ho fatto anch’io personalmente alcuni tentativi (cambiando il valore dopo \mkern) ma non c’e’ verso di farlo stare al centro: o sta troppo a dx o troppo a sx (non e’ una considerazione politica… :D). Per curiosita’, cos’e’ mkern ? e cambiando la posizione giocando sui “mu”, essa resta indipendente dalla dimensione del carattere ?
Grazie.
Alessio.
-
7 Febbraio 2006 alle 11:27 #7914::
Ciao andrea.
Purtroppo il puntino non mi viene al centro, ma tutto spostato a sx. Ho fatto anch’io personalmente alcuni tentativi (cambiando il valore dopo \mkern) ma non c’e’ verso di farlo stare al centro: o sta troppo a dx o troppo a sx (non e’ una considerazione politica… :D). Per curiosita’, cos’e’ mkern ? e cambiando la posizione giocando sui “mu”, essa resta indipendente dalla dimensione del carattere ?
Grazie.
Alessio.A me nell’ambiente matematico equation e simili il comando precedente funziona benissimo. Se lo vuoi usare nel testo tra i simboli $…$ ti consiglio di farne un altro perché io non conosco altri modi, forse si può mettere qualche comando di riscalamento ma non so come:
`\newcommand\bigcupdottxt{\bigcup\mkern-13mu\cdot}`
e scrivere `testo testo testo $\bigcupdottxt…$ testo testo`
Vedi di mettere le definizioni nel preambolo. Il nome è indicativo se vuoi lo puoi cambiare.Il comando mkern sovrappone due simboli, o meglio sposta il secondo, di una quantità pari al valore che precede mu. Il valore mu non influenza la dimensione del carattere, è una distanza.
Ciao
Andrea
-
7 Febbraio 2006 alle 12:02 #7915::
Purtroppo il puntino non mi viene al centro, ma tutto spostato a sx. Ho fatto anch’io personalmente alcuni tentativi (cambiando il valore dopo \mkern) ma non c’e’ verso di farlo stare al centro: o sta troppo a dx o troppo a sx (non e’ una considerazione politica… :D). Per curiosita’, cos’e’ mkern? e cambiando la posizione giocando sui “mu”, essa resta indipendente dalla dimensione del carattere?
Hai ragione sul “mu”: è un’unità di misura che dipende dai caratteri e quindi puoi usare la stessa definizione in tutti i corpi (10, 11 o 12 punti)
Per fare le cose a modino, ci vuole un po’ più di fatica 😀
`\newcommand{\setbigcupdot}[1]{%
{\bigcup}\mkern -#1mu\hbox to0pt{\hss$\cdot$\hss}\mkern#1mu}
\newcommand{\bigcupdot}{%
\mathop{\mathchoice{\setbigcupdot{10}}{\setbigcupdot{7.5}}{}{}}%
\displaylimits}`
I valori 10 e 7.5 li ho calcolati “a vista”. Si potrebbe fare di meglio, accontentati 😀E non usare quel simbolo come pedice o esponente; se proprio dovessi, calcolati il valore corretto mettendolo nella prima coppia di graffe vuote.
Come funziona? Il primo comando definisce il simbolo, ma lascia spazio per un parametro che ci verrà utile dopo.
(1) Un \bigcup come simbolo ordinario (è tra graffe)
(2) Si “torna indietro” di un po’
(3) Un \cdot in modo che non occupi alcuno spazio
(4) Si va avanti di quanto si era tornati indietroIl secondo comando costruisce effettivamente il simbolo, in modo diverso se siamo in \displaystyle, \textstyle, \scriptstyle o \scriptscriptstyle (non lo costruisco negli ultimi due stili) scegliendo il parametro opportunamente. Dico che è un operatore (\mathop) e che in \displaystyle deve avere i limiti sopra e sotto (\displaylimits)
Ora avviene il miracolo: si può fare tutto senza alcun calcolo!`\newcommand{\bigcupdot}{%
\mathop{%
\vphantom{\bigcup}%
\mathpalette\setbigcupdot\cdot}\displaylimits}
\newcommand{\setbigcupdot}[2]{\ooalign{\hfil$#1\bigcup$\hfil\cr\hfil$#2$\hfil\crcr}}`
Ammira 😆 \mathpalette e \ooalign: sono orgoglioso di me stesso 😀Ciao
Enrico
-
7 Febbraio 2006 alle 12:58 #7916::
Purtroppo il puntino non mi viene al centro, ma tutto spostato a sx. Ho fatto anch’io personalmente alcuni tentativi (cambiando il valore dopo \mkern) ma non c’e’ verso di farlo stare al centro: o sta troppo a dx o troppo a sx (non e’ una considerazione politica… :D). Per curiosita’, cos’e’ mkern? e cambiando la posizione giocando sui “mu”, essa resta indipendente dalla dimensione del carattere?
Hai ragione sul “mu”: è un’unità di misura che dipende dai caratteri e quindi puoi usare la stessa definizione in tutti i corpi (10, 11 o 12 punti)
Per fare le cose a modino, ci vuole un po’ più di fatica 😀
`\newcommand{\setbigcupdot}[1]{%
{\bigcup}\mkern -#1mu\hbox to0pt{\hss$\cdot$\hss}\mkern#1mu}
\newcommand{\bigcupdot}{%
\mathop{\mathchoice{\setbigcupdot{10}}{\setbigcupdot{7.5}}{}{}}%
\displaylimits}`
I valori 10 e 7.5 li ho calcolati “a vista”. Si potrebbe fare di meglio, accontentati 😀E non usare quel simbolo come pedice o esponente; se proprio dovessi, calcolati il valore corretto mettendolo nella prima coppia di graffe vuote.
Come funziona? Il primo comando definisce il simbolo, ma lascia spazio per un parametro che ci verrà utile dopo.
(1) Un \bigcup come simbolo ordinario (è tra graffe)
(2) Si “torna indietro” di un po’
(3) Un \cdot in modo che non occupi alcuno spazio
(4) Si va avanti di quanto si era tornati indietroIl secondo comando costruisce effettivamente il simbolo, in modo diverso se siamo in \displaystyle, \textstyle, \scriptstyle o \scriptscriptstyle (non lo costruisco negli ultimi due stili) scegliendo il parametro opportunamente. Dico che è un operatore (\mathop) e che in \displaystyle deve avere i limiti sopra e sotto (\displaylimits)
Ora avviene il miracolo: si può fare tutto senza alcun calcolo!`\newcommand{\bigcupdot}{%
\mathop{%
\vphantom{\bigcup}%
\mathpalette\setbigcupdot\cdot}\displaylimits}
\newcommand{\setbigcupdot}[2]{\ooalign{\hfil$#1\bigcup$\hfil\cr\hfil$#2$\hfil\crcr}}`
Ammira 😆 \mathpalette e \ooalign: sono orgoglioso di me stesso 😀Ciao
EnricoFinalmente, perché ci hai messo tanto?:D Stavo aspettando e pensavo: “perché Enrico non si da una mossa e mi toglie dai casini?” 😀
Come al solito perfetto, non posso fare altro che ammirare.
Ciao alla prossima.
Andrea
-
7 Febbraio 2006 alle 13:08 #7917::
Ora avviene il miracolo: si può fare tutto senza alcun calcolo!`\newcommand{\bigcupdot}{%
\mathop{%
\vphantom{\bigcup}%
\mathpalette\setbigcupdot\cdot}\displaylimits}
\newcommand{\setbigcupdot}[2]{\ooalign{\hfil$#1\bigcup$\hfil\cr\hfil$#2$\hfil\crcr}}`
Ammira 😆 \mathpalette e \ooalign: sono orgoglioso di me stesso 😀Finalmente, perché ci hai messo tanto?:D Stavo aspettando e pensavo: “perché Enrico non si da una mossa e mi toglie dai casini?” 😀
Trentacinque minuti ti sembrano tanti?:D
Analisi del problema, modifica della prima approssimazione con il ritorno indietro, idea luminosa 💡 di usare \ooalign e \mathpaletteAvevi mai sentito nominare questi comandi? 8)
Ciao
Enrico
-
7 Febbraio 2006 alle 13:35 #7918
-
7 Febbraio 2006 alle 14:53 #7919::
[quote]Ora avviene il miracolo: si può fare tutto senza alcun calcolo!`\newcommand{\bigcupdot}{%
\mathop{%
\vphantom{\bigcup}%
\mathpalette\setbigcupdot\cdot}\displaylimits}
\newcommand{\setbigcupdot}[2]{\ooalign{\hfil$#1\bigcup$\hfil\cr\hfil$#2$\hfil\crcr}}`
Ammira 😆 \mathpalette e \ooalign: sono orgoglioso di me stesso 😀Finalmente, perché ci hai messo tanto?:D Stavo aspettando e pensavo: “perché Enrico non si da una mossa e mi toglie dai casini?” 😀
Trentacinque minuti ti sembrano tanti?:D
Analisi del problema, modifica della prima approssimazione con il ritorno indietro, idea luminosa 💡 di usare \ooalign e \mathpaletteAvevi mai sentito nominare questi comandi? 8)
Ciao
Enrico[/quote]Purtroppo quei comandi non so nemmeno cosa fanno. Se me lo spieghi di sicuro ci capisco qualcosa.
Voglio chiederti un’altra cosa collegata a questo topic, ho usato il pacchetto exscale e relsize per mettere una sommatoria un po’ più grandicella, però noto che il simbolo è spostato un po’ in alto rispetto alla linea della frazione. Mi portresti dire,se esistono, i comandi, simili a kern o mkern, che spostano i simboli in verticale?
Grazie
Andrea
-
7 Febbraio 2006 alle 15:05 #7920::
DMW\negreg9\n
[quote][quote]Ora avviene il miracolo: si può fare tutto senza alcun calcolo!`\newcommand{\bigcupdot}{%
\mathop{%
\vphantom{\bigcup}%
\mathpalette\setbigcupdot\cdot}\displaylimits}
\newcommand{\setbigcupdot}[2]{\ooalign{\hfil$#1\bigcup$\hfil\cr\hfil$#2$\hfil\crcr}}`Purtroppo quei comandi non so nemmeno cosa fanno. Se me lo spieghi di sicuro ci capisco qualcosa.
Voglio chiederti un’altra cosa collegata a questo topic, ho usato il pacchetto exscale e relsize per mettere una sommatoria un po’ più grandicella, però noto che il simbolo è spostato un po’ in alto rispetto alla linea della frazione. Mi portresti dire,se esistono, i comandi, simili a kern o mkern, che spostano i simboli in verticale?
Risposta all’ultima domanda: no, bisogna farlo a manina. Forse però non usi correttamente i comandi relativi; bisognerebbe vedere un esempio.
Veniamo a \bigcupdot: il primo comando serve a dire che il simbolo che costruiamo è un operatore, del tipo della sommatoria, per mettere a posto le spaziature.
Poi dico che il simbolo deve avere altezza e profondità (rispettivamente quanto va sopra e sotto la linea di base) almeno come \bigcup; altrimenti bisognerebbe fare un paio di giochetti in più dopo.
A questo punto chiamo la macro miracolosa: \mathpalette\setbigcup\cdot. \mathpalette vuole due argomenti, e viene espanso come`\mathchoice{#1\displaystyle{#2}}{#1\textstyle{#2}}
{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}`A sua volta, \mathchoice è una primitiva di TeX che sceglie l’argomento numero n (n=1,2,3,4) se la formula da comporre è in \displaystyle (1), \textstyle (2), eccetera.Supponiamo di essere in \displaystyle, per gli altri è analogo: TeX “vede” la sequenza \setbigcupdot\displaystyle{\cdot}.
Ma \setbigcupdot è una macro con due argomenti! Quindi il tutto è espanso come`\ooalign{\hfil$\displaystyle\bigcup$\hfil\cr\hfil$\cdot$\hfil\crcr}`Che fa \ooalign? Be’, in soldoni costruisce un array di una sola colonna, ma le varie celle sono tutte sovrapposte. Con gli \hfil prima e dopo posso centrare il contenuto di ciascuna cella, che è esattamente ciò che desideravo. Qui non si può usare \\ per finire le righe, ma occorre il comando primitivo che è \cr; il \crcr è una finezza stilistica 😀
A questo punto occorrerebbe spiegare com’è definito \ooalign, ma direi che per oggi può bastare.8)
Ciao
Enrico
-
7 Febbraio 2006 alle 18:30 #7921::
Ho capito abbastanza. Per quanto riguarda l’altro problema ti faccio un esempio un po’ “ignorante”:
`
\usepackage{exscale,relsize}
….
\[\sum+\mathlarger{\mathlarger{\mathlarger%
{\mathlarger{\sum}}}}\_0^9\frac{1}{1+\frac{1}{x}}\]`L’esempio è volutamente esagerato per evidenziare il problema e la formula è così così.
Nel mio caso i \mathlarger sono solo due e non quattro, ma il problema c’è ugualmente.Ciao
Andrea
-
8 Febbraio 2006 alle 10:33 #7922::
Ho capito abbastanza. Per quanto riguarda l’altro problema ti faccio un esempio un po’ “ignorante”:`\usepackage{exscale,relsize}
….
\[\sum+\mathlarger{\mathlarger{\mathlarger%
{\mathlarger{\sum}}}}\_0^9\frac{1}{1+\frac{1}{x}}\]`L’esempio è volutamente esagerato per evidenziare il problema e la formula è così così.
Nel mio caso i \mathlarger sono solo due e non quattro, ma il problema c’è ugualmente.Infatti è proprio un problema di mancanza di \mathop.`\[
\mathop{\mathlarger{\mathlarger{\sum}}}\displaylimits_0^9
\]`mette il simbolo di sommatoria al posto giusto; senza il \mathop va a pallino l’allineamento dei limiti, che vanno troppo alti e troppo bassi (c’è un motivo, appendice G del TeXbook). Se però metti tre o quattro \mathlarger, il simbolo va effettivamente troppo in alto.Se leggi in fondo a relsize.sty trovi
Operators must be explicitly declared to use the right operator type (\mathrel, \mathbin, \mathop) to get the correct spacing.
Spero però che il problema sia solo accademico e che tu non voglia veramente usare quei simboli 😀
Ciao
Enrico
-
8 Febbraio 2006 alle 11:18 #7923::
Ho capito abbastanza. Per quanto riguarda l’altro problema ti faccio un esempio un po’ “ignorante”:`\usepackage{exscale,relsize}
….
\[\sum+\mathlarger{\mathlarger{\mathlarger%
{\mathlarger{\sum}}}}\_0^9\frac{1}{1+\frac{1}{x}}\]`L’esempio è volutamente esagerato per evidenziare il problema e la formula è così così.
Nel mio caso i \mathlarger sono solo due e non quattro, ma il problema c’è ugualmente.Infatti è proprio un problema di mancanza di \mathop.`\[
\mathop{\mathlarger{\mathlarger{\sum}}}\displaylimits_0^9
\]`mette il simbolo di sommatoria al posto giusto; senza il \mathop va a pallino l’allineamento dei limiti, che vanno troppo alti e troppo bassi (c’è un motivo, appendice G del TeXbook). Se però metti tre o quattro \mathlarger, il simbolo va effettivamente troppo in alto.Se leggi in fondo a relsize.sty trovi
Operators must be explicitly declared to use the right operator type (\mathrel, \mathbin, \mathop) to get the correct spacing.
Spero però che il problema sia solo accademico e che tu non voglia veramente usare quei simboli 😀
Ciao
EnricoNaturalmente era solo a titolo informativo. In effetti l’aspetto è poco piacevole, anzi orrendo. Grazie comunque.
Ciao,
Andrea
-
24 Aprile 2006 alle 18:54 #7924::
Riprendo il topic perché ho una curiosità:
Si può generalizzare la funzione precedente che qui riporto
`\newcommand{\bigcupdot}{%
\mathop{%
\vphantom{\bigcup}%
\mathpalette\setbigcupdot\cdot}\displaylimits}
\newcommand{\setbigcupdot}[2]{\ooalign{\hfil$#1\bigcup$\hfil\cr\hfil$#2$\hfil\crcr}}`
in modo da poter scvivere una istruzione tipo
`
\fusione{\bigcup}{\cdot}
`Ciao
Andrea
-
26 Aprile 2006 alle 16:13 #7925::
Riprendo il topic perché ho una curiosità:
Si può generalizzare la funzione precedente che qui riporto `\newcommand{\bigcupdot}{%
\mathop{%
\vphantom{\bigcup}%
\mathpalette\setbigcupdot\cdot}\displaylimits}
\newcommand{\setbigcupdot}[2]{\ooalign{\hfil$#1\bigcup$\hfil\cr\hfil$#2$\hfil\crcr}}`
in modo da poter scvivere una istruzione tipo
`
\fusione{\bigcup}{\cdot}`Non funziona certo con tutti i simboli, ma `\newcommand{\fusione}[2]{%
\def\fusioneinn##1##2{\ooalign{\hfil$##1#1$\hfil\cr\hfil$##2$\hfil\crcr}}%
\mathop{%
\vphantom{#1}%
\mathpalette\fusioneinn\cdot}\displaylimits}`dovrebbe fare al caso tuo.Ciao
Enrico
-
28 Giugno 2006 alle 12:48 #7926::
Riprendo il topic perché ho una curiosità:
Si può generalizzare la funzione precedente che qui riporto `\newcommand{\bigcupdot}{%
\mathop{%
\vphantom{\bigcup}%
\mathpalette\setbigcupdot\cdot}\displaylimits}
\newcommand{\setbigcupdot}[2]{\ooalign{\hfil$#1\bigcup$\hfil\cr\hfil$#2$\hfil\crcr}}`
in modo da poter scvivere una istruzione tipo
`
\fusione{\bigcup}{\cdot}`Non funziona certo con tutti i simboli, ma `\newcommand{\fusione}[2]{%
\def\fusioneinn##1##2{\ooalign{\hfil$##1#1$\hfil\cr\hfil$##2$\hfil\crcr}}%
\mathop{%
\vphantom{#1}%
\mathpalette\fusioneinn\cdot}\displaylimits}`dovrebbe fare al caso tuo.Ciao
EnricoHo provato il comando fusione, perché mi serviva per unire due simboli, e non mi funzionava perché al posto della seconda variabile #2 mi dava sempre \cdot
Riprendo questo topic per questa piccola correzione perché forse appunto hai dimenticato il secondo parametro #2 al posto di \cdot.
`\newcommand{\fusione}[2]{%
\def\fusioneinn##1##2{\ooalign{\hfil$##1#1$\hfil\cr\hfil$##2$\hfil\crcr}}%
\mathop{%
\vphantom{#1}%
\mathpalette\fusioneinn#2}\displaylimits}`Ciao
-
28 Giugno 2006 alle 13:06 #7927::
Ho provato il comando fusione, perché mi serviva per unire due simboli, e non mi funzionava perché al posto della seconda variabile #2 mi dava sempre \cdot
Riprendo questo topic per questa piccola correzione perché forse appunto hai dimenticato il secondo parametro #2 al posto di \cdot.
`\newcommand{\fusione}[2]{%
\def\fusioneinn##1##2{\ooalign{\hfil$##1#1$\hfil\cr\hfil$##2$\hfil\crcr}}%
\mathop{%
\vphantom{#1}%
\mathpalette\fusioneinn#2}\displaylimits}`Errore di copiatura fu 😀
Ciao
Enrico
-
2 Giugno 2007 alle 17:33 #7928::
Ho provato il comando fusione, perché mi serviva per unire due simboli, e non mi funzionava perché al posto della seconda variabile #2 mi dava sempre \cdot
Riprendo questo topic per questa piccola correzione perché forse appunto hai dimenticato il secondo parametro #2 al posto di \cdot.
`\newcommand{\fusione}[2]{%
\def\fusioneinn##1##2{\ooalign{\hfil$##1#1$\hfil\cr\hfil$##2$\hfil\crcr}}%
\mathop{%
\vphantom{#1}%
\mathpalette\fusioneinn#2}\displaylimits}`Errore di copiatura fu 😀
Su comp.text.tex Donald Arsenau ha mostrato una macro che fa migliorare di molto il codice precedente
`\makeatletter
%%% La seguente macro è di D. Arsenau
\def\mov@rlay#1#2{\leavevmode\vtop{%
\baselineskip\z@skip \lineskiplimit-\maxdimen
\ialign{\hfil$\m@th#1##$\hfil\cr#2\crcr}}}
\newcommand{\fusione}[3][\mathord]{%
#1{%
\ifx#1\mathop\vphantom{#2}\fi%
\mathpalette\mov@rlay{#2\cr#3}}\ifx#1\mathop\displaylimits\fi}
\makeatother
\newcommand{\bigcupcdot}{\fusione[\mathop]{\bigcup}{\cdot}}
\newcommand{\bigcupminus}{\fusione[\mathop]{\bigcup}{-}}
\newcommand{\nnrightarrow}{\fusione[\mathrel]{\parallel}{\longrightarrow}}
\newcommand{\machsum}{\fusione[\mathbin]{\lower.2ex\hbox{$\square$}}{\circ}}`
Non c’è più bisogno di ridefinire un comando interno. Gli argomenti sono:#1 (opzionale}: il tipo di simbolo richiesto (\mathop, \mathbin o \mathrel); di default è \mathord
#2: il simbolo più ampio in larghezza
#3: il simbolo da sovrapporreCiao
Enrico
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.