Quero que as seções subappendices
sejam 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:
- O título da seção
\section{An appendix\label{an_appendix}}
- Referências à seção
\ref{an_appendix}
- Entradas no índice
- Flutua dentro da seção
- 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 memoir
de 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}
Responder1
Ambos podem ser resolvidos usando uma única linha
\renewcommand{\setthesection}{\thechapter.\alph{section}}
No início, subappendices
executamos 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. hyperref
També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}}%
}%
}
}