Gostaria de rotular minhas figuras e tabelas continuamente usando S.I
, S.II
, S.III
, etc na legenda de ambas, figuras e tabelas.
Posso alterar a legenda figure
e table
para S.I
, ... por
\renewcommand{\tablename}{S.}
\renewcommand{\figurename}{S.}
\renewcommand{\thetable}{\Roman{table}}
\renewcommand{\thefigure}{\Roman{figure}}
mas isso ainda conta números e tabelas separadamente. S.I
portanto existe duas vezes, uma vez para a primeira figura e uma vez para a primeira tabela.
Como posso evitar isso? Obrigado!
Responder1
AtualizarO conceito de contadores acoplados está agora na xassoccnt
versão 1.0 (versão atual em 09/08/2016) que está disponível no CTAN/MikTeX e TeXLive 2016.
Embora existam respostas nos links para esta pergunta, forneço outra solução que possui código experimental (da próxima versão) do meu xassoccnt
pacote. O código parece demorado no momento, mas ficará oculto no pacote, usando outras macros que irão reduzir a configuração, é claro. O plano futuro é ter vários contadores que sejam “compartilhados” ou acoplados, e não apenas dois como neste exemplo.
Nota: Isso não combina os recursos \listoftables
e \listoffigures
em um só List of ...
(o que seria estranho de qualquer maneira, no meu ponto de vista)
Funciona com hyperref
!
\documentclass{article}
\usepackage{xassoccnt}
\usepackage{blindtext}
\renewcommand{\tablename}{S.}
\renewcommand{\figurename}{S.}
\renewcommand{\thetable}{\Roman{table}}
\renewcommand{\thefigure}{\Roman{figure}}
\ExplSyntaxOn
\seq_new:N \l__xassoccnt_coupledcounters_seq
\NewDocumentCommand{\DeclareCoupledCounters}{mm}{%
\seq_clear:N \l__xassoccnt_coupledcounters_seq
\seq_gput_right:Nn \l__xassoccnt_coupledcounters_seq {#1}
\seq_gput_right:Nn \l__xassoccnt_coupledcounters_seq {#2}
}
\cs_set_eq:NN \xassoccnt_stepcounter \stepcounter
\cs_set_eq:NN \xassoccnt_setcounter \setcounter % Should be done
\cs_set_eq:NN \xassoccnt_addtocounter \addtocounter % Should be done
\RenewDocumentCommand{\stepcounter}{m}{%
\tl_set:Nx \l_tmpa_tl {#1}
\seq_if_in:NVTF \l__xassoccnt_coupledcounters_seq {\l_tmpa_tl} {%
\seq_map_inline:Nn \l__xassoccnt_coupledcounters_seq {%
\xassoccnt_stepcounter{##1}
}
}{
\xassoccnt_stepcounter{#1}% Only step #1
}
}
\ExplSyntaxOff
\DeclareCoupledCounters{figure}{table}
\usepackage{hyperref}
\begin{document}
\listoffigures
\listoftables
\section{First}
\blindtext[10]
\begin{figure}
\caption{foo figure}
\end{figure}
\blindtext[10]
\begin{table}
\caption{foo table}
\end{table}
\section{Second}
\blindtext[10]
\begin{figure}
\caption{other foo figure}
\end{figure}
\blindtext[10]
\begin{table}
\caption{other foo table}
\end{table}
\end{document}
Responder2
Se você não precisa do hiperref:
\renewcommand{\tablename}{S.}
\renewcommand{\figurename}{S.}
\makeatletter
\let\c@table\c@figure
\makeatother
\renewcommand\thefigure{\Roman{figure}}
\let\thetable\thefigure