Teoremas, definiciones, ejemplos, etc. en español con AMS-Latex en Lyx

Desde hace un tiempo soy usuario de Lyx, un procesador de texto WYSIWYM basado en LaTeX, pero casi WYSIWYG gracias a que es un híbrido dirigido a principiantes de LaTeX o, simplemente, a hacer más fácil la vida trabajando con TeX. En particular, requiero escribir contenido matemático y, para ello, me es muy útil el paquete AMS LaTeX que existe para LyX, pues con él puedes escribir fácilmente teoremas, definiciones, ejemplos, corolarios, etc. numerados o sin numerar, automáticamente y con un excelente y elegante formato. Sin embargo, tenía un problema, y es que el paquete AMS LaTeX, no por nada de la American Mathematical Society, está hecho para escribir en inglés y, más frecuentemente, requiero escribir en español. El problema era entonces que los títulos de los ambientes, ya en el pdf, me aparecían en inglés (theorem, corollary, definition, etc.) en vez de en español como, de hecho, sí aparecen en LyX (creo que gracias a al paquete babel, que por lo demás traduce muy bien el resto de los ambientes). Había estado lidiando con este problema por un rato, y todas las soluciones que había encontrado eran para usuarios de LaTeX puro, pero no estaban claras para los usuarios de LyX y no lo había podido arreglar, hasta hoy. En los foros de LaTeX community, encontré un hilo donde se plantea una solución que me sirvió casi tal cual, con una pequeña modificación. La solución consiste en modificar el preámbulo de LaTeX desde LyX (Documento –> Configuración –>Preámbulo LaTeX) y añadir unas líneas donde se especifica que hay que intercambiar los nombres por los títulos en español. Para cambiar los títulos de teoremas, definiciones, proposiciones, ejemplos, etc. a mi me quedó así:

\makeatletter
\@namedef{thm}{\@thm{\let \thm@swap \@gobble \th@plain }{thm}{Teorema}}
\@namedef{cor}{\@thm{\let \thm@swap \@gobble \th@plain }{thm}{Corolario}}
\@namedef{defn}{\@thm{\let \thm@swap \@gobble \th@definition }{thm}{Definici\'on}}
\@namedef{prop}{\@thm{\let \thm@swap \@gobble \th@plain }{thm}{Proposici\'on}}
\@namedef{prop*}{\@thm {\th@plain }{}{Proposici\'on}}
\@namedef{example*}{\@thm {\th@definition }{}{Ejemplo}}
\@namedef{xca}{\@thm{\let \thm@swap \@gobble \th@definition }{thm}{Ejercicio}}
\@namedef{rem*}{\@thm {\th@remark }{}{Observaci\'on}}

En la liga, pueden ver los detalles de el por qué de cada línea. La única añadidura que hice fue eliminar una línea al final, según el texto que proponen en el foro, pues a mi me dió problemas (usando LyX 1.6.5 con babel en Ubuntu 10.04) y no me compilaba.

Espero esto ayude a alguien más que pudiera tener este problema.

About these ads

14 pensamientos en “Teoremas, definiciones, ejemplos, etc. en español con AMS-Latex en Lyx

  1. hola
    recientemente comence a utilizar lyx y me enfrente al problema que describes. tu solución me funciono perfectamente, sin embargo segui teniendo problemas al tratar de usar el módulo de demostración, y el ambiente de bibliografia. finalente encontre una solucion quiza les sea de ayuda.
    Basta con insertar en codigo tex al inicio del documento lo siguiente (necesariamente en el documento, no en el preambulo latex):

    \renewcommand\refname{Referencias}

    \renewcommand\proofname{Demostraci\’on}

    saludos

  2. Para la clase Book que no tiene capítulos aparecen 0.1 y así …
    para evitar esto poner en el preámbulo:

    \renewcommand{\thesection}{\@arabic\c@section}

    Fuente: Bioinformático

  3. Otra duda,
    resulta que mi lyx me está numerando las definiciones, lemas, ejercicios con el mismo conteo, es decir si ponga por jeemplo definición 1, luego pongo un ejercicio y me dice ejercicio 2, en vez de decir ejercicio 1.
    … Sabes como resolverlo?

    • Me da gusto que te sirva mi aporte, Ramón. Para numerar independientemente los diferentes campos tienes que agregar un módulo de LaTeX (package) en las opciones del documento. Te vas a documento –> configuración y del lado izquierdo hay un campo que dice módulos; ahí seleccionas el de AMS que dice numerar independientemente los campos o algo así, lee lo que dice y justamente hay uno que dice específicamente que eso es lo que hace, cambiando el comportamiento predefinido que comentas. Yo también lo cambié porque tampoco me gusta la numeración predefinida. Sólo toma en cuenta que hay algunos paquetes que no son compatibles entre sí y hay otros que son dependientes de segundos paquetes, pero ahí mismo te pone en gris los paquetes que no puedes instalar si tuvieras problemas de dependencias, en cuyo caso, elimina el paquete que te crea conflicto para que puedas agregar el nuevo.

      • Hola Fermín,
        muchas gracias por el aporte, llevaba un cierto tiempo buscando la forma de que LyX al generar el documento pdf escribiese en español las palabras “teorema”, “ejemplo”, etc.
        No obstante, con respecto a la numeración, no basta sólo con ir a Documento->Configuración y elegir los módulos adecuados de AMS. Efectivamente hay que cargar estos módulos, pero aún así, aunque en el documento lyx se ve la numeración correcta, al generar el pdf sigue numerando consecutivamente con independencia del tipo de objeto, esto es, te imprime “Teorema 1″, “Corolario 2″, “Ejercicio 3″, etc.

        El problema deriva de que en el preámbulo que has puesto, para todos los objetos siempre figura {thm} antes de la traducción al español, como en:
        \@namedef{cor}{\@thm{\let \thm@swap \@gobble \th@plain }{thm}{Corolario}}
        por lo que al compilarlo se numeran todos los objetos consecutivamente. La siguiente modificación, muy simple, en la que cada objeto recibe su nombre antes de la traducción, me ha resuelto el problema:

        \makeatletter
        \@namedef{thm}{\@thm{\let \thm@swap \@gobble \th@plain }{thm}{Teorema}}
        \@namedef{thm*}{\@thm {\th@plain }{}{Teorema}}
        \@namedef{cor}{\@thm{\let \thm@swap \@gobble \th@plain }{cor}{Corolario}}
        \@namedef{cor*}{\@thm {\th@plain }{}{Corolario}}
        \@namedef{defn}{\@thm{\let \thm@swap \@gobble \th@definition }{defn}{Definici\’on}}
        \@namedef{defn*}{\@thm {\th@plain }{}{Definición}}
        \@namedef{prop}{\@thm{\let \thm@swap \@gobble \th@plain }{prop}{Proposici\’on}}
        \@namedef{prop*}{\@thm {\th@plain }{}{Proposici\’on}}
        \@namedef{example}{\@thm{\let \thm@swap \@gobble \th@definition }{example}{Ejemplo}}
        \@namedef{example*}{\@thm {\th@definition }{}{Ejemplo}}
        \@namedef{xca}{\@thm{\let \thm@swap \@gobble \th@definition }{xca}{Ejercicio}}
        \@namedef{xca*}{\@thm {\th@plain }{}{Ejercicio}}
        \@namedef{rem}{\@thm{\let \thm@swap \@gobble \th@definition }{rem}{Observaci\’on}}
        \@namedef{rem*}{\@thm {\th@remark }{}{Observaci\’on}}

        Espero que le sea útil a quienes se encuentren con este problema.

        Saludos

      • ¡Gracias por tu aporte! No recuerdo que yo tuviera el problema que mencionas, es decir, creo que a mi sí me imprimía bien la numeración en el PDF también, pero en caso que alguien tenga el mismo problema, por supuesto que puede ayudar. Nuevamente gracias.

  4. Hola Fermín,
    busqué en google una solución a mi problema, ese de cambiar el idioma a los modulos de matemáticas, total que dí con tu blog, apliqué la solución y ya cuando iba guardar la página por si en el futuro necesito esta funcionalidad me di cuenta que TU eres el autor… Ja ja

    Saludos

  5. Hola. me ha funcionado bien, pero no sé cómo cambiar para que en vez de lemma aparezca lema. Saludos

    • Debes agregar una línea como

      \@namedef{lem}{\@thm{\let \thm@swap \@gobble \th@plain }{thm}{Lema}}

      entre las otras definiciones que quieras hacer para cambiar los nombres.

      • Hola. Cómo podría hacer para que al insertar una tabla, en lugar de que aparezca Cuadro, aparezca Tabla.
        Gracias.

  6. Muchas gracias por tu aporte, me ha sido de gran utilidad.
    Estoy escribien mi proyecto fin de carrera en un tipo de documento libro en LYX y hay un par de cosas que no consigo hacer:
    - La primera es cambiar que en lugar de que aparezca Bibliografía, aparezca Referencias.
    - Y la seguna es que estas Referencias aparezcan en el índice general.
    He estado buscando por varios sitios, pero no me ha funcionado nada de lo que he encontrado. Uso LyX para Windows.

    Gracias.

    • El primer número debe ser el número de la sección, el segundo de la subsección. ¿Has definido algúna sección? Probablemente estés usando en ambiente de subsección y se te haya olvidado usar el de sección. Si sólo tienes un nivel de profundidad en tu árbol, te recomiendo usar solamente secciones y no usar subsecciones. Por otro lado, podría también ser que estés usando una clase de documentos que utilice “partes” como en la clase de libro (Book); revisa qué clase de documento estás usando.

¿Qué te parece? ¿Qué opinas?

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s