我有以下 MWE,其中需要\marginnote
出现在正确的边距中。例如边距注释一二三和四需要出现在第一页的左边距。在第二页的边距中,注释十三和十四应该出现在右侧。
该命令\reversemarginpar
可以纠正此问题,但我需要在下一列重新设置。我无法使用twocolumn
文档类选项,因为我正在使用这个选项\twocolumn[]
来设置文档的标题部分。
我将无法使用其他类文件。有没有一种简单的方法可以将边注放到相应的边距中。
平均能量损失
\documentclass[twoside]{article}
\RequirePackage{lipsum}
\RequirePackage[margin=2cm]{geometry}
\RequirePackage{marginnote}
\begin{document}
\sloppy
\twocolumn[{%
\hrulefill\medskip\par
\lipsum[1]
\hrulefill
\vspace*{2pc}
}]
\section{Two}\label{s2}
\marginnote{One}\lipsum[1]
\marginnote{Two}\lipsum[2]
\marginnote{Three}\lipsum[3]
\marginnote{Four}\lipsum[4]
\marginnote{Five}\lipsum[5]
\marginnote{Six}\lipsum[6]
\marginnote{Seven}\lipsum[7]
\section{Three}\label{s3}
\marginnote{Eight}\lipsum[1]
\marginnote{Nine}\lipsum[2]
\marginnote{Ten}\lipsum[3]
\marginnote{Eleven}\lipsum[4]
\marginnote{Twelve}\lipsum[5]
\marginnote{Thirteen}\lipsum[6]
\marginnote{Fourteen}\lipsum[7]
\end{document}
这里有一些帖子\marginnote
并不是我所寻找的。
答案1
在你的序言中添加以下几行:
\makeatletter
\let\oldmarginnote\marginnote
\renewcommand*{\marginnote}[1]{%
\begingroup%
\ifodd\value{page}
\if@firstcolumn\reversemarginpar\fi
\else
\if@firstcolumn\else\reversemarginpar\fi
\fi
\oldmarginnote{#1}%
\endgroup%
}
\makeatother
梅威瑟:
\documentclass[twoside]{article}
\usepackage{lipsum}
\usepackage[margin=2cm]{geometry}
\usepackage{marginnote}
\makeatletter
\let\oldmarginnote\marginnote
\renewcommand*{\marginnote}[1]{%
\begingroup%
\ifodd\value{page}
\if@firstcolumn\reversemarginpar\fi
\else
\if@firstcolumn\else\reversemarginpar\fi
\fi
\oldmarginnote{#1}%
\endgroup%
}
\makeatother
\begin{document}
\sloppy
\twocolumn[{%
\hrulefill\medskip\par
\lipsum[1]
\hrulefill
\vspace*{2pc}
}]
\section{Two}\label{s2}
\marginnote{One}\lipsum[1]
\marginnote{Two}\lipsum[2]
\marginnote{Three}\lipsum[3]
\marginnote{Four}\lipsum[4]
\marginnote{Five}\lipsum[5]
\marginnote{Six}\lipsum[6]
\marginnote{Seven}\lipsum[7]
\section{Three}\label{s3}
\marginnote{Eight}\lipsum[1]
\marginnote{Nine}\lipsum[2]
\marginnote{Ten}\lipsum[3]
\marginnote{Eleven}\lipsum[4]
\marginnote{Twelve}\lipsum[5]
\marginnote{Thirteen}\lipsum[6]
\marginnote{Fourteen}\lipsum[7]
\end{document}
输出:
为了避免在页面开头出现段落,而前一页出现孤立的边距注释,您可以加载包needspace
并添加\needspace{\baselineskip}
到重新定义中\marginnote
\makeatletter
\let\oldmarginnote\marginnote
\renewcommand*{\marginnote}[1]{%
\begingroup%
\ifodd\value{page}
\if@firstcolumn\reversemarginpar\fi
\else
\if@firstcolumn\else\reversemarginpar\fi
\fi
\needspace{\baselineskip}\oldmarginnote{#1}%
\endgroup%
}
\makeatother
MWE(尝试移除\needspace{\baselineskip}
以查看差异)
\documentclass[twoside]{article}
\usepackage{lipsum}
\usepackage[margin=2cm]{geometry}
\usepackage{marginnote}
\usepackage{needspace}
\makeatletter
\let\oldmarginnote\marginnote
\renewcommand*{\marginnote}[1]{%
\begingroup%
\ifodd\value{page}
\if@firstcolumn\reversemarginpar\fi
\else
\if@firstcolumn\else\reversemarginpar\fi
\fi
\needspace{\baselineskip}\oldmarginnote{#1}%
\endgroup%
}
\makeatother
\begin{document}
\sloppy
\twocolumn[{%
\hrulefill\medskip\par
\lipsum[1]
\hrulefill
\vspace*{2pc}
}]
\section{Two}\label{s2}
\marginnote{One}\lipsum[1]
\marginnote{Two}\lipsum[1]
\marginnote{Three}\lipsum[1]
\marginnote{Four}\lipsum[1]
\marginnote{Five}\lipsum[2]
\marginnote{Six}\lipsum[2]
Some text\par
Some text\par
Some text\par
\marginnote{Seven}\lipsum[1]
\end{document}
输出