
본문 텍스트를 기준으로 TikZ 그림의 위치를 어떻게 지정하나요? TikZ를 사용하여 원을 그렸고 원을 본문 텍스트 옆에 배치하고 싶습니다(읽는 동안 보기는 쉽지만 방해가 되지는 않습니다). 이 작업을 수행하는 방법을 잘 모르겠습니다. 그림을 이동시키기 위해 좌표를 변경해 보았는데, 전체가 이동하는 것이 아니라 도형끼리 상대적으로만 이동하는 것 같습니다. 이에 대한 도움을 주시면 감사하겠습니다. 감사해요!
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
Body text.
\begin{tikzpicture}
\draw [fill = lightgray] (0,0) circle [radius = 1.25 cm];
\end{tikzpicture}
\caption{Circular Region}
\end{document}
답변1
다음 예를 명확하게 하기 위해 내부에 텍스트가 있는 원과 같은 간단한 tikz 그림을 생성하는 매크로를 정의하겠습니다.
\newcommand{\mypicture}[1][]{% 1 optional parameter for options for the tikz picture
\begin{tikzpicture}[#1]
\node[draw, circle, fill=yellow!30, inner sep=2mm] (a) {A};
\end{tikzpicture}
}
다음을 생성합니다.
TikZ 그림을 완성하면 TeX의 경우 상자일 뿐입니다. 다음과 같이 단락의 일부가 될 수 있는 "큰 문자"로 생각하십시오.
This paragraph contains a figure \mypicture{} inline.
보시다시피, 이미지가 포함된 "상자"는 기준선에서 나머지 텍스트와 정렬됩니다. 각 문자에는 같은 줄의 다른 문자와 수직으로 정렬하는 데 사용되는 가상의 선이 있습니다. 상자는 기준선의 위와 아래로 확장될 수 있지만 기본적으로 tikz는 결과 상자의 맨 아래에 이미지의 기준선을 배치합니다.
baseline
tikzpicture에 옵션을 제공하여 이를 변경할 수 있습니다 . 이 옵션은 와 같은 차원이나 노드 내부 텍스트의 기준선인 , 또는 심지어 와 1mm
같은 그림 내부 좌표의 이름을 인수로 받을 수 있습니다 . 다음 사례를 살펴보겠습니다.a.center
a.north
a.base
a
\parbox{6cm}{
\begin{itemize}
\item Default: \hrulefill\mypicture
\item 2mm: \hrulefill\mypicture[baseline=-2mm]
\item Center: \hrulefill\mypicture[baseline=(a.center)]
\item North: \hrulefill\mypicture[baseline=(a.north)]
\item Base: \hrulefill\mypicture[baseline=(a.base)]
\end{itemize}
}
물론 "인라인"으로 사용하는 것 외에도 각주, 여백 메모, 표 또는 그림 환경(떠다니게 만드는)과 같이 다른 텍스트를 넣을 수 있는 모든 곳에 배치할 수 있습니다. 예를 들어 여백 메모를 참조하십시오.
\marginpar{\mypicture[baseline=(a.base)]}
\lipsum[1]
\lipsum[2]
wrapfig
그림이나 표에 텍스트를 넣을 수 있는 패키지와 함께 사용할 수도 있습니다 .
remember picture
tikz 옵션 과 을 사용하면 overlay
다른 답변에서 볼 수 있듯이 페이지의 절대 위치에 넣을 수 있습니다.
답변2
remember picture,overlay
옵션과 노드를 사용할 수 있습니다 current page
. 다음 예에서는tikznodepages
노드 를 사용하여 더욱 세밀하게 제어하려면 다음 패키지를 사용하세요 current page text area
.
\documentclass{article}
\usepackage[a6paper]{geometry}
\usepackage{tikz}
\usepackage{tikzpagenodes}
\usepackage{lipsum}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\draw[fill = lightgray] ([xshift=0.7cm]current page text area.east) circle [radius = 0.5 cm];
\draw[fill = red!40] ([xshift=-0.7cm]current page text area.west) circle [radius = 0.5 cm];
\draw[fill = green!40] ([yshift=0.7cm]current page text area.north) circle [radius = 0.5 cm];
\draw[fill = blue!40] ([yshift=-0.7cm]current page text area.south) circle [radius = 0.5 cm];
\draw[fill = magenta!40] ([xshift=0.7cm,yshift=0.7cm]current page.south west) circle [radius = 0.5 cm];
\draw[fill = olive!40] ([xshift=-0.7cm,yshift=-0.7cm]current page.north east) circle [radius = 0.5 cm];
\end{tikzpicture}
\lipsum[4]\lipsum[4]\lipsum[4]
\end{document}