图表和清单的通用编号

图表和清单的通用编号

我将其用于ShareLaTeX我的论文,但遇到了一个问题。我使用以下代码将图形的名称更改为“Εικόνα”,并将lstlistings名称更改为“Εικόνα”。

\renewcommand{\lstlistingname}{Εικόνα}
\addto\captionsgreek{\renewcommand{\figurename}{Εικόνα}}

现在,问题是可能存在一个名为“Εικόνα 5.1”的图形,并且还有一个名为“Εικόνα 5.1”的列表,因为和LateX使用不同的编号。figureslstlistings

有没有办法对图形和列表使用通用编号?

答案1

这是xassoccnt共享/耦合计数器的一个版本,它不需要比定义group耦合计数器更多的设置,这里figurelstlisting。(这需要xassoccnt v0.6

此后,图形/列表反向合并。

\documentclass{book}

\usepackage[T1]{fontenc}
\usepackage{textgreek}
\usepackage[utf8]{inputenc}
\usepackage[greek,english]{babel}

\usepackage{listings}
\usepackage{xassoccnt}



\DeclareCoupledCounters[name=figurelistingsgroup]{figure,lstlisting}


\renewcommand{\lstlistingname}{Εικόνα}
\addto\captionsgreek{\renewcommand{\figurename}{Εικόνα}}

\begin{document}

\chapter{First}

\begin{figure}[ht]
    \caption{This is a figure.}
\end{figure}

\begin{lstlisting}[language=C,caption={Hello World},floatplacement={ht}]
#include<stdio.h>

int main(int argc,char **argv)
{
  printf("Hello World!\n");
  return(0);
}
\end{lstlisting}


\begin{figure}[ht]
    \caption{A dummy figure}
\end{figure}

\begin{figure}[ht]
    \caption{Yet another dummy figure}
\end{figure}

\begin{lstlisting}[caption={Hello World again},language=C,floatplacement={ht}]
#include<stdio.h>

int main(int argc,char **argv)
{
  printf("Hello World!\n");
  return(0);
}
\end{lstlisting}

\end{document}

在此处输入图片描述

答案2

您可以通过定义新的计数器来实现通用编号,并将其用于列表和图形环境中的标题。

\documentclass{book}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[demo]{graphicx}
\usepackage{listings}

% Define new counter for listings and figures.
\newcounter{eikona}
\setcounter{eikona}{0}

% Define your listing style, if needed.
\lstdefinestyle{mystyle}{
    captionpos=b
}

% Define new listing environment that uses the custom counter
% and your listings style.
\lstnewenvironment{eikona}[1]{
    \renewcommand\lstlistingname{Figure}
    \setcounter{lstlisting}{\value{eikona}}
    \lstset{
        style=mystyle,
        caption={[#1]{#1}}
    }
}{\addtocounter{eikona}{1}}

% Change listings caption.
\renewcommand{\lstlistingname}{Figure}
\addto\captionsenglish{\renewcommand{\figurename}{Figure}}

% Change figure numbering.
\renewcommand\thefigure{\addtocounter{eikona}{1}\thechapter.\arabic{eikona}}


\begin{document}

\chapter{First chapter}

\clearpage
\begin{figure}[h]
    \centering
    \includegraphics{placeholder}
    \caption{This is a figure.}
\end{figure}

\begin{eikona}{Python example}
def hello():
    print "Hello!"
\end{eikona}

\begin{figure}[h]
    \centering
    \includegraphics{placeholder}
    \caption{Another figure.}
\end{figure}

\begin{figure}[h]
    \centering
    \includegraphics{placeholder}
    \caption{Another figure.}
\end{figure}

\begin{eikona}{Yet another Python example}
def bye():
    print "Goodbye!"
\end{eikona}

\end{document}

上述代码应生成如下内容的文档:

清单和图表的常用编号示例

相关内容