Bilder in minipage nicht mittig Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


ogel

Bilder in minipage nicht mittig

Beitrag von ogel »

Ich habe ein Problem mit dem zentrieren von selbst erstellten Grafiken in minipages. Hier mein code:
\documentclass[]{scrartcl}
\usepackage[utf8]{inputenc} 
\usepackage{fullpage}
\usepackage{fourier}
\usepackage{tikz}
\usetikzlibrary{arrows,
	shapes,positioning}
\usepackage{tkz-graph}
                

\begin{document}
  \begin{minipage}{0.5\textwidth} 
  	\begin{center}
	\begin{tikzpicture}[node distance   = 3 cm]
	\tikzset{VertexStyle/.style = {draw=black,shape=circle,fill=black,minimum size=7pt, inner sep = 0}}
	\tikzset{EdgeStyle/.style   = {thick,
			double          = black,
			double distance = 0pt}}
	\tikzset{LabelStyle/.style =   {draw,
			fill           = white,
			text           = black}}
	\node[VertexStyle, label=below:B](B){};
	\node[VertexStyle,left=of B, label=left:A](A){};
	\node[VertexStyle,right=of B, label=right:C](C){};
	\node[VertexStyle,above=of B, label=above:D](D){};     
	\draw[EdgeStyle](B) to node[left]{1} (D) ;
	\tikzset{EdgeStyle/.append style = {bend left}}
	\draw[EdgeStyle](A) to node[above]{2} (B);
	\draw[EdgeStyle](B) to node[below]{3} (A);
	\draw[EdgeStyle](B) to node[above]{4} (C);
	\draw[EdgeStyle](C) to node[below]{5} (B);
	\draw[EdgeStyle](A) to node[left]{6} (D);
	\draw[EdgeStyle](D) to node[right]{7} (C);

  \end{tikzpicture}
  \end{center}
\end{minipage} 
\quad
\begin{minipage}{0.5\textwidth} 
		\begin{center}
	\begin{tikzpicture}[node distance   = 3 cm]
	\tikzset{VertexStyle/.style = {draw=black,shape=circle,fill=black,minimum size=7pt, inner sep = 0}}
	\tikzset{EdgeStyle/.style   = {thick,
			double          = black,
			double distance = 0pt}}
	\tikzset{LabelStyle/.style =   {draw,
			fill           = white,
			text           = black}}
	\node[VertexStyle, label=below:B](B){};
	\node[VertexStyle,left=of B, label=left:A](A){};
	\node[VertexStyle,right=of B, label=right:C](C){};
	\node[VertexStyle,above=of B, label=above:D](D){};     
	\draw[EdgeStyle](B) to node[left]{1} (D) ;
	\tikzset{EdgeStyle/.append style = {bend left}}
	\draw[EdgeStyle](A) to node[above]{2} (B);
	\draw[EdgeStyle](B) to node[below]{3} (A);
	\draw[EdgeStyle](B) to node[above]{4} (C);
	\draw[EdgeStyle](C) to node[below]{5} (B);
	\draw[EdgeStyle](A) to node[left]{6} (D);
	\draw[EdgeStyle](D) to node[right]{7} (C);
  
  \end{tikzpicture}
  \end{center}
\end{minipage}
  

\begin{center}
  	  \begin{tikzpicture}[node distance   = 3 cm]
  	  \tikzset{VertexStyle/.style = {draw=black,shape=circle,fill=black,minimum size=7pt, inner sep = 0}}
  	  \tikzset{EdgeStyle/.style   = {thick,
  	  		double          = black,
  	  		double distance = 0pt}}
  	  \tikzset{LabelStyle/.style =   {draw,
  	  		fill           = white,
  	  		text           = black}}
  	  \node[VertexStyle, label=left:A](A){};
  	  \node[VertexStyle,right=of A, label=below:B](B){};
  	  \node[VertexStyle,right=of B, label=right:C](C){};
  	  \node[VertexStyle,above=of B, label=above:D](D){};     
  	  \draw[EdgeStyle](B) to node[left]{1} (D) ;
  	  \tikzset{EdgeStyle/.append style = {bend left}}
  	  \draw[EdgeStyle](A) to node[above]{2} (B);
  	  \draw[EdgeStyle](B) to node[below]{3} (A);
  	  \draw[EdgeStyle](B) to node[above]{4} (C);
  	  \draw[EdgeStyle](C) to node[below]{5} (B);
  	  \draw[EdgeStyle](A) to node[left]{6} (D);
  	  \draw[EdgeStyle](D) to node[right]{7} (C);
  	  
  	  \end{tikzpicture}
  	   \end{center}	  
  	  

\end{document}
Wenn ich das konvertiere, dann ist der dritte Graph perfekt mittig, die ersten zwei, die ich mit minipages nebeneinander erstellt habe, sind es aber nicht. Wo liegt der Fehler? Gibt es generell etwas, das ich verbessern oder beachten sollte? Bin totaler Anfänger mit Latex.

Noch so einer

Beitrag von Noch so einer »

\parindent + Wortabstand + .5\textwidth + .5\textwidth + 1em > \textwidth
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{fullpage}
\usepackage{fourier}
\usepackage{tikz}
\usetikzlibrary{arrows,
shapes,positioning}
\usepackage{tkz-graph}

\begin{document}
\noindent\begin{minipage}{0.5\textwidth}
\centering
\begin{tikzpicture}[node distance = 3 cm]
\tikzset{VertexStyle/.style = {draw=black,shape=circle,fill=black,minimum size=7pt, inner sep = 0}}
\tikzset{EdgeStyle/.style = {thick,
double = black,
double distance = 0pt}}
\tikzset{LabelStyle/.style = {draw,
fill = white,
text = black}}
\node[VertexStyle, label=below:B](B){};
\node[VertexStyle,left=of B, label=left:A](A){};
\node[VertexStyle,right=of B, label=right:C](C){};
\node[VertexStyle,above=of B, label=above:D](D){};
\draw[EdgeStyle](B) to node[left]{1} (D) ;
\tikzset{EdgeStyle/.append style = {bend left}}
\draw[EdgeStyle](A) to node[above]{2} (B);
\draw[EdgeStyle](B) to node[below]{3} (A);
\draw[EdgeStyle](B) to node[above]{4} (C);
\draw[EdgeStyle](C) to node[below]{5} (B);
\draw[EdgeStyle](A) to node[left]{6} (D);
\draw[EdgeStyle](D) to node[right]{7} (C);
\end{tikzpicture}%
\end{minipage}%
\begin{minipage}{0.5\textwidth}
\centering
\begin{tikzpicture}[node distance = 3 cm]
\tikzset{VertexStyle/.style = {draw=black,shape=circle,fill=black,minimum size=7pt, inner sep = 0}}
\tikzset{EdgeStyle/.style = {thick,
double = black,
double distance = 0pt}}
\tikzset{LabelStyle/.style = {draw,
fill = white,
text = black}}
\node[VertexStyle, label=below:B](B){};
\node[VertexStyle,left=of B, label=left:A](A){};
\node[VertexStyle,right=of B, label=right:C](C){};
\node[VertexStyle,above=of B, label=above:D](D){};
\draw[EdgeStyle](B) to node[left]{1} (D) ;
\tikzset{EdgeStyle/.append style = {bend left}}
\draw[EdgeStyle](A) to node[above]{2} (B);
\draw[EdgeStyle](B) to node[below]{3} (A);
\draw[EdgeStyle](B) to node[above]{4} (C);
\draw[EdgeStyle](C) to node[below]{5} (B);
\draw[EdgeStyle](A) to node[left]{6} (D);
\draw[EdgeStyle](D) to node[right]{7} (C);
\end{tikzpicture}%
\end{minipage}

\begin{center}
\begin{tikzpicture}[node distance = 3 cm]
\tikzset{VertexStyle/.style = {draw=black,shape=circle,fill=black,minimum size=7pt, inner sep = 0}}
\tikzset{EdgeStyle/.style = {thick,
double = black,
double distance = 0pt}}
\tikzset{LabelStyle/.style = {draw,
fill = white,
text = black}}
\node[VertexStyle, label=left:A](A){};
\node[VertexStyle,right=of A, label=below:B](B){};
\node[VertexStyle,right=of B, label=right:C](C){};
\node[VertexStyle,above=of B, label=above:D](D){};
\draw[EdgeStyle](B) to node[left]{1} (D) ;
\tikzset{EdgeStyle/.append style = {bend left}}
\draw[EdgeStyle](A) to node[above]{2} (B);
\draw[EdgeStyle](B) to node[below]{3} (A);
\draw[EdgeStyle](B) to node[above]{4} (C);
\draw[EdgeStyle](C) to node[below]{5} (B);
\draw[EdgeStyle](A) to node[left]{6} (D);
\draw[EdgeStyle](D) to node[right]{7} (C);

\end{tikzpicture}
\end{center}


\end{document}

ogel

Beitrag von ogel »

Danke, jetzt ist es symmetrisch, auch wenn ich die Antwort nicht verstanden habe.

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

m Anfange eines Absatzes hast du den Absatzeinzug, zwischen den Bildern ist ein Wortzwischenraum und am Ende noch ein Abstand von 1em (Warum erhalte ich eine Overfull \hbox mit der parskip-Option?, wobei das hier gar nicht sein sollte). Das alles kommt zu deiner Textbreite dazu und schiebt alles über den rechten Rand.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

ogel

Beitrag von ogel »

Ah, ok, danke. Ich hätte noch eine Frage:

Ich möchte auch noch an eine Ecke eine Schleife machen. Ich habe dazu
\tikzset{EdgeStyle/.append style = {loop}}
	\draw[EdgeStyle](D) to node[right]{} (D); 	
benutzt. Leider ist die Schleife sehr klein. Gibt es eine Möglichkeit die Schleifengröße zu ändern?

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Das geht mit scale=<faktor>.

Allerdings stört meiner Meinung nach das vorher an den EdgeStyle angehangene bend left. Deshalb habe ich für das Zeichnen der anderen Verbindungen jetzt eine scope mit dieser Anpassung verwendet. Als EdgeStyle möchtest Du gar keine Doppellinie, sondern einfach nur eine breitere? Dann nimm line width=1.6pt. Und wenn die Stile in mehreren Bildern verwendet werden sollen, dann definiere sie in der Präambel.
\documentclass[margin=5pt]{standalone} 
\usepackage[utf8]{inputenc} 
\usepackage{tikz} 
\usetikzlibrary{positioning} 

\tikzset{
  VertexStyle/.style = {
    draw=black,shape=circle,fill=black,minimum size=7pt, inner sep = 0pt}, 
    EdgeStyle/.style = {line width=1.6pt}, 
    LabelStyle/.style = {draw,fill = white,text = black}
  } 

\begin{document} 
\begin{tikzpicture}[node distance = 3 cm]
\node[VertexStyle,label=below:B](B){};
\foreach \p/\pos in {A/left,C/right,D/above}
  \node[VertexStyle,\pos=of B, label=\pos:\p](\p){}; 
%
\draw[EdgeStyle](B) to node[left]{1} (D);
%
\begin{scope}[EdgeStyle,bend left]
  \draw(A) to node[above]{2} (B); 
  \draw(B) to node[below]{3} (A); 
  \draw(B) to node[above]{4} (C); 
  \draw(C) to node[below]{5} (B); 
  \draw(A) to node[left]{6} (D); 
  \draw(D) to node[right]{7} (C);
\end{scope}
%
\draw[EdgeStyle,loop,scale=4](D) to node[right]{} (D);
%
\end{tikzpicture}% 
\end{document}
Gruß
Elke

PS: Bitte mache für neue Fragen immer einen neuen Thread auf.

Besserwisser

Beitrag von Besserwisser »

Johannes_B hat geschrieben:m Anfange eines Absatzes hast du den Absatzeinzug, zwischen den Bildern ist ein Wortzwischenraum
und ein explizites \quad, was einem Abstand von 1em entspricht.
Johannes_B hat geschrieben:und am Ende noch ein Abstand von 1em
Nö.

ogel

Beitrag von ogel »

Danke noch mal an alle, werde für weitere Fragen, dann jeweils ein weiteres Topic aufmachen. Vorerst, denke ich, weiß ich genug um die paar Graphen, die ich erstellen will so zu machen, wie ich mir das vorstelle.

Antworten