
Если я сделаю следующее:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{setspace}
\usepackage{enumitem}
\setstretch{2}
\setlist[itemize]{topsep=.1em,itemsep=.1em,parsep=0em,partopsep=0em}
\setlist*[itemize]{first=\setstretch{1}} % This undesirably affects the spacing before the list
\begin{document}
\def\text{test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph}
\text
\begin{itemize}
\item one
\item two
\item three
\end{itemize}
\text
\end{document}
И тогда я получаю:
Но это не то, что мне нужно. Я хочу оставить неизменным интервал перед списком, но изменить только интервал между строками списка. Есть ли способ автоматически добиться этого для всех списков itemize/enumerate, независимо от межстрочного интервала окружающего их текста?
решение1
Осталось только скорректировать измененную базовую линию:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{setspace}
\usepackage{enumitem}
\setstretch{2}
\setlist[itemize]{topsep=.1em,itemsep=.1em,parsep=0em,partopsep=0em}
\setlist*[itemize]{first=\vspace{\baselineskip}\setstretch{1}\vspace{-\baselineskip}} % This undesirably affects the spacing before the list
\begin{document}
\def\text{test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph}
\text
\begin{itemize}
\item one
\item two
\item three
\end{itemize}
\text
\end{document}
решение2
А как насчет этого, с использованием клавиш before
и after
?
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{setspace}
\usepackage{enumitem}
\setstretch{2}
\setlist[itemize]{topsep=.1em, itemsep=.1em,parsep=0em, partopsep=0em}
\setlist[itemize]{before=\begin{singlespace}, after=\end{singlespace}}
\begin{document}
\def\text{test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph}
\text
\begin{itemize}
\item one\text
\item two
\item three
\end{itemize}
\text
\end{document}
решение3
После того, как один из комментаторов предложил \singlespacing
, я посмотрел на его определение и думаю, что следующее работает во всех случаях:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{setspace}
\usepackage{enumitem}
\setstretch{2}
\setlist[itemize,enumerate]{topsep=.1em,itemsep=.1em,parsep=0em,partopsep=0em}
\setlist*[itemize,enumerate]{first=\vskip\baselineskip\setstretch{1.1}\vspace{-\baselineskip}}
\begin{document}
\def\text{test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph test paragraph}
\text
\begin{itemize}
\item one
\item two
\item three
\begin{enumerate}
\item a
\item b
\end{enumerate}
\item four
\end{itemize}
\text
\end{document}
Очевидно, что 1.1
можно произвольно изменять. Это производит: