Regex для преобразования \ eqref {*} в (\ ref {*}) в латексе с помощью Notepad ++ - PullRequest
0 голосов
/ 26 сентября 2019

Я пишу бумагу с использованием латекса, где в нем много \ eqref {} , например \ eqref {e1} и \ eqref {e2} .В то время как журнал целей хочет, чтобы я использовал (\ ref {}) , чтобы заменить все \ eqref {} .Затем я хочу сделать это с помощью регулярных выражений в Notepad ++.Любая помощь?

Ответы [ 2 ]

2 голосов
/ 26 сентября 2019

Вы можете попробовать найти и заменить следующее в режиме регулярных выражений:

Find:    (?<!\S)\\eqref(\{[^}]*\})
Replace: (\ref$1)

Демо

1 голос
/ 26 сентября 2019
  • Ctrl + H
  • Найти что: \\eqref({.*?})
  • Заменить на: \(\\ref$1\) Примечание: обратный слеш и скобкиНЕОБХОДИМО избежать при замене
  • check Match case
  • check Обтекание
  • check Регулярное выражение
  • UNCHECK . matches newline
  • Заменить все

Объяснение:

\\              # a backslash, must be escaped
eqref           # literally
(               # start group 1
  {             # opening curly bracket
  .*?           # 0 or more any character, not greedy
  }             # closing curly brakcet
)

Замена:

\(              # opening parenthesis, must be escaped in Notepad++
\\              # a basckslash, must ne escaped
ref             # literally
$1              # content of group 1
\)              # closing parenthesis, must be escaped in Notepad++

Дано:

I am writing a paper using Latex, where lots of \eqref{} in it, such as \eqref{e1} and \eqref{e2}.

Результат для данного примера:

I am writing a paper using Latex, where lots of (\ref{}) in it, such as (\ref{e1}) and (\ref{e2}).

Снимок экрана (до):

enter image description here

Снимок экрана (после):

enter image description here

...