为什么公差 = 9999 不起作用?

为什么公差 = 9999 不起作用?

我希望如果我设置,\tolerance = 9999就不会出现溢出框的情况。但是,我遇到过这种情况,更改容差值根本没有效果。此外,您可以直观地看到哪里是断线的好地方,但 LuaTeX 却没有这样做。这是 LuaTeX 的一个错误吗?

以下是一个例子(抱歉,有很多非英语文字):

\documentclass[11pt, twoside, paper = B5]{scrbook}

\usepackage[babelshorthands = true]{polyglossia}
\setdefaultlanguage{russian}

\usepackage{fontspec}
\usepackage{amsmath}
\usepackage{unicode-math}
\usepackage{lualatex-math}
\usepackage{xcolor}
\usepackage{luacolor}
\usepackage{tikz}
\usepackage{microtype}
\usepackage{floatflt}
\usepackage{luacode}

\setmainfont{Erewhon}
\newfontfamily\cyrillicfont{Erewhon}
\setmathfont{Erewhon Math}

\KOMAoptions{BCOR = 5mm, DIV = 14}

\begin{luacode}
    function PrintShipoutBox()
        local soBox = tex.getbox("ShipoutBox")
        -- local nodetree = require('nodetree')
        -- nodetree.print(soBox)
    end
\end{luacode}
\AddToHook{shipout/before}{\directlua{PrintShipoutBox()}}

\tolerance = 9999

\begin{document}

\begin{floatingfigure}[l]{43mm}
    \noindent\begin{tikzpicture}
        \fill[black!10] (0,0) rectangle (43mm, 74mm);
    \end{tikzpicture}
\end{floatingfigure}

Возьмём какое"=нибудь событие~— назовём его событием $O$~— в качестве начала отсчёта времени и
пространственных координат. Другими словами, в четырёхмерной системе координат, на осях которой
откладываются $x$, $y$, $z$ и $t$, мировая точка события $O$ будет началом координат. Посмотрим
теперь, в каком отношении к данному событию $O$ находятся все остальные события. Для наглядности мы
будем рассматривать только одну пространственную координату и время, откладывая их на двух осях
(рис.~2). Прямолинейное равномерное движение частицы, проходящей точку $x = 0$ при $t = 0$,
изобразится прямой линией, проходящей через $O$ и наклонённой к оси $t$ под углом, тангенс которого
равен скорости частицы. Поскольку наибольшая возможная скорость равна $c$, то существует наибольший
угол, который может образовывать эта прямая с осью $t$. На рис.~2 изображены две прямые,
изображающие распространение двух сигналов (со скоростью света) в противоположных направлениях,
проходящих через событие $O$ (т.~е. проходящих $x = 0$ при $t = 0$). Все ли\-нии, изображающие
движения частиц, могут лежать только внутри областей $aOc$ и $dOb$. На прямых $ab$ и $cd$, очевидно,
$x = \pm ct$. Рассмотрим сначала события, мировые точки которых лежат внутри области $aOc$. Легко
сообразить, что во всех точках этой области $c^2t^2 - x^2 > 0$. Другими словами, интервалы между
любым событием этой области и событием $O$~— времениподобные. В этой области $t > 0$, т.е. все
события этой области происходят «после» события $O$. Но два события, разделённых времениподобным
интервалом, ни в какой системе отсчёта не могут происходить одновременно. Следовательно, нельзя
выбрать и никакой системы отсчёта, где бы какое"=нибудь из событий области $aOc$ происходило «до»
события $O$, т.е. когда было бы $t < 0$. Таким образом, все события области $aOc$ являются будущими
по отношению к $O$, и притом во всех системах отсчёта. Эту область можно поэтому назвать «абсолютно
будущей» по отношению к событию $O$.

\end{document}

输出的一个片段: 在此处输入图片描述

您可以在示例中看到,我甚至为 指定了连字符点ли\-нии,但它却突出来了。如果取消注释 中的行PrintShipoutBox,则可以检查生成的节点树。我没有看到任何可疑之处。这是第一个突出的 附近t = 0

在此处输入图片描述

有什么想法吗?

答案1

感谢 Marcel Krüger 指出第 175 期在 中luaotfload。问题线程提到了 luatex 补丁,您应该忽略它。如果您遇到此问题,请执行以下操作。

首先,获取dev的分支luaotfload

git clone -b dev https://github.com/latex3/luaotfload.git

然后将.lua文件从那里复制到你的 TeX 安装中。例如:

sudo find src -type f \( -name 'luaotfload*.lua' -or -name 'fontloader*.lua' \) -exec cp {} /usr/local/texlive/2021/texmf-dist/tex/luatex/luaotfload \;

更新

没有什么是容易的。事实证明,上面的内容不足以luaotfload-status.lua执行指定的加载程序:

 ["notes"]={
  ["loader"]="fontloader-2021-05-16.lua"
 },

当 Lua 引擎尝试加载 时fontloader-2021-05-16.lua,它会将搜索文件的任务委托给kpathsea库。后者要么查看文件ls-R以找到位置,要么在您的主目录中开始复杂的搜索。由于fontloader-2021-05-16.lua名称中有日期,因此它不在文件中ls-R,因此搜索失败。

正确的解决方案是将其复制luaotfload到您的主目录中:

mkdir -p ~/.texlive2021/texmf-var/tex/luatex/luaotfload
find src -type f \( -name 'luaotfload*.lua' -or -name 'fontloader*.lua' \) -exec cp {} ~/.texlive2021/texmf-var/tex/luatex/luaotfload \;

相关内容