以下最小工作示例未垂直对齐 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}
输出: