
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(Я помню этот вопрос, потому что один из ответов был моим!).