0 票
661 次浏览

我正在尝试格式化一个逐词对照(interlinear)项目。基础文本是希腊语,带有乌尔都语注释。整体布局方向为从左到右,而乌尔都语注释则旨在以完全从右到左的方式显示在希腊语单词下方。一些乌尔都语注释中包含空格。

我已经成功设置了一个基本布局。乌尔都语(阿拉伯字母)文本如预期般从右向左流动。然而,我找不到一种方法来强制所有注释文本的流向完全从右到左。当出现空格时,布局似乎在空格持续期间恢复为从左到右。空格后的乌尔都语文本再次从右向左流动。结果是,在一个整体从左到右的布局中,出现了2或3个从右到左的乌尔都语字符串。

我想知道是否可以通过某种方式强制 gloss|rb 样式的方向性,但我没有在样式的字体配置中找到此选项。

然后我想,也许我可以在 changes.txt 中在所有空格(或者可能需要此处理的其他任何字符)之前添加从右到左标记(U+200F),例如:

in "\|.*?\\rb\*": " " > "\u200f "

这没有任何效果。

我知道上面的表达式在正确的位置应用了更改——因为如果我输出一个‘_’(下划线)来代替空格,那么乌尔都语文本的布局就是正常的(除了下划线!)。我尝试使用替代的空格字符,但它们也恢复为从左到右(这并不令人惊讶)。

image

上面的字符串应该像这样流动(使用下划线作为空格)

image

有没有其他人尝试过并给出任何指示?

Jeff

机器翻译自 English
PTXprint 中 由 [Expert]
(290 分) 发布
| 661 次浏览

6 个回答

0 票

嗨,Jeff,

我自己没做过这个,但想到了另外几件事可以尝试……

你试过所有的替代空格字符吗,包括不换行空格?别忘了‘窄不换行空格’(U+202F)。

你试过用零宽非连接符替换空格吗?(U+200C)它不会完全给你想要的效果,但可能更接近你想要的,或者是解决方案的一部分。

我做过很多涉及 RTL 标记的工作,即便如此,当我尝试应用它们时,有时我仍然会惊讶地发现它们没有出现在正确的位置。(也许我真的没有完全理解规则……) 所以我建议尝试所有其他组合 - 在你上面的更改中,将 \u200f 放在空格之后,放在空格的前后,在 \rb 之后立即插入一个,在字段结束之前等。可能其中一个组合会达到你想要的效果。(如果它给出了预期的结果,你不需要理解它!)

祝好运……

机器翻译自 English
由 (1.4k 分) 发布
0 票

这很可能不是处理这个问题的正确方法,但当我们处理类似你描述的情况时,我建议不使用阿拉伯正字法中的字形,而是使用一个仍然定义为 RTL 的字形,而不是试图解决方向公告字形的正确序列。

也就是说,在每个注释内的阿拉伯语单词之间,不要使用空格 \u0020,而是使用一个宽度相似但在 Unicode 中定义为 RTL 的东西……比如希伯来语 pasiq \u05c0。这使得问题变成了如何隐藏希伯来语标点符号,这可以通过将其涂成透明色来解决。

然而,在我提到的那个例子中,原因与阿拉伯语文本中的数字有关,由于某些字体问题,我们在转换过程中将它们标记为“意大利语”。这种“数字用意大利语”是一个与我们使用的字体一起的全局设置,而不是专门针对阿拉伯语排版的。这种语言变化导致了邻近的空格和标点符号问题。在那种情况下,最终的解决方案是将数字重新分类为另一种语言(但如果我记忆正确,仍然不是阿拉伯语。) 但这是为了建议,确保文本中的语言设置正确可能会影响字形的排列,而无需诉诸于像我建议的更奇特的修复方法。也就是说,编辑器似乎将空格解释为 ltr,这意味着它认为它们是希腊语,而不是阿拉伯语。 如果你确保用于注释文本的字符样式将所有字符定义为阿拉伯语,那可能就是你唯一需要做的。

机器翻译自 English
由 (108 分) 发布
0 票

我的第一个想法与 Jeff 的建议之一一致——我猜 U+200F 标记需要紧跟在单词之前,也就是说在空格之后,而不是之前。

我假设 \rb 部分中的文本方向只是由主语言的整体文本方向设置的,并且要覆盖它需要开发团队重新编程。

最后一个建议是尝试使用类似下划线的字符,但用与背景相同的颜色对其进行样式设置。所以也许像这样:
in "\|.*?\\rb\*": " " > "\\sc _\\sc\*"
然后给小型大写字母(Small Caps)样式设置该颜色。基本上可以是任何你否则不会使用的字符样式。

机器翻译自 English
由 (1.9k 分) 发布
已重新显示
0 票

感谢大家这些想法。

是的 - 我确实尝试了其他空格字符,它们确实导致不同大小的空格,但仍然会翻转方向。我尝试在空格的一侧或两侧(以及为了尝试一切 – 在任何字符串之前)添加 RTL 标记。

Jeff - 我确实尝试了零宽非连接符,它工作正常!(但不留空格)。我想我可以激活该字符,然后将其定义为一定量的胶水(空格)?我的 TeX 知识非常非常生疏,我不确定该如何着手。我尝试了:

\catcode`\‌=\active
\def‌{\bgroup\hskip 0.25em\egroup}

(在 \catcode `\ 和 \def 之后有一个 200c)

这有效 - 但它给出的结果与空格相同(我想这并不令人惊讶,因为它现在是一定量的空格)。

我还尝试了:

\catcode`\‌=\active
\def‌{\bgroup\beginR\hskip 0.25em\egroup}

这是一个不同的结果,但仍然不正确 – 我知道我现在是在这里瞎摸索。

Malachi - 我尝试了你的建议,但结果是 TeX 错误,我不会在这里粘贴。我认为那里的问题是它正在将 USFM 标记插入到 \rb ...|...\rb* 的属性部分中

既然我不能在那里添加标记,我想尝试用从右到左的字符代替空格并对其进行着色(Michael 的建议),但我真的不知道我在做什么。我尝试了以下内容,用 Paseq 代替空格:

\catcode`\׀=\active
\def׀{\bgroup\color{white}׀\egroup}

但我收到关于 ! Argument of \color has an extra } 的抱怨

我不知道如何使用\color,或者它是否甚至像这样可用,或者是语法问题。我知道我现在是在黑暗中摸索。

没有颜色的情况下,Paseq 本身实际上工作得很好!我希望有一个设置了 Right-To-Left 属性的空格字符。

感谢回复和想法。

Jeff

机器翻译自 English
由 [Expert]
(290 分) 发布
0 票

之前,我暗示我们在关注语言作为解决方案之前,正在寻求一种“方向公告”解决方案,以便在数字接近时(特别是在经文范围中)让逗号出现在‘正确’的单词之后。

LTR 和 RTL 覆盖字形被提供以强制编辑器以某种方式解释后续字形。 但它们会影响你使用它们的任何地方的显示(或者可能不影响……), 因此理解它们在文本流中的位置变得非常有趣。最终,在 Indesign CS6 中,当几个复杂的排版插件在起作用,并且有一个具有已知 opentype ‘features’ 的字体导致方向性问题时,它们仍然没有做到标签上所承诺的那样。

但如果你有能力向 PTX print 正则表达式提供 unicode " \u 字形,或者 html 实体 &…; 命名法而不是实际的字形,unicode 方向覆盖字形可能会起作用。即使你处理的是字形本身,它们在这种情况下也可能有效,但再次强调,这些字形会扰乱后续字形的显示顺序,几乎在任何地方出现都是如此,因此解释你实际看到的内容很棘手,并很快导致使用十六进制编辑器分析来恢复你的文件和理智。

机器翻译自 English
由 (108 分) 发布
+1 票

听起来我们需要一点帮助。我已经在逐词对照处理代码中添加了开始和结束钩子(hooks)。所以,理论上(所有未测试)你应该能够添加一行像:

\sethook{start}{gloss|rb}{\beginR}

然后一切都会好起来。

我刚刚提交了更改,所以它应该在下个版本 2.2.46 或更高版本中。至于我们是否需要为此提供一些 GUI,这取决于社区的请求。这又是另一个复选框。我们要‘又一个复选框’吗?

机器翻译自 English
由 (658 分) 发布

感谢添加帮助,Martin!

我今天下午安装了 2.2.46,并将 \sethook{start}{gloss|rb}{\beginR} 添加到 ptxprint-mods.tex。不幸的是 - 似乎没有效果。输出与之前相同 - 包括尝试在空格前添加 U+200F 或 U+202D。

机器翻译自 English

我刚刚在更新到 2.2.50 后再次尝试,现在乌尔都语注释中的正确 RTL 渲染正在工作。太棒了!

机器翻译自 English
我需要这个按钮!我的支持者找到了这个支持线程,这解决了问题。我认为对于任何制作带有阿拉伯字母注释的圣经文本逐词对照的人来说,这很可能都是必需的。
机器翻译自 English

相关问题

0 票
2 个回答 287 次浏览
一位顾问希望获得一份 PDF,其中一列显示文本的逐词对照(interlinear),另一列显示文本本身。我该如何在 PTXPrint 中实现这一点?我知道这是可行的,因为我见过其他人制作的 PDF,但不知道如何开始着手制作。我知道如何制作双语对照本(diglots)。
john_nystrom 312 发布 提问于 八月 14
+1 票
0 个回答 159 次浏览
如果您渴望测试新功能,您可能想要下载今天早些时候发布的 PTXprint 最新版本 1.5 版本的错误修复和改进包括: 字体选择和设置已完全重新设计,以实现更大的灵活性 花边边框现在对装饰的位置和缩放有更多控制 多项用户界面改进,以及样式 ... 决的问题将在明年得到解决 其中一个问题是双语文本和逐词对照文本目前还不能同时工作 但我们希望很快能修复这个问题
Mark P 3.2k 发布 提问于 十二月 23, 2020
0 票
1 个回答 489 次浏览
左栏底部的部分经文出现在 ParaText 中标记为表格的列表之后。
anon180868 195 发布 提问于 七月 11, 2024
PTXprint 中
0 票
1 个回答 251 次浏览
你好!在 PTXprint 中,我想使用 悬挂式诗节号 (Hanging Poetry Verse Numbers)选项,因为它看起来更整洁 在单栏排版中这没问题 但当我尝试使用双栏并选择 中缝垂直线 (Vertical Rule in Gutter)时,双位 ... 想到的唯一其他选项是移除这条线,但在某些情况下这可能会让读者感到困惑 非常感谢!Phil
anon913937 124 发布 提问于 十一月 18, 2025
0 票
10 个回答 1.1k 次浏览
我们在双栏布局方面遇到了一些问题。在某个地方,章节号覆盖在文本上方(2 Chr 5:1)。 在其他几个地方,文本超出了页边距。 Col 4 双栏覆盖776×410 104 KB 当我使用单栏布局时,这些问题不会出现。我们如何让双栏布局正常工作?是否还有其他需要设置的选项?或者是存在需要修正的编程错误?
rickarellanes 167 发布 提问于 八月 27, 2021
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
Just as a body, though one, has many parts, but all its many parts form one body, so it is with Christ.
1 Corinthians 12:12
3,065 个问题
6,025 个回答
5,697 条评论
2,036 位用户