三浦ノート

自分の経験したことを検索可能にしていくブログ.誰かの役に立ってくれれば嬉しいです.

LaTeXで式参照のときに脚注にその数式を再表示するマクロ

LaTeXで式参照のときに脚注にその数式を再掲するマクロを調べて作った(ほぼコピぺだが).\repeatable{数式}{ラベル}で数式とラベルの登録.本文中で\repeatref{ラベル}で参照することでそのラベル付けされた数式を参照するページの脚注に再掲できる.

私が想定している使う場面は,以前のページに書かれた数式を当該のページで参照するときである.読者が思考するための手間を少しでも減らしたいという方に使ってもらいたい.

マクロの定義と例

\documentclass[dvipdfmx]{jsarticle}
\usepackage{amsmath,amssymb,amsfonts}
\renewcommand{\footnotesize}{\normalsize} %脚注の文字サイズを本文のモノと同じにする.

%%%%マクロの定義
\makeatletter  %@を文字として認識できるようにする.
\newcommand{\repeatable}[2]{%
    \global\@namedef{repeatable@#2}{#1}#1 \label{#2}  %変数 repeatable@#2 に #1 を代入.本文に #1 \label{#2} を表示.
}
\newcommand{\repeatref}[1]{%
    \@ifundefined{repeatable@#1}{NOT FOUND}{\footnote[0]{\eqref{#1}$ \displaystyle{ \@nameuse{repeatable@#1} } $}}%
    ~\eqref{#1}} % repeatable@#1 が未定義ならNOT FOUNDを表示.定義済みなら脚注に式番号と数式を表示して本文に式番号を表示.
\makeatother %@を文字として認識しないようにする.
%%%%%

\begin{document}

\begin{align}
\repeatable{f(x)=x}{eq:good}\\
\repeatable{f(y)=y}{eq:b}
\end{align}

\newpage

式\repeatref{eq:good}と式\repeatref{eq:b}より,

\end{document}

\footnotesizeを普通の文字サイズに再定義していることに注意.

以上の例の出力結果が以下である.

p1→f:id:OviskoutaR:20180624153346j:plain:w300 p2→f:id:OviskoutaR:20180624153414j:plain:w300

参考サイト

tex.stackexchange.com