leaflet 包与 babel 包不兼容吗?
此代码不起作用
\documentclass[foldmark,10pt,a4paper,notumble]{leaflet}
\usepackage[iso-8859-7]{inputenc}
\usepackage[greek]{babel}
\begin{document}
Όμορφος κόσμος ηθικός αγγελικά πλασμένος
\end{document}
答案1
问题不babel
在于它本身,而在于选项。它重新定义为始终使用拉丁字母中的罗马数字。但不幸的是,内部使用(等等)非常频繁,有时会中断。greek
\@Roman
leaflet
\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
详细检查代码。