PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zuordnungen (Funktionen, Abbildungen) darstellen



ooze
10-03-2010, 00:23
Hallo,

ich muss in meiner Diplomarbeit häufig Zuordnungen der Form

f: X --> Y
x |-> f(x)

aufschreiben und wollte mir dafür ein schönes \newcommand anlegen, so dass ich nicht jedesmal wieder die Pfeile und richtigen Abstände tippen muss. Dies klappt soweit auch ganz gut, nur dass ich jetzt manchmal Probleme mit der korrekten Ausrichtung bekomme wenn die Bezeichnung der Räume, bzw. Elemente etwas länger werden. Es folgt das Minimalbeispiel:


\documentclass[12pt,a4paper,DIV=calc]{scrartcl}%
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{paralist}
\usepackage{amsmath,amssymb}
\usepackage{mathrsfs}
\usepackage{mathptmx}
\usepackage[scaled=.92]{helvet}
\usepackage{courier}
\newcommand{\map}[5]{%
\begin{align}
{#1}: {#2} &\longrightarrow {#3}\notag\\
{#4} &\longmapsto {#5}
\end{align}
}%

\begin{document}
blah blubb:
\begin{enumerate}[(i)]
\item Es existiert eine Menge $\mathcal{K}=\{\chi\}$ von Bijektionen
\map{\chi}{\mathcal{B}}{\chi[\mathcal{B}]\subset\mathbb{R}^3}{\mathcal{P}}{\chi(\mathcal{P} )=(x^1,x^2,x^3)}
foobar
\item lalala
\map{\chi_2\circ\chi_1^{-1}}{\chi_1[\mathcal{B}]}{\chi_2[\mathcal{B}]}{(x^1,x^2,x^3)}{(y^1,y^2,y^3)=\chi_2(\chi_1^{-1}(x^1,x^2,x^3))}
stetig differenzierbar sein.
\end{enumerate}
\end{document}
Bei (i) stimmt es noch, das Problem wird deutlich bei (ii). Ich hätte es gerne, dass {#1} soweit nach links gezogen wird, dass es eben nicht in den Rest hineinragt.

Idalerweise hätte ich es sogar gerne vertikal zwischen den beiden Zeilen zentriert und auch die Gleichungsnummer in der vertikalen Mitte zentriert, aber das wär dann wohl viel komplizierter.

Freue mich über jeden Hinweis,
ooze

john_doe
10-03-2010, 08:55
Hallo Ooze!

Versuch doch mal das hier:


\newcommand{\map}[5]{%
\begin{equation}
{#1}: \begin{tabular}{rl}
{$#2\hspace{2\tabcolsep}\longrightarrow$} & ${#3}$ \\
{$#4\hspace{2\tabcolsep}\longmapsto$} & ${#5}$
\end{tabular}
\end{equation}
}%

Evtl. müsstest du noch mit den tabular-Abständen herumspielen. Ich hoffe, das ist das, was du wolltest.

Viele Grüße!

ooze
10-03-2010, 09:06
Hallo Ooze!

Versuch doch mal das hier:


\newcommand{\map}[5]{%
\begin{equation}
{#1}: \begin{tabular}{rl}
{$#2\hspace{2\tabcolsep}\longrightarrow$} & ${#3}$ \\
{$#4\hspace{2\tabcolsep}\longmapsto$} & ${#5}$
\end{tabular}
\end{equation}
}%

Evtl. müsstest du noch mit den tabular-Abständen herumspielen. Ich hoffe, das ist das, was du wolltest.
Vielen Dank, das ist exakt das was ich wollte :-). So sieht's schon ziemlich gut aus. Was ich aber nicht ganz verstehe ist, warum man vor den Pfeilen einen Abstand manuell setzen muss und nach den Pfeilen es einfach so stimmt. Wie kommt das? Bzw. wie könnte man erreichen, dass die Abstände auch wirklich exakt gleich sind?

Xenara
10-03-2010, 10:35
John_Doe hat in seinem (imho übrigens super) Ansatz eine Tabelle mit zwei Spalten gemacht, und die Pfeile mit in die erste Spalte hineingenommen. Um einen Abstand vom Text darin zu erzielen, hat er den hspace eingefügt.

Ich habe seinen Ansatz um eine dritte Spalte erweitert, welche zentriert ist und in welcher nun die Pfeile stehen. Sieh mal, ob das so besser hinkommt.

Ins MB hab ich alle drei Möglichkeiten reingenommen, damit man die Unterschiede sieht:


\documentclass[12pt,a4paper,DIV=calc]{scrartcl}%
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{paralist}
\usepackage{amsmath,amssymb}
\usepackage{mathrsfs}
\usepackage{mathptmx}
\usepackage[scaled=.92]{helvet}
\usepackage{courier}

\newcommand{\originalmap}[5]{%
\begin{align}
{#1}: {#2} &\longrightarrow {#3}\notag\\
{#4} &\longmapsto {#5}
\end{align}
}%

\newcommand{\jdmap}[5]{%
\begin{equation}
{#1}: \begin{tabular}{rl}
{$#2\hspace{2\tabcolsep}\longrightarrow$} & ${#3}$ \\
{$#4\hspace{2\tabcolsep}\longmapsto$} & ${#5}$
\end{tabular}
\end{equation}
}%

\newcommand{\xmap}[5]{%
\begin{equation}
#1: \begin{tabular}{rcl}
$#2$ & $\longrightarrow$ & $#3$ \\
$#4$ & $\longmapsto$ & $#5$
\end{tabular}
\end{equation}
}%

\begin{document}

blah blubb:
\begin{enumerate}[(i)]
\item Es existiert eine Menge $\mathcal{K}=\{\chi\}$ von Bijektionen
\originalmap{\chi}{\mathcal{B}}{\chi[\mathcal{B}]\subset\mathbb{R}^3}{\mathcal{P}}{\chi(\mathcal{P} )=(x^1,x^2,x^3)}
foobar
\item lalala
\originalmap{\chi_2\circ\chi_1^{-1}}{\chi_1[\mathcal{B}]}{\chi_2[\mathcal{B}]}{(x^1,x^2,x^3)}{(y^1,y^2,y^3)=\chi_2(\chi_1^{-1}(x^1,x^2,x^3))}
stetig differenzierbar sein.
\end{enumerate}

\clearpage

blah blubb:
\begin{enumerate}[(i)]
\item Es existiert eine Menge $\mathcal{K}=\{\chi\}$ von Bijektionen
\jdmap{\chi}{\mathcal{B}}{\chi[\mathcal{B}]\subset\mathbb{R}^3}{\mathcal{P}}{\chi(\mathcal{P} )=(x^1,x^2,x^3)}
foobar
\item lalala
\jdmap{\chi_2\circ\chi_1^{-1}}{\chi_1[\mathcal{B}]}{\chi_2[\mathcal{B}]}{(x^1,x^2,x^3)}{(y^1,y^2,y^3)=\chi_2(\chi_1^{-1}(x^1,x^2,x^3))}
stetig differenzierbar sein.
\end{enumerate}

\clearpage

blah blubb:
\begin{enumerate}[(i)]
\item Es existiert eine Menge $\mathcal{K}=\{\chi\}$ von Bijektionen
\xmap{\chi}{\mathcal{B}}{\chi[\mathcal{B}]\subset\mathbb{R}^3}{\mathcal{P}}{\chi(\mathcal{P} )=(x^1,x^2,x^3)}
foobar
\item lalala
\xmap{\chi_2\circ\chi_1^{-1}}{\chi_1[\mathcal{B}]}{\chi_2[\mathcal{B}]}{(x^1,x^2,x^3)}{(y^1,y^2,y^3)=\chi_2(\chi_1^{-1}(x^1,x^2,x^3))}
stetig differenzierbar sein.
\end{enumerate}

\end{document}

ooze
10-03-2010, 17:59
Danke Xenara, aber äußerlich hat sich nichts verändert. Insofern ist deine Lösung aber schöner, da man eben nicht manuell irgendwelche Abstände setzen muss. Wenn man das ganze nun irgendwie noch "enger" zusammenziehen könnte wäre ich restlos glücklich.

Ich hab mal etwas rumgefuchst und bin auf diese Lösung gekommen, nicht schön aber tut:

\newcommand{\xmap}[5]{%
\begin{equation}
#1: \begin{tabular}{@{}r@{\hspace{0.3em}}c@{\hspace{0. 3em}}l}
$#2$ & $\longrightarrow$ & $#3$ \\
$#4$ & $\longmapsto$ & $#5$
\end{tabular}
\end{equation}
}%
Falls jemand etwas schöneres weiß, ... immer her damit :). Ansonsten sag ich nochmal vielen Dank an alle!

Xenara
10-03-2010, 18:11
Im MB ändert sich der Abstand des Pfeils vom Text in der ersten Spalte bei meiner Lösung etwas, sodass der Pfeil wirklich zentriert sitzt. Man sieht es, wenn man im Acrobat schnell zwischen den Seiten hin- und herspringt. Dann hüpft der Pfeil.

Zu deinem Wunsch, alles enger zu haben, hätte ich auch genau das vorgeschlagen, was du gemacht hast. @{...} ist imho die einzige und korrekte Möglichkeit, den Abstand zwischen Tabellenspalten zu verändern. Von daher ist dein Ansatz korrekt.