erweiterte Suche in Tex-Dateien

erweiterte Suche in Tex-Dateien

Gibt es eine Möglichkeit, erweiterte Suchanfragen innerhalb von Tex-Dateien durchzuführen? Mit „erweiterten Suchanfragen“ meine ich alle Anfragen, die nicht mit nur einem einzigen Suchbegriff durchgeführt werden können.

Beispielsweise ist es einfach, „alle \emphBefehle anzuzeigen, die auf ein Komma folgen“, indem Sie einfach nach suchen. , \emphWas ist jedoch mit komplexeren Aufgaben wie:

"zeigen Sie mir alle Fälle, in denen der Wert des \emphBefehlsenthältein Komma" oder

"zeigen Sie mir alle Fälle, in denen der \emphBefehlwird gefolgt vonein Komma".

Dies ist nur ein Beispiel. Mir fallen noch viele weitere Abfragen ein, die bei der Arbeit mit Latex nützlich sein könnten.

Was diese Frage ausgelöst hat: Ich kenne mich ein bisschen mit der Arbeit mit xml-Dateien in Oxygen und den XPathSuchoptionen aus. Für Latex verwende ich, TexShopwo ich zwischen drei verschiedenen Suchfeldern wählen kann: Apple-Suchleiste, Apple-Suchfeld und Ogrekit. Ogrekit ist fortgeschrittener, also dachte ich, dass man damit „erweiterte Suchanfragen“ durchführen könnte. Aber ich weiß nicht wie.

Allerdings würde ich Antworten zu TexShopund bevorzugen Ogrekit, freue mich aber generell über alle Hinweise zur Suche nach komplizierteren Mustern in meinen Dokumenten.

Antwort1

\emphIn TeXShop ist eine Suche mit regulären Ausdrücken integriert. Anhand des Beispieltexts in der Antwort von SeanAlred können wir also wie folgt nach Verwendungsfällen von suchen :

Bildbeschreibung hier eingeben

Wiederholtes Drücken von Next(oder STRG-G):

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Antwort2

Auch die Regexp-Engine von Emacs kann mehrzeilige Muster abgleichen, sodass der von Sean bereitgestellte und an die Emacs-Syntax angepasste Regexp hier funktioniert:

Bildbeschreibung hier eingeben

Antwort3

Dies ist mit normalem nicht möglich grep, kann aber mit durchgeführt werden pcregrep, was bei modernen Linux-Distributionen ziemlich Standard ist.

$ 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.texenthält

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 ist unwahrscheinlich, dass Sie einen Editor ohne PCRE-Regex-Unterstützung finden, der dies kann.

verwandte Informationen