
8개(내부 4개, 외부 4개) 테두리 각각에 대한 색상을 별도로 지정할 수 있고 크기를 조정할 때 외부 직사각형과 내부 직사각형 사이의 분리 공간을 넓히지 않는 '이중 테두리'가 있는 직사각형을 어떻게 그릴 수 있습니까? ㅏ resizebox
?
(죄송합니다. 저는 TikZ를 처음 접했습니다.)
다음을 시도했지만 단점은 3개의 '직사각형'(내부 테두리가 외부 테두리와 같음)이며 가장자리가 '연결되지 않은' 것처럼 보입니다.
\begin{tikzpicture}
\draw[red, double = black] (0,0) -- (1,0);
\draw[green, double = purple] (1,0) -- (1,1);
\draw[blue, double = brown] (1,1) -- (0,1);
\draw[yellow, double = white] (0,1) -- (0,0);
\end{tikzpicture}
답변1
아마도 그거?
\documentclass{article}
\usepackage{tikz,lipsum}
\usetikzlibrary{calc}
\usepackage[marginparsep=3pt, top=2cm, bottom=1.5cm, left=1.5cm, right=1.5cm]{geometry}
\makeatletter
\newcommand{\Square}[2]{%
\def\@W{#1}%
\begin{tikzpicture}[baseline=(current bounding box.base)]
\foreach \o/\i [count=\j from 0] in {
blue/red,
yellow/black,
orange/gray,
green/violet}{%
\fill[rotate=\j*90,\o]
(-#2,-#2)--(#2,-#2)--(#2-\@W,\@W-#2)--(\@W-#2,\@W-#2)--cycle ;
\fill[rotate=\j*90,\i]
(-#2+\@W,-#2+\@W)--(#2-\@W,-#2+\@W)--(#2-2*\@W,2*\@W-#2)--(2*\@W-#2,2*\@W-#2)--cycle ;
}
\end{tikzpicture}
}
\makeatother
\newlength{\MyHeight}
\newsavebox{\MyBox}
\newcommand{\DBbox}[3][.05]{%
\begin{lrbox}{\MyBox}
\fbox{%
\begin{minipage}{#2}
#3
\end{minipage}
}%
\end{lrbox}%
\settoheight{\MyHeight}{\usebox{\MyBox}}%
\addtolength{\MyHeight}{-.2\baselineskip}% <- WHY ???
\usebox{\MyBox}%
\raisebox{.2\baselineskip}{\Square{#1}{\MyHeight}}% <- WHY ???
}
\begin{document}
\DBbox[5pt]{9cm}{%
\lipsum[1]}
\bigskip
\DBbox[20pt]{7cm}{%
\lipsum[1]}
\end{document}
더 많은 것:
\documentclass[margin=2pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\makeatletter
\newcommand{\Square}[5][%
blue/red,
yellow/black,
orange/gray,
green/violet%
]{%
\pgfpointdiff{\pgfpointanchor{#3}{center}}
{\pgfpointanchor{#4}{center}}
\pgf@xa=\pgf@x
\pgf@ya=\pgf@y
\pgfmathparse{veclen(\pgf@xa,\pgf@ya)/2.82843}
\let\@L\pgfmathresult
\def\@W{#2}% epaisseur
%\def\@L{#3}% côté
\begin{scope}[shift={($(#3)!.5!(#4)$)}]
\node {#5} ;
\foreach \o/\i [count=\j from 0] in {#1}{%
\fill[rotate=\j*90,\o]
(-\@L pt,-\@L pt)--(\@L pt,-\@L pt)--(\@L-\@W,\@W-\@L)--(\@W-\@L,\@W-\@L)--cycle ;
\fill[rotate=\j*90,\i]
(-\@L+\@W,-\@L+\@W)--(\@L-\@W,-\@L+\@W)--(\@L-2*\@W,2*\@W-\@L)--(2*\@W-\@L,2*\@W-\@L)--cycle ;
}
\end{scope}
}
\makeatother
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0) ;
\coordinate (B) at (5,5) ;
\coordinate (C) at (3,-3) ;
\Square{8pt}{A}{B}{Text 2} ;
\Square[
red/orange,
yellow!30!green/gray,
blue!25/black,
violet/green%
]{5pt}{A}{C}{Text 1} ;
\end{tikzpicture}
\end{document}