Me gustaría etiquetar mis figuras y tablas continuamente usando S.I
, S.II
, S.III
, etc. en el título de ambas figuras y tablas.
Puedo cambiar el título figure
y table
a S.I
, ... por
\renewcommand{\tablename}{S.}
\renewcommand{\figurename}{S.}
\renewcommand{\thetable}{\Roman{table}}
\renewcommand{\thefigure}{\Roman{figure}}
pero esto todavía cuenta figuras y tablas por separado. S.I
por tanto, existe dos veces, una para la primera figura y otra para la primera tabla.
¿Cómo puedo evitar esto? ¡Gracias!
Respuesta1
ActualizarEl concepto de contadores acoplados se encuentra ahora en xassoccnt
la versión 1.0 (versión actual a partir del 09/08/2016) que está disponible en CTAN/MikTeX y TeXLive 2016.
Aunque hay respuestas en los enlaces a esta pregunta, proporciono otra solución que tiene un código experimental (la próxima versión) de mi xassoccnt
paquete. El código parece largo por el momento, pero estará oculto en el paquete, utilizando otras macros que, por supuesto, reducirán la configuración. El plan futuro es tener varios contadores "compartidos" o acoplados, no sólo dos como en este ejemplo.
Nota: Esto no combina las características \listoftables
y \listoffigures
en una sola List of ...
(lo que sería extraño de todos modos, desde mi punto de vista)
¡Funciona con 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}
Respuesta2
Si no necesita hiperref:
\renewcommand{\tablename}{S.}
\renewcommand{\figurename}{S.}
\makeatletter
\let\c@table\c@figure
\makeatother
\renewcommand\thefigure{\Roman{figure}}
\let\thetable\thefigure