6

Consider the following example:

\documentclass{article}

\usepackage{pst-plot}

\begin{document}

\psset{xunit = 2}
\begin{pspicture}(3,1)
\psaxes[Dx = 0.5]{->}(3,1)
\end{pspicture}

\end{document}

output

Is it possible to get 1 and 2 instead of 1.0 and 2.0 (as with 0) as axis labels?

Update

I've also asked this question on LaTeX Community (and now added Marco's answer).

  • If you make a question in LaTeX-Community then you should not repost it in TeX.StackExchange, or vice verse because cross-sites posting is not allowed as far as I know. – kiss my armpit Jan 11 '14 at 20:51
  • @StiffJokes As long as I make a comment about posting it both places and post an answer, given on one side, on the other, too, I don't see the problem. – Svend Tveskæg Jan 12 '14 at 9:53
  • @SvendTveskæg: from a physicians view, it should not be written as 1 and 2 – user2478 Jan 12 '14 at 16:21
  • @Herbert I know. :) – Svend Tveskæg Jan 12 '14 at 16:22
  • 2
    @CodeMocker Cross-Posts are allowed on LaTeX-Community.org, the poster should just include a link, so everybody knows. Can save time. Svend did it perfectly, and as I know a cross-post here is fine as well, just not within different StackExchange sites since they topics separate and focused. – Stefan Kottwitz Jan 12 '14 at 20:45
5

Here a solution with some internal justification:

\documentclass{article}
\usepackage{pst-plot}
\makeatletter
\def\@LabelComma#1.#2.#3\@nil{%
  \def\pst@tempA{#1}%
  \ifx\pst@tempA\@empty\the\@zero\else#1\fi% the integer part
  \def\pst@tempA{#2}
  \ifx\pst@tempA\@empty
     \@writeDecimals{}%
  \else%
    \ifnum#2=0\relax\else%
      \@writeDecimals{#2}%
   \fi%
 \fi%
}
\makeatother

\begin{document}
\psset{xunit = 2}
\begin{pspicture}(3,1)
\psaxes[Dx = 0.5]{->}(3,1)
\end{pspicture}
\end{document}

output

3

A recommended solution with fp.

\documentclass[pstricks,border=24pt,12pt]{standalone}

\usepackage{pst-plot}
\usepackage[nomessages]{fp}


\begin{document}

\psset{xunit = 2}
\begin{pspicture}(3,1)
\psaxes[ticks=none,labels=none]{->}(3,1)
\multido{\r=.0+.5}{6}{\psxTick(\r){\FPeval\temp{clip(\r)}\temp}}
\end{pspicture}

\end{document}

enter image description here

  • Does this mean it is not possible to modify the labels of the axes directly? – cgnieder Jan 12 '14 at 10:15
  • @cgnieder Good point. What you are asking for is exactly what I would like. – Svend Tveskæg Jan 12 '14 at 10:16
  • @cgnieder: I don't know the internal details of PSTricks. Herbert might be able to answer your question. :-) – kiss my armpit Jan 12 '14 at 10:17
  • What would be the output with the other step value: \multido{\r=.0+.4}{6}? – g.kov Jan 12 '14 at 11:34
  • @g.kov: Then use the more accurate one \n instead of \r, \multido{\n=.0+.4}{6}{\psxTick(\n){\FPeval\temp{clip(\n)}\temp}}. – kiss my armpit Jan 12 '14 at 16:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.