Seite 1 von 1

[PSTricks] Text bei \psset{unit=} mitskalieren

Verfasst: Di 1. Mär 2011, 20:23
von Klaus
Hi Leute,

ich bastle gerade für meine Freundin eine Übersicht, die aus mehreren Bestandteilen besteht.

Ein Teil davon sieht so aus:
\documentclass[ngerman]{scrreprt}

\usepackage{babel}

\usepackage[utf8]{inputenc}

\usepackage{pstricks}

\usepackage{amsmath,amssymb}
\usepackage{upgreek}



\begin{document}
	\begin{pspicture}(16,16)
	\psgrid[subgriddiv=1,griddots=5](0,0)(16,16)
%
	\rput[c](7,14){%
	\psset{unit=0.5cm}
		\rput[c](1,0){\textcolor{orange}{\Huge{APP}}}
%
	\psframe[fillcolor=gray!50,fillstyle=solid,linecolor=gray!50](0,1)(4,2)
	\rput[c](2,1.5){\textbf{Membrane}}
%
	\psframe[fillcolor=gray!50,fillstyle=solid,linecolor=gray!50](5,1)(9,2)
	\rput[c](7,0.5){\textbf{intrazellulär}}
	\rput[c](7,2.5){\textbf{extrazellulär}}
%
	\psframe[linecolor=orange,linewidth=2pt](4,1.5)(5,3)
	\rput[c]{L}(4.5,2.25){$\displaystyle\textcolor{orange}{\text{A}\upbeta}$}
%
	\psbezier[linewidth=2pt,linecolor=orange]{-}(4.5,3)(5.5,4)(3.5,5)(5.5,6)
%
	\psbezier[linewidth=2pt,linecolor=orange]{-}(4.5,1.5)(4,0)(5.5,-1)(3.5,-2)
	
	}
	\end{pspicture}
\end{document}
Dabei habe ich das Objekt in der \rput - Umgebung zunächst separat gebastelt (und noch andere), was wunderbar geklappt hat.
Und dachte mir dann, dass ich wie oben gezeigt einfach mittels \psset{unit=...} reskalieren kann.
Das funktioniert soweit auch ganz gut.

Das einzige Problem ist, dass der Text nicht mitskaliert! Gibt es dafür auch einen Befehl oder muss ich jetzt von neuem Beginnen die Textformatierung zu ändern? Also überall wo z.B. \Huge steht jetzt ein \small davorsetzen?

Viele Grüße,
Klaus.

Re: [PSTricks] Text bei \psset{unit=} mitskalieren

Verfasst: Di 1. Mär 2011, 21:40
von CrazyHorse
Klaus hat geschrieben: Das einzige Problem ist, dass der Text nicht mitskaliert! Gibt es dafür auch einen Befehl oder muss ich jetzt von neuem Beginnen die Textformatierung zu ändern? Also überall wo z.B. \Huge steht jetzt ein \small davorsetzen?
Es gibt nur drei Möglichkeiten:
  • - die Freundin wechseln, wahrscheinlich schlechte Variante :D
    - \def\Rput(#1)#2{\rput(#1){\small#2}} und dann \Rput nehmen
    - \psset{unit=} wegnehmen und stattdessen alles in eine
    \resizebox{...Breite...}{!}{...pstricks...} setzen.
Herbert

Re: [PSTricks] Text bei \psset{unit=} mitskalieren

Verfasst: Di 1. Mär 2011, 22:46
von Klaus
CrazyHorse hat geschrieben: Es gibt nur drei Möglichkeiten:
  • - die Freundin wechseln, wahrscheinlich schlechte Variante :D
    - \def\Rput(#1)#2{\rput(#1){\small#2}} und dann \Rput nehmen
    - \psset{unit=} wegnehmen und stattdessen alles in eine
    \resizebox{...Breite...}{!}{...pstricks...} setzen.
Danke,
ich schau mir die drei ... äh ... letzten beiden Möglichkeiten an. ;)

Viele Grüße,
Klaus.

Re: [PSTricks] Text bei \psset{unit=} mitskalieren

Verfasst: Mi 2. Mär 2011, 18:49
von Klaus
CrazyHorse hat geschrieben: - \def\Rput(#1)#2{\rput(#1){\small#2}} und dann \Rput nehmen
Also das sieht dann bei mir so aus:
%
% uebersicht.tex
%

\documentclass[ngerman]{scrreprt}

\usepackage{babel}

\usepackage[utf8]{inputenc}

\usepackage{pstricks}

\usepackage{amsmath,amssymb}
\usepackage{upgreek}
\usepackage{graphicx}

\def\Rput(#1)#2{\rput(#1){\small#2}}

\begin{document}
	\begin{pspicture}(16,16)
	\psgrid[subgriddiv=1,griddots=5](0,0)(16,16)
%
	\Rput[c](7,14){
	\psset{unit=0.5cm}
		\rput[c](1,0){\textcolor{orange}{\Huge{APP}}}
%
	\psframe[fillcolor=gray!50,fillstyle=solid,linecolor=gray!50](0,1)(4,2)
	\rput[c](2,1.5){\textbf{Membrane}}
%
	\psframe[fillcolor=gray!50,fillstyle=solid,linecolor=gray!50](5,1)(9,2)
	\rput[c](7,0.5){\textbf{intrazellulär}}
	\rput[c](7,2.5){\textbf{extrazellulär}}
%
	\psframe[linecolor=orange,linewidth=2pt](4,1.5)(5,3)
	\rput[c]{L}(4.5,2.25){$\displaystyle\textcolor{orange}{\text{A}\upbeta}$}
%
	\psbezier[linewidth=2pt,linecolor=orange]{-}(4.5,3)(5.5,4)(3.5,5)(5.5,6)
%
	\psbezier[linewidth=2pt,linecolor=orange]{-}(4.5,1.5)(4,0)(5.5,-1)(3.5,-2)
	
	}
	\end{pspicture}
\end{document}

%
% EoF
%

Und funktioniert leider nicht, weil
! Use of \Rput doesn't match its definition.

Und
CrazyHorse hat geschrieben: - \psset{unit=} wegnehmen und stattdessen alles in eine
\resizebox{...Breite...}{!}{...pstricks...} setzen.
sieht dann bei mir so aus:
%
% uebersicht.tex
%

\documentclass[ngerman]{scrreprt}

\usepackage{babel}

\usepackage[utf8]{inputenc}

\usepackage{pstricks}

\usepackage{amsmath,amssymb}
\usepackage{upgreek}
\usepackage{graphicx}

\begin{document}
	\begin{pspicture}(16,16)
	\psgrid[subgriddiv=1,griddots=5](0,0)(16,16)
%
	\rput[c](7,14){\resizebox{4cm}{!}{%
%	\psset{unit=0.5cm}
		\rput[c](1,0){\textcolor{orange}{\Huge{APP}}}
%
	\psframe[fillcolor=gray!50,fillstyle=solid,linecolor=gray!50](0,1)(4,2)
	\rput[c](2,1.5){\textbf{Membrane}}
%
	\psframe[fillcolor=gray!50,fillstyle=solid,linecolor=gray!50](5,1)(9,2)
	\rput[c](7,0.5){\textbf{intrazellulär}}
	\rput[c](7,2.5){\textbf{extrazellulär}}
%
	\psframe[linecolor=orange,linewidth=2pt](4,1.5)(5,3)
	\rput[c]{L}(4.5,2.25){$\displaystyle\textcolor{orange}{\text{A}\upbeta}$}
%
	\psbezier[linewidth=2pt,linecolor=orange]{-}(4.5,3)(5.5,4)(3.5,5)(5.5,6)
%
	\psbezier[linewidth=2pt,linecolor=orange]{-}(4.5,1.5)(4,0)(5.5,-1)(3.5,-2)
	
	}}
	\end{pspicture}
\end{document}

%
% EoF
%
und funktioniert leider auch nicht, weil
! Package graphics Error: Division by 0.

Ich hatte spontan versucht jedes Argument, dass eine 0 enthält durch eine 0.1 zu ersetzen, aber das hat leider auch nichts gebracht.

Viele Grüße,
Klaus.

Re: [PSTricks] Text bei \psset{unit=} mitskalieren

Verfasst: Do 3. Mär 2011, 12:01
von CrazyHorse
Klaus hat geschrieben:
CrazyHorse hat geschrieben: und funktioniert leider auch nicht, weil
! Package graphics Error: Division by 0.

Ich hatte spontan versucht jedes Argument, dass eine 0 enthält durch eine 0.1 zu ersetzen, aber das hat leider auch nichts gebracht.
ich dachte auch eher daran _alles_ in die \resizebox zu packen. Wenn du also innerhalb der pspicture-Umgebung skalieren willst, dann entweder nochmal alles in eine pspicture-Umgebung packen, oder \psscalebox benutzen:
\documentclass[ngerman]{scrreprt}

\usepackage{babel}

\usepackage[utf8]{inputenc}

\usepackage{pstricks}

\usepackage{amsmath,amssymb}
\usepackage{upgreek}
\usepackage{graphicx}

\begin{document}

   \begin{pspicture}(16,16)
   \psgrid[subgriddiv=1,griddots=5](0,0)(16,16)
%
   \rput[c](7,14){\resizebox{4cm}{!}{%
   \begin{pspicture}(9,9)
%   \psset{unit=0.5cm}
      \rput[c](1,0){\textcolor{orange}{\Huge{APP}}}
%
   \psframe[fillcolor=gray!50,fillstyle=solid,linecolor=gray!50](0,1)(4,2)
   \rput[c](2,1.5){\textbf{Membrane}}
%
   \psframe[fillcolor=gray!50,fillstyle=solid,linecolor=gray!50](5,1)(9,2)
   \rput[c](7,0.5){\textbf{intrazellulär}}
   \rput[c](7,2.5){\textbf{extrazellulär}}
%
   \psframe[linecolor=orange,linewidth=2pt](4,1.5)(5,3)
   \rput[c]{L}(4.5,2.25){$\displaystyle\textcolor{orange}{\text{A}\upbeta}$}
%
   \psbezier[linewidth=2pt,linecolor=orange]{-}(4.5,3)(5.5,4)(3.5,5)(5.5,6)
%
   \psbezier[linewidth=2pt,linecolor=orange]{-}(4.5,1.5)(4,0)(5.5,-1)(3.5,-2)
 \end{pspicture}  
   }}
   \end{pspicture}
\end{document}
und hier mit \psscalebox, da du ja ohnehin auf 0.5 skalieren willst
\documentclass[ngerman]{scrreprt}

\usepackage{babel}

\usepackage[utf8]{inputenc}

\usepackage{pstricks}

\usepackage{amsmath,amssymb}
\usepackage{upgreek}
\usepackage{graphicx}

\begin{document}

   \begin{pspicture}(16,16)
   \psgrid[subgriddiv=1,griddots=5](0,0)(16,16)
%
   \rput[c](7,14){\psscalebox{0.5}{%
%   \psset{unit=0.5cm}
      \rput[c](1,0){\textcolor{orange}{\Huge{APP}}}
%
   \psframe[fillcolor=gray!50,fillstyle=solid,linecolor=gray!50](0,1)(4,2)
   \rput[c](2,1.5){\textbf{Membrane}}
%
   \psframe[fillcolor=gray!50,fillstyle=solid,linecolor=gray!50](5,1)(9,2)
   \rput[c](7,0.5){\textbf{intrazellulär}}
   \rput[c](7,2.5){\textbf{extrazellulär}}
%
   \psframe[linecolor=orange,linewidth=2pt](4,1.5)(5,3)
   \rput[c]{L}(4.5,2.25){$\displaystyle\textcolor{orange}{\text{A}\upbeta}$}
%
   \psbezier[linewidth=2pt,linecolor=orange]{-}(4.5,3)(5.5,4)(3.5,5)(5.5,6)
%
   \psbezier[linewidth=2pt,linecolor=orange]{-}(4.5,1.5)(4,0)(5.5,-1)(3.5,-2)
   }}
   \end{pspicture}
\end{document}
Herbert

Verfasst: Do 3. Mär 2011, 21:27
von Klaus
Ach,
das klappt alles wunderbar! :)

Zum Glück, sonst hatte ich Möglichkeit Nr. 1 wählen müssen! :D

Viele Grüße,
Klaus.

Verfasst: Do 3. Mär 2011, 23:54
von Klaus
Muss es leider nochmal öffnen, denn jetzt stehe ich vor dem Problem: Wie kriege ich ein Bild daraus im bmp oder jpg Format?

Hier hast du eine png Datei angehängt, die du wahrscheinlich direkt aus PSTricks konvertiert hast?

Ich finde im Web und in der PSTricks zwar jede Menge Hinweise, wie ich eine eps Datei draus mache, doch was nutzt mir das?

Ich bin auch auf das Programm LaTexDraw gestoßen, doch das hatte bei der Importierung meiner Latex Datei gleich Probleme, weil es manche Befehle von PSTricks nicht kannte. :-(

Also wie komme ich weiter? In was für ein Bildformat kann ich expotieren, dass meine Freundin dann einfach in ihre W**d Datei importieren kann?

Viele Grüße,
Klaus.

Verfasst: So 6. Mär 2011, 21:46
von CrazyHorse
Klaus hat geschrieben:Muss es leider nochmal öffnen, denn jetzt stehe ich vor dem Problem: Wie kriege ich ein Bild daraus im bmp oder jpg Format?

Hier hast du eine png Datei angehängt, die du wahrscheinlich direkt aus PSTricks konvertiert hast?

Ich finde im Web und in der PSTricks zwar jede Menge Hinweise, wie ich eine eps Datei draus mache, doch was nutzt mir das?

Ich bin auch auf das Programm LaTexDraw gestoßen, doch das hatte bei der Importierung meiner Latex Datei gleich Probleme, weil es manche Befehle von PSTricks nicht kannte. :-(

Also wie komme ich weiter? In was für ein Bildformat kann ich expotieren, dass meine Freundin dann einfach in ihre W**d Datei importieren kann?
jpg ist ein ganz schlechtes Format für Zeichnungen. Erstelle eine pdf mit \pagestyle{empty} undwende dann auf die pdf "pdfcrop datei.pdf" an, dann ist der weiße Rand weg oder nimm das PAket pst-pdf, dann ist auch der weiße Rand weg. Dann wandelst du die Datei mit irgendeinem Konverteirungsprogramm nach png, bzw. liest die PDF direkt als Grafik ein.

Herbert

Verfasst: Mo 7. Mär 2011, 22:38
von Klaus
Ich hatte es zwischenzeitlich geschafft die PS Datei mittels Ghostview in eine jpg Datei zu verwandeln.

Deinen Vorschlag schaue ich mir jetzt in aller Ruhe an.

Auf jeden Fall ist das Projekt Masterarbeit erfolgreich beendet worden! :)

Einen heißen Dank für die Hilfe, dir zur Erstellung der Graphik geführt hat. :)

Viele Grüße,
Klaus.