Ich möchte meine Abbildungen und Tabellen durchgängig mit S.I
, S.II
, S.III
, usw. beschriften, sowohl in der Bildunterschrift als auch in der Überschrift der Abbildungen.
Ich kann die Beschriftung in ... ändern figure
, table
indem S.I
ich
\renewcommand{\tablename}{S.}
\renewcommand{\figurename}{S.}
\renewcommand{\thetable}{\Roman{table}}
\renewcommand{\thefigure}{\Roman{figure}}
Dabei werden aber Abbildungen und Tabellen trotzdem getrennt gezählt. S.I
Es gibt sie also zweimal, einmal für die erste Abbildung und einmal für die erste Tabelle.
Wie kann ich das vermeiden? Danke!
Antwort1
AktualisierenDas Konzept der gekoppelten Zähler liegt nun in xassoccnt
der Version 1.0 (aktuelle Version vom 09.08.2016) vor, die auf CTAN/MikTeX und TeXLive 2016 verfügbar ist.
Obwohl die Links zu dieser Frage Antworten enthalten, biete ich eine andere Lösung an, die experimentellen Code (der nächsten Version) meines xassoccnt
Pakets enthält. Der Code sieht im Moment lang aus, wird aber im Paket versteckt, wobei andere Makros verwendet werden, die den Einrichtungsaufwand natürlich reduzieren. Der Plan für die Zukunft ist, eine Reihe von Zählern zu haben, die „gemeinsam genutzt“ oder gekoppelt werden, nicht nur zwei wie in diesem Beispiel.
Hinweis: Dadurch werden die Funktionen \listoftables
und nicht \listoffigures
zu einer kombiniert List of ...
(was aus meiner Sicht sowieso seltsam wäre).
Es funktioniert mit 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}
Antwort2
Wenn Sie Hyperref nicht benötigen:
\renewcommand{\tablename}{S.}
\renewcommand{\figurename}{S.}
\makeatletter
\let\c@table\c@figure
\makeatother
\renewcommand\thefigure{\Roman{figure}}
\let\thetable\thefigure