callback

回调替换活动角色
callback

回调替换活动角色

使用 LuaLaTeX、TeXlive 2024、Linux。 编辑:正如 David 在接受的答案中所写,这不需要 Lua 回调。但我将保留这个问题,因为其他用户可能会尝试做类似的事情,而不需要预先存在的文本定义"。 我的应用程序涉及文本(而不是数学或图表)。我与人工编辑器交换纯文本文件,偶尔"会有一些杂乱的内容。双引号在英语对话中被广泛使用。TeX 处理它们的方式"与文字处理器(编辑器使用)处理它们的方式不同。 TeX 连字符总是设置"为右侧双花括号。这不是我想要的。虽然我可以"从tlig列表中删除,但这还不够。我想要做的是每当"遇到时都写一条消息。然后...

Admin

使用 lua 回调替换 tex 命令中插入的一些阿拉伯字符
callback

使用 lua 回调替换 tex 命令中插入的一些阿拉伯字符

我有这个用特定字符替换某些字符的例子,替换在整个输入流上工作正常,但在通过 tex 命令插入的文本上失败。 有没有办法让替换对通过 tex 命令插入的文本也有效?@DavidCarlisle 建议使用 pre-linebreak 回调,有人知道怎么做吗? \documentclass{article} \usepackage{luacode,luacolor} \usepackage[bidi=basic]{babel} \babelprovide[import,main]{arabic} \babelfont{rm}{Amiri} \begin{lua...

Admin

如何通过 LuaLaTeX 回调插入 LaTeX 命令?
callback

如何通过 LuaLaTeX 回调插入 LaTeX 命令?

我希望鼓励 LaTeX 在句末的下列标点符号之一后换行或换页:“。”;“!”和“?”。 我想设置 -50 的惩罚以稍微鼓励在句末换行,并设置 -200 的惩罚以鼓励在句末多一些分页,因为我认为这会让读者更加不安。 我想创建一个命令来根据您处于水平模式还是垂直模式来应用适当的惩罚,然后使用 lualatex 的功能并使用其callback在每个相关标点符号后插入此命令。 我的问题是如何插入此命令。我可以插入惩罚,但只能插入一个值,并且不区分水平模式下的惩罚(-50)和垂直模式下的惩罚(-200)。 您知道如何通过 LuaLaTeX 回调插入 LaTeX 命令吗...

Admin

ConTeXt:process_input_buffer 回调的等效项是什么?
callback

ConTeXt:process_input_buffer 回调的等效项是什么?

如何在 ConTeXt 中使用 LuaTeX 回调?(使用 LuaTeX 后端) 我主要关心的是 LuaTeX 和 LuaLaTeX 中可用的回调函数的使用process_input_buffer。我用它来修改编译后的源代码,以反映我国习惯的排版规则(可能普遍习惯),避免单字母前缀结束行。 下一个平均能量损失应该说明: 行尾的单字母前缀(应避免): \documentclass{article} \usepackage{xcolor} \begin{document} Filling text filling text filling text fill...

Admin

luatex nodelib color_stack 不适用于整个数学方程式
callback

luatex nodelib color_stack 不适用于整个数学方程式

当我使用 post_linebreak_filter 更改 hlist 的颜色时,一些方程式只有部分颜色!这是示例的图像和完整代码。如下所示,水平分割线仍然是黑色的…… \documentclass[notitlepage,letterpaper]{article} %\usepackage{lua-visual-debug} \usepackage[absolute]{textpos} \usepackage[letterpaper,left=2in,right=2in,top=1in,bottom=0in]{geometry} \usepack...

Admin

luatex 节点库:迭代 whatsit save_pos 以获取换行符的位置
callback

luatex 节点库:迭代 whatsit save_pos 以获取换行符的位置

马塞尔的回答解决了最初的问题。我在最初的问题下添加了他回答的后续问题。后续问题以类似的引文开头,内容是“后续问题从这里开始:” 我正在尝试学习 luatex 节点库,以下是我想作为实验做的事情: 在每一行文本中附加一个 whatsit save_pos 节点。 遍历所有 whatsis save_pos 节点以检索换行符/行尾的位置,并将其保存到某个数组中以在页面末尾或下一页开头使用。 我知道如何做 1,但不知道如何做 2(无法从 luatex 手册中找出如何做 2 的方法)。 据我所知,页面上的位置只有在页面处理的某个点之后才为人所知,...

Admin

使用 lualatex 写入自定义输出文件:挂钩写入过程的开始并替换不完全可扩展的宏
callback

使用 lualatex 写入自定义输出文件:挂钩写入过程的开始并替换不完全可扩展的宏

我正在编写包含信息的文档,这些信息在每一部分的末尾都有总结。为了避免重复编写,我习惯datatool在运行时创建“缓冲区”,当我需要时,可以从中再次检索和重新打印信息。 现在我还面临着将这些“缓冲区”的内容输出datatool到自定义文件的要求。从这个问题的先前问题(构造得不好,我要求删除它)的信息中,我知道有些命令无法完全展开。由于我使用 LuaLaTeX 进行排版,我想知道是否可以以某种方式挂接到写入过程(使用适当的回调)并用可扩展的变体替换不可扩展的命令(或将它们从“要写入文件的缓冲区”中删除)。 这些命令具体包括:\textbf和textit(从...

Admin

在 luatex 中标记单词的结尾 - 数学问题
callback

在 luatex 中标记单词的结尾 - 数学问题

我正在尝试使用 luatex 回调标记“单词”(包括标点符号)的结尾。(最后我想在这个位置注入空格字符,但示例使用了可视化规则)。 使用基于包\countwords中的一些代码chickenize,它工作得很好。我只在数学方面有问题:我想避免在那里得到分数。尝试使用属性集来做到这一点\everymath不起作用,如下面的代码所示:它还会影响其他地方,例如内部使用数学模式的表格。 有人知道如何从标记函数中排除“真实​​”数学吗? \documentclass{article} \usepackage{luacode,amsmath} \newattri...

Admin

在换行符处插入 LaTeX 代码(后续)
callback

在换行符处插入 LaTeX 代码(后续)

这是大卫·卡莱尔的回答此处(在换行符处插入 LaTeX 代码)。 除了字形节点之外,是否有办法借助插入(几乎)任意的 LaTeX 命令post_linebreak_filter? 例如,有没有办法插入自动递增计数器,甚至像下面的 mwe 一样“切成片”的段落? \documentclass{article} \usepackage{lipsum} \usepackage{luacode} \newcounter{countlines} \newcommand{\cntln}{\thecountlines\stepcounter{countlines...

Admin

为什么用户定义的 whatsit 会踢出字距调整?
callback

为什么用户定义的 whatsit 会踢出字距调整?

我在用用户定义的 whatsit 标记数学内容(在这个例子中,我将讨论简单的上标)时遇到了麻烦。如果 whatsit 位于字符之间(通常应放置 kern),则不会显示字体字距调整。 标记上标是在mlist_to_hlist回调中完成的,稍后(在pre_output_filter回调中)我正在处理节点列表,我需要知道上标从哪里开始/结束某物用它。 luatex 文档没有过多提及用户定义的 whatsis,但它们似乎应该是虚拟的,不应该影响输出。我尝试通过创建node.kerning()并添加到正确的位置来修复字距调整,但随后我需要一些如何重新计算所有外部框...

Admin

Lualatex,打印所有页面
callback

Lualatex,打印所有页面

我想在 Lualatex 中定义一种在每页后添加文本的方法。例如,添加一个在页面中间显示大印章的代码在文本之上(adbegshi执行类似操作,但它会在页面开头添加文本)显示当前页码。目前,以下代码仅在最后一页的末尾添加此内容。 注意:我不想使用外部文件并包含pdfpages页面,我希望在一个文件中找到解决方案。 梅威瑟: \documentclass{article} \usepackage{lipsum} \usepackage{tikz} \begin{document}% \lipsum[1-20] \begin{tikzpicture}[rem...

Admin

如何使用 LuaTeX `append_to_vlist_filter` 回调
callback

如何使用 LuaTeX `append_to_vlist_filter` 回调

我正在考虑通过 LuaTeX 回调解决自动网格排版问题。最相关的一个似乎是append_to_vlist_filter。(vpack也可以,我支持,但解决方案不太优雅) 但是,它似乎确实能正常工作。文档对其返回值的说明相当模糊。 function(<node> box, <string> locationcode, <number prevdepth>, <boolean> mirrored) return list, prevdepth end 可以不返回任何内容,在这种情况下,您还需...

Admin

luatex tex.print 不会触发 process_input_buffer 回调?
callback

luatex tex.print 不会触发 process_input_buffer 回调?

我定义了一个新的 LaTeX 命令来使用 LuaLaTeX 随机化类似 itemize 的列表,如下所示: \newcommand*\Randomize{% \directlua{% questions.itemstbl = {""} luatexbase.add_to_callback("process_input_buffer", questions.collect_lines, "collect_lines") }% } Lua 代码只是收集\Randomize和之间的所有行(项目) \EndRan...

Admin

作业结束时运行的回调
callback

作业结束时运行的回调

我的 Lua 初始化脚本打开了一些在运行过程中写入的文件。当 LuaTeX 处理完所有代码后,我还想向这些文件写入最后的一些字节。 似乎最好通过回调来实现这一点,但我还没有找到完全适合我需要的回调: stop_run(§7.1.5.3)有效,但是: 未以草稿模式运行(--draftmode); 替换默认的工作结束消息,我希望避免这样做; 尽管名字很诱人,但它似乎是用于信息报告的。 finish_pdffile(§7.1.6.1)有效,但是: 也不以草稿模式运行; 仅适用于 PDF 输出。我更喜欢与输出无关的解决方案。 查看当前版本的Lu...

Admin