zhy
 
Mensajes: 6
Registrado: Mié May 18, 2011 11:28 am

Latex

por zhy Lun May 23, 2011 5:43 pm

Buenas !! como veo que ninguno se anima, a inagurar esta sección ... he pensado crear este hilo ( si os parece bien ), para tratar los temas con tex/latex.

De momento si quereis comentar algunos paquetes interesantes que conozcais , compartir macros :D, configuraciones que useis para pegar vuestro código en documentos o simplemente dudas !! sera perfecto!!. Yo de momento estoy recopilando algunas macros que tengo, cuando termine la lista os las dejare por aqui !!!

Os dejo algunos Links interesantes de diferentes paquetes, ultimamente son los que más utilizo

- Paquete Tikz, no lo conozco a fondo, da para mucho, y sólo he llegado a dibujar algunos grafos y autómatas, pero la verdad, promete bastante, los dibujos vectoriales son realmente impresionante, tiene cosas curiosas, por ejemplo en el algoritmo de prim, simplemente le defines el grafo y las conexiones, y el propio paquete te devuelve el algoritmo paso a paso.
http://www.texample.net/tikz/examples/
Algunos dibujos 3D (si están en latex xD)
http://www.texample.net/tikz/examples/tag/3d/

- Paquete LstListing, muy bueno para todo el tema de código, puedes definir una cabecera, en la que indicar lenguaje, tipos de letras, tabulación etc..
http://en.wikibooks.org/wiki/LaTeX/Packages/Listings
Aqui la documentación de los creadores:
http://www.google.es/url?sa=t&source=we ... 7w&cad=rja

- Paquete Algorithms, este paquete se utiliza para pseudocódigo, la calidad que se obtiene es realmente buena,igual a alguno le suena... se usa en el libro de Cormen "Introduction to Algorithms".
http://en.wikibooks.org/wiki/LaTeX/Algo ... Pseudocode
Aqui mas:
http://www.google.es/url?sa=t&source=we ... cA1ScShXFQ

Por último, aprovecho para preguntar, por si alguien ha usado lstlisting, estoy intentando a la hora de poner código, resaltar con colores la sintaxis (for,while, ..) , pero tengo que hacerlo manualmente definiendo el color para cada palabra reservada, alguien sabe si esto es posible hacerlo de forma automática??? de momento no lo encontré , seguiré buscando !!

Saludos !!
Avatar de Usuario
newlog
El Eterno Alumno
 
Mensajes: 170
Registrado: Lun Jun 23, 2008 7:28 pm

Re: Latex

por newlog Lun May 23, 2011 8:33 pm

Qué pasada el paquete para hacer grafos y demás. Vaya tela... Eso sí, tiene pinta de ser chungo generar ese tipo de 'gráficos' jejeje.

Para los documentos que tenemos en Overflowed Minds se ha utilizado Latex. Aquí te dejo las cabeceras que he utilizado para insertar el código.

Este para lenguaje C:
Código: Seleccionar todo
\lstset{
language=C++,                % choose the language of the code
basicstyle=\footnotesize,       % the size of the fonts that are used for the code
numbers=left,                   % where to put the line-numbers
numberstyle=\footnotesize,      % the size of the fonts that are used for the line-numbers
stepnumber=1,                   % the step between two line-numbers. If it's 1 each line
                               % will be numbered
numbersep=5pt,                  % how far the line-numbers are from the code
backgroundcolor=\color{gray75},  % choose the background color. You must add \usepackage{color}
showspaces=false,               % show spaces adding particular underscores
showstringspaces=false,         % underline spaces within strings
showtabs=false,                 % show tabs within strings adding particular underscores
frame=single,                   % adds a frame around the code
tabsize=2,                   % sets default tabsize to 2 spaces
captionpos=b,                   % sets the caption-position to bottom
breaklines=true,                % sets automatic line breaking
breakatwhitespace=false,        % sets if automatic breaks should only happen at whitespace
title=\lstname,                 % show the filename of files included with \lstinputlisting;
                                % also try caption instead of title
escapeinside={\%*}{*)},         % if you want to add a comment within your code
morekeywords={*,...}            % if you want to add more keywords to the set
}


Este para ensamblador:
Código: Seleccionar todo
\lstset{
language=[x86masm]Assembler,                % choose the language of the code
basicstyle=\footnotesize,       % the size of the fonts that are used for the code
numbers=left,                   % where to put the line-numbers
numberstyle=\footnotesize,      % the size of the fonts that are used for the line-numbers
stepnumber=1,                   % the step between two line-numbers. If it's 1 each line
                                % will be numbered
numbersep=5pt,                  % how far the line-numbers are from the code
backgroundcolor=\color{gray75},  % choose the background color. You must add \usepackage{color}
showspaces=false,               % show spaces adding particular underscores
showstringspaces=false,         % underline spaces within strings
showtabs=false,                 % show tabs within strings adding particular underscores
frame=single,                   % adds a frame around the code
tabsize=2,                   % sets default tabsize to 2 spaces
captionpos=b,                   % sets the caption-position to bottom
breaklines=true,                % sets automatic line breaking
breakatwhitespace=false,        % sets if automatic breaks should only happen at whitespace
title=\lstname,                 % show the filename of files included with \lstinputlisting;
                                % also try caption instead of title
escapeinside={\%*}{*)},         % if you want to add a comment within your code
morekeywords={*,...}            % if you want to add more keywords to the set
}


Y este para mostrar los comandos de la consola:
Código: Seleccionar todo
\lstset{
    language=bash,
    frame=Ltb,
     framerule=0pt,
     aboveskip=0.5cm,
     framextopmargin=3pt,
     framexbottommargin=3pt,
     framexleftmargin=0.4cm,
     framesep=0pt,
     rulesep=.4pt,
     backgroundcolor=\color{gray97},
     rulesepcolor=\color{black},
     %
     stringstyle=\ttfamily,
     showstringspaces = false,
     basicstyle=\small\ttfamily,
     commentstyle=\color{gray45},
     keywordstyle=\bfseries,
     %
     numbers=left,
     numbersep=15pt,
     numberstyle=\tiny,
     numberfirstline = false,
     breaklines=true,
}



Y así es como se utiliza, por ejemplo con ensamblador:
Código: Seleccionar todo
\lstset{language=[x86masm]Assembler,caption=Llamada al sistema $exit$,label=fig:exit}
\begin{lstlisting}   
      BITS 32
      xor eax, eax
      mov al, 1
      int 0x80
\end{lstlisting}


Esto es para cambiar el color de fondo del listado de los códigos de consola:
Código: Seleccionar todo
\lstdefinestyle{consola} {
   basicstyle=\scriptsize\bf\ttfamily,
   backgroundcolor=\color{gray75},
}





Sobre lo que comentas de colorear las palabras... Pues lo estuve buscando un tiempo y no encontré nada. Así que ya sabes, si encuentras como hacerlo, ¡post!

Saludos y muy buena aportación para estrenar sección ^^
Imagen
zhy
 
Mensajes: 6
Registrado: Mié May 18, 2011 11:28 am

Re: Latex

por zhy Lun May 23, 2011 10:11 pm

Buenas de nuevo ;) , atento a esta newlog no se si lo conocerás , acabo de descubrirlo y es un paquete llamado "drawstack" para dibujar stacks viene de lujo, vi el código muy por encima y el paquete usa tikz, el autor se lo ha currado y aparentemente es bastante facil dibujar un stack, tan facil como hacer:

Código: Seleccionar todo
\begin{drawstack}
  \cell{First cell}
  \cell{Second cell}
\end{drawstack}


Subo aqui una muestra:
Imagen
Uploaded with ImageShack.us

Este es el básico, luego se puede hacer lo típico poner flechas ( ebp ... ), seguramente trasteando se pueda también cambiar colores y demás ...
Aqui teneis un ejemplo de la web del autor, .tex,pdf y el paquete :D , si os interesa el tema mas que recomendable.

Link
http://mirror.math.ku.edu/tex-archive/m ... drawstack/

En cuanto a lo de lstlisting !! , yo el que suelo usar es el siguiente :

Código: Seleccionar todo
\lstset{ %
language=C,                  
basicstyle=\scriptsize,       
%numbers=left,                 
numberstyle=\scriptsize,     
stepnumber=1,                   
numbersep=5pt,                 
backgroundcolor=\color{gris}, 
showspaces=false,             
showstringspaces=false,         
showtabs=false,                 
frame=single,         
tabsize=3,         
captionpos=b,         
breaklines=true,      
breakatwhitespace=false,   
%escapeinside={\%*}{*)}     


Un tono gris con scriptsize me gusta bastante aunque estoy pensando en cambiarlo jeje llevo demasiado tiempo con este ;)

Saludos,
Avatar de Usuario
newlog
El Eterno Alumno
 
Mensajes: 170
Registrado: Lun Jun 23, 2008 7:28 pm

Re: Latex

por newlog Mar May 24, 2011 8:27 am

Dios!!

Lo del stack es perfecto! Eso sí que te aseguro que lo voy a utilizar! Yo que los dibujitos del stack los hacia con el bendito paint (tenía que arrancar máquina virtual sólo para utilizar el paint jajaja). Y después se lo tenia que pasar a alguien para que hiciera un gráfico más currado.

En fin, eso me viene que ni pintao ^^

Sigue aportando estas perlas! Ten por seguro que en mi próximo paper lo pienso utilizar.

Saludos!
Imagen
zhy
 
Mensajes: 6
Registrado: Mié May 18, 2011 11:28 am

Re: Latex

por zhy Vie Jun 03, 2011 11:01 pm

Hoy empecé a trastear un poco con el paquete, y efectivamente lo que te comentaba los colores pueden cambiarse con el entorno tikzstyle, puedes definirlo para un stack ( de forma local ) o hacerlo de forma global.

Si lo quieres por ejemplo de forma local te basta con encerrarlo entre llaves y definir la configuración de colores con el comando tikzstyle ( no lo conozco a fondo ).

Un pequeño ejemplo para pintar una posición de rojo, que sólo afecte a una pila de tu documento tex.

Código: Seleccionar todo
{
\tikzstyle{Var Local1}=[fill=red!40]
\begin{drawstack}
  \cell{Var Local1}
\end{drawstack}
}



Algunas cosas que he ojeado :

-Si quieres por ejemplo hacer mas grande una posición de la pila, te basta con agregar el número delante, es decir:

Código: Seleccionar todo
\cell{2}{Var local 1}


- Si quieres mover la pila de posición puedes hacerlo con los propios entornos de latex, no necesitas tikzs, puedes por ejemplo encerrar la pila en una caja y moverla o simplemente con el comando figure te basta, para el tamaño mas de lo mismo con una caja no debería haber problemas.

Centrando la pila ...

Código: Seleccionar todo
\begin{figure}[h]
\centering

%Comienza la pila
\begin{drawstack}
  \cell{First cell}
  \cell{Second cell}
\end{drawstack}

\end{figure}


Un saludo !
Zhenyn

P.D: Terminando de digerir tu paper de exploiting ;)
Avatar de Usuario
newlog
El Eterno Alumno
 
Mensajes: 170
Registrado: Lun Jun 23, 2008 7:28 pm

Re: Latex

por newlog Sab Jun 04, 2011 1:00 pm

Gracias zhy!

La verdad es que si hubiera conocido este paquete antes, me hubiera ahorrado muchos dibujos con el paint y sucedáneos...
Qué mal que quedaban!

En fin, en el siguiente paper, las cosas van a quedar bastante más pulidas jejeje.

Ya sabes, si ves alguna cosa por mi paper que quisieras hacer con Latex, sólo has de pedir el código!
Imagen
Avatar de Usuario
vlan7
 
Mensajes: 87
Registrado: Jue Jul 22, 2010 3:45 pm
Ubicación: Mas alla del EIP

Re: Latex

por vlan7 Mar Ene 31, 2012 12:16 am

Hey zhy! Hola y bienvenido, que soy un desastre total y acabo de releer tu post.

Aparte de agradecer tu trabajo, sobre lo que comentas, en su dia no se, pero acabo de hacer una busqueda rapida en google por "lstlisting latex colors" y salen varias paginas, entre ellas los del otro stack overflow 8-)

Mira a ver si es lo que quieres, y si no y aun sigues por estas tierras, escribe!

Un saludo.
int *p = new int[7];
p = p + 7;
*p = 42;

int a[7];
a[7] = 42; /* ESC[2;9y */
Volver a Otros lenguajes

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados