我正在尝试重新定义quote
环境(由 触发csquote's
\blockquote
)以删除引号前后的整个(!)额外前导,以确保引号与基线网格保持同步(我还重新引入了引号,以弥补因删除空白而造成的区别损失,但这不是问题的一部分)。
我确实知道如何修改quote
环境,并且我已经设法减少了空白,但我正在寻找一种完全删除它的方法。例如,这个解决方案受到 Herbert 对类似问题的回答的启发,尽管已打开,但文本的最后一条基线和引文的第一条基线之间仍然有 13.8pt(多出 1.8pt)的距离\raggedbottom
。任何提示都值得赞赏!
\documentclass{article}
\usepackage{csquotes,lipsum,lmodern}
\makeatletter
\renewenvironment{quote}
{\list{}{\listparindent=0em
\itemindent=\listparindent
\leftmargin=\parindent
\rightmargin=\parindent
\topsep=0em
\parsep\z@\@plus\p@}%
\item\relax}
{\endlist}
\makeatother
\renewcommand{\mkblockquote}[4]{\enquote{#1}#2#3#4}
\raggedbottom
\begin{document}
\lipsum[2-3]
\blockquote{\lipsum*[2]}
\lipsum[3-4]
\blockquote{\lipsum*[3]}
\lipsum[4-5]
\blockquote{\lipsum*[4]}
\lipsum
\blockquote{\lipsum*[5]}
\end{document}
答案1
\raggedbottom
是 的默认设置article
。但是,您的各种\lipsum
命令(非星号版本)确实会结束段落,并且开始新段落的列表环境也会在\partopsep
其前后添加。因此,将以下内容添加到您对环境的重新定义中quote
:
\partopsep=0em
另外,你可以使用我的quoting
包裹:
\documentclass{article}
\usepackage{csquotes}
\usepackage[vskip=0pt,begintext=\textooquote,endtext=\textcoquote]{quoting}
\SetBlockEnvironment{quoting}
\newcommand*{\sometext}{%
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur
dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer
id, vulputate a, magna. Donec vehicula augue eu neque.}
\begin{document}
\sometext
% <-- No indentation at the start of `quoting`
\blockquote{\sometext}
% <-- No indentation after `quoting`
\sometext
\end{document}