So konvertieren Sie $...$ in \(...\)

So konvertieren Sie $...$ in \(...\)

Also laut Warum ist \[ ... \] $$ ... $$ vorzuziehen?Und Sind \( und \) im Mathematikmodus Dollarzeichen vorzuziehen? Ich sollte \(...\)anstelle von $...$und \[...\]anstelle von verwenden $$...$$.

Aber was ist, wenn ich ein Dokument habe, in dem ich bereits einige Dollarzeichen verwendet habe? Wie konvertiere ich sie? Ein einfaches Suchen und Ersetzen funktioniert nicht, da:

  1. Es ist egal, ob $$ ein Anfang oder ein Ende ist; und
  2. Ich verwende im Text das Dollarzeichen (als Hinweis auf die Währung).

Hat jemand einen guten Tipp dazu?

Antwort1

Dies hängt stark von dem von Ihnen verwendeten Editor und den Funktionen ab, die dieser bietet. Daher bezweifle ich, dass es darauf eine einheitliche Antwort geben wird. Wenn Ihr Editor jedoch über eine gute Regex-Unterstützung verfügt, sollte dies ziemlich einfach sein.

So können Sie matchen für$...$

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

und ebenso passend für $$...$$:

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

Dies wird nicht mit den Dollarzeichen übereinstimmen, da diese maskiert werden müssen \$und das obige Muster ein beliebiges Leerzeichen vor dem Dollarzeichen erfordert (Leerzeichen, Tabulator oder Zeilenumbruch). Sie können eine nette Visualisierung dafür sehenHierUndHierjeweils.

Wenn Ihr Editor das sFlag von Perl unterstützt, können Sie (.|\n)+?es so vereinfachen .+?, dass .auch neue Zeilen übereinstimmen.

Wenn man es schließlich mit einer Substitution zusammensetzt, erhält man:

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

Beachten Sie, dass ich bestimmte Zeichen nicht maskiere, da dies von der jeweiligen Implementierung des regulären Ausdrucks abhängt. Insbesondere können die Gruppenklammern \(...\)und die +, ?und die Backslashs im Ersatz müssen möglicherweise ebenfalls maskiert werden, je nachdem, welche Implementierung des regulären Ausdrucks Sie verwenden.

Wenn Sie sich in der Befehlszeile befinden und Perl haben, sollten die folgenden beiden Befehle funktionieren:

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

Beachten Sie, dass diesnichtpasst zu allem ganz am Anfang der Datei. Ich denke jedoch, dass das kein großes Problem sein wird, da der Anfang der Datei normalerweise ein Kommentar oder zumindest ist \documentclass.

Antwort2

Single $sind in Ordnung und unterstützen die Syntax für Inline-Mathematik und $$sind sogar für Anzeigemathematik meistens OK. Sie haben einen schlechten Stil, aber meistens (wenn Sie nicht verwenden fleqn) geben sie dieselbe Ausgabe wie zurück, \[..\]sodass Sie im Rahmen der allgemeinen Bearbeitung einfach zu wechseln können, $$während \[Sie die Formeln bearbeiten. Wenn Sie mit dem Ersetzen von regulären Ausdrücken nicht vertraut sind, besteht keine dringende Notwendigkeit, eine globale Bearbeitung des Dokuments durchzuführen, die mehr Schaden als Nutzen bringen kann, wenn Sie den regulären Ausdruck falsch verwenden. Versuchen Sie also, \[in Zukunft zu verwenden, aber verlieren Sie nicht den Schlaf über $$bereits in Ihrem Dokument vorhandenes :-)

verwandte Informationen