Итак, согласно
Почему \[ ... \] предпочтительнее, чем $$ ... $$?и
Являются ли \( и \) предпочтительнее знаков доллара для математического режима?
Мне следует использовать \(...\)
вместо $...$
и \[...\]
вместо
$$...$$
.
Но что делать, если у меня есть документ, в котором я уже немного использовал знаки доллара? Как мне их преобразовать? Простой поиск и замена не сработает, так как:
- Ему неважно, является ли $$ началом или концом; и
- В тексте я использую знак доллара (для обозначения валюты).
Есть ли у кого-нибудь дельный совет по этому поводу?
решение1
Это во многом будет зависеть от того, какой редактор вы используете и какие функции он предоставляет, поэтому я сомневаюсь, что будет единый ответ; однако, если ваш редактор хорошо поддерживает регулярные выражения, то это должно быть довольно просто.
Вот как вы можете подобрать$...$
/\s\$(.|\n)+?\$/g
и аналогично, сопоставление для $$...$$
:
/\s\$\$(.|\n)+?\$\$/g
Это не будет соответствовать знакам доллара, поскольку их нужно экранировать с помощью\$
а шаблон выше требует любой из пробельных символов перед знаком доллара (пробел, табуляция или новая строка). Вы можете увидеть хорошую визуализацию для этогоздесьиздесьсоответственно.
Если ваш редактор поддерживает s
флаг Perl, то вы можете упростить (.|\n)+?
его до значения .+?
, которое .
будет соответствовать и новым строкам.
Наконец, если сложить все это вместе и сделать замену, то получится:
s/(\s)\$(.+?)\$/\1\(\2\)/sg
Обратите внимание, что я не экранирую некоторые символы, поскольку это будет зависеть от конкретной реализации regex. В частности, групповые скобки могут потребовать \(...\)
и +
, ?
а обратные косые черты в замене также могут потребовать экранирования в зависимости от того, какую реализацию regex вы используете.
Если вы находитесь в командной строке и у вас установлен Perl, то следующие две команды должны помочь:
perl -077pi.bak -e 's/(\s)\$\$(.+?)\$\$/\1\\[\2\\]/sg' document.tex
perl -077pi.bak -e 's/(\s)\$(.+?)\$/\1\\(\2\\)/sg' document.tex
Обратите внимание, что это будетнетсоответствует чему угодно в самом начале файла; однако я не думаю, что это будет большой проблемой, поскольку начало файла обычно будет комментарием или, по крайней мере, \documentclass
.
решение2
Single $
хороши и поддерживают синтаксис для встроенной математики и даже $$
в основном подходят для отображения математики. Они плохой стиль, но в большинстве случаев (если вы не используете fleqn
) они дадут тот же вывод, что и , \[..\]
так что вы можете просто изменить $$
на \[
как часть общего редактирования, когда вы редактируете формулы, если вы не уверены в замене регулярных выражений, нет острой необходимости делать глобальное редактирование документа, которое может принести больше вреда, чем пользы, если вы неправильно поняли регулярное выражение. Так что попробуйте использовать и \[
дальше, но не теряйте сон из-за того, $$
что уже есть в вашем документе:-)