自上次babel-greek
软件包更新(大约 2020-11-10)以来,\textgreek
使用 LuaLaTeX 进行编译时不再定义该命令。以下 MWE:
\documentclass{minimal}
\usepackage[greek.ancient,french]{babel}
\begin{document}
\foreignlanguage{greek}{\textgreek{da'imwn}}
\end{document}
使用 LuaLaTeX 进行编译时生成:
! Undefined control sequence.
<argument> \textgreek
{da'imwn}
虽然它在更新之前运行良好babel-greek
(并且在包恢复到以前的版本后运行良好)但它仍然可以与 pdfLaTeX 和最新版本的编译良好babel-greek
:
我怎样才能\textgreek
使用 LuaLaTeX 和最新版本的babel-greek
?
答案1
如果 greek 检测到 unicode 引擎,则不再加载 LGR。但您可以自行执行此操作:
\documentclass{article}
\usepackage[LGR,TU]{fontenc}
\usepackage[greek.ancient,french]{babel}
\begin{document}
\foreignlanguage{greek}{\textgreek{da'imwn}}
\end{document}
答案2
您仍然可以使用 加载 LGR 编码luainputenc
并定义\textgreek
运行\fontencoding{LGR}\selectfont
。但是,这会使连字模式完全混乱。只有当您使用与 Unicode 字体相同的系列名称声明 8 位 LGR 字体时,它才会起作用,例如通过加载substitutefont
并声明\substitutefont{LGR}{\rmdefault}{Tempora-TLF}
,或通过加载\setmainfont{TeX Gyre Termes}[NFSSFamily=Tempora-TLF]
。
您询问的是 LuaLaTeX,但 XeTeX 为您提供了定义字体映射的选项。您的问题启发我编写了一个 beta 代码,这是一种更标准化的用 ASCII 编码希腊语的方法,目前仅支持 PDFTeX 和betababel
。