我正在尝试改变csquotes
'blockquotes 的字体大小,但似乎遇到了一些意想不到的困难。
我知道csquotes
使用一个环境,默认情况下quote
,可以使用\SetBlockEnvironment
。我确实记得能够为此目的在该单个环境上使用“开始环境”挂钩。而且我认为我还没有对此感到困惑(目前),因为我能够在网站上找到类似的建议(例如https://tex.stackexchange.com/a/370024/105447和https://tex.stackexchange.com/a/370027/105447)。
但是,目前这种方法不起作用(因此,请在标记重复之前考虑这一点)。MWE 演示:
\documentclass{article}
\usepackage{lipsum}
\usepackage{csquotes}
\SetBlockEnvironment{quotation}
\AtBeginEnvironment{quotation}{\footnotesize\bfseries}
\begin{document}
\begin{quotation}
\lipsum[1]
\end{quotation}
\begin{displayquote}
\lipsum[2]
\end{displayquote}
\end{document}
那么我的问题是:这是预期的行为吗?新钩子系统在这方面有什么变化吗?
如果不是预期的话,我应该在哪里报告:csquotes
或者latex
?
如果是预期的话,当前改变csquotes
'块引用'的字体大小的最佳方法是什么?(包括\blockquote
和朋友)。
答案1
我会考虑使用官方csquotes
钩子来解决这类事情。
有\mkblockquote
for \blockquote
and friends,还有\mkbegdispquote
/ \mkenddispquote
for displayquote
and friends。
因此,为了使displayquote
go 小而粗,你可以使用
\documentclass{article}
\usepackage{lipsum}
\usepackage{csquotes}
\renewcommand{\mkbegdispquote}[2]{\footnotesize\bfseries}
\begin{document}
\begin{displayquote}
\lipsum[2]
\end{displayquote}
\end{document}
对于较小的显示报价csquotes.cfg
建议
\documentclass{article}
\usepackage{lipsum}
\usepackage{csquotes}
\newenvironment*{footnoteboldquote}
{\quote\footnotesize\bfseries}
{\endquote}
\SetBlockEnvironment{footnoteboldquote}
\begin{document}
\begin{displayquote}
\lipsum[2]
\end{displayquote}
\end{document}
答案2
即使etoolbox
使用了钩子机制(2020-10-01 版本之前的 LaTeX 内核也是如此),这也从来没有起作用过。
问题是\begin{displayquote}
会执行\csuse{\csq@blockenvironment}
(对于 也是如此\end{displayquote}
),在您的情况下,这会简化为执行\quotation
。因此,与环境相关的钩子不会被执行:它们是由 触发的\begin{quotation}
。
您可以通过修补相关命令来使用\begin{\csq@blockenvironment}
和来解决该问题\end{\csq@blockenvironment}
。
\documentclass{article}
\usepackage{lipsum}
\usepackage{csquotes}
\SetBlockEnvironment{quotation}
\AtBeginEnvironment{quotation}{\footnotesize\bfseries}
\makeatletter
\patchcmd{\csq@bdquote}{\csuse}{\begin}{}{}
\patchcmd{\csq@edquote}{\csuse{end\csq@blockenvironment}}{\end{\csq@blockenvironment}}{}{}
\makeatother
\begin{document}
\begin{quotation}
\lipsum[1]
\end{quotation}
\begin{displayquote}
\lipsum[2]
\end{displayquote}
\end{document}
我热切希望这\bfseries
仅作为示例使用。