Mostrando entradas con la etiqueta latex en español. Mostrar todas las entradas
Mostrando entradas con la etiqueta latex en español. Mostrar todas las entradas

martes, 3 de noviembre de 2015

Cómo añadir la página donde se cita cada referencia

En esta entrada explicaré cómo se puede hacer para que, en la bibliografía, junto a cada referencia, se diga el número de página donde ha sido citada en el documento. En primer lugar, depende de si usas o no, el paquete {hyperref}. Porque se hace distinto. Empecemos primero sin usarlo.

  • Si no usas el paquete {hyperref}
En este caso, podemos usar el paquete {backref} (con la opción ([pageref]), y ya nos aparecería el número de página.

\usepackage[pageref]{backref}


Y como ves, al final de cada cita, añade "pages" y los número de página donde aparece dicha referencia. Si estamos escribiendo en español, podemos añadir la opción [spanish], para que en vez de "pages", diga "páginas".

\usepackage[pageref,spanish]{backref}


En vez de "pages" (o "páginas"), podemos poner una pequeña frase. Por ejemplo, "Citado en páginas". Para eso, bastaría con editar la variable "\backrefpagesname", que es donde definido "pages".

\usepackage[pageref]{backref}

\renewcommand{\backrefpagesname}{Citado en páginas}


Está bien... pero no me llega a gustar del todo. Lo que realmente me gustaría es que, si una referencia es citada en una única página, que diga "página", y que si es citada en varias veces, que diga "páginas". Esto se puede hacer con el siguiente código, donde además, he añadido unos paréntesis para que cierren :

\usepackage[pageref,spanish]{backref}

\renewcommand*{\backref}[1]{}
\renewcommand*{\backrefalt}[4]{
    \ifcase #1 (No citado.)
          \or (Citado en página~#2.)
          \else (Citado en páginas #2.)
    \fi%
}

Y este sí que es un resultado que ya me gusta.

Unos últimos comentarios sobre este código: 1) Si escribes en español, sigue siendo importante la opción [spanish], para que añada "y" en vez de "and". 2) La frase "(No citado.)" se utiliza cuando una referencia no aparece en el documento. Cosa que nos pasaría si la hubiéramos añadido con \nocite{}. 3) El símbolo ~ se utiliza para que no separe en dos líneas distintas dos palabras. En este caso "página" y el número.



  • Si usas el paquete {hyperref}
Con este paquete, se crean links dentro del pdf final. Desde el índice de contenidos a las diferentes secciones. Y también desde cada referencia a la lista bibliográfica. Tienes más información sobre este paquete en esta otra entrada (click aquí).

Por lo que en este caso, resulta muy recomendable añadir otro link en cada referencia, para que nos lleve a la página donde fue mencionada. De hecho, este paquete ya incorpoera esta posibilidad, que se activa con la opción [backref=page]

\usepackage[backref=page]{hyperref}


El paquete {hyperref} no añade ninguna palabra extra. Por lo que no hay que preocuparse del idioma que estemos usando. Pero si queremos, también podemos añadir una pequeña frase, de manera parecida al caso anterior.

\usepackage[backref=page]{hyperref}

\renewcommand*{\backref}[1]{}
\renewcommand*{\backrefalt}[4]{
    \ifcase #1 (No citado.)
          \or (Citado en página~#2.)
          \else (Citado en páginas #2.)
    \fi%
}
\renewcommand*{\backrefsep}{, }
\renewcommand*{\backreftwosep}{ y~}
\renewcommand*{\backreflastsep}{ y~}


Las tres últimas líneas definen la separación, cuando hay varias páginas. Si estamos escribiendo en español, son importantes para que ponga "y" en vez de "and".

jueves, 28 de marzo de 2013

Cómo usar LaTeX en español

En la siguente entrada resumiré algunas opciones útiles, cuando estamos usando LaTeX en español. Tienes más opciones en el siguiente manual (click aquí).



Por defecto, las tablas se etiquetan en español como "Cuadro". Lo que queda muy feo. Si queremos que se etiqueten como tablas, en vez de como cuadros, basta con indicar la opción "es-tabla", cuando cargamos el paquete spanish:

\usepackage[spanish]{babel}
 

\usepackage[spanish, es-tabla]{babel}


Existe otra forma de hacerlo, y más general. Después de \begin{document}, podemos editar el nombre que reciben las tablas con las siguientes líneas. Donde en vez de {Tabla}, puedes poner la palabra que quieras.

\renewcommand{\tablename}{Tabla}



En español, los decimales se separan con una coma. Mientras que en inglés, se separan con un punto. Si quieres que en español también se separen con una coma, lo puedes indicar con la opción "es-nodecimaldot":

 \usepackage[spanish]{babel}

\usepackage[spanish, es-nodecimaldot]{babel}




En español, los números romanos se escriben siempre en mayúscula. Por lo tanto, la instrucción "roman" (que cuando trabajamos en inglés, pone los números romanos en minúscula), en español no funciona. Si queremos que esta instrucción esté habilitada también en español, podemos añadir la opción "es-lcroman":

\usepackage[spanish, es-lcroman]{babel}



Cuando trabajamos en español, la primera línea de todos párrafos tiene una pequeña sangría. En inglés, esto sucede en todos los párrafos excepto en el primero de cada sección. Si queremos que en español tampoco se añada la sangría en el primer párrafo, podemos añadir la opción "es-noindentfirst":

\usepackage[spanish, es-noindentfirst]{babel}

Y al contrario. Si queremos que cuando trabajemos en inglés, sí se añada  una sangría en los primeros párrafos, podemos usar el paquete {indentfirst}:

\usepackage[english]{babel}
\usepackage{indentfirst}



En inglés, cuando usamos los símbolos "<" y ">" en el texto (no en una ecuación), producen los símbolos "¡" e "¿". Cosa bastante rara, por cierto. Mientras que en español, estos simbolos se usan para producir las comillas bajas (que no existen en inglés). Tienes más información en esta otra entrada (click aquí).

Me gusta muchísimo más el sistema español. Sin embargo, a veces tiene un problema. Hay paquetes que están pensados para trabajar en inglés, y usan los comandos "<" e ">". Y si trabajamos en español, daría un error. Para evitarlo, podemos poner la opción "es-noquoting" o "es-noshorthands":

\usepackage[spanish]{babel} 
<<No eres quien piensas.>>


\usepackage[spanish, es-noquoting]{babel} 
<<No eres quien piensas.>>


Con "es-noquoting" se desactiva el uso solo de "<" y ">". Mientras que con "es-noshorthands" se desactivan todas las abreviaciones de [spanish]. Dependiendo del paquete que te de problemas, te bastará con utilizar "es-noquoting", o bien necesitarás usar "es-noshorthands".



En español, justo detrás de los números de las secciones, se añade un puntito. Si queremos que no aparezca, podemos usar la opcin "es-nosectiondot":

\usepackage[spanish]{babel}
\section{Una bonita historia}
  

\usepackage[spanish,es-nosectiondot]{babel}
\section{Una bonita historia}




Con LaTeX se puede trabajar perfectamente con los símbolos no anglosajones, ¿? ñ Ü á, etc... escribiéndolos directamente desde el teclado (click aquí). Pero si un día te falla algo (quizás en una referencia, en una ecuación, etc.), siempre puedes usar dichos símbolos con código:

\'a \'e \'i \'o \'u \"u
\'A \'E \'I \'O \'U \"U
\~n \~N
?` ?  !` !

miércoles, 9 de enero de 2013

Cómo poner "y" en vez de "and" en la bibliografía, cuando estamos escribiendo en español

Cuando una cita bibliográfica tiene varios autores, LaTeX los separa con la conjunción "and". Independientemente de si estamos escribiendo nuestro documento en inglés o en otro idiomañ lo que creo que es un fallo grave en LaTeX. Si por ejemplo, estamos escribiendo en español, los autores deberían separarse por la conjunción "y" (y a veces "e").

Lo mejor sería usar un estilo bibliográfico ya preparado para trabajar en español. Por ejemplo, "apalike-es.bst", que es una traducción al español del estilo "apalike.bst" (click aquí). Este estilo es muy inteligente y automáticamente te pondrá "y" o "e" dependiendo de si la siguiente palabra empieza o no por i. También te pone correctamente "Tesis de máster", "Tesis doctoral", etc.

Si queremos usar otro estilo distinto bst, y no tenemos su adaptación al español, siempre podemos tratar de editarlo nosotros mismo. En el resto de la entrada,  explico cómo hacerlo.



Para empezar, supongamos que nuestro documento de .tex es el siguiente:

\documentclass[a4paper,openright,12pt]{report}
\usepackage[spanish]{babel}
\usepackage[latin1]{inputenc}
\usepackage[sort&compress]{natbib}

\begin{document}

Como dicen \cite{Beatriz2010} puedes...

\bibliographystyle{apalike}
\bibliography{biblio}

\end{document}

En este caso, para que sirva de ejemplo, uso el formato de bibliografía "apalike.bst" (pero los pasos son similares con otros estilos bst). Este archivo lo habremos descargado de la web y salvado en la misma carpeta que nuestro archivo tex (click aquí).

Además, "biblio.bib" es un archivo donde tenemos salvado nuestra bibliografía. En este caso, el siguiente arículo:

@ARTICLE{Beatriz2010,
  author = {B. Beatriz and C. Carla},
  title = {Historias interesantes},
  journal = {Cuentos},
  year = {2010},
  volume = {66},
  pages = {203-212},
}

El resultado es el siguiente:


Para que aparezca "y" en vez de "and", tenemos que editar el fichero ".bst"

Como este fichero es medianamente grande, lo podemos abrir con Wordpad o Notepad++ o el editor de texto que quieras. Creo que es demasiado grande para abrirlo con Notepad.

A continuación, buscamos el texto «" and "» y lo sustituimos por «" y "».  En este caso, solo está en dos sitios, en las funciones siguientes. (Aunque esto depende de cada archivo .bst)

FUNCTION {format.names}
FUNCTION {format.lab.names}




Y ya está. Con esto ya debería de funcionar.




Este método tiene un problema. Y es que si el apellido del último autor empieza por I, nos va a poner "y", cuando lo correcto sería poner "e".

Por ejemplo, si añadimos el siguiente artículo: 

@ARTICLE{Guerrero2013,
  author = {A. Guerrero and M. Iguala},
  title = {Robots},
  journal = {robótica aplicada},
  year = {2013},
  volume = {55},
  pages = {400-409},
  owner = {lgomezpa},
  timestamp = {2014.07.01}
}

El resultado sería:

Como dicen \cite{Beatriz2010}, \cite{Guerrero2013} puedes...


Este no es un problema que nos vaya a pasar muchas veces, pero tenemos que resolverlo. Un método rápido (aunque poco elegante) de hacerlo, es añadir la referencia correspondiente a mano.

Primero, en el fichero .bib, escribimos entre {}, el nombre de los autores, como queremos que se vea en la lista de la bibliografía.

@ARTICLE{Guerrero2013,
  author = {{Guerrero, A. e Iguala, M.}},
  title = {Robots},
  journal = {Robótica aplicada},
  year = {2013},
  volume = {55},
  pages = {400-409},
  owner = {lgomezpa},
  timestamp = {2014.07.01}
}

Segundo, en el fichero .tex, escribimos a mano la referencia. Y para que aparezca en el bibliografía, la añadimos con \nocite.

Como dicen \cite{Beatriz2010}, Guerrero e Iguala (2013) puedes...
\nocite{Guerrero2013}




De la misma forma, podemos cambiar otras palabras que en la bibliografia aparezcan en inglés. Por ejemplo:
  • En una tesis de maestría.
    Buscamos la función "FUNCTION {mastersthesis}", y sustituimos:
    «"Master's thesis"»  por «"Tesis de Maestría"». O lo que más te guste a ti.


  • En una tesis de doctorado.
    Buscamos la función "FUNCTION {phdthesis}", y sustituimos:
    «"PhD thesis"»  por «"Tesis de Doctorado"». O lo que más te guste a ti.
  

  • En un informe técnico.
    Buscamos la función "FUNCTION {format.tr.number}", y sustituimos:
    «"Technical Report"»  por «"Informe Técnico"». O lo que más te guste a ti.

Nota: Si quieres que una letra esté siempre en mayúsculas, métela entre llaves. Por ejemplo «"Informe {T}écnico"»

lunes, 7 de enero de 2013

Cómo poner correctamente las preposiciones de los apellidos en la bibliografía

En muchas ocasiones, el apellido de un autor tiene una o varias preposiciones. Por ejemplo, Ramón del Valle-Inclán. Desconozco en otros idiomas, pero en español, la lista bibliográfica debería ordenarse por el apellido sin las preposiciones, y estas ponerse detrás del nombre. Es decir:
  • Valle-Inclán, Ramón del
Mientras que en el texto, cuando nos referimos al autor solo por el apellido, quitamos las preposiciones. Es decir:

El autor de "Luces de bohemia" es Valle-Inclán.



No conozco una forma elegante de resolver esto con LaTeX. Pero, para salir del paso, se me ocurre lo siguiente.

Primero, en nuestro archivo ".bib", escribo entre llaves el nombre y apellidos del autor, tal como quiero que aparezca en la bibliografía.

@ARTICLE{Valle2012,
author = {{Valle-Inclán, R. del} and {Vega, L. de}}
...

Mientras que en mi archivo .tex escribo la cita a mano, sin el comando "\cite{}". Pero para que la cita aparezca en la bibliografía, la añado con el comando "\nocite{}".

Como dicen Valle-Inclán y Vega (2012)...
\nocite{Valle2012}

Cuyo resultado es:


Si sabes una forma más elegante de hacerlo, te animo a que me la digas. :-)

jueves, 3 de marzo de 2011

Cómo usar LaTeX en varios idiomas

A continuación mostraré cómo trabajar en LaTeX en varios idiomas. Nuestro archivo .tex será similar a lo siguiente, donde se han cargado los idiomas "spanish" y "USenglish".

\documentclass[a4paper,openright,12pt]{report}
\usepackage[spanish,USenglish]{babel} % espanol, ingles
\usepackage[utf8]{inputenc} % acentos sin codigo


\begin{document}

\end{document}

Cuando se cargan más de un idioma, LaTex trabaja con el último paquete. Para ir cambiando el idioma utilizado a lo largo del documento, se utiliza el comando \selectlanguage{spanish}.

\selectlanguage{spanish}

Primero en español. Tenemos que minimizar los costes (\ref{fun:min_esp}).

\begin{equation} \label{fun:min_esp}
\min_{u} J = \sum_{i} y(i) \cdot 1.5
\end{equation}

\selectlanguage{USenglish}

Next, in English. Expenses should be minimized (\ref{fun:min_eng}).

\begin{equation} \label{fun:min_eng}
\min_{u} J = \sum_{i} y(i) \cdot 1.5
\end{equation}


Nótese que LaTeX pone automáticamente "min" con acento o sin acento, y la separación de decimales con coma o punto, dependiendo de si se trabaja en español o inglés.