PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere tikspicture-Grafiken nebeneinander



subaia
08-07-2013, 17:43
Hallo zusammen,

ich möchte mehrere farbige Boxen nebeneinander stellen (wie im Anhang "Grafik richtig.png). Dafür habe ich mit der tikspiture Umgebung Boxen gemalt. Nun habe ich keine Idee wie ich sie nebeneinander bekomme. Sie werden egal wie die Koordinaten sind untereinander angeordet (siehe Anhang "Grafik falsch.png). Kann jemand von euch weiterhelfen?



%Title Page without header and footer-------------------------------------------------------------

\newgeometry{left=-0.4mm, right=-0.4mm, top=-0.4mm, bottom=0mm}
%\pagecolor{grey}

\begin{tikzpicture}
%Ein Punkt in allen 4 Ecken des Headers
\node (lowerL) at (0,0) {};
\node (upperL) at (0,2) {};
\node (upperR) at (20.75,2) {};
\node (lowerR) at (20.75,0) {};
\draw[draw=black,fill=black](lowerL.center) -- (upperL.center) -- (upperR.center)-- (lowerR.center) -- (lowerL.center);
\end{tikzpicture}

\vspace{-0.2cm}

\begin{tikzpicture}
\node (lowerL) at (0,0) {};
\node (upperL) at (0,5.5) {};
\node (upperR) at (5.2,5.5) {};
\node (lowerR) at (5.2,0) {};
\draw[shade,shading=axis,top color=white,bottom color=black,draw=white] (lowerL.center) -- (upperL.center) -- (upperR.center)-- (lowerR.center) -- (lowerL.center);
\end{tikzpicture}

\vspace{-0.2cm}

\begin{tikzpicture}
\node (lowerL) at (5.2,0) {};
\node (upperL) at (5.2,5.5) {};
\node (upperR) at (10.4,5.5) {};
\node (lowerR) at (10.4,0) {};
\draw[shade,shading=axis,top color=white,bottom color=black,draw=white] (lowerL.center) -- (upperL.center) -- (upperR.center)-- (lowerR.center) -- (lowerL.center);
\end{tikzpicture}

\vspace{-0.2cm}

\begin{tikzpicture}
\node (lowerL) at (5.2,0) {};
\node (upperL) at (5.2,5.5) {};
\node (upperR) at (10.4,5.5) {};
\node (lowerR) at (10.4,0) {};
\draw[shade,shading=axis,top color=white,bottom color=black,draw=white] (lowerL.center) -- (upperL.center) -- (upperR.center)-- (lowerR.center) -- (lowerL.center);
\end{tikzpicture}


Viele Grüße

rstuby
09-07-2013, 09:35
Erst mal die Leerzeilen weglassen. Die bedeuten nämlich dasselbe wie \par, und zwar einen neuen Absatz.

sommerfee
09-07-2013, 09:50
...und \vspace setzt einen vertikalen Abstand, das ist auch suboptimal, wenn man die Graphiken horizontal angeordnet haben möchte.

esdd
09-07-2013, 16:57
Hallo,

hier ist mal noch ein Vorschlag, bei dem u.a. \coordinate für die Punkte verwendet wird:

\documentclass{scrartcl}
\usepackage{geometry}

\usepackage{tikz}
\tikzset{myshade/.style={shade,shading=axis,top color=white,bottom color=black}}

\newcommand\meinebox{%
\begin{tikzpicture}
\coordinate(lowerL)at(0,0){};
\coordinate(upperR)at(5.2,5.5);
\path[myshade] (lowerL)rectangle(upperR);
\end{tikzpicture}%
}

\begin{document}

\newgeometry{margin=0mm}

\noindent
\begin{tikzpicture}
\coordinate(lowerL)at(0,0);
\coordinate(upperR)at(\textwidth,2);
\fill[black](lowerL)rectangle(upperR);
\end{tikzpicture}


\noindent\meinebox\hfill\meinebox\hfill\meinebox\h fill\meinebox


\noindent\meinebox\hfill\meinebox\hfill\meinebox\h fill\meinebox

\end{document}
Gruß
Elke

subaia
10-07-2013, 14:04
Hallo Elke,

mit Deinem Vorschlag bin ich einen großen Schritt voran gekommen. Das Grundlayout ist jetzt genauso wie ich es haben möchte (siehe Titlepage_ohneBild). Danke erstmal!

Nun möchte ich in einigen der kleinen Boxen ein Bild einfügen (siehe Titlepage_mit Bild). Meine Idee war, einen Eckpunkt auszuwählen, bspw. rechtes unten (lowerR?) und das Bild nach rechts oben einzufügen. Ähnlich diesem Muster:

\node (A) at (20,7) {};
\draw (A) node[left] {\example-image-A.jpg};

Aber es geht nicht. Hat einer von Euch noch eine Idee, wie man das hinkriegen kann?

Den aktuellen Code habe ich unten angefügt.

Vielen Dank




\documentclass[
12pt, % Schriftgroesse 12pt
a4paper, % Layout fuer Din A4
twoside, % einseitig
BCOR12mm, % Korrektur f�r die Bindung
DIV12, % DIV-Wert fuer die Erstellung des Satzspiegels, siehe scrguide
openright, % Kapitel k�nnen nur auf der rechten Seiten beginnen
bibliography=totoc, % Literaturverz. wird ins Inhaltsverzeichnis eingetragen
listof=totoc, % Abbildungs und TabellenVZ ins InhaltsVZ
numbers=noenddot,
noonelinecaption, % einzeilige Texte werden nicht zentriert
tablecaptionabove, % korrekte Abstaende bei TabellenUEBERschriften
fleqn, % fleqn: Glgen links (statt mittig)
%draft % Keine Bilder in der Anzeige, overfull hboxes werden angezeigt
]{scrbook}

\usepackage{geometry}
\usepackage{tikz}
\usepackage{mwe}

\newgeometry{top=1.5cm, bottom = 2cm, left =1.8cm, right=3cm} %R�nder des Deckblatts anpassen

\tikzset{myshade/.style={shade,shading=axis,top color=black,bottom color=black}}

\newcommand\meinebox{%
\begin{tikzpicture}
\coordinate(lowerL)at(0,0){};
\coordinate(upperR)at(5.03,5.5);
\path[myshade] (lowerL)rectangle(upperR);
\end{tikzpicture}%
}

\begin{document}

\newgeometry{left=-0.43cm, right=0cm, top=0cm, bottom=0cm}

\def\logo{\includegraphics[height=1.8cm]{example-image-A.jpg}}

\begin{tikzpicture}
\centering
%Ein Punkt in allen 4 Ecken des Headers
\node (lowerL) at (0,0) {};
\node (upperL) at (0,2) {};
\node (upperR) at (20.75,2) {};
\node (lowerR) at (20.75,0) {};
\draw[draw=black,fill=black](lowerL.center) -- (upperL.center) -- (upperR.center)-- (lowerR.center) -- (lowerL.center);
\node[anchor=north east] (logo) at (upperR) {\logo};
\end{tikzpicture}

\hspace{0.15cm}\meinebox\hspace{0.2cm}\meinebox\hs pace{0.2cm}\meinebox\hspace{0.2cm}\meinebox

\vspace{0.1cm}

\hspace{0.15cm}\meinebox\hspace{0.2cm}\meinebox\hs pace{0.2cm}\meinebox\hspace{0.2cm}\meinebox

\vspace{0cm}

\begin{tikzpicture}
%Ein Punkt in allen 4 Ecken des Headers
\node (lowerL) at (0,0) {};
\node (upperL) at (0,0.5) {};
\node (upperR) at (20.75,0.5) {};
\node (lowerR) at (20.75,0) {};
\draw[draw=black,fill=black](lowerL.center) -- (upperL.center) -- (upperR.center)-- (lowerR.center) -- (lowerL.center);
\end{tikzpicture}

\begin{tikzpicture}
%Ein Punkt in allen 4 Ecken des Headers
\node (lowerL) at (0,0) {};
\node (upperL) at (0,11) {};
\node (upperR) at (20.75,11) {};
\node (lowerR) at (20.75,0) {};
\node (A) at (20,7) {};
\node (B) at (20,5.9) {};
\node (C) at (20,5.3) {};
\draw[draw=white](lowerL.center) -- (upperL.center) -- (upperR.center)-- (lowerR.center) -- (lowerL.center);
\draw (A) node[left] {\fontsize{34}{48} \selectfont How-To};
\draw (B) node[left] {\small August 2013};
\draw (C) node[left] {\small Version 1.0};
\end{tikzpicture}

\normalsize
\newpage

\end{document}

esdd
10-07-2013, 17:09
Hallo,

warum gibst du für die Ränder negative Werte an? Und \centering hat in innerhalb eines tikzpictures keine Wirkung.

Noden haben ohne Änderung von inner sep und outer sep eine Mindestgröße. Wenn du Punkte haben willst, dann verwende \coordinate. Wenn du nur ein Rechteck zeichnen willst, brauchst auch nicht für alle Eckpunkte Noden oder Koordinaten definieren.

Da du in deinem Dokument einen Absatzeinzug definiert hast, muss an den Stellen, wo dieser unerwünscht ist, ein \noindent stehen.

Hier ist mal noch ein Vorschlag, bei dem Beispielbilder eingefügt werden. Dabei wird die max. Breite bzw. Höhe der Boxen ausgenutzt, aber das Seitenverhältnis beibehalten.


\documentclass[12pt]{scrbook}

\usepackage{geometry}
\usepackage{tikz}
\usepackage{mwe}

\tikzset{myshade/.style={shade,shading=axis,top color=black,bottom color=black}}

\newcommand\meinebox{%
\begin{tikzpicture}
\coordinate(lowerL)at(0,0){};
\coordinate(upperR)at(5.03,5.5);
\path[myshade] (lowerL)rectangle(upperR);
\end{tikzpicture}%
}

\newcommand\meinbild[1]{%
\begin{tikzpicture}
\coordinate(lowerL)at(0,0){};
\coordinate(upperR)at(5.03,5.5);
\path[myshade] (lowerL)rectangle(upperR);
\node[anchor=south west, inner sep=0.1cm,outer sep=0pt] at (lowerL)%
{\includegraphics[width=4.83cm, height=5.3cm,keepaspectratio]{#1}};
\end{tikzpicture}%
}

\begin{document}

\newgeometry{margin=0.2cm}

\noindent\begin{tikzpicture}
\path[myshade](0,0) rectangle (\textwidth,2)%
node[anchor=north east,inner sep=1mm, outer sep=0pt] (logo){\includegraphics[height=1.8cm]{example-image-A}};
\end{tikzpicture}

\vspace{0.1cm}

\noindent\meinebox\hfill\meinbild{example-image-A}\hfill\meinebox\hfill\meinbild{example-image-b}

\vspace{0.1cm}

\noindent\meinbild{example-image-10x16}\hfill\meinebox\hfill\meinbild{example-image-c}\hfill\meinebox

\vspace{0.1cm}

\noindent\begin{tikzpicture}
\path[myshade](0,0) rectangle (\textwidth,0.5);
\end{tikzpicture}

\noindent\begin{tikzpicture}
\path (0,0)rectangle(\textwidth,11);
\node[left] at (\textwidth,7){\Huge How-To};
\node[left] at (\textwidth,5.9){\small August 2013};
\node[left] at (\textwidth,5.3) {\small Version 1.0};
\end{tikzpicture}

\end{document}
Gruß
Elke

esdd
10-07-2013, 17:17
Falls die Bilder in den Boxen horizontal zentriert sein sollen, dann geht das mit

\usetikzlibrary{calc}
\newcommand\meinbild[1]{%
\begin{tikzpicture}
\coordinate(lowerL)at(0,0){};
\coordinate(upperR)at(5.03,5.5);
\path[myshade] (lowerL)rectangle(upperR);
\node[anchor=south, inner sep=0.1cm,outer sep=0pt] at ($(lowerL)!0.5!(lowerL-|upperR)$)%
{\includegraphics[width=4.83cm, height=5.3cm,keepaspectratio]{#1}};
\end{tikzpicture}%
}

subaia
10-07-2013, 18:45
Danke für die klasse Hinweise! So funktioniert's. :)