Seite 1 von 1

Bilder in minipage nicht mittig

Verfasst: Fr 8. Mai 2015, 19:05
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.

Verfasst: Fr 8. Mai 2015, 19:20
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}

Verfasst: Sa 9. Mai 2015, 13:40
von ogel
Danke, jetzt ist es symmetrisch, auch wenn ich die Antwort nicht verstanden habe.

Verfasst: Sa 9. Mai 2015, 13:47
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.

Verfasst: Sa 9. Mai 2015, 15:17
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?

Verfasst: Sa 9. Mai 2015, 16:53
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.

Verfasst: Sa 9. Mai 2015, 18:58
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ö.

Verfasst: Sa 9. Mai 2015, 21:56
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.