リスト内の行間のみを変更するにはどうすればよいですか?

リスト内の行間のみを変更するにはどうすればよいですか?

次のようにすると:

\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

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ができます。その結果は次のようになります。

リストの前に適切なスペースを置く

関連情報