\draw[Линейка] Как сделать так, чтобы \ifnum\n=XYZ была длиннее или короче

\draw[Линейка] Как сделать так, чтобы \ifnum\n=XYZ была длиннее или короче

Пожалуйста, рассмотрите следующий код:

% 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);
}%%
}

Что выводит что-то вроде этого (в данном случае есть 2 Y-линейки):

\yRuler{LLM}{ULM}{right}{4mm}{2mm}
\yRuler{LRM}{URM}{left}{-4mm}{-2mm}

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

Как можно видеть,1смуже идеально перекрывается.

Было бы здорово, если бы также0s под ними могут идеально перекрываться, также как и2с и3выше.

Как можно адаптировать код выше, чтобы достичь этого результата? То есть сделать так, \draw[Ruler]чтобы все числа, кроме1?

Не беспокойтесь о точном значении необходимого сдвига по оси y, если вы сможете ввести какую-либо переменную для экспериментов, я буду очень рад.

решение1

Это искусство разбить сложные проблемы на простые примеры и дать для них работающие минимальные примеры, которые можно протестировать и опробовать (а затем интегрировать их решения в более сложный общий код).

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

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

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