我只是想在文本右侧添加一个表格。我尝试过很多不同的软件包,比如float
、floatflt
和wrapfig
,后者最接近我想要的效果。目前我唯一的问题是标题写着“图 1:”,而它应该是一张表格。我不能使用\begin{table}
with,\begin{wrapfig}
因为它会把事情搞砸。
以下是该表的完整代码:
\begin{wrapfigure}{r}{0.24\textwidth}
\centering
\begin{tabular}{ | c || c | c | }
\hline
& a & b \\
\hline \hline
1 & 1 & 2 \\
\hline
2 & 3 & 2 \\
\hline
3 & 1 & 2 \\
\hline
\end{tabular}
\caption{Table representation of the DFA in Figure \ref{fig:dfa_example}}
\label{DFA_table}
\end{wrapfigure}
附注:是否也可以让表格比文本(顶部边距)稍微高一点?
答案1
这可能只是在浮动和标题交互方面提供的信息(即使规模很小,例如在原始帖子中)。
浮动环境中使用的标题,包括wrapfig
检查\@captype
以设置适当的标题。您可以修改\@captype
为以table
获得适当的标题样式。为此,添加
\makeatletter
\def\@captype{table}
\makeatother
\caption
在您的命令之前。wraptable
最好使用 (如 Gonzalo 的回答中所示),因为它会从用户界面中删除此类细节。你为什么要这样做?也许,wraptable
你有一个想要显示但wrapfig
不提供wrapalgorithm
环境的小算法,而不是 。
\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{wrapfig}% http://ctan.org/pkg/wrapfig
\begin{document}
\begin{wrapfigure}{r}{0.24\textwidth}
\centering
\begin{tabular}{ | c || c | c | }
\hline
& a & b \\
\hline \hline
1 & 1 & 2 \\
\hline
2 & 3 & 2 \\
\hline
3 & 1 & 2 \\
\hline
\end{tabular}
\makeatletter\def\@captype{table}\makeatother% "Change float to table"
\caption{Table representation of the DFA in Figure 2.}
\label{DFA_table}
\end{wrapfigure}
\lipsum[1]
\end{document}
对于垂直位移,您可以添加
\vspace*{<len>}
其中<len>
是 开头的负长度wrapfig
。这会将其向上移动一点。例如,使用\vspace*{-.5\baselineskip}
会将其向上移动半行。
答案2
改用wraptable
:
\documentclass{article}
\usepackage{wrapfig}
\usepackage{lipsum}% just to generate text for the example
\begin{document}
\begin{wraptable}{r}{0.24\textwidth}
\centering
\begin{tabular}{ | c || c | c | }
\hline
& a & b \\
\hline \hline
1 & 1 & 2 \\
\hline
2 & 3 & 2 \\
\hline
3 & 1 & 2 \\
\hline
\end{tabular}
\caption{Table representation of the DFA in Figure \ref{fig:dfa_example}}
\label{DFA_table}
\end{wraptable}
\lipsum[1-2]
\end{document}