如何使用回忆录更改边注的外观?

如何使用回忆录更改边注的外观?

我花了一些时间试图弄清楚如何改变回忆录类产生的边注的外观。我想尝试用斜体字将右边和左边对齐(这样它们就与每页的页边对齐了),但我甚至无法对它们的外观产生哪怕一丁点影响。

回忆录文档的第 250 页让我相信以下示例代码应该改变它们的外观,但没有这样的运气:

\documentclass{memoir}

\newcommand*{\sideparform}{\raggedleft}
\newcommand*{\sideparfont}{\itshape}

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris hendrerit
justo vel lorem eleifend id porttitor nunc dictum. Aenean ut iaculis sem.
Fusce urna augue, sagittis a dignissim at, lobortis eget purus. Duis
pellentesque commodo enim. Maecenas nec mi sed sapien iaculis congue. Proin
ut justo erat. Etiam tincidunt ornare sagittis. Suspendisse potenti.
Vivamus metus nisl, malesuada eu dignissim ac, congue eu arcu. Praesent ac
mollis nisl. Integer pulvinar dui vel sem viverra hendrerit. Donec non quam
leo. Cras metus leo, malesuada nec fermentum ut, aliquam id mi. Integer sit
amet semper nibh. Integer dictum volutpat nisi, nec luctus arcu vulputate
blandit. Sed tristique scelerisque mi id auctor. Vestibulum ac sem elit.
Pellentesque venenatis imperdiet turpis eu suscipit.

\marginpar{Lorem ipsum dolor sit amet, consectetur adipiscing elit.}
Aliquam lectus nisl, mattis at adipiscing nec, semper sit amet risus. In
ultrices eros vel ligula bibendum pretium. Ut quis purus tempus turpis
facilisis varius sit amet vitae arcu. Cum sociis natoque penatibus et
magnis dis parturient montes, nascetur ridiculus mus. Donec nibh libero,
interdum sit amet ultricies pretium, vulputate sit amet odio. Nunc quam
nisi, lacinia ac pulvinar et, fermentum quis enim. Suspendisse eu blandit
lectus. Nulla neque urna, molestie ut faucibus et, suscipit porta metus. In
hac habitasse platea dictumst. Maecenas orci ligula, mattis eu malesuada
ut, hendrerit a sem. Maecenas venenatis dapibus massa quis tempor.
Vestibulum lobortis mattis mi, at molestie sem accumsan vitae.

\end{document}

显然我做错了什么,而且发现之后可能会很尴尬,但请问是什么问题?:)

编辑

根据 Seamus 的回答,我得出了以下结论:

\newcommand\mymarginpar[1]{
\marginpar{\flushright \checkoddpage 
              \ifoddpage \flushleft \fi 
           \textit{#1}}}

但我对此并不满意。感觉很复杂...我真的必须创建自己的 \mymarginpar 吗?

答案1

\sideparform不被使用\marginpar,顾名思义,它是在 内使用的 \sidepar。Memoir 有几个边距书写宏,在 的情况下,\marginpar我们实际上使用\marginpar来自 LaTeX 内核的基础,因此我们目前不提供任何定制方式。我们可能会在未来改变这一点。现在假设您不使用 中的可选参数\marginpar,这可能会有用(需要最新的 memoir):

\marginparmargin{outer}
\let\oldmarginpar\marginpar
\renewcommand\marginpar[2][]{%
  \oldmarginpar{\mpjustification #2}}

为了工作,\marginparmargin需要\mpjustification遵循放置并将文本排版到文本块上。

答案2

Memoir 定义了\sidepar哪些行为更像或更不像\marginpar,并且还定义了\sidebar(使用 ab)位于页面块顶部的设置。对于\sidebar 但不是\sideparmemoir 定义了设置文本的命令:

\documentclass{memoir}

\begin{document}

\renewcommand*{\sidebarform}{\raggedright}
\renewcommand*{\sidebarfont}{\itshape}


Aliquam lectus nisl, mattis at adipiscing nec, semper sit amet risus. In
ultrices eros vel ligula bibendum pretium. Ut quis purus tempus turpis
facilisis varius sit amet vitae arcu. Cum sociis natoque penatibus et
magnis dis parturient montes, nascetur ridiculus mus. Donec nibh libero,
interdum sit amet ultricies pretium, vulputate sit amet odio. Nunc quam
nisi, lacinia ac pulvinar et, fermentum quis enim. Suspendisse eu blandit
lectus. Nulla neque urna, molestie ut faucibus et, suscipit porta metus. In
hac habitasse platea dictumst. Maecenas orci ligula, mattis eu malesuada
ut, hendrerit a sem. Maecenas venenatis dapibus massa quis tempor.
Vestibulum lobortis mattis mi, at molestie sem accumsan vitae.
\sidebar{ Lorem ipsum o dolor sit amet, consectetur adipiscing elit.}

\end{document}

注意,我将侧边栏注释放在最后,这样您就可以看到它浮动到顶部。还请注意,我使用了\renewcommand而不是,\newcommand因为回忆录定义了默认值...这有效,但并没有完全满足您的要求。

做你想做的事情的最简单的方法可能是为 marginpars 定义自己的包装器,如下所示:

\newcommand\mymarginpar[1]{\marginpar{\textit{\flushleft #1}}}

这应该可以按您想要的方式工作...尽管它始终会向左冲洗,因此对于双面设置来说这不起作用...让我考虑一下。

相关内容