`\overline` 명령을 `\uc`로 변경하세요.

`\overline` 명령을 `\uc`로 변경하세요.

\overline명령을 완전히 변경하려고합니다 \uc. 그러나 pdflatex에서는 아래와 같은 오류가 발생합니다.

! TeX capacity exceeded

코드:

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{mathpazo}
\newcommand{\uc}[1]{\mkern 1.5mu\overline{\mkern-1mu#1\mkern-0.3mu}\mkern 0mu}
\let\overline\uc
\renewcommand*{\uc}[1]{\overline[#1]}

\begin{document}
\noindent X $\uc{X}$ X\\
Y $\uc{Y}$ Y
\end{document}

어떻게 해야 하나요?

답변1

나는 당신의 목표를 완전히 확신하지 못하지만 당신의 논리는 \overline호출 에 있어서 자기 참조적 \uc이며 그 반대의 경우도 마찬가지입니다. 따라서 무한 루프를 설정했습니다. 이러한 상황을 처리하는 표준 방법은 먼저 기존 매크로의 복사본을 저장하는 것입니다(이 경우 ) \let\svoverline\overline. 그런 다음 저장된 버전을 기준으로 정의 \uc및/또는 재정의합니다 .\overline

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{mathpazo}
\let\svoverline\overline
\newcommand{\uc}[1]{\mkern 1.5mu\svoverline{\mkern-1mu#1\mkern-0.3mu}\mkern 0mu}
\let\overline\uc
%\renewcommand*{\uc}[1]{\svoverline[#1]}

\begin{document}
\noindent X $\uc{X}$ X\\
Y $\uc{Y}$ Y
\end{document}

관련 정보