我发现将大纲保存在 omnioutliner 中非常有用,因为您可以将大纲和表格功能合二为一。我想编写一个宏,将大纲文档转换为 LaTeX 表格以供导出。
第一列是嵌套的大纲,右侧有多列。
以下是一个示例图:
我没有一个可以工作的最小工作示例,因为每次我尝试这样做时都会出错。这是一个嵌套 itemize 的示例。我不知道如何在表格中设置它,如上图所示。
\documentclass{article}
\begin{document}
\begin{itemize}
\item hello
\item world
\begin{itemize}
\item nested hello
\item nested world
\end{itemize}
\end{itemize}
\end{document}
我希望能够在大纲右侧有列来填充数据
关于如何开始或如何在 LaTeX 中表示这一点,有什么建议吗?
谢谢。
答案1
由于您本质上想要一个在第一列带有计数器的表格,因此您可以尝试以下操作。除了enumerate
或tabular
环境之外,您还声明一个新环境enumtab
,并按\enum
、\subenum
和\subsubenum
项目进行逐项列出。
可以通过设置的长度来控制子层的缩进\enumindent
,为计数器保留的空间由的长度控制\enumcounterwidth
。
这也许可以进一步优化,但至少应该给你提供一些开始。
\documentclass{scrartcl}
\newcounter{items}
\newcounter{subitems}
\newcounter{subsubitems}
\newlength{\enumindent}
\newlength{\enumcounterwidth}
\setlength{\enumindent}{1pc}
\setlength{\enumcounterwidth}{1.4pc}
\newcommand{\enum}{
\stepcounter{items}\setcounter{subitems}{0}%
\makebox[\enumcounterwidth][l]{\arabic{items}.}
}
\newcommand{\subenum}{
\stepcounter{subitems}\setcounter{subsubitems}{0}%
\hspace{\enumindent}\makebox[\enumcounterwidth][l]{\arabic{subitems}.}
}
\newcommand{\subsubenum}{
\stepcounter{subsubitems}%
\hspace{2\enumindent}\makebox[\enumcounterwidth][l]{\arabic{subsubitems}.}
}
\newenvironment{enumtab}[1]{
\setcounter{items}{0}
\setcounter{subitems}{0}
\setcounter{subsubitems}{0}
\begin{tabular}{#1}
}{
\end{tabular}
}
\begin{document}
\begin{enumtab}{ll}\hline
Column 1 & Column 2\\\hline
\enum Cell 1/1 & Cell 1/2\\
\enum Cell 2/1 & Cell 2/2\\
\subenum Cell 2.1/1 & Cell 2.1/2\\
\subenum Cell 2.2/1 & Cell 2.2/2\\
\subsubenum Cell 2.2.1/1 & Cell 2.2.1/2\\
\subenum Cell 2.3/1 & Cell 2.3/2\\
\subsubenum Cell 2.3.1/1 & Cell 2.3.1/2\\
\enum Cell 3/1 & Cell 3/2\\
\subenum Cell 3.1/1 & Cell 3.1/2\\
\enum Cell 4/1 & Cell 4/2\\
\enum Cell 5/1 & Cell 5/2\\
\enum Cell 6/1 & Cell 6/2\\
\enum Cell 7/1 & Cell 7/2\\
\enum Cell 8/1 & Cell 8/2\\
\enum Cell 9/1 & Cell 9/2\\
No enumerate & No enumerate\\
\enum Cell 10/1 & Cell 10/2\\
\enum Cell 11/1 & Cell 11/2\\
\enum Cell 12/1 & Cell 12/2\\
\enum Cell 13/1 & Cell 13/2\\
\enum Cell 14/1 & Cell 14/2\\
\enum Cell 15/1 & Cell 15/2\\\hline
\end{enumtab}
\end{document}