Using latex Syntax Highlighting
- \documentclass{article}
- % Las líneas que estan en
- % éste sector no deben modificarse
- \begin{document}
- Texto texto texto sin *
- un espacio antes \pspicture(4,2)(8,1)
- \psscaleboxto(8,2){foo bar baz}
- \endpspicture
- Mas Texto usando * [...](,)
- Un texto antes\pspicture*[
- showgrid
- ](5,5)(2,2)
- \pscustom[fillcolor=red!20, fillstyle=solid]{%
- \lineto(0,0)
- \closepath}
- \endpspicture
- Más Texto usando * (,)(,)
- \pspicture*(5,5)(2,2)
- \pscustom[fillcolor=red!20, fillstyle=solid]{%
- \pscspline(0,3)(4,2)(5,0)
- \lineto(0,0)
- \closepath}
- \endpspicture
- \end{document}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
El archivo de salida que deseo es éste:
Using latex Syntax Highlighting
- \documentclass{article}
- % Las líneas que estan en
- % éste sector no deben modificarse
- \begin{document}
- Texto texto texto sin *
- un espacio antes \begin{pspicture}(4,2)(8,1)
- \psscaleboxto(8,2){foo bar baz}
- \end{pspicture}
- Mas Texto usando * [...](,)
- Un texto antes\begin{pspicture*}[
- showgrid
- ](5,5)(2,2)
- \pscustom[fillcolor=red!20, fillstyle=solid]{%
- \lineto(0,0)
- \closepath}
- \end{pspicture*}
- Más Texto usando * (,)(,)
- \begin{pspicture*}(5,5)(2,2)
- \pscustom[fillcolor=red!20, fillstyle=solid]{%
- \pscspline(0,3)(4,2)(5,0)
- \lineto(0,0)
- \closepath}
- \end{pspicture*}
- \end{document}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Utilizo el siguiente script:
Using perl Syntax Highlighting
- #!/usr/bin/perl
- use v5.18;
- use strict; # Somos estrictos
- use autodie; # muere si ocurre un error
- use File::Basename; # separa el archivo de entrada
- use File::Path; # Para crear y remover directorios
- #------------------------ Constantes -----------------------------------
- my $imageDir = 'images/'; # directorio de imágenes
- my $imgCn = 1; # Counter for PSTexample
- #--------------------- Arreglo de la extensión -------------------------
- my @SuffixList = ('.tex', '', '.ltx'); # posible extensión
- my ($name, $path, $ext) = fileparse($ARGV[0], @SuffixList);
- $ext = '.tex' if not $ext;
- #---------------- Creamos el directorio para las imágenes --------------
- -e $imageDir or mkdir($imageDir,0744) or die "No puedo crear $imageDir: $!\n";
- #------------------- Abrimos el archivo -------------------------------
- open my $ENTRADA, '<', "$name$ext";
- my $archivo;
- {
- local $/;
- $archivo = <$ENTRADA>;
- }
- close $ENTRADA;
- #--------------------- Dividimos el archivo de entrada -----------------
- my($cabeza,$cuerpo,$final) = $archivo =~ m/\A (.+? ^\\begin{document}) (.+) (^ \\end{document} .*) \z/msx;
- $cuerpo =~ s/\\pspicture\*(.+?)\\endpspicture/\\begin{pspicture\*}$1\\end{pspicture\*}/gms;
- $cuerpo =~ s/\\pspicture(.+?)\\endpspicture/\\begin{pspicture\*}$1\\end{pspicture}/gms;
- open my $SALIDA, '>', "$name-out$ext";
- print $SALIDA <<"EOC";
- $cabeza$cuerpo$final
- EOC
- close $SALIDA;
- __END__
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
El problema lo tengo con el * entre
y
puesto que ambos rangos en los cuales deseo hacer los cambios terminan de igual manera y no logro dar con una única expresión regular que haga los cambios que necesito, es decir, si encuentra \pspicture ... \endpspicture cambie a \begin{pspicture} ... \end{pspicture} y si encuentra \pspicture* ... \endpspicture cambie a \begin{pspicture*} ... \end{pspicture*}.
Agradecido de antemano.
Pablo.