\draw[Ruler] 如何让 \ifnum\n=XYZ 画得更长或更短

\draw[Ruler] 如何让 \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);
}%%
}

输出如下内容(本例中有两个 Y 标尺):

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

在此处输入图片描述

可以看出,1厘米已经完美重叠。

如果0下面的可以完美重叠,以及23以上。

我们如何调整上述代码来实现此结果?也就是说,让\draw[Ruler]除以下数字之外的所有数字的笔画更长:1

不用担心需要精确的 yshift,只要您可以输入一些变量来玩,我就会很高兴。

答案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}

相关内容