Qual é a maneira mais fácil de fazer com que todos os carros alegóricos apareçam à força no final do documento?A solução deve funcionar comhtlatex
, os pontos flutuantes devem aparecer no final do documento HTML neste caso. (A pergunta original,Forçar todos os carros alegóricos para o final do documento sem usar endfloat, não tinha o requisito de htlatex e a solução não funciona para htlatex. Fora isso é uma cópia, desculpe por isso. Eu não queria editar a pergunta original, mas poderia.)
O endfloat
pacote não é uma opção, veja abaixo. As seguintes perguntas estão relacionadas, mas não são úteis:
Como colocar todos os carros alegóricos (tabelas em particular) em um determinado ponto do documento
Coloque todos os carros alegóricos por último sem alterar a numeração
Detalhes
Em nosso ambiente temos wrappers para criação de figuras, tabelas etc. Os wrappers são implementados como ambientes para permitir "tudo" dentro e além disso aceitam, entre outros, o nome longo e curto da legenda, o rótulo e o conteúdo da figura. A implementação dos wrappers pode ser alterada para diferentes layouts de documentos (legenda acima/abaixo, figura separada por regra sim/não, ...).
Um layout específico exige que cada figura seja colocada após o documento principal.
Próprias tentativas
O endfloat
pacote vem à mente. Porém, não consegui fazê-lo funcionar, pois as figuras são criadas por um invólucro.
Eu tentei implementar isso usando \gappto
: O comando de criação de figura seria apenas anexado a um gancho global que é executado logo antes \end{document}
. Isso funcionou quando o wrapper de criação de figuras era apenas um comando, mas agora é um ambiente para permitir "tudo" dentro. Adicionei minha tentativa ao MnWE abaixo, mas isso resulta na seguinte mensagem de erro:
! Extra }, or forgotten \endgroup.
\environment_richfigure_end_aux:w ...gure}\egroup
l.39 \end{richfigure}
Como você implementaria isso?
MnWE
\documentclass{scrartcl}
\pagestyle{empty}
\usepackage{caption}
\usepackage{xparse}
\usepackage{etoolbox}
\newcommand{\delayedfigures}{}
% Comment the following line to get working code
\newcommand{\dofigure}[1]{\gappto{\delayedfigures}{\clearpage#1}}
% The example works with the default implementation of \dofigure
\providecommand{\dofigure}[1]{#1}
%% \begin{richfigure}
%% [<placement>, e.g. htp (h=here, t=top, p=page)]
%% {<short caption>}
%% {<long caption>}
%% {<\label{label}>}
%% <\includegraphics[...]{figure}>
%% \end{richfigure}
\NewDocumentEnvironment{richfigure}{O{tbp} m m m}{%
\dofigure\bgroup%{%
\begin{figure}[#1]%
\caption[#2]{#3}#4%
}{% Here, the contents of the environment are placed
\end{figure}%
\egroup%{
}
\gpreto{\enddocument}{\delayedfigures}
% Usage example
\begin{document}
Main document contents.
\begin{richfigure}{Short caption}{Long caption}{\label{fig:1}}
Figure contents.
\end{richfigure}
All figures are to appear on separate pages, one per page.
\end{document}
Responder1
Você pode usar uma combinação de rigfigure
e \AtEndDocument
:
Coloque
\AtEndDocument{\clearpage}
logo depois\begin{document}
Enrole cada um
richfigure
em\AtEndDocument{...}