在多列内枚举-居中内容,同时保持项目标签对齐

在多列内枚举-居中内容,同时保持项目标签对齐

相关问题:

我无法同时满足所有这些要求:

  1. 创建一个枚举列表。
  2. 分布在两列上,使用乳胶进行平衡。
  3. 每列居中对齐其内容(整体而言)相对于列的中心。例如,不会破坏项目标签的对齐。

编辑:

删除了之前的示例,转而采用我找到的部分解决方案。输出可以在视觉上实现我想要的效果,但它取决于手动调整\styleone1cm在示例中)中的参数,用眼睛调整它很繁琐,而且在视觉上不是最佳的。不过,我不确定如何正确计算它。

在此处输入图片描述

\documentclass{article} 
\usepackage{lipsum} 
\usepackage{multicol}
\usepackage{forarray}

\newcommand{\styleone}[2]{\hbox to 1cm{\textbf{#1}}}
\newcommand{\clist}[1]{
    \begin{enumerate}
        \centering
        \setlength{\itemsep}{2pt}%
        \setlength{\parskip}{0cm}%
        \ForEach{;}
        {
            {\item \ \expandafter\styleone\thislevelitem\par}
        }{#1}
    \end{enumerate}
}


\begin{document}

 \lipsum[1]

\medskip

\begin{multicols}{2}
    \raggedcolumns
    \clist{
        {Jake};
        {Jill};
        {John};
        {James};
        {Jillian};
        {Jake};
        {Jill};
        {John};
        {James};
        {Jillian};
        {Jake};
        {Jill};
        {John};
        {James};
        {Jillian}
    }

\end{multicols}

\end{document}

答案1

最简单的方法是使用\makebox具有一定宽度规范的 ,这里设置为0.85\columnwidth,然后应用包装器命令(例如,对每个项目文本)\forcecenteritem或自动列表循环,进行居中,\forcecenteritem也使用 。后一种方法要求先将项目内容存储到列表中,这是通过 完成的\forcsvlist。(如果项目内容本身出现逗号,请使用 来{...}分组此内容,请参阅示例。

\documentclass{article}

\usepackage{lipsum}
\usepackage{multicol}

\usepackage{etoolbox}

\listgadd{\mylist}{}

\forcsvlist{\listgadd\mylist}{%
  Jake, Jill,
  John, Janine,
  James, Jake,
  Jill, John,
  Janine, James,
  Jake, Jill,
  John, Janine,
  {%
    James, Jake,
    Jill, John,
    Janine%
  }%
}

\newcommand{\centerthestuff}[1]{%
  \item \forcecenteritem{#1}%
}

\newcommand{\forcecenteritem}[1]{%
  \makebox[0.85\columnwidth]{#1}%
}

\begin{document}

\lipsum[1]

\setlength{\columnseprule}{1pt}
\begin{multicols}{2}
  \begin{enumerate}
    \forlistloop{\centerthestuff}{\mylist}
  \end{enumerate}
\end{multicols}

\begin{multicols}{2}
  \begin{enumerate}
  \item \forcecenteritem{Jake}
  \item \forcecenteritem{Jill}
  \item \forcecenteritem{John}
  \item \forcecenteritem{Janine}
  \item \forcecenteritem{James}
  \item \forcecenteritem{Jake}
  \item \forcecenteritem{Jill}
  \item \forcecenteritem{John}
  \item \forcecenteritem{Janine}
  \item \forcecenteritem{James}
  \item \forcecenteritem{Jake}
  \item \forcecenteritem{Jill}
  \item \forcecenteritem{John}
  \item \forcecenteritem{Janine}
  \item \forcecenteritem{James}
  \end{enumerate}
\end{multicols}
\end{document}

输出

相关内容