Nummerieren Sie Abbildungen und Tabellen zusammen mit einem Beschriftungsnamen

Nummerieren Sie Abbildungen und Tabellen zusammen mit einem Beschriftungsnamen

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, tableindem S.Iich

\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.IEs 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 xassoccntder 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 xassoccntPakets 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 \listoftablesund nicht \listoffigureszu 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}

Bildbeschreibung hier eingeben

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

verwandte Informationen