边注对齐

边注对齐

我使用两面类文章。我还每页使用十几个 \marginpar 将我的 QED 符号放在“页边距”中,或者更确切地说,放在页面的右侧。代码来自这个网站:

\newcommand{myqed}{\unskip\removelastskip\marginpar{qed}}

\makeatletter
\patchcmd{\@addmarginpar}{\ifodd\c@page}{\ifodd\c@page\@tempcnta\m@ne}{}{}
\makeatother
\reversemarginpar

并且它总是将我的 \marginpar 放在页面的右侧。

问题是浮动会弄乱脚注及其编号 => 我的脚注在错误的页面上(4 页之后,有时在下一节...)

因此,解决方案是为我的 QED 符号创建一个命令,该命令可更改边距的类型。有时建议使用 \marginnote 来解决这个问题,但我不知道如何让它始终在页面右侧显示注释。 \marginnote 似乎没有将注释放在与文本相同的行上:它位于文本下方一行,我无法使用 \unskip\removelastskip 删除 vspace。

这是我的例子,它确实产生了脚注的问题,因为这个很难复制:

\documentclass[twoside,a4paper]{article}
\usepackage{amsmath}
\usepackage{lipsum}
\usepackage{showframe}
\usepackage{parskip}


\setlength{\oddsidemargin}{20mm}
\setlength{\evensidemargin}{40mm}

\newenvironment{trivlist2}
{\begin{list}
{}
{
\setlength{\labelwidth}{0ex}
\setlength{\leftmargin}{0ex}
\setlength{\labelsep}{0ex}
\setlength{\itemindent}{1\parindent}
\setlength{\listparindent}{1\parindent}
\setlength{\itemsep}{0ex}
\setlength{\topsep}{0.5\parskip plus 0\parskip minus 0.5\parskip}
%\setlength{\topsep}{0ex}
\setlength{\parsep}{0ex}
%useless only \topsep counts anyway as there is no \[ ]\ alone in an environment
\setlength{\partopsep}{\parskip}
}}
{\end{list}}


\makeatletter

\renewcommand\]{%
%\relax
\ifmmode%
%\par
%\vgl@\nointerlineskip
\nopagebreak%
\endgroup%
\hfill%
$ %$%
\endgroup%
%\@endparpenalty\postdisplaypenalty
\end{trivlist2}%
\@endparpenalty\postdisplaypenalty%
\else \@badmath%
\fi}%

\renewcommand\[{%
%\relax%
\ifmmode\@badmath%
\else%
%\dotfill
\@beginparpenalty\predisplaypenalty%
\begin{trivlist2}%
%\@beginparpenalty\predisplaypenalty
\item[]%
\leavevmode%
\begingroup%
$ %$%
\displaystyle%
\hfill%
\begingroup%
%\par
%\vgl@\nointerlineskip
\nopagebreak%
\fi}

\makeatother



\usepackage{marginnote}

\newcommand{\qed}{%
\unskip\removelastskip%
%\marginpar{%
%%\hspace*{-0.5\marginparsep}%
%\makebox[0pt][c]{$\heartsuit$}%
%}
\marginnote[$\heartsuit$]{$\diamondsuit$}
\par
}

%%%put the marginpar always on the right page
%\usepackage{etoolbox}
%\makeatletter
%\patchcmd{\@addmarginpar}{\ifodd\c@page}{\ifodd\c@page\@tempcnta\m@ne}{}{}
%\makeatother
%\reversemarginpar



\begin{document}
blabla,
\[
A \hspace{0.5\textwidth}  B
\]
\qed

blabla,
\[
A \hspace{0.5\textwidth}  B
\]
\hfill blabla.
\qed



\begin{align*}
\alpha \colon T &\longrightarrow A \\
t &\longmapsto \# t \hspace{0.8\textwidth} B
\end{align*}
\qed


\lipsum[33]
\qed


\newpage

blabl,
\[
A \hspace{0.5\textwidth}  B
\]
\qed

blabla,
\[
A \hspace{0.5\textwidth}  B
\]
\hfill blabla.
\qed



\begin{align*}
\alpha \colon T &\longrightarrow A \\
t &\longmapsto \# t \hspace{0.8\textwidth} B
\end{align*}
\qed


\lipsum[33]
\qed

\end{document}

我重新定义了 \[ 和 \](只是修改了使用的列表)以在它们周围应用我自己的间距。它会不由自主地将 qed 符号放在显示的行的正前方。这当然是理想的。我的问题是,使用 \marginnote 我会失去此功能以及右侧的位置。

相关内容