我的总体目标是重新定义 [ ] ,实际上我已经这样做了,而且效果很好,但我刚刚注意到,我的新 trivlist trivilist2 在上述文本行和 \item 之间留下的空格方面表现不佳。根据 latex 上的书籍,从文本到列表的分离是 \topsep+\parskip。但是当我将 \topsep 设置为 -\parskip 时,仍然有一个空格!
\documentclass[twoside,a4paper, 11pt]{article}
\usepackage{amsmath}
\usepackage{lipsum}
%\parskip=0.5\baselineskip %\advance\parskip by 0pt plus 2pt
\parskip=1ex
\parindent=0ex
\newenvironment{trivlist2}
{\begin{list}
{}
{
\setlength{\labelwidth}{0ex}
\setlength{\leftmargin}{0ex}
\setlength{\labelsep}{0ex}
\setlength{\itemindent}{1\parindent}
\setlength{\listparindent}{1\parindent}
\setlength{\itemsep}{0ex}
%\setlength{\topsep}{0.5\parskip plus 0.25\parskip minus 0\parskip}
\setlength{\topsep}{-3\parskip}
\setlength{\parsep}{0ex}
%useless only \topsep counts anyway as there is no \[ ]\ alone in an environment
\setlength{\partopsep}{0ex}
}}
{\end{list}}
\begin{document}
blablablablablablablablablablablablablablablablablabla,
\begin{trivlist2}
\item blablablablablablablablablablablablablablablablablabla
\end{trivlist2}
blablablablablablablablablablablablablablablablablabla
\end{document}
只有列表和底部文本之间的空间被占用了...我不明白为什么。我需要 \setlength{\topsep}{-3\parskip} 才能使底部文本接触 \item。
答案1
假设所需的输出是列表的内容位于以下文本行的顶部,则正确的数量是-\parskip-\baselineskip
:
\documentclass[twoside,a4paper, 11pt]{article}
\usepackage{amsmath}
\usepackage{lipsum}
\parskip=1ex
\parindent=0ex
\newenvironment{trivlist2}
{\begin{list}
{}
{
\setlength{\labelwidth}{0ex}
\setlength{\leftmargin}{0ex}
\setlength{\labelsep}{0ex}
\setlength{\itemindent}{1\parindent}
\setlength{\listparindent}{1\parindent}
\setlength{\itemsep}{0ex}
\setlength{\topsep}{\dimexpr-\parskip-\baselineskip}
\setlength{\parsep}{0ex}
\setlength{\partopsep}{0ex}
}}
{\end{list}}
\begin{document}
blablablablablablablablablablablablablablablablablabla,
\begin{trivlist2}
\item Trblablablablablablablablablablablablablablablablablabla
\end{trivlist2}
blablablablablablablablablablablablablablablablablabla
\end{document}
\showoutput
向文件中添加框信息有助于.log
找到这些东西。