我正在尝试在 MiKTeX 2.9 中使用 LuaTeX (LuaLaTeX),但无法加载西里尔字母连字模式。我对 LuaTeX 还不太熟悉,所以也许它在连字和语言支持方面有什么特别之处?
这是我的示例文档:
\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\usepackage[russian]{babel}
\setmainfont{Charis SIL}
\title{Заголовок}
\author{Автор}
\date{}
\begin{document}
\maketitle
\begin{abstract}
Цель работы: проверить \LuaTeX.
\end{abstract}
Проверка. Очень длинная строка для проверки переносов: дезоксирибонуклеиновый тест.
\end{document}
在此示例中,我没有得到连字符,并且水平盒子溢出。相同的文本在 XeTeX 和 pdfTeX 中可以很好地进行连字符连接。
答案1
我刚刚意识到,不连字符可能是由于字符代码造成的。texlive 的最新 luatex 有一个文件luatex-unicode-字母.tex它设置了非拉丁字母的小写代码,但 miktex 中可能还没有这个。我在上面链接下放了该文件的副本,你可以试试\input
那个文件,也许它能解决问题。
答案2
对 Tacos 答案的补充评论。要将 luatex-unicode-letters.tex 添加到您的 lualatex 格式:将 luatex-unicode-letters.tex 保存在“本地根”/tex/generic/luatexconfig 中。将以下代码放入文件 lualatex.ini 中并将其保存在“本地根”/tex/latex/latexconfig 中。更新 FNDB,然后重新生成 lualatex 格式。
编辑:这里是我提到的 lualatex.ini 的代码:
% $Id$
% Karl Berry, originally written 2008. public domain.
% must be done first (activation of primitives)
\input lualatexiniconfig.tex
\input luatex-unicode-letters.tex
\input pdftexconfig.tex
% pdf output by default.
\scrollmode
\let\dump\relax
\input latex.ltx
\input lualatexquotejobname.tex
\pdfprimitive\dump
答案3
MiKTeX 有一个特殊的程序来重建格式文件。如果lualatex.fmt
您需要:
- 运行
initexmf --admin --edit-config-file lualatex
(如果您的机器上为所有用户安装了 MiKTeX,否则删除该--admin
选项)以编辑本地,lualatex.ini
如 @Ulrike 的回答中所示。这通常会lualatex.ini
在文件夹C:\ProgramData\MiKTeX\2.9\miktex\config
和处创建(它们是彼此的别名并且也是隐藏的)。在等处C:\Users\All Users\MiKTeX\2.9\miktex\config\
也可以存在别名C:\Documents and Settings\All Users\MiKTeX\2.9\miktex\config
- 放入(也用于生成)
luatex-unicode-letters.tex
所在的C:\Users\All Users\MiKTeX\2.9\tex\generic\config\
位置。pdftexconfig.tex
lualatex.fmt
- 重建
lualatex
格式。这将lualatex.fmt
在 中创建C:\Users\All Users\MiKTeX\2.9\miktex\data\le\luatex\
。 - 不幸的是,这还不是全部。MiKTeX 2.9 似乎忽略了
lualatex.ini
上述步骤中创建的本地文件 [bug 还是feature
?]。因此,您实际上需要编辑lualatex.ini
位于 的main 文件C:\Program Files\MiKTeX 2.9\tex\latex\latexconfig
。
完成所有步骤 1 至 4 后,我已成功默认激活俄语连字功能。