我希望能够使用边注在一本双面书中,但有全部注释出现在左边距。这个问题有一个较老的解决方案这里,还有一个类似的旧答案,将所有注释放在右边距这里。然而,由于边注。
有一个可行的解决方案,可以将所有注释放在右边距这里,但不幸的是,我没有能力自己将其调整到左边距。
小例子
\documentclass[twoside]{book}
\usepackage{marginnote}
\usepackage{lipsum}
\begin{document}
\lipsum[1]\marginnote{test test test test test}
\lipsum[1-2]\marginnote{test test test test test}
\lipsum[1-2]\marginnote{test test test test test}
\lipsum[1-2]\marginnote{test test test test test}
\lipsum[1-2]\marginnote{test test test test test}
\lipsum[1-2]
\end{document}
答案1
每这个答案,有一个与 marginnote 包类似的功能,可以将所有内容放在左侧,这是通过保留定义 的代码中的另一种情况获得的\@mn@@@marginnote
。如下所示。
\documentclass[twoside]{book}
\usepackage{marginnote}
\usepackage{lipsum}
%
%
\makeatletter
\long\def\@mn@@@marginnote[#1]#2[#3]{%
\begingroup
\ifmmode\mn@strut\let\@tempa\mn@vadjust\else
\if@inlabel\leavevmode\fi
\ifhmode\mn@strut\let\@tempa\mn@vadjust\else\let\@tempa\mn@vlap\fi
\fi
\@tempa{%
\vbox to\z@{%
\vss
\@mn@margintest
\if@reversemargin\if@tempswa
\@tempswafalse
\else
\@tempswatrue
\fi\fi
\llap{%
\vbox to\z@{\kern\marginnotevadjust\kern #3
\vbox to\z@{%
\hsize\marginparwidth
\linewidth\hsize
\kern-\parskip
%\mn@parboxrestore
\marginfont\raggedleftmarginnote\strut\hspace{\z@}%
\ignorespaces#1\endgraf
\vss
}%
\vss
}%
\if@mn@verbose
\PackageInfo{marginnote}{xpos seems to be \@mn@currxpos}%
\fi
\begingroup
\ifx\@mn@currxpos\relax\else\ifx\@mn@currpos\@empty\else
\kern\@mn@currxpos
\fi\fi
\ifx\@mn@currpage\relax
\let\@mn@currpage\@ne
\fi
\if@twoside\ifodd\@mn@currpage\relax
\kern-\oddsidemargin
\else
\kern-\evensidemargin
\fi
\else
\kern-\oddsidemargin
\fi
\kern-1in
\endgroup
\kern\marginparsep
}%
}%
}%
\endgroup
}
\makeatother
%
\begin{document}
\lipsum[1]\marginnote{test test test test test}
\lipsum[1-2]\marginnote{test test test test test}
\lipsum[1-2]\marginnote{test test test test test}
\lipsum[1-2]\marginnote{test test test test test}
\lipsum[1-2]\marginnote{test test test test test}
\lipsum[1-2]
\end{document}
请注意,有一行%\mn@parboxrestore
我已注释掉(因为在我的系统上没有注释掉它时它不起作用)。这几乎肯定是因为我marginnote
系统中的版本不是最新的,但这段代码取自marginnote.sty
,可以在以下位置找到(例如)网址:。如果您的系统上没有注释此行,则值得尝试一下。
答案2
由于代码中到处都有对 twoside 的测试(并且它会影响间距和其他东西),所以我认为最好在本地将 twoside 设置为 false:
\documentclass[twoside]{book}
\usepackage[centering,marginparwidth=2.5cm,paperheight=10cm]{geometry}
\usepackage{marginnote}
\usepackage{lipsum}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@mn@@@marginnote}{\begingroup}{\begingroup\@twosidefalse}{}{\fail}
\reversemarginpar
\makeatother
\begin{document}
\lipsum[1]\marginnote{test test test test test}
\lipsum[1-2]\marginnote{test test test test test}
\lipsum[1-2]\marginnote{test test test test test}
\lipsum[1-2]\marginnote{test test test test test}
\lipsum[1-2]\marginnote{test test test test test}
\lipsum[1-2]
\end{document}