Achtung! Der folgende Code ist kein Minimalbeispiel! Er funktioniert nicht. Exakt das ist der Grund meiner Frage: Wie kriege ich die mit Hilfe von Geometric Shape erzeugte Grafik in die Box?

Edit: MWE kompiliert zumindest. Die Lösung ist aber noch nicht optimal.

Open in Online-Editor
\documentclass[headheight=19pt]{scrartcl}
%------------------------------------------------------------------------------
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[norndcorners,customcolors,nofill]{hf-tikz} 
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{shapes.geometric}
\usetikzlibrary[shapes.geometric]

%------------------------------------------------------------------------------
\tikzset{
  winkel/.style={draw=gray,angle eccentricity=.6,angle radius=0.6cm},
  mybox/.style={draw=gray,fill=white,align=left,text width=.9\linewidth}
}
\newbox\mytikzbox 
\newcommand{\tikzBox}[2][\mytikzbox]{% 
   \sbox#1{\pgfinterruptpicture#2\endpgfinterruptpicture}}

%------------------------------------------------------------------------------
\begin{document}
\begin{center}
  \begin{tikzpicture}
    \tikzBox{%
      \begin{tikzpicture}[
    auto,
    mytrapez/.style={
      trapezium,
      draw,
      trapezium left angle=75,
      trapezium right angle=45
    }
  ]
  \node[
    mytrapez,
    minimum width=4cm,
    minimum height=2cm
  ](Trapez){};
  \foreach \placement/\anchor/\text in {%
      below left/bottom left corner/A,
      below right/bottom right corner/B,
      above right/top right corner/C,
      above left/top left corner/D%
    }\coordinate[label=\placement:\text](\text)at(Trapez.\anchor);
%
% Lot von C auf die Strecke AB (http://texwelt.de/wissen/fragen/14661)
  \draw[gray](C) --node[swap]{$h$} ($(A)!(C)!(B)$);
%
% Beschriftung der Trapezseiten (http://texwelt.de/wissen/fragen/14662)
\path(B)--node{$a$}(A);
\path(D)--node{$c$}(C);
\end{tikzpicture}

    }
    \node[mybox,rounded corners,font=\bfseries]
        {\parbox[t]{.6\linewidth}{%
            Blubblub
            }%
          \parbox[t]{.5\linewidth}{\centering%
          \raisebox{\dimexpr-\height+\ht\strutbox\relax}{\usebox\mytikzbox}}};
    \end{tikzpicture}
  \end{center}
\end{document}

Der Versuch, das Beispiel in einem anderen Thread entsprechend zu modifizieren blieb erfolglos. Ich meine folgenden Thread und hätte gerne dass es auch hier so aussieht wie in der von Clemens erstellten Antwort. Antwort von Clemens

gefragt 07 Okt '15, 06:30

runix's gravatar image

runix
5191343
Akzeptiert: 50%

bearbeitet 07 Okt '15, 08:21

2

Da fehlt lediglich das \end{tikzpicture}, also \tikzbox{\begin{tikzpicture}[<optionen>]<zeichnung>\end{tikzbox}}. Außerdem sind die beiden \parbox en zusammen breiter als \linewidth. Eigentlich dürften beide zusammen nicht breiter als die bei text width vorgegebene Textbreite für mybox sein.

(07 Okt '15, 07:17) esdd
3

Aber wie auch immer, wenn Du eigentlich den Vorschlag von @Clemens mit der tcolorbox verwenden willst, was sicher sehr sinnvoll ist, dann passe doch sein Beispiel an und erstelle damit ein MWE. Dazu kannst Du einfach die Zeichnung in seinem Beispiel durch die neue ersetzen. Bei den Optionen der tikzpicture Umgebung muss dann nur noch das baseline=(current bounding box.north) ergänzt werden.

(07 Okt '15, 07:18) esdd

@esdd, kannst du das als Antwort verfassen? Ich bin am Ergebnis dessen interessiert was durch @Clemens' Antwort erzeugt wurde, der Weg ist mir nicht so wichtig. Wenn ich dran herumwerkle, entstehen leider immernoch Fehler.

(07 Okt '15, 07:26) runix
2

Versuch es zunächst selbst und ersetze damit Dein obiges MWE. Du kannst dazu Deine Frage einfach editieren. Wenn ich Dir hier einfach den Code von @Clemens anpasse, hast Du bei der nächsten Zeichnung das gleiche Problem ;-)

(07 Okt '15, 07:35) esdd

Das MWE kompiliert. Das Ergebnis ist aber noch suboptimal.

(07 Okt '15, 08:15) runix

0.5\linewidth + 0.6\linewidth sind natürlich größer als \linewidth und damit zu groß. Das hat @esdd ja auch bereits in ihrem ersten Kommentar erwähnt. Einfacher wird es, wenn man die Box mit der Grafik einfach in ihrer natürlichen Größe verwendet und die \parbox für den Text mit der Restbreite angibt:

Open in Online-Editor
\documentclass[headheight=19pt]{scrartcl}
%------------------------------------------------------------------------------
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{shapes.geometric}

%------------------------------------------------------------------------------
\tikzset{
  winkel/.style={draw=gray,angle eccentricity=.6,angle radius=0.6cm},
  mybox/.style={draw=gray,fill=white,align=left,text width=.9\linewidth}
}
\newbox\mytikzbox 
\newcommand{\tikzBox}[2][\mytikzbox]{% 
   \sbox#1{\pgfinterruptpicture#2\endpgfinterruptpicture}}

%------------------------------------------------------------------------------
\begin{document}
\begin{center}
  \begin{tikzpicture}
    \tikzBox{%
      \begin{tikzpicture}[
    auto,
    mytrapez/.style={
      trapezium,
      draw,
      trapezium left angle=75,
      trapezium right angle=45
    }
  ]
  \node[
    mytrapez,
    minimum width=4cm,
    minimum height=2cm
  ](Trapez){};
  \foreach \placement/\anchor/\text in {%
      below left/bottom left corner/A,
      below right/bottom right corner/B,
      above right/top right corner/C,
      above left/top left corner/D%
    }\coordinate[label=\placement:\text](\text)at(Trapez.\anchor);
%
% Lot von C auf die Strecke AB (http://texwelt.de/wissen/fragen/14661)
  \draw[gray](C) --node[swap]{$h$} ($(A)!(C)!(B)$);
%
% Beschriftung der Trapezseiten (http://texwelt.de/wissen/fragen/14662)
\path(B)--node{$a$}(A);
\path(D)--node{$c$}(C);
\end{tikzpicture}

    }
    \node[mybox,rounded corners,font=\bfseries]
        {\parbox[t]{\dimexpr\linewidth-\wd\mytikzbox}{%
            Blubblub
            }%
          \raisebox{\dimexpr-\height+\ht\strutbox\relax}{\usebox\mytikzbox}};
    \end{tikzpicture}
  \end{center}
\end{document}

\wd\irgendeinebox ist dabei die Breite des Box-Registers \irgendeinebox.

Übrigens könnte man \dimexpr einsparen, wenn man auch das Paket calc (nicht zu verwechseln mit der bereits geladenen, gleichnamigen tikz-Bibliothek) laden würde.

Außerdem habe ich mir erlaubt auch shapes.geometry nur einmal zu laden und hf-tikz wird für das Beispiel auch nicht benötigt. Würde es benötigt, könnte man sich stattdessen tikz sparen, weil hf-tikz das natürlich selbst bereits lädt.

Ergebnis

Permanenter link

beantwortet 07 Okt '15, 08:43

saputello's gravatar image

saputello
18.4k22352

bearbeitet 07 Okt '15, 11:42

calc hast du doch geladen?!

(07 Okt '15, 11:04) runix

@runix: Aber nur als tikz-Library und nicht als Paket. Nur das Paket hat Einfluss auf \setlength, \raisebox, \parbox, \makebox, minipage etc.

(07 Okt '15, 11:37) saputello
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×6

Frage gestellt: 07 Okt '15, 06:30

Frage wurde angeschaut: 1,213 Mal

Zuletzt aktualisiert: 07 Okt '15, 15:15