我在 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 将图像视为文本,这意味着图像可能不太美观。但它会将图像放置在您想要的位置。