提问于:
浏览数:
2266
## 编译环境
操作系统
* [x] Windows 7/8/10
* [ ] macOS
* [ ] Linux
`若需勾选,请把[ ]改成[x]`
Tex发行版
* [x] TexLive `2019`
* [ ] MikTeX `版本号`
* [ ] CTeX
`若需勾选,请把[ ]改成[x]`
## 我的问题
怎样让列表与前面段的距离小一点
我的代码:
```
\documentclass{ctexart}
\usepackage{fontawesome}
\setlength{\parindent}{0pt}
\begin{document}
\renewcommand{\descriptionlabel}{\faChild}
\begin{description}
\setlength{\topsep}{-20pt}
\setlength{\partopsep}{0pt}
\setlength{\parskip}{0pt}
\setlength{\itemsep}{0pt}
\item 劳仑衣普桑,认至将指点效则机,最你劳仑衣普桑,认至将指点效则机,最你更枝。想极整月正进好志次回总般,段然取向使张规军证回,世市总李率英茄持伴。用阶千样响领交出,器程办管据家元写,名其直金团。化达书据始价算每百青,金低给天济办作照明,取路豆学丽适市确。如提单各样备再成农各政,设头律走克美技说没,体交才路此在杠。响育油命转处他住有,一须通给对非交矿今该,花象更面据压来。与花断第然调,很处己队音,程承
算每百青,金低给天济办作照明,取路豆学丽适市确。如提单各样备再成农各政,设头律走克美技说没,体交才路此在杠。响育油命转处他住有,一须通给对非交矿今该,花象更面据压来。与花断第然调,很处己队音,程承
\item 劳仑衣普桑,认至将指点效则机,最你劳仑衣普桑,认至将指点效则机,最你更枝。想极整月正进好志次回总般,段然取向使张规军证回,世市总李率英茄持伴。用阶千样响领交出,器程办管据家元写,名其直金团。化达书据始价算每百青,金低给天济办作照明,取路豆学丽适市确。如提单各样备再成农各政,设头律走克美技说没,体交才路此在杠。响育油命转处他住有,一须通给对非交矿今该,花象更面据压来。与花断第然调,很处己队音,程承
\end{description}
你更枝。想极整月正进好志次回总般,段然取向使张规军证回,世市总李率英茄持伴。用阶千样响领交出,器程办管据家元写,名其直金团。化达书据始价算每百青,金低给天济办作照明,取路豆学丽适市确。如提单各样备再成农各政,设头律走克美技说没,体交才路此在杠。响育油命转处他住有,一须通给对非交矿今该,花象更面据压来。与花断第然调,很处己队音,程承
\renewcommand{\descriptionlabel}{\faChild}
\begin{description}
\setlength{\topsep}{-20pt}
\setlength{\partopsep}{0pt}
\setlength{\parskip}{0pt}
\setlength{\itemsep}{0pt}
\item 劳仑衣普桑,认至将指点效则机,最你劳仑衣普桑,认至将指点效则机,最你更枝。想极整月正进好志次回总般,段然取向使张规军证回,世市总李率英茄持伴。用阶千样响领交出,器程办管据家元写,名其直金团。化达书据始价算每百青,金低给天济办作照明,取路豆学丽适市确。如提单各样备再成农各政,设头律走克美技说没,体交才路此在杠。响育油命转处他住有,一须通给对非交矿今该,花象更面据压来。与花断第然调,很处己队音,程承
算每百青,金低给天济办作照明,取路豆学丽适市确。如提单各样备再成农各政,设头律走克美技说没,体交才路此在杠。响育油命转处他住有,一须通给对非交矿今该,花象更面据压来。与花断第然调,很处己队音,程承
\item 劳仑衣普桑,认至将指点效则机,最你劳仑衣普桑,认至将指点效则机,最你更枝。想极整月正进好志次回总般,段然取向使张规军证回,世市总李率英茄持伴。用阶千样响领交出,器程办管据家元写,名其直金团。化达书据始价算每百青,金低给天济办作照明,取路豆学丽适市确。如提单各样备再成农各政,设头律走克美技说没,体交才路此在杠。响育油命转处他住有,一须通给对非交矿今该,花象更面据压来。与花断第然调,很处己队音,程承
\end{description}
\end{document}
```
结果:
![](https://wenda.latexstudio.net/data/attach/201005/eYBkVU0q.png)
3 回答
2
`description` 中对 `\topsep` 和 `\partopsep` 的设置只在环境内局部有效,description 和正文之间的空白应该是因为外面恢复了默认的数值。
如果要取消列表之间和外部的空白,可以用 `enumitem` 宏包,然后 `\setlist{nosep}`。
如果要纯手动解决,要注意到 `\@listi`、`\@listii` 等命令会重新设置 `\parsep` 这些值,`\normalsize`、`\small` 和 `\footnotesize` 会调用或者重新定义 `\@listi`,所以要重新定义这些命令。原来的定义在 `size10.clo` 等文件,跟选择的正文字号有关;另外使用 `ctex` 处理字号时也重新定义了一部分。
以 `10pt` 为例,可以这样重新定义:
```
\partopsep\z@skip
\DeclareRobustCommand\small{%
\@setfontsize\small\@ixpt{11}%
\abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
\abovedisplayshortskip \z@ \@plus2\p@
\belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
\def\@listi{\leftmargin\leftmargini
\topsep \z@skip
\parsep \z@skip
\itemsep \parsep}%
\belowdisplayskip \abovedisplayskip
}
\DeclareRobustCommand\footnotesize{%
\@setfontsize\footnotesize\@viiipt{9.5}%
\abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
\abovedisplayshortskip \z@ \@plus\p@
\belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
\def\@listi{\leftmargin\leftmargini
\topsep \z@skip
\parsep \z@skip
\itemsep \parsep}%
\belowdisplayskip \abovedisplayskip
}
\def\@listi{\leftmargin\leftmargini
\parsep \z@skip
\topsep \z@skip
\itemsep\z@skip}
\let\@listI\@listi
\@listi
\def\@listii {\leftmargin\leftmarginii
\labelwidth\leftmarginii
\advance\labelwidth-\labelsep
\topsep \z@skip
\parsep \z@skip
\itemsep \parsep}
\def\@listiii{\leftmargin\leftmarginiii
\labelwidth\leftmarginiii
\advance\labelwidth-\labelsep
\topsep \z@skip
\parsep \z@skip
\partopsep \z@skip
\itemsep \topsep}
```
0
可以尝试宏包`paralist`中的`compactitem`环境.
eg:
```
\documentclass{ctexart}
\usepackage{fontawesome5}
\setlength{\parindent}{0pt}
\usepackage{paralist}%定义列表
\begin{document}
\begin{compactitem}[\hspace{0pt} $\bullet$]
\item {劳仑衣普桑,认至将指点效则机,最你劳仑衣普桑,认至将指点效则机,最你更枝。想极整月正进好志次回总般,段然取向使张规军证回,世市总李率英茄持伴。用阶千样响领交出,器程办管据家元写,名其直金团。化达书据始价算每百青,金低给天济办作照明,取路豆学丽适市确。如提单各样备再成农各政,设头律走克美技说没,体交才路此在杠。响育油命转处他住有,一须通给对非交矿今该,花象更面据压来。与花断第然调,很处己队音,程承}
\item {劳仑衣普桑,认至将指点效则机,最你劳仑衣普桑,认至将指点效则机,最你更枝。想极整月正进好志次回总般,段然取向使张规军证回,世市总李率英茄持伴。用阶千样响领交出,器程办管据家元写,名其直金团。化达书据始价算每百青,金低给天济办作照明,取路豆学丽适市确。如提单各样备再成农各政,设头律走克美技说没,体交才路此在杠。响育油命转处他住有,一须通给对非交矿今该,花象更面据压来。与花断第然调,很处己队音,程承}
\end{compactitem}
你更枝。想极整月正进好志次回总般,段然取向使张规军证回,世市总李率英茄持伴。用阶千样响领交出,器程办管据家元写,名其直金团。化达书据始价算每百青,金低给天济办作照明,取路豆学丽适市确。如提单各样备再成农各政,设头律走克美技说没,体交才路此在杠。响育油命转处他住有,一须通给对非交矿今该,花象更面据压来。与花断第然调,很处己队音,程承
\end{document}
```
![](https://wenda.latexstudio.net/data/attach/201006/Nd7ClEkw.png)
0
这个问题早就有人讲过了。[https://wenda.latexstudio.net/article-5036.html](https://wenda.latexstudio.net/article-5036.html) 这里面是直接修改`list`环境。
我自己常用的是用`enumitem`宏包定制列表的垂直和水平距离。具体用法看宏包文档。
```tex
%!TEX program = xelatex
\documentclass[a4paper,12pt,UTF8]{ctexart}
\usepackage[left=3.18cm,right=3.18cm,top=2.54cm,bottom=2.54cm,showframe]{geometry}%页面设置
\usepackage{enumitem}%列表
\usepackage{zhlineskip}%行距
\usepackage{zhlipsum}%中文乱数假文
\pagestyle{plain}
\begin{document}
\zhlipsum[1]
\begin{itemize}[nosep]
\item \zhlipsum[3][name=zhufu]
\item \zhlipsum[3][name=zhufu]
\item \zhlipsum[3][name=zhufu]
\end{itemize}
\zhlipsum[1]
\end{document}
```
![](https://wenda.latexstudio.net/data/attach/201007/PTv40Hsy.png)
你的回答
请登录后回答
你的回答将会帮助更多人,请务必认真回答问题。