更改块引用的字体?

更改块引用的字体?

抱歉,如果这是重复的,但我找不到正确的方法。

我想重新定义我的quotequotation命令以使用不同的字体。我的主要字体是Linux Libertine O(我正在使用 fontspec),我想使用小的Linux Biolinum O我的引文中的版本。

我尝试过的一些命令包括这个,但它不起作用:

\let\quoteOld\quote
\renewenvironment{quote}{\fontspec{Linux Biolinum O}\small\quoteOld}

附加问题:我需要学习什么才能自己弄清楚如何实现上述目标?我希望有一本书或资源可供阅读。

答案1

正如我在你的另一个问题中评论的那样,你不应该使用\fontspec它来更改字体,而应该定义一个新的字体系列。该etoolbox包提供了简单的修补命令。为此,你只需使用它的\AtBeginEnvironment命令即可。

% !TEX TS-program = XeLaTeX

\documentclass{article}

\usepackage{etoolbox}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\newfontfamily\quotefont{Linux Biolinum O}
\AtBeginEnvironment{quote}{\quotefont\small}
\begin{document}
Some text.
\begin{quote}
A quotation.
\end{quote}

\end{document}

答案2

您的代码片段缺少第三个必需参数,\renewenvironment该参数指定在环境结束时要执行的代码。

\documentclass{article}

\usepackage{fontspec}

\setmainfont{Linux Libertine O}
\newfontfamily{\quotefont}{Linux Biolinum O}

\let\quoteOld\quote
\let\endquoteOld\endquote
\renewenvironment{quote}{\quotefont\small\quoteOld}{\endquoteOld}

\usepackage{lipsum}

\begin{document}

\lipsum[1]

\begin{quote}
\lipsum*[1]
\end{quote}

\lipsum[1]

\end{document}

答案3

fontspec添加字体代码后,只需更改引号大小。

% Using 'xelatex'
\documentclass{article}

\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\expandafter\def\expandafter\quote\expandafter{\quote\small}

\begin{document}
 Normal text.

\begin{quote}
    This is a quote.
\end{quote}

\end{document}

该行:\expandafter\def\expandafter\quote\expandafter{\quote\small}无需添加任何其他包即可工作。

相关内容