Numere los subapéndices usando versalitas minúsculas en las memorias

Numere los subapéndices usando versalitas minúsculas en las memorias

Quiero que las secciones subappendicesse numeren usando versalitas minúsculas en memoir. Es decir, quiero que todas las referencias a estas secciones utilicen versalitas minúsculas. Desde lo más alto de mi cabeza, esto incluye:

  1. El encabezado de la sección\section{An appendix\label{an_appendix}}
  2. Referencias a la sección.\ref{an_appendix}
  3. Entradas en el índice
  4. Flota dentro de la sección
  5. Referencias a flotadores dentro de la sección.

Probablemente hay más en las que no puedo pensar.

Sospecho que esto se solucionaría mejor cambiando el contador de secciones utilizado dentro memoirdel subappendicesentorno. Pero no puedo entender cómo hacerlo.

En el MWE a continuación, he comentado algunas correcciones parciales, que manejan (1) números de encabezado de sección, (3) número de título flotante y (4) números TOC.

Preferiría una solución limpia que cambie el contador de las secciones del subapéndice (o algo aún más limpio que no pueda ver), pero me conformaría con arreglar las referencias.

¿Qué debería hacer en su lugar?

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

Salida con rectángulos rojos agregados alrededor de características no deseadas

Respuesta1

Ambos se pueden resolver usando una sola línea.

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

Al inicio subappendicesejecutamos este comando.

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

con

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

así que basta con meterse con eso.

El toc luego se arregla usando el comentario comentado.

\renewcommand\cftsectionpresnum{\scshape\MakeLowercase}

Esto resuelve las cosas de referencia. Funciona con hyperreftambién. Si hay algún paquete que agrega un argumento opcional \ref, entonces ese también debe seleccionarse. Todavía me pregunto si hay un cono de gancho que se pueda usar en su lugar.

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

información relacionada