如何設置 enumerate 列表的編號對齊方式?
enumerate 環境的默認編號對齊方式是編號右對齊,內容左對齊,如下圖
調用 enumitem 宏包,然後設置選項 align=left,可以實現編號和內容都左對齊,如下圖但是其中的編號 9 和內容之間的距離過大,我想得到如下的效果,該如何設置呢?
LaTeX 的列表內容與頁面的左右間距是通過 parshape 實現的。因此解決這個問題的想法是,量取每一個編號的寬度,動態地調整 parshape 的縮進。可以通過 enumitem 包的 SetLabelAlign 定義一個特殊的對齊方式來實現。
documentclass{article}
usepackage{enumitem}
makeatletter
%% 定義對齊方式 hang
SetLabelAlign{hang}{%
#1%
aftergroupadjustparshapeindent}
%% 編號 #1 會通過 sbox 存到 @tempboxa 中,為避免全局設置,
%% 需要用 aftergroup 跳到盒子外部來設置
ewcommand*adjustparshapeindent{%
@ifnextcharegroup
{aftergroupadjustparshapeindent}
{adjustparshapeindent@auxi}}
ewcommand*adjustparshapeindent@auxi{%
unlessifdimwd@tempboxa=labelwidth
adjustparshapeindent@auxii
fi}
%% 調整 parshape 的縮進
ewcommand*adjustparshapeindent@auxii{%
dimen@ = dimexprwd@tempboxa-labelwidth
elax
labelwidth = wd@tempboxa
advancelinewidth -dimen@
advanceleftmargin dimen@
advance@totalleftmargin dimen@
parshape @ne @totalleftmargin linewidth}
makeatother
egin{document}
egin{enumerate}[align=hang, start=9]
item test\test
item test\test
end{enumerate}
end{document}
推薦閱讀:
※在 LaTeX 中怎麼排序數字?
※自學 LaTeX 可以讀什麼書入門?
※如何排出精美的中文論文?
※用 LaTeX 做幻燈片比用 PowerPoint 和 Keynote 做更方便、更美觀嗎?
TAG:LaTeX |