Kako prevesti LaTeX dokument bez kvarenja matematike, citata ili oznaka
Što prevoditi u .tex datoteci, što ostaviti netaknuto i zašto prevedena datoteka može čisto kompajlirati i pritom izgubiti tekst. Uz primjer datoteke, dva besplatna alata za provjeru i lokalni test LLM-a u 9 pokretanja.

Da biste preveli LaTeX dokument, prevedite prozni tekst i argumente naredbi koje čita čitatelj, poput naslova odjeljaka, opisa slika, fusnota i teksta poveznica. Naredbe, nazive okruženja, ključeve \label, \ref i \cite, matematiku i verbatim blokove ostavite točno onakvima kakvi jesu. Zatim napravite jednu izmjenu koju nijedan prevoditelj ne bi trebao napraviti umjesto vas: postavite preambulu za ciljni jezik, jer datoteka koja zadrži englesku preambulu može se kompajlirati bez pogreške, a ipak proizvesti PDF u kojem prevedeni tekst nedostaje.
Ta posljednja točka glavni je rezultat malog testa. Preveli smo 98-redni LaTeX rad na pojednostavljeni kineski devet puta pomoću lokalnog modela, na tri različita načina, i svaki rezultat provjerili skriptom i kompajlerom. Dijelovi oko kojih ljudi obično brinu izdržali su u svih devet pokretanja: oznake, reference, citati, jednadžbe, URL-ovi, stupci tablica i vitičaste zagrade vratili su se netaknuti, a svaka unakrsna referenca bila je razriješena. Problemi su bili drugdje. Šest pokretanja čiji je prompt glasio „ne mijenjaj preambulu“ poslušalo je, kompajliralo se s izlaznim kodom 0 i proizvelo PDF-ove bez ikakvog kineskog teksta. Jedno je pokretanje primijenilo naše pravilo „escapeaj znak %“ unutar ispisa koda, pa PDF ispisuje zalutalu obrnutu kosu crtu. A najmanje tri pokretanja promijenila su značenje rečenice na način koji nijedna strukturna provjera ne može vidjeti.
Kratki odgovor: što prevoditi, a što ostaviti netaknuto
| Dio datoteke | Primjer iz naše datoteke | Prevesti? |
|---|---|---|
Preambula: \documentclass, \usepackage, \newcommand | \newcommand{\wpm}{\mathrm{wpm}} | Ne, ali sami dodajte postavke za ciljni jezik (vidi dolje) |
\title, \author, \date | \title{Estimating Reading Time for Translated Ebooks} | Naslov i datum da; imena obično ne |
| Naslovi | \section{Method}\label{sec:method} | Da, tekst u vitičastim zagradama; oznaku zadržite |
| Oznake i reference | \label{eq:time}, Section~\ref{sec:method}, \eqref{eq:time} | Zadržite svaki ključ |
| Citati i ključevi bibliografije | \cite{brysbaert2019}, \bibitem{rayner2016} | Zadržite ključeve; prevedite tekst unosa samo ako to vaše područje čini |
| Matematika u retku i u zasebnom bloku | $r_c$, T = \frac{N}{r} | Ne |
| Tekst unutar matematike | \text{ for English silent reading.} | Da. Ispisuje se kao običan tekst. |
| Makronaredbe koje primaju tekst | \term{characters per minute} | Prevedite argument, zadržite naredbu |
| Opisi slika i fusnote | \caption{Reading rates used in this paper.} | Da |
| Doslovni i kodni ispisi | shelfmark count --unit chars book.epub # 100% of body text | Ne, uključujući komentare unutar njih |
\url i prvi argument naredbe \href | \href{https://example.org/shelfmark/survey}{online appendix} | Zadrži URL; prevedi tekst poveznice |
| Izlučeni znakovi | 20\%, \$12, R\&D | Zadrži obrnutu kosu crtu u proznom tekstu |
Komentari s % | % TODO: replace the Chinese rate ... | Neobavezno. Čitatelji ih nikada ne vide. |
| Vezice prije referenci | Table~\ref{tab:rates} | Zadrži u jezicima koji koriste razmake; neobavezno u kineskom i japanskom |
Sve ostalo je običan prozni tekst: odlomci, sažetak, stavke popisa i ćelije tablice.
Što smo testirali
Napisali smo sample-source.tex, kratak izmišljeni rad o procjenama vremena čitanja za fiktivnu aplikaciju Shelfmark. Ispravno se prevodi i sadrži po jedan primjer svake konstrukcije iz gornje tablice, plus booktabs tablicu, sliku s opisom, dva komentara s %, verbatim blok s golim % unutra i ugrađenu bibliografiju.
Zatim smo zamolili lokalni model da ga prevede na pojednostavljeni kineski na tri načina:
- Cijela datoteka. Zalijepite cijelu datoteku i zatražite prevedenu datoteku koja se još uvijek može prevesti.
- S uputama. Isto, plus sedam pravila: ne mijenjaj preambulu, zadrži svaku naredbu, okruženje, oznaku, referencu i ključ citata, ostavi matematiku na miru osim
\text{}, ostavi verbatim blokove i URL-ove na miru, zadrži posebne znakove izlučene, zadrži vezice i prevedi prozni tekst, opise, fusnote i tekst poveznica. - Segmenti. Potpuno izostavite preambulu iz zahtjeva (šalje se samo redak
\title, tako da\dateostaje na engleskom), podijelite tijelo na prazne retke, preskočite verbatim blok, pošaljite svaki dio s istim pravilima i ponovno sastavite.
Model je bio Qwen 3.6 27B (Q4_K_M) u LM Studiju, s isključenim razmišljanjem i temperaturom 0,3, na Apple M4 Max s 64 GB memorije. Svaki uvjet pokrenuli smo tri puta, ukupno devet pokretanja, 26. listopada 2026. Skripta je run_llm_latex_test.py, a svih devet izlaza objavljeno je neuređeno u mapi outputs. Ako nikada niste postavili lokalni model, naš vodič za lokalno prevođenje LLM-om pokriva postavke.
Svaki izlaz preveli smo s Tectonic 0.17.0, koji koristi XeTeX pogon, jednom točno onako kako je vraćen i jednom s kineskim postavkama dodanim u preambulu. Zatim smo ponovno pročitali tekst iz svakog PDF-a. Ovo je bio mali test jednog modela, jednog jezičnog para i jedne datoteke. Pokazuje koji se problemi događaju i kako ih uhvatiti. Ne rangira modele ni upute.
Rezultat: Struktura je preživjela; preambula je odlučila hoće li se tekst pojaviti
check_latex_translation.py usporedio je svaki izlaz s izvornikom, a compile_check.py ga je preveo. Potpuni izlazi nalaze se u check-results.txt i compile-results.txt, a results.csv ima jedan redak po pokretanju.
| Provjera | Cijela datoteka | Uputa | Segmenti |
|---|---|---|---|
| Oznake, reference, citati i ključevi bibliografije nepromijenjeni | 3 od 3 | 3 od 3 | 3 od 3 |
Matematika nepromijenjena (tekst unutar \text{} preveden) | 3 od 3 | 3 od 3 | 3 od 3 |
| URL-ovi, vitičaste zagrade i stupci tablice netaknuti | 3 od 3 | 3 od 3 | 3 od 3 |
| Model je dodao kineski paket u preambulu | 3 od 3 | 0 od 3 | 0 od 3 |
| Kompilira se kako je vraćeno | 3 od 3 | 3 od 3 | 3 od 3 |
| Kineski tekst stvarno u PDF-u kako je vraćen | 3 od 3 | 0 od 3 | 0 od 3 |
| Doslovni blok nepromijenjen | 3 od 3 | 2 od 3 | 3 od 3 |
% komentari ostavljeni na engleskom | 3 od 3 | 3 od 3 | 1 od 3 |
| Svaka referenca i citat ispravno se razrješavaju nakon dodavanja kineskih postavki | 3 od 3 | 3 od 3 | 3 od 3 |
Naš je provjerivač isprva prijavio promijenjenu matematiku u prvom prolazu. Matematika je bila ispravna: kineski red riječi stavio je $N$ prije $r$ u jednoj rečenici. Objavljeni provjerivač uspoređuje matematičke segmente kao neuređenu zbirku upravo iz tog razloga, pa je preuređivanje dopušteno, ali promijenjeni simbol nije.
1. "Ne diraj preambulu" proizvelo je PDF bez ijednog kineskog znaka
Pravilo o preambuli zvuči kao najsigurnija uputa koju možete dati. Preambula našeg uzorka učitava amsmath, booktabs i hyperref te definira tri makroa, a ništa od toga ne treba prevođenje. Stoga su je pokretanja s uputama i segmentima ostavila na miru, točno kako je rečeno.
No zadani fontovi u standardnoj LaTeX postavci nemaju kineske znakove. Svih šest datoteka kompajliralo se s izlaznim kodom 0. Tectonic je upozorio, jednom po svakom nedostajućem znaku, retcima poput Missing character: There is no 估 (U+4F30) in font [lmroman17-regular], a datoteka zapisa zabilježila je između 554 i 577 takvih upozorenja po pokretanju. Ali upozorenje ne zaustavlja izgradnju. Kad smo izvukli tekst iz tih šest PDF-ova, sadržavali su imena autora, brojeve i matematiku, i nijedan kineski znak. Tri PDF-a cijelih datoteka sadržavala su 481 do 490. Skripta za izgradnju koja provjerava samo je li kompilacija uspjela, ili osoba koja samo preleti kraj izlaza, isporučila bi svih šest.
Tri pokretanja s cijelim datotekama, koja nisu imala takvo pravilo, sama su dodala \usepackage{ctex}, i njihovi PDF-ovi bili su potpuni. To nije razlog da modelu dopustite prepisivanje preambule. To je razlog da postavke ciljnog jezika vidite kao dio posla prevođenja, obavljen jednom, od vas:
- Kineski: učitajte ctex, koji podržava pdfLaTeX, XeLaTeX i LuaLaTeX. Prema zadanim postavkama odabire fontove za vaš operacijski sustav; naš zapis pokazuje da učitava svoj macOS skup fontova. Ako se datoteka mora kompajlirati na isti način na drugim računalima,
\usepackage[UTF8,fontset=fandol]{ctex}koristi besplatne fontove Fandol distribuirane s TeX Live, koje Tectonic također preuzima na zahtjev. To je ono što dodajecompile_check.py. - Ostali jezici: učitajte babel s ciljnim jezikom, kako bi se rastavljanje riječi i generirane riječi poput "Figure", "Table" i "Abstract" prilagodile novom jeziku. Japanski, korejski i jezici s pisanjem zdesna nalijevo svaki zahtijevaju vlastite postavke.
Nakon kompilacije provjerite zapis za Missing character i pročitajte PDF, a ne samo izlazni kod. Testirali smo samo XeTeX putem Tectonica; drugi pogoni prijavljuju nedostajući font na drugačiji način.
2. Pravilo o escapeanju procurilo je u ispis koda
Naše su upute govorile da posebne znakove treba držati escapeane, a u prozi je to ispravno pravilo: goli % u LaTeXu započinje komentar i tiho guta ostatak retka. Svih devet pokretanja zadržalo je 20\% u sažetku.
U prvom vođenom pokretanju model je također primijenio pravilo unutar bloka verbatim i preveo komentar u kodu:
source: shelfmark count --unit chars book.epub # 100% of body text
translation: shelfmark count --unit chars book.epub # 100\% 正文
Unutar verbatim ništa nije naredba, pa PDF ispisuje 100\% s obrnutom kosom crtom. Rješenje nije bolji upit. Blokove verbatim, lstlisting ili minted nikada ne šaljite prevoditelju, kao što je činio uvjet segmenata. Zatim ručno prevedite sve komentare u njima ako ih vaši čitatelji trebaju.
3. Komentari su slijedili granice zahtjeva
Datoteka ima dva komentara s %: bilješku iznad definicija makronaredbi i TODO iznad popisa koda. Pokretanja cijele datoteke i vođena pokretanja ostavila su oba na engleskom. Uvjet segmenata preveo je TODO u dva od tri pokretanja jer se TODO slučajno nalazio u istom bloku kao odlomak koji smo poslali na prijevod. Dva pokretanja cijele datoteke također su dodala vlastiti komentar nakon paketa koji su umetnula.
Ništa od ovoga ne mijenja PDF. Važno je ako se prevedeni izvorni kod vraća koautorima ili u repozitorij, gdje prevedeni TODO više ne odgovara originalu, a dodatni se komentar pojavljuje u svakom diffu. Provjera prijavljuje prevedene komentare kao upozorenje kako biste mogli odlučiti.
4. Strukturne provjere su prošle, a značenje se ipak promijenilo
Sažetak kaže "oznaka koja je pogrešna za 20 % još je korisna". U tri od devet pokretanja kineski je rekao da su oznake s pogreškom unutar 20 % još korisne, što toleranciju pretvara u prag. Nekoliko drugih pokretanja preuredilo je rečenicu tako da se klauzula "iako" veže na pogrešnu ideju, a jedno je postalo teško pratiti. To su prosudbe jednog čitatelja koji uspoređuje kineski s engleskim, a ne zaslijepljena recenzija, ali poanta ne ovisi o točnom broju: svaka strukturna provjera prošla je na tim datotekama jer su 20\%, makronaredba i vitičaste zagrade bili ispravni.
Dvije druge promjene bile su u redu, ali vrijedi ih znati. Pokretanja cijele datoteke napisala su \$12 kao 12美元 ("12 američkih dolara"), što u potpunosti uklanja pitanje escapeanja. Dva pokretanja cijele datoteke također su ispustila većinu veza ~ prije \ref i \cite. To je bezopasno u kineskom, koji ne stavlja razmake između riječi, ali u jeziku koji ih stavlja, nedostajuća veza dopušta prijelom retka koji odvaja "Tablicu" od njezina broja. Provjera prijavljuje veze kao upozorenje, a ne kao grešku.
Strukturna provjera govori vam da datoteka još radi. Ne može vam reći da rad još govori isto. Za to upotrijebite dvojezično čitanje sažetka, tvrdnji i brojeva, kako je opisano u našem vodiču za pregled prevedenog znanstvenog rada.
Radni postupak koji izdržava
-
Nabavite izvorni kod i provjerite što smijete s njim. Na arXivu radovi predani u TeXu obično nude svoj izvorni kod putem veze Source na stranici sažetka ili stranici Other formats, kao gzip datoteku ili tar arhivu kada ima više datoteka (pomoć arXiva). Prevođenje za vlastito čitanje jedno je. Objavljivanje prijevoda drugo: arXivova vlastita neekskluzivna licenca ograničava ponovnu upotrebu od strane drugih, dok CC BY i CC BY-SA dopuštaju prilagodbe uz atribuciju, a CC BY-NC-ND ne dopušta. U nedoumici pitajte autore.
-
Prvo prevedite izvornik. Ako se ne prevede prije prevođenja, ništa što naknadno saznate nije pouzdano. Sačuvajte izvorni PDF za usporedbu.
-
Sami postavite ciljni jezik u preambuli. Dodajte
ctexilibabelkao gore, prevedite jednom s engleskim tekstom i zasebno predajte tu promjenu. -
Prevedite tijelo bez preambule i bez verbatim blokova. Upotrijebite alat koji raščlanjuje LaTeX ili pošaljite tijelo u dijelovima s izričitim pravilima, kao u našem uvjetu segmenata. TransLaTeX, open-source alat izgrađen za to, zamjenjuje LaTeX konstrukcije tokenima prije slanja teksta strojnom prevoditelju. Njegova dokumentacija također kaže da ostavlja zaglavlje dokumenta netaknutim, ne podržava makronaredbe i obrađuje samo datoteke s jednom datotekom, bez
\input. Čak i namjenski alat odluku o preambuli ostavlja vama. -
Pokrenite strukturnu provjeru na svakom paru datoteka.
python3 check_latex_translation.py main.tex main-zh.tex --keep ShelfmarkUspoređuje preambulu, nazive naredbi, redoslijed okruženja, oznake, reference, citate, ključeve bibliografije, matematiku, verbatim blokove, URL-ove, neescapeane
%,&i#, ravnotežu vitičastih zagrada, veze, komentare i sve pojmove koje zatražite da se zadrže. Očekujte da će redak preambule pasti nakon koraka 3 kada uspoređujete s izvornikom; umjesto toga uspoređujte sa svojom ažuriranom engleskom datotekom. Za projekt podijeljen na nekoliko\inputdatoteka provjerite svaki par. -
Prevedite i pročitajte PDF.
python3 compile_check.py main-zh.texPrijavljuje neriješene reference (
??), neriješene citate ([?]) i nedostajuće glifove. Zatim otvorite PDF i pročitajte sažetak, svaki natpis i svaku tablicu u odnosu na izvornik. -
Napravite dvojezično čitanje tvrdnji i brojeva. Ovdje bi se uhvatile naše tri promijenjene rečenice. Vodite kratki rječnik prijevoda za tehničke pojmove rada kako se isti pojam ne bi prevodio na tri načina.
Gdje se uklapa BookTranslator
BookTranslatorov prevoditelj dokumenata prihvaća .tex datoteke zajedno s PDF-om, DOCX-om, EPUB-om, Markdownom i drugim strukturiranim formatima. Njegov FAQ kaže da se rezultat vraća u "upotrebljivoj datoteci primjerenoj formatu kad god taj format to podržava".
Stranica proizvoda ne opisuje kako postupa s LaTeX makronaredbama, matematikom ili preambulom, a ovaj uzorak nismo provodili kroz BookTranslator za ovaj članak. Koji god alat upotrijebili, napravite korake od 1 do 3 prije prevođenja i korake od 5 do 7 nakon toga. Datoteka koja zadrži preambulu samo na engleskom i dalje će se prevesti bez kineskog teksta, a promijenjena tvrdnja i dalje će proći svaku strukturnu provjeru.
Ako imate samo PDF rada, a ne njegov izvorni kod, radni je postupak drugačiji: pogledajte naš vodič za prevođenje znanstvenog rada uz zadržavanje njegove strukture. Ako je vaš izvorni kod Markdown, a ne LaTeX, vrijedi ista podjela na mehanizam i prozni tekst, uz drugačije zamke; testirali smo ih u Kako prevesti Markdown datoteke.
Nabavite testne datoteke
Sve iz ovog testa slobodno je za ponovnu upotrebu:
- sample-source.tex: engleski uzorak od 98 redaka;
- check_latex_translation.py: strukturni provjerivač (samo Python standardna biblioteka);
- compile_check.py: kompilira svaku datoteku kako je vraćena i s kineskim postavkama te broji neriješene reference, neriješene citate i nedostajuće glifove (potrebni su Tectonic i pdftotext);
- run_llm_latex_test.py: tri uvjeta upita za bilo koji lokalni poslužitelj kompatibilan s OpenAI-jem;
- devet izlaza u mapi outputs, s check-results.txt, compile-results.txt i results.csv.
Povezane objave





