Underc0de

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: Snifer en Abril 02, 2012, 01:27:05 AM

Título: Python highlighting en LaTeX
Publicado por: Snifer en Abril 02, 2012, 01:27:05 AM
Bueno hace dias estaba con este problema de poder  presentar de manera adecuada, el codigo para la  presentación final de la tesis, y sacar las copias que sean necesarias para la entrega, y listo asi que me la pase investigando hasta que di con Pythonhighlight  el cual me permite colorear por asi decirlo, código en Python, es verdad que existe el paquete  listings que si logra trabajar con lstlisting nos permite trabajar con varios códigos los cuales son:

CitarABAP (R/2 4.3, R/2 5.0, R/3 3.1, R/3 4.6C, R/3 6.10), ACSL Ada (83, 95), Algol (60, 68), Ant, Assembler (x86masm), Awk (gnu, POSIX), bash, Basic (Visual), C (ANSI, Handel, Objective, Sharp), C++ (ANSI, GNU, ISO, Visual), Caml (light, Objective), Clean, Cobol (1974, 1985, ibm), Comal 80, csh, Delphi, Ei?el, Elan, erlang, Euphoria, Fortran (77, 90, 95), GCL, Gnuplot, Haskell, HTML, IDL (empty, CORBA), inform, Java (empty, AspectJ), JVMIS, ksh, Lisp (empty, Auto), Logo, make (empty, gnu), Mathematica (1.0, 3.0), Matlab, Mercury, MetaPost, Miranda, Mizar, ML, Modula-2, MuPAD, NASTRAN, Oberon-2, OCL (decorative, OMG), Octave, Oz, Pascal (Borland6, Standard, XSC), Perl,PHP, PL/I,Plasm, POV,Prolog, Promela,Python, R,Reduce, Rexx,RSL, Ruby, S (empty, PLUS), SAS, Scilab, sh, SHELXL, Simula (67, CII, DEC, IBM), SQL, tcl (empty, tk), TeX (AlLaTeX, common, LaTeX, plain, primitive), VBScript, Verilog, VHDL (empty, AMS), VRML (97), XML, XSLT.


Pero bueno no necesito todo eso ¬¬ ademas, no entiendo porque pero no puedo hacer dar el paquete bien jejeje, lo que hacemos para poder usar PythonHighlight (http://pub.xd.cl/sniferl4bs/pythonhighlight.sty) es descargarlo para usar solo código Python, luego abrimos una terminal y ejecutamos lo siguiente:


snifer@snifer:~$ sudo mkdir /usr/share/texmf/tex/latex/pythonhighlight


Luego realizamos la copia del archivo Descargado en la carpeta creada:


snifer@snifer:~/Descargas$ sudo cp pythonhighlight.sty /usr/share/texmf/tex/latex/pythonhighlight


Ahora lo que toca es re-configurar LaTeX para que tenga constancia del nuevo paquete para eso usamos el siguiente comando:

snifer@snifer:$ sudo texhash

Y listo ya lo tenemos instalado, para usar hacemos lo siguiente incluir el paquete para que se pueda hacer uso de el.

% El paquete que hemos instalado y debemos usar para que quede bonito =)
\usepackage{pythonhighlight}


Para hacer uso de el  ponemos entre \begin{python}  y \end{python}  el código que queremos resaltar.



Luego de compilar nos da el siguiente resultado.

(http://1.bp.blogspot.com/--txoZO53HaA/Tzc7WixRehI/AAAAAAAAAm0/ndL2E2tbMhE/s1600/EjemploPython.png)

Mas elegante verdad, por si quieren ver el código de LaTeX aqui (http://pastebin.com/q5DgKKba) lo pueden descargar.

Bueno luego de esto note algo importante que en el desarrollo del documento hago uso de algunas parte de codigo que toca especificar como por ejemplo:


Los métodos __init__ pueden tomar cualquier cantidad de argumentos, e igual que las funciones, éstos pueden definirse con valores por defecto, haciéndoles opcionales para quien invoca.
Lo que me toca resaltar es __init__ usamos de la siguiente manera anteponiendo al codigo de Python que deseamos resaltar \pyth{} teniendo como resultado:

(http://2.bp.blogspot.com/-4eZJ0SLvKn0/Tzc9ZTsr8eI/AAAAAAAAAm8/gLeQU2mDoxw/s1600/PythonCode.png)
Uso de pyth{}

Bueno eso es todo espero les agrade, esta entrada y a seguir trabajando con LaTeX.

Bueno hace dias estaba con este problema de poder  presentar de manera adecuada, el codigo para la  presentación final de la tesis, y sacar las copias que sean necesarias para la entrega, y listo asi que me la pase investigando hasta que di con Pythonhighlight  el cual me permite colorear por asi decirlo, código en Python, es verdad que existe el paquete  listings que si logra trabajar con lstlisting nos permite trabajar con varios códigos los cuales son:

CitarABAP (R/2 4.3, R/2 5.0, R/3 3.1, R/3 4.6C, R/3 6.10), ACSL Ada (83, 95), Algol (60, 68), Ant, Assembler (x86masm), Awk (gnu, POSIX), bash, Basic (Visual), C (ANSI, Handel, Objective, Sharp), C++ (ANSI, GNU, ISO, Visual), Caml (light, Objective), Clean, Cobol (1974, 1985, ibm), Comal 80, csh, Delphi, Ei?el, Elan, erlang, Euphoria, Fortran (77, 90, 95), GCL, Gnuplot, Haskell, HTML, IDL (empty, CORBA), inform, Java (empty, AspectJ), JVMIS, ksh, Lisp (empty, Auto), Logo, make (empty, gnu), Mathematica (1.0, 3.0), Matlab, Mercury, MetaPost, Miranda, Mizar, ML, Modula-2, MuPAD, NASTRAN, Oberon-2, OCL (decorative, OMG), Octave, Oz, Pascal (Borland6, Standard, XSC), Perl,PHP, PL/I,Plasm, POV,Prolog, Promela,Python, R,Reduce, Rexx,RSL, Ruby, S (empty, PLUS), SAS, Scilab, sh, SHELXL, Simula (67, CII, DEC, IBM), SQL, tcl (empty, tk), TeX (AlLaTeX, common, LaTeX, plain, primitive), VBScript, Verilog, VHDL (empty, AMS), VRML (97), XML, XSLT.


Pero bueno no necesito todo eso ¬¬ ademas, no entiendo porque pero no puedo hacer dar el paquete bien jejeje, lo que hacemos para poder usar PythonHighlight (http://pub.xd.cl/sniferl4bs/pythonhighlight.sty) es descargarlo para usar solo código Python, luego abrimos una terminal y ejecutamos lo siguiente:


snifer@snifer:~$ sudo mkdir /usr/share/texmf/tex/latex/pythonhighlight


Luego realizamos la copia del archivo Descargado en la carpeta creada:


snifer@snifer:~/Descargas$ sudo cp pythonhighlight.sty /usr/share/texmf/tex/latex/pythonhighlight


Ahora lo que toca es re-configurar LaTeX para que tenga constancia del nuevo paquete para eso usamos el siguiente comando:

snifer@snifer:$ sudo texhash

Y listo ya lo tenemos instalado, para usar hacemos lo siguiente incluir el paquete para que se pueda hacer uso de el.

% El paquete que hemos instalado y debemos usar para que quede bonito =)
\usepackage{pythonhighlight}


Para hacer uso de el  ponemos entre \begin{python}  y \end{python}  el código que queremos resaltar.



Luego de compilar nos da el siguiente resultado.

(http://1.bp.blogspot.com/--txoZO53HaA/Tzc7WixRehI/AAAAAAAAAm0/ndL2E2tbMhE/s1600/EjemploPython.png)

Mas elegante verdad, por si quieren ver el código de LaTeX aqui (http://pastebin.com/q5DgKKba) lo pueden descargar.

Bueno luego de esto note algo importante que en el desarrollo del documento hago uso de algunas parte de codigo que toca especificar como por ejemplo:


Los métodos __init__ pueden tomar cualquier cantidad de argumentos, e igual que las funciones, éstos pueden definirse con valores por defecto, haciéndoles opcionales para quien invoca.
Lo que me toca resaltar es __init__ usamos de la siguiente manera anteponiendo al codigo de Python que deseamos resaltar \pyth{} teniendo como resultado:

(http://2.bp.blogspot.com/-4eZJ0SLvKn0/Tzc9ZTsr8eI/AAAAAAAAAm8/gLeQU2mDoxw/s1600/PythonCode.png)
Uso de pyth{}

Bueno eso es todo espero les agrade, esta entrada y a seguir trabajando con LaTeX.

Fuente : Snifer@L4b's (http://sniferl4bs.blogspot.com/2012/02/python-highlighting-en-latex.html)