如何知道边注位于哪个边距上?

如何知道边注位于哪个边距上?

有没有办法根据\marginnote注释是在右列还是左列来制作一个宏?特别是我想在双列模式下执行此操作,否则我可以检查页面是否为奇数。下面是一个 mwe,我希望自动决定“左”和“右”:

\documentclass[twocolumn]{article}

\usepackage{lipsum}
\usepackage{marginnote}

\begin{document}
\lipsum[1]

\marginnote{left}
\lipsum[2-4]

\marginnote{right}
\lipsum[5]
\end{document}

答案1

首先要了解两个事实:

  • marginnote\marginnote命令有一个可选参数。如果使用可选(和强制)参数,则打印可选参数(如果marginnote决定使用左边距),打印强制参数(如果marginnote决定使用右边距)。

  • 在双栏文档中,marginnote始终使用左边距来记录左栏的注释,使用右边距来记录右栏的注释。

这两个事实又引出了一个事实:

  • 如果在双列文档中使用可选(和强制)参数\marginnote,则可选参数将用于左列的注释,强制参数将用于右列的注释。

因此你可以使用:

\documentclass[twocolumn]{article}

\usepackage{lipsum}
\usepackage{marginnote}

\begin{document}
\lipsum[1]

\marginnote[L]{R}
\lipsum[2-4]

\marginnote[L]{R}
\lipsum[5]
\end{document}

答案2

具体来说,对于双列模式,可以使用\if@firstcolumn

\documentclass[twocolumn]{article}

\usepackage{lipsum}
\usepackage{marginnote}

\makeatletter
\newcommand{\autoleftright}{\if@firstcolumn left\else right\fi}
\makeatother

\begin{document}
\lipsum[1]

\marginnote{\autoleftright}
\lipsum[2-4]

\marginnote{\autoleftright}
\lipsum[5]
\end{document}

相关内容