为了获得更紧密的行距(我的文档的主间距是 1.5 倍间距,我正在使用memoir
),我通常使用自定义的“紧密列表”(tightlist
在下面的代码中)。这很有效。然而我希望列表与上下文本的间距与普通的(此处:1.5)行距,也就是说,我希望列表相对于文档的其余部分表现得像一条垂直线状的原子。
在以下文档中
\documentclass{memoir}
\OnehalfSpacing
\newenvironment{mytightlist}[3]{%
% noticeably tighter than the memoir class's tightlist facilities
\begin{Spacing}{1}%
\begin{list}{#1}{%
\setlength{\topsep}{0pt}%
\setlength{\parskip}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{#2}%
\setlength{\labelwidth}{#3}%
\setlength{\labelsep}{0.5em}%
}%
}%
{\end{list}\end{Spacing}}
\begin{document}
Text. HHHHHHHHHH
Text. HHHHHHHHHH
\begin{mytightlist}{\(\bullet\)}{1.5em}{0.5em}
\item Text. HHHHHHHHHH
\item Text. HHHHHHHHHH
\end{mytightlist}
Text. HHHHHHHHHH
Text. HHHHHHHHHH
\end{document}
2/3 和 4/5 线对内的间距为轻微地小于预期间距,即线对 1/2 和 5/6 内的间距。为什么?如何解决此问题?
顺便说一句,我不关心列表是否“属于”它周围的段落:对我来说,这种间距应该是统一的。(“LaTeX 花费了大量精力来区分段内列表和段末或段首列表”;David Carlisle 的评论(大致引用))
使用来自此答案的环境MySpacing
与有关块周围间距的相关问题在这种情况下,而不是Spacing
不起作用。
答案1
您正在使用不同的基线跳跃,但并没有考虑到这个方面。
\documentclass{memoir}
\newlength{\tightlisttopsep}
\AtBeginDocument{
\setlength{\tightlisttopsep}{-\baselineskip}
\addtolength{\tightlisttopsep}{\fontchardp\font`j}% a descender
\addtolength{\tightlisttopsep}{.15pt} % some overshoot
\OnehalfSpacing
\addtolength{\tightlisttopsep}{.7\baselineskip}% height of strut
% Show the baselines
\edef\myrule{\noexpand\smash{\vrule depth\the\baselineskip\kern-.4pt}}
}
\newenvironment{mytightlist}[3]{%
% noticeably tighter than the memoir class's tightlist facilities
\begin{Spacing}{1}%
\begin{list}{#1}{%
\setlength{\topsep}{\tightlisttopsep}%
\setlength{\parskip}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{#2}%
\setlength{\labelwidth}{#3}%
\setlength{\labelsep}{0.5em}%
}%
}%
{\end{list}\end{Spacing}}
\begin{document}
1. HHHHHHHHH\myrule H
2. HHHHHHHHHH\myrule
\begin{mytightlist}{\(\bullet\)}{1.5em}{0.5em}
\item 3. HHHHHHHHHH
\item 4. \myrule HHHHHHHHHH
\end{mytightlist}
5. HHHHHHHHHH
6. HHHHHHHHHH
\end{document}
如果在使用不同字体大小时,这是没有希望的mytightlist
,因为设置只是针对标准大小进行的。
在我看来,结果肯定是糟糕的排版。
答案2
至于它为什么存在,我说不上来。至于如何修复它(至少对于你的 MWE),我在环境之前和之后添加了一个\vspace
对称。.049\baselineskip
\documentclass{memoir}
\def\vertoffset{.049\baselineskip}
\OnehalfSpacing
\newenvironment{mytightlist}[3]{%
% noticeably tighter than the memoir class's tightlist facilities
\begin{Spacing}{1}%
\begin{list}{#1}{%
\setlength{\topsep}{0pt}%
\setlength{\parskip}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{#2}%
\setlength{\labelwidth}{#3}%
\setlength{\labelsep}{0.5em}%
\vspace{\vertoffset}%
}%
}%
{\end{list}\vspace{\vertoffset}\end{Spacing}}
\begin{document}
Text. HHHHHHHHHH
Text. HHHHHHHHHH
\begin{mytightlist}{\(\bullet\)}{1.5em}{0.5em}
\item Text. HHHHHHHHHH
\item Text. HHHHHHHHHH
\end{mytightlist}
Text. HHHHHHHHHH
Text. HHHHHHHHHH
\end{document}
答案3
看了你的问题,我不确定你是否也想要 1.5之内列表环境。如果这很重要,那么 Steven 的修复就不完整,因为正常文本行项目之间的间距为 ,15pt
而项目之间的间距仅为 12pt
。
我尝试修复这两个问题,只需将 \setlenght
宏中的两个更改为:
\setlength{\topsep}{.7pt}%
\setlength{\itemsep}{3pt}%
要查看此修复效果如何,一个简单的测试是,\vspace{-15pt}
在某行或某项之后必须与下一行或某项完美重叠。在下图中,我\phantom
在重叠的线条中使用了一些空格,并在整个重叠的线条项目中使用了红色,以便更好地检查。在 400% 下,这是输出:
源代码可以自己测试一下:
\documentclass{memoir}
\usepackage{xcolor}
\OnehalfSpacing
\newenvironment{mytightlist}[3]{%
% noticeably tighter than the memoir class's tightlist facilities
\begin{Spacing}{1}%
\begin{list}{#1}{%
\setlength{\topsep}{.7pt}% .1ex
\setlength{\parskip}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{3pt}%
\setlength{\leftmargin}{#2}%
\setlength{\labelwidth}{#3}%
\setlength{\labelsep}{0.5em}%
}%
}%
{\end{list}\end{Spacing}}
\begin{document}
Text. {\color{red}HHHHHHHHHH (1-2 li\vspace{-15pt}}
Text. HHHHHHHHHH \phantom{(1-2 li}ne)
Text. HHHHHHHHHH (3 line)
Text. {\color{red}HHHHHHHHHH (4-1 line \vspace{-15pt}}
\begin{mytightlist}{\(\bullet\)}{1.5em}{.5em}
\item Text. HHHHHHHHHH \phantom{(4-1 line}item)
\item Text. HHHHHHHHHH (2 item)
\item {\color{red}Text. HHHHHHHHHH (3-4 it}\vspace{-15pt}
\item Text. HHHHHHHHHH \phantom{(3-4 it}em)
\item Text. HHHHHHHHHH (5 item)
\item {\color{red}Text. HHHHHHHHHH (6-1 item\vspace{-15pt}}
\end{mytightlist}
Text. HHHHHHHHHH \phantom{(6-5 item}line)
Text. HHHHHHHHHH (6 line)
Text. {\color{red}HHHHHHHHHH (7-8 li\vspace{-15pt}}
Text. HHHHHHHHHH \phantom{(7-8 li}ne)
\end{document}