无法并排显示 TiKz 图像,只能上下显示

无法并排显示 TiKz 图像,只能上下显示

这是我读到一篇关于这里的帖子后得到的,说子图用于水平放置图像:

\documentclass{amsart}

\usepackage{amssymb}
\usepackage{enumerate}
\usepackage{array}
\usepackage{mathrsfs}
\usepackage{tikz}
\tikzset{node distance=2cm, auto}
\usetikzlibrary{arrows}

\allowdisplaybreaks

\begin{document}

\section{}

\begin{figure}
     \begin{subfigure}
          \begin{tikzpicture}
\draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\end{tikzpicture}
          \caption*{(1)}
     \end{subfigure}
     \begin{subfigure}
          \begin{tikzpicture}
\draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\end{tikzpicture}
          \caption*{(2)}
     \end{subfigure}
     \begin{subfigure}
          \begin{tikzpicture}
\draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\end{tikzpicture}
          \caption*{(3)}
     \end{subfigure}
 \end{figure}

\end{document}

但它仍将图像垂直放置。我想让我的图像看起来完全像这样:

在此处输入图片描述

而且它\caption*似乎不起作用,尽管我在这里读到一篇文章说它会去掉标题中的“FIGURE”这个词,但在我看来却不起作用。

答案1

环境subfigure,从subcaption包,要求将长度作为强制参数,表示为子浮点保留的宽度;请注意%第一个和第二个字符之后的字符\end{subfigure},这些字符会抑制空格,否则会将第三个图像向下推。我以前没有使用手动编号,而是\caption{}使用自动编号(特别是允许交叉引用对象):

\documentclass{amsart}
\usepackage{amssymb}
\usepackage{enumerate}
\usepackage{array}
\usepackage{mathrsfs}
\usepackage{tikz}
\usepackage{subcaption}

\tikzset{node distance=2cm, auto}
\usetikzlibrary{arrows}

\allowdisplaybreaks

\begin{document}

\begin{figure}
     \begin{subfigure}{.3333\textwidth}
     \centering
          \begin{tikzpicture}
\draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\end{tikzpicture}
     \caption{}
     \end{subfigure}%
     \begin{subfigure}{.3333\textwidth}
     \centering
          \begin{tikzpicture}
\draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\end{tikzpicture}
          \caption{}
     \end{subfigure}%
     \begin{subfigure}{.3333\textwidth}
     \centering
          \begin{tikzpicture}
\draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\end{tikzpicture}
          \caption{}
     \end{subfigure}
 \end{figure}

\end{document}

在此处输入图片描述

如果您不想手动指定宽度,该subcaption包提供\subcaptionbox(如果需要,您可以在子浮点数之间手动添加水平间距):

\documentclass{amsart}
\usepackage{amssymb}
\usepackage{enumerate}
\usepackage{array}
\usepackage{mathrsfs}
\usepackage{tikz}
\usepackage{subcaption}

\tikzset{node distance=2cm, auto}
\usetikzlibrary{arrows}

\allowdisplaybreaks

\begin{document}

\begin{figure}
\centering
     \subcaptionbox{}{%
          \begin{tikzpicture}
\draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\end{tikzpicture}}\qquad
     \subcaptionbox{}{%
          \begin{tikzpicture}
\draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\end{tikzpicture}}\qquad
     \subcaptionbox{}{%
          \begin{tikzpicture}
\draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\end{tikzpicture}}
\end{figure}

\end{document}

在此处输入图片描述

amsart子浮点数默认为小写大写字母;若要获取小写字母,请添加

\captionsetup[subfigure]{labelfont=rm}

加载后subcaption

相关内容