使用 subfig 包将两个单独的 TikZ 图形垂直对齐

使用 subfig 包将两个单独的 TikZ 图形垂直对齐

以下最小工作示例未垂直对齐 TikZ 绘制的两个矩形。结果可以发现这里不知何故,第二个矩形似乎是加粗的,但当我在电脑上打开 .pdf 时情况并非如此。

我希望两个矩形垂直对齐并居中(相当于两个矩形都居中)。为什么第二个矩形缩进?

\documentclass[a4paper]{article}

\usepackage{subfig}
\usepackage{tikz,pgfplots}\pgfplotsset{compat = 1.11}

\newcommand{\rect}{%
\begin{tikzpicture}%
\draw (0,0) rectangle (4,4);%
\end{tikzpicture}%
}%

\begin{document}%

\begin{figure}%
\centering%
\subfloat[First rectangle.]{\rect}%
\newline%
\subfloat[Second rectangle.]{\rect}%
\caption{This is a figure with two rectangles that do not horizontally align.}
\end{figure}%

\end{document}

答案1

第二个矩形没有缩进,第一个矩形没有真正居中,这不是由于subfig包的原因,也不是由于使用 TikZ 创建的图形。

这里的问题是,在\centering\raggedleft\raggedright和类似的)内部,\newline表现为“正常” \\,基本上是\@normalcr\relax,这会产生以下示例中所示的不良行为。\centering重新定义\\(但\newline保留其标准定义)为(本质上),\par\addvspace{-\parskip}因此当使用\centering\raggedleft\raggedright和类似的)时,您应该使用\\\par但不能使用\newline

\documentclass{article}
\usepackage[showframe,a6paper]{geometry}% just for visualization purposes

\begin{document}

\noindent
\begin{minipage}{\linewidth}
\centering
Center \\
Center \par
Center?
\newline 
Center
\end{minipage}

\end{document}

在此处输入图片描述

\par您使用和的示例代码\\

\documentclass[a4paper]{article}
\usepackage{subfig}
\usepackage{tikz}

\newcommand\rect{%
\begin{tikzpicture}
\draw (0,0) rectangle (4,4);
\end{tikzpicture}%
}

\begin{document}

\begin{figure}
\centering
\subfloat[First rectangle.]{\rect}
\par
\subfloat[Second rectangle.]{\rect} 
\\
\subfloat[Third rectangle.]{\rect}
\caption{This is a figure with three rectangles horizontally aligned}
\end{figure}

\end{document}

输出:

在此处输入图片描述

相关内容