0
540 次瀏覽

我正在為一批研經本內容建立輸出。在此版面中,所有註釋都是左對齊的段落,並帶有懸掛縮排。

讓我感到困惑的是,如何告訴 PTXPrint / TeX 我不希望出現行尾平衡(balancing of lines)的情況。您可以在下方截圖中看到我的意思,請參閱 1.8 和 1.22。某些行還有大量空間可以容納更多文字。

如果將這些段落的樣式設為「兩端對齊」(Justified),這個問題就會消失(盡可能多地將文字填入該行)。

image

我已經嘗試調整這些段落樣式的「最大參差空間」(Maximum Ragged Space)。可以進行微小的調整(除非我設為零,否則 PTXPrint 基本上會將文字兩端對齊)。

image

我還需要做什麼,才能讓行在換行之前盡可能填滿行寬(measure)?

機器翻譯自 English
PTXprint [Expert]
(290 點) 提出
| 540 次瀏覽

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 = 總計 28)– 因此文字寬度為 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。謝謝你。

如果我可以的話,我想在這裡分享一個觀點,儘管它可能有些主觀。我認為「對齊:左對齊」預設應該意味著剛性設定。我認為這可能是選擇未對齊文字的人所預期的 – 而且它以潛在最具可讀性的形式呈現文字(該觀點關注的是單字間距的一致性)。當然,非常參差的左(或右)邊緣可能是可讀性的問題,這可能與較窄的行長有關。可以透過連字號(hyphenation)來緩和這一點,也許還透過一個「柔化未對齊 / 參差邊緣?」的選項,該選項將對單字間距應用一些伸縮性以創造更平滑的邊緣。

再次 – 這是關於預設值的想法。我相信還有其他觀點。無論如何 – 擁有一個簡單的方法來實現「剛性」將非常有用。

機器翻譯自 English
[Expert]
(290 點) 提出

如果您真的、真的希望每行盡可能多地放置文字,無論外觀有多糟糕,您可以將 \adjdemerits=0 來阻止 TeX 嘗試平衡縮短的行與拉長的行。如果您使用連字號,請將 \doublehyphendemerits=0 和 \finalhyphendemerits=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 提出 已提問 10月 21, 2025
0
1 個回答 91 次瀏覽
為了錄音,我希望將每位朗讀者要朗讀的章節印在獨立的頁面上,並確保段落不會被拆分到不同的頁面 透過在 changes.txt 中加入 '\\c ' > '\\pb\\c ',將每個章節印在新的一頁上,這個方法運作得很好 (感謝我在這 ... 個提示!) 然而,我還沒找到防止段落跨頁的方法 有辦法做到這一點嗎?這將對我非常有帮助! 感謝任何幫助! Roland
Roland 245 提出 已提問 3月 10, 2025
0
5 個回答 529 次瀏覽
我正在嘗試列印雙語版(diglot),但結果出現了孤行段落 看起來 PTXprint 是將段落並排排列,而不是將節(verses)並排 在下方的範例中,左側專案有一個非常長的段落,而右側專案多了一個 ... 法可以解決這個問題嗎?(除了修改 Paratext 檔案之外?) Screenshot 2021-04-22 1638341301 922 129 KB
anon043588 110 提出 已提問 4月 22, 2021
0
2 個回答 310 次瀏覽
問候大家! 我總是更新到最新版的 PTXprint,因為它簡單又實用。現在我正在處理《使徒行傳》,使用的是緬甸文。 「對齊段落」(Justify Paragraphs)功能只在序言部分有效,但在正文部分(即第 1 章到第 28 章)卻不起作用。 有人能幫我解決這個問題嗎?非常感謝。 祝福, anon952029
David Tuallawt 287 提出 已提問 12月 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 提出 已提問 11月 8, 2019
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
And let us consider how we may spur one another on toward love and good deeds, not giving up meeting together, as some are in the habit of doing, but encouraging one another—and all the more as you see the Day approaching.
Hebrews 10:24-25
3,047 個問題
6,007 個回答
5,671 則評論
2,027 位使用者