Anzeige:
Ergebnis 1 bis 3 von 3

Thema: PsTricks, Brüche in den Achsenlabels

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #3
    Registrierter Benutzer
    Registriert seit
    09.12.2010
    Beiträge
    37
    Vielen Dank!

    Für Interessierte, noch um die entsprechende Anpassung für die x-Achse ergänzt:

    Code:
    \documentclass{scrartcl}
    \usepackage{pstricks}
    \usepackage{pst-plot}
    \newcounter{tmpX}
    \newcounter{tmpY}
    \makeatletter
    \renewcommand*\setFractionvLabels{%
      \def\pst@@@vlabel##1{\psvlabel{##1}}
      \def\psvlabel##1{%
          \ifnum\psk@yfractionLabelBase<2 \def\de@nominator{\@ne}\else\def\de@nominator{\psk@yfractionLabelBase}\fi
          \def\pst@tempA{##1}% 
          \pst@abs{\pst@tempA}\pst@cntm 
          \setcounter{tmpX}{\numexpr-\pst@tempA\relax}% + 2016-08-29
          \pst@mod{\pst@cntm}{\de@nominator}\pst@cntp % cntb=##1 modulo trigLabelBase
          \ifnum\@ne>\pst@cntp                  % 1 > modulo -> then we have pi/x
            \pst@cnto=\pst@cntm \divide\pst@cnto by \de@nominator  
    	\ifPst@ymathLabel$\psk@ylabelFontSize\ifnum\pst@tempA<0 -\fi\the\pst@cnto\psk@ylabelFactor$%
    	\else             \psk@ylabelFontSize\ifnum\pst@tempA<0 -\fi\the\pst@cnto\psk@ylabelFactor
    	\fi
          \else
    	\ifPst@ymathLabel
              $\psk@ylabelFontSize
              \ifnum\pst@cntp=\@ne                % < 1?    $
                \if\pst@cntm=\@ne
                  \frac{1}{\de@nominator}\psk@ylabelFactor%   % 1/x
                \else\ifnum\pst@tempA=-1 -\frac{1}{\de@nominator}\psk@ylabelFactor% mod 2016-08-29: \frac{-1} --> -\frac{1}
                  \else \ifnum\pst@tempA=1 \frac{1}{\de@nominator}\psk@ylabelFactor%
                    \else
                      \ifnum\pst@tempA<0    %+ 2016-08-29
                        -\frac{\the\value{tmpX}}{\de@nominator}\psk@ylabelFactor% + 2016-08-29
                      \else %+ 2016-08-29
                        \frac{\pst@tempA}{\de@nominator}\psk@ylabelFactor% x/y
                      \fi %+ 2016-08-29
                \fi\fi\fi
              \else
                \ifnum\pst@tempA=1 \frac{1}{\de@nominator}\psk@ylabelFactor%
                \else\ifnum\pst@tempA=\de@nominator 1\psk@xlabelFactor \else
                  \ifnum\pst@tempA<0    %+ 2016-08-29
                    -\frac{\the\value{tmpX}}{\de@nominator}\psk@ylabelFactor% + 2016-08-29
                  \else %+ 2016-08-29
                    \frac{\pst@tempA}{\de@nominator}\psk@ylabelFactor%
                  \fi   %+ 2016-08-29
              \fi\fi\fi$
    	\else
              \psk@ylabelFontSize
              \ifnum\pst@cntp=\@ne%                % < 1?
                \if\pst@cntm=\@ne
                  $\frac{1}{\de@nominator}\psk@ylabelFactor$%   % 1/x
                \else\ifnum\pst@tempA=-1 $\frac{-1}{\de@nominator}\psk@ylabelFactor$%
                  \else \ifnum\pst@tempA=1 $\frac{1}{\de@nominator}\psk@ylabelFactor$%
                    \else$\frac{\pst@tempA}{\de@nominator}\psk@ylabelFactor$% x/y
                \fi\fi\fi%
              \else%
                \ifnum\pst@tempA=1 $\frac{1}{\de@nominator}\psk@ylabelFactor$%
                \else\ifnum\pst@tempA=\de@nominator 1\psk@ylabelFactor
                  \else$\frac{\pst@tempA}{\de@nominator}\psk@ylabelFactor$%   %$
              \fi\fi\fi
    	\fi
          \fi
        }%
    }%$
    \renewcommand*\setFractionhLabels{%
      \def\pst@@@hlabel##1{\pshlabel{##1}}
      \def\pshlabel##1{%
          \ifnum\psk@xfractionLabelBase<2 \def\de@nominator{\@ne}\else\def\de@nominator{\psk@xfractionLabelBase}\fi
          \def\pst@tempA{##1}% 
          \pst@abs{\pst@tempA}\pst@cntm 
          \setcounter{tmpY}{\numexpr-\pst@tempA\relax}% + 2016-08-29
          \pst@mod{\pst@cntm}{\de@nominator}\pst@cntp % cntb=##1 modulo trigLabelBase
          \ifnum\@ne>\pst@cntp                  % 1 > modulo -> then we have pi/x
            \pst@cnto=\pst@cntm \divide\pst@cnto by \de@nominator  
    	\ifPst@ymathLabel$\psk@xlabelFontSize\ifnum\pst@tempA<0 -\fi\the\pst@cnto\psk@xlabelFactor$%
    	\else             \psk@xlabelFontSize\ifnum\pst@tempA<0 -\fi\the\pst@cnto\psk@xlabelFactor
    	\fi
          \else
    	\ifPst@xmathLabel
              $\psk@xlabelFontSize
              \ifnum\pst@cntp=\@ne                % < 1?    $
                \if\pst@cntm=\@ne
                  \frac{1}{\de@nominator}\psk@xlabelFactor%   % 1/x
                \else\ifnum\pst@tempA=-1 -\frac{1}{\de@nominator}\psk@xlabelFactor% mod 2016-08-29: \frac{-1} --> -\frac{1}
                  \else \ifnum\pst@tempA=1 \frac{1}{\de@nominator}\psk@xlabelFactor%
                    \else
                      \ifnum\pst@tempA<0    %+ 2016-08-29
                        -\frac{\the\value{tmpY}}{\de@nominator}\psk@xlabelFactor% + 2016-08-29
                      \else %+ 2016-08-29
                        \frac{\pst@tempA}{\de@nominator}\psk@xlabelFactor% x/y
                      \fi %+ 2016-08-29
                \fi\fi\fi
              \else
                \ifnum\pst@tempA=1 \frac{1}{\de@nominator}\psk@xlabelFactor%
                \else\ifnum\pst@tempA=\de@nominator 1\psk@ylabelFactor \else
                  \ifnum\pst@tempA<0    %+ 2016-08-29
                    -\frac{\the\value{tmpY}}{\de@nominator}\psk@xlabelFactor% + 2016-08-29
                  \else %+ 2016-08-29
                    \frac{\pst@tempA}{\de@nominator}\psk@xlabelFactor%
                  \fi   %+ 2016-08-29
              \fi\fi\fi$
    	\else
              \psk@xlabelFontSize
              \ifnum\pst@cntp=\@ne%                % < 1?
                \if\pst@cntm=\@ne
                  $\frac{1}{\de@nominator}\psk@xlabelFactor$%   % 1/x
                \else\ifnum\pst@tempA=-1 $\frac{-1}{\de@nominator}\psk@xlabelFactor$%
                  \else \ifnum\pst@tempA=1 $\frac{1}{\de@nominator}\psk@xlabelFactor$%
                    \else$\frac{\pst@tempA}{\de@nominator}\psk@xlabelFactor$% x/y
                \fi\fi\fi%
              \else%
                \ifnum\pst@tempA=1 $\frac{1}{\de@nominator}\psk@xlabelFactor$%
                \else\ifnum\pst@tempA=\de@nominator 1\psk@xlabelFactor
                  \else$\frac{\pst@tempA}{\de@nominator}\psk@xlabelFactor$%   %$
              \fi\fi\fi
    	\fi
          \fi
        }%
    }%$
    \makeatother
    \begin{document}
    \begin{pspicture}(-4,-4)(4,4)
    \psset{fractionLabels,fractionLabelBase=3,unit=1cm}
    \psaxes{->}(0,0)(-4,-4)(4,4)
    \end{pspicture}
    \end{document}
    Geändert von jbecker (30-08-2016 um 07:42 Uhr)

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •