Numere os subapêndices usando versalete minúscula nas memórias

Numere os subapêndices usando versalete minúscula nas memórias

Quero que as seções subappendicessejam numeradas usando versalete minúscula memoir. Ou seja, quero que todas as referências a essas seções usem versalete minúscula. Do topo da minha cabeça, isso inclui:

  1. O título da seção\section{An appendix\label{an_appendix}}
  2. Referências à seção\ref{an_appendix}
  3. Entradas no índice
  4. Flutua dentro da seção
  5. Referências a carros alegóricos dentro da seção

Provavelmente há mais coisas nas quais não consigo pensar.

Suspeito que seria melhor corrigir isso alterando o contador de seção usado no ambiente memoirde subappendices. Mas não consigo descobrir como fazer isso.

No MWE abaixo, comentei algumas correções parciais parciais, que tratam de (1) números de cabeçalho de seção, (3) número de legenda flutuante e (4) números de TOC.

Eu preferiria uma solução limpa que alterasse o contador das seções do subapêndice (ou algo ainda mais limpo que não consigo ver), mas me contentaria em corrigir as referências.

O que devo fazer em vez disso?

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

Saída com retângulos vermelhos adicionados ao redor de recursos indesejados

Responder1

Ambos podem ser resolvidos usando uma única linha

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

No início, subappendicesexecutamos este comando

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

com

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

então basta mexer com isso.

O toc é então corrigido usando o comentário externo

\renewcommand\cftsectionpresnum{\scshape\MakeLowercase}

Isso resolve o material de referência. hyperrefTambém funciona com . Se houver algum pacote que adicione um argumento opcional a \ref, isso também precisará ser escolhido. Ainda estou me perguntando se existe um cone de gancho que pode ser usado.

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

informação relacionada