关于列表环境各长度参数(间距)自定义的问题

文本排版 2019-09-29 17:52  浏览 :633
在排版中,列表是使用非常频繁的一种操作。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!
发布评论
登录后方可评论!点击登录
全部评论 (2)
TeX白兔
1楼 · 2019-09-29 23:24

手动点赞

啸行
2楼 · 2019-09-29 20:46

点赞啊