Imprime 3 decimales en TikZ sin usar el formulario estándar

Imprime 3 decimales en TikZ sin usar el formulario estándar

Estoy intentando mostrar una regla de 0 a 1 usando 3 números decimales. Entonces me gustaría que la regla se viera así:

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

Etc.

Dado que esto sería demasiado para caber en 1 página, planeo dividirlo en varias páginas y uso este fragmento de código para la primera página.

\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}

Después de ejecutar este código obtengo el siguiente resultado

ingrese la descripción de la imagen aquí

¿Es posible obtener el número no en forma estándar sino como se muestra en el ejemplo escrito?

¿Es posible simplificar el ciclo y no utilizar evaluar y simplemente hacer algo como:

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

Gracias

Respuesta1

No entiendo muy bien por qué tienes esas \pgfmathparsecosas cuando ya las estás usando evaluate. Solo úsalo \pgfmathprintnumber[fixed,precision=3]{\text}en el nodetexto. fixeddesactiva la notación científica. Úselo \pgfmathprintnumber[fixed,fixed zerofill,precision=3]{\text}para obtener 0.000en lugar de 0.0.

No puede utilizar \x*0.001texto directamente en el nodo, ya que no se analiza como un número, es solo texto. Se podría decir node[...]{\pgfmathparse{\x*0.001}\pgfmathprintnumber[fixed,precision=3]{\pgfmathresult}};, pero yo diría que evaluatees más limpio.

ingrese la descripción de la imagen aquí

\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}

información relacionada