项目内的水平对齐

项目内的水平对齐

我的最低工作示例:

\documentclass{article}

\begin{document}

\begin{itemize}

\item 1. First
\item 2. Second
\item 3a. Third
\item 3b. Third
\item 4. Fourth

\end{itemize}

\end{document}

结果:

在此处输入图片描述

我如何水平对齐文本(第一、第二、第三等)?

答案1

您可以定义一个新命令\myitem

\newcommand{\myitem}[1]{%
  \item\makebox[1.5em][l]{#1}%
  }

并用它来代替\item这些特定itemize

梅威瑟:

\documentclass{article}

\newcommand{\myitem}[1]{%
  \item\makebox[1.5em][l]{#1}%
  }

\begin{document}

\begin{itemize}

\myitem{1.} First
\myitem{2.} Second
\myitem{3a.} Third
\myitem{3b.} Third
\myitem{4.} Fourth

\end{itemize}

\end{document} 

在此处输入图片描述

答案2

使用enumerate环境进行数字枚举似乎更合适。但是,有多种方法可以实现这一点:

在此处输入图片描述

\documentclass{article}
\usepackage{calc}% http://ctan.org/pkg/calc
\begin{document}

\begin{itemize}
  \item 1.\phantom{a}\ First
  \item \leavevmode\rlap{2.}\phantom{3a.} Second
  \item 3a.\ Third
  \item 3b.\ Third
  \item \makebox[\widthof{3a.}][l]{4.} Fourth
\end{itemize}

\end{document}

\rlap提供rlap,而 LaTeX2e 方法是使用\makebox(结合calc的)。和\widthof周围的对齐略有不同。 因此,根据您的详细程度,您可能还想在子枚举中使用其他一些重叠技术。3a.3b.

使用\是为了使句号.不会产生句末空格。

adjustbox包裹可以提供类似的“搭接”支持。

答案3

我建议使用enumerate环境的自动化方法来添加编号:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{enumitem}

\newcommand*{\MakeBox}[1]{\makebox[1.5em][r]{#1}}%

\begin{document}

\begin{enumerate}[label={\textbullet\protect\MakeBox{\theenumi.}}]

\item First
\item Second
\begin{enumerate}[label={\textbullet\protect\MakeBox{\arabic{enumi}\alph*.}}, align=right, before={\stepcounter{enumi}}, leftmargin=0pt]
    \item Third
    \item Third
\end{enumerate}
\item Fourth

\end{enumerate}

\end{document}

相关内容