Para insertar código en sus documentos latex, el documento debe de estar estructurado más o menos de la siguiente manera:
En este ejemplo todo el código y el cuerpo del documento está en el archivo principal, si ustedes lo desean lo pueden separar.
%https://www.sharelatex.com/learn/Code_listing
documentclass{article}
usepackage[utf8]{inputenc}
usepackage{listings}
usepackage{color}
definecolor{codegreen}{rgb}{0,0.6,0}
definecolor{codegray}{rgb}{0.5,0.5,0.5}
definecolor{codepurple}{rgb}{0.9,0.5,0.0}
definecolor{backcolour}{rgb}{0.95,0.95,0.92}
definecolor{mygreen}{rgb}{0,0.6,0}
definecolor{mygray}{rgb}{0.5,0.5,0.5}
definecolor{mymauve}{rgb}{0.58,0,0.82}
lstset{ %
backgroundcolor=color{white}, % choose the background color; you must add usepackage{color} or usepackage{xcolor}
basicstyle=footnotesize, % the size of the fonts that are used for the code
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
commentstyle=color{red}, % comment style
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
frame=single, % adds a frame around the code
keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
keywordstyle=color{green}, % keyword style
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=5pt, % how far the line-numbers are from the code
numberstyle=tinycolor{mygray}, % 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))
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
stringstyle=color{mymauve}, % string literal style
tabsize=2, % sets default tabsize to 2 spaces
title=lstname % show the filename of files included with lstinputlisting; also try caption instead of title
}
lstdefinestyle{mystyle}{
backgroundcolor=color{backcolour},
commentstyle=color{red},
keywordstyle=color{blue},
numberstyle=tinycolor{codegray},
stringstyle=color{codepurple},
basicstyle=footnotesize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=10pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2
}
lstdefinestyle{customc}{
belowcaptionskip=1baselineskip,
breaklines=true,
frame=L,
xleftmargin=parindent,
language=C,
showstringspaces=false,
basicstyle=footnotesizettfamily,
keywordstyle=bfseriescolor{green!40!black},
commentstyle=itshapecolor{purple!40!black},
identifierstyle=color{black},
stringstyle=color{orange},
}
lstdefinestyle{customasm}{
belowcaptionskip=1baselineskip,
frame=L,
xleftmargin=parindent,
language=[x86masm]Assembler,
basicstyle=footnotesizettfamily,
commentstyle=itshapecolor{purple!40!black},
}
lstset{escapechar=@,style=customc}
lstset{style=mystyle}
lstset{literate=
{á}{{'a}}1 {é}{{'e}}1 {í}{{'i}}1 {ó}{{'o}}1 {ú}{{'u}}1
{Á}{{'A}}1 {É}{{'E}}1 {Í}{{'I}}1 {Ó}{{'O}}1 {Ú}{{'U}}1
{à}{{`a}}1 {è}{{`e}}1 {ì}{{`i}}1 {ò}{{`o}}1 {ù}{{`u}}1
{À}{{`A}}1 {È}{{'E}}1 {Ì}{{`I}}1 {Ò}{{`O}}1 {Ù}{{`U}}1
{ä}{{"a}}1 {ë}{{"e}}1 {ï}{{"i}}1 {ö}{{"o}}1 {ü}{{"u}}1
{Ä}{{"A}}1 {Ë}{{"E}}1 {Ï}{{"I}}1 {Ö}{{"O}}1 {Ü}{{"U}}1
{â}{{^a}}1 {ê}{{^e}}1 {î}{{^i}}1 {ô}{{^o}}1 {û}{{^u}}1
{Â}{{^A}}1 {Ê}{{^E}}1 {Î}{{^I}}1 {Ô}{{^O}}1 {Û}{{^U}}1
{œ}{{oe}}1 {Œ}{{OE}}1 {æ}{{ae}}1 {Æ}{{AE}}1 {ß}{{ss}}1
{ç}{{c c}}1 {Ç}{{c C}}1 {ø}{{o}}1 {å}{{r a}}1 {Å}{{r A}}1
{€}{{EUR}}1 {£}{{pounds}}1
}
begin{document}
Aquí se muestra un ejemplo en lenguaje Python, junto con su etiqueta que llevará el código.
begin{lstlisting}[language=Python, caption=Código de ejemplo en Python]
import numpy as np
def incmatrix(genl1,genl2):
m = len(genl1)
n = len(genl2)
M = None #to become the incidence matrix
VT = np.zeros((n*m,1), int) #dummy variable
#compute the bitwise xor matrix
M1 = bitxormatrix(genl1)
M2 = np.triu(bitxormatrix(genl2),1)
for i in range(m-1):
for j in range(i+1, m):
[r,c] = np.where(M2 == M1[i,j])
for k in range(len(r)):
VT[(i)*n + r[k]] = 1;
VT[(i)*n + c[k]] = 1;
VT[(j)*n + r[k]] = 1;
VT[(j)*n + c[k]] = 1;
if M is None:
M = np.copy(VT)
else:
M = np.concatenate((M, VT), 1)
VT = np.zeros((n*m,1), int)
return M
end{lstlisting}
Un ejemplo de código en C
begin{lstlisting}[language=C, caption=Gauss-Jordan en C]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <ncurses.h>
/*Declaración de procedimientos y funciones*/
void gausJordan(float **matriz,int n,float *raices);
void imprimirMatriz(float *raices,int n);
void leerValores(float **matriz,int n);
/*Función principal*/
int main(){
int n;
float **matriz,*raices;
printf("Ingrese el número de ecuaciones (n): ");
scanf("%d",&n);
getchar();
matriz=(float**) malloc (sizeof (float*)*n);
raices=(float*) malloc (sizeof (float*)*n);
leerValores(matriz,n);
gausJordan(matriz,n,raices);
printf("Solución nn");
imprimirMatriz(raices,n);
getchar();
return 0;
}
/*Procedimiento para mostrar en pantalla los elementos de la matriz*/
void imprimirMatriz(float *raices,int n){
int i;
for(i=0;i<n;i++){
/*algún otro código aquí*/
}
}
/*Procedimiento que realiza el proceso de Gauss-Jordan*/
void gausJordan(float **matriz,int n,float *raices){
int i,j,k;
float termino;
for(i=0;i<n;i++){
/*tu código aquí*/
}
}
end{lstlisting}
end{document}