更改边注大小

更改边注大小

我想将侧注文本的大小更改为\footnotesize。为什么我不能像下面这样\sidenotetext\footnotesize需要的地方重新定义 ?

    \documentclass{article}
    \usepackage[utf8]{inputenc}
    \usepackage{sidenotes}

\makeatletter
    \RenewDocumentCommand \sidenotetext { o o +m }
    {
        \IfNoValueOrEmptyTF{#1}
            {
            \@sidenotes@placemarginal{#2}{\textsuperscript{\thesidenote}{}~#3}
        \refstepcounter{sidenote}
    }
            {\@sidenotes@placemarginal{#2}{\footnotesize\textsuperscript{#1}\footnotesize~#3}}
    }
\makeatother    

\begin{document}

Hello\sidenote{Hi}

\end{document}

答案1

您应该/可以提到您使用包中的原始定义,并尝试使用随包自动加载的包sidenotes功能来更改其中一个命令的定义。xparsesidenotes

\@sidenotes@placemarginal{#2}{\textsuperscript{\thesidenote}{}~#3}\@sidenotes@placemarginal{#2}{\textsuperscript{\thesidenote}{}~\footnotesize#3}\footnotesize在之前添加#3)替换了。

此外,感谢 Christian Hupfer,您需要用 括起定义,\makeatletter...\makeatother因为代码@以非文字方式使用符号(请参阅\makeatletter 和 \makeatother 起什么作用?)。

\documentclass{article}

\usepackage{sidenotes}
%% Loads the following packages
% marginnote
% caption
% xparse
% l3keys2e
% changepage

%%% From the sidenotes documentation
%% \sidenote
%% Uses \sidenotetext
%\NewDocumentCommand\sidenote { o o +m }
%{
%\sidenotemark[#1]
%\sidenotetext[#1][#2]{#3}
%\@sidenotes@multimarker
%}
%
%% \sidenotetext
%% Used in \sidenote
%\NewDocumentCommand \sidenotetext { o o +m }
%{
%\IfNoValueOrEmptyTF{#1}
%{
%\@sidenotes@placemarginal{#2}{\textsuperscript{\thesidenote}{}~#3}
%\refstepcounter{sidenote}
%}
%{\@sidenotes@placemarginal{#2}{\textsuperscript{#1}~#3}}
%}

% \sidenotetext
% Used in \sidenote
% Changed to meet the question of user J. Bratt (https://tex.stackexchange.com/questions/361622).
\makeatletter
\RenewDocumentCommand\sidenotetext{ o o +m }{%      
    \IfNoValueOrEmptyTF{#1}{%
        \@sidenotes@placemarginal{#2}{\textsuperscript{\thesidenote}{}~\footnotesize#3}%
        \refstepcounter{sidenote}%
    }{%
        \@sidenotes@placemarginal{#2}{\textsuperscript{#1}~#3}%
    }%
}
\makeatother

\begin{document}

Hello\sidenote{Hi}

\end{document}

答案2

我稍微改变了一下逻辑查询,使用普通的\IfValueTF{#1}{}{}

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{sidenotes}



\makeatletter
\RenewDocumentCommand\sidenotetext{oo+m}{%
  \IfValueTF{#1}{%
    \@sidenotes@placemarginal{#2}{\footnotesize\textsuperscript{#1}\footnotesize~#3}
  }{%
    \@sidenotes@placemarginal{#2}{\textsuperscript{\thesidenote}{}~#3}%
    \refstepcounter{sidenote}%
  }%
}
\makeatother


\begin{document}

Hello\sidenote[foo]{Hi}

Hello\sidenote{Hi again}

\end{document}

在此处输入图片描述

相关内容