Mostrando las entradas con la etiqueta latex code. Mostrar todas las entradas
Mostrando las entradas con la etiqueta latex code. Mostrar todas las entradas

martes, 20 de enero de 2015

Insertar codigo Latex en documentos Latex

Redactando un manual para latex usando latex, me encontré con un pequeño detalle, no sabía cómo mostrar codigo latex en latex, es decir, obtener un resultado como el que se muestra en la imagen.
El problema fue que no podía hacerlo en ese instante, pero ahora ya sé como hacerlo: En la propia imagen muestro cómo se hace.
 
Aquí está el código de cómo hacerlo:
 

\documentclass{article}
\usepackage{tikz}
\usepackage{showexpl}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\lstset{
    language=[LaTeX]TeX,
    breaklines=true,
    basicstyle=\tt\scriptsize,
    keywordstyle=\color{blue},
    identifierstyle=\color{magenta},
}

\begin{document}
Esto es en línea \lstinline!\TeX! y a continuación se muestra cómo hacerlo:

\begin{lstlisting}
\documentclass{article}
\begin{document}
Hello World
\end{document}
\end{lstlisting}


\begin{LTXexample}[pos=b,preset=\centering,width=0.5\linewidth]
\begin{tikzpicture}
    \draw[fill=red] (0,0) circle (1);
\end{tikzpicture}
\end{LTXexample}

El otro método es usando \lstinline|\verb!text!| con esa etiqueta se
muestra solo en negro, de este modo \verb|\pagebreak[text]| el color
es posible ser asignado al usar \lstinline!\lstinline|code|!.
\end{document}

martes, 21 de octubre de 2014

Insertar código de programas en Latex

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=\tiny\color{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=\tiny\color{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=1\baselineskip,
  breaklines=true,
  frame=L,
  xleftmargin=\parindent,
  language=C,
  showstringspaces=false,
  basicstyle=\footnotesize\ttfamily,
  keywordstyle=\bfseries\color{green!40!black},
  commentstyle=\itshape\color{purple!40!black},
  identifierstyle=\color{black},
  stringstyle=\color{orange},
}

\lstdefinestyle{customasm}{
  belowcaptionskip=1\baselineskip,
  frame=L,
  xleftmargin=\parindent,
  language=[x86masm]Assembler,
  basicstyle=\footnotesize\ttfamily,
  commentstyle=\itshape\color{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 \n\n");
 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}