BookTranslator
BookTranslator

Matematiği, Atıfları veya Etiketleri Bozmadan Bir LaTeX Belgesi Nasıl Çevrilir

Bir .tex dosyasında nelerin çevrilmesi, nelerin olduğu gibi bırakılması gerektiği ve çevrilmiş bir dosyanın neden hatasız derlenip yine de metnini kaybedebileceği. Örnek bir dosya, iki ücretsiz denetleyici ve 9 çalıştırmalı yerel bir LLM testiyle.

BookTranslator

BookTranslator Team

12 min read

Bir LaTeX belgesini çevirmek için düz metni ve komutların okuyucuya dönük argümanlarını (bölüm başlıkları, başlıklar, dipnotlar ve bağlantı metni gibi) çevirin. Komutları, ortam adlarını, \label, \ref ve \cite anahtarlarını, matematiği ve verbatim bloklarını tam olarak olduğu gibi bırakın. Ardından hiçbir çevirmenin sizin yerinize yapmaması gereken tek bir değişiklik yapın: giriş bölümünü hedef dil için ayarlayın, çünkü İngilizce giriş bölümünü koruyan bir dosya hatasız derlenip yine de çevrilmiş metni içermeyen bir PDF üretebilir.

Bu son nokta, küçük bir testin ana sonucudur. 98 satırlık bir LaTeX makalesini yerel bir modelle üç farklı şekilde dokuz kez Basitleştirilmiş Çinceye çevirdik ve her sonucu bir betik ve bir derleyiciyle denetledik. İnsanların genellikle endişelendiği kısımlar dokuz çalıştırmanın hepsinde sağlam kaldı: etiketler, referanslar, atıflar, denklemler, URL'ler, tablo sütunları ve süslü parantezler bozulmadan geri döndü ve her çapraz referans çözümlendi. Sorunlar başka yerlerdeydi. İsteminde "giriş bölümünü değiştirme" yazan altı çalıştırma buna uydu, çıkış kodu 0 ile derlendi ve içinde hiç Çince metin bulunmayan PDF'ler üretti. Bir çalıştırma, "% işaretini kaçır" kuralımızı bir kod listelemesinin içinde uyguladı, bu yüzden PDF fazladan bir ters eğik çizgi yazdırıyor. Ve en az üç çalıştırma, hiçbir yapısal denetimin göremeyeceği şekillerde bir cümlenin anlamını kaydırdı.

Kısa Yanıt: Neyi Çevirmeli, Neyi Olduğu Gibi Bırakmalı

Dosyanın bölümüÖrnek dosyamızdan alıntıÇevrilsin mi?
Giriş bölümü: \documentclass, \usepackage, \newcommand\newcommand{\wpm}{\mathrm{wpm}}Hayır, ancak hedef dil ayarını kendiniz ekleyin (aşağıya bakın)
\title, \author, \date\title{Estimating Reading Time for Translated Ebooks}Başlık ve tarih evet; adlar genellikle hayır
Başlıklar\section{Method}\label{sec:method}Evet, süslü parantez içindeki metin; etiketi koruyun
Etiketler ve referanslar\label{eq:time}, Section~\ref{sec:method}, \eqref{eq:time}Her anahtarı koruyun
Atıflar ve kaynakça anahtarları\cite{brysbaert2019}, \bibitem{rayner2016}Anahtarları koruyun; giriş metnini yalnızca alanınız öyle yapıyorsa çevirin
Satır içi ve ayrı matematik$r_c$, T = \frac{N}{r}Hayır
Matematik içindeki metin\text{ for English silent reading.}Evet. Normal metin olarak yazdırılır.
Metin alan makrolar\term{characters per minute}Argümanı çevirin, komutu koruyun
Başlıklar ve dipnotlar\caption{Reading rates used in this paper.}Evet
Birebir metinler ve kod listelerishelfmark count --unit chars book.epub # 100% of body textHayır, içlerindeki yorumlar dahil
\url ve \href'in ilk argümanı\href{https://example.org/shelfmark/survey}{online appendix}URL'yi koruyun; bağlantı metnini çevirin
Kaçış karakterleri20\%, \$12, R\&DDüz metinde ters eğik çizgiyi koruyun
% yorumları% TODO: replace the Chinese rate ...İsteğe bağlı. Okuyucular bunları asla görmez.
Referanslardan önceki bağlaçlarTable~\ref{tab:rates}Boşluk kullanan dillerde koruyun; Çince ve Japoncada isteğe bağlı

Geri kalan her şey sıradan düz metindir: paragraflar, özet, liste öğeleri ve tablo hücreleri.

Neyi Test Ettik

sample-source.tex adlı, Shelfmark adında kurgusal bir uygulama için okuma süresi tahminleri hakkında kısa ve uydurma bir makale yazdık. Temiz bir şekilde derleniyor ve yukarıdaki tablodaki her yapıdan birer örnek içeriyor; ayrıca bir booktabs tablosu, başlıklı bir şekil, iki % yorumu, içinde çıplak bir % bulunan bir verbatim bloğu ve satır içi bir kaynakça var.

Ardından yerel bir modelden bunu Basitleştirilmiş Çinceye üç şekilde çevirmesini istedik:

  1. Tüm dosya. Dosyanın tamamını yapıştırın ve hâlâ derlenen bir çeviri dosyası isteyin.
  2. Yönlendirilmiş. Aynısı, artı yedi kural: giriş bölümünü değiştirmeyin, her komutu, ortamı, etiketi, referansı ve atıf anahtarını koruyun, \text{} dışındaki matematiğe dokunmayın, birebir metin bloklarını ve URL'leri olduğu gibi bırakın, özel karakterlerin kaçış dizilerini koruyun, bağlaçları koruyun ve düz metni, başlıkları, dipnotları ve bağlantı metnini çevirin.
  3. Bölümler. Giriş bölümünü istekten tamamen uzak tutun (yalnızca \title satırı gönderilir, böylece \date İngilizce kalır), gövdeyi boş satırlardan bölün, birebir metin bloğunu atlayın, her parçayı aynı kurallarla gönderin ve yeniden birleştirin.

Model, Apple M4 Max 64 GB bellekte, LM Studio'da Qwen 3.6 27B (Q4_K_M) idi; düşünme kapalı ve sıcaklık 0.3 olarak ayarlandı. Her koşulu üç kez, toplamda dokuz kez, 26 Ekim 2026'da çalıştırdık. Betik run_llm_latex_test.py ve dokuz çıktının tamamı çıktılar klasöründe düzenlenmeden yayımlandı. Daha önce hiç yerel model kurmadıysanız, yerel LLM çeviri kılavuzumuz ayarları kapsıyor.

Her çıktıyı Tectonic 0.17.0 ile derledik; bu araç XeTeX motorunu kullanır. Bir kez tam döndüğü gibi, bir kez de giriş bölümüne Çince düzeni eklenmiş olarak derledik. Ardından her PDF'ten metni geri okuduk. Bu, tek bir model, tek bir dil çifti ve tek bir dosyayla yapılmış küçük bir testti. Hangi sorunların oluştuğunu ve bunları nasıl yakalayacağınızı gösterir. Modelleri veya istemleri sıralamaz.

Sonuç: Yapı Korundu; Metnin Görünüp Görünmemesini Giriş Bölümü Belirledi

check_latex_translation.py her çıktıyı kaynakla karşılaştırdı ve compile_check.py derledi. Tam çıktılar check-results.txt ve compile-results.txt dosyalarında, results.csv ise her çalıştırma için bir satır içeriyor.

KontrolTüm dosyaTalimat verildiSegmentler
Etiketler, referanslar, atıflar ve kaynakça anahtarları değişmedi3 / 33 / 33 / 3
Matematik değişmedi (\text{} içindeki metin çevrildi)3 / 33 / 33 / 3
URL'ler, süslü parantezler ve tablo sütunları bozulmadı3 / 33 / 33 / 3
Model, önsöze Çince bir paket ekledi3 / 30 / 30 / 3
Döndürüldüğü haliyle derleniyor3 / 33 / 33 / 3
Döndürüldüğü haliyle PDF'te gerçekten Çince metin var3 / 33 üzerinden 03 üzerinden 0
Birebir blok değişmedi3 üzerinden 33 üzerinden 23 üzerinden 3
% yorumları İngilizce bırakıldı3 üzerinden 33 üzerinden 33 üzerinden 1
Çince kurulum eklendikten sonra her referans ve atıf çözümleniyor3 üzerinden 33 üzerinden 33 üzerinden 3

Denetleyicimiz ilk çalıştırmada değişmiş matematik bildirdi. Matematik doğruydu: Çince sözcük sırası bir cümlede $N$ ifadesini $r$ öncesine taşımıştı. Yayımlanan denetleyici bu nedenle matematik parçalarını sırasız bir koleksiyon olarak karşılaştırır; yani yeniden sıralamaya izin verilir, ancak değişmiş bir simgeye izin verilmez.

1. "Önsöze dokunma" talimatı, içinde hiç Çince olmayan bir PDF üretti

Önsöz kuralı, verebileceğiniz en güvenli talimat gibi görünür. Örneğimizin önsözü amsmath, booktabs ve hyperref paketlerini yükler ve üç makro tanımlar; bunların hiçbiri çeviri gerektirmez. Bu yüzden talimatlı ve segmentli çalıştırmalar, tam söylendiği gibi onu olduğu gibi bıraktı.

Ancak standart bir LaTeX kurulumundaki varsayılan yazı tiplerinde Çince karakterler yoktur. Bu altı dosyanın her biri çıkış kodu 0 ile derlendi. Tectonic, her eksik karakter için bir kez olmak üzere Missing character: There is no 估 (U+4F30) in font [lmroman17-regular] gibi satırlarla uyardı ve günlük dosyası her çalıştırmada 554 ile 577 arasında uyarı kaydetti. Ancak bir uyarı derlemeyi durdurmaz. Bu altı PDF'ten metni çıkardığımızda, içlerinde yazar adları, sayılar ve matematik vardı, sıfır Çince karakter vardı. Üç tam dosya PDF'sinde 481 ila 490 arasında Çince karakter vardı. Yalnızca derlemenin başarılı olup olmadığını kontrol eden bir derleme betiği veya çıktının yalnızca sonuna göz atan bir kişi, altı dosyanın hepsini göndermiş olurdu.

Böyle bir kuralı olmayan üç tam dosya çalıştırması, kendi başlarına \usepackage{ctex} ekledi ve PDF'leri eksiksizdi. Bu, bir modelin önsözünüzü yeniden yazmasına izin vermek için bir neden değildir. Bu, hedef dil kurulumunu çeviri işinin bir parçası olarak görmek için bir nedendir; bir kez, sizin tarafınızdan yapılır:

  • Çince: pdfLaTeX, XeLaTeX ve LuaLaTeX'i destekleyen ctex paketini yükleyin. Varsayılan olarak işletim sisteminiz için yazı tipleri seçer; günlüğümüz macOS yazı tipi kümesini yüklediğini gösteriyor. Dosyanın diğer makinelerde de aynı şekilde derlenmesi gerekiyorsa, \usepackage[UTF8,fontset=fandol]{ctex} TeX Live ile dağıtılan ve Tectonic'in de istek üzerine indirdiği ücretsiz Fandol yazı tiplerini kullanır. compile_check.py betiğinin eklediği budur.
  • Diğer diller: hedef dille birlikte babel paketini yükleyin; böylece heceleme ve "Figure", "Table" ve "Abstract" gibi otomatik oluşturulan sözcükler yeni dili izler. Japonca, Korece ve sağdan sola yazılan dillerin her biri kendi kurulumunu gerektirir.

Derledikten sonra günlükte Missing character ifadesini arayın ve yalnızca çıkış kodunu değil, PDF'yi de okuyun. Biz yalnızca Tectonic üzerinden XeTeX'i test ettik; diğer motorlar eksik yazı tipini farklı bildirir.

2. Kaçış kuralı kod listesine sızdı

Talimatlarımız özel karakterlerin kaçışlı tutulmasını söylüyordu ve düz metinde bu doğru kuraldır: LaTeX'te çıplak bir % yorum başlatır ve satırın geri kalanını sessizce yutar. Dokuz çalıştırmanın hepsi özette 20\% ifadesini korudu.

İlk talimatlı çalıştırmada model, kuralı verbatim bloğunun içinde de uyguladı ve oradaki kod yorumunu çevirdi:

source:      shelfmark count --unit chars book.epub  # 100% of body text
translation: shelfmark count --unit chars book.epub  # 100\% 正文

verbatim içinde hiçbir şey komut değildir, bu yüzden PDF 100\% ifadesini ters eğik çizgiyle yazdırır. Çözüm daha iyi bir istem değildir. verbatim, lstlisting veya minted bloklarını hiçbir zaman bir çevirmene göndermeyin, tıpkı segmentler koşulunun yaptığı gibi. Ardından, okuyucularınızın ihtiyacı varsa, içlerindeki herhangi bir yorumu elle çevirin.

3. Yorumlar istek sınırlarına uydu

Dosyada iki % yorumu var: makro tanımlarının üstünde bir not ve kod listesinin üstünde bir TODO. Tüm dosya ve talimatlı çalıştırmalar ikisini de İngilizce bıraktı. Segmentler koşulu, TODO'yu üç çalıştırmanın ikisinde çevirdi, çünkü TODO çeviri için gönderdiğimiz bir paragrafla aynı blokta yer alıyordu. İki tüm dosya çalıştırması da ekledikleri paketten sonra kendi yorumlarını ekledi.

Bunların hiçbiri PDF'i değiştirmez. Çevrilmiş kaynak ortak yazarlara veya bir depoya geri giderse önem kazanır; burada çevrilmiş bir TODO artık orijinalle eşleşmez ve her farkta fazladan bir yorum görünür. Denetleyici, çevrilmiş yorumları uyarı olarak bildirir, böylece siz karar verebilirsiniz.

4. Yapısal kontroller geçti ama anlam yine de değişti

Özet, "%20 sapmış bir etiket hâlâ kullanışlıdır" diyor. Dokuz çalıştırmanın üçünde Çince, hatası %20 içinde olan etiketlerin hâlâ kullanışlı olduğunu söyledi; bu, bir toleransı eşiğe dönüştürür. Diğer birkaç çalıştırma cümleyi yeniden sıraladı, öyle ki "her ne kadar" yan cümlesi yanlış fikre bağlandı ve biri takip edilmesi zor hale geldi. Bunlar, Çinceyi İngilizceyle karşılaştıran tek bir okuyucunun yargılarıdır, kör bir inceleme değildir, ancak mesele tam sayıya bağlı değildir: 20\%, makro ve parantezlerin hepsi doğru olduğu için o dosyalarda her yapısal kontrol geçti.

Diğer iki değişiklik sorunsuzdu ama bilinmeye değer. Tüm dosya çalıştırmaları \$12 ifadesini 12美元 ("12 ABD doları") olarak yazdı, bu da kaçış sorununu tamamen ortadan kaldırır. İki tüm dosya çalıştırması ayrıca \ref ve \cite öncesindeki ~ bağlarının çoğunu kaldırdı. Bu, kelimeler arasına boşluk koymayan Çincede zararsızdır, ancak boşluk kullanan bir dilde eksik bir bağ, satır sonunun "Tablo"yu numarasından ayırmasına izin verir. Denetleyici bağları başarısızlık olarak değil, uyarı olarak bildirir.

Yapısal bir kontrol size dosyanın hâlâ çalıştığını söyler. Makalenin hâlâ aynı şeyi söylediğini söyleyemez. Bunun için, çevrilmiş bir araştırma makalesini inceleme rehberimizde açıklandığı gibi, özetin, iddiaların ve sayıların iki dilli bir okumasını yapın.

Sağlam Bir İş Akışı

  1. Kaynağı edinin ve onunla ne yapabileceğinizi kontrol edin. arXiv'de TeX ile gönderilen makaleler genellikle kaynaklarını özet sayfasındaki bir Kaynak bağlantısı veya Diğer biçimler sayfası aracılığıyla, gziplenmiş bir dosya ya da birden çok dosya olduğunda bir tar arşivi olarak sunar (arXiv yardım). Kendi okumanız için çeviri yapmak bir şeydir. Çeviriyi yayımlamak başka bir şeydir: arXiv'in kendi münhasır olmayan lisansı başkaları tarafından yeniden kullanımı sınırlar, CC BY ve CC BY-SA ise atıfla uyarlamalara izin verir, CC BY-NC-ND vermez. Şüphede kaldığınızda yazarlara sorun.

  2. Önce orijinali derleyin. Çeviriden önce derlenmiyorsa, sonrasında öğrendiğiniz hiçbir şey güvenilir değildir. Karşılaştırma için orijinal PDF'i saklayın.

  3. Hedef dili önsözde kendiniz ayarlayın. Yukarıdaki gibi ctex veya babel ekleyin, İngilizce metinle bir kez derleyin ve bu değişikliği ayrı olarak işleyin.

  4. Gövdeyi önsöz ve verbatim blokları olmadan çevirin. LaTeX'i ayrıştıran bir araç kullanın veya segmentler koşulumuzda olduğu gibi gövdeyi açık kurallarla parçalar halinde gönderin. Bunun için geliştirilmiş açık kaynaklı bir araç olan TransLaTeX, metni bir makine çevirmenine göndermeden önce LaTeX yapılarını belirteçlerle değiştirir. Belgeleri ayrıca belge başlığını değiştirmeden bıraktığını, makroları desteklemediğini ve yalnızca tek dosyalı belgeleri işlediğini, \input olmadığını söyler. Özel bir araç bile önsöz kararını size bırakır.

  5. Her dosya çifti üzerinde yapısal kontrolü çalıştırın.

    python3 check_latex_translation.py main.tex main-zh.tex --keep Shelfmark
    

    Önsözü, komut adlarını, ortam sırasını, etiketleri, referansları, atıfları, kaynakça anahtarlarını, matematiği, verbatim bloklarını, URL'leri, kaçışsız %, & ve # işaretlerini, parantez dengesini, bağları, yorumları ve korumasını istediğiniz terimleri karşılaştırır. 3. adımdan sonra orijinalle karşılaştırdığınızda önsöz satırının başarısız olmasını bekleyin; bunun yerine güncellenmiş İngilizce dosyanızla karşılaştırın. Birden çok \input dosyasına bölünmüş bir proje için her çifti kontrol edin.

  6. Derleyin ve PDF'i okuyun.

    python3 compile_check.py main-zh.tex
    

    Çözülmemiş referansları (??), çözülmemiş atıfları ([?]) ve eksik glifleri bildirir. Ardından PDF'i açın ve özeti, her başlığı ve her tabloyu orijinalle karşılaştırarak okuyun.

  7. İddiaların ve sayıların iki dilli bir okumasını yapın. Değişen üç cümlemiz burada yakalanırdı. Makalenin teknik terimleri için kısa bir çeviri sözlüğü tutun, böylece aynı terim üç farklı şekilde çevrilmez.

BookTranslator Nerede Uygun

BookTranslator'ın belge çevirmeni, PDF, DOCX, EPUB, Markdown ve diğer yapılandırılmış biçimlerin yanı sıra .tex dosyalarını da kabul eder. SSS'si, sonucun "biçim desteklediğinde kullanılabilir, biçime uygun bir dosya" olarak döndürüldüğünü söyler.

Ürün sayfası, LaTeX makrolarını, matematiği veya önsözü nasıl ele aldığını açıklamıyor ve bu makale için bu örneği BookTranslator üzerinden çalıştırmadık. Hangi aracı kullanırsanız kullanın, çeviriden önce 1. ila 3. adımları, sonrasında 5. ila 7. adımları yapın. Yalnızca İngilizce önsöz tutan bir dosya yine de Çince metin olmadan derlenir ve değişmiş bir iddia yine de her yapısal kontrolü geçer.

Bir makalenin yalnızca PDF'i varsa, kaynağı yoksa, iş akışı farklıdır: yapısını koruyarak bir araştırma makalesini çevirme rehberimize bakın. Kaynağınız LaTeX yerine Markdown ise, makine ile düzyazı arasındaki aynı ayrım farklı tuzaklarla geçerlidir; bunları Markdown Dosyaları Nasıl Çevrilir yazısında test ettik.

Test Dosyalarını Edinin

Bu testteki her şey ücretsiz olarak yeniden kullanılabilir:

İlgili Yazılar