有没有办法根据\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}