Cómo convertir $...$ a \(...\)

Cómo convertir $...$ a \(...\)

Así que según ¿Por qué es preferible \[ ... \] a $$ ... $$?y ¿Son preferibles \( y \) a los signos de dólar para el modo matemático? Debería usar \(...\)en lugar de $...$y \[...\]en lugar de $$...$$.

¿Pero qué pasa si tengo un documento en el que ya he usado un poco los signos de dólar? ¿Cómo los convierto? Una simple búsqueda y reemplazo no funcionará ya que:

  1. No le importará si $$ es un principio o un final; y
  2. Utilizo el signo de dólar en el texto (para referirme a la moneda).

¿Alguien tiene un buen consejo para esto?

Respuesta1

Esto dependerá mucho del editor que utilices y de las funciones que ofrece, por lo que dudo que haya una respuesta única; sin embargo, si su editor tiene un buen soporte para expresiones regulares, esto debería ser bastante fácil.

Así es como puedes combinar$...$

/\s\$(.|\n)+?\$/g

y de manera similar, haciendo coincidir para $$...$$:

/\s\$\$(.|\n)+?\$\$/g

Esto no coincidirá con los signos de dólar, ya que es necesario utilizarlos como escape \$y el patrón anterior requiere cualquiera de los espacios en blanco antes del signo de dólar (espacio, tabulación o nueva línea). Puedes ver una buena visualización para eso.aquíyaquírespectivamente.

Si su editor admite la sbandera de Perl, puede simplificar (.|\n)+?para .+?que .coincida también con las nuevas líneas.

Finalmente, juntándolo con una sustitución, se obtiene:

s/(\s)\$(.+?)\$/\1\(\2\)/sg

Tenga en cuenta que no estoy escapando de ciertos caracteres porque dependerá de la implementación particular de la expresión regular. En particular, es posible que los paréntesis de grupo requieran \(...\)el carácter de escape +y ?las barras invertidas en el reemplazo, dependiendo de la implementación de expresiones regulares que esté utilizando.

Si está en la línea de comando y tiene Perl, entonces los siguientes dos comandos deberían funcionar:

perl -077pi.bak -e 's/(\s)\$\$(.+?)\$\$/\1\\[\2\\]/sg' document.tex
perl -077pi.bak -e 's/(\s)\$(.+?)\$/\1\\(\2\\)/sg' document.tex

Tenga en cuenta que estonohaga coincidir cualquier cosa al comienzo del archivo; sin embargo, no creo que esto sea un gran problema ya que el inicio del archivo normalmente será un comentario o al menos \documentclass.

Respuesta2

Single $tiene una sintaxis buena y compatible para matemáticas en línea e incluso $$está bien en su mayoría para matemáticas de visualización. Tienen un mal estilo, pero la mayoría de las veces (si no estás usando fleqn) darán el mismo resultado, por \[..\]lo que puedes cambiar $$como \[parte de la edición general mientras editas las fórmulas, si no estás seguro con los reemplazos de expresiones regulares allí. No hay una necesidad urgente de realizar una edición global del documento, lo que puede hacer más daño que bien si se equivoca con la expresión regular. Intente utilizarlo \[en el futuro, pero no pierda el sueño $$en su documento :-)

información relacionada