ori” post=76011Salve a tutti,
avrei bisogno di definire un simbolo di relazione composto da un carattere maiuscolo calligrafico.
Per fare cio`, ho definito il comando `\newcommand{\rel}[1][R]{\mathrel{\mathcal{#1}}}`Quando uso \rel in formule come $s \rel t$, la spaziatura mi sembra corretta; il problema e` quando uso \rel in formule come $\rel \subseteq S \times T$: in quest’ultimo caso \rel viene reso attaccato al simbolo di sottoinsieme, con una spaziatura diversa rispetto a $R \subseteq S \times T$. Se uso ${\rel} \subseteq S \times T$ al posto di $\rel \subseteq S \times T$, la spaziatura risultante e` analoga a quella di $R \subseteq S \times T$.
La domanda e`: sto usando il metodo giusto per definire il simbolo di relazione?
Se si`, come posso risolvere il problema della spaziatura in modo automatico?
Se no, qual e` il comando corretto da usare per ottenere il simbolo e la spaziatura corretti?Grazie in anticipo a chi mi rispondera`.
Ti consiglio di usare una sintassi che distingua quando vuoi il simbolo come relazione o come simbolo ordinario.
`\usepackage{xparse}
\NewDocumentCommand{\rel}{sO{R}}{
\IfBooleanT{#1}{\mathrel\bgroup}
\mathcal{#2}
\IfBooleanT{#1}{\egroup}}`
e così avrai la possibilità di scrivere
`a \rel* b
x \rel* y
\rel \subseteq \rel`
Con * hai un simbolo di relazione, senza hai un simbolo ordinario. Se vuoi invertire il comportamento, sostituisci [tt]\IfBooleanT[/tt] con [tt]\IfBooleanF[/tt]
Ciao
Enrico