0
524 次瀏覽

大家好,

我想請大家幫忙製作一本參考聖經。
我們有一份帶有交叉引用的聖經文本。

預設的交叉引用順序是
「被引用標記 - 節號 - 引用內容」
例如「a 1 詩 102:25; 賽 40:21; 約 1:1,2; 來 1:10」

我想將其改為先顯示章節,然後將同一節下的所有被引用標記歸併在一起,就像普通的參考聖經那樣,例如
「第 1 章
1 a 詩 102:25; 賽 40:21; 約 1:1,2; 來 1:10 b 詩 89:11; 90:2; 徒 17:24; 羅 1:20; 來 11:3 c 伯 38:4…」

我想這需要一些腳本。有人能提供幫助嗎?

機器翻譯自 English
PTXprint (102 點) 提出
已重新顯示 | 524 次瀏覽

6 個回答

0

Hmm. Yes, this can almost certainly only be done by preprocessing the code. The first in the chapter gets additional ‘Chapter’ text and so on. Trying to do this in the TeX would be very hard.

Assuming that you will re-run the process any time you use selections from the text, then it should work OK. The current code works by building a trigger list to apply the external lists, which holds entries like this:

\AddTrigger MAT28.15
\x - \xo 28:15 \xt Mt 9:31; 27:8\x*
\EndTrigger

\AddTrigger MAT28.19
\x - \xo 28:19 \xt Mt 13:52; 24:14; Mk 16:15-16; Lk 24:47; Acts 1:8; 2:38; 8:16; 14:21; Rom 6:3; 1 Cor 1:13; 2 Cor 13:14; Gal 3:27\x*
\EndTrigger

You can make your own trigger files instead of letting python do it with whatever text manipulation program you like - perl, python, or even sed would be things I’d consider, from the unix world.
Quite what you’d put into the USFM portion of the file to generate the format you want, I’m not 100% certain. There shouldn’t be a problem with having multiple triggers on one
verse, so you don’t need to merge your lines together, but I expect you’ll need some custom markers to generate the superscripted calees.

But I’ve been assuming you don’t want callers in the text, am I wrong about that? Your example has them… How does the reader connect the callee with the word? Do you actually want to merge your xrefs into the middle of the Biblical text? I expect that would need to be a manual or at best semi-manual process.

(1.1k 點) 提出

你好,

我想我的解釋不夠清楚。
我們的文本在正文中間有交叉引用,例如

\v 1 \x + \xo 1:1 \xt Иох 1:1,2; Евр 1:10\xЭхэнд \x + \xo 1:1 \xt Дуу 8:3; 33:6; 89:11,12; 102:25; 136:5; 146:6; Иса 44:24; Иер 10:12; 51:15; Зех 12:1; Үйл 14:15; 17:24; Кол 1:16,17; Евр 11:3; Илч 4:11; 10:6\xБурхан тэнгэр ба газрыг бүтээжээ.

然後,結果如下所示:
タイトルなし

所以,我的問題是更改順序並合併同一節下的被引用標記。

機器翻譯自 English
0

那麼,如果我重新陳述一下我現在的理解……您想要做的是處理 \xo 數據,執行以下操作:

  1. 如果當前註釋的章節與上一個不同,則在當前註釋前添加一個包含(帶註釋的)章節的空註釋。(例如 \x - \xo Chapter 2\x* \x + \xo 1 \xt ...\*
  2. 只有當節號與上一個引用不同時,才打印節號。
  3. 如果 \xo 條目與上一個完全相同,則完全刪除該條目。

我肯定可以用 perl 寫這個,但我對 python 不夠熟悉。您是否需要 perl 腳本取決於您和同事使用的操作系統等情況(perl 在 linux 上幾乎肯定可用,但我認為在 windows 上通常不可用)。

機器翻譯自 English
(1.1k 點) 提出

是的,完全正確。
我在 Windows 上使用 Perl,所以請為其製作一個 perl 腳本。
謝謝。

機器翻譯自 English

這似乎可以運作。您必須將第一行替換為 Windows 上所需的內容。

#!/usr/bin/perl -w
# This little script answers a request https://community.scripture.software.sil.org/t/cross-references-in-reference-bible/3470/2 "
# * Prepend to the current note a null note with the (annontated) chapter if that is different to the last one. (e.g. \x - \xo Chapter 2\x* \x + \xo 1 \xt ...\*)
# * Only print the verse number if that is different to the last reference.
# * Entirely delete the \xo entry if it is identical to the last one.
#
# It assumes that all xo entries are in the format chapter:verse, and that verses in xref \xo entries are only numeric. 

use strict;
my $chapter='';
my $verse='';

$\=''; # Swallow whole file as one chunk
$/='';
sub beautify {
        my ($c,$v)=@_;
        if ($c ne $chapter) {
                $chapter=$c;
                $verse='';
                print "\\x - \\xo Chapter $c\\x*";
        }
        if ($v ne $verse) {
                $verse=$v;
                "\\xo $v";
        }
}

while(my $file=(<>)) {
        foreach my $chunk (split(/(\\x.*?\\x\*)/, $file)) {
                $chunk=~s/\\xo (\d+):(\d+)/beautify($1,$2)/e;
                print $chunk;
        }
}
機器翻譯自 English

謝謝。您的腳本在 Windows 上運作良好,沒有任何問題。
結果如下:
タイトルなし
現在,我想更改順序。目前的結果是
「被引用標記 - 節號 - 引用內容」,例如「а 1 Иох 1:1,2; Евр 1:10」,
我想要
「節號 - 被引用標記 - 引用內容」,例如「1 а Иох 1:1,2; Евр 1:10」,如我第一帖所示。
另外,同一節中的所有被引用標記可以放在同一行嗎?
您有什麼想法嗎?

機器翻譯自 English
0

如果您想實現這一點,您需要進行一些編程,以:

  1. 將一節中的所有交叉引用提取到一個交叉引用中,無論是在 SFM 中還是在觸發器文件中,然後從文本中移除它們
  2. 將文本中的交叉引用位置轉換為帶有合適固定標籤的簡單標籤點(看起來像交叉引用錨點,但沒有交叉引用)
  3. 將這些相同的標籤提取到該節開頭的複雜交叉引用中。
  4. 關閉文本和註釋中的所有被引用標記(callees)。
機器翻譯自 English
(656 點) 提出
0

為了稍微反駁一下 Martin,腳本可能可以修改以給出接近的結果。不過,我不確定它具體會如何顯示。如果您讓它說:

     if ($v ne $verse) {
                $verse=$v;
                print "\\x - \\xo $v\\*";
        }

那麼,類似於您獲得一個顯示 Chapter X 的空腳註,您將獲得一個顯示 Y 的空腳註(在節 Y 的第一個腳註上),然後是該節中第一個腳註的其餘部分。其他腳註將不會有章節或節號。但是您需要開啟分段註釋(paragraphed notes),並且可能需要更改一些內容,例如腳註間距(我想不起它叫什麼了,但我認為現在它在用戶界面中)。一旦您開啟了分段註釋,除非您在 perl 輸出的內容中包含一些原始 TeX 命令,否則您不會看到節 Y 單獨佔一行。(在節 Y 的腳註內容前綴 \penalty -10000\space 可能就足夠了)。

很可能,在這個練習的某個階段,這樣取巧的做法會達到其極限,此時要么 Martin 的答案將成為正確的做法,要么需要對 TeX 代碼進行非常顯著的更改(這可能會破壞其他人的項目)。

在 TeX 方面,您需要「劫持」 \xo 宏,讓它在進入輸出流之前將章節:節參數解釋為值,然後在 TeX 中進行比較和輸出重定義。危險在於,如果有人有一個 \xo 並非總是後跟 chapter:verse,而是 chapter.verse 或類似格式,代碼會給出奇怪且預料不到的錯誤。
在 TeX 中定義健壯的宏是很困難的,而且沒有標準定義人們會在 \xo 中放入什麼(也沒有保證他們只在交叉引用中使用它!)。
再想想,實際上最好定義一個帶有定義終止符的自定義宏,該宏進而解析為 \xo,而不是劫持 \xo。
例如 \def\zmyxrefstyle#1:#2\*{comparisonde} 來設置被引用標記的前綴。
當然,您仍然必須讓腳註引用標記生成器代碼在被引用標記之前放置章節號和/或節號。我猜測這至少需要半週的編程和除錯,但可能還有我忘記的事情會將其推遲到一週或三週。

除非有多個用戶非常明確地要求,否則我們不太可能在未來一年內找到時間來做這件事。

機器翻譯自 English
(1.1k 點) 提出
0

這是我今天早上想出來的一個方法。我們需要撰寫一個新的里程碑,例如 \zcaller*,讓使用者可以將其插入到交叉引用或腳註中,以便 ptxprint 能在該位置插入引用來源。接著,\x - \xo 1\xt Gen 1:1\x* 就會變成 \x - \xo 1\xt \zcaller*Gen 1:1\x*,然後關閉輸出引用來源的功能。這需要開發團隊投入一些工作,但比目前這些長篇大論的想法簡單多了!

機器翻譯自 English
(656 點) 提出
0

不過,如果節中有多個交叉引用,它仍然無法消除多個 1。但這只需要刪除該節中後續交叉引用中的 \xo 即可。

機器翻譯自 English
(656 點) 提出

相關問題

+1
1 個回答 179 次瀏覽
I'm not sure if this is a bug or not, but since I just spent a while trying to solve a problem that I knew ... \toc1, even though I was several chapters and verses into the book.
anon297911 424 提出 已提問 2月 10, 2021
0
9 個回答 628 次瀏覽
在為阿拉伯文字系統語言列印模組時,我注意到經文引用的列印順序不正確 以下是我的模組 SFM 檔案中的內容: \s God creates the world \r ($(GEN 1:1-27)) \ref GEN 1:1-27 以下是我從 ... 章節號 冒號 起始節數 連字號 結束節數 現在我仔細查看,發現平行經文標題中也有同樣的錯誤
Jim_Smith 131 提出 已提問 10月 3, 2023
0
4 個回答 282 次瀏覽
I am using PTXprint 1.9. The USFM file I am working with has footnotes but doesn't include the \fr marker. It ... footnote in the notes area. Have I missed that setting somewhere?
da4396 126 提出 已提問 7月 22, 2021
0
1 個回答 38 次瀏覽
我正在處理一個單卷書籍的出版物 過去在處理單卷書籍時,我曾經能夠設定一個包含參考範圍但不含書名的頁眉 現在,無論位置(頁眉或頁腳)如何,我甚至無法讓參考範圍顯示出來 我安裝了最新版本的 PTXprint (3.0.33) 和 Paratext ... 支援代理建議尋找隱藏頁眉的選項,但我沒有看到任何可以開關此功能的選項 還有什麼其他方法可以進行故障排除?
Rebecca Peak 102 提出 已提問 6月 25
0
1 個回答 151 次瀏覽
大家好! 我正在列印包含頁首參考範圍(Reference Range)的經文片段 在某些頁面上,章節號碼後會插入一個不必要的連字號,如下圖所示: image645 899 168 KB 這個問題並不常發生,例如在那本 50 頁的 ... verse)中間結束的,例如在上方的例子中,頁面在第 12-15 節中間結束 感謝您的幫助! André
Andre_Tousch 116 提出 已提問 4月 15, 2021
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
For we were all baptized by one Spirit so as to form one body—whether Jews or Gentiles, slave or free—and we were all given the one Spirit to drink.
1 Corinthians 12:13
3,044 個問題
6,004 個回答
5,671 則評論
2,026 位使用者