将所有边注堆放在侧边距的中心

将所有边注堆放在侧边距的中心

我需要在我的 tex 文件中写一些边注,我希望它们显示在页面的右侧。

已经有一个很好的包可以默认执行此操作,名为边注这似乎很适合这份工作。

但是,是否有可能把注定要出现在同一个页面上的所有边注都整齐地堆叠在一起,一个在另一个之上,靠近中心(或者,顶部或底部)的边缘。

考虑以下输出 pdf,其 tex 文件位于图片下方(为了清晰起见,删除了一些长段落的虚拟文本)是否可以将两个边注按照出现的顺序整齐地堆叠在一起,但靠近边距的中心(或顶部或底部......)。

我希望该解决方案能够适用于同一页上的任意数量的边注,而不仅仅是两个。

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage{marginnote}
\usepackage{blindtext}
\begin{document}

\section*{Notes for My Paper}

....
mollis nec, sagittis eu, wisi.  Phasellus lacus.  Etiam laoreet quam
\marginnote{ This is a margin-note}[0cm]. Sed arcu. Phasellus at dui
in ligula molli....

 .....

Aliquam erat volutpat.  Nunc eleifend leo vitae magna.  In 
iderat non orci commodo lobortis. \marginnote{ This is another 
margin-note}[0cm] Proin neque massa, cursus ut, gravida....

\end{document}

下面的图片是我想要的(文本的新位置用红色标记,并使用不同的字体来区分之前的情况和我需要的)

在此处输入图片描述

答案1

使用memoir类(涵盖bookreportarticle类)(> texdoc memoir 页面注释) 和\sidebar宏。

\documentclass[...]{memoir}
\usepackage{lipsum}
\begin{document}
Some text. \sidebar{Marginal note}

More text. \sidebar{Another note}

\lipsum[1]

Yet more text. \sidebar{Third note}
\end{document}

这会将每个文本放入\sidebar页边距,从顶部开始,一直到底部。如果文本太多,一页放不下,那么它们将继续到下一页。阅读文档了解更多详细信息。

答案2

此解决方案将边注累积到保存框中。我没有尝试实现 的所有可选参数\marginnote

\documentclass[12pt]{article}
%\usepackage{marginnote}
\usepackage{blindtext}
\usepackage{everypage}
\usepackage{showframe}% MWE only

\newsavebox{\marginbox}
\newcommand{\marginstyle}{\raggedright}
\newcommand{\marginnote}[1]% #1 = text to appear in marginpar area
{\parbox{\marginparwidth}{\marginstyle% set width etc.
  \ifdim\ht\marginbox>0pt
    \global\setbox\marginbox=\vbox{\unvbox\marginbox
      \vspace{\dimexpr\baselineskip-\ht\strutbox}% adjust spacing between notes
      #1\strut}%
  \else
    \global\setbox\marginbox=\vbox{#1\strut}%
  \fi
}}

\makeatletter
\AddEverypageHook{\dimen0=\dimexpr \oddsidemargin+\textwidth+\marginparsep\relax
  \if@twoside\ifodd\value{page}\else
    \dimen0=\dimexpr \evensidemargin-\marginparsep-\marginparwidth\relax 
  \fi\fi
  \rlap{\hspace{\dimen0}\raisebox{\dimexpr -\topmargin-\headheight-\headsep-\height}[0pt][0pt]%
    {\parbox[c][\textheight][c]{\marginparwidth}{\unvbox\marginbox}}}%
}
\makeatother

\begin{document}

\section*{Notes for My Paper}

....
mollis nec, sagittis eu, wisi.  Phasellus lacus.  Etiam laoreet quam
\marginnote{ This is a margin-note}. Sed arcu. Phasellus at dui
in ligula molli....

 .....

Aliquam erat volutpat.  Nunc eleifend leo vitae magna.  In 
iderat non orci commodo lobortis. \marginnote{ This is another 
margin-note} Proin neque massa, cursus ut, gravida....

\end{document}

相关内容