von mf123 » Di 16. Apr 2013, 11:40
\documentclass{article}
\usepackage{pst-plot}
\usepackage{pstricks-add}
\newcommand{\radianzwei}
{
\makeatletter
\def\pst@@@hlabel#1{\pshlabel{#1}}
\def\pshlabel#1{$%
\ifodd#1 %ungerade?
\ifnum#1>0
\frac{#1}{2}\pi%
\else
\pst@abs{#1}\pst@cnta
-\frac{\the\pst@cnta}{2}\pi%
\fi
\else%
\pst@cntb=#1\divide\pst@cntb by 2 % #1/2
\ifnum#1=2
\pi%
\else
\ifnum#1=-2
-\pi%
\else
\the\pst@cntb\pi
\fi
\fi
\fi$}%
\makeatother
}
\begin{document}
\radianzwei
\psset{xunit=1.570796327}
\begin{pspicture}(-5,-1.25)(6.3,1.25)
\psplot[linecolor=red,linewidth=1.5pt]%
{-5}{6.3}{x 180 mul 3.141592654 div sin}
\psaxes[showorigin=false]{->}(0,0)(-5,-1.25)(6.3,1.25)
% \psgrid[gridwidth=0.2pt,subgriddiv=2,gridlabels=0pt,griddots=20](-5,-1.25)(6.3,1.25) %Gitter
\end{pspicture}
\end{document}
Ich möchte den Code zwischen \makealetter und \makeatother gerne als kurzen Befehl \radianzwei definieren. Allerdings verlangt die Funktion \pshlabel ein Argument, was so zu einer Fehlermeldung führt. Wie muss ich meinen Code ändern, damit das gewünschte Ergebnis eintritt?
\documentclass{article}
\usepackage{pst-plot}
\usepackage{pstricks-add}
\newcommand{\radianzwei}
{
\makeatletter
\def\pst@@@hlabel#1{\pshlabel{#1}}
\def\pshlabel#1{$%
\ifodd#1 %ungerade?
\ifnum#1>0
\frac{#1}{2}\pi%
\else
\pst@abs{#1}\pst@cnta
-\frac{\the\pst@cnta}{2}\pi%
\fi
\else%
\pst@cntb=#1\divide\pst@cntb by 2 % #1/2
\ifnum#1=2
\pi%
\else
\ifnum#1=-2
-\pi%
\else
\the\pst@cntb\pi
\fi
\fi
\fi$}%
\makeatother
}
\begin{document}
\radianzwei
\psset{xunit=1.570796327}
\begin{pspicture}(-5,-1.25)(6.3,1.25)
\psplot[linecolor=red,linewidth=1.5pt]%
{-5}{6.3}{x 180 mul 3.141592654 div sin}
\psaxes[showorigin=false]{->}(0,0)(-5,-1.25)(6.3,1.25)
% \psgrid[gridwidth=0.2pt,subgriddiv=2,gridlabels=0pt,griddots=20](-5,-1.25)(6.3,1.25) %Gitter
\end{pspicture}
\end{document}
Ich möchte den Code zwischen \makealetter und \makeatother gerne als kurzen Befehl \radianzwei definieren. Allerdings verlangt die Funktion \pshlabel ein Argument, was so zu einer Fehlermeldung führt. Wie muss ich meinen Code ändern, damit das gewünschte Ergebnis eintritt?