Archiv verlassen und diese Seite im Standarddesign anzeigen : [Suche] Tutorial für \def-Befehl
Hallo!
Ich versuche jetzt schon den ganzen Morgen (seit halb 10), ein Tutorial zu finden, das mir den \def Befehl ausführlich erklärt, aber weder Google, noch Yahoo, noch sämtliche Seiten zum Thema PSTricks, die ich durchsucht habe, scheinen etwas zu haben. Könnt ihr mir helfen?
mit freundlichen Grüßen
localghost
27-01-2010, 12:03
TeX by Topic (http://ctan.org/pkg/texbytopic)
TeX for the Impatient (http://ctan.org/pkg/impatient)
MfG
Thorsten¹
Dankeschön. ^^
Ich war nur mal wieder ziemlich dumm. Ich meinte den \def Befehl im speziellen für PSTricks. Sorry.
mfg
bobmalaria
27-01-2010, 13:19
hi,
ich glaube da gibt es nichts besonderes. \def ist ähnlich wie \newcommand. du definierst ein makro z.b. \meinmarco das es dir abnimmt diverse dinge immer wieder zu tippen. natürlich kannst du damit auch für pstricks ein makro definieren.
gruss
mechanicus
27-01-2010, 13:39
Dankeschön. ^^
Ich war nur mal wieder ziemlich dumm. Ich meinte den \def Befehl im speziellen für PSTricks. Sorry.
Was willst du angeben? Willst du Befehle für Postscript nutzen. Dann solltest du dir das Marco pstverb anschauen:
Beispiel:
\documentclass{article}
\usepackage{pst-plot}
\usepackage{pstricks-add}
\begin{document}
\begin{pspicture}(0,0)(3,3)
\pstverb{%
/TEST {3 2 mul} def %
0 0 moveto % define current point
/Helvetica findfont 14 scalefont setfont % set a font
TEST 15 string cvs show %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
/TEST (3 2 mul) def %
0 20 moveto % define current point
/Helvetica findfont 14 scalefont setfont % set a font
TEST 15 string cvs show %
}
\end{pspicture}
\end{document}
\end{document}
Danke an Herbert, für das Beispiel.
Gruß
Marco
Soweit hab ich das auch verstanden, mein Problem liegt im Moment eher darin, wie ich mit den Variablen innerhalb des Makros rechnen kann. Zum Beispiel wenn ich ein Polygon mache, bei dem eine Seite immer kürzer ist als die andere:
\documentclass{article}
\usepackage{pst-3dplot}
\def\Poly(#1){\def\SeiteA{#1}
\def\two{2}
\def\SeiteB{\add\SeiteA \two}
\pspolygon(0,0)(1,0)(1,\SeiteA)(0,\SeiteB)}
\begin{document}
\Poly(2)
\end{document}
mfg
EDIT: Ja, sowas in der Richtung, auch wenn ich mir nichtr ganz sicher bin, was du mit dem Macro meinst...
mechanicus
27-01-2010, 14:01
Hi,
du verwendest den def-Befehl von tex. Postscript hat einen eigenen def-Befehl.
Du solltest aber davon absehen, def zu nutzen. Besser ist es, du nutzt newcommand.
Was du machen kannst:
\documentclass{article}
\usepackage{pst-3dplot}
\def\Poly(#1){\def\SeiteA{#1}
\def\two{2}
\pspolygon[algebraic=true](0,0)(1,0)(1,\SeiteA)(*0 {\SeiteA*\two})}
\begin{document}
\Poly(2)
\end{document}
Gruß
Marco
Was willst du angeben? Willst du Befehle für Postscript nutzen. Dann solltest du dir das Marco pstverb anschauen:
Beispiel:
\documentclass{article}
\usepackage{pstricks}
\begin{document}
\begin{pspicture}(0,0)(3,3)
\pstverb{%
/Helvetica findfont 75 scalefont setfont % set a font
0 0 moveto
1 1 50 { dup /Index exch def
100 div 1 sub neg setgray
(Marco) show stroke
Index dup 4 div neg moveto
} for
}
\end{pspicture}
\end{document}
\end{document}
Herbert :)
Gut, eine Frage noch zu dem Code, die Zeile, die ich nicht verstehe (und weshalb ich eben so ein Tut suche ;))
(*0 {\SeiteA*\two}
Was geschieht da genau? Oder besser: Was hat es mit dem 1. * auf sich und wieso werden hier keine Kommas mehr benötigt?
Das zweite * ist einfach ein Multiplikationszeichen, oder?
mfg
EDIT:
P.S. Das mit dem MARCO von Herrn Voss sieht echt cool aus :), hilft aber halt nicht weiter @.@
mechanicus
27-01-2010, 14:08
Herbert :)
:D:D:D
GESTERN: TEST - TEXT
HEUTE: MACRO MARCO
:D:D:D
Ich brauche wohl mal Urlaub :p:p
Gruß
Marco
Soweit hab ich das auch verstanden, mein Problem liegt im Moment eher darin, wie ich mit den Variablen innerhalb des Makros rechnen kann. Zum Beispiel wenn ich ein Polygon mache, bei dem eine Seite immer kürzer ist als die andere:
EDIT: Ja, sowas in der Richtung, auch wenn ich mir nichtr ganz sicher bin, was du mit dem Macro meinst...
die Idee ist schon richtig. Mit ! kannst du die Korrdinaten berechnen
\documentclass{article}
\usepackage{pst-3dplot}
\def\Poly(#1){%
\pspolygon(0,0)(1,0)(!1 #1)(!0 #1 2 add)}
\begin{document}
\Poly(2)
\end{document}
Herbert
Ah, ok, jetzt versteh ichs.
Sogar ganz ohne Tutorial :D
Danke!
mfg
Trotzdem so ganz bin ich scheinbar immer noch nicht dahinter gekommen... Was mach ich hier schon wieder falsch? :confused:
\documentclass{article}
\usepackage{pst-3dplot}
\def\LeiSchau(#1){
\pstThreeDLine(!#1 1 add 2.5 5)(-3.5,2.5,2.25)}
\begin{document}
\LeiSchau(2.5)
\end{document}
mfg
mechanicus
27-01-2010, 18:10
Was mach ich hier schon wieder falsch? :confused:
Ich glaube zu diesem Problem kann Herbert mehr sagen. Es hat aber den Anschein, dass du das so nicht hinbekommen kannst. Grund liegt in der Konvertierung der 3D-Eingabe zur 2D-Darstellung. Hierfür wird die Parallelprojektion genutzt:
(x*,y*)=T (x,y,z)^T
wobei T eine 2x3-Matrix ist.
Vermutung ENDE
Gruß
Marco
Trotzdem so ganz bin ich scheinbar immer noch nicht dahinter gekommen... Was mach ich hier schon wieder falsch? :confused:
\documentclass{article}
\usepackage{pst-3dplot}
\def\LeiSchau(#1){
\pstThreeDLine(!#1 1 add 2.5 5)(-3.5,2.5,2.25)}
\begin{document}
\LeiSchau(2.5)
\end{document}
bei den 3D-Koordinaten weicht das Schema etwas ab, da kann man gleich
bei den einzelnen Koordinaten rechnen:
\def\LeiSchau(#1){
\pstThreeDLine(#1 1 add, 2.5, 5)(-3.5,2.5,2.25)}
Musst aber auf die Kommata achten, die bleiben hier bestehen.
HErbert
Oh man, danke. Da fällt mir ein Stein vom Herzen. So zu rechnen ist dann natürlich ziemlich einfach. :rolleyes:
Auf Bald
Könnte mir jetzt bitte noch irgendwer erklären, wie das Rechnen innerhalb
-eines Def-Befehls
-einer parametricplot
-und einer pstThreeDBox geht?
Weil wenn ich es bei einer der hier genannten so probiere, bekomme ich stets Fehler, wie zum Beispiel "missing unit".
\documentclass{article}
\usepackage{pst-3dplot}
\def\LeiSchau(#1){\pstThreeDBox[fillstyle=solid](-2.5,0,3)(#1 5 add,0,0)(0,4,0)(0,0,1)}
\begin{document}
\LeiSchau(2)
\end{document}
mit freundlichen Grüßen
Könnte mir jetzt bitte noch irgendwer erklären, wie das Rechnen innerhalb
-eines Def-Befehls
-einer parametricplot
-und einer pstThreeDBox geht?
Weil wenn ich es bei einer der hier genannten so probiere, bekomme ich stets Fehler, wie zum Beispiel "missing unit".
\documentclass{article}
\usepackage{pst-3dplot}
\def\LeiSchau(#1){\pstThreeDBox[fillstyle=solid](-2.5,0,3)(#1 5 add,0,0)(0,4,0)(0,0,1)}
\begin{document}
\LeiSchau(2)
\end{document}
Ersetze mal deine pst-3dplot.tex durch diese hier:
http://voss.homedns.org/packages/pst-3dplot/pst-3dplot.tex
oder packe sie zur Not in dein Dokumentverzeichnis.
Bislang war es nur bei einfachen 3D-Koordinaten möglich zu
rechnen. Bei der Box müssen aber Vektoren addiert/subtrahiert werden,
weshalb es bislang nicht ging.
Herbert
Wunderbar, geht, danke. :)
Jetzt müsste ich nur noch verstehen, wie das innerhalb der parametricplots und innerhalb der \def-befehle geht. Mit innerhalb meine ich, wie kann ich zum Beispiel zwei Variablen miteinander multiplizieren oder durch einander teilen?
mit freundlichen Grüßen
Jetzt müsste ich nur noch verstehen, wie das innerhalb der parametricplots und innerhalb der \def-befehle geht. Mit innerhalb meine ich, wie kann ich zum Beispiel zwei Variablen miteinander multiplizieren oder durch einander teilen?
Hol dir die Datei nochmal, da waren noch neue Fehler drin.
Du kannst nicht erwarten, dass du dies alles im Schnelldurchgang
verstehen kannst. Andere brauchten dafür Jahre ... ;)
Für normale 2D-Koordinaten kann man immer mit (! ... ) rechnen,
bei 3D-Koordinaten geht es (fast) immer so. In \def kann man nur sehr
bedingt rechnen.
Herbert
Kann es sein, das Spheres in dem neuen auch nicht funktionieren?
mfg
Kann es sein, das Spheres in dem neuen auch nicht funktionieren?
die gehen, alle Dateien liegen hier mit der erstellten Doku
http://voss.homedns.org/packages/pst-3dplot/
Herbert
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.