Как объявить разделитель левым или правым разделителем?

Как объявить разделитель левым или правым разделителем?

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}

Интервал неправильный в первой строке и правильный во второй и третьей. Вторая строка работает хорошо, но мне кажется немного хакнутой. Третья строка нехороша, так как она увеличила бы размер разделителей, если бы все между ними было выше (и, возможно, я этого не хочу).

(Да, я знаю, что причина неправильного интервала в первой строке в том, что TeX рассматривает вторую строку |как «аргумент» \operatorname{A}.)

решение1

Если вы скажете в математической формуле, \mathopen|то вертикальная черта будет интерпретироваться как открытый атом (то есть, левый разделитель), но его размер не изменится. Аналогично, \mathclose|дает атом Close (то есть, правый разделитель) без изменения размера. См. также ответ на упражнение 18.14 вTeXbook. МВЭ:

% 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, — это Правильный Поступок.

Редактировать: Как напоминает Барбара Битон в своем комментарии, если проблема ограничивается одинарными и двойными вертикальными чертами (и если вы предпочитаете не загружать пакет mathtools, а придерживаться amsmath), вы также можете использовать четыре предопределенные команды \lvert, \rvert, \lVert, и \rVert: l означает «левый», r«правый», строчные буквы  vдля одинарной черты, заглавные буквы Vдля двойной черты.

Для более глубокого обсуждения см., например,Использование \big| и \right| против \bigr\rvert и \right\rvert(Я помню этот вопрос, потому что один из ответов был моим!).

Связанный контент