区切り文字を左区切り文字または右区切り文字として宣言するにはどうすればよいですか?

区切り文字を左区切り文字または右区切り文字として宣言するにはどうすればよいですか?

(TeX は「左」区切り文字と「右」区切り文字 (例:と))の違いを認識し、それに応じて間隔を調整します。ただし、区切り文字の左バージョンと右バージョン|は同じであるため、TeX は推測する必要があります。通常、TeX は正しく推測しますが、正しくない場合もあります。現在、 と を使用して\left\right指定された を|左区切り文字または右区切り文字として TeX に強制的に考慮させることができることはわかっていますが、これらにはサイズを変更するという追加の効果があります (おそらくこれは望ましくありません)。 および の最も小さな「大きな」コマンドでも\bigl\bigrサイズが大きくなります (ただし、わずかです)。|サイズをまったく変更せずに左区切り文字または右区切り文字を作成する方法はありますか?

以下は、私が実行方法をわかっている具体的な例ですが、一般的な解決策ではありません。

\documentclass{article}

\usepackage{amsmath,amssymb}

\begin{document}

$|\operatorname{A}|$

$|{\operatorname{A}}|$

$\left|\operatorname{A}\right|$

\end{document}

1 行目の間隔は正しくありませんが、2 行目と 3 行目は正しくなっています。2 行目はうまく機能しますが、少しハッキングされているように見えます。3 行目は、間にあるものが高すぎると区切り文字のサイズが大きくなるため、適切ではありません (おそらく、それは望ましくありません)。

(はい、最初の行のスペースが正しくないのは、TeX が 2 行目|を の「引数」として扱っているためだとわかっています\operatorname{A}。)

答え1

数式で とすると\mathopen|、縦棒は開いた原子として解釈されます(つまり(左区切り文字)ですが、サイズは変更されません。同様に、\mathclose|Closeアトム(つまり(右区切り文字)の大きさは変化しません。また、演習18.14の答えも参照してください。TeXbook について. MWE:

% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly 
                                 % declare the paper format.

\usepackage[T1]{fontenc}         % Not always necessary, but recommended.
% End of standard header.  What follows pertains to the problem at hand.



\begin{document}

For example, \( \mathopen|-x\mathclose| \neq |-x| \).

\end{document}

それにもかかわらず、@Bernardが推奨する解決策はコメントつまり、 を使用すること\DeclarePairedDelimiterが正しいことです。

編集: Barbara Beeton がコメントで指摘しているように、問題が単一および二重の縦棒に限定されている場合 (およびパッケージをロードせずmathtoolsに に固執する場合)、4 つの定義済みコマンド、、、を使用することもamsmathできます。 は「左」、は「右」を表し、 単一縦棒の場合は小文字、二重縦棒の場合は大文字です。\lvert\rvert\lVert\rVertlrvV

より深い議論については、例えば以下を参照のこと。\big| と \right| と \bigr\rvert と \right\rvert の使用(この質問を覚えているのは、答えの 1 つが私のものだったからです)。

関連情報