在排版中,列表是使用非常频繁的一种操作。LaTeX为列表的排版提供了enumerate、itemize和description三个环境,为用户提供了极大的便利。但由于默认情况下,这三个环境的首行缩进、列表项间距、标签间距等是基于西方习惯设计的,这往往不符合中文习惯。
当然,可以使用类似enumitem这样的宏包对enumerate、itemize和description三个环境进行定制设置,以符合具体的排版需求。不过,由于enumerate、itemize和description三个环境是基于list环境来排版的,因此完全可以通过对list环境的定制,来实现特殊需求的列表排版要求。
在list环境中,其排版的各**长度参数**如下:
因此,只要合理的设置**垂直距离**:topsep、partopsep、parsep、itemsep和**水平距离**:leftmargin、rightmargin、listparindent、labelwidth、labelsep、itemindent这些距离参数,就可以自定义满足需求的列表环境。
例如,默认的itemize环境排版结果为:
显然,这样的缩进方式不完全符合中文排版习惯。为此,可以用如下代码调整各个长度参数,以实现需要的结果。
```tex
\\documentclass{ctexart}
% 中文乱数假文(Lorem ipsum)宏包
\\usepackage{zhlipsum}
% ========自定义列表环境=======计数器
\\newcounter{mylist}
% 列表环境定义
\\newenvironment{myitemize}{%
\\begin{list}{\\hspace{2em}\\themylist 、}{%
\\usecounter{mylist}%
\\setlength{\\topsep}{0pt}%
\\setlength{\\partopsep}{0pt}%
\\setlength{\\parsep}{0pt}%
\\setlength{\\itemsep}{0pt}%
\\setlength{\\leftmargin}{0pt}%
\\setlength{\\rightmargin}{0pt}%
\\setlength{\\labelsep}{0pt}%
\\setlength{\\itemindent}{2.0em}%
}
} {\\end{list} }
\\begin{document}
% 默认itemize
\\zhlipsum[1]
\\begin{itemize}
\\item \\zhlipsum[1]
\\item \\zhlipsum[2]
\\end{itemize}
% 手动分页
\\newpage
% 自定义
\\zhlipsum[1]
\\begin{myitemize}
\\item \\zhlipsum[1]
\\item \\zhlipsum[2]
\\end{myitemize}
\\end{document}
```
当然,这些操作完全可以通过enumitem宏包来实现。不过,个人认为,为了能够更为灵活的实现各参数的控制,直接操作list环境则更为自由。
Happy LaTeXing!
手动点赞
点赞啊