A continuación se presentan las novedades principales que se han añadido a la versión 1.3 de la Plantilla de Trabajos Fin de Estudios (TFE).
1 Los sistemas de bibliografía
1.1 Método 1: El sistema de bibiografía basado en natbib
El uso del paquete LaTeX “natbib” para trabajar con la bibliografía, se activa en la cabecera “yaml” del fichero “tfe_principal.Rmd” del siguiente modo:
bibliography: ["bib/library.bib", "bib/paquetes.bib"]
metodobib: true
biblio-style: "apa-good"
output:
pdf_document:
citation_package: natbib
Se pueden hacer uso de las siguientes opciones adicionales:
bibliography: ["bib/library.bib", "bib/paquetes.bib"]
#biblio-title: "Referencias"
# metodobib -> true: natbib (descomentar: citation_package: natbib)
# -> false: pandoc (comentar: citation_package: natbib)
metodobib: true
#biblio-style con natbib
#natbib: plainnat, abbrvnat, unsrtnat
#natbib: chicago, apalike
#natbib: apalike2 (https://ctan.org/pkg/apalike2)
biblio-style: "apa-good"
#natbiboptions: "numbers" # "square,numbers" # ver: https://www.ctan.org/pkg/natbib
# más info: authoryear,numbers, super, angle, sort, compress
# https://ctan.javinator9889.com/macros/latex/contrib/natbib/natnotes.pdf
Los estilos de bibliografía con “natbib” que se ha comprobado funcionan con esta plantilla al seleccionarlos con el parámetro “biblio-style” son:
- plainnat, abbrvnat, unsrtnat
- chicago, apalike
- apalike2 (https://ctan.org/pkg/apalike2)
- ACM-Reference-Format (ref-url)
Los siguientes estilos no pueden usarse con el paquete “natbib” cargado y por tanto no serían válidos los comandos de citación específicos de “natbib” (solución no recomendada para que funcionase, sería comentar la orden \usepackage{natbib}
en el fichero “tfe_principal.tex” y compilar con “pdflatex”):
- plain, alpha, abbrv, unsrt, acm, ieeetr
biblio-style: plainnat
1.2 Método 2: el sistema de bibliografía basado en pandoc-csl
bibliography: ["bib/library.bib", "bib/paquetes.bib"]
metodobib: false
csl: methods-in-ecology-and-evolution.csl # no numera mejor en las citas
#csl: acm-sig-proceedings-long-author-list.csl # numera peor en las citas
#csl: apa.csl # apa.csl, ieee.csl
output:
pdf_document:
#citation_package: natbib
1.3 Método 3: el sistema de bibliografía basado en flexbib
La información sobre el paquete LaTeX “flexbib” sobre BibTeX se encuentra en: https://www.latex.um.es/retazos/leccion_15/flexbib.html. Desde aquí quiero hacer constar el agradecimiento a los creadores.
Con el paquete LaTeX “flexbib” se facilita la escritura de la bibliografía en español (opción: spanish). También lo facilita para otros idiomas: inglés (english), francés (french) y el alemán (german).
-
En el manual se pueden encontrar todas las opciones disponibles a partir de la página 8. Se recomienda también leer el apartado 2 “El sistema flexbib” a partir de la página 4, para conocer las características generales y opciones que este paquete LaTeX nos permite personalizar en relación con la citas de referencias y la presentación de la bibliografía.
Nota: Se ha modificado la opción de flexbib “sort&compress” por “sortcompress”, para evitar un error que se producía al transformar “pandoc” el documento.
1.3.1 Cómo usar flexbib en la plantilla
Importante. En la cabecera yaml se debe tener activo los siguientes valores:
metodobib: true
output:
pdf_document:
citation_package: natbib
Si se va a usar “flexbib” se deben ajustar también los valores de: flexbib
y flexbiboptions
, en la cabecera “yaml” del fichero “tfe_principall.Rmd”.
Se muestran algunos ejemplos a continuación:
Ejemplo 1. Se eligen: spanish (bibliografía en español) y plain (bibliografía numerada)
flexbib: true flexbiboptions: spanish, plain
Ejemplo 2. Se elige: spanish (bibliografía en español) y por defecto se utiliza referencias autor-año (bibliografía sin numerar)
flexbib: true flexbiboptions: spanish
Ejemplo 3. Se eligen: spanish (bibliografía en español), plain (bibliografía numerada), datebegin (año en la bibliografía después del autor), sortcompress (al citar, sustituye [1,3,2] por [1-3]), nocomment y noabstract (no muestran los campos del fichero BibTeX: “comment” y “abstract”)
flexbib: true flexbiboptions: spanish, plain, datebegin, sortcompress,nocomment, noabstract
1.3.2 Solución de problemas
- Si se cambia de método bibliográfico, se recomienda borrar previamente los ficheros con extensión: “.bbl” y “.blg”, si no se hace podría producirse errores lo que impediría la creación del fichero pdf final.
2 Simplificar cabeceras de ficheros de capítulos
La idea se pudo concretar usando la información en: Stackoverflow: “Importing common YAML in rstudio/knitr document”.
Se han creado unos ficheros cuyos nombres empiezan por “cabecera_.” que contienen información en formato: “yaml”, “tex” (latex) y “R”, de forma que los ficheros R Markdown (Rmd) que contienen la información de los distintos capítulos y apéndices tienen menos definiciones al inicio de cada uno de estos ficheros que en las versiones anteriores, lo que tiene las siguientes ventajas:
- Se accede rápidamente al texto-contenido del capítulo/apéndice.
- Permite usar el “Editor Visual de RStudio” sin que se causen errores (ver nota a continuación). Se recomienda el uso de este editor visual de RStudio, sobre todo si ha usado poco RStudio.
Nota: Se recomienda no modificar esas primeras líneas.
3 Uso de diferentes familias de fuentes
En la cabecera “yaml” del fichero “tfe_principal.Rmd” se pueden usar (por defecto: “fontfamily: lmodern”) las siguientes opciones:
Familia “lmodern” pero con “sans serif” (paloseco)
paloseco: true
Nota: también se podría usar esta opción con otras fuentes, por ejemplo: “inconsolata”.
Familia: “helvet”, y familia matemática: “mathptmx”
fontfamily: helvet fontmathfamily: mathptmx
fontfamily: helvet fontfamilyoptions: scaled fontmathfamily: mathptmx
Familia: “avant”, y familia matemática: “mathptmx”
fontfamily: avant fontmathfamily: mathptmx
Familia: “roboto”, y familia matemática: “mathptmx”
fontfamily: roboto fontfamilyoptions: sfdefault #\usepackage[sfdefault]{roboto} fontmathfamily: mathptmx
Familia: “arev”
fontfamily: arev
Familia: “inconsolata”
fontfamily: inconsolata
Familia: “FiraSans”, y familia matemática: “newtxsf”
#paloseco: true # con fuente por defecto (lmodern) fontfamily: FiraSans fontfamilyoptions: "sfdefault,scaled=.85" negritastt: "0.85" fontmathfamily: newtxsf fontmathfamilyoptions: cmintegrals
Nota: la opción
negritastt: "0.85"
añade el manejo de las fuentes typewriter en negrita y además mejora el uso de las fuentes typewriter (o verbatim).
Se puede encontrar más información en: Github del libro: “LaTeX-Beginner”.
Algunos comandos LaTeX que permiten seleccionar fuentes diferentes con “pdflatex”.
\renewcommand{\familydefault}{sfdefault}
\usepackage{inconsolata} %buena
\usepackage{courier}
\usepackage{helvet}
\usepackage{sfmath}
\usepackage[math]{kurier}
%\usepackage{kmath}
\usepackage{kerkis}
\usepackage{concrete}
\usepackage{concmath}
\usepackage{newcent}
\usepackage{fouriernc}
\usepackage{newtxtext} % times
\usepackage{newpxmath}
\usepackage{newpxtext} % palatino
\usepackage{newpxmath}
\usepackage[light]{kpfonts}
\usepackage{cmbright}
\usepackage{arev}
\usepackage[sfdefault,scaled=.85]{FiraSans}
\usepackage[cmintegrals]{newtxsf}
% https://tex.stackexchange.com/questions/215482/how-do-i-get-texttt-with-bold-face-in-latex
\usepackage[sfdefault,scaled=0.95]{FiraSans}
\usepackage{bold-extra}
\usepackage[scaled=0.95]{beramono}
\usepackage[cmintegrals]{newtxsf}
\let\openbox\relax
\let\Bbox\relax
\usepackage{amssymb,amsmath}
%\usepackage[varqu,varl]{zi4}% inconsolata typewriter
Otras pruebas:
Familia: “sourcecodepro”
fontfamily: sourcecodepro fontfamilyoptions: default #\usepackage[default]{sourcecodepro}
4 Crear un documento sin capítulos
Cambiar la cabecera yaml del siguiente modo:
documentclass: article
article: true
En el fichero “tfe_principal.Rmd”, eliminar los saltos de página no adecuados, quitar la lista de tablas y/o figuras si fuera necesario, etc.
5 Otros ajustes que pueden ser útiles
5.1 Evitar que el código R fuente no sobrepase el ancho del texto
Se debe usar el siguiente parámetro en la cabecera yaml:
codigoajusta: true
5.2 Cambia el tamaño de la fuente del código en todo el fichero (echo)
Se debe usar el siguiente parámetro en la cabecera yaml (“normalsize”, “small”, “footnotesize”):
codigofuente: "footnotesize"
5.3 Cambia el tamaño de la fuente de la salida del código R en una parte del documento
Se debe usar de la siguiente manera en el texto (“normalsize”, “small”, “footnotesize”, “tiny”):
\verbatimfont{\tiny}
`r ''````{r}
summary(mtcars)```
\verbatimfont{\normalsize}
5.4 Cambia el tamaño de la fuente del código R (echo) en una parte del documento
Se debe usar de la siguiente manera en el texto (“normalsize”, “small”, “footnotesize”, “tiny”):
\renewcommand{\CodigoFuente}{\tiny}
`r ''````{r}# une con segmentos lineales
plot(v_y ~ v_x, type="l",col="blue") ```
`r ''````{r}
# une con segmentos lineales y puntos
plot(v_y~v_x,type="o",col="red")
```
\renewcommand{\CodigoFuente}{\footnotesize}
5.5 Cambiar el color del texto en teoremas
Introducir después del primer chunk del fichero “tfe_principal.Rmd” el siguiente comando LaTeX (se cambia a color negro en el modo pdf digital):
\definecolor{ocre}{RGB}{0,0,0}
5.5.1 En lugar de “Apéndice” llamarlo “Anexo”
Modificar en el fichero “tfe_principal.Rmd” las líneas que aparecen junto a la instrucción LaTeX \appendix
:
\renewcommand\appendixname{Anexo}
Se podría personalizar también la numeración de los apéndices añadiendo:
\renewcommand\thechapter{\Alph{chapter}}
\renewcommand\thesection{\Alph{chapter}.\Roman{section}} \setcounter{chapter}{0}
5.6 Personalizar la presentación de los capítulos
Colocando en la cabecera yaml del fichero “tfe_principal.Rmd” las líneas asociadas a la clave: “header-includes” siguiente:
link-citations: yes
header-includes:
- \usepackage[Conny]{fncychap}
- "% Options: Glenn, Sonny, Bjornstrup, Lenny, Conny, Reijne (estandar), Bjarne (no)"
output:
Se usa el paquete LaTeX “fncychap” que dispone de varios formatos o estilos para la presentación de los capítulos.
5.7 Cómo evitar errores de codificación con los ficheros de la plantilla-memoria
El motivo es que algunos alumnos envían problemas indicando que no se les crea el pdf y suele estar motivado porque han introducido algunos acentos y no están escritos en la codificación utf8.
Los mensajes de error son del siguiente tipo:
/Applications/RStudio.app/Contents/MacOS/quarto/bin/tools/pandoc +RTS -K512m -RTS tfe_principal.knit.md --to latex --from markdown+autolink_bare_uris+tex_math_single_backslash --output tfe_principal.tex --lua-filter /Library/Frameworks/R.framework/Versions/4.1/Resources/library/rmarkdown/rmarkdown/lua/pagebreak.lua --lua-filter /Library/Frameworks/R.framework/Versions/4.1/Resources/library/rmarkdown/rmarkdown/lua/latex-div.lua --self-contained --template latex/templateMemoriaTFE.tex --number-sections --highlight-style tango --pdf-engine pdflatex --natbib --include-before-body portadas/latex_paginatitulo_modTFE.tex
processing file: ./capitulo05.Rmd
output file: tfe_principal.knit.md
pandoc: Cannot decode byte '\xe1': Data.Text.Internal.Encoding.decodeUtf8: Invalid UTF-8 stream
Error: pandoc document conversion failed with error 1
In addition: Warning messages:
1: package 'readxl' was built under R version 4.1.2
2: package 'ggplot2' was built under R version 4.1.2
3: package 'nlme' was built under R version 4.1.2
4: In pt(-abs(tVal), fDF) : NaNs produced
Execution halted
Se puede resolver ejecutando en la consola de RStudio el siguiente código (asegurarse de que el fichero “funciones_detectar_problemasCodificacion.R” está en la misma carpeta que esté el fichero “tfe_principal.Rmd”):
source("funciones_detectar_problemasCodificacion.R")
= c("portadas/latex_paginatitulo_modTFE.tex",
vficheros01 "bib/library.bib","bib/paquetes.bib",
"prologo.Rmd","resumen.Rmd","abstract.Rmd",
"capitulo01.Rmd","capitulo02.Rmd", "capitulo03.Rmd",
"capitulo04.Rmd")
# func_utf8_corregir_problemas_ficheros(vficheros01, sobreescribir = FALSE)
func_utf8_corregir_problemas_ficheros(vficheros01, sobreescribir = TRUE)
6 Referencias
6.1 Ficheros pdf resultado de diferentes variantes de la plantilla
Ficheros pdf modelos:
Fichero pdf con el código R Markdown de los principales ficheros de la plantilla TFE:
Uso de fuentes:
Ajustando el código:
Uso de codigoajusta (ver página 38): si el código sobre pasa el ancho del texto del documento lo arregla automáticamente.
Uso de codigofuente sobre echo y CodigoFuente (ver página 29)
Usando los sistemas de bibliografía:
6.2 Sobre Pandoc
Pandoc oficial:
- Manual (en html): https://pandoc.org/MANUAL.html
- Templates pandoc en Github: https://github.com/jgm/pandoc-templates
Otros sitios:
6.3 Sobre fuentes
- Tutorial básico sobre fuentes en “overleaf”: https://es.overleaf.com/learn/latex/Font_typefaces