考虑下面的 MWE。我想在蓝色方块上方添加一些垂直空间,里面(红色箭头framebox
所指)。
为什么被\vspace
忽略?我应该使用哪个命令?
梅威瑟:
\documentclass[twocolumn,a5paper]{article}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{tikz}
\begin{document}
\begin{figure}[t]
\centerline{\framebox{
\begin{tikzpicture}
\filldraw[blue] (0,0) |- (1,2) |- cycle;
\end{tikzpicture}
}}
\caption{Rectangle}
\end{figure}
\lipsum[1]
\begin{figure}[t]
\centerline{\framebox{
\vspace{2cm} %Why ignored?
\begin{tikzpicture}
\filldraw[blue] (0,0) |- (1,1) |- cycle;
\end{tikzpicture}
}}
\caption{Square}
\end{figure}
\lipsum[2]
\end{document}
答案1
答案2
\framebox
以(受限)水平模式排版其内容,因此完全忽略垂直空间。
\documentclass[twocolumn,a5paper]{article}
\usepackage{tikz}
\usepackage{lipsum}
\newsavebox{\higherfboxsave}
\newlength{\higherfboxlen}
\newcommand{\higherfbox}[2]{% #1 = additional height, #2 = material to box
\sbox{\higherfboxsave}{#2}%
\setlength{\higherfboxlen}{\ht\higherfboxsave}%
\addtolength{\higherfboxlen}{#1}%
\fbox{\rule{0pt}{\higherfboxlen}\usebox{\higherfboxsave}}%
}
\begin{document}
\begin{figure}[htp]
\centering
\fbox{%
\begin{tikzpicture}
\filldraw[blue] (0,0) |- (1,2) |- cycle;
\end{tikzpicture}%
}
\caption{Rectangle}
\end{figure}
\lipsum[1]
\begin{figure}[htp]
\centering
\higherfbox{1cm}{%
\begin{tikzpicture}
\filldraw[blue] (0,0) |- (1,1) |- cycle;
\end{tikzpicture}%
}
\caption{Square}
\end{figure}
\lipsum[2][1-3]
\end{document}
避免使用外来命令\centerline
,并注意添加的空格(检查%
上面的代码)。