Wie kann ich in Amsart nur eine Unterabschnittsnummer fett darstellen?

Wie kann ich in Amsart nur eine Unterabschnittsnummer fett darstellen?

Wenn ich den Code verwende

\makeatletter
\renewcommand{\@secnumfont}{\bfseries}
\makeatother

ausWie wird eine Abschnittsüberschrift fett dargestellt? (einschließlich Titel und Nummer)es macht auch die Anzahl der Abschnitte fett. Wie bekomme ich eine fettgedruckte Zahl nur für Unterabschnitte? Wenn man sich amsart.cls ansieht, scheint es keinen speziellen Befehl für Unterabschnitte oder Absätze zu geben.

Antwort1

Durch Tippen auf \@seccntformatkönnen Sie die Anzeige des Abschnittszählers je nach verwendetem Zählertyp Ihren Anforderungen entsprechend formatieren.

Unten habe ich eine Bedingung hinzugefügt, die überprüft, ob Sie den subsectionZähler einstellen. Wenn ja, verwenden Sie \bfseries. Natürlich kann dies erweitert werden, um auch andere Abschnittszählereinstellungen zu ändern, indem weitere Bedingungen hinzugefügt werden:

Bildbeschreibung hier eingeben

\documentclass{amsart}

\makeatletter
\def\@seccntformat#1{%
  \protect\textup{\protect\@secnumfont
    \ifnum\pdfstrcmp{subsection}{#1}=0 \bfseries\fi% subsection # in \bfseries
    \csname the#1\endcsname
    \protect\@secnumpunct
  }%
}  
\makeatother

\begin{document}
\section{A section}
\subsection{A subsection}
\subsubsection{A subsection}
\end{document}

Dies erfordert e-TeX aufgrund von \pdfstrcmp.

Antwort2

Werners Idee, auf zuzugreifen, \@seccntformatist gut, aber es gibt eine elegantere Möglichkeit, dies umzusetzen: Fügen Sie einen Befehl der Form hinzu. Wenn der Befehl nicht definiert ist, wird er \format<level>bei Verwendung mit gleichwertig mit .\csname...\endcsname\relax

\documentclass{amsart}

\makeatletter
\def\@seccntformat#1{%
  \protect\textup{%
    \protect\@secnumfont
    \expandafter\protect\csname format#1\endcsname % <--- added
    \csname the#1\endcsname
    \protect\@secnumpunct
  }%
}

% define what you want for the various levels
\newcommand{\formatsubsection}{\bfseries}
%\newcommand{\formatsubsubsection}{\Huge} %%%% try for experimenting

\makeatother

\begin{document}
\section{A section}
\subsection{A subsection}
\subsubsection{A subsection}
\end{document}

Bildbeschreibung hier eingeben

Versuchen Sie versuchsweise, die \formatsubsubsectionZeile zu kommentieren.

Antwort3

Amsart hat ein merkwürdiges Verhalten: Wenn ein Unterabschnittstitel leer ist, wird seine Nummer fett dargestellt. Dies wird durch die folgenden Zeilen innerhalb \sectder Definition erreicht:

\@ifempty{#8}{%
  \ifnum #2=\tw@ \def\@secnumfont{\bfseries}\fi}{}%

Hier #2ist die Abschnittsebene (1 für Abschnitt, 2 für Unterabschnitt, 3 für Unterunterabschnitt usw.).

Sie müssen also prüfen, ob der Titel ( #8) leer ist, und die Unterabschnittsnummer wird immer fett gedruckt.

Das hier funktioniert (ich habe einfach den Amsart-Code genommen und \@ifemptydas Häkchen gelöscht):

\makeatletter
\def\@sect#1#2#3#4#5#6[#7]#8{%
  \edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}%
  \ifnum #2>\c@secnumdepth \let\@secnumber\@empty
  \else \@xp\let\@xp\@secnumber\csname the#1\endcsname\fi
  \@tempskipa #5\relax
  \ifnum #2>\c@secnumdepth
    \let\@svsec\@empty
  \else
    \refstepcounter{#1}%
    \edef\@secnumpunct{%
      \ifdim\@tempskipa>\z@ % not a run-in section heading
        \@ifnotempty{#8}{.\@nx\enspace}%
      \else
        \@ifempty{#8}{.}{.\@nx\enspace}%
      \fi
    }%
    \ifnum #2=\tw@ \def\@secnumfont{\bfseries}\fi
    \protected@edef\@svsec{%
      \ifnum#2<\@m
        \@ifundefined{#1name}{}{%
          \ignorespaces\csname #1name\endcsname\space
        }%
      \fi
      \@seccntformat{#1}%
    }%
  \fi
  \ifdim \@tempskipa>\z@ % then this is not a run-in section heading
    \begingroup #6\relax
    \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty\@M #8\par}%
    \endgroup
    \ifnum#2>\@m \else \@tocwrite{#1}{#8}\fi
  \else
  \def\@svsechd{#6\hskip #3\@svsec
    \@ifnotempty{#8}{\ignorespaces#8\unskip
       \@addpunct.}%
    \ifnum#2>\@m \else \@tocwrite{#1}{#8}\fi
  }%
  \fi
  \global\@nobreaktrue
  \@xsect{#5}}
\makeatother

verwandte Informationen