\draw 명령과 \foreach 명령 내 \draw 명령의 단위 차이

\draw 명령과 \foreach 명령 내 \draw 명령의 단위 차이

축에 숫자를 넣어 2차원 좌표계를 그리려고 합니다. 이것은 내가 시도하는 코드입니다.

\documentclass[12pt,oneside]{report}
\usepackage{tikz}
\usetikzlibrary{arrows,calc}
\begin{document}
\begin{figure}[!h]
\centering
\begin{tikzpicture}

\newcommand*{\TickSize}{2pt}%


\draw [-latex] (-0.5,0) -- (4.5,0);% x-axis
\draw [-latex] (0,-0.5) -- (0,4.5);% y-axis

\foreach \x in {1,...,4} {%
    \draw ($(\x,0)+(\x,-\TickSize)$) -- ($(\x,0)+(\x,\TickSize)$)
        node [below,yshift=-2pt] {$\x$};
}

\foreach \y in {1,...,4} {%
    \draw ($(0,\y)+(-\TickSize,\y)$) -- ($(0,\y)+(\TickSize,\y)$)
        node [left,xshift=-2pt] {$\y$};
}
\end{tikzpicture}
\end{figure}
\end{document}

그러나 그로부터 다음과 같은 결과를 얻습니다.

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

숫자가 축을 벗어나기 때문에 제가 측면을 고려하지 않았습니다. 이 솔루션은 다음에서 영감을 얻었습니다., 그리고 분명히 저자는 이 문제에 직면하지 않았습니다.

감사해요.

답변1

명령문은 좌표를 두 번 \draw ($(\x,0)+(\x,-\TickSize)$)추가하므로 \x눈금 및 숫자 배치의 크기가 두 배로 늘어납니다. 에서도 마찬가지입니다 \y.

그리고 Torbjorn이 추가한 것처럼 구분된 문구 내에서 좌표를 계산할 필요가 없지만 $이 경우 직접 지정할 수 있습니다.

\documentclass[12pt,oneside]{report}
\usepackage{tikz}
\usetikzlibrary{arrows,calc}
\begin{document}
\begin{figure}[!h]
\centering
\begin{tikzpicture}

\newcommand*{\TickSize}{2pt}%


\draw [-latex] (-0.5,0) -- (4.5,0);% x-axis
\draw [-latex] (0,-0.5) -- (0,4.5);% y-axis

\foreach \x in {1,...,4} {%
    \draw (\x,-\TickSize) -- (\x,\TickSize)
        node [below,yshift=-2pt] {$\x$};
}

\foreach \y in {1,...,4} {%
    \draw (-\TickSize,\y) -- (\TickSize,\y)
        node [left,xshift=-2pt] {$\y$};
}
\end{tikzpicture}
\end{figure}
\end{document}

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

관련 정보