手动输入两列目录

手动输入两列目录

我正在尝试编写一个自定义的目录,假设每行有三个值,并显示在两列中,如下所示:

在此处输入图片描述

我知道最好的选择是使用表格来对齐值。但是,使用表格,我似乎无法将目录分成两列(如上例所示)。

或者我可以制作一个六列表格,但我必须手动管理分栏符和最终的分页符。

有什么推荐吗?

以下是启动代码:

\documentclass{article}
\usepackage{multicol}
\usepackage{tabularx}
\setlength{\columnseprule}{0.4pt}

\begin{document}

\begin{multicols}{2}
\begin{tabularx}{\columnwidth}{rXr}
\textbf{p} & \textbf{title} & \textbf{date} \\
1 & Introduction & 01/01 \\
22 & Methodology & 01/15 \\
333 & Results & 02/01 \\
4 & Conclusion & 02/15 \\
5 & Discussion & 03/01 \\
6 & Appendix A & 03/15 \\
7 & Appendix B & 04/01 \\
8 & Bibliography & 04/15 \\
\end{tabularx}
\end{multicols}

\end{document}

答案1

我设计了一些东西。我实际上只需要表格来保持三个元素对齐,因此我编写了一个命令来在它们之间插入适当的间距。

\documentclass{article}
\usepackage{multicol}

\setlength{\columnseprule}{0.4pt}  % Column separator rule
\setlength{\columnsep}{2em}  % Distance between columns

\newlength{\maxspace}
\newlength{\negspace}

\newcommand{\tocline}[3]
{
    \settowidth{\maxspace}{999}  % Get the width of the wider element in the first column
    \settowidth{\negspace}{#1}  % Get width of current element in the first column
    \noindent
    \hspace{\maxspace}\hspace{-1\negspace}  % Advance by the maximum width possible minus the current width
    #1  % Insert first element
    \hspace{0.5em}  % Advance by a fixed amount
    #2  % Insert second element
    \hfill  % Place the third element in the far right
    #3\par  % Insert third element and end paragraph
}

\begin{document}
    
\begin{multicols}{2}
    \tocline{p}{title}{date}
    \tocline{1}{Introduction}{01/01}
    \tocline{22}{Methodology}{01/01}
    \tocline{333}{Results}{01/01}
    \tocline{4}{Conclusion}{01/01}
    \tocline{6}{Appendix}{01/01}
\end{multicols}

\end{document}

结果:

在此处输入图片描述

相关内容