PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : amsmath Formel mittig



DaPhil
27-07-2011, 16:09
Hallo,
ich habe das Paket amsmath mit der Option fleqn eingebunden, damit alle Formeln den gleichen Abstand zur linken Seite haben. Nun möchte ich bestimmte Formeln optisch hervorheben und diese unter anderem zentrieren. Wie geht das? Ich habe vor \begin{align} \begin{center} oder \centering versucht, vergebens. Mit \begin{eqnarray} anstatt align funktioniert es, doch soll man dies nicht mehr benutzen. Wie geht es ohne?

johansjohe
27-07-2011, 17:03
Hallo DaPhil,

du kannst das ganze in eine \makebox stecken.



\begin{equation}%\label{}
\makebox[.95\textwidth][c]{$f(x)=x$}
\end{equation}


Und wenn es dir zu aufwändig ist, dass jedesmal wieder einzugeben, kannst du dir ja auch eine neue Umgebung (\newenvironment{}) oder einen neuen Befehl (\newcommand{}) schreiben.

Johannes

DaPhil
28-07-2011, 15:33
Funktioniert, allerdings nicht mit mehrzeiligen Formeln... Gibt's da eine Lösung?

Stefan_K
28-07-2011, 19:34
Hallo,

hier ist ein Beispiel für eine trotz fleqn ausnahmsweise zentrierte mehrzeilige Formel:


\begingroup
\makeatletter
\@fleqnfalse
\makeatother
\begin{align}
ax + by &=c \\
ab &=1
\end{align}
\endgroup

\@fleqnfalse setzt die entsprechende interne Variable auf false, \makeatletter und \makeatother sind wegen des @-Symbols im Namen nötig, \begingroup und \endgroup begrenzen die Wirkung der Änderung. Geschweifte Klammern würden das auch tun.

Viele Grüße,

Stefan

DaPhil
29-07-2011, 09:58
Hi,
ja ich nochmal. Ich versuche das jetzt in ein Makro einzubauen und scheiter dabei... Ich hätte gerne eine Box im Hintergrund die ich farbig machen kann und eine Formelbeschreibung unten. Mein Versuch:


\newcommand{\SF}[2]{
\definecolor{background}{rgb}{0.38,0.706,0.973}
\vspace*{3mm}
\noindent
\colorbox{background}{
\parbox{0.992\textwidth}{
{
\makeatletter
\@fleqnfalse
\makeatother
\begin{align}
#1
\end{align}
}
\hspace{5mm}
{\bf #2}
\vspace*{0.3cm}
\hspace{2mm}
}
}
\vspace*{0.55cm}
\newline
\noindent
}

Endet leider mit einigen Fehlermeldungen. Es liegt an \@fleqnfalse, womit er irgendwie nicht umgehen kann. Meldung sagt: You cant use \spacefactor in internal vertical mode. ?

Xenara
29-07-2011, 12:13
\makeatletter und \makeatother um das \newcommand drumrum setzen, siehe hier (http://www.dillgroup.ucsf.edu/latex/texfaq_14.html):


\documentclass[fleqn]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{blindtext}
\usepackage{amsmath}
\usepackage{xcolor}

\makeatletter
\newcommand{\SF}[2]{
\definecolor{background}{rgb}{0.38,0.706,0.973}
\vspace*{3mm}
\noindent
\colorbox{background}{
\parbox{0.992\textwidth}{
{
\@fleqnfalse
\begin{align}
#1
\end{align}
}
\hspace{5mm}
{\bf #2}
\vspace*{0.3cm}
\hspace{2mm}
}
}
\vspace*{0.55cm}
\newline
\noindent
}
\makeatother

\begin{document}

\begin{align}
1 + 2 = 3
\end{align}

\blindtext

\SF{1 + 2 = 3}{Text}

\begin{align}
1 + 2 = 3
\end{align}

\end{document}


Ein Minimalbeispiel wäre übrigens ganz nett gewesen und hätte Arbeit gespart.