Ecuaciones
Trabajar con ecuaciones en Latex es simples. Solo hay que conocer unos pocos detalles, y el resto es saber googlear los simbolos que deseamos utilizar.
Para trabajar con ecuaciones lo primero que debemos hacer es cargar los paquetes ams: amssymb, amsmath, amsbsy. Estos paquetes proveen de los simbolos matemáticos que no se incluyen por defecto en Latex. Luego, para insertar una ecuación tenemos que crear lo que se llama un entorno en modo matemático, para lo cual hay dos caminos.
El primero es creando propiamente un entorno matematico. Hay varios tipos, dentro de los cuales los más usuales son equation para insertar una única ecuación, un entorno align para múltiples ecuaciones consecutivas alineadas, o gather si no queremos que se alineen.
El segundo camino es colocando las ecuación entre signos de pesos simple ($), en el caso de una ecuación en linea con el texto, o con signo doble de pesos ($$) si queremos que esta vaya a para a una nueva linea.
% Preambulo \usepackage{amssymb, amsmath, amsbsy} ... % Cuerpo \begin{equation} y(x) = x^2 + 5 \end{equation} \begin{gather} y(x) = x^2 + 5 \\ z(x) = y^{2x} + x \end{gather} Mediante la ley de Ohm, $ V = I \cdot R $, podemos calcular el valor del resistor en el circuito... Mediante la ley de Ohm, $$ V = I \cdot R $$ podemos calcular el valor del resistor en el circuito...
Ahora veamos algunos puntos antes de pasar a dar ejemplos:
1. LaTeX, por defecto, pone las ecuaciones en cursiva. Si queremos evitarlo, debemos usar el comando mathrm.
$$ E = m \cdot c^2 $$ $$ \mathrm{E = m \cdot c^2} $$
2. Si queremos añadir texto, lo podemos hacer mediante el comando textup, teniendo en cuenta que los espacios en blanco se escriben con \.
\begin{equation} E = m c^2 \ \ \textup{equivalencia entre la masa y la energía dada por la expresión de la teoría de la relatividad} \end{equation}
3. Si queremos que las ecuaciones no se numeren al utilizar los entornos equation o gather, debemos colocar un * al crear los entorno:
\begin{equation*} E = m c^2 \end{equation*}
4. Para insertar letras griegas simplemente escribimos el nombre de estas como si fuésemos a insertar un comando.
% Ejemplos de letras griegas \begin{gather} \alpha \beta \gamma \delta \epsilon \zeta \eta \theta \iota \kappa \lambda \\ \mu \nu \xi \pi \rho \sigma \tau \upsilon \phi \chi \psi \omega \\ \Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega \end{gather}
5. Para colocar super-indices usamos el símbolo ^ y, si en el super-indice va mas de un símbolo, a todos estos los encerramos entre llaves. En forma similar, para los sub-indices usamos el guion bajo:
\begin{gather} e^{\pi i} - 1 = 0 \ \ \textup{Ecuacion de Euler} x_i = x_{i-1} + 1 \ \ \textup{Formula inventada} x_i = x_{i-1}^{2} + 1 \ \ \textup{Formula inventada 2} \end{gather}
Como comentamos, acordarse de todo los simbolos que podemos utilizar en Latex no tiene sentido. Lo más practico es conocer los más habituales, y el resto saber buscarlos en la web al momento de necesitarlos. No obstante, en caso de usar TeXstudio, podemos mirar en la solapa Matemáticas varios de los simbolos y entornos disponibles:
Antes de pasar a la siguiente sección, les dejo las ecuaciones de Maxwell en Latex.
\begin{align*} \text{\textbf{Ecuaciones de Maxwell: forma diferencial}}\\ \vec{\nabla} \cdot \vec{E} = \dfrac{\rho}{\epsilon_0}& \qquad \textup{Ley de Gauss}\\ \vec{\nabla} \cdot \vec{B} = 0& \qquad \textup{Ley de Gauss para el campo magnético}\\ \vec{\nabla}\times\vec{E}=-\dfrac{\partial \vec{B}}{\partial t}& \qquad \textup{Ley de Faraday}\\ c^2\vec{\nabla}\times\vec{B} =\dfrac{\vec{J}}{\epsilon_0}+\dfrac {\partial \vec{E}}{\partial t}& \qquad \textup{1ra Ley de Ampere}\\ \vec{\nabla}\times \vec{B}=\mu_0\vec{J}+\mu_0 \epsilon_0 \dfrac{\partial \vec{E}}{\partial t}& \qquad \textup{2da Ley de Ampere}\\ \\ \text{\textbf{Ecuaciones de Maxwell: forma integral}}\\ \oint_S \vec{E} \cdot d\vec{s} = \dfrac{q}{\epsilon_0}& \qquad \textup{Ley de Gauss}\\ \oint_S \vec{B} \cdot d\vec{s} = 0& \qquad \textup{Ley de Gauss para el campo magnético}\\ \oint_C \vec{E} \cdot d\vec{l} = -\dfrac{d}{dt} \int_S \vec{B} \cdot \vec{s}& \qquad \textup{Ley de Faraday}\\ c^2 \oint_C \vec{B} \cdot d\vec{l} = \int_S \dfrac{\vec{J} \cdot d\vec{s}}{\epsilon_0} + \dfrac{d}{dt} \int_S \vec{E} \cdot d\vec{s}& \qquad \textup{1ra Ley de Ampere}\\ \oint_C \vec{B} \cdot d\vec{l} = \mu_0 \int_S \vec{J} \cdot d\vec{s} + \mu_0 \epsilon_0 \dfrac{d}{dt} \int_S \vec{E} \cdot d\vec{s}& \qquad \textup{2da Ley de Ampere} \end{align*}
Una muy buena guía donde se puede profundizar en la creación de ecuaciones con Latex es esta: http://metodos.fam.cie.uva.es/~latex/apuntes/apuntes3.pdf
Código
Tanto para escribir fragmentos de código como pseudocódigo, en Latex tenemos varias posibilidades. A continuación veremos las más comunes.
Pseudocódigo
Para insertar pseudocódigo se suele utilizar el paquete algorithm junto al paquete algpseudocode. Una vez cargados, el pseudocódigo se debe insertar dentro de un entorno algorithmic, que a su vez debe ir dentro de un entorno algorithm.
% Preambulo \usepackage{algorithm} \usepackage[noend]{algpseudocode} \renewcommand{\algorithmicrequire}{\textbf{Input:}} \renewcommand{\algorithmicensure}{\textbf{Output:}} ... % Cuerpo \begin{algorithm} \caption{Calculo de \textit{first hop}} \begin{algorithmic}[1] % ENTRADA / SALIDA \Require{\textit{target}: lista de IP a las cuales se harán \textit{traceroutes}} \Ensure{$first\_hop$: vector con el TTL inicial a cada IP del \textit{target}} \State $IP_{found} = \phi$ \State $first\_hop = \phi$ \For{$i;\ i++;\ |target|$} \State{traceroute($IP = IP[i],\ TTL_{initial} = 1$)} \EndFor \For{$i;\ i++;\ |target|$} \State{trace = read\_traceroute($IP[i]$)} \State{$TTL_{initial} = 1$} \For{hop \textbf{in} trace} \If{hop \textbf{in} $IP_{found}$} \State $TTL_{initial} ++$ \Else \State $IP_{found}$ \textbf{append} hop \State $first\_hop[i] = TTL_{initial}$ \State \textbf{break} \EndIf \EndFor \EndFor \State{\textbf{return} $first\_hop$} \end{algorithmic} \end{algorithm}
Dentro de entorno algorithmic, para definir las lineas de pseudocódigo utilizamos los siguiente comandos:
\STATE <text> \IF{<condition>} \STATE {<text>} \ELSE \STATE{<text>} \ENDIF \IF{<condition>} \STATE {<text>} \ELSIF{<condition>} \STATE{<text>} \ENDIF \FOR{<condition>} \STATE {<text>} \ENDFOR \FOR{<condition> \TO <condition> } \STATE {<text>} \ENDFOR \FORALL{<condition>} \STATE{<text>} \ENDFOR \WHILE{<condition>} \STATE{<text>} \ENDWHILE \REPEAT \STATE{<text>} \UNTIL{<condition>} \LOOP \STATE{<text>} \ENDLOOP \REQUIRE <text> \ENSURE <text> \RETURN <text> \PRINT <text> \COMMENT{<text>} \AND, \OR, \XOR, \NOT, \TO, \TRUE, \FALSE
Código
Para insertar código en nuestro documento el paquete más popular es listings, el cual nos provee del entorno lstlisting. Este nos provee de la opción de elegir el lenguaje de programación del código. De este modo logramos que se resalte el código acorde como lo veríamos por ejemplo en un IDE.
% Preambulo \usepackage{listings} ... % Cuerpo \begin{lstlisting}[language=Python] ## Programa que imprima los numeros impares ## desde el 100 hasta la unidad y calcule su suma n = 100 def mi_funcion(n, acum): acum = 0 while n >= 1: if n%2 != 0: print n acum += n n -= 1 print 'y su suma es: ' + str(acum) mi_funcion(n) \end{lstlisting}
Las opciones disponibles para configurar el entorno son:
-
language = ... define el lenguaje de programación
-
breaklines = true para que si una línea es muy larga, la pase automáticamente al siguiente renglón
-
basicstyle = ... define el tamaño del texto
-
frame = false single encierra el código en una caja
Comentarios
0 Comments