Cara Menterjemah Dokumen LaTeX Tanpa Merosakkan Matematik, Petikan, atau Label
Apa yang perlu diterjemah dalam fail .tex, apa yang perlu dibiarkan, dan mengapa fail terjemahan boleh dikompil dengan bersih tetapi masih kehilangan teksnya. Dengan fail contoh, dua penyemak percuma, dan ujian LLM tempatan 9-larian.

Untuk menterjemah dokumen LaTeX, terjemahkan prosa dan argumen arahan yang menghadap pembaca, seperti tajuk bahagian, kapsyen, nota kaki, dan teks pautan. Biarkan arahan, nama persekitaran, kunci \label, \ref, dan \cite, matematik, dan blok verbatim tepat seperti asalnya. Kemudian lakukan satu perubahan yang tidak patut dilakukan oleh penterjemah untuk anda: sediakan mukadimah untuk bahasa sasaran, kerana fail yang mengekalkan mukadimah bahasa Inggeris boleh dikompil tanpa ralat dan masih menghasilkan PDF yang tiada teks terjemahan.
Perkara terakhir itu ialah hasil utama daripada ujian kecil. Kami menterjemah kertas LaTeX 98 baris ke bahasa Cina Ringkas sembilan kali dengan model tempatan, dalam tiga cara berbeza, dan menyemak setiap hasil dengan skrip dan pengkompil. Bahagian yang biasanya dibimbangkan bertahan dalam kesemua sembilan larian: label, rujukan, petikan, persamaan, URL, lajur jadual, dan pendakap kembali utuh, dan setiap rujukan silang berjaya diselesaikan. Masalahnya di tempat lain. Enam larian yang promptnya berkata "jangan ubah mukadimah" mematuhi arahan, dikompil dengan kod keluar 0, dan menghasilkan PDF yang langsung tiada teks Cina. Satu larian menggunakan peraturan "escape tanda %" kami di dalam penyenaraian kod, jadi PDF mencetak garis miring terbalik yang tersasar. Dan sekurang-kurangnya tiga larian mengubah makna ayat dengan cara yang tidak dapat dilihat oleh semakan struktur.
Jawapan Pantas: Apa yang Perlu Diterjemah dan Apa yang Perlu Dibiarkan
| Bahagian fail | Contoh daripada sampel kami | Terjemah? |
|---|---|---|
Mukadimah: \documentclass, \usepackage, \newcommand | \newcommand{\wpm}{\mathrm{wpm}} | Tidak, tetapi tambah persediaan bahasa sasaran sendiri (lihat di bawah) |
\title, \author, \date | \title{Estimating Reading Time for Translated Ebooks} | Tajuk dan tarikh ya; nama biasanya tidak |
| Tajuk | \section{Method}\label{sec:method} | Ya, teks dalam pendakap; kekalkan label |
| Label dan rujukan | \label{eq:time}, Section~\ref{sec:method}, \eqref{eq:time} | Kekalkan setiap kunci |
| Petikan dan kunci bibliografi | \cite{brysbaert2019}, \bibitem{rayner2016} | Kekalkan kunci; terjemah teks entri hanya jika bidang anda berbuat demikian |
| Matematik sebaris dan paparan | $r_c$, T = \frac{N}{r} | Tidak |
| Teks dalam matematik | \text{ for English silent reading.} | Ya. Ia dicetak sebagai teks biasa. |
| Makro yang mengambil teks | \term{characters per minute} | Terjemah argumen, kekalkan arahan |
| Kapsyen dan nota kaki | \caption{Reading rates used in this paper.} | Ya |
| Verbatim dan penyenaraian kod | shelfmark count --unit chars book.epub # 100% of body text | Tidak, termasuk komen di dalamnya |
\url dan argumen pertama \href | \href{https://example.org/shelfmark/survey}{online appendix} | Kekalkan URL; terjemah teks pautan |
| Aksara terlepas | 20\%, \$12, R\&D | Kekalkan garis miring terbalik dalam prosa |
Komen % | % TODO: replace the Chinese rate ... | Pilihan. Pembaca tidak pernah melihatnya. |
| Ikatan sebelum rujukan | Table~\ref{tab:rates} | Kekalkan dalam bahasa yang menggunakan ruang; pilihan dalam bahasa Cina dan Jepun |
Semua yang lain ialah prosa biasa: perenggan, abstrak, item senarai dan sel jadual.
Apa yang Kami Uji
Kami menulis sample-source.tex, sebuah kertas pendek rekaan tentang anggaran masa membaca untuk aplikasi fiksyen bernama Shelfmark. Ia dikompil dengan bersih dan mengandungi satu contoh setiap konstruk dalam jadual di atas, serta jadual booktabs, rajah dengan kapsyen, dua komen %, blok verbatim dengan % kosong di dalamnya, dan bibliografi sebaris.
Kemudian kami meminta model tempatan menterjemahkannya ke bahasa Cina Ringkas dalam tiga cara:
- Fail penuh. Tampal keseluruhan fail dan minta fail terjemahan yang masih boleh dikompil.
- Berarahan. Sama, tambah tujuh peraturan: jangan ubah prakata, kekalkan setiap arahan, persekitaran, label, rujukan dan kunci sitasi, biarkan matematik kecuali
\text{}, biarkan blok verbatim dan URL, kekalkan aksara khas terlepas, kekalkan ikatan, dan terjemah prosa, kapsyen, nota kaki dan teks pautan. - Segmen. Kekalkan prakata di luar permintaan sepenuhnya (hanya baris
\titledihantar, jadi\datekekal dalam bahasa Inggeris), pecahkan badan pada baris kosong, langkau blok verbatim, hantar setiap bahagian dengan peraturan yang sama, dan gabungkan semula.
Model itu ialah Qwen 3.6 27B (Q4_K_M) dalam LM Studio, dengan pemikiran dimatikan dan suhu 0.3, pada Apple M4 Max dengan memori 64 GB. Kami menjalankan setiap keadaan tiga kali, sembilan larian kesemuanya, pada 26 Oktober 2026. Skripnya ialah run_llm_latex_test.py, dan kesemua sembilan output diterbitkan tanpa suntingan dalam folder outputs. Jika anda belum pernah menyediakan model tempatan, panduan terjemahan LLM tempatan kami merangkumi tetapan tersebut.
Kami mengompil setiap output dengan Tectonic 0.17.0, yang menggunakan enjin XeTeX, sekali betul-betul seperti yang dikembalikan dan sekali dengan persediaan Cina ditambah pada prakata. Kemudian kami membaca semula teks daripada setiap PDF. Ini adalah ujian kecil satu model, satu pasangan bahasa, dan satu fail. Ia menunjukkan masalah yang berlaku dan cara menangkapnya. Ia tidak menyenaraikan kedudukan model atau gesaan.
Keputusan: Struktur Bertahan; Prakata Menentukan Sama Ada Teks Muncul
check_latex_translation.py membandingkan setiap output dengan sumber, dan compile_check.py mengompilnya. Output penuh ada dalam check-results.txt dan compile-results.txt, dan results.csv mempunyai satu baris setiap larian.
| Semak | Fail penuh | Diarahkan | Segmen |
|---|---|---|---|
| Label, rujukan, sitasi, dan kunci bibliografi tidak berubah | 3 daripada 3 | 3 daripada 3 | 3 daripada 3 |
Matematik tidak berubah (teks dalam \text{} diterjemah) | 3 daripada 3 | 3 daripada 3 | 3 daripada 3 |
| URL, pendakap, dan lajur jadual kekal utuh | 3 daripada 3 | 3 daripada 3 | 3 daripada 3 |
| Model menambah pakej Cina pada prakata | 3 daripada 3 | 0 daripada 3 | 0 daripada 3 |
| Dikompil seperti yang dikembalikan | 3 daripada 3 | 3 daripada 3 | 3 daripada 3 |
| Teks Cina benar-benar ada dalam PDF seperti yang dikembalikan | 3 daripada 3 | 0 daripada 3 | 0 daripada 3 |
| Blok verbatim tidak diubah | 3 daripada 3 | 2 daripada 3 | 3 daripada 3 |
Komen % dikekalkan dalam bahasa Inggeris | 3 daripada 3 | 3 daripada 3 | 1 daripada 3 |
| Setiap rujukan dan sitasi dapat diselesaikan selepas menambah persediaan bahasa Cina | 3 daripada 3 | 3 daripada 3 | 3 daripada 3 |
Pemeriksa kami pada mulanya melaporkan perubahan matematik dalam larian pertama. Matematik itu betul: susunan perkataan bahasa Cina telah meletakkan $N$ sebelum $r$ dalam satu ayat. Pemeriksa yang diterbitkan membandingkan segmen matematik sebagai koleksi tidak tersusun atas sebab ini, jadi penyusunan semula dibenarkan tetapi simbol yang berubah tidak.
1. "Jangan sentuh prakata" menghasilkan PDF tanpa bahasa Cina di dalamnya
Peraturan prakata kedengaran seperti arahan paling selamat yang boleh anda berikan. Prakata sampel kami memuatkan amsmath, booktabs, dan hyperref serta mentakrifkan tiga makro, dan tiada satu pun daripada itu perlu diterjemah. Jadi larian yang diarahkan dan segmen membiarkannya begitu sahaja, tepat seperti yang diberitahu.
Tetapi fon lalai dalam persediaan LaTeX standard tidak mempunyai aksara Cina. Kesemua enam fail itu dikompil dengan kod keluar 0. Tectonic memang memberi amaran, sekali bagi setiap aksara yang hilang, dengan baris seperti Missing character: There is no 估 (U+4F30) in font [lmroman17-regular], dan fail log merekodkan antara 554 hingga 577 amaran sedemikian setiap larian. Tetapi amaran tidak menghentikan pembinaan. Apabila kami mengekstrak teks daripada enam PDF itu, ia mengandungi nama pengarang, nombor, dan matematik, dan sifar aksara Cina. Tiga PDF keseluruhan fail mengandungi 481 hingga 490. Skrip binaan yang hanya menyemak sama ada kompilasi berjaya, atau seseorang yang hanya mengimbas hujung output, akan telah menghantar kesemua enam itu.
Tiga larian keseluruhan fail, yang tidak mempunyai peraturan sedemikian, menambah \usepackage{ctex} sendiri, dan PDF mereka lengkap. Itu bukan alasan untuk membiarkan model menulis semula prakata anda. Itu adalah alasan untuk melihat persediaan bahasa sasaran sebagai sebahagian daripada kerja terjemahan, dilakukan sekali, oleh anda:
- Bahasa Cina: muatkan ctex, yang menyokong pdfLaTeX, XeLaTeX, dan LuaLaTeX. Secara lalai ia memilih fon untuk sistem pengendalian anda; log kami menunjukkan ia memuatkan set fon macOS. Jika fail itu perlu dikompil dengan cara yang sama pada mesin lain,
\usepackage[UTF8,fontset=fandol]{ctex}menggunakan fon Fandol percuma yang diedarkan bersama TeX Live, yang juga dimuat turun oleh Tectonic atas permintaan. Itulah yang ditambah olehcompile_check.py. - Bahasa lain: muatkan babel dengan bahasa sasaran, supaya pemisahan suku kata dan perkataan terjana seperti "Figure," "Table," dan "Abstract" mengikut bahasa baharu. Bahasa Jepun, Korea, dan bahasa kanan-ke-kiri masing-masing memerlukan persediaan tersendiri.
Selepas mengompil, semak log untuk Missing character dan baca PDF, bukan sekadar kod keluar. Kami hanya menguji XeTeX melalui Tectonic; enjin lain melaporkan fon yang hilang secara berbeza.
2. Peraturan melarikan aksara bocor ke dalam penyenaraian kod
Arahan kami menyatakan supaya aksara khas dikekalkan dilindungi, dan dalam prosa itu peraturan yang betul: % kosong dalam LaTeX memulakan komen dan secara senyap menelan seluruh baris yang tinggal. Kesemua sembilan larian mengekalkan 20\% dalam abstrak.
Dalam larian pertama yang diarahkan, model itu juga menggunakan peraturan di dalam blok verbatim dan menterjemah ulasan kod di situ:
source: shelfmark count --unit chars book.epub # 100% of body text
translation: shelfmark count --unit chars book.epub # 100\% 正文
Di dalam verbatim, tiada apa-apa yang merupakan arahan, jadi PDF mencetak 100\% dengan garis miring terbalik. Pembetulannya bukanlah gesaan yang lebih baik. Jangan sekali-kali menghantar blok verbatim, lstlisting, atau minted kepada penterjemah sama sekali, seperti yang dilakukan oleh keadaan segmen. Kemudian terjemah sebarang ulasan di dalamnya secara manual jika pembaca anda memerlukannya.
3. Ulasan mengikut sempadan permintaan
Fail itu mempunyai dua ulasan %: nota di atas takrifan makro dan TODO di atas penyenaraian kod. Larian keseluruhan fail dan larian berarahan membiarkan kedua-duanya dalam bahasa Inggeris. Keadaan segmen menterjemah TODO itu dalam dua daripada tiga larian, kerana TODO itu kebetulan berada dalam blok yang sama dengan perenggan yang kami hantar untuk diterjemah. Dua larian keseluruhan fail juga menambah ulasan mereka sendiri selepas pakej yang mereka sisipkan.
Semua ini tidak mengubah PDF. Ia penting jika sumber terjemahan dihantar semula kepada penulis bersama atau repositori, di mana TODO yang diterjemah tidak lagi sepadan dengan asal dan ulasan tambahan muncul dalam setiap perbezaan. Pemeriksa melaporkan ulasan yang diterjemah sebagai amaran supaya anda boleh membuat keputusan.
4. Semakan struktur lulus tetapi makna masih berubah
Abstrak menyatakan "label yang tersasar 20% masih berguna." Dalam tiga daripada sembilan larian, teks Cina menyatakan bahawa label dengan ralat dalam 20% masih berguna, yang mengubah toleransi menjadi ambang. Beberapa larian lain menyusun semula ayat itu sehingga klausa "walaupun" terikat pada idea yang salah, dan satu menjadi sukar difahami. Ini adalah penilaian oleh seorang pembaca yang membandingkan teks Cina dengan bahasa Inggeris, bukan semakan buta, tetapi perkara pokoknya tidak bergantung pada kiraan tepat: setiap semakan struktur lulus pada fail-fail itu, kerana 20\%, makro, dan pendakap semuanya betul.
Dua perubahan lain adalah wajar tetapi perlu diketahui. Larian keseluruhan fail menulis \$12 sebagai 12美元 ("12 dolar AS"), yang menghapuskan persoalan melar sepenuhnya. Dua larian keseluruhan fail juga menggugurkan kebanyakan ikatan ~ sebelum \ref dan \cite. Itu tidak berbahaya dalam bahasa Cina, yang tidak meletakkan ruang antara perkataan, tetapi dalam bahasa yang meletakkannya, ikatan yang hilang membolehkan pemisah baris memisahkan "Jadual" daripada nombornya. Pemeriksa melaporkan ikatan sebagai amaran, bukan kegagalan.
Semakan struktur memberitahu anda fail itu masih berfungsi. Ia tidak dapat memberitahu anda kertas itu masih menyatakan perkara yang sama. Untuk itu, gunakan bacaan dwibahasa bagi abstrak, dakwaan, dan nombor, seperti yang diterangkan dalam panduan kami untuk menyemak kertas penyelidikan terjemahan.
Aliran Kerja yang Tahan Uji
-
Dapatkan sumber, dan semak apa yang boleh anda lakukan dengannya. Di arXiv, kertas yang dihantar dalam TeX biasanya menawarkan sumber melalui pautan Source pada halaman abstrak atau halaman Other formats, sebagai fail gzip atau arkib tar apabila terdapat beberapa fail (bantuan arXiv). Menterjemah untuk bacaan sendiri adalah satu perkara. Menerbitkan terjemahan adalah perkara lain: lesen bukan eksklusif arXiv sendiri mengehadkan penggunaan semula oleh orang lain, manakala CC BY dan CC BY-SA membenarkan adaptasi dengan atribusi, dan CC BY-NC-ND tidak. Tanya penulis jika ragu-ragu.
-
Kompil asal terlebih dahulu. Jika ia tidak dikompil sebelum terjemahan, apa-apa yang anda pelajari selepas itu tidak boleh dipercayai. Simpan PDF asal untuk perbandingan.
-
Tetapkan bahasa sasaran dalam prakata sendiri. Tambah
ctexataubabelseperti di atas, kompil sekali dengan teks bahasa Inggeris, dan komit perubahan itu secara berasingan. -
Terjemah badan tanpa prakata dan tanpa blok verbatim. Gunakan alat yang menghuraikan LaTeX, atau hantar badan secara berbahagian dengan peraturan eksplisit, seperti dalam keadaan segmen kami. TransLaTeX, alat sumber terbuka yang dibina untuk ini, menggantikan konstruk LaTeX dengan token sebelum menghantar teks kepada penterjemah mesin. Dokumentasinya juga menyatakan ia membiarkan pengepala dokumen tidak disentuh, tidak menyokong makro, dan mengendalikan dokumen fail tunggal sahaja, tanpa
\input. Malah alat khusus pun menyerahkan keputusan prakata kepada anda. -
Jalankan semakan struktur pada setiap pasangan fail.
python3 check_latex_translation.py main.tex main-zh.tex --keep ShelfmarkIa membandingkan prakata, nama arahan, susunan persekitaran, label, rujukan, sitasi, kunci bibliografi, matematik, blok verbatim, URL,
%,&, dan#yang tidak dilindungi, keseimbangan pendakap, ikatan, ulasan, dan sebarang istilah yang anda minta untuk dikekalkan. Jangkakan baris prakata gagal selepas langkah 3 apabila anda membandingkan dengan asal; bandingkan dengan fail bahasa Inggeris yang dikemas kini sebaliknya. Untuk projek yang terbahagi kepada beberapa fail\input, semak setiap pasangan. -
Kompil dan baca PDF.
python3 compile_check.py main-zh.texIa melaporkan rujukan tidak selesai (
??), sitasi tidak selesai ([?]), dan glif yang hilang. Kemudian buka PDF dan baca abstrak, setiap kapsyen, dan setiap jadual berbanding asal. -
Lakukan bacaan dwibahasa bagi dakwaan dan nombor. Di sinilah tiga ayat yang berubah dalam ujian kami akan ditangkap. Simpan glosari terjemahan yang pendek untuk istilah teknikal kertas itu supaya istilah yang sama tidak diterjemah dalam tiga cara berbeza.
Kedudukan BookTranslator
Penterjemah dokumen BookTranslator menerima fail .tex bersama PDF, DOCX, EPUB, Markdown, dan format berstruktur lain. Soalan Lazimnya menyatakan hasilnya dikembalikan dalam "fail yang boleh digunakan dan sesuai dengan format apabila format itu menyokongnya."
Halaman produk tidak menerangkan cara ia mengendalikan makro LaTeX, matematik, atau prakata, dan kami tidak menjalankan sampel ini melalui BookTranslator untuk artikel ini. Walau apa pun alat yang anda gunakan, lakukan langkah 1 hingga 3 sebelum menterjemah dan langkah 5 hingga 7 selepasnya. Fail yang mengekalkan prakata bahasa Inggeris sahaja masih akan dikompil tanpa teks Cina, dan dakwaan yang berubah masih akan lulus setiap semakan struktur.
Jika anda hanya mempunyai PDF kertas itu, bukan sumbernya, aliran kerjanya berbeza: lihat panduan kami untuk menterjemah kertas penyelidikan sambil mengekalkan strukturnya. Jika sumber anda ialah Markdown dan bukan LaTeX, pemisahan yang sama antara jentera dan prosa terpakai, dengan perangkap yang berbeza; kami mengujinya dalam Cara Menterjemah Fail Markdown.
Dapatkan Fail Ujian
Semua daripada ujian ini bebas untuk digunakan semula:
- sample-source.tex: sampel bahasa Inggeris 98 baris;
- check_latex_translation.py: penyemak struktur (hanya pustaka standard Python);
- compile_check.py: menyusun setiap fail seperti yang dikembalikan dan dengan persediaan bahasa Cina, serta mengira rujukan tidak selesai, sitasi tidak selesai, dan glif yang hilang (memerlukan Tectonic dan pdftotext);
- run_llm_latex_test.py: tiga syarat gesaan untuk mana-mana pelayan tempatan serasi OpenAI;
- sembilan output dalam folder outputs, bersama check-results.txt, compile-results.txt, dan results.csv.
Catatan Berkaitan





