Suppress `bidi`'s logo when using `polyglossia`

As long as you load bidi after loading polyglossia but before using any polyglossia commands that would load it as well (essentially any language setting commands), you can pass the logo=off option to bidi.

\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} 

Which approach is preferred?

As you mention in the comments, passing the option to bidi explicitly either via the method here or using \PassOptionsToPackage will fail with earlier versions of the package, whereas redefining \@bidi@inslogo@ will not. So if you have documents that might be compiled on different machines/distributions, the redefinition approach is clearly better.

As for using \PassOptionsToPackage vs. loading bidi immediately after polyglossia, the difference is probably just one of taste. Since the \PassOptionsToPackage can be anywhere in the loading order prior to loading polyglossia, it's slightly simpler to use that method.


You can use the macro \PassOptionsToPackage{<options>}{<package>} to pass options to a package which is loaded inside another package or a class. It is important to do so before the package is loaded.

With this you can use \PassOptionsToPackage{logo=off}{bidi} prior to \usepackage{polyglossia} which should solve the issue.