Einkreisen von Matrizen oder von mehrzeiligen Formeln

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Einkreisen von Matrizen oder von mehrzeiligen Formeln

von esdd » Mi 22. Jan 2014, 12:23

Hier ist mal noch ein Vorschlag für das „Umkreisen“ eines Teils der Matrix mit einer Ellipse und Beschriftung. Allerdings ist dabei schon viel Handarbeit dabei, um den benötigten Platz für den jeweiligen Rahmen freizuhalten. Außerdem ist es vermutlich sinnvoll bei mehreren Beschriftungen diese so aneinander auszurichten, dass sie auf gleicher Höhe sind:
\documentclass{article} 
\usepackage{amsmath} 
\usepackage{tikz} 
\usetikzlibrary{shapes.geometric}% für Ellipse   
\usetikzlibrary{fit}
\tikzset{ 
    pfeil/.style={stealth-}, 
    beschr/.style={remember picture,overlay,font=\small}} 
\newcommand\mrahmen[3][]{%   
    \tikz[baseline,remember picture]\node[anchor=base,inner sep=1pt,draw=#2,#1]{$\displaystyle#3$};} 
\colorlet{mfarbe}{red} 
\newcommand\sbinom[2]{\genfrac{}{}{0pt}{}{#1}{#2}} 
\usepackage{blindtext}% für Fülltext   
\begin{document} 
\blindtext 
\par 
\noindent\begin{minipage}{\linewidth} 
   $\left[~\begin{matrix} 
     \mrahmen[name=m-1a,inner sep=0pt]{none}{n}& a\\ 
     \mrahmen[name=m-1e,inner sep=0pt]{none}{m} & b 
   \end{matrix}\right] = 
   \left(\!\mrahmen[ellipse,name={ell-1},inner xsep=0pt]{mfarbe}{\sbinom{m}{n}}\!\right)$ 
   \tikz[remember picture,overlay]\node[fit= (m-1a) (m-1e),ellipse,inner sep=1pt, draw=mfarbe](m-1){};
   \tikz[beschr]\path[draw=mfarbe](ell-1.south)--+(0,-.3)node[below](h1){Hinweis 1};
   \tikz[beschr]\path[draw=mfarbe](m-1.south)--(m-1|-h1.north)node[xshift=2mm,below]{Hinweis 2};
   \vspace*{.8cm} 
\end{minipage} 
\blindtext 
\end{document}
Das braucht wie immer zwei Durchläufe.

Gruß
Elke

von esdd » Mo 20. Jan 2014, 14:14

Dein Code ist nicht lauffähig, er liefert eine ganze Reihe von Fehlermeldungen. Ursache ist vermutlich, dass du die Matheumgebung zwar schließt, aber vorher nicht öffnest und auch die verwendete Farbe mfarbeg ist nicht definiert.

Auf ganz normale Terme müsste sich die Lösung aber einfach übertragen lassen. Verwende im optionalen Argument von mrahmen die Option name={...} mit einer eindeutigen Bezeichnung für die entsprechende Ellipse. Dann kannst du die Beschriftung wie in dem Binombeispiel vornehmen, musst halt nur ell-1 durch die gewählte Bezeichnung ersetzen.

Wenn du dabei Hilfe brauchst, dann gib ein wirklich lauffähiges Beispiel an.

Gruß
Elke

von MaWe » Mo 20. Jan 2014, 01:42

Hi Elke,
es hat in der Tat geklappt, ich hatte lediglich das "remember Picture" vergessen, deswegen hat er mir nie den Hinweis angezeigt.

Super das hat schonmal geklappt, aber wie bekomme ich das nun noch in Matrizen hin? Wäre schon gut wenn es so gehen würde, damit es einheitlich aussieht.

Mit hf-tikz wird das ja wieder so fett....

vielleicht vorher auch nochmal was einfacheres.....wie bekomme ich das bei ganz normalen Termen hin....

hier mal das Minibeispiel:

\documentclass{article} 
\usepackage{amsmath} 
\usepackage{tikz} 
\usetikzlibrary{shapes.geometric}% für Ellipse   
\tikzset{ 
   pfeil/.style={stealth-}, 
   beschr/.style={remember picture,overlay,font=\small}} 
\newcommand\mrahmen[3][]{%   
   \tikz[anchor=base,baseline,remember picture]\node[inner sep=2pt,draw=#2,#1]{$\displaystyle#3\mathstrut$};} 
\colorlet{mfarbe}{red} 
\newcommand\sbinom[2]{\genfrac{}{}{0pt}{}{#1}{#2}} 
\usepackage{blindtext}% für Fülltext   
\begin{document} 
\blindtext 
\par 
\noindent\begin{minipage}{\linewidth} 
 
e^{-\delta t} \bigl\{\underbrace{\mrahmen[ellipse,inner sep=1pt]{mfarbeg}{C_1+C_2}}_{\textcolor{green}{A}}\cos\omega_dt+ i(\underbrace{\mrahmen[ellipse,inner sep=1pt]{mfarbeg}{C_1-C_2}}_{\textcolor{green}{B}})\sin\omega_dt\bigr\}
\end{align*}

  \vspace*{.8cm} 
\end{minipage} 
\blindtext 
\end{document}
und anstatt der Klammern auch hier wieder nur ein Strich. Das der Code so nicht korrekt ist weiß ich das ist nen Mischmasch, ging ja nur ums Prinzip.

von esdd » So 19. Jan 2014, 23:43

Der Hinweistext wird per overlay hinzugefügt und reserviert sich deshalb keinen eigenen Platz. Die Aufgabe übernimmt das \vspace*{...} und die minipage außen herum sorgt dafür, dass alles zusammenbleibt. Die minipage muss deshalb um die gesamte Gleichung und der Teil mit dem Binom muss auch im Mathemodus gesetzt werden.

Der folgende Code läuft bei mir fehlerfrei durch und nach dem 2.Durchlauf ist die Beschriftung an der erwarteten Stelle:
\documentclass{article} 
\usepackage{amsmath} 
\usepackage{tikz} 
\usetikzlibrary{shapes.geometric}% für Ellipse  
\tikzset{ 
   pfeil/.style={stealth-}, 
   beschr/.style={remember picture,overlay,font=\small}} 
\newcommand\mrahmen[3][]{%  
   \tikz[anchor=base,baseline,remember picture]\node[inner sep=2pt,draw=#2,#1]{$\displaystyle#3\mathstrut$};} 
\colorlet{mfarbe}{red} 
\newcommand\sbinom[2]{\genfrac{}{}{0pt}{}{#1}{#2}} 
\usepackage{blindtext}% für Fülltext  
\begin{document} 
\blindtext 
\par
\noindent\begin{minipage}{\linewidth} 
  $\begin{bmatrix}
    n  & a\\ 
    m & b 
  \end{bmatrix} = 
  \left(\mrahmen[ellipse,name={ell-1},inner xsep=0pt]{mfarbe}{\sbinom{m}{n}}\right)$ 
  \tikz[beschr]\path[draw=mfarbe](ell-1.south)--+(0,-.3)node[below]{Hinweis};   
  \vspace*{.8cm} 
\end{minipage} 
\blindtext 
\end{document}
Das Einkreisen von Matrixteilen ist wieder ein anderes Problem. Der einfachste Weg wäre dies mit hf-tikz zu lösen.

Gruß
Elke

von MaWe » So 19. Jan 2014, 21:53

Hier nochmal ein neues Minibeispiel, mit dem man dann gleich zwei Fliegen mit einer Klappe schlagen kann:
\documentclass{article} 
\usepackage{amsmath} 
\usepackage{tikz} 
\usetikzlibrary{shapes.geometric}% für Ellipse 
\tikzset{ 
  pfeil/.style={stealth-}, 
  beschr/.style={remember picture,overlay,font=\small}} 
\newcommand\mrahmen[3][]{% 
  \tikz[anchor=base,baseline,remember picture]\node[inner sep=2pt,draw=#2,#1]{$\displaystyle#3\mathstrut$};} 
\colorlet{mfarbe}{red} 
\newcommand\sbinom[2]{\genfrac{}{}{0pt}{}{#1}{#2}} 
\usepackage{blindtext}% für Fülltext 
\begin{document} 
\blindtext 
\par 
$\begin{bmatrix}
  n  & a\\
  m & b
 \end{bmatrix}$ =
\noindent\begin{minipage}{\linewidth} 
    \left(\mrahmen[ellipse,name={ell-1},inner xsep=0pt]{mfarbe}{\sbinom{m}{n}}\right) 
  \tikz[beschr]\path[draw=mfarbe](ell-1.south)--+(0,-.3)node[below]{Hinweis};  
  \vspace*{.8cm} 
\end{minipage} 
\blindtext 
\end{document}
Hier soll das n und m in der Matrize genauso eingekreist werden wie beim Binom. Wenn man das so auflöst werden aber unten auch keine Hinweise angezeigt.
Wo genau liegt der Fehler?

von MaWe » So 19. Jan 2014, 21:21

Hi Elke,
ich muss das jetzt nochmal aufgreifen. Du hast da schon eine super Arbeit geleistet, aber ich stelle mich noch zu ungeschickt an.

Wenn ich lediglich ein Binom habe, dann kreist er mir das zwar noch ein, aber der Hinweistext verschwindet...irgenwas mache ich noch falsch.
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}% für Ellipse
\tikzset{
  pfeil/.style={stealth-},
  beschr/.style={remember picture,overlay,font=\small}}
\newcommand\mrahmen[3][]{%
  \tikz[anchor=base,baseline,remember picture]\node[inner sep=2pt,draw=#2,#1]{$\displaystyle#3\mathstrut$};}
\colorlet{mfarbe}{red}
\newcommand\sbinom[2]{\genfrac{}{}{0pt}{}{#1}{#2}}
\usepackage{blindtext}% für Fülltext
\begin{document}
\blindtext
\par
\noindent\begin{minipage}{\linewidth}
  \begin{align*}
    A & = \left(\!\mrahmen[ellipse,name={ell-2},inner xsep=0pt]{mfarbe}{\sbinom{m}{n}}\!\right)
          +\left(\!\mrahmen[ellipse,name={ell-1},inner xsep=0pt]{mfarbe}{\sbinom{n}{m}}\!\right)
  \end{align*}
  \tikz[beschr]\path[draw=mfarbe](ell-2.south)--+(0,-.3)node[below]{Hinweis};
  \tikz[beschr]\draw[pfeil](ell-1.south)|-+(1,-.5)node[right]{Hinweistext};
  \vspace*{.8cm}
\end{minipage}
\blindtext
\end{document}
Das Beispiel läuft einwandfrei, wenn ich aber den zweiten Teil weglasse, also nur das linke mit dem "Hinweis" will, das bekomme ich nicht hin :(

und wie das ganze dann in einer Matrix geht (lediglich Texteile einzukreisen) habe ich auch nicht hinbekommen...

von MaWe » Sa 4. Jan 2014, 13:34

ich war bisher nicht auf Texwelt, werde mich dann doch da anmelden, bringt ja alles nichts :p

danke Dir aber schonmal für Deine Hilfe.

von esdd » Sa 4. Jan 2014, 12:11

Wie man die Farbe für einzelne Rahmen ändern kann, siehst du dem oben von dir erwähnten Beispiel texwelt.de entnehmen. Das tippe ich jetzt nicht nochmal ein. Dort stand das übrigens auch dabei mit dem 2x durchlaufen lassen ;-)

Das Umrahmen der beiden Nullen ohne Klammer geht doch vom Prinzip genauso? Man muss lediglich etwas Platz für den Rahmen schaffen, damit er nicht auf den Klammern landet. Ein Beispiel dafür findest du in der Frage Wie kann ich Teile einer Formel beschriften?.

Gruß
Elke

von MaWe » Sa 4. Jan 2014, 03:11

Du bist echt klasse :)

Ist jetzt ne banale Frage, aber wie kann ich die Farbe des Rahmens ändern?
Bei Bordercolor ist schon klar, aber ich meine nicht generell, sondern nehmen wir an einer soll rot sein, der andere aber wieder blau, weil ich finde gar keine Information unten zur Farbe?

Und dann noch mein anderes Problem mit der Matrix oder einem Binom
\documentclass{scrartcl} 
\usepackage{amsmath} 
\begin{document} 

\underbrace{\dbinom{0}{0}}_{\text{Hinweis}} 


\end{document} 
wie bekomme ich jetzt die 0 0 eingekreist? Also nur innen ohne die Klammern? Und wie kann man den Hinweis schöner Darstellen, also anstatt der Unterklammer einen einfachen Strich zum Hinweis?[/quote]

von esdd » Sa 4. Jan 2014, 01:55

\tikzmarkend markiert nun mal die rechte untere Ecke und kann nicht wissen, dass die obere Formel länger ist und mit in den Rahmen soll.

Damit das zweite C der oberen Formel mit in dem Rahmen steht, kannst du entweder einfach right offset nutzen (in dem Beispiel würde ein Wert von ca. 0.4 passen) oder du musst die Markierung weiter nach rechts setzen.

In dem konkreten Fall würde ich einfach ein \phantom{C} an die untere Formel anhängen:
\begin{alignat*}{4} 
     AA &+ BB &&=CC\\ 
      A &+ B  &&=C &&\Rightarrow \tikzmarkin[left offset=-.05,below offset=-.1]{gla} AA &&= BB +CC\\ 
        &     &&   &&\Rightarrow  A &&=+ B  +C\phantom{C}\tikzmarkend{gla} \\ 
        &     &&   &&               &&= C+B+A 
\end{alignat*}
Alternativ kann man auch ein zusätzliches & anhängen und das \tikzmarkend dahinter setzen:
\begin{alignat*}{5} 
     AA &+ BB &&=CC\\ 
      A &+ B  &&=C &&\Rightarrow \tikzmarkin[left offset=-.05,below offset=-.1,right offset=-.05]{gla} AA &&= BB +CC\\ 
        &     &&   &&\Rightarrow  A &&=+ B  +C &\tikzmarkend{gla} \\ 
        &     &&   &&               &&= C+B+A 
\end{alignat*}
Gruß
Elke

PS: Angemeldete Nutzer können im Gegensatz zu Gästen die eigenen Posts bearbeiten. Die Vorschaufunktion steht aber beiden zur Verfügung.

Nach oben