Seite 1 von 2
PSTrix Figuren in Tabelle anzeigen
Verfasst: Mo 13. Jul 2015, 19:13
von Tobi123456
Hi,
ich will 4 Figuren mit Hilfe einer 2x2 Tabelle auf dem Blatt ausrichten.
Leider geht das nicht. Ich habe auch nichts über google gefunden.
So war mein bescheidender Plan:
\noindent\textbf{\Large{Aufgabe 1}}
\begin{table}
\centering
\begin{tabular}{cc}
1.Figur&2.Figur\tabularnewline
3.Figur&4.Figur
\end{tabular}
\end{table}
Die einfachste Figur sieht so aus
\begin{figure}
\begin{pspicture}(0,0)(9,2)
\psline[linewidth=1.5pt](0,1.5)(9,1.5)
\multiput(1,0)(2,0){4}{\psframe(0,0)(1,1)}
\end{pspicture}
\caption*{Linear}
\end{figure}
Ja ich habe das mit den Minimalbeispiel gelesen. Hab es nicht hinbekommen...
Verfasst: Mo 13. Jul 2015, 19:23
von Johannes_B
Du kompilierst mit LaTeX im dvi-mode bzw XeLaTeX? Mit den momentan gestellten Informationen, können auch wir nur raten. Was geht denn nicht?
Verfasst: Mo 13. Jul 2015, 19:38
von Tobi123456
Ich habe oben als Compiler pdfLaTeX.
Musste beim Compiler noch -shell-escape hinzufügen.
Dokumentkopf sieht so aus:
\RequirePackage[ansinew]{inputenc}
\documentclass[seminar_anwendungen, male, english,headsepline]{bwlim}
\usepackage{algpseudocode}
\usepackage{scrpage2}
\usepackage{booktabs}
\usepackage{rotating}
\usepackage{multirow}
\usepackage{textcomp}
\usepackage{caption}
\usepackage{amstext}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{textcomp}
\usepackage{tabularx}
\usepackage{pst-all}
\usepackage{framed}
\usepackage{auto-pst-pdf} %<--- Das musst ich auch hinzufügen um überhaupt mit PSTricks was darstellen zu können.
Dokument lässt sich compelieren und als PDF ausgeben, nur sind die 4 Figuren wirr auf 2 Seiten verteilt. Sollen aber auf eine Seite.
Kann mich leider nicht genauer ausdrücken. Ich kenne mich echt nicht aus mit LaTeX oder an sich mit Programmieren.
Verfasst: Mo 13. Jul 2015, 20:06
von Tobi123456
So will ich das gerne haben. Geht aber so nicht.
\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{algpseudocode}
\usepackage{scrpage2}
\usepackage{booktabs}
\usepackage{rotating}
\usepackage{multirow}
\usepackage{textcomp}
\usepackage{caption}
\usepackage{amstext}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{textcomp}
\usepackage{tabularx}
\usepackage{pst-all}
\usepackage{framed}
\begin{document}
\noindent\textbf{\Large{Aufgabe 1}}
\begin{table}
\centering
\begin{tabular}{cc}
\begin{figure}
\begin{pspicture}(0,0)(9,2)
\psline[linewidth=1.5pt](0,1.5)(9,1.5)
\multiput(1,0)(2,0){4}{\psframe(0,0)(1,1)}
\end{pspicture}
\caption*{Linear}
\end{figure}
\end{document}
&
\begin{figure}
\begin{pspicture}(0,0)(9,2)
\psline[linewidth=1.5pt](0,1.5)(9,1.5)
\multiput(1,0)(2,0){4}{\psframe(0,0)(1,1)}
\end{pspicture}
\caption*{Linear}
\end{figure}
\tabularnewline
\begin{figure}
\begin{pspicture}(0,0)(9,2)
\psline[linewidth=1.5pt](0,1.5)(9,1.5)
\multiput(1,0)(2,0){4}{\psframe(0,0)(1,1)}
\end{pspicture}
\caption*{Linear}
\end{figure}
&
\begin{figure}
\begin{pspicture}(0,0)(9,2)
\psline[linewidth=1.5pt](0,1.5)(9,1.5)
\multiput(1,0)(2,0){4}{\psframe(0,0)(1,1)}
\end{pspicture}
\caption*{Linear}
\end{figure}
\end{tabular}
\end{table}
\end{document}
Verfasst: Mo 13. Jul 2015, 22:01
von esdd
Bitte teste Deine Beispiele. Dein Code enthält in der ersten Tabellenzeile ein \end{document}.
Du kannst in eine Tabelle keine Gleitumgebungen einfügen. Lass also die figure Umgebung um Deine Zeichnungen weg. Wenn Du eine Beschriftung brauchst, kannst Du mit dem von Dir geladenen Paket caption auch \captionof{figure}{...} verwenden. Davon existiert ebenfalls eine Sternversion. Allerdings kannst Du die Abbildungen mit Beschriftung nicht in c Spalten setzen, sondern musst p Spalten verwenden.
Wenn Du außerdem nicht möchtest, dass die Tabelle mit den Abbildungen gleitet, dann lass die table Umgebung weg und verwende statt dessen eine zentrierte minipage.
Die Tabelle ist momentan übrigens zu breit für den Textbereich. Im folgenden Beispiel habe ich sie trotzdem verwendet, aber alle für das Beispiel nicht benötigten rausgenommen. Nebenbei: einige von ihnen hast Du doppelt geladen, was man vermeiden sollte.
\documentclass[12pt]{article}
\usepackage{caption}
\usepackage{pst-all}
\begin{document}
\noindent\textbf{\Large{Text davor}}
\begin{center}
\begin{minipage}{\linewidth}
%\begin{table}
\centering
\begin{tabular}{p{9cm}p{9cm}}
\begin{pspicture}(0,0)(9,2)
\psline[linewidth=1.5pt](0,1.5)(9,1.5)
\multiput(1,0)(2,0){4}{\psframe(0,0)(1,1)}
\end{pspicture}
\captionof*{figure}{Linear}
&
\begin{pspicture}(0,0)(9,2)
\psline[linewidth=1.5pt](0,1.5)(9,1.5)
\multiput(1,0)(2,0){4}{\psframe(0,0)(1,1)}
\end{pspicture}
\captionof*{figure}{Linear}
\tabularnewline
\begin{pspicture}(0,0)(9,2)
\psline[linewidth=1.5pt](0,1.5)(9,1.5)
\multiput(1,0)(2,0){4}{\psframe(0,0)(1,1)}
\end{pspicture}
\captionof*{figure}{Linear}
&
\begin{pspicture}(0,0)(9,2)
\psline[linewidth=1.5pt](0,1.5)(9,1.5)
\multiput(1,0)(2,0){4}{\psframe(0,0)(1,1)}
\end{pspicture}
\captionof*{figure}{Linear}
\end{tabular}
%\end{table}
\end{minipage}
\end{center}
\end{document}
Gruß
Elke
Verfasst: Di 14. Jul 2015, 08:26
von Tobi123456
Danke, dass ich das Figure weglassen muss ist mir gestern beim rumspielen auch aufgefallen.
Ich werde das nachher mal mit der Minipage versuchen umzusetzen.
Bei der Tabellenumgebung hatte ich das Problem, dass die Zeichnungen zwar angeordnet waren, nur leider passten sie von der Größe her nicht...
Ich habe natürlich gestern keine Möglichkeit gefunden, die Figuren in ihrer Größe anzupassen.
Verfasst: Di 14. Jul 2015, 08:40
von esdd
Du brauchst doch nur die beim Zeichnen verwendete Einheit entsprechend anzupassen? Die Spalten der Tabelle müssen/können dann natürlich auch schmaler sein.
\begin{center}
\begin{minipage}{\linewidth}
\psset{unit=.5cm}
\centering
\begin{tabular}{p{4.5cm}p{4.5cm}}
...
\end{tabular}
\end{minipage}
\end{center}
Gruß
Elke
Verfasst: Di 14. Jul 2015, 09:07
von Tobi123456
Die Figur hat sich aber nicht an die Spalten und Zeilen angepasst. Es hat sie einfach nur stumpf über ragt.
Ich habe bei den Figuren keine Einheiten verwendet. Ich habe das gegebene Raster verwendet.
Ich wusste ja vorher nicht wie groß sie werden.
Wollte diese zum Schluss einfach passend skalieren. Gerade das ist doch der Vorteil eine Vektorgrafik.
Verfasst: Di 14. Jul 2015, 09:27
von esdd
Natürlich verwendest Du Einheiten. Zum Beispiel legst Du mit
\begin{pspicture}(0,0)(9,2)
fest, dass Dein Zeichenbereich 9 Einheiten in x-Richtung und 2 in y-Richtung ist. In der Voreinstellung entspricht eine Einheit 1cm. Wenn Du Dein Bild auf die Hälfte skalieren willst, ohne die Schriftgröße und die Linienstärke zu ändern, kannst Du das von mir schon genannte \psset{unit=.5cm} verwenden.
\documentclass[12pt]{article}
\usepackage{caption}
\usepackage{pst-all}
\begin{document}
\noindent\textbf{\Large{Text davor}}
\begin{center}
\begin{minipage}{\linewidth}
\psset{unit=.5cm}
\centering
\begin{tabular}{p{4.5cm}p{4.5cm}}
\begin{pspicture}(0,0)(9,2)
\psline[linewidth=1.5pt](0,1.5)(9,1.5)
\multiput(1,0)(2,0){4}{\psframe(0,0)(1,1)}
\end{pspicture}
\captionof*{figure}{Linear}
&
\begin{pspicture}(0,0)(9,2)
\psline[linewidth=1.5pt](0,1.5)(9,1.5)
\multiput(1,0)(2,0){4}{\psframe(0,0)(1,1)}
\end{pspicture}
\captionof*{figure}{Linear}
\tabularnewline
\begin{pspicture}(0,0)(9,2)
\psline[linewidth=1.5pt](0,1.5)(9,1.5)
\multiput(1,0)(2,0){4}{\psframe(0,0)(1,1)}
\end{pspicture}
\captionof*{figure}{Linear}
&
\begin{pspicture}(0,0)(9,2)
\psline[linewidth=1.5pt](0,1.5)(9,1.5)
\multiput(1,0)(2,0){4}{\psframe(0,0)(1,1)}
\end{pspicture}
\captionof*{figure}{Linear}
\end{tabular}
\end{minipage}
\end{center}
\end{document}
liefert
Wenn in der Zeichnung enthaltene Schrift mit skaliert, dann kannst Du \psscalebox oder \psscaleboxto innerhalb von pspicture verwenden, musst dann aber den Zeichenbereich entsprechend anpassen, weil dessen Platz ja reserviert wird. Alternativ kannst Du auch \scalebox oder \resizebox aus dem
graphicx Paket für die gesamte pspicture Umgebung verwenden.
Gruß
Elke
Verfasst: Di 14. Jul 2015, 09:55
von Tobi123456
Danke. Werde ich abend gleich probieren.
Denke aber das damit mein Problem gelöst ist.
Großes danke für die schnelle und ausführliche Lösung
