Setzen des Quadrats eines mathematischen Operators

Setzen des Quadrats eines mathematischen Operators

Angenommen, ich möchte das Quadrat eines mathematischen Operators A setzen. Mit \operatorname(amsmathPaket), gibt es grundsätzlich zwei Möglichkeiten, dies zu tun:

  1. \(\operatorname{A^{2}}\)(d. h. der Exponent wird als Teil des Operatornamens betrachtet)
  2. \(\operatorname{A}^{2}\)(d. h. der Exponent wird nicht als Teil des Operatornamens betrachtet)

Nach meinen Tests sind die beiden obigen Formeln allerdings nicht äquivalent. Tatsächlich hat die erste Formel eine kleinere Höhe als die zweite. Minimales Beispiel:

\documentclass{article}

\usepackage{amsmath}

\newlength{\len}

\begin{document}

\begin{enumerate}
\item
  \settoheight{\len}{\(\operatorname{A^{2}}\)}
  \(\operatorname{A^{2}}\): height = \the\len
\item
  \settoheight{\len}{\(\operatorname{A}^{2}\)}
  \(\operatorname{A}^{2}\): height = \the\len
\end{enumerate}

\end{document}

Kann mir irgendjemand erklären, was der Grund für meine Beobachtung ist?

Antwort1

Der Grund für den Unterschied liegt darin, dass TeX hochgestellte Zeichen unterschiedlich setzt, egal ob sie einem Buchstaben oder einem Kästchen folgen, wie in Regel 18a des Anhangs G vonDas TeXbook. Da das Makro \operatornameseinen Inhalt einrahmt (weil es \mathopwhich aufruft), unterscheiden sich \operatorname{A}^2und \operatorname{A^2}(der erste hochgestellte Index betrifft eine Box, während der zweite nur das vorangehende A betrifft). Sie können leicht erkennen, dass sich an \operatornameund an \hboxähnlich verhalten:

Ergebnis des Codes

\documentclass{article}

\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{xcolor}

\begin{document}

\begin{tabular}{ccc}
\scalebox{5}{$\operatorname{A}^2$} & \scalebox{5}{$\hbox{A}^2$} & \scalebox{5}{$\operatorname{A^2}$} \\
\verb"$\operatorname{A}^2$" & \verb"$\hbox{A}^2$" & \verb"$\operatorname{A^2}$" \\
\end{tabular}

\raisebox{1.22cm}[0pt]{\color{red}\rule{\textwidth}{0.4pt}}

\end{document}

Hier sind die technischen Details der tatsächlichen Berechnungen, die TeX im vorliegenden Fall durchgeführt hat:

Ergebnis des Codes

\documentclass[a4paper]{article}

\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{geometry}

\begin{document}

\setbox0=\hbox{$a$}% to initialize the maths fonts

\begingroup
\newdimen\h
\newdimen\q
\newdimen\boxedu
\newdimen\unboxedu
\newdimen\sigmafourteen
\newdimen\sigmafive
\q=\the\fontdimen18\scriptfont2
\sigmafourteen=\the\fontdimen14\textfont2
\sigmafive=\the\fontdimen5\textfont2
\def\tabularheading{\itshape\color{red!70!black}}

\noindent List of relevant font parameters and their values:
\begin{quote}
\begin{tabular}{lll}
\tabularheading Name & \tabularheading Symbol & \tabularheading Value \\
\texttt{x\_height} & $\sigma_5$ & \the\sigmafive \\
\texttt{sup2}      & $\sigma_{14}$ & \the\sigmafourteen \\
\texttt{sup\_drop} & $q$ (it's $\sigma_{18}$ of superscript font) & \the\q \\
\end{tabular}
\end{quote}
Comparison of the amount the superscript is shifted up for a boxed and unboxed $A$:
\begin{quote}
\setbox0=\hbox{$A$}
\h=\the\ht0
\def\maxof#1#2{%
  \ifdim#1>#2%
      #1%
    \else
      #2%
    \fi}
\begin{tabular}{lll}
& \tabularheading Boxed $A$ & \tabularheading Unboxed $A$ \\
\tabularheading height $h$ & \the\h & \the\h \\
\tabularheading base superscript shift $u_0$ & $h-q = \mathrm{\the\dimexpr\h-\q\relax}$ & 0pt \\
\tabularheading real shift $u = \max(u_0,\sigma_{14},\frac{1}{4}\sigma_5)$ &
\boxedu=\dimexpr\h-\q\relax
\boxedu=\maxof{\boxedu}{\sigmafourteen}%
\global\boxedu=\maxof{\boxedu}{.25\sigmafive}%
\the\boxedu
&
\unboxedu=0pt
\unboxedu=\maxof{\unboxedu}{\sigmafourteen}%
\global\unboxedu=\maxof{\unboxedu}{.25\sigmafive}%
\the\unboxedu
\end{tabular}
\end{quote}
Comparision of the calculations with the real typesetting:
\begin{quote}
\begin{tabular}{cc}
\scalebox{5}{$\hbox{$A$}^2$\hbox{$A$\raise\boxedu\hbox{$\scriptstyle2$}}} & \scalebox{5}{$A^2$\hbox{$A$\raise\unboxedu\hbox{$\scriptstyle2$}}} \\
\tabularheading boxed $A$ & \tabularheading unboxed $A$ \\
\end{tabular}

\raisebox{1.35cm}[0pt]{\color{blue}\rule{9.5cm}{0.4pt}}
\end{quote}
\endgroup

\end{document}

Antwort2

Hier ist eine ziemlich detaillierte Erklärung, was bei der Ausführung einer Anweisung passiert \operatorname. Beachten Sie, dass diese Erklärung auf den Fall der Verwendung dieses Befehls vereinfacht istohneder *Qualifizierer („Stern“). ( amsopn.styAlle Einzelheiten finden Sie unter.)

Die \operatornameAnweisung (ohne den Stern) ist wie folgt aufgebaut:

\DeclareRobustCommand{\operatorname}{{\qopname\newmcodes@ o}}

wobei \qopnamewiederum definiert ist als

\DeclareRobustCommand{\qopname}[3]{%
    \mathop{#1\kern\z@\operator@font#3}%
    \csname n#2limits@\endcsname},

\operator@fontist gegeben durch

\def\operator@font{\mathgroup\symoperators},

und \newmcodes@wird -- innerhalb einer TeX - Gruppe für die "der Catcode 12 gilt -- durch

\gdef\newmcodes@{\mathcode`\'39\mathcode`\*42\mathcode`\."613A%
  \ifnum\mathcode`\-=45 \else
    \mathchardef\std@minus\mathcode`\-\relax
  \fi
  \mathcode`\-45\mathcode`\/47\mathcode`\:"603A\relax} 

(Grundsätzlich \newmcodes@ändert der Befehl die Bedeutung der Zeichen ' * . - /und :ihre „normalen“ Einstellungen im Mathematikmodus.) Schließlich \z@ist der Befehl gleichwertig mit 0pt(Länge Null).

Daher \operatorname{xyz}ist die Ausführung des Befehls gleichbedeutend mit der Ausführung

{\qopname\newmcodes@ o xyz}

was darauf hinausläuft, es auszuführen, nachdem (i) erkannt wurde, dass keines der vom \newmodes@Befehl betroffenen Sonderzeichen im aktuellen Beispiel vorkommt, (ii) die Konstruktion im \csname ... \endcsnameKomplex in aufgelöst wurde \nolimitsund (iii) festgestellt wurde, dass \nolimitskeine Auswirkungen hat, wenn wir keine Grenzen angeben:

{\mathop{\kern0pt \operator@font xyz}

$\operatorname{A}^2$beschließt daher,

${\mathop{\kern0pt \operator@font A}^2$

in $\operatorname{A^2}$der Erwägung, dass

${\mathop{\kern0pt \operator@font A^2}$

Wenn die "Quadrieranweisung"innender \mathopAnweisung scheint es, dass die Höhe der Buchstaben, die der hochgestellten 2 vorangehen, keinen Einfluss auf die vertikale Positionierung der hat 2. Sehen Sie sich beispielsweise die Positionen der 2Glyphe in

$\mathop{\kern0pt \operator@font ln^2}$
$\mathop{\kern0pt \operator@font sin^2}$
$\mathop{\kern0pt \operator@font cos}^2$`

Sie sind alle gleich.

Umgekehrt, wenn die "Quadrieranweisung"nicht im Innerender \mathopAnweisung kommt es auf die Höhe des gesamten Felds an, das den „Name“-Teil der \operatornameAnweisung enthält. Wenn der „Name“-Teil Buchstaben mit Oberlängen enthält, erhöht sich die Höhe des Felds, was sich auf die Positionierung der hochgestellten 2 auswirkt. Beispielsweise befindet sich die hochgestellte Zahl für $\ln^2$, $\det^2$, und auf unterschiedlichen Höhen, da die Felder, die , , bzw. $\cos^2$enthalten, unterschiedliche Höhen aufweisen .lnsincos

Antwort3

Sie haben einige großartige Antworten erhalten, die die TeXnicalities erklären (und damit Ihre Frage beantworten). Ich möchte darauf hinweisen, dass Sieniemalsverwenden \(\operatorname{A^{2}}\), und dass Sie wahrscheinlich nur möchten \(A^2\):

Wenn Sie einen mathematischen Operator haben, können Sie denVariableA, um diesen Operator zu bezeichnen. In diesem Fall sollten Sie einfach verwenden A^2. Nur für spezielle (nicht variable) Operatoren sollte man verwenden \operatorname, z. B. \operatorname{E}für denerwarteter Wert. (In diesem Beispiel ergibt das \operatorname{E}^{2}nicht wirklich Sinn, aber man würde das Quadrat immerdraußenDie \operatorname.)

verwandte Informationen