- Questo topic ha 5 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 19 anni, 1 mese fa da
egreg9.
-
CreatoreTopic
-
25 Luglio 2007 alle 10:23 #16381::
Ciao a tutti. Ho una relazione così definita:
`\overset{*}{\sim}`
Il problema è che l’asterisco è troppo alto rispetto al simbolo \sim. Per esempio le scritture:
`\{r_n\} \overset{*}{\sim} \{s_n\}`
`\mathbb{R}^\mathbb{N}/\overset{*}{\sim}$`
non mi sembrano ben composte: l’asterico è troppo in alto.Come è possibile risolvere questo problema?
Grazie mille,
L.
-
CreatoreTopic
-
AutoreRisposte
-
-
25 Luglio 2007 alle 13:33 #16382::
Ciao a tutti. Ho una relazione così definita:
`\overset{*}{\sim}`
Il problema è che l’asterisco è troppo alto rispetto al simbolo \sim. Per esempio le scritture:
`\{r_n\} \overset{*}{\sim} \{s_n\}`
`\mathbb{R}^\mathbb{N}/\overset{*}{\sim}$`
non mi sembrano ben composte: l’asterico è troppo in alto.Come è possibile risolvere questo problema?
\overset fa del suo meglio, ma per precisa scelta di Knuth, i simboli di relazione come =, \sim e così via, hanno tutti la stessa altezza di +, così come il “meno”.
Soluzione? Se vuoi usare \overset, devi togliere l’altezza di troppo e regolarla “a mano”:
`\mathrel{\overset{*}{\smash[t]{\sim}\rule{0pt}{.5ex}}}`
Il mathrel attorno serve perché altrimenti LaTeX non riconoscerebbe il simbolo come una relazione, come avviene invece con \overset{*}{\sim}.Altrimenti
`\makeatletter
\newcommand{\charfusion}[3][\mathord]{%
#1{%
\ifx#1\mathop\vphantom{#2}\fi%
\mathpalette\mov@rlay{#2\cr#3}}\ifx#1\mathop\displaylimits\fi}
%%% Le seguenti macro sono di David Kastrup
\def\moverlay{\mathpalette\mov@rlay}
\def\mov@rlay#1#2{\leavevmode\vtop{%
\baselineskip\z@skip \lineskiplimit-\maxdimen
\ialign{\hfil$\m@th#1##$\hfil\cr#2\crcr}}}
\makeatother
\newcommand{\simstar}{%
\charfusion[\mathrel]{\sim}{\raise1ex\hbox{$\scriptstyle*$}}}`
È un pezzo di codice che avevo studiato per altre cose, ma che funziona anche qui.Ciao
Enrico
-
25 Luglio 2007 alle 13:52 #16383
-
25 Luglio 2007 alle 16:53 #16384::
Professore! Grazie mille, perfetto come sempre! 😀
Eh, no. Anch’io ho commesso un errore (citazione da Carosello, lo diceva l’ispettore Rock togliendosi il cappello e mostrando la pelata).
L’altezza di \sim non è quella del +; quanto è? Risposta: quella che appare, né più né meno.
E perché allora \overset{*}{\sim} mette così in alto l’asterisco? Risposta: la distanza è la stessa che TeX metterebbe fra l’asterisco e \sum in $\sum\limits^*$
Nel caso di \overset sembra un po’ eccessiva, effettivamente. Ma quei simboli compositi non sono proprio bellissimi in ogni caso.
Una soluzione presa in prestito dal Grand Wizard:
`\def\@verrel#1#2{\vbox{\lineskiplimit\maxdimen\lineskip.22ex
\ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr}}}
\def\@nderrel#1#2{\vtop{\lineskiplimit\maxdimen\lineskip\z@
\ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr}}}\def\simstar{\mathrel{\mathpalette\@verrel{\scriptstyle*\cr\sim}}}
\def\eqdefbelow{\mathrel{\mathpalette\@nderrel{=\cr\scriptscriptstyle\mathrm{def}}}}`
Prova $a\simstar b$ oppure $c\eqdefbelow d$.Ciao
Enrico
-
25 Luglio 2007 alle 20:12 #16385::
Caro Enrico, ho provato a confrontare le due versioni:
`\documentclass{article}
\usepackage{amsmath,amsfonts}
\newcommand{\simstar}{\mathrel{\overset{*}{\smash[t]{\sim}\rule{0pt}{.5ex}}}}
\begin{document}
$\mathbb{R}^\mathbb{N}/\simstar$$\{r_n\} \simstar \{s_n\}$
\end{document}`
e
`\documentclass{article}
\usepackage{amsmath,amsfonts}
\makeatletter
\def\@verrel#1#2{\vbox{\lineskiplimit\maxdimen\lineskip.22ex
\ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr}}}
\def\@nderrel#1#2{\vtop{\lineskiplimit\maxdimen\lineskip\z@
\ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr}}}
\def\simstar{\mathrel{\mathpalette\@verrel{\scriptstyle*\cr\sim}}}
\makeatother
\begin{document}
$\mathbb{R}^\mathbb{N}/\simstar$$\{r_n\} \simstar \{s_n\}$
\end{document}`
La differenza è davvero impercettibile. Mi pare che nella “nuova” versione (quella che dici di aver preso a prestito dal Grand Wizard), l’asteriso sia leggerissimamente più in alto. Ma è una differenza che, anche ad ingrandimenti fortissimi, appena si nota.Mi sbaglio?
Se è così e non sbaglio, penso che si possano usare liberamente tutte e due: sono pressoché uguali.
Grazie ancora,
Lorenzo
-
25 Luglio 2007 alle 20:45 #16386::
Caro Enrico, ho provato a confrontare le due versioni:
`\documentclass{article}
\usepackage{amsmath,amsfonts}
\newcommand{\simstar}{\mathrel{\overset{*}{\smash[t]{\sim}\rule{0pt}{.5ex}}}}
\begin{document}
$\mathbb{R}^\mathbb{N}/\simstar$$\{r_n\} \simstar \{s_n\}$
\end{document}`
e
`\documentclass{article}
\usepackage{amsmath,amsfonts}
\makeatletter
\def\@verrel#1#2{\vbox{\lineskiplimit\maxdimen\lineskip.22ex
\ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr}}}
\def\@nderrel#1#2{\vtop{\lineskiplimit\maxdimen\lineskip\z@
\ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr}}}
\def\simstar{\mathrel{\mathpalette\@verrel{\scriptstyle*\cr\sim}}}
\makeatother
\begin{document}
$\mathbb{R}^\mathbb{N}/\simstar$$\{r_n\} \simstar \{s_n\}$
\end{document}`
La differenza è davvero impercettibile. Mi pare che nella “nuova” versione (quella che dici di aver preso a prestito dal Grand Wizard), l’asteriso sia leggerissimamente più in alto. Ma è una differenza che, anche ad ingrandimenti fortissimi, appena si nota.Mi sbaglio?
Se è così e non sbaglio, penso che si possano usare liberamente tutte e due: sono pressoché uguali.
Funzionano in modo analogo; la seconda esegue un allineamento, che in LaTeX sarebbe circa
`\begin{array}{@{}c@{}}\scriptstyle*\\\sim\end{array}`
ma con spaziatura fra le righe ridotta. La prima esegue un allineamento analogo, ma le due righe sono effettivamente sovrapposte e puoi controllare meglio l’altezza del simbolo che va sopra, con \raise\hbox{…} Ovvio che ci sia qualche minima differenza; con qualche conticino si potrebbero rendere identici, ma non ne vale la pena. Il vantaggio della prima è che puoi facilmente mettere il simbolo anche sotto, all’altezza preferita. Con il secondo devi usare la macro \@nderrel con \vtop invece che \vbox e scambiando l’ordine dei simboli.
Usa quella che ti pare; oppure rimani con \overset.
Ciao
Enrico
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.