Cara Menerjemahkan Dokumen LaTeX Tanpa Merusak Matematika, Sitasi, atau Label
Apa yang harus diterjemahkan dalam file .tex, apa yang harus dibiarkan, dan mengapa file terjemahan bisa dikompilasi dengan bersih tetapi tetap kehilangan teksnya. Dengan file contoh, dua pemeriksa gratis, dan uji LLM lokal 9 kali jalan.

Untuk menerjemahkan dokumen LaTeX, terjemahkan prosa dan argumen perintah yang dibaca pembaca, seperti judul bagian, keterangan, catatan kaki, dan teks tautan. Biarkan perintah, nama lingkungan, kunci \label, \ref, dan \cite, matematika, serta blok verbatim persis seperti aslinya. Lalu lakukan satu perubahan yang tidak boleh dilakukan penerjemah mana pun untuk Anda: siapkan preamble untuk bahasa target, karena file yang mempertahankan preamble bahasa Inggrisnya bisa dikompilasi tanpa kesalahan dan tetap menghasilkan PDF dengan teks terjemahan yang hilang.
Poin terakhir itu adalah hasil utama dari sebuah uji kecil. Kami menerjemahkan makalah LaTeX 98 baris ke bahasa Mandarin Sederhana sembilan kali dengan model lokal, dalam tiga cara berbeda, dan memeriksa setiap hasil dengan skrip dan kompiler. Bagian yang biasanya dikhawatirkan orang bertahan di kesembilan percobaan: label, referensi, sitasi, persamaan, URL, kolom tabel, dan kurung kurawal kembali utuh, dan setiap referensi silang berhasil diselesaikan. Masalahnya ada di tempat lain. Enam percobaan yang prompt-nya mengatakan "jangan ubah preamble" patuh, terkompilasi dengan kode keluar 0, dan menghasilkan PDF tanpa teks Mandarin sama sekali. Satu percobaan menerapkan aturan "escape tanda %" kami di dalam daftar kode, sehingga PDF mencetak garis miring terbalik yang nyasar. Dan setidaknya tiga percobaan menggeser makna sebuah kalimat dengan cara yang tidak bisa dilihat oleh pemeriksaan struktural mana pun.
Jawaban Singkat: Apa yang Diterjemahkan dan Apa yang Dibiarakan
| Bagian dari file | Contoh dari sampel kami | Terjemahkan? |
|---|---|---|
Preamble: \documentclass, \usepackage, \newcommand | \newcommand{\wpm}{\mathrm{wpm}} | Tidak, tetapi tambahkan sendiri pengaturan bahasa target (lihat di bawah) |
\title, \author, \date | \title{Estimating Reading Time for Translated Ebooks} | Judul dan tanggal ya; nama biasanya tidak |
| Judul bagian | \section{Method}\label{sec:method} | Ya, teks di dalam kurung kurawal; pertahankan label |
| Label dan referensi | \label{eq:time}, Section~\ref{sec:method}, \eqref{eq:time} | Pertahankan setiap kunci |
| Kunci sitasi dan bibliografi | \cite{brysbaert2019}, \bibitem{rayner2016} | Pertahankan kuncinya; terjemahkan teks entri hanya jika bidang Anda melakukannya |
| Matematika inline dan display | $r_c$, T = \frac{N}{r} | Tidak |
| Teks di dalam matematika | \text{ for English silent reading.} | Ya. Itu tercetak sebagai teks biasa. |
| Makro yang menerima teks | \term{characters per minute} | Terjemahkan argumennya, pertahankan perintahnya |
| Keterangan dan catatan kaki | \caption{Reading rates used in this paper.} | Ya |
| Verbatim dan daftar kode | shelfmark count --unit chars book.epub # 100% of body text | Tidak, termasuk komentar di dalamnya |
\url dan argumen pertama \href | \href{https://example.org/shelfmark/survey}{online appendix} | Pertahankan URL; terjemahkan teks tautan |
| Karakter yang di-escape | 20\%, \$12, R\&D | Pertahankan backslash dalam prosa |
Komentar % | % TODO: replace the Chinese rate ... | Opsional. Pembaca tidak pernah melihatnya. |
| Tanda hubung non-putus sebelum referensi | Table~\ref{tab:rates} | Pertahankan dalam bahasa yang menggunakan spasi; opsional dalam bahasa Mandarin dan Jepang |
Semua lainnya adalah prosa biasa: paragraf, abstrak, item daftar, dan sel tabel.
Yang Kami Uji
Kami menulis sample-source.tex, sebuah makalah pendek rekaan tentang perkiraan waktu baca untuk aplikasi fiktif bernama Shelfmark. Berkas ini dikompilasi dengan bersih dan berisi satu contoh setiap konstruksi dalam tabel di atas, ditambah tabel booktabs, gambar dengan keterangan, dua komentar %, blok verbatim dengan % polos di dalamnya, dan daftar pustaka sebaris.
Kemudian kami meminta model lokal untuk menerjemahkannya ke bahasa Mandarin Sederhana dengan tiga cara:
- Seluruh berkas. Tempel seluruh berkas dan minta berkas terjemahan yang masih dapat dikompilasi.
- Dengan instruksi. Sama seperti di atas, ditambah tujuh aturan: jangan ubah preamble, pertahankan setiap perintah, environment, label, referensi, dan kunci sitasi, biarkan matematika kecuali
\text{}, biarkan blok verbatim dan URL, pertahankan karakter khusus yang di-escape, pertahankan tanda hubung non-putus, dan terjemahkan prosa, keterangan, catatan kaki, serta teks tautan. - Segmen. Jauhkan preamble dari permintaan sepenuhnya (hanya baris
\titleyang dikirim, sehingga\datetetap dalam bahasa Inggris), pisahkan isi pada baris kosong, lewati blok verbatim, kirim setiap bagian dengan aturan yang sama, dan susun kembali.
Model yang digunakan adalah Qwen 3.6 27B (Q4_K_M) di LM Studio, dengan thinking dimatikan dan temperature 0,3, pada Apple M4 Max dengan memori 64 GB. Kami menjalankan setiap kondisi tiga kali, total sembilan kali, pada 26 Oktober 2026. Skripnya adalah run_llm_latex_test.py, dan kesembilan keluaran diterbitkan tanpa diedit di folder outputs. Jika Anda belum pernah menyiapkan model lokal, panduan terjemahan LLM lokal kami mencakup pengaturannya.
Kami mengompilasi setiap keluaran dengan Tectonic 0.17.0, yang menggunakan mesin XeTeX, sekali persis seperti yang dikembalikan dan sekali dengan pengaturan bahasa Mandarin ditambahkan ke preamble. Lalu kami membaca kembali teks dari setiap PDF. Ini adalah uji kecil untuk satu model, satu pasangan bahasa, dan satu berkas. Ini menunjukkan masalah apa yang terjadi dan cara menangkapnya. Ini tidak memeringkat model atau prompt.
Hasil: Struktur Bertahan; Preamble Menentukan Apakah Teks Muncul
check_latex_translation.py membandingkan setiap keluaran dengan sumber, dan compile_check.py mengompilasinya. Keluaran lengkap ada di check-results.txt dan compile-results.txt, dan results.csv memiliki satu baris per eksekusi.
| Pemeriksaan | Seluruh berkas | Diinstruksikan | Segmen |
|---|---|---|---|
| Label, referensi, sitasi, dan kunci bibliografi tidak berubah | 3 dari 3 | 3 dari 3 | 3 dari 3 |
Matematika tidak berubah (teks di dalam \text{} diterjemahkan) | 3 dari 3 | 3 dari 3 | 3 dari 3 |
| URL, kurung kurawal, dan kolom tabel tetap utuh | 3 dari 3 | 3 dari 3 | 3 dari 3 |
| Model menambahkan paket bahasa Mandarin ke preamble | 3 dari 3 | 0 dari 3 | 0 dari 3 |
| Dapat dikompilasi sesuai hasil yang dikembalikan | 3 dari 3 | 3 dari 3 | 3 dari 3 |
| Teks Mandarin benar-benar ada di PDF sesuai hasil yang dikembalikan | 3 dari 3 | 0 dari 3 | 0 dari 3 |
| Blok verbatim tidak berubah | 3 dari 3 | 2 dari 3 | 3 dari 3 |
Komentar % dibiarkan dalam bahasa Inggris | 3 dari 3 | 3 dari 3 | 1 dari 3 |
| Setiap referensi dan sitasi terselesaikan setelah menambahkan pengaturan bahasa Mandarin | 3 dari 3 | 3 dari 3 | 3 dari 3 |
Pemeriksa kami awalnya melaporkan adanya perubahan matematika pada proses pertama. Matematikanya baik-baik saja: urutan kata bahasa Mandarin telah menempatkan $N$ sebelum $r$ dalam satu kalimat. Pemeriksa yang diterbitkan membandingkan segmen matematika sebagai kumpulan tak berurutan karena alasan ini, sehingga penataan ulang diperbolehkan tetapi perubahan simbol tidak.
1. "Jangan sentuh preamble" menghasilkan PDF tanpa bahasa Mandarin di dalamnya
Aturan preamble terdengar seperti instruksi paling aman yang bisa Anda berikan. Preamble sampel kami memuat amsmath, booktabs, dan hyperref serta mendefinisikan tiga makro, dan tidak ada satu pun dari itu yang perlu diterjemahkan. Jadi proses yang diinstruksikan dan proses segmen membiarkannya saja, persis seperti yang diperintahkan.
Namun font bawaan dalam pengaturan LaTeX standar tidak memiliki karakter Mandarin. Setiap dari enam file tersebut berhasil dikompilasi dengan kode keluar 0. Tectonic memang memberi peringatan, sekali per karakter yang hilang, dengan baris seperti Missing character: There is no ä¼° (U+4F30) in font [lmroman17-regular], dan file log mencatat antara 554 dan 577 peringatan per proses. Tetapi peringatan tidak menghentikan build. Ketika kami mengekstrak teks dari keenam PDF tersebut, isinya hanya nama penulis, angka, dan matematika, dan nol karakter Mandarin. Tiga PDF seluruh file berisi 481 hingga 490 karakter Mandarin. Skrip build yang hanya memeriksa apakah kompilasi berhasil, atau orang yang hanya membaca sekilas akhir keluaran, akan mengirimkan keenam file itu.
Tiga proses seluruh file, yang tidak memiliki aturan tersebut, menambahkan \usepackage{ctex} sendiri, dan PDF mereka lengkap. Itu bukan alasan untuk membiarkan model menulis ulang preamble Anda. Itu adalah alasan untuk melihat pengaturan bahasa target sebagai bagian dari pekerjaan penerjemahan, dilakukan sekali, oleh Anda:
- Bahasa Mandarin: muat ctex, yang mendukung pdfLaTeX, XeLaTeX, dan LuaLaTeX. Secara bawaan ia memilih font untuk sistem operasi Anda; log kami menunjukkan ia memuat set font macOS. Jika file harus dikompilasi dengan cara yang sama di mesin lain,
\usepackage[UTF8,fontset=fandol]{ctex}menggunakan font Fandol gratis yang didistribusikan bersama TeX Live, yang juga diunduh Tectonic sesuai permintaan. Itulah yang ditambahkancompile_check.py. - Bahasa lain: muat babel dengan bahasa target, sehingga pemenggalan kata dan kata-kata yang dihasilkan seperti "Figure," "Table," dan "Abstract" mengikuti bahasa baru. Bahasa Jepang, Korea, dan bahasa kanan-ke-kiri masing-masing memerlukan pengaturan sendiri.
Setelah kompilasi, periksa log untuk Missing character dan baca PDF-nya, bukan hanya kode keluar. Kami hanya menguji XeTeX melalui Tectonic; mesin lain melaporkan font yang hilang secara berbeda.
2. Aturan escaping bocor ke dalam daftar kode
Instruksi kami mengatakan untuk menjaga karakter khusus tetap di-escape, dan dalam prosa itu adalah aturan yang tepat: % telanjang dalam LaTeX memulai komentar dan diam-diam menelan sisa baris. Kesembilan proses mempertahankan 20\% dalam abstrak.
Pada percobaan pertama dengan instruksi, model juga menerapkan aturan di dalam blok verbatim dan menerjemahkan komentar kode di sana:
source: shelfmark count --unit chars book.epub # 100% of body text
translation: shelfmark count --unit chars book.epub # 100\% æ£æ–‡
Di dalam verbatim, tidak ada yang berupa perintah, jadi PDF mencetak 100\% dengan garis miring terbalik. Solusinya bukan prompt yang lebih baik. Jangan pernah mengirim blok verbatim, lstlisting, atau minted ke penerjemah sama sekali, seperti yang dilakukan kondisi segmen. Lalu terjemahkan komentar di dalamnya secara manual jika pembaca Anda membutuhkannya.
3. Komentar mengikuti batas permintaan
File tersebut memiliki dua komentar %: catatan di atas definisi makro dan TODO di atas daftar kode. Percobaan seluruh file dan dengan instruksi membiarkan keduanya dalam bahasa Inggris. Kondisi segmen menerjemahkan TODO dalam dua dari tiga percobaan, karena TODO kebetulan berada di blok yang sama dengan paragraf yang kami kirim untuk diterjemahkan. Dua percobaan seluruh file juga menambahkan komentar mereka sendiri setelah paket yang mereka sisipkan.
Semua ini tidak mengubah PDF. Ini penting jika sumber terjemahan dikembalikan ke rekan penulis atau repositori, di mana TODO yang diterjemahkan tidak lagi cocok dengan aslinya dan komentar tambahan muncul di setiap diff. Pemeriksa melaporkan komentar yang diterjemahkan sebagai peringatan agar Anda dapat memutuskan.
4. Pemeriksaan struktural lolos dan makna tetap berubah
Abstrak menyatakan "label yang meleset 20% masih berguna." Dalam tiga dari sembilan percobaan, versi Tionghoa mengatakan bahwa label dengan kesalahan dalam 20% masih berguna, yang mengubah toleransi menjadi ambang batas. Beberapa percobaan lain mengubah urutan kalimat sehingga klausa "meskipun" melekat pada gagasan yang salah, dan satu menjadi sulit diikuti. Ini adalah penilaian oleh satu pembaca yang membandingkan bahasa Tionghoa dengan bahasa Inggris, bukan tinjauan tersamar, tetapi intinya tidak bergantung pada jumlah pastinya: setiap pemeriksaan struktural lolos pada file-file tersebut, karena 20\%, makro, dan kurung kurawal semuanya benar.
Dua perubahan lain tidak masalah tetapi perlu diketahui. Percobaan seluruh file menulis \$12 sebagai 12美元 ("12 dolar AS"), yang menghilangkan pertanyaan escaping sepenuhnya. Dua percobaan seluruh file juga menghilangkan sebagian besar pengikat ~ sebelum \ref dan \cite. Itu tidak berbahaya dalam bahasa Tionghoa, yang tidak memberi spasi antar kata, tetapi dalam bahasa yang memberi spasi, pengikat yang hilang memungkinkan pemisah baris memisahkan "Tabel" dari nomornya. Pemeriksa melaporkan pengikat sebagai peringatan, bukan kegagalan.
Pemeriksaan struktural memberi tahu Anda bahwa file masih berfungsi. Itu tidak dapat memberi tahu Anda bahwa makalah masih mengatakan hal yang sama. Untuk itu, gunakan pembacaan bilingual terhadap abstrak, klaim, dan angka, seperti yang dijelaskan dalam panduan kami untuk meninjau makalah penelitian terjemahan.
Alur Kerja yang Andal
-
Dapatkan sumbernya, dan periksa apa yang boleh Anda lakukan dengannya. Di arXiv, makalah yang dikirimkan dalam TeX biasanya menawarkan sumbernya melalui tautan Source di halaman abstrak atau halaman Other formats, sebagai file gzip atau arsip tar jika ada beberapa file (bantuan arXiv). Menerjemahkan untuk bacaan sendiri adalah satu hal. Menerbitkan terjemahan adalah hal lain: lisensi non-eksklusif arXiv sendiri membatasi penggunaan ulang oleh orang lain, sementara CC BY dan CC BY-SA mengizinkan adaptasi dengan atribusi, dan CC BY-NC-ND tidak. Tanyakan kepada penulis jika ragu.
-
Kompilasi dulu yang asli. Jika tidak dikompilasi sebelum terjemahan, apa pun yang Anda pelajari setelahnya tidak dapat diandalkan. Simpan PDF asli untuk perbandingan.
-
Atur bahasa target di preamble sendiri. Tambahkan
ctexataubabelseperti di atas, kompilasi sekali dengan teks bahasa Inggris, dan commit perubahan itu secara terpisah. -
Terjemahkan isi tanpa preamble dan tanpa blok verbatim. Gunakan alat yang mengurai LaTeX, atau kirim isi dalam potongan dengan aturan eksplisit, seperti pada kondisi segmen kami. TransLaTeX, alat sumber terbuka yang dibuat untuk ini, mengganti konstruksi LaTeX dengan token sebelum mengirim teks ke penerjemah mesin. Dokumentasinya juga menyatakan bahwa alat ini membiarkan header dokumen tidak tersentuh, tidak mendukung makro, dan hanya menangani dokumen satu file, tanpa
\input. Bahkan alat khusus pun menyerahkan keputusan preamble kepada Anda. -
Jalankan pemeriksaan struktural pada setiap pasangan file.
python3 check_latex_translation.py main.tex main-zh.tex --keep ShelfmarkIni membandingkan preamble, nama perintah, urutan lingkungan, label, referensi, sitasi, kunci bibliografi, matematika, blok verbatim, URL,
%,&, dan#yang tidak di-escape, keseimbangan kurung kurawal, pengikat, komentar, dan istilah apa pun yang Anda minta untuk dipertahankan. Harapkan baris preamble gagal setelah langkah 3 saat Anda membandingkan dengan aslinya; bandingkan dengan file bahasa Inggris Anda yang diperbarui sebagai gantinya. Untuk proyek yang terbagi dalam beberapa file\input, periksa setiap pasangan. -
Kompilasi dan baca PDF-nya.
python3 compile_check.py main-zh.texIni melaporkan referensi yang belum terselesaikan (
??), sitasi yang belum terselesaikan ([?]), dan glyph yang hilang. Lalu buka PDF dan baca abstrak, setiap keterangan gambar, dan setiap tabel terhadap aslinya. -
Lakukan pembacaan bilingual terhadap klaim dan angka. Di sinilah tiga kalimat yang berubah akan tertangkap. Simpan glosarium terjemahan singkat untuk istilah teknis makalah agar istilah yang sama tidak diterjemahkan dengan tiga cara berbeda.
Posisi BookTranslator
Penerjemah dokumen BookTranslator menerima file .tex bersama dengan PDF, DOCX, EPUB, Markdown, dan format terstruktur lainnya. FAQ-nya menyatakan hasilnya dikembalikan dalam "file yang dapat digunakan dan sesuai format setiap kali format tersebut mendukungnya."
Halaman produk tidak menjelaskan bagaimana ia memperlakukan makro LaTeX, matematika, atau preamble, dan kami tidak menjalankan sampel ini melalui BookTranslator untuk artikel ini. Alat apa pun yang Anda gunakan, lakukan langkah 1 hingga 3 sebelum menerjemahkan dan langkah 5 hingga 7 setelahnya. File yang mempertahankan preamble khusus bahasa Inggris akan tetap dikompilasi tanpa teks Tionghoa, dan klaim yang berubah akan tetap lolos setiap pemeriksaan struktural.
Jika Anda hanya memiliki PDF makalah, bukan sumbernya, alur kerjanya berbeda: lihat panduan kami untuk menerjemahkan makalah penelitian sambil mempertahankan strukturnya. Jika sumber Anda adalah Markdown bukan LaTeX, pemisahan yang sama antara mesin dan prosa berlaku, dengan jebakan yang berbeda; kami mengujinya dalam Cara Menerjemahkan File Markdown.
Dapatkan File Uji
Semua dari pengujian ini bebas untuk digunakan kembali:
- sample-source.tex: sampel bahasa Inggris 98 baris;
- check_latex_translation.py: pemeriksa struktural (hanya pustaka standar Python);
- compile_check.py: mengompilasi setiap file seperti yang dikembalikan dan dengan pengaturan bahasa Mandarin, serta menghitung referensi yang belum terselesaikan, sitasi yang belum terselesaikan, dan mesin terbang yang hilang (memerlukan Tectonic dan pdftotext);
- run_llm_latex_test.py: tiga kondisi prompt untuk server lokal apa pun yang kompatibel dengan OpenAI;
- sembilan keluaran di folder outputs, dengan check-results.txt, compile-results.txt, dan results.csv.
Artikel Terkait





