0
542 次浏览

我正在为一组研究圣经内容创建输出。在此布局中,所有注释都是左对齐的段落,并带有悬挂缩进。

让我困惑的是,如何告诉 PTXPrint / TeX 我不希望发生某种行平衡(balancing of lines)。你可以在下面 1.8 和 1.22 的截图中看到我的意思。有些行还有足够的空间容纳更多文本。

如果我将这些段落的样式设置为两端对齐(Justified),这个问题就会消失(尽可能多的文本会被放入该行)。

image

我尝试调整这些段落样式的最大参差空间(Maximum Ragged Space)。可以进行微小的更改(除非我应用零值,否则 PTXPrint 基本上会将文本两端对齐)。

image

我还需要做什么才能让行在换行之前尽可能填满版心宽度(measure)?

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

9 个回答

0

你好 @jklassen!是的,那看起来确实很奇怪,我(目前)还不确定是什么导致了这种情况。我尝试调整了另一本研究圣经的设置,发现它按我的预期工作(承认这是 \ef 扩展脚注的双栏布局,而不是单栏布局):

我想知道你是否尝试将最大参差空间(Maximum Ragged Space)增加到类似 .65 的值,看看这是否能让最后一行包含更少的单词,而第一行填充得更多一些,就像你期望的那样。

如果这不能解决问题,我们就得等待看看 @David_Gardner 或 @Martin_Hosken 对此有什么说法。

机器翻译自 English
(3.2k 分) 发布
0

我赞同 Mark 的建议:将最大参差空间(maximum ragged space)一直推到 0.5 或更高。它会尝试更多的断行方案,但它仍会尝试将文本放入尽可能少的行中,这样做也会允许段落最后一行有更多的空间。

当前的代码允许段落最后一行包含额外的“参差”(raggedness)空间,而且它非常不喜欢接近该参差度的极限。正如你所见,如果你不允许“参差度”变得明显,你就是在要求它两端对齐文本。实际上,你是在要求它完全两端对齐文本,包括最后一行。

如果你在 ptxprint-mods.tex 文件中输入 \tracing{j},那么你的日志将包含大量额外内容,与此问题相关的有趣行看起来会像这样:

s@tsideskips p (p). 0.0pt/0.0pt, pf=0.0pt plus 1.0fil
s@tsideskips s1 (s1). 0.0pt plus 158.52597pt/0.0pt plus 158.52597pt, pf=0.0pt

前两个是左侧/右侧允许的缩进加参差度。

最后一个是 \parfillskip,它是段落最后一行允许的空间量的度量(对于 p 来说可以是无限大,对于居中的 s1 来说没有额外空间)。(也许这有点苛刻??它基本上说它不应该关心最后一行是否是最长的)

s@tsideskips q2 (q2). 21.68065pt/0.0pt plus 79.26299pt, pf=0.0pt plus 79.26299p
t

对于右参差(ragged-right)的 q2,我看到参差度是 79.26pt,最后一行可以有额外的 79.26 点,所以如果允许最后一行有超过 169.5 点的空间,它会非常不满意。

机器翻译自 English
(1.1k 分) 发布

感谢 Mark 和 David 考虑这个问题,以及 David 关于 TeX 如何运作的详细说明。

我有用于注释的段落,我为其创建了一个名为 \zefp 的标记。我将其设置为悬挂缩进(左缩进系数为 0.18em,首行为 -0.18)。

页面尺寸是 A4(210mm 宽 - 14mm 页边距 = 总共 28mm)– 所以文本宽度为 182mm

如果我保留默认的“最大参差空间”(max ragged space)0.25,日志显示:

s@tsideskips zefp (zefp). 10.40648pt/0.0pt plus 129.46004pt, pf=0.0pt plus 129.
46004pt

(最后一行最大约 45mm 的空间)

如果我将最大参差空间设置为 0.65,日志显示:

s@tsideskips zefp (zefp). 10.40648pt/0.0pt plus 336.59294pt, pf=0.0pt plus 336.
59294pt

(最后一行最大约 118mm 的空间)

我想,这解释了为什么 TeX 不允许 1:8 注释的第二行更多部分保留在第一行。

image

我该如何配置才能将“p”所允许的属性(根据 David 对 pf=0.0pt plus 1.0fil 的描述)应用于我发明的 \zefp?我也想允许最后一行有“无限”的空间。

机器翻译自 English
0

嗯。我尝试通过电子邮件回复,但被退回了。

1.0 fil 目前应用于两端对齐的段落。我感觉我们可能需要一些额外的设置。

我不明白为什么 0.65 不够大。也许它是与栏宽而不是当前宽度进行比较??但无论如何,看起来你可能需要将“参差度”(raggedness)推到 1.0(甚至 2?就 TeX 而言,这只是数学问题,但我预计用户界面不会满意,你可能必须使用 ptxprint-mods.sty 来放入该设置)。

如果那不起作用,你可能可以添加一个类似这样的钩子(hook):

\sethook{zefp}{end}{\hskip 0pt plus 1fil }

(假设我参数顺序正确)

机器翻译自 English
(1.1k 分) 发布
0

感谢与我一起探索这个问题,David。

我无法将参数设置得高于 1。我尝试过,但这不会引起任何变化。

我尝试了钩子。(我需要反转位置和标记的顺序 :slight_smile:

\sethook{end}{zefp}{\hskip 0pt plus 1fil}

但没有变化。我确信钩子是有效的,因为我可以在那里插入一些文本并让它显示出来 – 如果我插入足够多的额外文本,该段落第一行的一些文本开始移到第二行(为了更平衡)。

机器翻译自 English
[Expert]
(290 分) 发布
+1

这令人沮丧。TeX 确实会丢弃行尾的内容(例如,这样你在两端对齐文本的行尾就不会出现空格),我想这里发生的就是这种情况。所以,再试几次:

% Option1: set the paragraph fill to what we want, then end the paragraph before the code can put it back (this might break things):
\sethook{end}{zepf}{\parfillskip=0pt plus 1fil \endgraf} 
% Option 2: No line break, Lots of stretch, no line break and then a zero width line(which will neither be visible nor discarded).
\sethook{end}{zepf}{\penalty 10000\hskip 0pt plus 1fil \penalty10000\vrule width 0pt depth 0pt height 1pt}
机器翻译自 English
(1.1k 分) 发布
0

谢谢你,David。

这两个建议都有效!我保留了选项 1 处于启用状态。

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

感谢你们每个人坚持追求直到找到解决方案。MH 几天前非常接近相同的解决方案,但没有那个最终的 \endgraf,似乎没有任何区别。我很高兴我们现在有了具体的前进方向。

我也在考虑我们是否需要在 PTXprint 中的某个地方有一个开关,使这成为针对一个或多个(一系列)标记的默认行为。

机器翻译自 English
(3.2k 分) 发布
0

其中包含 \endgraf 的问题在于,在某些情况下它会导致问题。在普通文本中可能没问题,但只是可能。

我认为“唯一正确的解决方案”可能是拥有更多的对齐选项:
1: 两端对齐, 2: 右对齐, 3 右刚性,
4: 居中, 5: 居中刚性, 6: 左对齐,
7: 左刚性, 8: 左填充, 9: 左刚性填充
(其中刚性 = 刚性空格)
image

我加入了“刚性”选项,考虑到有些人可能会认为这与左/右参差选项相配。

请注意,据我所知,没有办法在右对齐段落的最后一行拥有任何额外的“填充”,这就是为什么 2,3 中的行与 6,7 中的行不同。

机器翻译自 English
(1.1k 分) 发布
0

我很感激这些解决方案,David。谢谢你。

如果我可以的话,我想在这里分享一个观点,尽管它可能有些主观。我认为“对齐:左对齐”(Alignment: Left)默认应该意味着刚性设置。我认为这是选择未两端对齐文本的人可能预期的 – 并且它以潜在最易读的形式呈现文本(在该视图中,一致的单词间距是关注点)。当然,非常参差的左(或右)边缘可能是可读性问题,这可能与较窄的行长有关。可以通过连字符断词来软化这一点,也许还可以通过一个“软化未两端对齐/参差边缘?”的选项,该选项会对单词间距应用一些可伸缩性以创建更平滑的边缘。

再次 – 关于默认值的想法。我相信还有其他观点。无论如何 – 拥有一种简单的方法来实现“刚性”将会非常有帮助。

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

如果您真的、真的希望每行尽可能多地容纳文字,而不管排版效果有多糟糕,您可以将 \adjdemerits=0 设置为 0,以阻止 TeX 尝试平衡收缩行和拉伸行。如果您使用了连字符,请将 \doublehyphendemerits=0 和 \finalhyphendemerits=0 设置为 0。默认情况下,所有这些值都设置为 10000,这听起来很多,但考虑到这些是“扣分”(demerits,即罚分的平方),在罚分(penalty)术语中大约相当于 100。
但是,就像在合成器中调整声音一样,很容易做出让效果变差的更改!您确实问了如何在一行中放入尽可能多的内容!愿这丑陋的输出后果由您自己承担 :slight_smile:

机器翻译自 English

相关问题

0
1 个回答 20 次浏览
I have read through "Glossary Best Practices" (https://support.bible/3952/glossary-best-practices?show=3952#q3952). The information ... 'off', I'd sure appreciate it! Thanks, Paul
Paul 642 发布 提问于 十月 21, 2025
0
1 个回答 91 次浏览
为了录音,我希望将每位读者的章节打印在单独的页面上,并且确保段落永远不会被拆分到两页。 通过在 changes.txt 中添加 '\\c ' > '\\pb\\c ',将每一章打印在新的一页上效果很好。(感谢我在本论坛找到的这个提示!) 然而,我还没有找到防止段落跨页的方法。有办法实现这一点吗?我觉得这会非常有帮助! 感谢任何帮助! Roland
Roland 245 发布 提问于 三月 10, 2025
0
5 个回答 529 次浏览
我正在尝试打印双栏版(diglot),但结果出现了孤立段落 看起来 PTXprint 是将段落并排放置,而不是按节(verses)对齐 在下面的示例中,左侧项目有一个非常长的段落,而右侧项目多了一个 ... 法可以解决这个问题吗?(除了修改 Paratext 文件之外?) Screenshot 2021-04-22 1638341301 922 129 KB
anon043588 110 发布 提问于 四月 22, 2021
0
2 个回答 310 次浏览
大家好! 我总是更新到最新版本的 PTXprint,因为它简单且实用。现在我正在处理《使徒行传》,使用的是缅甸文。 “段落两端对齐”(Justify Paragraphs)功能仅在引言部分有效,但在正文部分(即第 1 章至第 28 章)无效。 如果有人能帮我解决这个问题,我将不胜感激。 祝好, anon952029
David Tuallawt 287 发布 提问于 十二月 4, 2021
0
3 个回答 287 次浏览
Hello, Anytime I use the \ip Introduction - Paragraph marker in Paratext, the words turns grey. I would be grateful if you can help me correct it. Thank you. anon878803
anon878803 132 发布 提问于 十一月 8, 2019
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
I appeal to you, brothers and sisters, in the name of our Lord Jesus Christ, that all of you agree with one another in what you say and that there be no divisions among you, but that you be perfectly united in mind and thought.
1 Corinthians 1:10
3,047 个问题
6,007 个回答
5,672 条评论
2,027 位用户