Is there a way to change the font, font size and so on for \marginpar with a standard LaTeX macro, i.e. without something such as \let\oldmarginpar\marginpar (cp. Problem with Customized Marginpar (in Combination With a ToMarginpar). The \marginnote package e.g. provides \marginfont.



Text text text\marginpar{A short note.}

2 Answers 2


To print out a margin the contents will be save in a savebox. So you can manipulate the default implementation of latex.ltx which is as follows:


The mandatory argument is the contents. So simple use:

  \@savemarbox\@marbox{\tiny #1}%

Based on the special symbol @ you have to use \makeatletter...\makeatother.


The easiest way is with \RenewDocumentCommand:

    {\oldmarginpar{\mymparsetup #2}}
    {\oldmarginpar[\mymparsetup #1]{\mymparsetup #2}}}


In the \mymparsetup command you can put all customizations you want. In this way we can keep the behavior with the optional argument to \marginpar.

Note: see edit history for the older version with \let.

  • @MarcoDaniel I don't see why: if one does the right redefinition, there's no problem. :)
    – egreg
    Jun 2, 2012 at 13:01
  • 1
    I thought that using \let has the side effect of losing the ability to have optional arguments. But your \oldmarginpar can still parse the leading []?
    – Andy
    Jun 2, 2012 at 13:08
  • 1
    @Andy: You can use the let operation for commands with optional argument. However a more robust way is to use \LetLtxMacro provided by the package letltxmacro. Jun 2, 2012 at 13:14
  • 1
    @Andy Actually \marginpar has no argument. I'll add something to my answer.
    – egreg
    Jun 2, 2012 at 13:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .