使用“polyglossia”时隐藏“bidi”的徽标

使用“polyglossia”时隐藏“bidi”的徽标

使用最新版本bidi(32.4),在第一页的页脚中添加了一个徽标,内容为排版由比迪烟包裹

在撰写供他人查看的文档时,这显然是不可取的,无论是给同事的信件还是给学生的考试表。

然而,隐藏该标志被证明是很有挑战性的,而且谷歌(目前)也无能为力。

这是我目前所知道的:

  • 有一个bidi用于生成徽标的新选项。来自bidi.sty

    \newcommand*{\@bidi@inslogo@}{\insert\@bidi@copyins@{\@bidi@logo@}}
    \newcommand*{\@bidi@logo@hb@xt@}{%
      \if@RTLmain
        \hboxR to
      \else
        \hboxL to
      \fi
    }
    \newcommand*{\@bidi@logo@}{\@bidi@logo@hb@xt@\textwidth{\hss\LRE{\bfseries Typeset by the \textsf{bidi} package}}}
    
  • 如果直接调用bidi,我怀疑(但我真的不确定)该设置\usepackage[logo=off]{bidi}可能足以隐藏该消息。但是,如果使用polyglossia,则无论如何都无法设置标志。

  • 可以通过在序言之后添加以下内容来隐藏徽标\usepackage{polyglossia}

    \makeatletter
    \let\@bidi@logo@\@empty \let\@bidi@inslogo@\@empty
    \makeatother
    

为什么要添加这个标志bidi?有没有“正确”的方法来隐藏它?

答案1

只要你加载bidi 正在加载polyglossia使用任何polyglossia可以加载它的命令(基本上是任何语言设置命令),您都可以将选项传递logo=offbidi

\documentclass{article}

\usepackage{polyglossia}
\usepackage[logo=off]{bidi}

\setmainlanguage{english}
\setotherlanguage{hebrew}

\newfontfamily\hebrewfont[Script=Hebrew]{David CLM}


\begin{document}

\begin{english}
Hello
\end{english}
\begin{hebrew}
שלום
\end{hebrew}
\end{document} 

哪种方法更可取?

bidi正如您在评论中提到的那样,通过此处的方法或使用明确传递选项\PassOptionsToPackage将在该包的早期版本中失败,而重新定义\@bidi@inslogo@则不会。因此,如果您的文档可能在不同的机器/发行版上编译,那么重新定义方法显然更好。

至于使用还是在 之后立即\PassOptionsToPackage加载,两者的区别可能只是个人喜好不同。由于 可以在 加载 之前的任何加载顺序中,因此使用 会稍微简单一些。bidipolyglossia\PassOptionsToPackagepolyglossia

答案2

您可以使用宏\PassOptionsToPackage{<options>}{<package>}将选项传递给已加载到另一个包或类中的包。在加载包之前执行此操作非常重要。

有了它,您就可以使用它\PassOptionsToPackage{logo=off}{bidi}\usepackage{polyglossia}解决问题。

相关内容