búsqueda avanzada en archivos tex

búsqueda avanzada en archivos tex

¿Existe alguna forma de realizar consultas de búsqueda avanzada dentro de archivos tex? Lo que quiero decir con "consulta de búsqueda avanzada" es todas las consultas que no se pueden realizar con un solo término de búsqueda.

Por ejemplo, es fácil "mostrar todos \emphlos comandos que siguen a una coma" simplemente buscando , \emph, pero ¿qué pasa con tareas más avanzadas como:

"muéstrame todas las instancias donde el valor del \emphcomandocontieneuna coma" o

"muéstrame todos los casos en los que el \emphcomandoes seguido poruna coma".

Este es sólo un ejemplo. Se me ocurren muchas otras consultas que podrían resultar útiles al trabajar con Latex.

Qué desencadenó esta pregunta: sé un poco sobre cómo trabajar con xmlarchivos en Oxygen y sobre las XPathopciones de búsqueda. Para Latex, uso TexShopdonde puedo elegir entre tres paneles de búsqueda diferentes: barra de búsqueda de Apple, panel de búsqueda de Apple y Ogrekit. Ogrekit es más avanzado, así que pensé que se podrían realizar "consultas de búsqueda avanzada" con eso. Pero no sé cómo.

Dicho esto, preferiría respuestas sobre TexShopy, Ogrekitpero en general estaría feliz de recibir sugerencias sobre cómo buscar patrones más complicados dentro de mis documentos.

Respuesta1

Hay una búsqueda de expresiones regulares integrada en TeXShop. Entonces, usando el texto de ejemplo en la respuesta de SeanAlred, podemos buscar ejemplos del uso de \emphlo siguiente:

ingrese la descripción de la imagen aquí

Presionando Next(o CONTROL-G) repetidamente:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Respuesta2

Además, el motor de expresiones regulares de Emacs puede coincidir con patrones de varias líneas, por lo que la expresión regular proporcionada por Sean, adaptada a la sintaxis de Emacs, funciona aquí:

ingrese la descripción de la imagen aquí

Respuesta3

Esto no es posible con grep, pero se puede hacer con pcregrep, que es bastante estándar en las distribuciones modernas de Linux.

$ pcregrep -M '\\emph{[^}]*,' file.tex
  multiple lines.  See a \emph{really, really
  good tutorial} on \emph{unix, commandline}.
Here is an \emph{that spans a couple lines but
  unfortunately, the comma is on another line}

file.texcontiene

This is a basic text file.
It contains many lines, some of which span
  multiple lines.  See a \emph{really, really
  good tutorial} on \emph{unix, commandline}.
Here is an \emph{that spans a couple lines but
  unfortunately, the comma is on another line}

Es poco probable que encuentre un editor sin soporte de expresiones regulares PCRE que pueda hacer esto.

información relacionada