Печать 3 десятичных знаков в TikZ без использования стандартной формы

Печать 3 десятичных знаков в TikZ без использования стандартной формы

Я пытаюсь сделать отображение линейки от 0 до 1 с использованием 3 десятичных чисел. Поэтому я хотел бы, чтобы линейка выглядела примерно так:

0,000 0,001 0,002 0,003 ..... 0,010 0,011

И так далее.

Так как это было бы слишком долго, чтобы поместиться на одной странице, я планирую разбить это на несколько страниц и использую этот фрагмент кода для первой страницы

\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]

\draw[ultra thick,color=black] (0,0) -- (26,0);
\foreach \x[evaluate=\x as \text using \x*0.001] in {0,1,2,3,...,40}{
    \draw[shift={(\x*0.65,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[yshift = -20pt,rotate = 270] { 
         \pgfmathparse{\x*0.001}\pgfmathprintnumberto[precision=1] {\pgfmathresult}{\pgfmathresult} \pgfmathresult };
}
\end{tikzpicture}

После запуска этого кода я получаю следующий вывод

введите описание изображения здесь

Можно ли получить число не в стандартном виде, а как показано в письменном примере?

Можно ли сделать цикл более простым и не использовать estimate, а просто сделать что-то вроде:

\draw[shift={(\x*0.65,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[yshift = -20pt,rotate = 270] { \x*0.001 };
}

Спасибо

решение1

Я не совсем понимаю, зачем вам эта \pgfmathparseштука, если вы уже используете evaluate. Просто используйте \pgfmathprintnumber[fixed,precision=3]{\text}в nodeтексте. fixedотключает научную запись. Используйте \pgfmathprintnumber[fixed,fixed zerofill,precision=3]{\text}для получения 0.000вместо 0.0.

Вы не можете использовать \x*0.001текст узла напрямую, так как он не анализируется как число, это просто текст. Вы могли бы сказать node[...]{\pgfmathparse{\x*0.001}\pgfmathprintnumber[fixed,precision=3]{\pgfmathresult}};, но тогда я бы сказал, evaluateчто чище.

введите описание изображения здесь

\documentclass[border=4mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[line cap=round]
\draw[ultra thick,color=black] (0,0) -- (26,0);
\foreach \x[evaluate=\x as \text using \x*0.001] in {0,...,40}{
    \draw (\x*0.65,2pt) -- ++(0,-4pt)
       node[below=3pt,anchor=west,align=left,rotate = 270] 
          {\pgfmathprintnumber[fixed,fixed zerofill,precision=3]{\text}};
}
\end{tikzpicture}
\end{document}

Связанный контент