分页符后顶部对齐的边距在错误的一侧(偶数/奇数)

分页符后顶部对齐的边距在错误的一侧(偶数/奇数)

在带选项的普通 LaTeX 下twoside,我\leavevmode\marginpar{#1}在段落开头使用以获得顶部对齐的边注。分页符之后的边注可能会也可能不会出现在错误的一侧。

之前已经问过相关问题,但没有给出令人信服的答案;例如,有人提出了一种需要 pdflatex 扩展的黑客攻击。

所以如果这个问题真的没有解决办法,那么至少我想了解一下为什么LaTeX\marginpar失败了并且无法改进。

工作示例:

\documentclass[11pt,a5paper,twoside]{report}

\usepackage{polyglossia}
\setdefaultlanguage[spelling=new,babelshorthands=true]{german}

\def\baselinestretch{1.07}
\topmargin -2.3cm
\textheight 16.6cm

\newdimen\pagewidth\pagewidth=14.8650889cm
\hoffset -1in
\advance\hoffset by 1.2cm
\marginparsep 0.5cm
\marginparwidth 1.cm
\advance\hoffset by 0.5\marginparwidth
\evensidemargin 0.5\marginparwidth
\oddsidemargin  \marginparwidth
\advance\evensidemargin by \marginparsep
\textwidth 11cm

\parindent 0pt
\parskip .8\baselineskip plus .3\baselineskip minus .2\baselineskip

\def\MP#1{\pagebreak[3]\leavevmode\marginpar{#1}}

\begin{document}
\mag 1414
\flushbottom

\MP{I.}%
Saget, Steine, mir an, o sprecht, ihr hohen Paläste!
   Straßen, redet ein Wort! Genius, regst du dich nicht?

Ja, es ist alles beseelt in deinen heiligen Mauern,
   Ewige Roma; nur mir schweiget noch alles so still.

O wer flüstert mir zu, an welchem Fenster erblick ich
   Einst das holde Geschöpf, das mich versengt und erquickt?

Ahn’ ich die Wege noch nicht, durch die ich immer und immer,
   Zu ihr und von ihr zu gehn, opfre die köstliche Zeit?

Noch betracht’ ich Kirch’ und Palast, Ruinen und Säulen,
   Wie ein bedächtiger Mann schicklich die Reise benutzt.

Doch bald ist es vorbei; dann wird ein einziger Tempel,
   Amors Tempel nur sein, der den Geweihten empfängt.

Eine Welt zwar bist du, o Rom; doch ohne die Liebe
   Wäre die Welt nicht die Welt, wäre denn Rom auch nicht Rom.

\MP{II.}%
Ehret, wen ihr auch wollt! Nun bin ich endlich geborgen!
   Schöne Damen und ihr, Herren der feineren Welt;

Fraget nach Oheim und Vettern und alten Muhmen und Tanten;
   Und dem gebundnen Gespräch folge das traurige Spiel.

Auch ihr übrigen fahret mir wohl, in großen und kleinen
   Zirkeln, die ihr mich oft nah der Verzweiflung gebracht,

Wiederholet, politisch und zwecklos, jegliche Meinung,
   Die den Wandrer mit Wut über Europa verfolgt.

So verfolgte das Liedchen Malbrough den reisenden Briten
   Einst von Paris nach Livorn, dann von Livorno nach Rom,

\MP{III.}%
Laß dich, Geliebte, nicht reun, daß du mir so schnell dich ergeben!
   Glaub’ es, ich denke nicht frech, denke nicht niedrig von dir.

Vielfach wirken die Pfeile des Amor: einige ritzen,
   Und vom schleichenden Gift kranket auf Jahre das Herz.

\MP{IV.}%
Fromm sind wir Liebende, still verehren wir alle Dämonen,
   Wünschen uns jeglichen Gott, jegliche Göttin geneigt.

Und so gleichen wir euch, o römische Sieger! Den Göttern
   Aller Völker der Welt bietet ihr Wohnungen an,

\end{document}

生成以下第 2 页:

在此处输入图片描述

答案1

问题是,当 LaTeX 构造边注“III”时,它会根据页码计数器选择边,但页码计数器仍包含 1(LaTeX 通常会收集比一页更多的材料,然后才会插入分页符)。获取对象页码的唯一可靠方法是使用标签。因此,以下代码将标签放在带有边注的段落开头,然后检查此标签的页码是奇数还是偶数。如果是奇数,则将 marginpar 放在右侧,如果是偶数,则放在左侧。与任何其他标签使用一样,文档必须编译两次。

\documentclass[11pt,a5paper,twoside]{report}

\usepackage{polyglossia}
\setdefaultlanguage[spelling=new,babelshorthands=true]{german}

\def\baselinestretch{1.07}
\topmargin -2.3cm
\textheight 16.6cm

\newdimen\pagewidth\pagewidth=14.8650889cm
\hoffset -1in
\advance\hoffset by 1.2cm
\marginparsep 0.5cm
\marginparwidth 1.cm
\advance\hoffset by 0.5\marginparwidth
\evensidemargin 0.5\marginparwidth
\oddsidemargin  \marginparwidth
\advance\evensidemargin by \marginparsep
\textwidth 11cm

\parindent 0pt
\parskip .8\baselineskip plus .3\baselineskip minus .2\baselineskip

\usepackage{ifthen}
\usepackage{refcount}

\makeatletter
\@mparswitchfalse
\newcounter{mpcount}
\def\MP#1{%
\pagebreak[3]%
\leavevmode
\stepcounter{mpcount}%
\label{marginpar\the\c@mpcount}%
\ifthenelse{\isodd{\getpagerefnumber{marginpar\the\c@mpcount}}}{%
  \normalmarginpar
  \marginpar{#1}%
  }{%
  \reversemarginpar
  \marginpar{#1}%
}}
\makeatother

\begin{document}
\mag 1414
\flushbottom

\MP{I.}%
Saget, Steine, mir an, o sprecht, ihr hohen Paläste!
   Straßen, redet ein Wort! Genius, regst du dich nicht?

Ja, es ist alles beseelt in deinen heiligen Mauern,
   Ewige Roma; nur mir schweiget noch alles so still.

O wer flüstert mir zu, an welchem Fenster erblick ich
   Einst das holde Geschöpf, das mich versengt und erquickt?

Ahn’ ich die Wege noch nicht, durch die ich immer und immer,
   Zu ihr und von ihr zu gehn, opfre die köstliche Zeit?

Noch betracht’ ich Kirch’ und Palast, Ruinen und Säulen,
   Wie ein bedächtiger Mann schicklich die Reise benutzt.

Doch bald ist es vorbei; dann wird ein einziger Tempel,
   Amors Tempel nur sein, der den Geweihten empfängt.

Eine Welt zwar bist du, o Rom; doch ohne die Liebe
   Wäre die Welt nicht die Welt, wäre denn Rom auch nicht Rom.

\MP{II.}%
Ehret, wen ihr auch wollt! Nun bin ich endlich geborgen!
   Schöne Damen und ihr, Herren der feineren Welt;

Fraget nach Oheim und Vettern und alten Muhmen und Tanten;
   Und dem gebundnen Gespräch folge das traurige Spiel.

Auch ihr übrigen fahret mir wohl, in großen und kleinen
   Zirkeln, die ihr mich oft nah der Verzweiflung gebracht,

Wiederholet, politisch und zwecklos, jegliche Meinung,
   Die den Wandrer mit Wut über Europa verfolgt.

So verfolgte das Liedchen Malbrough den reisenden Briten
   Einst von Paris nach Livorn, dann von Livorno nach Rom,

\MP{III.}%
Laß dich, Geliebte, nicht reun, daß du mir so schnell dich ergeben!
   Glaub’ es, ich denke nicht frech, denke nicht niedrig von dir.

Vielfach wirken die Pfeile des Amor: einige ritzen,
   Und vom schleichenden Gift kranket auf Jahre das Herz.

\MP{IV.}%
Fromm sind wir Liebende, still verehren wir alle Dämonen,
   Wünschen uns jeglichen Gott, jegliche Göttin geneigt.

Und so gleichen wir euch, o römische Sieger! Den Göttern
   Aller Völker der Welt bietet ihr Wohnungen an,

\end{document}

在此处输入图片描述

答案2

这相当于 Golovan 的解决方案,但使用 ifoddpage 包来简化编码。

\documentclass[11pt,a5paper,twoside]{report}

\usepackage{polyglossia}
\setdefaultlanguage[spelling=new,babelshorthands=true]{german}

\def\baselinestretch{1.07}
\topmargin -2.3cm
\textheight 16.6cm

\newdimen\pagewidth\pagewidth=14.8650889cm
\hoffset -1in
\advance\hoffset by 1.2cm
\marginparsep 0.5cm
\marginparwidth 1.cm
\advance\hoffset by 0.5\marginparwidth
\evensidemargin 0.5\marginparwidth
\oddsidemargin  \marginparwidth
\advance\evensidemargin by \marginparsep
\textwidth 11cm

\parindent 0pt
\parskip .8\baselineskip plus .3\baselineskip minus .2\baselineskip

\usepackage{ifoddpage}
\makeatletter
\def\MP#1{\pagebreak[3]\leavevmode\checkoddpage
  \ifnum\oddpage@page=\value{page}\normalmarginpar
  \else\reversemarginpar
  \fi
  \marginpar{#1}}
\makeatother

\begin{document}
\mag 1414
\flushbottom

\MP{I.}%
Saget, Steine, mir an, o sprecht, ihr hohen Paläste!
   Straßen, redet ein Wort! Genius, regst du dich nicht?

Ja, es ist alles beseelt in deinen heiligen Mauern,
   Ewige Roma; nur mir schweiget noch alles so still.

O wer flüstert mir zu, an welchem Fenster erblick ich
   Einst das holde Geschöpf, das mich versengt und erquickt?

Ahn’ ich die Wege noch nicht, durch die ich immer und immer,
   Zu ihr und von ihr zu gehn, opfre die köstliche Zeit?

Noch betracht’ ich Kirch’ und Palast, Ruinen und Säulen,
   Wie ein bedächtiger Mann schicklich die Reise benutzt.

Doch bald ist es vorbei; dann wird ein einziger Tempel,
   Amors Tempel nur sein, der den Geweihten empfängt.

Eine Welt zwar bist du, o Rom; doch ohne die Liebe
   Wäre die Welt nicht die Welt, wäre denn Rom auch nicht Rom.

\MP{II.}%
Ehret, wen ihr auch wollt! Nun bin ich endlich geborgen!
   Schöne Damen und ihr, Herren der feineren Welt;

Fraget nach Oheim und Vettern und alten Muhmen und Tanten;
   Und dem gebundnen Gespräch folge das traurige Spiel.

Auch ihr übrigen fahret mir wohl, in großen und kleinen
   Zirkeln, die ihr mich oft nah der Verzweiflung gebracht,

Wiederholet, politisch und zwecklos, jegliche Meinung,
   Die den Wandrer mit Wut über Europa verfolgt.

So verfolgte das Liedchen Malbrough den reisenden Briten
   Einst von Paris nach Livorn, dann von Livorno nach Rom,

\MP{III.}%
Laß dich, Geliebte, nicht reun, daß du mir so schnell dich ergeben!
   Glaub’ es, ich denke nicht frech, denke nicht niedrig von dir.

Vielfach wirken die Pfeile des Amor: einige ritzen,
   Und vom schleichenden Gift kranket auf Jahre das Herz.

\MP{IV.}%
Fromm sind wir Liebende, still verehren wir alle Dämonen,
   Wünschen uns jeglichen Gott, jegliche Göttin geneigt.

Und so gleichen wir euch, o römische Sieger! Den Göttern
   Aller Völker der Welt bietet ihr Wohnungen an,

\end{document}

相关内容