leaflet 不能与 babel 包一起使用吗?

leaflet 不能与 babel 包一起使用吗?

leaflet 包与 babel 包不兼容吗?

此代码不起作用

    \documentclass[foldmark,10pt,a4paper,notumble]{leaflet}
    \usepackage[iso-8859-7]{inputenc}
    \usepackage[greek]{babel}
    \begin{document}
       Όμορφος κόσμος ηθικός αγγελικά πλασμένος
    \end{document}

答案1

问题不babel在于它本身,而在于选项。它重新定义为始终使用拉丁字母中的罗马数字。但不幸的是,内部使用(等等)非常频繁,有时会中断。greek\@Romanleaflet\Roman\@Roman

如果您不需要罗马数字,您可以尝试:

\documentclass[foldmark,10pt,a4paper,notumble]{leaflet}
\usepackage[iso-8859-7]{inputenc}
\makeatletter
\let\OrigRoman\@Roman
\makeatother
\usepackage[greek]{babel}
\makeatletter
\let\@Roman\OrigRoman
\makeatother
\begin{document}
Όμορφος κόσμος ηθικός αγγελικά πλασμένος
\end{document}

如果您需要罗马数字,您可以尝试使用来xpatch修补leaflet宏:

\documentclass[foldmark,10pt,a4paper,notumble]{leaflet}
\usepackage[iso-8859-7]{inputenc}
\makeatletter
\let\Orig@Roman\@Roman
\newcommand*{\OrigRoman}[1]{\expandafter\Orig@Roman\csname c@#1\endcsname}
\makeatother
\usepackage[greek]{babel}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\LL@AddToBackground}{\@Roman}{\Orig@Roman}{}{}
\xpatchcmd{\LL@AddToBackground}{\@Roman}{\Orig@Roman}{}{}
\xpatchcmd{\LL@savePage}{\Roman}{\OrigRoman}{}{}
\xpatchcmd{\LL@savePage}{\Roman}{\OrigRoman}{}{}
\xpatchcmd{\LL@savePage}{\Roman}{\OrigRoman}{}{}
\xpatchcmd{\LL@savePage}{\Roman}{\OrigRoman}{}{}
\xpatchcmd{\LL@savePage}{\Roman}{\OrigRoman}{}{}
\xpatchcmd{\@@end}{\@Roman}{\Orig@Roman}{}{}
\xpatchcmd{\@@end}{\@Roman}{\Orig@Roman}{}{}
\xpatchcmd{\@@end}{\@Roman}{\Orig@Roman}{}{}
\xpatchcmd{\@@end}{\@Roman}{\Orig@Roman}{}{}
\xpatchcmd{\@@end}{\Roman}{\OrigRoman}{}{}
\makeatother
\begin{document}
Όμορφος κόσμος ηθικός αγγελικά πλασμένος
\end{document}

导言

注意:我不知道这是否会导致其他问题。因为我没有leaflet详细检查代码。

相关内容