如何在我的波斯语文档的所有页面的左侧插入边注?

如何在我的波斯语文档的所有页面的左侧插入边注?
\documentclass{book}
\usepackage[english]{babel}
\usepackage[svgnames]{xcolor}
\usepackage[doublespacing]{setspace}
\newcommand{\mymarginnote}[1]{%
  \marginpar{\colorbox{yellow}{\parbox{\marginparwidth}{%
  \setstretch{0.5}\textcolor{red}{\scriptsize{#1}}}}}}

 \usepackage{xepersian}
\begin{document}
\begin{persian}
ریاضیدانان بزرگ جهان تلاش فراوانی در جهت پیشبرد اهداف علوم مختلف انجام داده اند.
\mymarginnote{نظریه اعداد از مباحث ریاضی است.}
\newpage
ریاضیدانان بزرگ جهان تلاش فراوانی در جهت پیشبرد اهداف علوم مختلف انجام داده اند.
\mymarginnote{نظریه اعداد از مباحث ریاضی است.}
\end{persian}
\end{document}

答案1

因为您的问题与包的使用无关xepersian,所以以下代码应该可以解决您的问题。

\documentclass{book}
\usepackage{lipsum}
\usepackage[english]{babel}
\usepackage[svgnames]{xcolor}
\usepackage[doublespacing]{setspace}
\usepackage{everyshi}
\usepackage{changepage}
  \strictpagecheck
\makeatletter
\EveryShipout{\aftergroup\marginpar@left@fix}
\def\marginpar@left@fix{%
  \checkoddpage
  \ifoddpage
    \aftergroup\reversemarginpar
  \else
    \aftergroup\normalmarginpar
  \fi}
\newcommand{\mymarginnote}[1]{%
  \marginpar{\hspace{4em}\colorbox{yellow}{\parbox{1in}{%
    \setstretch{0.5}\textcolor{red}{\scriptsize #1}}}}}
\makeatother

\begin{document}
\checkoddpage
\ifoddpage
  \reversemarginpar
\else
  \normalmarginpar
\fi
\mymarginnote{Note 1}
\lipsum[1-2]
\newpage
\mymarginnote{Note 2}
\lipsum[3-5]
\newpage
\mymarginnote{Note 3}
\lipsum[6-8]
\end{document}

相关内容