pesquisa avançada em arquivos tex

pesquisa avançada em arquivos tex

Existe uma maneira de realizar consultas de pesquisa avançadas em arquivos tex? O que quero dizer com "consulta de pesquisa avançada" são todas as consultas que não podem ser realizadas com apenas um único termo de pesquisa.

Por exemplo, é fácil "mostrar todos \emphos comandos que seguem uma vírgula" simplesmente pesquisando por , \emph, mas e tarefas mais avançadas como:

"mostre-me todas as instâncias onde o valor do \emphcomandocontémuma vírgula" ou

"mostre-me todas as instâncias em que o \emphcomandoé seguido pelauma vírgula".

Este é apenas um exemplo. Posso pensar em muitas outras consultas que podem ser úteis ao trabalhar com Latex.

O que desencadeou esta pergunta: eu sei um pouco sobre como trabalhar com xml-files no Oxygen e sobre as XPathopções de pesquisa. Para Latex, eu uso TexShoponde posso escolher entre três painéis de localização diferentes: barra de pesquisa da Apple, painel de pesquisa da Apple e Ogrekit. Ogrekit é mais avançado, então pensei que seria possível realizar "consultas de pesquisa avançadas" com ele. Mas não sei como.

Dito isto, eu preferiria respostas sobre TexShope Ogrekit, em geral, ficaria feliz com qualquer dica sobre como procurar padrões mais complicados em meus documentos.

Responder1

Há pesquisa de expressões regulares integrada ao TeXShop. Assim, usando o texto de exemplo na resposta do SeanAlred, podemos pesquisar instâncias de uso da \emphseguinte forma:

insira a descrição da imagem aqui

Bater Next(ou CONTROL-G) repetidamente:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Responder2

Além disso, o mecanismo regexp do Emacs é capaz de corresponder ao padrão multilinha, então o regexp fornecido por Sean, adaptado à sintaxe do Emacs, funciona aqui:

insira a descrição da imagem aqui

Responder3

Isso não é possível com o normal grep, mas pode ser feito com o pcregrep, que é bastante padrão nas distribuições Linux modernas.

$ 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.texcontém

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}

É improvável que você encontre um editor sem suporte a regex PCRE que possa fazer isso.

informação relacionada