Nummerieren Sie Unteranhänge in Memoiren mit Kleinbuchstaben

Nummerieren Sie Unteranhänge in Memoiren mit Kleinbuchstaben

Ich möchte, dass Abschnitte in subappendicesmit kleinen Kapitälchen nummeriert werden memoir. Das heißt, ich möchte, dass alle Verweise auf diese Abschnitte kleine Kapitälchen verwenden. Aus dem Stegreif sind das:

  1. Die Abschnittsüberschrift\section{An appendix\label{an_appendix}}
  2. Verweise auf den Abschnitt\ref{an_appendix}
  3. Einträge im Inhaltsverzeichnis
  4. Schwebt innerhalb des Abschnitts
  5. Verweise auf Floats innerhalb des Abschnitts

Es gibt wahrscheinlich noch mehr, was mir nicht einfällt.

memoirIch vermute, dass sich dies am besten beheben lässt, indem man den in der Umgebung verwendeten Abschnittszähler ändert subappendices. Aber ich kann nicht herausfinden, wie das geht.

Im MWE weiter unten habe ich einige teilweise Korrekturen auskommentiert, die (1) Abschnittsüberschriftennummern, (3) Float-Untertitelnummern und (4) Inhaltsverzeichnisnummern behandeln.

Ich würde eine saubere Lösung bevorzugen, bei der der Zähler für die Unteranhangabschnitte geändert wird (oder etwas noch Saubereres, das ich nicht sehen kann), wäre aber mit der Korrektur der Referenzen zufrieden.

Was sollte ich stattdessen tun?

\documentclass{memoir}
\usepackage{amsmath}
\usepackage{fontspec}
\setmainfont{EBGaramond-Regular}[
  BoldFont = EBGaramond-Bold,
  ItalicFont = EBGaramond-Italic,
  BoldItalicFont = EBGaramond-BoldItalic,
  Numbers={Proportional, OldStyle},
]
\AtBeginEnvironment{subappendices}{
  \numberwithin{table}{section}
}
\setsecnumformat{\textsc{\csname the#1\endcsname}\quad}
% \setsecnumformat{\textsc{\MakeLowercase{\csname the#1\endcsname}}\quad} % (1) Make numbers in section headings lowercase small caps
\usepackage{caption}
\DeclareCaptionLabelFormat{lowercase}{\MakeLowercase{#1}~#2}
% \DeclareCaptionLabelFormat{lowercase}{\MakeLowercase{#1~#2} % (3) Make numbers in float captions lowercase small caps
\captionsetup{
  labelfont=sc,
  labelformat=lowercase,
}
% \makeatletter % (4) Make numbers in the table of contents lowercase small caps
% \patchcmd\numberline{\@cftbsnum #1\@cftasnum}{\@cftbsnum{#1}\@cftasnum}{}{\ERROR}
% \makeatother
% \renewcommand\cftsectionpresnum{\scshape\MakeLowercase}
\begin{document}
  \tableofcontents*

  \chapter{A chapter}
  \section{A section}
  See table~\ref{tab:a_table} in appendix~\ref{an_appendix}.

  \begin{subappendices}
    \section{An appendix\label{an_appendix}}
    \begin{table}[h]
      \caption{A table\protect\label{tab:a_table}}
      \centering
      \begin{tabular}{lcc}
        & Column A & Column B \\
        First row & 123 & 456 \\
        Second row & 123 & 456 \\
      \end{tabular}
    \end{table}
  \end{subappendices}
\end{document}

Ausgabe mit hinzugefügten roten Rechtecken um unerwünschte Features

Antwort1

Beides kann mit einer einzigen Zeile gelöst werden

\renewcommand{\setthesection}{\thechapter.\alph{section}}

Zu Beginn subappendicesführen wir diesen Befehl aus

\newcommand{\@resets@ppsub}{
  \par
  \setcounter{section}{0}
  \renewcommand{\thesection}{\setthesection}
  \def\theHsection{\theHchapter.\Alph{section}}
}

mit

\newcommand{\setthesection}{\thechapter.\Alph{section}}

also reicht es, damit herumzuspielen.

Das Inhaltsverzeichnis wird dann mit dem auskommentierten

\renewcommand\cftsectionpresnum{\scshape\MakeLowercase}

Dies löst das Referenzproblem. Es funktioniert hyperrefauch mit . Wenn es ein Paket gibt, das ein optionales Argument hinzufügt \ref, muss das ebenfalls berücksichtigt werden. Ich frage mich immer noch, ob es einen Hook gibt, den Cone stattdessen verwenden kann.

\AtBeginDocument{
  \NewCommandCopy\oldref\ref
  \RenewDocumentCommand\ref{sm}{%
    \textsc{%
      \IfBooleanTF{#1}%
      {\oldref*{#2}}%
      {\oldref{#2}}%
    }%
  }
}

verwandte Informationen