
\big\mid
오류가 발생하는 것으로 잘 알려져 있습니다 . 그런데 왜 그럴까? 내가 아는 한, \mid
는 와 동일 \mathrel|
하고, \lvert
는 및 와 각각 \rvert
동일합니다 . --- like는 와 동일합니다 . 그리고 ,\mathopen|
\mathclose|
\vert
|
\lvert,\rvert
하다\big, \bigl
및 를 모두 사용하십시오 \bigr
. 그래서 대칭적으로, etc. 와도 \mid
작업하는 것이 합리적일 것이라고 생각합니다 \big,\bigm
.
MWE:
\documentclass{article}
\begin{document}
$\bigl\rvert ... \bigr\lvert$ works fine.
$\big\mid$ does not.
\end{document}
내가 찾는 것이 아니라는 점에 유의하세요.해결책더 큰 것을 인쇄하는 것 \mid
; \big|
or 을 사용할 수 있다는 것을 알고 있습니다 \bigm|
. 그냥 궁금해서요.
답변1
\bigl\vert
,\bigm\vert
및 명령\bigr\vert
은 의미상 대칭입니다. 덧붙여서, 세 개의 명령\bigl\lvert \bigl\vert \big\lvert
과 는\bigr\rvert \bigr\vert \big\rvert
각각 동일한 출력을 생성합니다.\mid
의미적으로 말하면 약간 특이한 명령입니다 . @egreg가 주석에서 언급했듯이\mid
관계 기호로 구성되며 크기 수정 접두사를 사용하도록 설정되지 않습니다.
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\dots\ $\bigl\lvert \ldots \bigm| \ldots \bigr\rvert$ \dots\ works fine.
\dots\ $\bigl\vert \ldots \bigm\vert \ldots \bigr\vert$ \dots\ works just the same.
\dots\ $\bigl\vert \ldots \big| \ldots \bigr\vert$ \dots\ works too, but it isn't the same.
\end{document}
답변2
사용은 \big
일반 원자를 생성하기 때문에 일반적으로 잘못되었습니다. 따라서 \bigl
울타리를 열고, \bigr
닫고, 관계를 맺는 데 사용하는 것이 더 좋습니다 \bigm
.
어쨌든 의 정의는 \bigX
궁극적으로 수행되지만 \big
먼저 올바른 유형을 추가합니다. 그리고 \big<token>
단순히 그렇습니다
\left<token>
\bigX
따라서 인수가 구분 기호인지 확인해야 하지만 \mid
그렇지 않습니다.
원칙적으로 구분 기호를 기반으로 구축된 관계에 대해 이러한 제한을 해제할 수 있습니다.
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\let\amsmath@bigm\bigm
\renewcommand{\bigm}[1]{%
\ifcsname fenced@\string#1\endcsname
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{\expandafter\amsmath@bigm\csname fenced@\string#1\endcsname}%
{\amsmath@bigm#1}%
}
\newcommand{\DeclareFence}[2]{\@namedef{fenced@\string#1}{#2}}
\makeatother
\DeclareFence{\mid}{|}
\begin{document}
$\bigl\{\, x\in X \bigm\mid x\notin X \,\bigr\}$
\smallskip
$\bigl\{\, x\in X \bigm| x\notin X \,\bigr\}$
\end{document}
이것은 단지 개념 증명일 뿐이므로 \bigm
형제 \Bigm
, \biggm
및 에 대한 일반화를 시도하지 않았습니다 \Biggm
.