UNED Computer Engineering final project (PFG)
The UNED School of Computer Engineering template for the bachelor's final project (Proyecto Fin de Grado), in Spanish: title and data pages, abstract, seven chapter files from introduction to conclusions, two appendices, code listings and an IEEE-style BibTeX bibliography.
- Category
- Thesis
- Document class
book(book.cls) — ships with TeX Live- Workflow
- Thesis / dissertation — submissions and revision rounds
- Author
- UNED, Escuela Técnica Superior de Ingeniería Informática
- Source
- UNED, Escuela Técnica Superior de Ingeniería Informática
- Licence
- book.cls: LaTeX Project Public License (installed with TeX). The sample text is UNED, Escuela Técnica Superior de Ingeniería Informática's, provided for authors preparing a submission.
These are the publisher’s own files. This project starts from UNED, Escuela Técnica Superior de Ingeniería Informática’s package for this publication — their manuscript, their book.cls, their bibliography style — so what compiles here is what they would have given you.
UNED, Escuela Técnica Superior de Ingeniería Informática serves this exact file to Universidad Nacional de Educación a Distancia (UNED). Check UNED, Escuela Técnica Superior de Ingeniería Informática’s author pages for the current instructions.
Where this differs from the publisher’s download.
- Note: Made by the School of Computer Engineering for its PFG; other UNED faculties may have different rules.
What you get
capitulos/A1-anexo.tex· 118 Bcapitulos/A2-anexo.tex· 119 Bcapitulos/C1-introduccion.tex· 7 KBcapitulos/C2-estado_arte.tex· 300 Bcapitulos/C3-propuesta.tex· 139 Bcapitulos/C4-disenno.tex· 135 Bcapitulos/C5-desarrollo.tex· 154 Bcapitulos/C6-pruebas.tex· 135 Bcapitulos/C7-conclusiones.tex· 145 Bcapitulos/bibliografia.bib· 474 Bcapitulos/referencias.tex· 141 Bimagenes/libro.png· 26 KBimagenes/rosadelosvientos.png· 66 KBmain.tex— the file that is compiled · 10 KB
These become your files. Editing them afterwards changes your project and nothing else — a project owns its files from the moment it is made.
Source
capitulos/A1-anexo.tex · 118 B
\documentclass[../main.tex]{subfiles}
\begin{document}
\chapter{Primer anexo}
Contenido del anexo...
\end{document}capitulos/A2-anexo.tex · 119 B
\documentclass[../main.tex]{subfiles}
\begin{document}
\chapter{Segundo anexo}
Contenido del anexo...
\end{document}capitulos/C1-introduccion.tex · 7 KB
\documentclass[../main.tex]{subfiles}
\begin{document}
\chapter{Introducción}
\label{C:introduccion}
Todos los ejemplos de código \LaTeX\ de este documento se deben consultar en el código fuente. El PDF es el resultado final del código escrito.
Este párrafo incluye ejemplos sobre cómo se debe introducir el texto en \LaTeX\ para su correcto formateo. Incluye \textbf{texto en negrita}, \textit{en cursiva (itálica)}, \underline{texto subrayado} y \texttt{texto en letra monoespaciada}. Para finalizar un párrafo, deberemos dejar una línea en blanco tras él.
Como se puede ver, \LaTeX\ automáticamente identificará eso como un final de párrafo y lo separará del siguiente.
También se ha incluído el paquete necesario para poder \hl{resaltar un texto}. Esto resulta de utilidad para marcar un texto, por ejemplo al realizar la revisión de la memoria.
\section{Ejemplos de listas}
\LaTeX\ ofrece dos tipos de listas:
\begin{enumerate}
\item Las listas numeradas, como esta.
\item Las listas no numeradas, como la siguiente:
\begin{itemize}
\item Las listas pueden anidarse.
\item Se pueden cambiar los puntos.
\item[!] Por cualquier cosa.
\item[NOTA] No necesariamente un único carácter.
\item[] También puede ser por nada.
\end{itemize}
\end{enumerate}
\section{Ejemplos de figura y tabla}
Abrimos una sección nueva para dar un ejemplo sobre como insertar una figura y una tabla. Mira el índice y verás que tanto la figura~\ref{fig:libro} como la tabla~\ref{tab:ejemplo} aparecen en los índices correspondientes. Como se puede ver, se pueden incluir las referencias cuantas veces se quiera, que \LaTeX\ va a incluir automáticamente enlaces a las figuras y tablas.
\subsection{Figuras}
Para insertar una figura hay que usar el código que se puede ver a continuación.
\begin{figure}[!htb]
\centering
\includegraphics[width=7cm]{libro.png}
\caption{Imagen de un libro.}
\label{fig:libro}
\end{figure}
Además, deben referenciarse en el texto con el número de referencia a la figura. Es decir, no se debe poner ``como se puede ver en la siguiente/anterior figura'', sino que se debería poner ``como se puede ver en la figura~\ref{fig:libro}''.
Como se puede ver en el código, al importar el fichero gráfico de la figura\footnote{Que se ha descargado de \url{https://www.flaticon.es/icono-gratis/libro_2784389}} podemos incluir un parámetro opcional con su anchura. \LaTeX\ redimensionará automáticamente la altura para guardar las proporciones. En este párrafo, además, hemos visto un ejemplo de nota al pie y de url.
\subsection{Tablas}
Si ahora queremos introducir una tabla, deberemos hacer algo similar al código mostrado a continuación, que produce la tabla~\ref{tab:ejemplo}. Esta tabla incluye ejemplos de celdas que ocupan más de una fila/columna.
\begin{table}[!h]
\caption{Ejemplo de tabla}
\centering
\begin{tabular}{|c|r|l|}
\hline
Texto & \multicolumn{2}{c|}{Texto Alineado} \\
\cline{2-3}
Centrado & a la Derecha & a la Izquierda \\
\hline
\multirow{2}{*}{Separadores} & celdas & \& \\
\cline{2-3}
& filas & $\backslash \backslash$ \\
\hline
\end{tabular}
\label{tab:ejemplo}
\end{table}
\section{Bibliografía}
Todos los libros y artículos de la bibliografía se meten en el fichero bibliografia.bib en formato bibtex, que es un formato estándar de representación bibliográfica.
Además, la bibliografía debe ser correctamente citada desde el texto cuando sea oportuno. Igual que los magos, que llegan justo cuando se lo proponen, ni antes ni después~\cite{tolkien}.
También podría ser que alguna referencia no fuese física, sino una web consultada durante la realización del trabajo, como sería el caso de~\cite{z80Decoding}. Es importante incluir información sobre el momento en el que se accedió a la web, ya que se trata de un medio susceptible de cambiar con el tiempo.
\section{Si abrimos una sección}
\subsection{A continuación abrimos una subsección}
\subsubsection{Y finalmente abrimos una subsubsección}
Esto es un ejemplo de algo \textbf{que no se debe hacer}: abrir un subapartado tras abrir el apartado dentro del que va sin ningún texto entre medias. ¡Es algo a evitar! No olvides meter un texto introductorio justo al abrir un capítulo, sección, subsección, etc.
\section{Ejemplo de código}
A continuación se muestra un trozo de código. El formato puede redefinirse con $\backslash$\texttt{lstset}. Hay una definición por defecto en el fichero \texttt{main.tex}.
\begin{lstlisting}[language = Java]
public class FibonacciIterativo {
public static void main(String[] args) {
int serie = 10, num1 = 0, num2 = 1, suma = 1;
for (int i = 1; i < serie; i++) {
suma = num1 + num2;
num1 = num2;
num2 = suma;
}
}
}
\end{lstlisting}
\section{Estructura de la memoria}
La presente plantilla establece una estructura típica de memoria de PFG en el que se desarrolla una aplicación. ¡Ojo! \underline{Solo pretende ser un ejemplo}, ya que \textbf{para cada PFG en particular la estructura debería ser consensuada con el/la director/a del PFG}.
En general (y esto sirve para todos los PFG) el capítulo~\ref{C:introduccion} introduce el problema a resolver, qué lo ha motivado y se fijan objetivos a cubrir.
En el capítulo~\ref{C:estado_arte} se revisan posibles soluciones ya existentes. Se debe realizar un análisis crítico de ellas para extraer cosas que nos gustan y cosas que no.
En base a ese análisis crítico, en el capítulo~\ref{C:propuesta} se realiza una propuesta: una suerte de ``carta a los Reyes Magos'' que describa cómo se comportará nuestra aplicación, pero sin entrar en detalles de diseño, ni mostrar imágenes reales de la misma. Aquí encajaría también un análisis económico del coste de realización del proyecto.
En el capítulo~\ref{C:disenno} se realizaría un diseño de la aplicación. Sabemos cómo queremos que se comporte, vamos a diseñar su funcionamiento. En estos momentos es cuando deducimos las necesidades que va a tener (si necesita persistencia de datos, si necesita autenticación de usuarios, etc.).
En el capítulo~\ref{C:desarrollo}, comentamos el desarrollo de la aplicación: metodología de desarrollo, tecnología utilizada (y por qué se descarta otra tecnología). Se explica la estructura de la posible base de datos, el diagrama de clases, etc.
En el capítulo~\ref{C:pruebas} se detallarían las pruebas realizadas sobre la aplicación y en el~\ref{C:conclusiones} se enunciarían las conclusiones del proyecto y se propondrían posibles líneas futuras de trabajo.
En cuanto a los anexos, la regla sería dejar para los anexos todo aquello que, si bien es interesante para el PFG, no es estrictamente necesario para entenderlo. Por ejemplo, un manual de usuario, un manual de instalación, el código completo de alguna parte relevante de la aplicación, etc.
\end{document}capitulos/C2-estado_arte.tex · 300 B
\documentclass[../main.tex]{subfiles}
\begin{document}
\chapter{Estado del arte}
\label{C:estado_arte}
Otro posible título para este capítulo podría ser ``Análisis de soluciones ya existentes'', ya que el término ``Estado del arte'' se asocia más a trabajos de investigación.
\end{document}capitulos/C3-propuesta.tex · 139 B
\documentclass[../main.tex]{subfiles}
\begin{document}
\chapter{Propuesta}
\label{C:propuesta}
Contenido del capítulo...
\end{document}capitulos/C4-disenno.tex · 135 B
\documentclass[../main.tex]{subfiles}
\begin{document}
\chapter{Diseño}
\label{C:disenno}
Contenido del capítulo...
\end{document}capitulos/C5-desarrollo.tex · 154 B
\documentclass[../main.tex]{subfiles}
\begin{document}
\chapter{Desarrollo del proyecto}
\label{C:desarrollo}
Contenido del capítulo...
\end{document}capitulos/C6-pruebas.tex · 135 B
\documentclass[../main.tex]{subfiles}
\begin{document}
\chapter{Pruebas}
\label{C:pruebas}
Contenido del capítulo...
\end{document}capitulos/C7-conclusiones.tex · 145 B
\documentclass[../main.tex]{subfiles}
\begin{document}
\chapter{Conclusiones}
\label{C:conclusiones}
Contenido del capítulo...
\end{document}capitulos/bibliografia.bib · 474 B
%% EJEMPLO DE BIBLIOGRAFÍA
@book{tolkien,
author = {Tolkien, J.R.R.},
title = {El Señor de los Anillos},
publisher = {Círculo de Lectores},
address = {Barcelona},
year = {1991},
isbn = {84-226-1633-5}
}
@Electronic{z80Decoding,
author = {Cristian Dinu},
language = {English},
month = jun,
title = {DECODING Z80 OPCODES},
url = {http://z80.info/decoding.htm},
year = {2023},
note = {Acceso: 2023-10-23}
}capitulos/referencias.tex · 141 B
\documentclass[../main.tex]{subfiles}
\begin{document}
\nocite{*}
\bibliography{bibliografia}
\bibliographystyle{IEEEtran}
\end{document}imagenes/libro.png — binary, 26 KB
imagenes/rosadelosvientos.png — binary, 66 KB
main.tex — the file that is compiled · 10 KB
% Comandos para crear la portada y la primera página del PFG
%% Título del PFG
\newcommand{\PFGtitulo}{Título del PFG}
%% Título corto, para mostrar en el encabezado de las páginas pares. Por defecto se pone el título, pero, si es muy largo, puede acortarse aquí
\newcommand{\PFGtitulocorto}{\PFGtitulo}
%% Autor/a y directores/as del PFG
\newcommand{\PFGautor}{Nombre del autor/a del PFG}
\newcommand{\PFGdirector}{Director/a del PFG}
%% Descomentar y rellenar la siguiente línea si hay codirector/a en el PFG
%\newcommand{\PFGcodirector}{Codirector/a del PFG}
%% Grado. A elegir entre:
%% Ingeniería Informática
%% Ingeniería en Tecnologías de la Información
\newcommand{\PFGgrado}{Grado cursado}
%% Modalidad. A elegir entre:
%% genérica
%% específica
\newcommand{\PFGmodalidad}{modalidad}
%% Curso académico en formato 20xx/20xx+1. Por ejemplo 2022/2023
\newcommand{\PFGcursoacademico}{Curso académico}
%% Convocatoria. A elegir entre:
%% junio
%% septiembre
%% diciembre
\newcommand{\PFGconvocatoria}{Convocatoria}
%% Fecha de lectura (si no se sabe el día concreto, poner mes y año}
\newcommand{\PFGfechadefensa}{Fecha de lectura}
\documentclass[12pt,twoside]{book}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage[papersize={210mm,297mm},tmargin=25mm,bmargin=25mm,lmargin=20mm,rmargin=20mm]{geometry}
% No indentar los párrafos y separarlos 1cm
\setlength\parindent{0cm}
\setlength\parskip{1em}
% Para tener los elementos de texto en español
\usepackage[spanish]{babel}
% Para poder resaltar un texto en amarillo con \hl{}
\usepackage{soul}
% Definición de colores
\usepackage{xcolor}
\definecolor{links}{rgb}{0.35, 0.4, 0.35}
\definecolor{urls}{rgb}{0,0,1}
\definecolor{cites}{rgb}{0.8,0,0}
\definecolor{gray20}{gray}{0.20}
% Hiperreferencias
\usepackage[hyphens]{url}
\usepackage{hyperref}
\hypersetup{
colorlinks = true,
linkcolor = links,
urlcolor = urls,
citecolor = cites
}
% Formato de los listados
\usepackage{listings}
\lstloadlanguages{C,C++,Haskell,HTML,Java,PHP,Python}
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
\lstdefinestyle{mystyle}{
commentstyle=\color{codegreen},
keywordstyle=\color{blue},
numberstyle=\tiny\color{codegray},
stringstyle=\color{codepurple},
backgroundcolor=\color{backcolour}, % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}; should come as last argument
basicstyle=\footnotesize\ttfamily\color{black}, % the size of the fonts that are used for the code
belowcaptionskip=1\baselineskip,
breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace
breaklines=true, % sets automatic line breaking
captionpos=b, % sets the caption-position to bottom
deletekeywords={...}, % if you want to delete keywords from the given language
escapeinside={\%*}{*)}, % if you want to add LaTeX within your code
extendedchars=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8
firstnumber=1, % start line enumeration with line 1000
frame=single,
%identifierstyle=\color{blue!50!black},
keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
%language=C, % the language of the code
%morekeywords={*,...}, % if you want to add more keywords to the set
numbers=left, % where to put the line-numbers; possible values are (none, left, right)
numbersep=10pt, % how far the line-numbers are from the code
numberstyle=\tiny\color{gray}, % the style that is used for the line-numbers
rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
morecomment=[n]{(*}{*)},
morecomment=[n][\color{magenta}]{\%I}{\ },
morecomment=[n][\color{magenta}]{\%Q}{\ },
showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
showstringspaces=false, % underline spaces within strings only
showtabs=false, % show tabs within strings adding particular underscores
stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered
tabsize=2, % sets default tabsize to 2 spaces
title=\lstname,
xleftmargin=1.5cm,
}
\lstset{style=mystyle}
% Añadir ficheros externos
\usepackage{subfiles}
% Soporte para anexos
\usepackage{appendix}
% Paquetes para figuras
\usepackage{caption}
\usepackage{subcaption}
% Para las tablas
\usepackage{tabularx}
\usepackage{multicol}
\usepackage{multirow}
%Encabezados bonitos y acordes al reglamento
\usepackage{fancyhdr}
\fancyhf{}
\lhead[\thepage]{\leftmark}
\rhead[\PFGtitulocorto]{\thepage}
\setlength{\headheight}{16pt}
\pagestyle{empty}
% Paquete para poner la bibliografia en la table of contents
\usepackage[nottoc,notlot,notlof]{tocbibind}
% Cambiamos el espacio en blanco enorme que por defecto hay en las páginas inicio de capítulo
\usepackage{titlesec}
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
\titlespacing*{\chapter}{0pt}{-50pt}{40pt}
% Para crear subsubsubsection
\setcounter{secnumdepth}{4}
\titleformat{\paragraph}
{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{}
\titlespacing*{\paragraph}
{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
% Ruta en la que pondremos las imágenes para el documento
\graphicspath{ {imagenes/} }
% Redifinimos el nombre que asigna babel spanish a las tablas (cuadro) a tabla
\renewcommand{\spanishtablename}{Tabla}
\renewcommand{\spanishlisttablename}{Índice de tablas}
\renewcommand{\spanishcontentsname}{Índice}
% Redefinimos el nombre de apéndice a anexo
\renewcommand{\appendixname}{Anexos}
\renewcommand{\appendixtocname}{Anexos}
\renewcommand{\appendixpagename}{Anexos}
% Definimos el comando de página en blanco
\newcommand\paginablanco{%
\null
\thispagestyle{empty}%
\newpage}
% Definimos el comando de página en blanco sin avanzar numeracion
\newcommand\paginablancosin{%
\paginablanco{}
\addtocounter{page}{-1}}
% Mayor anchura en las tablas
\renewcommand{\arraystretch}{1.5}
% Mayor ancuhura en las fracciones
\newcommand\ddfrac[2]{\frac{\displaystyle #1}{\displaystyle #2}}
% Comando escribir PFG
\newcommand{\pfg}{Proyecto Fin de Grado }
% Comenzamos el documento
\begin{document}
\pagenumbering{gobble} % para no incluir números en la portada y primera página
% Hacemos la portada
\begin{titlepage}
\begin{figure}[!htb]
\centering
\includegraphics{rosadelosvientos.png}
\end{figure}
\begin{center}
{\scshape\Large Universidad Nacional de Educación a Distancia \par}
{\scshape\Large Escuela Técnica Superior de Ingeniería Informática \par}
\vfill
\large{Proyecto de fin de Grado en \PFGgrado}\\
\vfill
{\bfseries\Huge \textcolor{black}{\PFGtitulo} \par}
\vfill
\end{center}
\vspace*{3cm}
{\huge \textcolor{black}{\PFGautor} \par}
{\huge \textcolor{black}{Dirigido por: \PFGdirector} \par}
\ifdefined\PFGcodirector
\huge \textcolor{black}{Codirigido por: \PFGcodirector} \par
\fi
{\huge \textcolor{black}{Curso \PFGcursoacademico, convocatoria \PFGconvocatoria} \par}
\chapter*{}
\thispagestyle{empty}
\begin{figure}[!htb]
\centering
\includegraphics{rosadelosvientos.png}
\end{figure}
\begin{center}
{\bfseries\Huge \textcolor{black}{\PFGtitulo} \par}
\vfill
{\bfseries\Large \textcolor{black}{Proyecto de fin de Grado en \PFGgrado} \par}
{\bfseries\Large \textcolor{black}{de modalidad \PFGmodalidad} \par}
\end{center}
\vspace*{5cm}
{\Large Realizado por: \PFGautor \par}
{\Large Dirigido por: \PFGdirector \par}
\ifdefined\PFGcodirector
{\Large Codirigido por: \PFGcodirector \par}
\fi%
%%{\Large Codirigido por: \PFGcodirector \par}
\vfill
{\Large Fecha de lectura y defensa: \PFGfechadefensa \par}
\end{titlepage}
\pagenumbering{Roman} % para comenzar la numeracion de paginas en numeros romanos
% Agradecimientos
\chapter*{Agradecimientos}
\thispagestyle{empty}
\begin{flushright}
\textit{Incluir todos los agradecimientos}
\end{flushright}
\chapter*{Resumen} % El * indica que no queremos que añada la palabra "Capitulo"
Resumen del PFG.
\chapter*{Abstract} % El * indica que no queremos que añada la palabra "Capitulo"
Resumen del PFG en inglés.
\chapter*{Palabras clave} % El * indica que no queremos que añada la palabra "Capitulo"
Palabras clave del PFG
\chapter*{Keywords} % El * indica que no queremos que añada la palabra "Capitulo"
Palabras clave del PFG en inglés.
\tableofcontents %% Índice general
%% SI NO HAY ÍNDICE DE TABLAS, COMENTAR LAS DOS SIGUIENTES LÍNEAS
\listoftables %% Índice de tablas
\addcontentsline{toc}{section}{Índice de tablas} % Queremos que aparezca en el índice
%% SI NO HAY ÍNDICE DE FIGURAS, COMENTAR LAS DOS SIGUIENTES LÍNEAS
\listoffigures %% Índice de figuras
\addcontentsline{toc}{section}{Índice de figuras} % Queremos que aparezca en el índice
\newpage
\paginablanco{}
%% Comenzamos con la numeración arábiga y el estilo de cabeceras de páginas definido, porque aquí empieza el contenido
\pagenumbering{arabic}
\pagestyle{fancy}
%% Ejemplo de importación de capítulos
\subfile{capitulos/C1-introduccion}
\subfile{capitulos/C2-estado_arte}
\subfile{capitulos/C3-propuesta}
\subfile{capitulos/C4-disenno}
\subfile{capitulos/C5-desarrollo}
\subfile{capitulos/C6-pruebas}
\subfile{capitulos/C7-conclusiones}
%% Bibliografía
\newpage
\subfile{capitulos/referencias}
\clearpage
%% Anexos
\appendix
\subfile{capitulos/A1-anexo}
\subfile{capitulos/A2-anexo}
%...
\end{document}The first page, as this template compiles today. Click it to enlarge, and again to shrink. Open the file ↗