Jak přeložit dokument LaTeX bez rozbití matematiky, citací nebo popisků
Co v souboru .tex překládat, co nechat být a proč se může přeložený soubor zkompilovat bez chyby a přesto ztratit text. S ukázkovým souborem, dvěma bezplatnými kontrolními nástroji a testem lokálního LLM o 9 bězích.

Chcete-li přeložit dokument LaTeX, přeložte prózu a argumenty příkazů určené čtenáři, jako jsou názvy sekcí, popisky, poznámky pod čarou a text odkazů. Příkazy, názvy prostředí, klíče \label, \ref a \cite, matematiku a bloky verbatim ponechte přesně tak, jak jsou. Poté proveďte jednu změnu, kterou by za vás neměl dělat žádný překladatel: nastavte preambuli pro cílový jazyk, protože soubor, který si ponechá anglickou preambuli, se může zkompilovat bez chyby a přesto vytvořit PDF, ve kterém přeložený text zcela chybí.
Poslední bod je hlavním výsledkem malého testu. Přeložili jsme 98řádkový článek v LaTeXu do zjednodušené čínštiny devětkrát pomocí lokálního modelu, a to třemi různými způsoby, a každý výsledek jsme zkontrolovali skriptem a kompilátorem. Části, o které lidé obvykle mají obavy, obstály ve všech devíti bězích: popisky, odkazy, citace, rovnice, URL adresy, sloupce tabulek a složené závorky se vrátily neporušené a všechny křížové odkazy se vyřešily. Problémy byly jinde. Šest běhů, jejichž prompt říkal „neměňte preambuli“, poslechlo, zkompilovalo se s návratovým kódem 0 a vytvořilo PDF, ve kterých nebyl vůbec žádný čínský text. Jeden běh aplikoval naše pravidlo „escapujte znak %“ uvnitř výpisu kódu, takže PDF vytiskne zbloudilé zpětné lomítko. A nejméně tři běhy posunuly význam věty způsoby, které žádná strukturální kontrola neodhalí.
Rychlá odpověď: co překládat a co nechat být
| Část souboru | Příklad z naší ukázky | Přeložit? |
|---|---|---|
Preambule: \documentclass, \usepackage, \newcommand | \newcommand{\wpm}{\mathrm{wpm}} | Ne, ale nastavení cílového jazyka přidejte sami (viz níže) |
\title, \author, \date | \title{Estimating Reading Time for Translated Ebooks} | Název a datum ano; jména obvykle ne |
| Nadpisy | \section{Method}\label{sec:method} | Ano, text ve složených závorkách; popisek ponechte |
| Popisky a odkazy | \label{eq:time}, Section~\ref{sec:method}, \eqref{eq:time} | Ponechte každý klíč |
| Citace a klíče bibliografie | \cite{brysbaert2019}, \bibitem{rayner2016} | Klíče ponechte; text záznamu překládejte jen tehdy, pokud to váš obor dělá |
| Vložená a samostatná matematika | $r_c$, T = \frac{N}{r} | Ne |
| Text uvnitř matematiky | \text{ for English silent reading.} | Ano. Vytiskne se jako běžný text. |
| Makra, která přijímají text | \term{characters per minute} | Přeložte argument, příkaz ponechte |
| Popisky a poznámky pod čarou | \caption{Reading rates used in this paper.} | Ano |
| Doslovné výpisy a výpisy kódu | shelfmark count --unit chars book.epub # 100% of body text | Ne, včetně komentářů uvnitř nich |
\url a první argument \href | \href{https://example.org/shelfmark/survey}{online appendix} | URL ponechte; text odkazu přeložte |
| Escapované znaky | 20\%, \$12, R\&D | Zpětné lomítko v próze ponechte |
Komentáře % | % TODO: replace the Chinese rate ... | Volitelné. Čtenáři je nikdy nevidí. |
| Nedělitelné mezery před referencemi | Table~\ref{tab:rates} | Ponechte v jazycích, které používají mezery; v čínštině a japonštině volitelné |
Vše ostatní je běžná próza: odstavce, abstrakt, položky seznamu a buňky tabulek.
Co jsme testovali
Napsali jsme sample-source.tex, krátký vymyšlený článek o odhadech doby čtení pro fiktivní aplikaci Shelfmark. Čistě se kompiluje a obsahuje jeden příklad každého konstruktu z výše uvedené tabulky, plus tabulku booktabs, obrázek s popiskem, dva komentáře %, blok verbatim s holým % uvnitř a vloženou bibliografii.
Poté jsme požádali lokální model, aby jej přeložil do zjednodušené čínštiny třemi způsoby:
- Celý soubor. Vložte celý soubor a požádejte o přeložený soubor, který se stále kompiluje.
- S instrukcemi. Totéž plus sedm pravidel: neměňte preambuli, zachovejte všechny příkazy, prostředí, popisky, reference a klíče citací, nechte matematiku na pokoji kromě
\text{}, nechte bloky verbatim a URL na pokoji, zachovejte escapování speciálních znaků, zachovejte nedělitelné mezery a přeložte prózu, popisky, poznámky pod čarou a text odkazů. - Segmenty. Ponechte preambuli zcela mimo požadavek (posílá se pouze řádek
\title, takže\datezůstane v angličtině), rozdělte tělo na prázdných řádcích, přeskočte blok verbatim, pošlete každý kus se stejnými pravidly a znovu sestavte.
Model byl Qwen 3.6 27B (Q4_K_M) v LM Studio, s vypnutým myšlením a teplotou 0,3, na Apple M4 Max s 64 GB paměti. Každou podmínku jsme spustili třikrát, celkem devět běhů, dne 26. října 2026. Skript je run_llm_latex_test.py a všech devět výstupů je publikováno bez úprav ve složce outputs. Pokud jste si nikdy nenastavovali lokální model, náš průvodce překladem s lokálním LLM pokrývá nastavení.
Každý výstup jsme zkompilovali pomocí Tectonic 0.17.0, který používá engine XeTeX, jednou přesně tak, jak byl vrácen, a jednou s čínským nastavením přidaným do preambule. Poté jsme z každého PDF znovu přečetli text. Byl to malý test jednoho modelu, jednoho jazykového páru a jednoho souboru. Ukazuje, jaké problémy nastávají a jak je zachytit. Neřadí modely ani prompty.
Výsledek: Struktura přežila; preambule rozhodla, zda se text objevil
check_latex_translation.py porovnal každý výstup se zdrojem a compile_check.py jej zkompiloval. Úplné výstupy jsou v check-results.txt a compile-results.txt a results.csv má jeden řádek na běh.
| Kontrola | Celý soubor | S instrukcemi | Segmenty |
|---|---|---|---|
| Popisky, odkazy, citace a klíče bibliografie beze změny | 3 ze 3 | 3 ze 3 | 3 ze 3 |
Matematika beze změny (text uvnitř \text{} přeložen) | 3 ze 3 | 3 ze 3 | 3 ze 3 |
| URL, složené závorky a sloupce tabulek nedotčeny | 3 ze 3 | 3 ze 3 | 3 ze 3 |
| Model přidal do preambule čínský balíček | 3 ze 3 | 0 ze 3 | 0 ze 3 |
| Zkompiluje se tak, jak bylo vráceno | 3 ze 3 | 3 ze 3 | 3 ze 3 |
| Čínský text skutečně v PDF tak, jak bylo vráceno | 3 ze 3 | 0 ze 3 | 0 ze 3 |
| Doslovný blok beze změny | 3 ze 3 | 2 ze 3 | 3 ze 3 |
% komentáře zůstaly v angličtině | 3 ze 3 | 3 ze 3 | 1 ze 3 |
| Každý odkaz a citace se po přidání čínského nastavení vyřeší | 3 ze 3 | 3 ze 3 | 3 ze 3 |
Náš kontrolor nejprve v prvním běhu nahlásil změněnou matematiku. Matematika byla v pořádku: čínský slovosled umístil $N$ před $r$ v jedné větě. Publikovaný kontrolor proto porovnává matematické segmenty jako neuspořádanou kolekci, takže přeuspořádání je povoleno, ale změněný symbol nikoli.
1. „Nesahejte na preambuli“ vedlo k PDF bez čínštiny
Pravidlo o preambuli zní jako nejbezpečnější instrukce, jakou můžete dát. Preambule našeho vzorku načítá amsmath, booktabs a hyperref a definuje tři makra, a nic z toho není třeba překládat. Takže běhy s instrukcemi i segmenty ji nechaly na pokoji, přesně jak bylo řečeno.
Výchozí fonty ve standardním nastavení LaTeXu však nemají čínské znaky. Všech šest souborů se zkompilovalo s návratovým kódem 0. Tectonic sice varoval, jednou za každý chybějící znak, řádky jako Missing character: There is no 估 (U+4F30) in font [lmroman17-regular], a log soubor zaznamenal mezi 554 a 577 varováními na běh. Varování ale nezastaví sestavení. Když jsme z těch šesti PDF extrahovali text, obsahovaly jména autorů, čísla a matematiku a nula čínských znaků. Tři PDF z celých souborů obsahovaly 481 až 490. Build skript, který kontroluje jen úspěšnost kompilace, nebo člověk, který jen zběžně prohlédne konec výstupu, by odeslal všech šest.
Tři běhy s celými soubory, které takové pravidlo neměly, samy přidaly \usepackage{ctex} a jejich PDF byly kompletní. To není důvod nechat model přepisovat vaši preambuli. Je to důvod považovat nastavení cílového jazyka za součást překladatelské práce, provedenou jednou, vámi:
- Čínština: načtěte ctex, který podporuje pdfLaTeX, XeLaTeX a LuaLaTeX. Ve výchozím nastavení vybírá fonty pro váš operační systém; náš log ukazuje, že načítá svou sadu fontů pro macOS. Pokud se soubor musí kompilovat stejně na jiných strojích,
\usepackage[UTF8,fontset=fandol]{ctex}používá bezplatné fonty Fandol distribuované s TeX Live, které Tectonic také stahuje na vyžádání. To je to, co přidávácompile_check.py. - Jiné jazyky: načtěte babel s cílovým jazykem, aby dělení slov a generovaná slova jako „Figure“, „Table“ a „Abstract“ odpovídala novému jazyku. Japonština, korejština a jazyky psané zprava doleva vyžadují každý své vlastní nastavení.
Po kompilaci zkontrolujte v logu Missing character a přečtěte si PDF, ne jen návratový kód. Testovali jsme pouze XeTeX přes Tectonic; jiné enginy hlásí chybějící font jinak.
2. Pravidlo pro escapování uniklo do výpisu kódu
Naše instrukce říkaly, aby speciální znaky zůstaly escapované, a v próze je to správné pravidlo: holé % v LaTeXu zahájí komentář a tiše spolkne zbytek řádku. Všech devět běhů zachovalo 20\% v abstraktu.
V prvním běhu s instrukcemi model aplikoval pravidlo i uvnitř bloku verbatim a přeložil tamější komentář v kódu:
source: shelfmark count --unit chars book.epub # 100% of body text
translation: shelfmark count --unit chars book.epub # 100\% 正文
Uvnitř verbatim není nic příkazem, takže PDF vytiskne 100\% se zpětným lomítkem. Oprava nespočívá v lepším promptu. Nikdy neposílejte bloky verbatim, lstlisting nebo minted překladači vůbec, jako to dělala podmínka segmentů. Poté přeložte případný komentář v nich ručně, pokud jej vaši čtenáři potřebují.
3. Komentáře se držely hranic požadavku
Soubor obsahuje dva komentáře %: poznámku nad definicemi maker a TODO nad výpisem kódu. Běhy s celým souborem i s instrukcemi nechaly oba v angličtině. Podmínka segmentů přeložila TODO ve dvou ze tří běhů, protože TODO náhodou ležel ve stejném bloku jako odstavec, který jsme poslali k překladu. Dva běhy s celým souborem také přidaly vlastní komentář za balíček, který vložily.
Nic z toho nemění PDF. Záleží na tom, pokud se přeložený zdroj vrací spoluautorům nebo do repozitáře, kde přeložený TODO už neodpovídá originálu a v každém diffu se objeví komentář navíc. Kontrola hlásí přeložené komentáře jako varování, abyste se mohli rozhodnout.
4. Strukturální kontroly prošly a význam se přesto změnil
Abstrakt říká „label, který je mimo o 20 %, je stále užitečný.“ Ve třech z devíti běhů čínština uvedla, že labely s chybou do 20 % jsou stále užitečné, což posouvá toleranci na práh. Několik dalších běhů přeuspořádalo větu tak, že se věta s „ačkoli“ připojila ke špatné myšlence, a jeden byl těžko sledovatelný. Jsou to úsudky jednoho čtenáře srovnávajícího čínštinu s angličtinou, nikoli zaslepená recenze, ale pointa nezávisí na přesném počtu: všechny strukturální kontroly na těchto souborech prošly, protože 20\%, makro i složené závorky byly správně.
Dvě další změny byly v pořádku, ale stojí za zmínku. Běhy s celým souborem zapsaly \$12 jako 12美元 („12 amerických dolarů“), což otázku escapování zcela odstraňuje. Dva běhy s celým souborem také vypustily většinu vazeb ~ před \ref a \cite. V čínštině, která mezi slovy nedělá mezery, je to neškodné, ale v jazyce, který je dělá, chybějící vazba umožní zalomení řádku oddělit „Tabulku“ od jejího čísla. Kontrola hlásí vazby jako varování, nikoli jako selhání.
Strukturální kontrola vám řekne, že soubor stále funguje. Nemůže vám říct, že článek stále říká totéž. K tomu použijte dvojjazyčné čtení abstraktu, tvrzení a čísel, jak je popsáno v našem průvodci recenzí přeloženého výzkumného článku.
Pracovní postup, který obstojí
-
Získejte zdroj a zkontrolujte, co s ním smíte dělat. Na arXivu obvykle články odevzdané v TeXu nabízejí svůj zdroj prostřednictvím odkazu Source na stránce abstraktu nebo na stránce Other formats, jako gzipovaný soubor nebo tar archiv, pokud je souborů více (nápověda arXivu). Překládat pro vlastní čtení je jedna věc. Publikovat překlad je věc druhá: vlastní nevýhradní licence arXivu omezuje opětovné použití jinými, zatímco CC BY a CC BY-SA povolují adaptace s uvedením autora a CC BY-NC-ND nikoli. V případě pochybností se zeptejte autorů.
-
Nejprve zkompilujte originál. Pokud se nezkompiluje před překladem, nic, co se dozvíte potom, není spolehlivé. Ponechte si původní PDF pro srovnání.
-
Nastavte cílový jazyk v preambuli sami. Přidejte
ctexnebobabeljako výše, jednou zkompilujte s anglickým textem a tuto změnu odevzdejte zvlášť. -
Přeložte tělo bez preambule a bez bloků verbatim. Použijte nástroj, který parsuje LaTeX, nebo pošlete tělo po částech s explicitními pravidly, jako v naší podmínce segmentů. TransLaTeX, open-source nástroj vytvořený pro tento účel, nahrazuje konstrukce LaTeXu tokeny před odesláním textu strojovému překladači. Jeho dokumentace také uvádí, že ponechává hlavičku dokumentu nedotčenou, nepodporuje makra a zpracovává pouze jednosouborové dokumenty, bez
\input. I specializovaný nástroj nechává rozhodnutí o preambuli na vás. -
Spusťte strukturální kontrolu na každou dvojici souborů.
python3 check_latex_translation.py main.tex main-zh.tex --keep ShelfmarkPorovnává preambuli, názvy příkazů, pořadí prostředí, labely, reference, citace, klíče bibliografie, matematiku, bloky verbatim, URL, neescapované
%,&a#, vyváženost závorek, vazby, komentáře a všechny termíny, které požadujete zachovat. Očekávejte, že řádek preambule po kroku 3 selže, když porovnáváte s originálem; porovnávejte místo toho se svým aktualizovaným anglickým souborem. U projektu rozděleného do několika souborů\inputzkontrolujte každou dvojici. -
Zkompilujte a přečtěte PDF.
python3 compile_check.py main-zh.texHlásí nevyřešené reference (
??), nevyřešené citace ([?]) a chybějící glyfy. Poté otevřete PDF a přečtěte abstrakt, každý popisek a každou tabulku proti originálu. -
Proveďte dvojjazyčné čtení tvrzení a čísel. Zde by byly odhaleny naše tři změněné věty. Veďte si krátký překladový glosář technických termínů článku, aby se stejný termín nepřekládal třemi způsoby.
Kam zapadá BookTranslator
Překladač dokumentů BookTranslator přijímá soubory .tex spolu s PDF, DOCX, EPUB, Markdown a dalšími strukturovanými formáty. Jeho FAQ uvádí, že výsledek je vrácen v „použitelném souboru vhodného formátu, kdykoli to daný formát podporuje“.
Stránka produktu nepopisuje, jak zachází s makry LaTeXu, matematikou nebo preambulí, a tento vzorek jsme pro tento článek přes BookTranslator neproháněli. Ať už použijete jakýkoli nástroj, proveďte kroky 1 až 3 před překladem a kroky 5 až 7 poté. Soubor, který si ponechá preambuli pouze v angličtině, se stále zkompiluje bez čínského textu a změněné tvrzení projde každou strukturální kontrolou.
Pokud máte pouze PDF článku, nikoli jeho zdroj, postup je jiný: viz náš průvodce překladem výzkumného článku se zachováním jeho struktury. Pokud je vaším zdrojem Markdown namísto LaTeXu, platí stejné rozdělení mezi strojovým aparátem a prózou s jinými nástrahami; ty jsme testovali v článku Jak překládat soubory Markdown.
Získejte testovací soubory
Vše z tohoto testu lze volně znovu použít:
- sample-source.tex: 98řádkový anglický vzorek;
- check_latex_translation.py: nástroj pro strukturální kontrolu (pouze standardní knihovna Pythonu);
- compile_check.py: zkompiluje každý vrácený soubor a také s čínským nastavením a spočítá nevyřešené odkazy, nevyřešené citace a chybějící glyfy (vyžaduje Tectonic a pdftotext);
- run_llm_latex_test.py: tři podmínky promptu pro jakýkoli lokální server kompatibilní s OpenAI;
- devět výstupů ve složce outputs spolu se soubory check-results.txt, compile-results.txt a results.csv.
Související příspěvky





