PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verallgemeinerung von \sideset



infutura
18-11-2010, 12:01
Hallo,

mit \sideset kann man gewisse Symbole wie z.B. \sum im mathmode mit Sub- und Superindizes ausstetten und zwar nicht nur rechts davon, sondern auch links davon, also an allen 4 Ecken.

Ich meine mich zu erinnern, dass es ein Paket gibt, mit dem dies allgemein möglich ist, nicht nur bei speziellen Symbolen wie \sum. Leider erinnere ich mich nicht an den Namen. Kennt es jemand?

Vielen Dank,
infutura

voss
18-11-2010, 20:19
mit \sideset kann man gewisse Symbole wie z.B. \sum im mathmode mit Sub- und Superindizes ausstetten und zwar nicht nur rechts davon, sondern auch links davon, also an allen 4 Ecken.

Ich meine mich zu erinnern, dass es ein Paket gibt, mit dem dies allgemein möglich ist, nicht nur bei speziellen Symbolen wie \sum. Leider erinnere ich mich nicht an den Namen. Kennt es jemand?


dazu braucht man kein Paket; es geht mit jedem beliebigen Zeichen!

Herbert

infutura
30-11-2010, 16:42
dazu braucht man kein Paket; es geht mit jedem beliebigen Zeichen!

Herbert

Wie meinst du das genau?

Wenn ich sideset verwende und z.B. $\sideset{_1^2}{_3^4}{A}$ schreibe, erhalte ich einen Fehler, obwohl ich als Resultat erhalte, was ich erwarte. $\sideset{_1^2}{_3^4}{\prod}$ kompiliert hingehen ohne Fehler.

Oder gibt es eine Möglichkeit ohne sideset? Wenn ja, wie?

tral
01-12-2010, 15:13
Hallo,

das nächste Mal bitte gleich selber ein Minimalbeispiel erstellen.



\documentclass{minimal}
\usepackage{amsmath}

\begin{document}
$\sideset{_1^2}{_3^4}{\operatorname{A}}$
\end{document}


Christian.

infutura
03-12-2010, 19:30
Hallo,

das nächste Mal bitte gleich selber ein Minimalbeispiel erstellen.



\documentclass{minimal}
\usepackage{amsmath}

\begin{document}
$\sideset{_1^2}{_3^4}{\operatorname{A}}$
\end{document}


Christian.
Vielen Dank für deine Nachricht und das Beispiel mit einem Lösungsansatz.

Meine Frage ist nun, warum $\sideset{_1^2}{_3^4}{\operatorname{A}}$
funktioniert, nicht aber $\sideset{_1^2}{_3^4}{A}$.
Davon abgesehen ist $\operatorname{A}$ nicht das gleiche wie $A$.

Ich suche nach einem allgemeinen Ansatz, der es auch zulassen würde, $A$ statt $\operatorname{A}$ mit Sup- und Subindizes zu versehen. Geht das mit \sideset? Falls ja, wie? Falls nein, gibt es Alternativen?

voss
03-12-2010, 20:08
Vielen Dank für deine Nachricht und das Beispiel mit einem Lösungsansatz.

Meine Frage ist nun, warum $\sideset{_1^2}{_3^4}{\operatorname{A}}$
funktioniert, nicht aber $\sideset{_1^2}{_3^4}{A}$.
Davon abgesehen ist $\operatorname{A}$ nicht das gleiche wie $A$.

Ich suche nach einem allgemeinen Ansatz, der es auch zulassen würde, $A$ statt $\operatorname{A}$ mit Sup- und Subindizes zu versehen. Geht das mit \sideset? Falls ja, wie? Falls nein, gibt es Alternativen?


\documentclass{minimal}
\usepackage{amsmath}

\begin{document}
$\sideset{_1^2}{_3^4}{\operatorname{A}}$

$\sideset{_1^2}{_3^4}{\mathop{A}}$

$\sideset{_1^2}{_3^4}{\mathop A}$

\end{document}

Herbert

tral
03-12-2010, 20:23
Hallo,

ich hab mal die Definition von sideset für dich so verändert, dass sie für normale Nicht-Operatoren geht:



\documentclass{minimal}
\usepackage{amsmath}

\makeatletter
\newcommand{\mysideset}[3]{\@mathmeasure \z@ \displaystyle {#3}\global \setbox \@ne \vbox to\ht \z@ {}\dp \@ne \dp \z@ \setbox \tw@ \box \@ne \@mathmeasure 4\displaystyle {\copy \tw@ #1}\@mathmeasure 6\displaystyle {#3 #2}\dimen@ -\wd 6 \advance \dimen@ \wd 4 \advance \dimen@ \wd \z@ \hbox to\dimen@ {}\mathop {\kern -\dimen@ \box 4\box 6}}
\makeatother

\begin{document}
$\sideset{_1^2}{_3^4}{\operatorname{A}}$

\vspace{2em}

$\mysideset{_1^2}{_3^4}{A}$

\vspace{2em}

$\mysideset{_1^2}{_3^4}{\sum}$

\end{document}


Eigentlich habe ich aus der Orginaldefinition nur das \nolimits entfernt. ACHTUNG: Wie du an der letzten Zeile siehst, funktioniert das jetzt nicht mehr für normale Operatoren!

Christian.

[UPD] Herberts Lösung ist besser! Außerdem war er schneller... :(

localghost
04-12-2010, 13:02
Man kann auch leftidx (http://ctan.org/pkg/leftidx) oder tensor (http://ctan.org/pkg/tensor) nehmen.


Thorsten

voss
04-12-2010, 13:57
Man kann auch leftidx (http://ctan.org/pkg/leftidx) oder tensor (http://ctan.org/pkg/tensor) nehmen.


man kann auch gar kein Paket nehmen ...

\documentclass{article}

\begin{document}

$\displaystyle{}^1_2A^3_4$

${}^1_2A^3_4$

\end{document}

Herbert

localghost
04-12-2010, 17:53
man kann auch gar kein Paket nehmen […]
Wird aber hässlich.

\documentclass{article}
\usepackage{tensor}

\begin{document}
$\displaystyle{}^{10}_2A^{30}_4$

${}^{10}_2A^{30}_4$

$\tensor*[^{10}_2]{A}{^{30}_4}$
\end{document}

voss
04-12-2010, 18:32
Wird aber hässlich.

oder schön ... :D

\documentclass{article}
\usepackage{tensor}
\def\d{\phantom{1}}

\begin{document}
$\displaystyle{}^{10}_{\d2}A^{30}_4$

${}^{10}_{\d2}A^{30}_4$

$\tensor*[^{10}_2]{A}{^{30}_4}$

\end{document}


Herbert

infutura
06-12-2010, 12:43
Vielen Dank für eure Lösungsansätze.


oder schön ... :D

\documentclass{article}
\usepackage{tensor}
\def\d{\phantom{1}}

\begin{document}
$\displaystyle{}^{10}_{\d2}A^{30}_4$

${}^{10}_{\d2}A^{30}_4$

$\tensor*[^{10}_2]{A}{^{30}_4}$

\end{document}


Herbert

Diese Lösung ist ähnlich wie im Paket leftidx. Dort wurde aber offenbar vor allem Wert auf die vertikale Ausrichtung gelegt und \vphantom statt \phantom benutzt. Das sehe ich als klaren Nachteil dieses Paketes an.

Das Paket tensor scheint das besser zu meistern, es ist aber auch komplizierter, und eigentlich bin ich der Meinung, dass man nicht zu viele Pakete nutzen sollte.

Möchte man das ganze in einem Makro verwenden und ist nicht klar, was als Sup- und Subindizes auftauchen wird, ist Herberts Lösung (in dieser Form) nicht so flexibel.

Ich denke, ich werde das Tensor-Paket nutzen.