Minipage, 2x TikZ und viel Probleme

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


icecoldkilla
Forum-Anfänger
Forum-Anfänger
Beiträge: 26
Registriert: So 27. Dez 2015, 16:16

Minipage, 2x TikZ und viel Probleme

Beitrag von icecoldkilla »

Hallo,

ich will auf einer Seite zwei Tikz Zeichnungen nebeneinander haben. Diese habe ich beide in eine minipage eingebaut.
1. Die Grafikbezeichnungen habe ich mittlerweile auf eine Höhe gebracht, aber des rechte Diagramm is viel zu weit rechts. Ich habe es auch schon mal geschafft es weiter links anzuordnen, dann war aber das rechte Bild immer noch zu groß skaliert.
2. Wenn ich eine \fbox um die zweite Grafik mache kommen ca. hundertmillionen Fehler, aber eine Recherche im Netz bringt mich hier nicht weiter bisher. Wie kann ich mir die \fbox trotzdem anzeigen lassen?
3. Hat zwar nichts mit dem Layout zu tun, sondenr mit der allgemeinen Verständnis von TikZ.
Wenn ich
 \draw [x,y,z]
    (0,0) -- (4,0) node[midway, above]
    (0,0) -- (0,-4)node[midway, left];
schreibe, sollten mir doch alle Argumente von draw in die folgenden Zeilen übernommen werden oder? Habe ich in meinem Programm gemacht, dann waren die Striche alle da, auch in blau, aber die Pfeilspitzen waren nur bei einem einzigen Pfeil dran. Die Codezeile stand aber nur zwischendrinen.
Jetzt hat halt jede Zeile sein eigenes \draw was aber deutlich aufwändiger ist und unübersichtlicher.
Was mache ich denn da schon wieder falsch?


LG
icecoldkilla

\begin{figure}
\fbox{
	\begin{minipage}[b]{0.5\textwidth}
		\centering	
			\begin{circuitikz}[european voltages]
				\draw (0,4)
				to [R=$R_1$, o-*] (0,2)
				to [C=$C_1$, *-o] (0,0);
			\end{circuitikz}
			\caption{Beispiel RC Glied}		
	\end{minipage}
}
	\begin{minipage}[b]{\linewidth}
		\centering
		\begin{tikzpicture}
		\draw [<->]
			  (0,-5) coordinate (B) node[below]{$Img$}
			-- (0,0) coordinate (A)
			-- (5,0) coordinate (C) node[right]{$Re$};
		\draw [->,thick, color=blue]
			(0,0) -- (4,0) node[midway, above]{$U\textsubscript{R1}$};
		\draw [->,thick, color=blue]
			(0,0) -- (0,-4)node[midway, left]{$U\textsubscript{C1}$};
		\draw [->,thick, color=blue]
			(0,0) -- (4,-4)node[midway, left]{$U$};
		\draw [->,thick, color=blue]
			(4,0) -- (4,-4)node[midway, left]{$U\textsubscript{C1}$};
		\draw
			[->, very thick, color=red] (0,0) -- (2,0)node[midway, above]{$i$};
		\draw
			pic ["$\varphi$", draw, ->, thick, angle radius =1cm, angle eccentricity=0.6] {angle=B--A--C};
		\end{tikzpicture}
		\caption{Zeigerdiagramm RC Glied}
	\end{minipage}

\end{figure}

EDIT: AHA, anscheinend liegt das Problem mit der fbox an dem Winkel phi, den ich im rechten Diagramm eintrage. Bzw. am Dollar oder an den Gänsefüßchen. Scheint da Probleme mit Babel zu geben.
[/code]

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

Beitrag von esdd »

Leider hast Du kein Minimalbeispiel erstellt und damit kann man Dir nicht einfach einen Lösungsvorschlag machen.

Deine linke Zeichnung steckst Du in eine minipage, die schon die halbe Textbreite einnehmen soll. Hinzu kommen noch die Abstände zwischen dem Rahmen der \fbox und der minipage. Du hättest für die rechte Zeichnung also nur noch etwas weniger Platz als für die linke. Aber für deren minipage gibst Du sogar eine Breite von \linewidth vor ... Innerhalb dieser Breite zentrierst Du die Zeichnung. Sie landet deshalb zwangsläufig irgendwie im Rand. Falls Du Dich gerade fragst, was der Unterschied zwischen \textwidth und \linewidth ist: Hier hat Clemens das ausführlich erklärt.

Du musst also passendere Breiten für Deine minipages angeben. Eventuell würde es auch Sinn machen, statt minipage die Umgebung varwidth aus dem gleichnamigen Paket varwidth zu nutzen.

Bei dem Winkel würde ich statt der quotes Syntax einfach pic text=$\varphi$" verwenden. Ansonsten gibt es noch die Möglichkeit mit \shorthandoff{"} das babel shorthand innerhalb der figure Umgebung zu deaktivieren.

Mit \draw[->] ...; legst Du fest, dass am Ende des Gesamtpfades die Pfeilspitze eingefügt wird. Du kannst aber einen scope verwenden, um für aufeinanderfolgende \draw Befehle die gleichen Optionen zu setzen. Oder Du nimmst edge.

icecoldkilla
Forum-Anfänger
Forum-Anfänger
Beiträge: 26
Registriert: So 27. Dez 2015, 16:16

Beitrag von icecoldkilla »

Ok, ich hab das jetzt schon besser hingekriegt mit \centering vor der minipage und skalierent hab ich das rechte Bild mit \scalebox.
So weit bin ich damit zufrieden.

Leider konnte ich aber keine Verbesserung bei dem Winkel Phi erkennen. Mit text="$\varphi$" läuft zwar das Programm einwandfrei durch, sowohl mit \fbox als auch ohne, dafür wird der Winkel nicht in der Grafik angezeigt. Wenn ich "text=" rauslösche dann gibt es wieder Kompilierfehler.

Hier das Minimalbeispiel:
\documentclass[parskip=full]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[autostyle=true,german=quotes]{csquotes}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage{booktabs}
\usepackage{marvosym}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{float}
\usepackage{tikz}
\usepackage{varwidth}
\usetikzlibrary{angles, intersections, snakes, quotes, babel}
\usepackage {tablefootnote}
\usepackage[european, europeanvoltages]{circuitikz}
\usepackage{caption}
\usepackage{graphicx}
\usepackage{gensymb}
\usepackage{todonotes}
\usepackage{amsmath, amsfonts, amssymb}
\usepackage[per-mode=fraction, decimalsymbol=comma]{siunitx}
\usepackage{babelbib}
\usepackage{textcomp}
\usepackage[hidelinks]{hyperref}
\begin{document}
	
\begin{figure}		
		\centering
		\fbox{			
			\begin{minipage}[b]{0.5\linewidth}
				\scalebox{0.7}
				{
					\begin{tikzpicture}
						\draw [<->]
						(0,-5) coordinate (B) node[below]{$Img$}
						-- (0,0) coordinate (A)
						-- (5,0) coordinate (C) node[right]{$Re$}
						pic [text="$\varphi$", draw, ->, thick, angle radius =1cm, angle eccentricity=0.6] {angle=B--A--C};
					\end{tikzpicture}
				}

			\end{minipage}
		}	
	\end{figure}
\end{document}
Es läuft ohne Fehler durch, doch das phi ist wird nicht eingezeichnet. Nimmt man nun "text=" raus, gibt es Fehler en mass. Diese lösen sich nur aus, wenn ich sowohl die \fbox als auch die \scalebox entferne. D.h. diese zwei Sachen zwicken sich mit "$\varphi$".

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

Beitrag von esdd »

Bei mir stand auch
pic text=$\varphi$
Allerdings hatte ich versehentlich die " dahinter stehen lassen.
\documentclass[parskip=full]{scrbook}
\usepackage[ngerman]{babel} 
\usepackage{tikz} 
\usetikzlibrary{angles, quotes, babel}

\usepackage{varwidth}

\begin{document} 
\begin{figure}
    \centering 
    \fbox{%
      \begin{varwidth}[b]{\linewidth} 
         \scalebox{0.7} 
         {%
            \begin{tikzpicture} 
               \draw [<->] 
               (0,-5) coordinate (B) node[below]{$Img$} 
               -- (0,0) coordinate (A) 
               -- (5,0) coordinate (C) node[right]{$Re$} 
               pic [pic text=$\varphi$, draw, ->, thick, angle radius =1cm, angle eccentricity=0.6] {angle=B--A--C};
            \end{tikzpicture}%
         }%
      \end{varwidth}%
    }
\end{figure}
\end{document}
Achte darauf, dass Zeilenenden in der Regel ein Leerzeichen einfügen. Deshalb habe ich an einigen Stellen % am Zeilenende eingefügt. Siehe dazu Was sollen die Kommentarzeichen (\%) am Ende der Zeile?

icecoldkilla
Forum-Anfänger
Forum-Anfänger
Beiträge: 26
Registriert: So 27. Dez 2015, 16:16

Beitrag von icecoldkilla »

Ah super, so hats geklappt.

Wie is das hier eigentlich im Forum, muss ich für jedes Problem nen neuen Thread aufmachen? Ich hock nämlich seit den letzten 3 Stunden schon wieder am nächsten Problem, aber die Tricks im Internet funktionieren nicht wirklich. Langsam regt mich die Latex scheiße echt auf :lol:
Da kann Word mittlerweile fast alles was man so braucht, nur deutlich einfacher.

Edit: Ach ich schmeiß den Code mal rein, viellecht weiß ja jemand was bevor ich wieder nen Thread eröffnen muss.

Ich will hier eigentlich nur die Textzeile links ausrichten:
\begin{document}
\begin{eqnarray}
	X_C = \frac{U_C}{I_C} = \frac{1}{\omega\cdot C} = \frac{1}{2\cdot \pi \cdot f \cdot C}\\
	\text{Umgestellt nach C}\\
	C = \frac{I_C}{2 \cdot \ \pi \cdot f \cdot U_C}
\end{eqnarray}
\end{document}

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2752
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

icecoldkilla hat geschrieben:Wie is das hier eigentlich im Forum, muss ich für jedes Problem nen neuen Thread aufmachen?
Du musst nicht. Doch als irgendwo unten an ein anderes Problem angehängtes weiteres Problem, das auch nicht mehr zur Überschrift passt, da geht es leicht unter. Das lesen weniger Leute, auch da man erstmal oben schon auf etwas stößt, was sich als gelöst herausstellt. Warum über Brief-Adressfeld schreiben, wenn es zuerst um Grafik mit TikZ geht, z.B.? Dass es Dein Thread ist, ist nur ein Sortierkriterium für Dich, nicht für andere. Oder etwas bequemer für Dich, aber ebenfalls nicht für andere. Ich les nicht 2 Seiten, um ein drunterstehendes Problem zu bearbeiten.

Kurz gesagt, mach einfach ein neues Thema auf. Ist das schwer? Nur weil man eine Überschrift angeben muss? Dann wird das neue Problem auch besser gesehen als in einem alten Thread ganz unten.
icecoldkilla hat geschrieben:Ich hock nämlich seit den letzten 3 Stunden schon wieder am nächsten Problem, aber die Tricks im Internet funktionieren nicht wirklich.
Frag einfach, hier ist zwar auch das Internet :-) doch wir können das Problem ja direkt anschauen und oft schon aus dem Kopf spontan eine Lösung aufzeigen. Wenn es klar mit Code benannt ist.
icecoldkilla hat geschrieben:Langsam regt mich die Latex scheiße echt auf ...
Da kann Word mittlerweile fast alles
Du gehst bestimmt auch in eine Rocker-Kneipe und sagst: "Scheiß Bikes da! Mein Volkswagen kann auch fahren!". Erzähl mal vom Feedback.

Ich würde ja echt was zu eigentlichen Thema schreiben, doch ist mir das schon wieder offtopic nach dem Gemecker über LaTeX, dann verbleibe ich mir der Info über den guten Brauch, für ein neues Thema einen neuen Thread aufzumachen. Vielleicht seh ich ja was interessantes als neues Thema, hier unten bemerke ich es vllt. nicht.

Stefan

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

Beitrag von esdd »

Ja, es ist üblich und sinnvoll für eine nicht mehr zum Thema gehörende Frage einen neuen Thread zu erstellen. Genauso sinnvoll ist es, ein Minimalbeispiel zu erstellen - aber das hatten wir ja oben schon mal ...

Lade amsmath oder gleich mathtools, ersetze eqnarray durch align und verwende \intertext oder \shortintertext (nur mit mathtools).

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2466
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

@icecoldkilla

Da Du gerade den mathematischen Modus ansprichst:

In Deinem Eröffungsbeitrag in diesem Thread steht
$U\textsubscript{R1}$
Die Beschriftung befindet sich im mathematischen Modus und R1 bezeichnet den Widerstand in Deinem Schaltplan.
$U_{R_1}$

icecoldkilla
Forum-Anfänger
Forum-Anfänger
Beiträge: 26
Registriert: So 27. Dez 2015, 16:16

Beitrag von icecoldkilla »

Stefan hat geschrieben: Du musst nicht. Doch als irgendwo unten an ein anderes Problem angehängtes weiteres Problem, das auch nicht mehr zur Überschrift passt, da geht es leicht unter. Das lesen weniger Leute, auch da man erstmal oben schon auf etwas stößt, was sich als gelöst herausstellt. Warum über Brief-Adressfeld schreiben, wenn es zuerst um Grafik mit TikZ geht, z.B.? Dass es Dein Thread ist, ist nur ein Sortierkriterium für Dich, nicht für andere. Oder etwas bequemer für Dich, aber ebenfalls nicht für andere. Ich les nicht 2 Seiten, um ein drunterstehendes Problem zu bearbeiten.

Kurz gesagt, mach einfach ein neues Thema auf. Ist das schwer? Nur weil man eine Überschrift angeben muss? Dann wird das neue Problem auch besser gesehen als in einem alten Thread ganz unten.

Ich wollte jetzt auch nicht das Latex Forum vollspammen mit meinen 100 Fragen :D
Stefan hat geschrieben: Ich würde ja echt was zu eigentlichen Thema schreiben, doch ist mir das schon wieder offtopic nach dem Gemecker über LaTeX, dann verbleibe ich mir der Info über den guten Brauch, für ein neues Thema einen neuen Thread aufzumachen. Vielleicht seh ich ja was interessantes als neues Thema, hier unten bemerke ich es vllt. nicht.
Stefan


Ich glaub jeder is schon mal mehrere Stunden vor einem scheinbar unmöglichen Latex Problem gestanden und hat das Programm verflucht oder ? :wink:

Besserwisser

Beitrag von Besserwisser »

icecoldkilla hat geschrieben:Ich hock nämlich seit den letzten 3 Stunden schon wieder am nächsten Problem, aber die Tricks im Internet funktionieren nicht wirklich. Langsam regt mich die Latex scheiße echt auf
Das ist häufig zu beobachten. Tricks aus dem Internet können ein gutes LaTeX-Buch und systematisches Lernen einfach nicht ersetzen. Am Anfang sieht es noch so aus, als könne man Zeit sparen. Das kehrt sich aber irgendwann um. Manchem genügt es, eine ausführliche Einführung durchzuarbeiten, um dann in der Tat mit dem Internet und Paketanleitungen weiter zu kommen. Andere benötigen auch noch Spezialliteratur beispielsweise zum Thema Mathesatz oder Tabellen oder … Erfreulicherweise ist das Spektrum an guter Literatur inzwischen recht groß.

Es gibt aber auch Leute, die kommen nie mit LaTeX zu recht. Ob die dann wirklich mit Word den Anspruch, den sie an LaTeX stellen, befriedigt bekommen, kann ich nicht beurteilen. Wenn sie aber mit Word bessere, Frust freiere Ergebnisse zustande bringen als mit LaTeX, dann sollten sie das auch verwenden. Es ist ja nicht so, dass wir hier für jedes Dokument, das mit LaTeX gesetzt wurde, einen Euro bekommen.

Ansonsten: 100 Fragen sind 100 Fragen. Ob die in einer unübersichtlichen Megadiskussion zwischen Klagen über die Software und die Qualität von Tricks aus dem Internet versteckt werden oder übersichtlich in einzelnen Themen im jeweils passenden Unterforum gestellt werden, ändert nichts an der reinen Anzahl. Was sich allerdings durch Einzelthemen ändern könnte, ist dass das Problem besser reflektiert ist. Wenn man nämlich erst einmal darüber nachdenken muss, in welches Forum eine Frage gehört, was ein kurzer aber möglichst treffender Titel ist, was alles in einem passenden Minimalbeispiel stehen muss und was wohl eher doch nichts mit dem Problem zu tun hat, dann hat man manchmal die Lösung schon (fast) gefunden. Wenn man dann merkt, dass man den Helfern das Leben leicht gemacht hat und die Lösungen deshalb gut funktionieren, dann sind Probleme auch nicht mehr Anlass für Frust, sondern Lösungen Anlass zur Freude. Ganz nebenbei führt die Vorbereitung eines neuen Themas so manchen auch darauf, dass er das (was immer das sein mag) vielleicht auch ganz anders machen könnte, statt im einmal eingeschlagenen Gleis zu bleiben. Mir selbst hilft es immer, wenn ich versuche, ein Problem oder eine Idee anderen möglichst verständlich zu schildern. Das ordnet die Gedanken, zeigt mir manche Lücke auf, die es zu füllen gilt, und offenbart mir Denkfehler, die ich sonst nie bemerken würde. Ich schreibe deshalb manches Mal zu irgendwelchen Entwürfen Mails oder ausführliche Reports, die nie jemand zu sehen bekommt. Trotzdem ist es keine vertane Zeit, sondern für mich sehr hilfreich. Wobei am Anfang immer der Vorsatz steht, dass das wirklich ein anderer Lesen muss. Sonst schummle ich nämlich und schreibe die Dinge, die mir irgendwie schon klar sind, nicht auf. Das sind dann die gefährlichen, schwarzen Löcher.

Antworten