0 suara
523 tampilan

Halo semua,

Saya ingin meminta bantuan Anda untuk membuat Alkitab Referensi.
Kami memiliki teks Alkitab dengan referensi silang.

Secara default, urutan referensi silang adalah
“callee - nomor ayat - referensi”
seperti “a 1 Mzm 102:25; Yes 40:21; Yoh 1:1,2; Ibr 1:10”

Saya ingin mengubahnya agar bab diletakkan di awal, kemudian mengumpulkan semua callee di bawah ayat yang sama, seperti Alkitab referensi biasa, seperti
“Bab 1
1 a Mzm 102:25; Yes 40:21; Yoh 1:1,2; Ibr 1:10 b Mzm 89:11; 90:2; Kis 17:24; Rom 1:20; Ibr 11:3 c Ayb 38:4…”

Saya rasa beberapa skrip diperlukan. Apakah ada yang bisa membantu?

Diterjemahkan secara otomatis dari English
PTXprint oleh (102 poin)
ditampilkan kembali | 523 tampilan

6 Jawaban

0 suara

Hmm. Ya, ini hampir pasti hanya bisa dilakukan dengan memproses kode secara pra-pemrosesan (preprocessing). Yang pertama di bab akan mendapatkan teks ‘Bab’ tambahan, dan seterusnya. Mencoba melakukan ini di TeX akan sangat sulit.

Andaikan Anda akan menjalankan ulang proses setiap kali menggunakan pilihan dari teks, maka seharusnya itu berjalan baik. Kode saat ini bekerja dengan membangun daftar pemicu (trigger list) untuk menerapkan daftar eksternal, yang berisi entri seperti ini:

\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

Anda dapat membuat file pemicu Anda sendiri daripada membiarkan python melakukannya dengan program manipulasi teks apa pun yang Anda sukai - perl, python, atau bahkan sed adalah hal-hal yang akan saya pertimbangkan, dari dunia unix.
Apa yang akan Anda masukkan ke bagian USFM dari file untuk menghasilkan format yang Anda inginkan, saya tidak 100% yakin. Tidak seharusnya ada masalah dengan memiliki beberapa pemicu pada satu
ayt, jadi Anda tidak perlu menggabungkan baris Anda, tetapi saya perkirakan Anda akan membutuhkan beberapa penanda khusus untuk menghasilkan callee yang disuperskrip.

Tetapi saya berasumsi Anda tidak menginginkan caller di dalam teks, salahkah saya? Contoh Anda memilikinya… Bagaimana pembaca menghubungkan callee dengan kata tersebut? Apakah Anda benar-benar ingin menggabungkan referensi silang Anda ke tengah teks Alkitab? Saya perkirakan itu harus menjadi proses manual atau setidaknya semi-manual.

Diterjemahkan secara otomatis dari English
oleh (1,1k poin)

Halo,

Saya rasa penjelasan saya tidak cukup.
Teks kami memiliki referensi silang di tengah teks, seperti

\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Бурхан тэнгэр ба газрыг бүтээжээ.

Kemudian, hasilnya seperti ini:
タイトルなし

Jadi, pertanyaan saya adalah mengubah urutan dan menggabungkan callee di luar ayat yang sama.

Diterjemahkan secara otomatis dari English
0 suara

Jadi, jika saya dapat merumuskan ulang apa yang saya pahami sekarang… yang ingin Anda lakukan adalah memproses data \xo dengan melakukan hal berikut:

  1. Menambahkan catatan kosong dengan (bab yang diberi anotasi) di awal catatan saat ini jika itu berbeda dengan yang terakhir. (mis. \x - \xo Chapter 2\x* \x + \xo 1 \xt ...\*)
  2. Hanya mencetak nomor ayat jika itu berbeda dengan referensi terakhir.
  3. Menghapus sepenuhnya entri \xo jika identik dengan yang terakhir.

Saya yakin saya bisa menulis ini dalam perl, tetapi tidak cukup menguasai python. Apakah Anda menginginkan skrip perl atau tidak akan bergantung pada hal-hal seperti sistem operasi apa yang dijalankan oleh Anda dan rekan-rekan Anda (perl hampir pasti tersedia di linux, tetapi tidak, menurut saya, biasanya di windows).

Diterjemahkan secara otomatis dari English
oleh (1,1k poin)

Ya, tepat.
Saya menggunakan Perl di Windows, jadi tolong buat skrip perl untuk itu.
Terima kasih.

Diterjemahkan secara otomatis dari English

Ini tampaknya berhasil. Anda harus mengganti baris pertama dengan apa pun yang diperlukan di 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;
        }
}
Diterjemahkan secara otomatis dari English

Terima kasih. Skrip Anda berjalan dengan baik di Windows tanpa masalah apa pun.
Hasilnya adalah ini:
タイトルなし
Sekarang, saya ingin mengubah urutannya. Hasil sejauh ini adalah
“callee - nomor ayat - referensi” seperti “а 1 Иох 1:1,2; Евр 1:10”,
Saya ingin
“nomor ayat - callee - referensi” seperti “1 а Иох 1:1,2; Евр 1:10” seperti di posting pertama saya.
Juga, bisakah semua callee dalam satu ayat berada dalam satu baris?
Apakah Anda punya ide?

Diterjemahkan secara otomatis dari English
0 suara

Jika Anda ingin mencapai ini, Anda perlu melakukan sedikit pemrograman, untuk:

  1. Mengambil semua referensi silang dari sebuah ayat ke dalam satu referensi silang, baik di SFM maupun di file pemicu, dan kemudian menghapusnya dari dalam teks
  2. Mengubah posisi referensi silang di dalam teks menjadi titik label sederhana dengan label tetap yang sesuai (sehingga terlihat seperti jangkar referensi silang, tetapi tidak ada referensi silang)
  3. Mengambil label-label yang sama tersebut ke dalam referensi silang kompleks yang Anda miliki di awal ayat.
  4. Matikan semua callee baik di dalam teks maupun di catatan.
Diterjemahkan secara otomatis dari English
oleh (656 poin)
0 suara

Untuk membantah Martin (sedikit), skripnya mungkin bisa dimodifikasi untuk memberi Anda sesuatu yang mendekati. Saya tidak yakin persis bagaimana itu akan ditampilkan. Jika Anda membuatnya mengatakan:

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

Maka mirip dengan cara Anda mendapatkan catatan kaki kosong yang mengatakan Bab X, Anda kemudian akan mendapatkan catatan kaki kosong yang mengatakan Y (di catatan kaki pertama pada ayat Y) dan kemudian sisa dari catatan kaki ke-1 di ayat itu. Catatan kaki lainnya tidak akan memiliki nomor bab atau ayat. TETAPI Anda akan perlu mengaktifkan catatan berparagraf dan mungkin perlu mengubah beberapa hal seperti spasi antar-catatan kaki (saya tidak ingat namanya, tetapi saya pikir itu ada di antarmuka pengguna sekarang). Setelah Anda mengaktifkan catatan berparagraf, Anda tidak akan mendapatkan ayat Y di baris sendiri, kecuali Anda menyertakan beberapa perintah TeX mentah dalam apa yang dikeluarkan oleh perl. (mengawalkan isi catatan kaki untuk ayat Y dengan \penalty -10000\space mungkin sudah cukup).

Mungkin, pada suatu titik dalam latihan ini, maka mengutak-atik seperti ini akan mencapai batasnya, dan baik jawaban Martin akan menjadi cara yang benar untuk melakukannya, atau perubahan yang sangat signifikan pada kode TeX (yang kemungkinan akan merusak proyek orang lain) akan diperlukan.

Di sisi TeX, Anda perlu ‘mencuri’ makro \xo dan membuatnya menafsirkan parameter bab:ayat sebagai nilai, sebelum mereka masuk ke aliran keluaran, dan kemudian melakukan perbandingan dan definisi ulang keluaran di TeX. Bahayanya adalah jika seseorang memiliki \xo yang tidak selalu diikuti oleh bab:ayat, dan sebaliknya memiliki bab.ayat atau sejenisnya, kode akan memberikan kesalahan yang aneh dan tidak terduga.
Mendefinisikan makro yang robust di TeX itu sulit, dan tidak ada standar yang mendefinisikan apa yang akan dimasukkan orang ke dalam \xo (juga tidak ada jaminan bahwa mereka hanya menggunakannya dalam referensi silang!).
Setelah berpikir lebih lanjut, sebenarnya akan jauh lebih baik untuk mendefinisikan makro Anda sendiri dengan terminator yang didefinisikan, yang pada gilirannya dipecahkan menjadi \xo, daripada mencuri \xo.
mis. \def\zmyxrefstyle#1:#2\*{comparisonde} untuk mengatur awalan apa pun ke callee.
Tentu saja, Anda masih harus membuat kode generator caller catatan kaki menempatkan nomor bab dan / atau nomor ayat sebelum callee. Saya menduga itu akan memakan waktu sekitar setengah minggu pemrograman dan debugging setidaknya, tetapi mungkin ada hal-hal yang saya lupakan yang akan mendorongnya menjadi satu minggu atau 3.

Tanpa panggilan yang sangat jelas dari beberapa pengguna, kecil kemungkinannya kami akan menemukan waktu untuk melakukan ini dalam waktu satu tahun ke depan.

Diterjemahkan secara otomatis dari English
oleh (1,1k poin)
0 suara

Berikut adalah cara yang saya pikirkan pagi ini. Kita perlu menulis milestone baru, misalnya \zcaller* yang bisa disisipkan dalam referensi silang / catatan kaki agar ptxprint menyisipkan pemanggil (caller) pada titik tersebut. Kemudian \x - \xo 1\xt Gen 1:1\x* menjadi \x - \xo 1\xt \zcaller*Gen 1:1\x* dan kemudian matikan output pemanggil catatan. Ini melibatkan tim pengembang dalam beberapa pekerjaan, tetapi jauh lebih sederhana daripada halaman-halaman pemikiran sejauh ini!

Diterjemahkan secara otomatis dari English
oleh (656 poin)
0 suara

Ini masih tidak akan menghilangkan angka 1 yang ganda jika ada beberapa referensi silang dalam satu ayat. Tetapi itu hanya masalah menghapus \xo dari referensi silang berikutnya dalam satu ayat.

Diterjemahkan secara otomatis dari English
oleh (656 poin)

Pertanyaan terkait

+1 suara
1 jawaban 179 tampilan
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 bertanya Feb 10, 2021
0 suara
9 jawaban 628 tampilan
Saat mencetak modul untuk bahasa berbasis skrip Arab, saya menyadari bahwa referensi ayat dicetak dengan tidak benar. ... saya melihat kesalahan yang sama di judul paralel passage.
Jim_Smith 131 bertanya Okt 3, 2023
0 suara
4 jawaban 282 tampilan
Saya menggunakan PTXprint 1.9. File USFM yang saya kerjakan memiliki catatan kaki tetapi tidak menyertai penanda \fr ... . Apakah saya melewatkan pengaturan itu di suatu tempat?
da4396 126 bertanya Jul 22, 2021
0 suara
1 jawaban 38 tampilan
Saya sedang mengerjakan publikasi satu buku. Di masa lalu, untuk buku tunggal, saya bisa menempatkan header dengan ... Apa lagi yang bisa saya lakukan untuk memecahkan masalah?
Rebecca Peak 102 bertanya Jun 25
0 suara
1 jawaban 151 tampilan
Halo semua! Saya sedang mencetak bagian Alkitab dengan Rentang Referensi (Reference Range) di header. Di beberapa halaman ... tengah ayat 12-15. Terima kasih atas bantuannya! André
Andre_Tousch 116 bertanya Apr 15, 2021
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
They devoted themselves to the apostles’ teaching and to fellowship, to the breaking of bread and to prayer.
Acts 2:42
3,044 pertanyaan
6,004 jawaban
5,671 komentar
2,026 pengguna