
LaTeX
어젯밤에 저는 상대 좌표를 사용하여 화살표로 노드를 연결하는 이 조각을 만들었습니다 .
\documentclass[a4paper,10pt]{article}
\usepackage{tikz}
\usetikzlibrary{positioning} %for [above], [below] and shit.
\usetikzlibrary{arrows}
\usetikzlibrary{shapes}
\begin{document}
\begin{figure}[generic_scheme]
\tikzstyle{block}=[draw,shape=rectangle, minimum width=2.5cm,
minimum height=1cm]
\tikzstyle{f_arrow}=[->, thick]
\tikzstyle{d_arrow}=[<->, thick]
\begin{tikzpicture}[auto]
\node[block] (nuc) [] {Intel NUC};
\node[block] (power) [above=of nuc, yshift=0.5cm]
{Power\\Circuit};
\node[block] (smps) [left=of nuc, yshift=1.25cm] {SMPS};
\draw[f_arrow] (power.south) -- (nuc.north);
\draw[f_arrow] (power.west)++(0, -0.25) --
(smps.east)++(0, 0.25);
\draw[d_arrow] (nuc.west)++(0, 0.25) --
(smps.east)++(0, -0.25);
\end{tikzpicture}
\end{figure}
\end{document}
yshift
오늘 저는 상대 좌표 대신 다음과 같은 대체 방법을 사용해 보았습니다 .
\documentclass[a4paper,10pt]{article}
\usepackage{tikz}
\usetikzlibrary{positioning} %for [above], [below] and shit.
\usetikzlibrary{arrows}
\usetikzlibrary{shapes}
\begin{document}
\begin{figure}[generic_scheme]
\tikzstyle{block}=[draw,shape=rectangle, minimum width=2.5cm,
minimum height=1cm]
\tikzstyle{f_arrow}=[->, thick]
\tikzstyle{d_arrow}=[<->, thick]
\begin{tikzpicture}[auto]
\node[block] (nuc) [] {Intel NUC};
\node[block] (power) [above=of nuc, yshift=0.5cm]
{Power\\Circuit};
\node[block] (smps) [left=of nuc, yshift=1.25cm] {SMPS};
\draw[f_arrow] (power.south) -- (nuc.north);
\draw[f_arrow] ([yshift=-0.25cm]power.west) --
([yshift=0.25cm]smps.east);
\draw[d_arrow] ([yshift=0.25cm]nuc.west) --
([yshift=-0.25cm]smps.east);
\end{tikzpicture}
\end{figure}
\end{document}
그래서 제 질문은 이 겉보기에 "동일한" 조각들 사이의 차이점은 무엇일까요 LaTeX
? 어떻게 작동 relative coordinate
하는지 이해하려고 노력하는 동안 사소한 것을 놓치고 있습니까 yshift
? 아니면 내 주식 Ubuntu 14.04
pdfTeX 3.1415926-2.5-1.40.14 설치 의 버그일까요 ?
답변1
여기서 문제는
\draw[d_arrow] (nuc.west)++(0, 0.25) --
(smps.east)++(0, -0.25);
당신은~ 아니다경로에 영향을 주지 않고 좌표에서 0.25를 더하거나 뺍니다. 다음의 간단한 예에서 볼 수 있듯이 연필을 움직이고 있습니다(두 경우 모두 선이 끝나는 위치와 화살표 끝이 나타나는 위치를 확인하세요).
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) grid (6,3);
\draw (0,0)++(0.5,0.5) -- (2,2)++(0.5,0.5);
\draw[->] (3,0)++(0.5,0.5) -- (5,2)++(0.5,0.5);
\end{tikzpicture}
\end{document}
순서
\draw[->] (3,0)++(0.5,0.5) -- (5,2)++(0.5,0.5);
다음과 같이 볼 수 있습니다:
- 연필을 (3,0)으로 옮깁니다.
- x 및 y 좌표 모두에서 추가로 0.5만큼 이동합니다(그리지 않고).
- (5,2)까지 그리기 시작합니다.
- 다시 두 좌표에서 연필을 0.5만큼 더 이동합니다(그러나 지금은 그림이 없습니다).
- 화살표 끝을 배치합니다.
값을 추가하려면 교대근무나 calc
라이브러리를 사용하십시오(여기서는 과잉일 수도 있음).
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\draw (0,0) grid (6,3);
\draw[->] ([shift={(0.5,0.5)}]0,0) -- ([shift={(0.5,0.5)}]2,2);
\draw[->] ( $ (3,0) +(0.5,0.5) $ ) -- ( $ (5,2) + (0.5,0.5) $ );
\end{tikzpicture}
\end{document}