В моих файлах LaTeX у меня есть буквально тысячи вхождений следующей конструкции:
$\displaystyle{...math goes here...}$
Я бы хотел заменить их на
\mymath{...math goes here...}
Обратите внимание, что $ исчезают, но фигурные скобки остаются - если бы не конечный $, это был бы базовый поиск и замена. Если бы я только знал какое-либо регулярное выражение, я уверен, что он справится с этим без проблем. Какое регулярное выражение мне нужно, чтобы это произошло?
Заранее большое спасибо.
Редактировать: Возникли некоторые проблемы и вопросы, поэтому позвольте мне уточнить:
- Да,
$\displaystyle{ ... }$
может встречаться несколько раз на одной и той же строке.
- Нет, вложенные
}$
(например, $\displaystyle{...{more math}$...}$
) не могут возникнуть. Я имею в виду, я полагаю, что это возможно, если вы поместите его в \mbox
или что-то в этом роде, но я не могу себе представить, почему кто-то когда-либо делал это внутри конструкции $\displaystlye{}$
, цель которой состоит в том, чтобы отображать математику в тексте. Во всяком случае, это не то, что я когда-либо делал или, скорее всего, буду делать.
- Я попытался использовать предложение perl, но, хотя оболочка не вызывала возражений, файлы остались без изменений.
- Я пытался использовать предложение sed, но оболочка возражала против "неожиданного токена рядом с` ("". Я никогда раньше не использовал sed (а "man sed" был тупым), но вот что я сделал: перешел к каталог, содержащий файлы .tex и напечатанный "
sed s/\$\\displaystyle({[^}]+})\$/\\mymath\1/g *.tex
". Не повезло. Как использовать sed, чтобы делать то, что я хочу?
Опять же, большое спасибо за оказанную помощь.