
\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}