![\draw[Ruler] Como fazer com que \ifnum\n=XYZ seja desenhado mais longo ou mais curto](https://rvso.com/image/420272/%5Cdraw%5BRuler%5D%20Como%20fazer%20com%20que%20%5Cifnum%5Cn%3DXYZ%20seja%20desenhado%20mais%20longo%20ou%20mais%20curto.png)
Considere o seguinte código:
% Y-ruler
\newcommand\yRuler[5]{
\path let \p1=($(#1)-(#2)$) in
\pgfextra{ \pgfmathsetlengthmacro{\RasterboxesHeight}{veclen(\x1,\y1)} }
[savevalue={\h}{\RasterboxesHeight}];
\pgfmathsetmacro\NoYdiv{\h/\u} % Number of y divisions
\draw[Ruler] (#1) coordinate(Y) -- (#2);
\foreach \n in {0,1,...,\NoYdiv}{%%
\draw[Ruler] ([yshift=\n*\u]Y) -- +(#4,0) node[#3, inner sep=1pt]{
\ifnum\n=1 \n\,cm \else \n\fi};
}%%
\foreach \n in {0.1,0.2,...,\NoYdiv}{%%
\draw[] ([yshift=\n*\u]Y) -- +(#5,0);
}%%
}
O que produz algo como tal (existem 2 réguas Y neste caso):
\yRuler{LLM}{ULM}{right}{4mm}{2mm}
\yRuler{LRM}{URM}{left}{-4mm}{-2mm}
Como se pode ver, o1cmjá se sobrepõe perfeitamente.
Seria ótimo se também o0abaixo deles poderiam se sobrepor perfeitamente, assim como o2s e o3está acima.
Como poderíamos adaptar o código acima para alcançar esse resultado? Ou seja, faça com que \draw[Ruler]
tenham traços mais longos para todos os números, exceto1?
Não se preocupe com o yshift exato necessário, contanto que você possa inserir alguma variável para brincar, ficarei muito feliz.
Responder1
É a arte de dividir problemas difíceis em recortes simples e fornecer exemplos mínimos de trabalho para eles, com os quais se pode testar e experimentar (e então integrar suas soluções no código geral mais complexo).
\documentclass[margin=5pt, tikz]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[]
\foreach \n in {1,...,5}{
\ifnum\n=3 \draw[yshift=-\n cm, red] (0,0) -- (4,0) node[right]{\n};
\else \draw[yshift=-\n cm] (0,0) -- (2,0) node[right]{\ifnum\n=1 \n~(it's one) \else \n\fi};
\fi}
\end{tikzpicture}
\end{document}