Passende Intervallklammern

7

Ich verwende vim, um LaTeX-Code zu bearbeiten, und schreibe oft Intervalle wie (a,b]diese, aber dies beeinträchtigt andere vim-Funktionen. Zum Beispiel,

  • Springen mit %: Wenn ich so etwas habe, stimmt \phi((a,b])das Finale )mit dem zweiten überein, (und einige schließende Klammern später im Code stimmen mit dem ersten überein.
  • Es gibt eine Funktion (ich bin mir nicht sicher, ob sie spezifisch für vimtex oder nur eine Funktion von vim ist), mit der ]]offene Trennzeichen geschlossen werden. Dadurch verhält sich das falsch - es wird versucht, die )vor vielen Zeilen zu schließen.
  • Die tsd/ csd/ dsdEigenschaften vimtex die ein- / ändern / löschen umgebende Begrenzungszeichen nicht funktionieren (ich glaube , csdund dsdsind Erweiterungen von vim-Surround , aber ich bin mir nicht sicher). Insbesondere wählen sie entweder die falschen Trennzeichen aus oder tun überhaupt nichts.

Derzeit schreibe ich )s in Kommentare, um dies zu mildern. Dies löst das Problem, dass Klammern später in der Datei falsch übereinstimmen, aber die Übereinstimmung in derselben Zeile funktioniert nicht (und Dinge wie tsdvon vimtex funktionieren nicht richtig).

Gibt es eine bessere Lösung oder eine Standardlösung für diese Art von Problem? Idealerweise würde sich das [a,b)auch darum kümmern .

B. Mehta
quelle
3
Dies ist eigentlich ein sehr schwieriges Problem. Es ist sehr schwer zu wissen, wie Parantheses zu finden sind, wenn die Start- und Endparanthesis unterschiedlichen Typs sind. Ich erinnere mich, dass wir einmal in einer Vimtex-Ausgabe darüber diskutiert haben. Sie könnten versuchen, die Problem-Threads zu durchsuchen und festzustellen, ob Sie etwas finden, oder Sie könnten ein neues Problem erstellen.
Karl Yngve Lervåg
@ KarlYngveLervåg Ich denke, das ist das relevante Thema ?
B. Mehta
Ja, das ist relevant. obwohl das Thema Einrückung ist. Der Punkt ist immer noch, wie oben erwähnt, dass es von Natur aus sehr schwierig ist, dies für unausgeglichene Klammern richtig zu machen.
Karl Yngve Lervåg
Eine Problemumgehung könnte darin bestehen, den \DeclarePairedDelimiterBefehl aus dem mathtools-Paket zu verwenden, um dann einfach wie zu schreiben \leftopenint{a, b}. Ich habe gelernt , dies in dieser Frage
Jan
1
@ Jan Ich mag diese Lösung sehr! Wenn Sie es als Antwort schreiben möchten, akzeptiere ich es gerne.
B. Mehta

Antworten:

1

Eine Problemumgehung könnte darin bestehen, den \DeclarePairedDelimiterBefehl aus dem mathtools-Paket zu verwenden, um dann einfach wie zu schreiben \leftopenint{a, b}. Siehe die akzeptierte Antwort auf diese Frage .

\documentclass{minimal}
\usepackage{mathtools}
\DeclarePairedDelimiter\leftopenint{(}{]}
\DeclarePairedDelimiter\rghtopenint{[}{)}

\begin{document}
  \begin{equation*}
   \leftopenint{-\infty, \frac{1}{N} } \cup \rghtopenint*{\frac{1}{N}, \infty}
  \end{equation*}
\end{document}

Das gibt mir, was unten gepostet ist. Beachten Sie, dass *die Begrenzer dadurch skaliert werden.

Geben Sie hier die Bildbeschreibung ein

Gerade bemerkte die asymmetrische Erscheinungsbild der Klammern im Header auch Pausen Syntax - Hervorhebung und die Befehle wie Schließen von passenden Umgebungen . Ich könnte dies beheben, indem ich diese Definitionen in eine separate Datei auslagere und dann \include...

Jan.
quelle