
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 \emph
os 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
\emph
comandocontémuma vírgula" ou"mostre-me todas as instâncias em que o
\emph
comandoé 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 XPath
opções de pesquisa. Para Latex, eu uso TexShop
onde 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 TexShop
e 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 \emph
seguinte forma:
Bater Next
(ou CONTROL-G) repetidamente:
Responder2
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.tex
conté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.