
Ich versuche, \overline
den Befehl \uc
vollständig zu ändern. Aber pdflatex gibt den folgenden Fehler aus:
! TeX capacity exceeded
Der Code:
\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}
Was soll ich machen?
Antwort1
Ich bin mir Ihres Ziels nicht ganz sicher, aber Ihre Logik ist selbstreferenziell, da sie \overline
aufruft \uc
und umgekehrt. Sie haben also eine Endlosschleife eingerichtet. Die Standardmethode zum Umgang mit solchen Situationen besteht darin, zunächst eine Kopie des vorhandenen Makros zu speichern, in diesem Fall \let\svoverline\overline
. Dann definieren \uc
und/oder neu definieren \overline
in Bezug auf die gespeicherte Version.
\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}