El asunto es así: paso una expresión regular a varios array y luego efectúo varias modificaciones en esto, eliminar duplicados y quitar líneas en blanco.
El tema es que debo hacerlo por cada array que se presenta, es decir, escribo varias veces un mismo código (entre las líneas 80 y 115) y me gustaría poder dejarlo dentro de una función (que ya tengo definida). El código es el siguiente:
Using perl Syntax Highlighting
- #!/usr/bin/perl
- use v5.20;
- use autodie; # muere si ocurre un error
- use File::Basename; # separa el archivo de entrada
- use Data::Dumper;
- ### Argumentos ---------------------------------------------------------
- @ARGV == 1 or die "Uso: $0 <archivo TeX a procesar>\n";
- my $nombre_archivo = shift;
- -f $nombre_archivo or die "ERROR: No encuentro [$nombre_archivo]\n";
- ### Arreglo de la extensión --------------------------------------------
- my @SuffixList = ('.tex', '', '.ltx'); # posible extensión
- my ($name, $path, $ext) = fileparse($nombre_archivo, @SuffixList);
- $ext = '.tex' if not $ext; # fijamos la extensión
- ### Directorio para las imágenes y otros
- my $imageDir = "images";
- my $myverb = "myverb";
- my $ignore = "ignore";
- ### Abrimos el archivo de entrada a modificar --------------------------
- open my $ENTRADA, '<', $nombre_archivo;
- my $archivo;
- {
- local $/;
- $archivo = <$ENTRADA>;
- }
- close $ENTRADA;
- ## Cambios a realizar
- my %cambios = (
- '\pspicture' => '\TRICKS',
- '\endpspicture' => '\ENDTRICKS',
- '\begin{pspicture' => '\begin{TRICKS',
- '\end{pspicture' => '\end{TRICKS',
- '\begin{postscript}' => '\begin{POSTRICKS}',
- '\end{postscript}' => '\end{POSTRICKS}',
- );
- ## Variables y constantes
- my $no_del = "\0";
- my $del = $no_del;
- ## Reglas
- my $braces = qr/ (?:\{)(.+?)(?:\}) /msx;
- my $braquet = qr/ (?:\[)(.+?)(?:\]) /msx;
- my $llaves = qr/\{ .+? \} /x;
- my $no_corchete = qr/(?:\[ .+? \])? /msx;
- my $delimitador = qr/\{ (?<del>.+?) \} /x;
- my $anidado = qr/(\{(?:[^\{\}]++|(?1))*\}) /x;
- # TCOLORBOX ... \begin{...} ... \end{...} del paquete tcolorbox
- my $tcbxnlst = qr/ (?:re)?newtcblisting $no_corchete /x;
- my $tcbxplst = qr/ (?:Declare|Provide|New|Renew)TCBListing $no_corchete /x;
- my $tcbxnext = qr/ (?:re)?newtcbexternalize(?:environment|tcolorbox) /x;
- my $lstnewen = qr/ (?:lstnewenvironment) /x;
- my $fancyvrb = qr/ (?:DefineVerbatimEnvironment) /msx;
- my $tcbxpack = qr/\\ (?:$tcbxnlst| $tcbxplst| $tcbxnext| $lstnewen|$fancyvrb) $braces /msx;
- # MINTED ... \begin{...} ... \end{...}, inline del paquete minted
- my $mintdenv = qr/\\ newminted $braces (?:\{.+?\}) /x;
- my $mintcenv = qr/\\ newminted $braquet (?:\{.+?\}) /x;
- my $mintdshrt = qr/\\ newmint $braces (?:\{.+?\}) /x;
- my $mintcshrt = qr/\\ newmint $braquet (?:\{.+?\}) /x;
- my $mintdline = qr/\\ newmintinline $braces (?:\{.+?\}) /x;
- my $mintcline = qr/\\ newmintinline $braquet (?:\{.+?\}) /x;
- ### Expresión regular pasada a un array
- my @mint_denv = $archivo =~ m/$mintdenv/xg; # \newminted{$mintdenv}{options} (for)
- my @mint_cenv = $archivo =~ m/$mintcenv/xg; # \newminted[$mintcenv]{lang} (for)
- my @mint_dshrt = $archivo =~ m/$mintdshrt/xg; # \newmint{$mintdshrt}{options} (while)
- my @mint_cshrt = $archivo =~ m/$mintcshrt/xg; # \newmint[$mintcshrt]{lang}{options} (while)
- my @mint_dline = $archivo =~ m/$mintdline/xg; # \newmintinline{$mintdline}{options} (while)
- my @mint_cline = $archivo =~ m/$mintcline/xg; # \newmintinline[$mintcline]{lang}{options} (while)
- my @tcolorbox = $archivo =~ m/$tcbxpack/gmsx; # \newenvironment[...]{$tcbxpack} (for)
- ### Quitamos los elementos duplicados del array
- sub uniq {
- my %seen;
- grep !$seen{$_}++, @_;
- }
- @mint_denv = uniq(@mint_denv) ;
- @mint_cenv = uniq(@mint_cenv) ;
- @mint_dline = uniq(@mint_dline);
- @mint_cline = uniq(@mint_cline);
- @mint_dshrt = uniq(@mint_dshrt);
- @mint_cshrt = uniq(@mint_cshrt);
- @tcolorbox = uniq(@tcolorbox) ;
- ### Quitamos los espacios, % y líneas en blanco
- @mint_denv = grep(!/\%/, @mint_denv);
- @mint_cenv = grep(!/\%/, @mint_cenv);
- @mint_dline = grep(!/\%/, @mint_dline);
- @mint_cline = grep(!/\%/, @mint_cline);
- @mint_dshrt = grep(!/\%/, @mint_dshrt);
- @mint_cshrt = grep(!/\%/, @mint_cshrt);
- @tcolorbox = grep(!/\%/, @tcolorbox);
- @mint_denv = grep /\S/, @mint_denv;
- @mint_cenv = grep /\S/, @mint_cenv;
- @mint_dline = grep /\S/, @mint_dline;
- @mint_cline = grep /\S/, @mint_cline;
- @mint_dshrt = grep /\S/, @mint_dshrt;
- @mint_cshrt = grep /\S/, @mint_cshrt;
- @tcolorbox = grep /\S/, @tcolorbox;
- s{^\s+|\s+$}{}g foreach @mint_denv;
- s{^\s+|\s+$}{}g foreach @mint_cenv;
- s{^\s+|\s+$}{}g foreach @mint_dline;
- s{^\s+|\s+$}{}g foreach @mint_cline;
- s{^\s+|\s+$}{}g foreach @mint_dshrt;
- s{^\s+|\s+$}{}g foreach @mint_cshrt;
- s{^\s+|\s+$}{}g foreach @tcolorbox;
- # Agregamos "code" e "inline" para usar en qr/
- if (!@mint_denv == 0){
- $mintdenv = join "\n", map { qq/$_\Qcode\E/ } @mint_denv;
- @mint_denv = split /\n/, $mintdenv; # (for)
- }
- if (!@mint_dline == 0){
- $mintdline = join "\n", map { qq/$_\Qinline\E/ } @mint_dline;
- @mint_dline = split /\n/, $mintdline; # (while)
- }
- # Agregamos la palabra "TMP" para crear el hash
- my $mintdenv_hash = join "\n", map { qq/TMP$_/ } @mint_denv; # default
- my @mint_denv_hash = split /\n/, $mintdenv_hash; # default
- my $mintcenv_hash = join "\n", map { qq/TMP$_/ } @mint_cenv; # custom
- my @mint_cenv_hash = split /\n/, $mintcenv_hash; # custom
- my $mintdline_hash = join "\n", map { qq/TMP$_/ } @mint_dline; # default
- my @mint_dline_hash = split /\n/, $mintdline_hash; # default
- my $mintcline_hash = join "\n", map { qq/TMP$_/ } @mint_cline; # default
- my @mint_cline_hash = split /\n/, $mintcline_hash; # default
- my $mintdshrt_hash = join "\n", map { qq/TMP$_/ } @mint_dshrt; # default
- my @mint_dshrt_hash = split /\n/, $mintdshrt_hash; # default
- my $mintcshrt_hash = join "\n", map { qq/TMP$_/ } @mint_cshrt; # default
- my @mint_cshrt_hash = split /\n/, $mintcshrt_hash; # default
- my $tcolorbox_hash = join "\n", map { qq/TMP$_/ } @tcolorbox; # default
- my @tcolorbox_hash = split /\n/, $tcolorbox_hash; # default
- # Array para el hash de entrada con las palabras sin TMP
- my @infile_verb;
- push(@infile_verb,@mint_denv, @mint_cenv, @tcolorbox);
- # Array para el hash de salida con las palabras con TMP
- my @outfile_verb;
- push(@outfile_verb,@mint_denv_hash, @mint_cenv_hash, @tcolorbox_hash);
- # Ahora creamos hash para la entrada y salida del archivo
- my %hash_entrada;
- @hash_entrada{@infile_verb} = @outfile_verb;
- my %hash_salida;
- @hash_salida{@outfile_verb} = @infile_verb;
- # Creamos %nuevo = (%cambios,%hash_entrada) y lo pasamos por (for) y (while)
- my %nuevo = (%cambios,%hash_entrada);
- # Pasamos @infile_verb y minted a \qr
- my $fileverb = join "|", map quotemeta, @infile_verb; # \begin{...} ... \end{...}
- $mintdline = join "|", map quotemeta, @mint_dline; # inline verbatim default
- $mintcline = join "|", map quotemeta, @mint_cline; # inline verbatim custom
- $mintdshrt = join "|", map quotemeta, @mint_dshrt; # inline verbatim default
- $mintcshrt = join "|", map quotemeta, @mint_cshrt; # inline verbatim custom
- my $mintedpack = qr/\b(?:$mintdline|$mintcline|$mintdshrt|$mintcshrt)/x;
- $fileverb = qr/\b(?:$fileverb)/x;
- ### Reglas de captura
- my $verb = qr/(?:(spv|v|V)erb | $myverb) [*]? /ix;
- my $lst = qr/(?:lstinline|$mintedpack|$myverb) (?!\*) $no_corchete /ix;
- my $mint = qr/ mint(?:inline)?(?!\*) $no_corchete $llaves /ix;
- my $marca = qr/\\ (?:$verb | $lst| $mint ) (\S) .+? \g{-1} /x;
- ### Comentarios y delimitadores
- my $comentario = qr/^ \s* \%+ .+? $ /mx;
- my $definedel = qr/\\ (?: DefineShortVerb | lstMakeShortInline ) $no_corchete $delimitador /ix;
- my $indefinedel = qr/\\ (?: UndefineShortVerb | lstDeleteShortInline) $llaves /ix;
- ### tcbverb,minted,mintline anidados
- my $mintverb = qr/\\ (?:mint(?:inline)?(?!\*)) $no_corchete $llaves /ix;
- my $tcbxverb = qr/\\ (?: tcboxverb | $myverb |$mintedpack(?!\*)) $no_corchete /ix;
- my $tcbxmint = qr/(?:$tcbxverb|$mintverb) $anidado /x;
- ### Cambiar cuando aparece en una sola línea
- while ($archivo =~
- / $tcbxmint
- | $marca
- | $comentario
- | $definedel
- | $indefinedel
- | $del .+? $del # delimitado
- /pgmx) {
- my($pos_inicial, $pos_final) = ($-[0], $+[0]); # posiciones
- my $encontrado = ${^MATCH}; # lo encontrado
- if ($encontrado =~ /$definedel/){ # definimos delimitador
- $del = $+{del};
- $del = "\Q$+{del}" if substr($del,0,1) ne '\\'; # es necesario "escapar" el delimitador
- }
- elsif($encontrado =~ /$indefinedel/) { # indefinimos delimitador
- $del = $no_del;
- }
- else { # aquí se hacen los cambios
- while (my($busco, $cambio) = each %nuevo) {
- $encontrado =~ s/\Q$busco\E/$cambio/g; # es necesario escapar $busco
- }
- substr $archivo, $pos_inicial, $pos_final-$pos_inicial, $encontrado; # insertamos los nuevos cambios
- pos($archivo)= $pos_inicial + length $encontrado; # re posicionamos la siguiente búsqueda
- }
- }
- ### Definimos los entornos en los cuales haremos los cambios
- my $Verbatim = qr/(?:(v|V)erbatim\*? | # verbatim and fancyvrb
- (?:(?:P)?Center|(?:P)?SideBySide)?Example | # fancyvrb
- PSTexample | # pst-exa
- PSTcode | # pst-exa
- LTXexample | # showexpl
- $ignore\*? | # $ignore
- tcblisting\*? | # tcolorbox
- tcboutputlisting | # tcolorbox
- tcbexternal | # tcolorbox
- extcolorbox | # tcolorbox
- extikzpicture | # tcolorbox
- spverbatim | # spverbatim
- minted | # minted
- listing | # minted
- lstlisting | # listing
- alltt | # alltt
- comment\*? | # comment
- xcomment # xcomment
- )/x;
- ### Dividimos por líneas el archivo de entrada
- my @lineas = split /\n/, $archivo;
- ### Del
- my $DEL;
- ### Hacemos los cambios dentro de los entornos \begin{...} ... \end{...}
- for (@lineas) {
- if (/\\begin\{($fileverb\*?|$Verbatim)(?{ $DEL = "\Q$^N" })\}/ .. /\\end\{$DEL\}/) {
- while (my($busco, $cambio) = each %cambios) {
- s/\Q$busco\E/$cambio/g;
- }
- }
- } # close
- ### Volvemos
- $archivo = join("\n", @lineas);
- ### Ahora dividimos el archivo de entrada
- my($cabeza,$cuerpo,$final) = $archivo =~ m/\A (.+?) (\\begin\{document\} .+?)(\\end\{document\}.*)\z/msx;
- ### postscript environment
- my $BPL = '\begin{postscript}';
- my $EPL = '\end{postscript}';
- my $POSTSCRIPT = qr/(?: postscript)/xi;
- ### tikzpicture environment
- my $ENVIRONMENT = qr/(?: tikzpicture | pspicture\*?)/xi;
- ### \pspicture a \begin{pspicture}
- $cuerpo =~ s/\\pspicture(\*)?(.+?)\\endpspicture/\\begin{pspicture$1}$2\\end{pspicture$1}/gmsx;
- ### tikz/pst a Postscript
- $cuerpo =~ s/\\begin\{($POSTSCRIPT)\}.+?\\end\{\g{-1}\}(*SKIP)(*F)|
- (
- (?:\\(psset|tikzset)(\{(?:\{.*?\}|[^\{])*\}).*?)? # si está lo guardo
- (\\begin\{($ENVIRONMENT)\} (.*?) \\end\{\g{-2}\})
- )
- /$BPL\n$1\n$EPL/gmsx;
- ### Convertir
- my $grap="\\includegraphics[scale=1]{EXTRAIDO-fig-";
- my $close = '}';
- my $imgNo = 1; #
- my $BP = '\\\\begin\{postscript\}';
- my $EP = '\\\\end\{postscript\}';
- $cuerpo =~ s/$BP.+?$EP/$grap@{[$imgNo++]}$close/msg; #
- my %cambios = (
- # pst/tikz set
- '\PSSET' => '\psset',
- '\TIKZSET' => '\tikzset',
- # pspicture
- '\TRICKS' => '\pspicture',
- '\ENDTRICKS' => '\endpspicture',
- # pspicture
- '\begin{TRICKS' => '\begin{pspicture',
- '\end{TRICKS' => '\end{pspicture',
- # postscript
- '\begin{POSTRICKS}' => '\begin{postscript}',
- '\end{POSTRICKS}' => '\end{postscript}',
- );
- %nuevo = (%cambios,%hash_salida);
- ### Reemplazamos y unimos
- while (my($busco, $cambio) = each %nuevo) {
- $cabeza =~ s/\Q$busco\E/$cambio/g;
- $cuerpo =~ s/\Q$busco\E/$cambio/g;
- $final =~ s/\Q$busco\E/$cambio/g;
- }
- ### Escritura del resultado
- open my $SALIDA, '>', "$name-out$ext";
- print $SALIDA "$cabeza$cuerpo$final";
- close $SALIDA;
- __END__
- #delete @cambios{'\begin{postscript}','\end{postscript}'};
- #print Dumper(\%cambios);
Coloreado en 0.010 segundos, usando GeSHi 1.0.8.4
Using latex Syntax Highlighting
- \documentclass{article}
- \usepackage{minted}
- \usepackage{pstricks-add}
- \newtcblisting[opcional]{mytcbliting}
- %\renewtcblisting[opcional]{nombre_2}
- %\newtcblisting{nombre_1a}
- %\renewtcblisting{nombre_2a}
- %\DeclareTCBListing[opcional]{nombre_3}
- %\NewTCBListing[opcional]{nombre_4}
- %\ProvideTCBListing[opcional]{nombre_6}
- %\newtcbexternalizeenvironment{nombre_7}
- %\renewtcbexternalizeenvironment{nombre_8}
- %\newtcbexternalizetcolorbox{nombre_9}
- %\renewtcbexternalizetcolorbox{nombre_10}
- \RenewTCBListing[
- opcion
- ]{
- opcionaluno
- }
- \DefineVerbatimEnvironment{MyVerbatim}
- {Verbatim}
- {gobble=2,frame=lines,framerule=0.8mm}
- \begin{document}
- %Se convierte
- \begin{postscript}
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se convierte
- \end{pspicture}
- \end{postscript}
- \begin{mytcbliting}
- \begin{postscript}
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se queda
- \end{pspicture}
- \end{postscript}
- \end{mytcbliting}
- %Se convierte
- \begin{postscript}
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se convierte
- \end{pspicture}
- \end{postscript}
- \begin{opcionaluno}
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se queda
- \end{pspicture}
- \end{opcionaluno}
- \begin{MyVerbatim*}
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se queda
- \end{pspicture}
- \end{MyVerbatim*}
- \newminted{algun}{options}
- \begin{alguncode*}
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se queda
- \end{pspicture}
- \end{alguncode*}
- \newminted[langA]{lang1}{options}
- \begin{langA}[opciones]
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se queda
- \end{pspicture}
- \end{langA}
- \begin{langArm}[opciones]
- %Se convierte
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se convierte
- \end{pspicture}
- \end{langArm}
- \section{minted inline}
- \subsection{delimitado}
- Original delimitado \mintinline{latex}|\begin{langA} ... \end{langA}| text
- Original delimitado \mintinline{latex}|\begin{MyVerbatim*}| text
- Original delimitado con opciones \mintinline[opciones]{latex}/\begin{pspicture}/ text
- Definiendo nuevo mintinline delimitado \newmintinline{mylatex}{showspaces}
- Definiendo nuevo mintinline delimitado \newmintinline{myotrolatex}{showspaces}
- con opciones \mylatexinline[opciones]|\begin{pspicture}| y sin opciones \mylatexinline|\begin{pspicture}|
- con opciones \myotrolatexinline[opciones]|\begin{pspicture}| y sin opciones \myotrolatexinline|\begin{pspicture}|
- Definiendo nuevo mintinline con nombre propio delimitado \newmintinline[personal]{latex}{showspaces}
- con opciones \personal[opciones]|\begin{pspicture}| y sin opciones \personal[opciones]|\begin{pspicture}|
- \subsection{anidado}
- Original anidado \mintinline{latexdos}{\begin{pspicture} y \end{pspicture}} text
- Original anidado con opciones \mintinline[opciones]{latexdos}{\begin{pspicture} y \end{pspicture}} text
- Definiendo nuevo mintinline anidado \newmintinline{mylatexdos}{showspaces}
- con opciones \mylatexdosinline[opciones]{\begin{pspicture} y \end{pspicture}} y sin opciones \mylatexdosinline{\begin{pspicture} y \end{pspicture}}
- Definiendo nuevo mintinline con nombre propio anidado \newmintinline[personal]{latex}{showspaces}
- con opciones \personal[opciones]{\begin{pspicture} y \end{pspicture}} y sin opciones \personal[opciones]{\begin{pspicture} y \end{pspicture}}
- \subsection{new short minted}
- \subsection{delimitado}
- Original short \mint{python}|\begin{pspicture}|
- Definiendo nuevo mint short default \newmint{mylenguaje}{showspaces}
- \mylenguaje/\begin{pspicture}/ y \mylenguaje[opciones]/\begin{pspicture}/
- Definiendo nuevo mint short custom \newmint[mymint]{mylenguaje}{showspaces}
- \mymint/\begin{pspicture}/ \mymint[opciones]/\begin{pspicture}/
- \subsection{anidado}
- Original short \mint{lenguaje}{\begin{pspicture}}
- \mylenguaje{\begin{pspicture} y \end{pspicture}}
- \mymint{\begin{pspicture} y \end{pspicture}} \mymint[opciones]{\begin{pspicture} y \end{pspicture}}
- \section{tcolorbox}
- \tcboxverb{\begin{pspicture} o \begin{pspicture*}} y \tcboxverb[algo]{\begin{pspicture} o {algo} o \begin{pspicture*}}
- Usamos \verb|\begin{pspicture} o \begin{pspicture*}| o \verb*|\begin{pspicture} o \begin{pspicture*}| (cambia)
- \end{document}
- IGNORAR
- \begin{postscript}
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se queda
- \end{pspicture}
- \end{postscript}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Using latex Syntax Highlighting
- \documentclass{article}
- \usepackage{minted}
- \usepackage{pstricks-add}
- \newtcblisting[opcional]{mytcbliting}
- %\renewtcblisting[opcional]{nombre_2}
- %\newtcblisting{nombre_1a}
- %\renewtcblisting{nombre_2a}
- %\DeclareTCBListing[opcional]{nombre_3}
- %\NewTCBListing[opcional]{nombre_4}
- %\ProvideTCBListing[opcional]{nombre_6}
- %\newtcbexternalizeenvironment{nombre_7}
- %\renewtcbexternalizeenvironment{nombre_8}
- %\newtcbexternalizetcolorbox{nombre_9}
- %\renewtcbexternalizetcolorbox{nombre_10}
- \RenewTCBListing[
- opcion
- ]{
- opcionaluno
- }
- \DefineVerbatimEnvironment{MyVerbatim}
- {Verbatim}
- {gobble=2,frame=lines,framerule=0.8mm}
- \begin{document}
- %Se convierte
- \includegraphics[scale=1]{EXTRAIDO-fig-1}
- \begin{mytcbliting}
- \begin{postscript}
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se queda
- \end{pspicture}
- \end{postscript}
- \end{mytcbliting}
- %Se convierte
- \includegraphics[scale=1]{EXTRAIDO-fig-2}
- \begin{opcionaluno}
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se queda
- \end{pspicture}
- \end{opcionaluno}
- \begin{MyVerbatim*}
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se queda
- \end{pspicture}
- \end{MyVerbatim*}
- \newminted{algun}{options}
- \begin{alguncode*}
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se queda
- \end{pspicture}
- \end{alguncode*}
- \newminted[langA]{lang1}{options}
- \begin{langA}[opciones]
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se queda
- \end{pspicture}
- \end{langA}
- \begin{langArm}[opciones]
- %Se convierte
- \includegraphics[scale=1]{EXTRAIDO-fig-3}
- \end{langArm}
- \section{minted inline}
- \subsection{delimitado}
- Original delimitado \mintinline{latex}|\begin{langA} ... \end{langA}| text
- Original delimitado \mintinline{latex}|\begin{MyVerbatim*}| text
- Original delimitado con opciones \mintinline[opciones]{latex}/\begin{pspicture}/ text
- Definiendo nuevo mintinline delimitado \newmintinline{mylatex}{showspaces}
- Definiendo nuevo mintinline delimitado \newmintinline{myotrolatex}{showspaces}
- con opciones \mylatexinline[opciones]|\begin{pspicture}| y sin opciones \mylatexinline|\begin{pspicture}|
- con opciones \myotrolatexinline[opciones]|\begin{pspicture}| y sin opciones \myotrolatexinline|\begin{pspicture}|
- Definiendo nuevo mintinline con nombre propio delimitado \newmintinline[personal]{latex}{showspaces}
- con opciones \personal[opciones]|\begin{pspicture}| y sin opciones \personal[opciones]|\begin{pspicture}|
- \subsection{anidado}
- Original anidado \mintinline{latexdos}{\begin{pspicture} y \end{pspicture}} text
- Original anidado con opciones \mintinline[opciones]{latexdos}{\includegraphics[scale=1]{EXTRAIDO-fig-4}} text
- Definiendo nuevo mintinline anidado \newmintinline{mylatexdos}{showspaces}
- con opciones \mylatexdosinline[opciones]{\begin{pspicture} y \end{pspicture}} y sin opciones \mylatexdosinline{\begin{pspicture} y \end{pspicture}}
- Definiendo nuevo mintinline con nombre propio anidado \newmintinline[personal]{latex}{showspaces}
- con opciones \personal[opciones]{\begin{pspicture} y \end{pspicture}} y sin opciones \personal[opciones]{\begin{pspicture} y \end{pspicture}}
- \subsection{new short minted}
- \subsection{delimitado}
- Original short \mint{python}|\begin{pspicture}|
- Definiendo nuevo mint short default \newmint{mylenguaje}{showspaces}
- \mylenguaje/\begin{pspicture}/ y \mylenguaje[opciones]/\begin{pspicture}/
- Definiendo nuevo mint short custom \newmint[mymint]{mylenguaje}{showspaces}
- \mymint/\begin{pspicture}/ \mymint[opciones]/\begin{pspicture}/
- \subsection{anidado}
- Original short \mint{lenguaje}{\begin{pspicture}}
- \mylenguaje{\begin{pspicture} y \end{pspicture}}
- \mymint{\begin{pspicture} y \end{pspicture}} \mymint[opciones]{\begin{pspicture} y \end{pspicture}}
- \section{tcolorbox}
- \tcboxverb{\begin{pspicture} o \begin{pspicture*}} y \tcboxverb[algo]{\begin{pspicture} o {algo} o \begin{pspicture*}}
- Usamos \verb|\begin{pspicture} o \begin{pspicture*}| o \verb*|\begin{pspicture} o \begin{pspicture*}| (cambia)
- \end{document}
- IGNORAR
- \begin{postscript}
- \begin{pspicture}[showgrid](0,3)(10,10)
- Se queda
- \end{pspicture}
- \end{postscript}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Using latex Syntax Highlighting
- Original anidado \mintinline{latexdos}{\begin{pspicture} y \end{pspicture}} text
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Lo de tantos grep es por la forma de lo que deseo capturar, por ejemplo, en algunas ocasiones el texto sobre el cual hago la búsqueda es de la forma:
Using latex Syntax Highlighting
- \DefineVerbatimEnvironment{% algo algo
- MyVerbatim % algo algo
- %%% algo algo
- }
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Using latex Syntax Highlighting
- \DefineVerbatimEnvironment%
- {% algo algo
- MyVerbatim %%% algo algo
- %%% algo algo
- }
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Agradecido de antemano.
Pablo