XeLatex 中两列脚注的问题

XeLatex 中两列脚注的问题

我的文件必须由编译,XeLateX并且其脚注应在每页中按两列排序。因此我在序言中使用了以下代码:

\documentclass{article}
\usepackage[extrafootnotefeatures]{xepersian}
\twocolumnfootnotes
%_____Making special format for numbers of footnotes
\makeatletter
\renewcommand\@makefntext[1]{%
\hspace*{-1em}
\parindent 0em
\noindent
\hb@xt@ 1.8em{\hss   
.\@thefnmark }       
#1}  
\makeatother
%___________
\begin{document}
\lr{hi}\LTRfootnote{Hia} \lr{hi}\LTRfootnote{Hib} \lr{hi}\LTRfootnote{Hic} \lr{hi}\LTRfootnote{Hid}
\end{document}

但问题是,我的脚注编号特殊格式根本不起作用。另一方面,如果我删除extrafootnotefeatures选项,那么脚注列的对齐方式就会出错(它会变成从右到左,但必须从左到右)!

所以问题是,我怎样才能有两列脚注,并让第一个脚注出现在左列?

答案1

您需要的是像这样\footfootmark定义的自定义extrafootnotefeatures-xetex-bidi

\bidi@ensure@newcommand{\footfootmark}{%
  \ifdim\footmarkwidth < \z@
    \llap{\hb@xt@ -\footmarkwidth{%
            \hss\normalfont\footscript{\@thefnmark}}%
          \hspace*{-\footmarkwidth}}%
  \else
    \ifdim\footmarkwidth = \z@
      {\normalfont\footscript{\@thefnmark}}%
    \else
      \hb@xt@\footmarkwidth{\hss\normalfont\footscript{\@thefnmark}}%
    \fi
  \fi}

这里\footmarkwidth定义包含的框的宽度\@thefnmark,为了获得所需的格式,您可以使用此代码(您需要定义一个字体\settextfont

代码

\documentclass{article}
\usepackage[extrafootnotefeatures]{xepersian}

\twocolumnfootnotes

\footmarkwidth=1.8em

\makeatletter

\bidi@ensure@newcommand{\footfootmark}{%
  \ifdim\footmarkwidth < \z@
    \llap{\hb@xt@ -\footmarkwidth{%
            \hss\normalfont\footscript{\@thefnmark}}%
          \hspace*{-\footmarkwidth}}%
  \else
    \ifdim\footmarkwidth = \z@
      {\normalfont\footscript{\@thefnmark}}%
    \else
      \hb@xt@\footmarkwidth{\hss\normalfont\footscript{.\@thefnmark}}%
    \fi
  \fi}

\makeatother

\settextfont{Amiri}
\begin{document}
\lr{hi}\LTRfootnote{Hia} \lr{hi}\LTRfootnote{Hib} \lr{hi}\LTRfootnote{Hic} \lr{hi}\LTRfootnote{Hid}
\end{document}

输出

在此处输入图片描述

相关内容