有没有办法使用标准 LaTeX 宏来更改字体、字体大小等\marginpar
,即不需要诸如\let\oldmarginpar\marginpar
(cp.自定义 Marginpar 的问题(与 ToMarginpar 结合). 该\marginnote
包例如提供\marginfont
。
梅威瑟:
\documentclass{book}
\begin{document}
Text text text\marginpar{A short note.}
\end{document}
答案1
要打印边距,内容将保存在保存框中。因此,您可以操作其默认实现,latex.ltx
如下所示:
\long\def\@ympar#1{%
\@savemarbox\@marbox{#1}%
\global\setbox\@currbox\copy\@marbox
\@xympar}
必填参数是内容。因此使用方法很简单:
\long\def\@ympar#1{%
\@savemarbox\@marbox{\tiny #1}%
\global\setbox\@currbox\copy\@marbox
\@xympar}
根据@
您必须使用的特殊符号\makeatletter
...。\makeatother
答案2
最简单的方法是\RenewDocumentCommand
:
\NewCommandCopy{\oldmarginpar}{\marginpar}
\RenewDocumentCommand{\marginpar}{om}{%
\IfNoValueTF{#1}
{\oldmarginpar{\mymparsetup #2}}
{\oldmarginpar[\mymparsetup #1]{\mymparsetup #2}}}
\newcommand{\mymparsetup}{\itshape}
在\mymparsetup
命令中,您可以输入所需的所有自定义内容。这样,我们就可以保留带有可选参数的行为\marginpar
。
注:请参阅旧版本的编辑历史\let
。