tex 檔案中的進階搜尋

tex 檔案中的進階搜尋

有沒有辦法在 tex 檔案中執行進階搜尋查詢?我所說的「進階搜尋查詢」是指無法僅使用單一搜尋字詞執行的所有查詢。

例如,\emph只需搜尋 即可輕鬆「顯示逗號後面的所有命令」, \emph,但更高級的任務又如何呢,例如:

\emph“顯示命令值的所有實例包含逗號”或

「顯示該\emph指令的所有實例接下來是一個逗號」。

這只是一個例子。我可以想到許多其他在使用 Latex 時可能有用的查詢。

是什麼引發了這個問題:我了解一些有關xml在 Oxygen 中使用 -files 以及XPath搜尋選項的知識。對於 Latex,我使用TexShop可以在三個不同的查找面板之間進行選擇的位置:Apple 搜尋欄、Apple 搜尋面板和 Ogrekit。 Ogrekit 更先進,所以我認為可以用它來執行「高級搜尋查詢」。但我不知道該怎麼辦。

話雖如此,我更喜歡關於TexShop和的答案,Ogrekit但總的來說,我很高興獲得有關如何在文件中搜尋更複雜模式的任何提示。

答案1

TeXShop 中內建了正規表示式搜尋。因此,使用 SeanAlred 的答案中的範例文本,我們可以搜尋使用的實例,\emph如下所示:

在此輸入影像描述

重複點擊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 正規表示式支援的編輯器可以做到這一點。

相關內容