自定义表格环境

自定义表格环境

我正在尝试使用 LaTeX 中最佳的“用户界面”创建以下结构:

 ---------------------------------------------
|  Week 1  |  1.  Topic 1                        |
|          |  2.  Topic 2                        |
 ---------------------------------------------
| Week 2   |  1.  Topic 3                        | 
|          |  2.  Topic 4                        |
 ---------------------------------------------

当然,我可以使用嵌套的enumerate来创建它tabular,但是它看起来很丑陋,并且很难维护所有的&\\字符。

我需要的是一种清晰地定义此结构的方法,以便代码看起来很漂亮。唯一的要求是编号、表格结构,当然还有跨页大纲。如果有可用的包,我很乐意修改它。(我在 CTAN 上找到了 courseoutline 包,但它没有每周主题细分。)

答案1

我构建了一个自定义环境,其中包含美观的表格。结果将是:

result

\documentclass{article}

\usepackage{etoolbox}
\usepackage{booktabs}

\newcounter{a}
\newcounter{b}[a]
\newbool{firstline}

\newenvironment{mytabular}{%
    \setcounter{a}{0}%
    \setcounter{b}{0}%
    \booltrue{firstline}%
    \begin{tabular}{ll}
        \toprule}
    {\\ \bottomrule\end{tabular}}

\newcommand{\mitem}[2][]{%
    \ifbool{firstline}{}{\ifblank{#1}{\\\cmidrule{2-2}}{\\\midrule}}%
    \global\boolfalse{firstline}%
    #1 \ifblank{#1}{}{\stepcounter{a}\thea}%
    \addtocounter{b}{1} %
    &\theb. #2%
}
\newcommand{\witem}[1]{\mitem[Week]{#1}}

\begin{document}
    \begin{mytabular}
        \mitem[Week]{Subject}
        \mitem{Another subject}
        \mitem{And another}
        \witem{Usage of witem}
    \end{mytabular}
\end{document}

或者如果你不喜欢这种表格样式,你可以使用这个: result

\documentclass{article}

\usepackage{etoolbox}

\newcounter{a}
\newcounter{b}[a]
\newbool{firstline}


\newenvironment{mytabular}{%
    \setcounter{a}{0}%
    \setcounter{b}{0}%
    \booltrue{firstline}%
    \begin{tabular}{|l|l|}
        \hline}
    {\\ \hline\end{tabular}}

\newcommand{\mitem}[2][]{%
    \ifbool{firstline}{}{\ifblank{#1}{\\\cline{2-2}}{\\\hline}}%
    \global\boolfalse{firstline}%
    #1 \ifblank{#1}{}{\stepcounter{a}\thea}%
    \addtocounter{b}{1} %
    &\theb. #2%
}
\newcommand{\witem}[1]{\mitem[Week]{#1}}

\begin{document}
    \begin{mytabular}
        \mitem[Week]{Subject}
        \mitem{Another subject}
        \mitem{And another}
        \witem{Usage of witem}
    \end{mytabular}
\end{document}

相关内容