latex缩进与对齐_LaTeX技巧876:如何设置 enumerate 列表的编号对齐方式?

LaTeX 的列表内容与页面的左右间距是通过 \parshape 实现的。因此解决这个问题的想法是,量取每一个编号的宽度,动态地调整 \parshape 的缩进。可以通过 enumitem 包的 \SetLabelAlign 定义一个特殊的对齐方式来实现。

\documentclass{article}

\usepackage{enumitem}

\makeatletter

%% 定义对齐方式 hang

\SetLabelAlign{hang}{%

#1%

\aftergroup\adjustparshapeindent}

%% 编号 #1 会通过 \sbox 存到 \@tempboxa 中,为避免全局设置,

%% 需要用 \aftergroup 跳到盒子外部来设置

\newcommand*\adjustparshapeindent{%

\@ifnextchar\egroup

{\aftergroup\adjustparshapeindent}

{\adjustparshapeindent@auxi}}

\newcommand*\adjustparshapeindent@auxi{%

\unless\ifdim\wd\@tempboxa=\labelwidth

\adjustparshapeindent@auxii

\fi}

%% 调整 \parshape 的缩进

\newcommand*\adjustparshapeindent@auxii{%

\dimen@ = \dimexpr\wd\@tempboxa-\labelwidth\relax

\labelwidth = \wd\@tempboxa

\advance\linewidth -\dimen@

\advance\leftmargin \dimen@

\advance\@totalleftmargin \dimen@

\parshape \@ne \@totalleftmargin \linewidth}

\makeatother

\begin{document}

\begin{enumerate}[align=hang, start=9]

\item test\\test

\item test\\test

\end{enumerate}

\end{document}

效果图:

6d5b7a4bc87ccd3f94c07bb5ee375a38.png选自:https://www.zhihu.com/question/53242822/answer/134167664

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值