![图表和清单的通用编号](https://linux22.com/image/331241/%E5%9B%BE%E8%A1%A8%E5%92%8C%E6%B8%85%E5%8D%95%E7%9A%84%E9%80%9A%E7%94%A8%E7%BC%96%E5%8F%B7%20.png)
我将其用于ShareLaTeX
我的论文,但遇到了一个问题。我使用以下代码将图形的名称更改为“Εικόνα”,并将lstlistings
名称更改为“Εικόνα”。
\renewcommand{\lstlistingname}{Εικόνα}
\addto\captionsgreek{\renewcommand{\figurename}{Εικόνα}}
现在,问题是可能存在一个名为“Εικόνα 5.1”的图形,并且还有一个名为“Εικόνα 5.1”的列表,因为和LateX
使用不同的编号。figures
lstlistings
有没有办法对图形和列表使用通用编号?
答案1
这是xassoccnt
共享/耦合计数器的一个版本,它不需要比定义group
耦合计数器更多的设置,这里figure
和lstlisting
。(这需要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}
上述代码应生成如下内容的文档: