PSTrix Figuren in Tabelle anzeigen Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


Tobi123456

PSTrix Figuren in Tabelle anzeigen

Beitrag 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...

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

Beitrag 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?
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.

Tobi123456

Beitrag 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.

Tobi123456

Beitrag 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}

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

Beitrag 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

Tobi123456

Beitrag 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.

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

Beitrag 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

Tobi123456

Beitrag 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.

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

Beitrag 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

Bild


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
Dateianhänge
gl_ps_unit.png
gl_ps_unit.png (7.17 KiB) 2644 mal betrachtet

Tobi123456

Beitrag 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 :)

Antworten