Re: Acotar expresión regular
Publicado: 2013-11-17 22:32 @980
Muchísimas gracias, explorer... Me percaté de que mi primera consulta era posible, pero, no doy con la modificación necesaria siguiendo tus instrucciones (demasiados paréntesis para mi), me explico un poco:
Para \verb, se tienen solo dos opciones antes de que empiece el lugar donde quiero hacer el reemplazo, las opciones son \verb o \verb*; * es opcional.
Para \lstinline se tienen solo dos opciones antes de que empiece el lugar donde hacer el reemplazo, las opciones son \lstinline o \lstinline[algo]; [algo] es opcional.
Para \mint se tienen solo dos opciones antes de que empiece el lugar donde quiero reemplazar \mint[algo]{otro} o \mint{otro}, donde [algo] es opcional y {otro} es obligatorio.
Lógicamente todos los reemplazos siguen el mismo patrón ya descrito.
Con la respuesta a la segunda pregunta... me dejas impactado, había tratado de comprender ese tipo de expresiones y tenía la duda de si hacer esto era posible, pero, nunca las comentan en la red y se me hace un poco difícil entenderlas.
Como siempre comentas lo códigos, es mucho más fácil memorizarlas y comprender qué es lo que están haciendo. Modifiqué un par de líneas, pero, no funciona como lo deseo (el código que propones también falla), me explico:
\DefineShortVerb{\carácter} y \UndefineShortVerb{\caracter} son siempre de esta forma: {\caracter} siempre lleva la barra "\" antes carácter y jamas va [corchete]; de hecho, "[" se puede usar como carácter delimitador. Usando la misma idea traté de definir otras palabras, de este estilo, para efectuar el reemplazo que necesito, por ejemplo:
Como inicio (lo mismo que \DefineShortVerb{\carácter}):
\lstMakeShortInline[algo]{carácter} donde [algo] es opcional y carácter no lleva la barra "\" y \lstDeleteShortInline{carácter} es siempre de ésta forma.
Aquí dejo un ejemplo con lo que debería cambiar y lo que debería mantenerse... a ver si me dan una ayuda más para lograr lo que deseo:
P.D.: Ahora me acuerdo por qué puse como título del tema "Acotar expresión regular"... me refería a esto...
Para \verb, se tienen solo dos opciones antes de que empiece el lugar donde quiero hacer el reemplazo, las opciones son \verb o \verb*; * es opcional.
Para \lstinline se tienen solo dos opciones antes de que empiece el lugar donde hacer el reemplazo, las opciones son \lstinline o \lstinline[algo]; [algo] es opcional.
Para \mint se tienen solo dos opciones antes de que empiece el lugar donde quiero reemplazar \mint[algo]{otro} o \mint{otro}, donde [algo] es opcional y {otro} es obligatorio.
Lógicamente todos los reemplazos siguen el mismo patrón ya descrito.
Con la respuesta a la segunda pregunta... me dejas impactado, había tratado de comprender ese tipo de expresiones y tenía la duda de si hacer esto era posible, pero, nunca las comentan en la red y se me hace un poco difícil entenderlas.
Como siempre comentas lo códigos, es mucho más fácil memorizarlas y comprender qué es lo que están haciendo. Modifiqué un par de líneas, pero, no funciona como lo deseo (el código que propones también falla), me explico:
\DefineShortVerb{\carácter} y \UndefineShortVerb{\caracter} son siempre de esta forma: {\caracter} siempre lleva la barra "\" antes carácter y jamas va [corchete]; de hecho, "[" se puede usar como carácter delimitador. Usando la misma idea traté de definir otras palabras, de este estilo, para efectuar el reemplazo que necesito, por ejemplo:
Como inicio (lo mismo que \DefineShortVerb{\carácter}):
\lstMakeShortInline[algo]{carácter} donde [algo] es opcional y carácter no lleva la barra "\" y \lstDeleteShortInline{carácter} es siempre de ésta forma.
Aquí dejo un ejemplo con lo que debería cambiar y lo que debería mantenerse... a ver si me dan una ayuda más para lograr lo que deseo:
Using latex Syntax Highlighting
- \documentclass{article}
- \usepackage{fancyvrb}
- \usepackage{listings}
- \usepackage{minted}
- \usepackage{pstricks-add}
- \newenvironment{postscript}{}{}
- \begin{document}
- Usamos \verb|\begin{pspicture} o \begin{pspicture*}| o \verb*|\begin{pspicture} o \begin{pspicture*}| (cambia)
- esta linea debería quedar intacta \begin{pspicture} o \begin{pspicture*}
- % esta linea debería modificarse \begin{pspicture} o \begin{pspicture*}
- Usamos \lstinline[hola]+\begin{pspicture} o \begin{pspicture*}+ y seguimos (cambia)
- Usamos \lstinline-\begin{pspicture} o \begin{pspicture*}- y seguimos (cambia)
- Esta linea deberia quedar intacta \lstinline*[hola]+\begin{pspicture} o \begin{pspicture*}+ (no cumple por *)
- esta linea debería quedar intacta \begin{pspicture} o \begin{pspicture*}
- % esta linea debería modificarse \begin{pspicture} o \begin{pspicture*}
- Usamos \mint{algo}$\begin{pspicture} o \begin{pspicture*}$ y seguimos (cambia)
- Usamos \mint[hola]{algo}$\begin{pspicture} o \begin{pspicture*}$ y seguimos (cambia)
- Esta linea debería quedar intacta \mint[holas]#\begin{pspicture} o \begin{pspicture*}# (no cumple falta {})
- Esta linea debería quedar intacta \mint*#\begin{pspicture} o \begin{pspicture*}# (no cumple por *)
- esta linea debería quedar intacta \begin{pspicture} o \begin{pspicture*}
- % esta linea debería modificarse \begin{pspicture} o \begin{pspicture*}
- \section{ShortVerb}
- \DefineShortVerb{\|}
- Usamos el delimitador barra |\begin{pspicture} o \begin{pspicture*}| (cambia)
- esta linea debería quedar intacta \begin{pspicture} o \begin{pspicture*}
- ahora lo cambiamos indefinimos
- %esta deberia cambiar \begin{pspicture} o \begin{pspicture*}
- \UndefineShortVerb{\|}
- y ahora definimos el (mas)+
- \DefineShortVerb{\+}
- Usamos el delimitador mas +\begin{pspicture} o \begin{pspicture*}+ (cambia)
- esta linea debería quedar intacta \begin{pspicture} o \begin{pspicture*}
- \UndefineShortVerb{\+}
- y ahora definimos el (almoadilla)
- \DefineShortVerb{\#}
- Usamos el delimitador almoadilla #\begin{pspicture} o \begin{pspicture*}# (cambia)
- esta linea debería quedar intacta \begin{pspicture} o \begin{pspicture*}
- \section{ShortInline}
- \lstMakeShortInline[algo]{|}
- Usamos el delimitador barra |\begin{pspicture} o \begin{pspicture*}| (cambia)
- esta linea debería quedar intacta \begin{pspicture} o \begin{pspicture*}
- ahora lo cambiamos indefinimos
- \lstDeleteShortInline{|}
- y ahora definimos el (mas)+
- \lstMakeShortInline[algo]{+}
- Usamos el delimitador mas +\begin{pspicture} o \begin{pspicture*}+ (cambia)
- esta linea debería quedar intacta \begin{pspicture} o \begin{pspicture*}
- \lstDeleteShortInline{+}
- y ahora definimos el (almoadilla)
- \lstMakeShortInline[algo]{#}
- Usamos el delimitador almoadilla #\begin{pspicture} o \begin{pspicture*}# (cambia)
- esta linea debería quedar intacta \begin{pspicture} o \begin{pspicture*}
- %\begin{postscript} debería cambiar
- \begin{postscript} % queda =
- \psset{unit=1.0cm}
- \begin{pspicture}[showgrid=true](4,2)% queda =
- \psscaleboxto(8,2){foo bar baz}
- \end{pspicture}% queda =
- \end{postscript}% queda =
- \begin{pspicture*}(4,2)(8,1)% queda =
- \psset{unit=1.0cm}
- \psscaleboxto(8,2){foo bar baz}
- \end{pspicture*}% queda =
- %%% \pspicture*(4,2)(8,1) o \begin{pspicture*}(4,2)(8,1) debería cambiar
- \pspicture*(4,2)(8,1)% queda =
- \psset{unit=1.0cm}
- \psscaleboxto(8,2){foo bar baz}
- \endpspicture% queda =
- % se puede \endpspicture o \end{pspicture*} debería cambiar
- % \pspicture(4,2)(8,1) o \begin{pspicture}(4,2)(8,1) debería cambiar
- \pspicture(4,2)(8,1)% queda =
- \psset{unit=1.0cm}
- \psscaleboxto(8,2){foo bar baz}
- \endpspicture% queda =
- %\endpspicture o \end{pspicture} debería cambiar
- \end{document}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
P.D.: Ahora me acuerdo por qué puse como título del tema "Acotar expresión regular"... me refería a esto...