tex ファイルでの高度な検索

tex ファイルでの高度な検索

tex ファイル内で高度な検索クエリを実行する方法はありますか? 「高度な検索クエリ」とは、単一の検索語だけでは実行できないすべてのクエリを意味します。

たとえば、\emphを検索するだけで「カンマに続くすべてのコマンドを表示する」のは簡単です, \emphが、次のようなより高度なタスクはどうでしょうか。

\emph「コマンドの値が含むカンマ"または

\emph「コマンドが続いて「カンマ」。

これは単なる例です。Latex で作業するときに役立つクエリは他にもたくさん考えられます。

xmlこの質問のきっかけ: 私はOxygen での -filesの操作と検索オプションについて少し知っていますXPath。Latex では、TexShopApple 検索バー、Apple 検索パネル、Ogrekit の 3 つの異なる検索パネルから選択できるものを使用しています。Ogrekit はより高度なので、それを使用して「高度な検索クエリ」を実行できると思いました。しかし、方法がわかりません。

そうは言っても、私は と についての回答を希望しますがTexShopOgrekit一般的には、ドキュメント内でより複雑なパターンを検索する方法についてのヒントがあれば幸いです。

答え1

\emphTeXShop には正規表現検索機能が組み込まれています。そのため、SeanAlred の回答にあるサンプルテキストを使用して、次のようにの使用例を検索できます。

ここに画像の説明を入力してください

繰り返し押すNext(または CONTROL-G) :

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

答え2

また、Emacs の正規表現エンジンは複数行のパターンに一致できるので、Sean が提供した正規表現を Emacs 構文に合わせて調整すると、次のように機能します。

ここに画像の説明を入力してください

答え3

これは通常の では不可能ですgrepが、 では実行できますpcregrep。これは、最近の 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.tex含む

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}

PCRE 正規表現をサポートしていないのに、これを実行できるエディターを見つけることはまずないでしょう。

関連情報