답변1
학습의 시작점으로(기본 도구로 TikZ 패키지를 선택한 경우) 다음 MWE를 제공할 수 있습니다.
\documentclass[tikz, border=3mm]{standalone}
\usetikzlibrary{chains,decorations.pathreplacing}
\begin{document}
\begin{tikzpicture}[
node distance=0pt,
start chain = A going right,
X/.style = {rectangle, draw,% styles of nodes in string (chain)
minimum width=2ex, minimum height=3ex,
outer sep=0pt, on chain},
B/.style = {decorate,
decoration={brace, amplitude=5pt,
pre=moveto,pre length=1pt,post=moveto,post length=1pt,
raise=1mm,
#1}, % for mirroring of brace, if necessary
thick},
B/.default=mirror, % by default braces are mirrored
]
\foreach \i in {0,1,1,0,0,0,1,0,0,
0,1,0,1,0,0,0,1,0,
0,0,1,1,0,0,1,0,0}% <-- content of nodes
\node[X] {\i};
\draw[B] ( A-1.south west) -- node[below=2mm] {Channel 1 Links} ( A-9.south east);
\draw[B] (A-10.south west) -- node[below=2mm] {Channel 2 Links} (A-18.south east);
\draw[B] (A-19.south west) -- node[below=2mm] {Channel 3 Links} (A-27.south east);
\node (B1) [inner sep=1pt,above=of A-10.north west] {$\times$};
\node (B2) [inner sep=1pt,above=of A-19.north west] {$\times$};
\draw[B=](B1.north) -- node[above=2mm] {Crossover Points}(B2.north);
\end{tikzpicture}
\end{document}
이는 다음을 제공합니다:
코드에 대한 간단한 설명: 위의 코드는 (매우) 간결하므로 TikZ 패키지에 대한 약간의 경험을 이해하는 것이 필요합니다. 디자인할 때 다음 사항을 고려했습니다.
그림의 단순한 구조. 그것은 사슬을 형성하는 동일한 모양의 27개의 노드를 가지고 있습니다. 따라서
chains
TikZ의 라이브러리가 위치 지정에 사용됩니다. 이는 옵션에 의해 정의됩니다start chain = A going right
. 여기서 A는 체인 이름입니다. 결과적으로 체인의 노드 이름은 A-1, A-2, ..., A-27입니다.체인의 노드 사이의 거리는 에 의해 결정됩니다
node distance
. 기본값은 15mm이므로 0으로 설정되어 노드가 모양의 매개변수node distance=0pt
로만 구분됩니다 .outer sep
경계선이 적절하게 겹쳐지고 이 거리도 0으로 설정됩니다(노드 스타일 정의에서는 X로 명명됨).TikZ에서
foreach
루프는 반복 작업을 수행하기 위한 것입니다. 이러한 작업은 체인에 노드를 설정하는 것입니다. ~와 함께\forach \i in {...}\node[X] {\i};
중괄호 안의 목록에 의해 내용이 결정되는 노드 체인(스타일 X 사용)으로 구성됩니다. 위치는 체인에 의해 결정되므로 루프는 실제로 번호와 내용만 결정합니다.
노드 아래와 위의 중괄호는 라이브러리를 사용하여 그려집니다
decorations.pathreplacing
. 매개변수 정의에서 매개변수는mirror
나중에 결정될 수 있는 자유 매개변수로 선택됩니다. 4개의 중괄호 중 3개가 미러링되므로 이것이 기본값으로 설정되고 예외는 "로컬"로 결정됩니다.1pt
Braces는 좌표 사이의 거리보다 양쪽이 더 짧게 설계되었으며,raise=1mm
주어진 좌표에서 아래로(미러링된 경우) 또는 위로(미러링되지 않은 경우) 이동하도록 설계되었습니다 ."채널 2 링크"의 시작과 끝 위의 십자가는 "고전적인 방식"으로 설정되어 있으며
above=of <coordinate name>
곱셈을 위해 수학 기호가 사용됩니다.
여기에 사용되는 TikZ의 원리에 대한 더 자세한 설명은 TikZ 매뉴얼에 있습니다.
- 체인의 경우: 46장 체인, 541페이지
- for
\foreach
루프: 83장 반복 항목: Foreach 문, 901페이지 - 교정기의 경우: 하위 섹션 48.3 장식 교체 경로, 581페이지
답변2
다음을 포함하는 단축 코드 pstricks
:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{mathtools}
\usepackage{pstricks-add, multido}
\usepackage{auto-pst-pdf}
\begin{document}
\sffamily
\begin{pspicture}
\psset{dimen=middle, linewidth=0.6pt, braceWidthOuter=4pt, braceWidthInner=4pt, braceWidth=0.8pt, labelsep =-2ex}
\multido{\i = 0 + 1, \n=0+0.5}{27}{\fnode[framesize=0.5](\n, 0){A\i}}%
\rmultiput{$0$}(A0)(A3)(A4)(A5)(A7)(A8)(A9)(A11)(A13)(A14)(A15)(A17)(A18)(A19)(A22)(A23)(A25)(A26)
\rmultiput{$1$}(A1)(A2)(A6)(A10)(A12)(A16)(A20)(A21)(A24)
\psset{rot=90, nodesepB=2ex}
\multido{\ia=0 + 9, \ib=8 + 9}{3}{\pnode[-0.15, -0.35](A\ia){B\ia}\pnode[0.15, -0.35](A\ib){B\ib}\psbrace(B\ia)(B\ib){\clap{Channel\,1 Links}}}
\multido{\i=8 + 9}{2}{\pnode[0.25,0.6](A\i){C\i}\uput{1pt}[d](C\i){$\times$}}
\psbrace[rot=-90, nodesepB=-0.5ex](C17)(C8){\clap{Crossover Points}}
\end{pspicture}
\end{document}