TikZ에서 노드에 대한 산술 연산을 수행하는 방법은 무엇입니까?

TikZ에서 노드에 대한 산술 연산을 수행하는 방법은 무엇입니까?

상자가 여러 개 있는데 TikZ를 사용하여 빠르게 번호를 매기고 싶습니다. 내 생각은 다음과 같은 것을 사용하는 것이 었습니다.

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[font=\tiny]
  \foreach \x in {0,...,4}
    \foreach \y in {0,...,4}
      \draw (\x*2-.5,\y*2-.5) rectangle (\x*2+.5,\y*2+.5) node[midway] {\x+1+5*\y};
\end{tikzpicture}

\end{document}

그러나 이제 노드 노드는 0+1+5*2예시처럼 보입니다. TikZ를 0+1+5*2로 변환할 수 있는 방법이 있나요 11?

답변1

\x+1+5*\y먼저 결과를 노드의 콘텐츠로 사용하는 것보다 값을 계산해야 합니다 .

\documentclass[tikz, margin=3mm]{standalone}

\begin{document}
    \begin{tikzpicture}
\foreach \x in {0,...,4}
    \foreach \y in {0,...,4}
    \pgfmathtruncatemacro{\xy}{\x+1+5*\y} % macro which calculate value of \x+1+5*\y
        \draw (\x*8-1,\y*8+1) rectangle (\x*8+1,\y*8-1) node[midway] {\xy};
    \end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요

라이브러리 사용에 대해서는 pgfmath(기본적으로 로드됨) 장을 참조하십시오.수학 및 객체 지향 엔진tikz, 문서(4.1.4a 버전) 의 1010 페이지 , 특정 섹션94.1 표현식 구문 분석1012페이지에 있습니다.

답변2

1 cm내가 올바르게 이해했다면, 당신은 넓고 서로 분리된 정사각형 상자의 테이블을 만들고 싶을 것입니다 1 cm.

기본적으로 외곽선을 사각형 으로 그리는 옵션 과 nodes함께 a minimum size를 사용할 수 있습니다 .1cmdrawrectangle

\documentclass[tikz,border=5mm]{standalone}

\begin{document}

\begin{tikzpicture}[font=\tiny]
  \foreach \x in {0,...,4}{
    \foreach \y [evaluate =\y as \xy using int(\x+1+5*\y)]in {0,...,4}
      \node[draw,minimum size=1cm] at (2*\x,2*\y) {\xy};
      }

\end{tikzpicture}
\end{document}

스크린샷

관련 정보