更改 csquotes 块引用的字体

更改 csquotes 块引用的字体

我正在尝试改变csquotes'blockquotes 的字体大小,但似乎遇到了一些意想不到的困难。

我知道csquotes使用一个环境,默认情况下quote,可以使用\SetBlockEnvironment。我确实记得能够为此目的在该单个环境上使用“开始环境”挂钩。而且我认为我还没有对此感到困惑(目前),因为我能够在网站上找到类似的建议(例如https://tex.stackexchange.com/a/370024/105447https://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钩子来解决这类事情。

\mkblockquotefor \blockquoteand friends,还有\mkbegdispquote/ \mkenddispquotefor displayquoteand friends。

因此,为了使displayquotego 小而粗,你可以使用

\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仅作为示例使用。

相关内容