tikz 图片 位置 latex

tikz 图片 位置 latex

我在 LaTex 中遇到了一个问题,我想在文本的中心放置一个图形,并在图形下方添加信息。我使用此代码来获取图形:

\newcommand\FanoPlane[1][1cm]{%
\begin{tikzpicture}[
 mydot/.style={
   draw,
   circle,
   fill=black,
   inner sep=3pt}
   ]
\draw
(0,0) coordinate (A) --
(#1,0) coordinate (B) --
($ (A)!.5!(B) ! {sin(60)*2} ! 90:(B) $) coordinate (C) -- cycle;
\coordinate (O) at
(barycentric cs:A=1,B=1,C=1);
\draw (O) circle [radius=#1*1.717/6];
\draw (C) -- ($ (A)!.5!(B) $) coordinate (LC); 
\draw (A) -- ($ (B)!.5!(C) $) coordinate (LA); 
\draw (B) -- ($ (C)!.5!(A) $) coordinate (LB); 
\foreach \Nodo in {A,B,C,O,LC,LA,LB}
 \node[mydot] at (\Nodo) {};    
\end{tikzpicture}%
\put(15,0){Figure 1. Fano Hypergraph }
 }

\quad\FanoPlane[5cm]

答案1

正如一位评论者指出的那样,手动输入标题很奇怪。更常见的做法是这样做:

\newcommand\FanoPlane[1][1cm]{%
\begin{tikzpicture}[
 mydot/.style={
   draw,
   circle,
   fill=black,
   inner sep=3pt}
   ]
\draw
(0,0) coordinate (A) --
(#1,0) coordinate (B) --
($ (A)!.5!(B) ! {sin(60)*2} ! 90:(B) $) coordinate (C) -- cycle;
\coordinate (O) at
(barycentric cs:A=1,B=1,C=1);
\draw (O) circle [radius=#1*1.717/6];
\draw (C) -- ($ (A)!.5!(B) $) coordinate (LC); 
\draw (A) -- ($ (B)!.5!(C) $) coordinate (LA); 
\draw (B) -- ($ (C)!.5!(A) $) coordinate (LB); 
\foreach \Nodo in {A,B,C,O,LC,LA,LB}
 \node[mydot] at (\Nodo) {};    
\end{tikzpicture}%
 }
\begin{figure}
\centering
\quad\FanoPlane[5cm]
\caption{Fano Hypergraph}\label{fig:figurelabel}
\end{figure}

这会将 tikz 图片放置在图形中,并将图形内容置于中心。

附言:如果您希望图片放置在文本中的正确位置且无浮动,则有两个选项:选项 1:使用 t、b、h 和 H 与 ! 开关强制 Latex 将图形放置在顶部、底部、此处和正确位置。

\begin{figure}[h!]
figure code
\end{figure}

将尝试将图形放在此处。H 会倾向于忽略所有规则将其放在此处。老实说,我对 Latex 用来实现这一点的确切算法并不十分了解。

如果上述方法不起作用,而您确实想在那里放置某些东西,那么您实际上并不需要浮动位,因此您不应该使用浮动环境。而是使用 center ,如下所示:

\begin{center}
figure code
\captionof{figure}{Caption text}
\end{center}

这将迫使 Latex 将图像视为文本,这意味着图像可能不太美观。但它会将图像放置在您想要的位置。

相关内容