-
Notifications
You must be signed in to change notification settings - Fork 4
/
capitulo3.tex
64 lines (54 loc) · 3.03 KB
/
capitulo3.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
\chapter{Ciencias de la computación}
\label{chap:cs}
\epigraph{\say{We should continually be striving to transform every art into a science: in the process, we advance the art.}}{\textit{Donald Knuth \\ Computer Programming as an Art}}
En éste capítulo, daré algunos tips enfocados a las ciencias de la computación.
Empezamos con el ejemplo de como poner un epígrafe.
Este ejemplo también demuestra como poner \say{comillas} en \LaTeX{}
Primero voy a mostrar cómo incluir algoritmos en forma de pseudocódigo.
Y desde luego se incluyen en el índice y se pueden referencias así:
El Algoritmo~\ref{alg:euclid} es el primer algoritmo en la historia.
Se puede referenciar una línea del algoritmo.
El ciclo while termina en la línea~\ref{euclidendwhile}.
Las ideas las tomé de este enlace \href{https://en.wikibooks.org/wiki/LaTeX/Algorithms#Typesetting_using_the_algorithmicx_package}{wikibook} y de éste \href{https://tex.stackexchange.com/questions/229355/algorithm-algorithmic-algorithmicx-algorithm2e-algpseudocode-confused}{post}.
El entorno de algoritmo como flotante puede salirse de los márgenes de una pagina si no lo configuras correctamente.
Hay un \href{https://tex.stackexchange.com/questions/350434/adjust-width-of-algorithm-float}{truco} para hacerlo entrar en un cierto ancho.
Sin embargo, recomiendo usar el truco como ultima alternativa.
En estos ejemplos no fue necesario.
\begin{algorithm}[H]
\caption{Algoritmo de Euclides}
\label{alg:euclid}
\begin{algorithmic}[1] % The number tells where the line numbering should start 0 for no number
\Procedure{Euclid}{$a,b$} \Comment{El g.c.d. de $a$ y $b$}
\State $r\gets a \bmod b$
\While{$r\not=0$} \Comment{Si $r = 0$ ya tenemos la respuesta}
\State $a \gets b$
\State $b \gets r$
\State $r \gets a \bmod b$
\EndWhile\label{euclidendwhile}
\State \textbf{return} $b$\Comment{$gcd = b$}
\EndProcedure
\end{algorithmic}
\end{algorithm}
\section{Código fuente}
Aquí se muestra cómo incluir código fuente usando el paquete minted.
Este es un ejemplo en el lenguaje C.
\begin{listing}
\begin{minted}{cpp}
int main() {
printf("hello, world");
return 0;
}
\end{minted}
\caption{Un programa de ejemplo en C}\label{lst:hello}
\end{listing}
Este es otro ejemplo de cómo incluir Python dentro de un párrafo: \mintinline{python}{print(x**2)}.
Finalmente, lo más útil es incluir el código fuente desde un archivo externo: Vean el Listado~\ref{lst:example} como ejemplo.
Me ayude muchísimo de \href{https://tex.stackexchange.com/questions/252263/alignment-of-minted-line-numbers}{aquí} y de la \href{https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted}{ayuda de Overleaf}.
Observa la configuración que hice en el archivo \verb|Thesis.sty| para ver cómo obtuve el resultado del Listado~\ref{lst:example}.
\begin{listing}
\inputminted[
firstline=54, % Si omites estos dos parámetros, todo el archivo es usado
lastline=68
]{cpp}{src/GccTest.cpp}
\caption{Una implementación defectuosa de insertion sort}\label{lst:example}
\end{listing}