![如何创建具有目录等属性的表格?](https://linux22.com/image/312302/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E5%85%B7%E6%9C%89%E7%9B%AE%E5%BD%95%E7%AD%89%E5%B1%9E%E6%80%A7%E7%9A%84%E8%A1%A8%E6%A0%BC%EF%BC%9F.png)
有没有简单的方法来创建像表格一样的目录?
详细地说,我想要与目录相同的布局,相同的宽度,特别是用点填充白色空间,但以表格作为内容。
到目前为止,我尝试采用常规表格并调整对齐方式和列宽,但无法用虚线填充空白。
答案1
\documentclass{article}
\usepackage{tabularx}
\makeatletter
\newcommand*{\tocdotfill}{%
\leaders\hbox{%
$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$%
}\hfill\kern\z@
}
\makeatother
\begin{document}
\noindent
\begin{tabularx}{\linewidth}{lXr}
A & Hello world \dotfill & 1\\
B & Foobar \tocdotfill & 2\\
\end{tabularx}
\end{document}
重要的问题是,通过 删除了表格单元格末尾的跳过规范\unskip
。已在末尾\dotfill
添加了以防止这种情况发生。\kern\z@
宏\tocdotfill
使用与 相同的代码\dottedtocline
,用于目录中。还\kern\z@
附加了 以防止“取消跳过”。其他内容(例如\null
,空\hbox
)也可用于此目的。
答案2
虚线由 构成\dotfill
。使用 tabularx 的表格可以是:
\documentclass{article}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{\textwidth}{ccX@{}l}
test1 & test & test \dotfill & [A] \\
test2 & test & test \dotfill & [V] \\
\end{tabularx}
\end{document}
要改变点的间距,您可以重新定义命令(参见:如何更改 \dotfill 中的点间距?)