在新环境中通过 setspace 应用本地格式时垂直间距不同

在新环境中通过 setspace 应用本地格式时垂直间距不同

我正在尝试创建一个新的环境,它会改变一些段落格式。我以为我可以通过以下方式实现这一点,setspace但在感兴趣的段落之前存在垂直空间问题:\singlespacing似乎添加了一个独立于文档设置内容的固定空间,同时\setstretch{}保持前一个段落和正在更改的段落之间的空间与环境内定义的空间相同。我不知道如何在本段之前和之后获得相同的垂直空间。

我制作了 MWE,它根据文档和环境行距这两个设置显示和放置屏幕截图。我希望​​显示命令添加或删除了不同的垂直空间。下表按以下顺序分组了四个屏幕截图

  • 行代表相同的文档行距(单倍或三倍)
  • columns 代表我用来在环境内设置单倍行距的命令(通过\singlespacing\setstretch{1.0}

举例来说,第二行和第一列代表整个文档的三倍行距和段落的单倍行距,在本例中是通过 进行改变的\singlespacing

除了段落前后的垂直间距一致之外,我还希望大小遵循全局文档行距,该行距会增大或变小。我希望这一切都有意义。

谢谢


桌子:

  \singlespacing \stretch{1.0}
\stretch{1.0} 在此处输入图片描述 在此处输入图片描述
\stretch{3.0} 在此处输入图片描述 在此处输入图片描述

妇女权利委员会:

\documentclass{article}
\usepackage{etoolbox}
\usepackage{fontenc}
\usepackage[latin]{babel}
\usepackage{setspace}
    \setstretch{3.0}
\usepackage{lipsum}


%%% Directquote
\newlength\dquoteleftmargin     \setlength{\dquoteleftmargin}{\parindent}
\newlength\dquoterightmargin    \setlength{\dquoterightmargin}{0pt}
\NewDocumentEnvironment{directquote}{O{\parindent} o b}{%
    \ifblank{#1}
        {\setlength{\leftskip}{\parindent}}
        {\setlength{\leftskip}{#1}}
    \IfNoValueTF{#2}
        {\setlength{\rightskip}{0pt}}%
        {\ifblank{#2}
            {\setlength{\rightskip}{0pt}}
            {\setlength{\rightskip}{#2}}
        }%
    % \setstretch{1.0} #3
    \singlespacing #3
    \par
}{}
\def\exampledq{\noindent Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravi-da mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna (Someone 2021, p. 21).}
%%% END Directquote


%%% DOCUMENT
\begin{document}

%%% SECTION single spacing
\section{Formatting inside a new environment }

An example of a custom paragraph formatting inside a new environment:

\begin{directquote}%
    \exampledq
\end{directquote}%

\noindent continuation with ordinary paragraph settings.

\lipsum[2]

\end{document}

相关内容