
Есть ли способ выполнять расширенные поисковые запросы в tex-файлах? Под «расширенным поисковым запросом» я подразумеваю все запросы, которые не могут быть выполнены с использованием только одного поискового термина.
Например, легко «показать все \emph
команды, следующие за запятой», просто выполнив поиск , \emph
, но как насчет более сложных задач, таких как:
"покажите мне все случаи, когда значение
\emph
командысодержитзапятая" или"покажите мне все случаи, когда
\emph
командаза ним следуетзапятая».
Это всего лишь пример. Я могу придумать много других запросов, которые могут оказаться полезными при работе с Latex.
Что вызвало этот вопрос: Я немного знаю о работе с xml
-файлами в Oxygen и о XPath
параметрах поиска. Для Latex я использую TexShop
where я могу выбирать между тремя различными панелями поиска: Apple search bar, apple search panel и Ogrekit. Ogrekit более продвинутый, поэтому я подумал, что с его помощью можно выполнять "расширенные поисковые запросы". Но я не знаю как.
Тем не менее, я бы предпочел получить ответы на вопросы TexShop
и , Ogrekit
но в целом я был бы рад любым подсказкам о том, как искать более сложные шаблоны в моих документах.
решение1
В TeXShop встроен поиск по регулярным выражениям. Поэтому, используя пример текста в ответе SeanAlred, мы можем искать примеры использования \emph
следующим образом:
Повторное нажатие Next
(или CONTROL-G):
решение2
решение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, который мог бы это сделать.