我引用了一些借助该csquotes
包的文本,例如:
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{csquotes}
\usepackage{babel}
\begin{document}
Lorem ipsum dolor sit amet.
\blockquote[somebody]{Bla bla bla.}
Lorem ipsum dolor sit amet.
\end{document}
我希望引文的字体大小小一点。
我怎样才能取得这样的结果?
答案1
该csquotes
包的一个想法是动态地决定一个引文是否太长以至于可以作为块引文输入,或者是否足够短以至于可以内联输入。我假设您不想更改内联引文的字体大小,而是更改块引文的字体大小。
为此,您需要知道\blockquote
just 调用quote
环境,因此我们只需要更改此环境的格式设置。此示例展示了如何使用包etoolbox
和执行此操作relsize
:
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{csquotes}
\usepackage{babel}
\usepackage{relsize,etoolbox}
\AtBeginEnvironment{quote}{\smaller}
\begin{document}
Bla bla bla.
\blockquote[somebody]{Bla bla bla.\\}
Bla bla bla.
\end{document}
(请注意,我添加换行符\\
只是为了触发将csquotes
引用排版为块引用。)
答案2
我使用以下更新的环境csquotes
。将其复制到您的序言中。
\renewenvironment{quote}{\list{}{\rightmargin0pt\leftmargin0pt}\item\relax
\small\singlespacing}{\endlist}
\SetBlockEnvironment{quote}
\rightmargin0pt\leftmargin0pt
声明引文的边距(每个边距 0pt 表示文本宽度)。您要查找的是\small
将引文设置为比正常文本小一级的命令。
答案3
\blockquote
实际上是一个动态命令,可以在内联排版其参数(如果它短于使用包选项和设置的阈值threshold
)thresholdtype
或显示模式(即作为由行/段落分隔符分隔的实际块引用)之间切换。 这两种模式可以独立修改。
如果您始终想排版块引号而不管其长度如何,也许\begin{displayquote}...\end{displayquote}
更切题。该环境的行为可以通过\SetBlockEnvironment
其他方式控制。
专门用于缩小块引用csquotes.cfg
建议定义一个新的环境,quote
然后可以\blockquote
用于\SetBlockEnvironment
。
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{csquotes}
\usepackage{babel}
\usepackage{relsize}
\newenvironment*{smallquote}
{\quote\smaller}
{\endquote}
\SetBlockEnvironment{smallquote}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\blockquote[somebody]{Lorem ipsum. A short inline quote.}
\lipsum[2]
\blockquote[somebody]{\lipsum[3]}
\lipsum[4]
\end{document}
或者,您可以使用 提供的钩子csquotes
。
可以通过重新定义钩子来修改内联引用\mktextquote
,通过改变来修改块引用\mkblockquote
。
内联引文的字体大小不同看起来很奇怪,所以我假设你只想更改块引文。默认定义\mkblockquote
是
\newcommand{\mkblockquote}[4]{#1#2#4#3}
我们只需添加一个\smaller
(\usepackage{relsize}
来自蒂乌里的回答),然后使用\renewcommand
。
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{csquotes}
\usepackage{babel}
\usepackage{relsize}
\renewcommand{\mkblockquote}[4]{\smaller#1#2#4#3}
\usepackage{lipsum} % for filler text
\begin{document}
\lipsum[1]
\blockquote[somebody]{Lorem ipsum. A short inline quote.}
\lipsum[2]
\blockquote[somebody]{\lipsum[3]}
\lipsum[4]
\end{document}
本例的输出如上所示。
\SetBlockEnvironment
也会影响\begin{displayquote}...\end{displayquote}
,但为了更好地控制这些环境,可以使用\mkbegdispquote
和进行自定义\mkenddispquote
,其默认值为
\newcommand{\mkbegdispquote}[2]{}
\newcommand{\mkenddispquote}[2]{#1#2}
所以我们也可以使用
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{csquotes}
\usepackage{babel}
\usepackage{relsize}
\renewcommand{\mkbegdispquote}[2]{\smaller}
\usepackage{lipsum} % for filler text
\begin{document}
\lipsum[1]
\begin{displayquote}[somebody]
Lorem ipsum. A short inline quote.
\end{displayquote}
\lipsum[2]
\begin{displayquote}[somebody]
\lipsum[3]
\end{displayquote}
\lipsum[4]
\end{document}