[ ] 및 ( )를 만드는 매크로는 자동으로 \mleft 및 \mright를 갖습니다.

[ ] 및 ( )를 만드는 매크로는 자동으로 \mleft 및 \mright를 갖습니다.

수천 개의 모든 종류의 괄호가 포함된 문서를 작성하고 있으므로 모든 괄호의 크기를 수동으로 조정하거나 수동으로 추가할 \mleft때 마다 \mright결국 많은 시간이 필요하게 됩니다. 게다가 이 문서는 개인적인 용도로 사용되기 때문에 따라야 할 엄격한 인쇄 규칙이 없습니다.

(따라서 이 경우 and를 각각 재정의하는 것은 나쁜 생각이 아니며 )대괄호 \mleft(\mright)중괄호에도 동일합니다(분명히 수학 모드에서만).

나는 자동 크기 조정 괄호 사용에 대한 모든 단점을 알고 있습니다(예:\left 및 \right 주위의 간격또는LaTeX는 왜 (를 \left( 및 )를 \right)로 해석하지 않습니까?또는\left와 \right를 사용하는 것이 나쁜 적이 있나요?) 적어도 사용하면 \mleft간격 \right문제가 해결됩니다.

페이지에서\{ 및 \}을 자동으로 \left 및 \right로 만드는 방법egreg는 중괄호의 경우 목표를 달성하는 쉬운 방법이 있다고 설명합니다. 매크로는 파일 에 있는 및 정의에 \left및를 추가하는 것으로 구성됩니다 .\right\{\}latex.ltx

\documentclass{article}
\usepackage{amsmath}
\usepackage{mleftright}

\let\{\relax \let\}\relax % to avoid warnings about the redefinition
\DeclareRobustCommand{\{}{\ifmmode\mleft\lbrace\else\textbraceleft\fi}
\DeclareRobustCommand{\}}{\ifmmode\mright\rbrace\else\textbraceright\fi}

\begin{document}
$a\{\dfrac13\}a$
\end{document}

여기에 이미지 설명을 입력하세요

latex.ltx곡선과 대괄호의 명령을 재정의하기 위해 비슷한 방법을 찾고 있는데 매우 큰 파일이기 때문에 파일에서 해당 정의를 찾는 방법을 모르겠습니다 .

답변1

수학 코드를 8000으로 설정하여 이러한 기호 수학을 활성화한 다음 소문자 트릭으로 정의할 수 있습니다.

\documentclass{article}
\usepackage{amsmath}
\usepackage{mleftright}

\makeatletter
\def\@mathactive#1#2{\begingroup
    \lccode`~=`#1
    \lowercase{\endgroup
        \def~{#2}}%
    \mathcode`#1="8000\relax}

\@mathactive({\mleft(}
\@mathactive){\mright)}
% Do the same for brackets. (Do not try it with braces.)
\makeatother

\begin{document}
$ (\dfrac12) $
\end{document}

여기에 이미지 설명을 입력하세요

편집: PDFTeX와 함께 작동하는 코드는 다음과 같습니다. PDFTeX에서 AMSMath는 활성 수학 문자에 문제가 있는 것 같습니다.

\documentclass{article}
\usepackage{amsmath}
\usepackage{mleftright}

\begingroup
\catcode`\(=\active
\catcode`\)=\active
\gdef({\mleft\lparen}
\gdef){\mright\rparen}
\endgroup

\def\lparen{\delimiter"028300\relax}
\def\rparen{\delimiter"029301\relax}

\everymath{\mathcode`\(="8000
           \mathcode`\)="8000}
\everydisplay{\mathcode`\(="8000
              \mathcode`\)="8000}

\begin{document}

$ (\dfrac12) $

\[ (\frac18) \]

\end{document}

관련 정보