[Megoldva] LyX tétel hiba

 ( _jack_ | 2009. június 24., szerda - 23:33 )

Sziasztok!

Valaki tudja használni az Ubuntu Jaunty-ban levő LyX 1.6.2-ben a tétel környezeteket? Nekem csak akkor működik, ha angolra állítom a nyelvet. Ha magyarra veszem, a "Theorem 1" átalakul "1. tétel"-re, lehet szerkeszteni is, de nem lehet semmilyen kimenetet generálni belőle - mindig hibát jelez az "1. tétel" utáni karakternél.

A hiba nem a fájl kódolásán múlik, utf8-cal is jól működik angolul, magyar szöveget is lehet bele írni, latin1-gyel is működik. Minden akkor romlik el, mikor a dokumentum nyelvét magyarra állítom.

Sajnos ebben a "Theorem 1" formában nem elfogadható a dolog, meg nagyon gányolni sem szeretnék saját kódok beszúrásával. Van valakinek valami ötlete, mi lehet a gond?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Nos, a hiba nem a LyX-ben van, hanem a LaTeX-ben: a babel csomagban levő magyar.ldf elavult (1.4j), és ütközik az amsmath csomaggal.

A CTAN-ról letöltöttem az újabbat (1.5), az már nem ad hibát, de "1. tétel" helyett "1. Theorem"-et kapok. Hát, itt tartok most...

ntheorem csomag segít a gondon. Nekem legalábbis megtette.
--
Fight / For The Freedom / Fighting With Steel

Köszi, utána nézek.

Úgy tűnik, a babel nem fordítja le automatikusan a definiált tétel környezetek címkéit. A LyX a tételek használatakor a következő környezetet definiálja:

\newtheorem{thm}{Theorem}

Az új magyar.ldf-fel már megeszi a LaTeX a fájlt, és "Theorem 1" helyett "1. Theorem."-et kapunk. A LyX-ben a Dokumentum > Beállítások > LaTeX preambulum részben felül tudjuk írni a dolgot a következő beszúrásával:

\newtheorem{theo}{tétel}
\renewenvironment{thm}{\begin{theo}}{\end{theo}}

(A "theo" név helyett bármi lehet, csak ne ütközzön más nevekkel és feleljen meg az azonosítókra vonatkozó szabályoknak). Így már megkapjuk az "1. tétel." formát. Ha azt is szeretnénk, hogy section-önként legyenek számozva a tételek - mint az angol változatban - akkor még a következőt is be kell írni a preambulumba:

\numberwithin{theo}{section}

(Ha más nevet adunk neki, a "theo"-t itt is át kell nevezni!) Természetesen ha más környezeteket is használunk az amsthm-ből, azokra is el kell játszani ugyanezt (pl. bizonyítás, tény, stb.), mindnek egyedi nevet adva (pl. biz, teny, stb.).

Forrás: LyX wiki i18n címkék

PS: persze a fentiek sima LaTeX-ben is működnek, bár ott elég simán a kezdő \newtheorem-ben a "Theorem"-et "tétel"-re cserélni, nem kell az újradefiniálásos bohóckodás.
PS2: LyX-ben szerkesztés közben magyar címkéket látunk ("1. tétel."), ez a program magyar fordításának része, semmi köze sem a preambulumba beírtakhoz, sem a generált kimenethez.