我遇到了 XeLaTeX 问题,但不知道该如何解决。
我想在献词页上添加脚注。但如果我启用了bidi
软件包,脚注就会消失。
带 BIDI 包
未使用 BIDI 包
代码
在下面的代码中,取消注释 BIDI 行以查看破损情况。:-(
\documentclass[a4paper,pagesize,openany,14pt,parskip=never]{scrbook}
\KOMAoptions{twoside=false}
\usepackage{lipsum}
\usepackage{fontspec, newunicodechar}
\newfontfamily\Nhebrew{Noto Serif Hebrew}
%\usepackage{bidi}
\title{Why can't I put a footnote on dedication page}
\author{Help me please}
\dedication{{\small Hello \\
I want to put a footnote but it just turns into an asterisk\footnote{Why is this happening to me!?}}
And there's no footnote! But if I stop loading \texttt{bidi} package, it appears. What can I do if I want to use \texttt{bidi}??
%\begin{RTL}
%{\Nhebrew
%בבקשה תעזור לי
%
%}\end{RTL}
\footnote{please}
}
\begin{document}
\maketitle
\tableofcontents
\addchap{Introduction}
\lipsum
\section{Two}
\lipsum
\addchap{Example}
\lipsum
\addchap{Hello}
\lipsum
\end{document}
结论
我该如何修复这个问题,以便即使我在文档的其他地方使用 BIDI,我也可以在致谢页上使用脚注?仅仅加载 BIDI 就足以导致它中断,所以我无法在任何地方写希伯来语/阿拉伯语/其他 RTL 语言。
答案1
设置的献词页\dedication
是标题页之一。因此,您会得到一个星号作为第一个脚注标记等。
类scrbook
包bidi
使用文件scrbook-xetex-bidi.def
。此文件重新定义\maketitle
和其他命令。不幸的是,重新定义基于 KOMA-Script 3.12 之前的版本。此版本已过时 7 年。当前 KOMA-Script 版本为 3.26b。这就是为什么还存在其他问题的原因。例如,\thanks
在\author
标题页上产生两个相等的脚注。
感谢您向软件包作者报告此问题。同时,您可以使用以下软件包(感谢 Markus Kohm)作为解决方法,但请注意不支持,不保修:
%
% Fix bidi redefinition of \maketitle in scrbook.
%
% Copyright (c) Markus Kohm, 2019
%
% This file may be distributed under the conditions of the
% LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
% https://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This file has the LPPL maintenance status "unmaintained".
%
\ProvidesPackage{scrbook-bidi-maketitle-fix}[2019/06/28 v0.1 unsupported bidi fix]
\PackageInfo{scrbook-bidi-maketitle-fix}{%
Hack to fix some of the bidi\MessageBreak
\string\maketitle\space problems.\MessageBreak
A better solution would be to fix\MessageBreak
bidi and if it would use, e.g.,\MessageBreak
\string\CheckCommand\space to check the current\MessageBreak
definition before redefining a macro\MessageBreak
or to use xpatch to patch the\MessageBreak
original KOMA-Script macros instead of\MessageBreak
defining them newly}
\@ifclassloaded{scrbook}{}{%
\PackageError{scrbook-bidi-maketitle-fix}{unsupported class}{%
This package doesn't make sense without class scrbook.}%
\expandafter\endinput
}
\@ifpackageloaded{bidi}{}{%
\PackageError{scrbook-bidi-maketitle-fix}{missing package bidi}{%
This package doesn't make sense without package bidi.}%
\expandafter\endinput
}
\CheckCommand*\maketitle[1][1]{%
\if@titlepage
\begin{titlepage}
\setcounter{page}{%
#1%
}%
\let\footnotesize\small
\let\right@footnoterule\relax
\let\left@footnoterule\relax
\let\textwidth@footnoterule\relax
\let\footnote\thanks
\let\LTRfootnote\LTRthanks
\let\RTLfootnote\RTLthanks
\renewcommand*\thefootnote{\@fnsymbol\c@footnote}%
\let\@oldmakefnmark\@makefnmark
\renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}%
\ifx\@extratitle\@empty \else
\noindent\@extratitle\next@tpage\cleardoubleemptypage
\thispagestyle{empty}%
\fi
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
\ifx\@titlehead\@empty \else
\begin{minipage}[t]{\textwidth}%
\@titlehead
\end{minipage}\par
\fi
\null\vfill
\begin{center}
\ifx\@subject\@empty \else
{\subject@font \@subject \par}%
\vskip 3em
\fi
{\titlefont\huge \@title\par}%
\vskip 1em
{\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}%
\vskip 2em
{\Large \lineskip 0.75em
\begin{tabular}[t]{c}
\@author
\end{tabular}\par
}%
\vskip 1.5em
{\Large \@date \par}%
\vskip \z@ \@plus3fill
{\Large \@publishers \par}%
\vskip 3em
\end{center}\par
\@thanks
\vfill\null
\if@twoside\next@tpage
\begin{minipage}[t]{\textwidth}
\@uppertitleback
\end{minipage}\par
\vfill
\begin{minipage}[b]{\textwidth}
\@lowertitleback
\end{minipage}
\fi
\ifx\@dedication\@empty \else
\next@tpage\null\vfill
{\centering \Large \@dedication \par}%
\vskip \z@ \@plus3fill
\if@twoside \next@tpage\cleardoubleemptypage \fi
\fi
\end{titlepage}
\else
\par
\@tempcnta=%
#1%
\relax\ifnum\@tempcnta=1\else
\ClassWarning{\KOMAClassName}{%
Optional argument of \string\maketitle\space ignored
at\MessageBreak
notitlepage-mode%
}%
\fi
\begingroup
\renewcommand*\thefootnote{\@fnsymbol\c@footnote}%
\let\@oldmakefnmark\@makefnmark
\renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}
\if@twocolumn
\ifnum \col@number=\@ne
\@maketitle
\else
\twocolumn[\@maketitle]%
\fi
\else
\newpage
\global\@topnum\z@
\@maketitle
\fi
\thispagestyle{\titlepagestyle}\@thanks
\endgroup
\fi
\setcounter{footnote}{0}%
\let\thanks\relax
\let\LTRthanks\relax
\let\RTLthanks\relax
\let\maketitle\relax
\let\@maketitle\relax
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
\global\let\@title\@empty
\global\let\@subtitle\@empty
\global\let\@extratitle\@empty
\global\let\@titlehead\@empty
\global\let\@subject\@empty
\global\let\@publishers\@empty
\global\let\@uppertitleback\@empty
\global\let\@lowertitleback\@empty
\global\let\@dedication\@empty
\global\let\author\relax
\global\let\title\relax
\global\let\extratitle\relax
\global\let\titlehead\relax
\global\let\subject\relax
\global\let\publishers\relax
\global\let\uppertitleback\relax
\global\let\lowertitleback\relax
\global\let\dedication\relax
\global\let\date\relax
\global\let\and\relax
}
\renewcommand*\maketitle[1][1]{%
\expandafter\ifnum \csname scr@[email protected]\endcsname>\scr@compatibility\relax
\else
\def\and{%
\end{tabular}%
\hskip 1em \@plus.17fil%
\begin{tabular}[t]{c}%
}%
\fi
\if@titlepage
\begin{titlepage}
\setcounter{page}{%
#1%
}%
\if@titlepageiscoverpage
\edef\titlepage@restore{%
\noexpand\endgroup
\noexpand\global\noexpand\@colht\the\@colht
\noexpand\global\noexpand\@colroom\the\@colroom
\noexpand\global\vsize\the\vsize
\noexpand\global\noexpand\@titlepageiscoverpagefalse
\noexpand\let\noexpand\titlepage@restore\noexpand\relax
}%
\begingroup
\topmargin=\dimexpr \coverpagetopmargin-1in\relax
\IfRTL{%
\evensidemargin=\dimexpr \coverpageleftmargin-1in\relax
\oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax
}{%
\oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax
\evensidemargin=\dimexpr \coverpageleftmargin-1in\relax
}%
\textwidth=\dimexpr
\paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax
\textheight=\dimexpr
\paperheight-\coverpagetopmargin-\coverpagebottommargin\relax
\headheight=0pt
\headsep=0pt
\footskip=\baselineskip
\@colht=\textheight
\@colroom=\textheight
\vsize=\textheight
\columnwidth=\textwidth
\hsize=\columnwidth
\linewidth=\hsize
\else
\let\titlepage@restore\relax
\fi
\let\footnotesize\small
\let\right@footnoterule\relax
\let\left@footnoterule\relax
\let\textwidth@footnoterule\relax
\let\footnote\thanks
\let\LTRfootnote\LTRthanks
\let\RTLfootnote\RTLthanks
\renewcommand*\thefootnote{\@fnsymbol\c@footnote}%
\let\@oldmakefnmark\@makefnmark
\renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}%
\ifx\@extratitle\@empty
\ifx\@frontispiece\@empty
\else
\if@twoside\mbox{}\next@tpage\fi
\noindent\@frontispiece\next@tdpage
\fi
\else
\noindent\@extratitle
\ifx\@frontispiece\@empty
\else
\next@tpage
\noindent\@frontispiece
\fi
\next@tdpage
\fi
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
\ifx\@titlehead\@empty \else
\begin{minipage}[t]{\textwidth}%
\usekomafont{titlehead}{\@titlehead\par}%
\end{minipage}\par
\fi
\null\vfill
\begin{center}
\ifx\@subject\@empty \else
{\usekomafont{subject}{\@subject\par}}%
\vskip 3em
\fi
{\usekomafont{title}{\huge \@title\par}}%
\vskip 1em
{\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}%
\vskip 2em
{%
\usekomafont{author}{%
\lineskip 0.75em
\begin{tabular}[t]{c}
\@author
\end{tabular}\par
}%
}%
\vskip 1.5em
{\usekomafont{date}{\@date \par}}%
\vskip \z@ \@plus3fill
{\usekomafont{publishers}{\@publishers \par}}%
\vskip 3em
\end{center}\par
\@thanks\global\let\@thanks\@empty
\vfill\null
\if@twoside
\@tempswatrue
\expandafter\ifnum \@nameuse{scr@[email protected]}>\scr@compatibility\relax
\else
\ifx\@uppertitleback\@empty\ifx\@lowertitleback\@empty
\@tempswafalse
\fi\fi
\fi
\if@tempswa
\next@tpage
\begin{minipage}[t]{\textwidth}
\@uppertitleback
\end{minipage}\par
\vfill
\begin{minipage}[b]{\textwidth}
\@lowertitleback
\end{minipage}\par
\@thanks\global\let\@thanks\@empty
\fi
\else
\ifx\@uppertitleback\@empty\else
\ClassWarning{\KOMAClassName}{%
non empty \string\uppertitleback\space ignored
by \string\maketitle\MessageBreak
in `twoside=false' mode%
}%
\fi
\ifx\@lowertitleback\@empty\else
\ClassWarning{\KOMAClassName}{%
non empty \string\lowertitleback\space ignored
by \string\maketitle\MessageBreak
in `twoside=false' mode%
}%
\fi
\fi
\ifx\@dedication\@empty
\else
\next@tdpage\null\vfill
{\centering\usekomafont{dedication}{\@dedication \par}}%
\vskip \z@ \@plus3fill
\@thanks\global\let\@thanks\@empty
\cleardoubleemptypage
\fi
\ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi
\end{titlepage}
\else
\par
\@tempcnta=%
#1%
\relax\ifnum\@tempcnta=1\else
\ClassWarning{\KOMAClassName}{%
Optional argument of \string\maketitle\space ignored\MessageBreak
in `titlepage=false' mode%
}%
\fi
\ifx\@uppertitleback\@empty\else
\ClassWarning{\KOMAClassName}{%
non empty \string\uppertitleback\space ignored
by \string\maketitle\MessageBreak
in `titlepage=false' mode%
}%
\fi
\ifx\@lowertitleback\@empty\else
\ClassWarning{\KOMAClassName}{%
non empty \string\lowertitleback\space ignored
by \string\maketitle\MessageBreak
in `titlepage=false' mode%
}%
\fi
\begingroup
\let\titlepage@restore\relax
\renewcommand*\thefootnote{\@fnsymbol\c@footnote}%
\let\@oldmakefnmark\@makefnmark
\renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}%
\next@tdpage
\if@twocolumn
\ifnum \col@number=\@ne
\ifx\@extratitle\@empty
\ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi
\else
\@makeextratitle
\fi
\ifx\@frontispiece\@empty
\ifx\@extratitle\@empty\else\next@tdpage\fi
\else
\next@tpage
\@makefrontispiece
\next@tdpage
\fi
\@maketitle
\else
\ifx\@extratitle\@empty
\ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi
\else
\twocolumn[\@makeextratitle]%
\fi
\ifx\@frontispiece\@empty
\ifx\@extratitle\@empty\else\next@tdpage\fi
\else
\next@tpage
\twocolumn[\@makefrontispiece]%
\next@tdpage
\fi
\twocolumn[\@maketitle]%
\fi
\else
\ifx\@extratitle\@empty
\ifx\@frontispiece\@empty\else \mbox{}\fi
\else
\@makeextratitle
\fi
\ifx\@frontispiece\@empty
\ifx\@extratitle\@empty\else\next@tdpage\fi
\else
\next@tpage
\@makefrontispiece
\next@tdpage
\fi
\@maketitle
\fi
\ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi
\@thanks\global\let\@thanks\@empty
\endgroup
\fi
\setcounter{footnote}{0}%
\expandafter\ifnum \csname scr@[email protected]\endcsname>\scr@compatibility\relax
\let\thanks\relax
\let\LTRthanks\relax
\let\RTLthanks\relax
\let\maketitle\relax
\let\@maketitle\relax
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
\global\let\@title\@empty
\global\let\@subtitle\@empty
\global\let\@extratitle\@empty
\global\let\@frontispiece\@empty
\global\let\@titlehead\@empty
\global\let\@subject\@empty
\global\let\@publishers\@empty
\global\let\@uppertitleback\@empty
\global\let\@lowertitleback\@empty
\global\let\@dedication\@empty
\global\let\author\relax
\global\let\title\relax
\global\let\extratitle\relax
\global\let\titlehead\relax
\global\let\subject\relax
\global\let\publishers\relax
\global\let\uppertitleback\relax
\global\let\lowertitleback\relax
\global\let\dedication\relax
\global\let\date\relax
\fi
\global\let\and\relax
}%
\CheckCommand*{\@maketitle}{%
\clearpage
\let\footnote\thanks
\let\LTRfootnote\LTRthanks
\let\RTLfootnote\RTLthanks
\ifx\@extratitle\@empty \else
\noindent\@extratitle \next@tpage \if@twoside \null\next@tpage \fi
\fi
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
\ifx\@titlehead\@empty \else
\begin{minipage}[t]{\textwidth}
\@titlehead
\end{minipage}\par
\fi
\null
\vskip 2em%
\begin{center}%
\ifx\@subject\@empty \else
{\subject@font \@subject \par}
\vskip 1.5em
\fi
{\titlefont\huge \@title \par}%
\vskip .5em
{\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}%
\vskip 1em
{\Large
\lineskip .5em%
\begin{tabular}[t]{c}
\@author
\end{tabular}\par
}%
\vskip 1em%
{\Large \@date \par}%
\vskip \z@ \@plus 1em
{\Large \@publishers \par}
\ifx\@dedication\@empty \else
\vskip 2em
{\Large \@dedication \par}
\fi
\end{center}%
\par
\vskip 2em
}
\renewcommand*{\@maketitle}{%
\global\@topnum=\z@
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
\ifx\@titlehead\@empty \else
\begin{minipage}[t]{\textwidth}
\usekomafont{titlehead}{\@titlehead\par}%
\end{minipage}\par
\fi
\null
\vskip 2em%
\begin{center}%
\ifx\@subject\@empty \else
{\usekomafont{subject}{\@subject \par}}%
\vskip 1.5em
\fi
{\usekomafont{title}{\huge \@title \par}}%
\vskip .5em
{\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}%
\vskip 1em
{%
\usekomafont{author}{%
\lineskip .5em%
\begin{tabular}[t]{c}
\@author
\end{tabular}\par
}%
}%
\vskip 1em%
{\usekomafont{date}{\@date \par}}%
\vskip \z@ \@plus 1em
{\usekomafont{publishers}{\@publishers \par}}%
\ifx\@dedication\@empty \else
\vskip 2em
{\usekomafont{dedication}{\@dedication \par}}%
\fi
\end{center}%
\par
\vskip 2em
}%
梅威瑟:
\documentclass{scrbook}
\KOMAoptions{twoside=false}
\usepackage{bidi}
\usepackage{scrbook-bidi-maketitle-fix}
\title{Title}
\author{Author\thanks{Additional information}}
\dedication{%
Text,\thanks{First footnote}\\
more text\thanks{Second footnote}
}
\begin{document}
\maketitle
Text \footnote{\KOMAScriptVersion}
\end{document}
您的例子(我已经用 替换了一个过时的选项fontsize=14pt
):
\documentclass[%a4paper,pagesize,% default
openany,
fontsize=14pt,% <- syntax changed!
parskip=never
]{scrbook}
\KOMAoptions{twoside=false}
\usepackage{lipsum}
\usepackage{fontspec, newunicodechar}
\newfontfamily\Nhebrew{Noto Serif Hebrew}
\usepackage{bidi}
\usepackage{scrbook-bidi-maketitle-fix}
\title{Why can't I put a footnote on dedication page}
\author{Help me please}
\dedication{{\small Hello \\
I want to put a footnote but it just turns into an asterisk\footnote{Why is this happening to me!?}%
\par% <- use \par here!
}
And there's no footnote! But if I stop loading \texttt{bidi} package, it appears. What can I do if I want to use \texttt{bidi}??
\begin{RTL}
{\Nhebrew
בבקשה תעזור לי
}\end{RTL}
\footnote{please}
}
\begin{document}
\maketitle
\tableofcontents
\addchap{Introduction}
\lipsum
\section{Two}
\lipsum
\addchap{Example}
\lipsum
\addchap{Hello}
\lipsum
\end{document}
结果: