gpt4 book ai didi

latex 列表 : different counters for different listing environments

转载 作者:行者123 更新时间:2023-12-04 18:22:40 25 4
gpt4 key购买 nike

如何创建两个每个都有自己的计数器的 lSTListing 环境?

如果我使用例如

\lstnewenvironment{algorithm}[2]{
\renewcommand\lstlistingname{Algorithm}
\lstset{ ... }
} {}

\lstnewenvironment{program}[2]{
\renewcommand\lstlistingname{Program}
\lstset{ ... }
} {}

进而
\begin{algorithm}{Algorithm caption}{alg-label}
...
\end{algorithm}

\begin{program}{Program caption}{prg-label}
...
\end{program}

然后他们将共享计数器,即它将导致例如
Algorithm 1.1
...
Program 1.2
...

我希望计数对于不同的列表环境是独立的。

我还使用标题包来创建一个漂亮的标题。我已经尝试了很多东西,但没有一个真正成功。我发现指示如何更改计数器/文件扩展名的唯一方法是通过即\DeclareCaptionType[fileext=alg]{algorithm} 但问题是该命令已经定义了一个新环境,所以我不知道如何使用它与一个新的列表环境和标题包一起。我正在使用例如以下设置:
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{\parbox{\textwidth}{\hspace{15pt}#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}

最佳答案

\newcounter{algorithm}
\newcounter{program}

\makeatletter
\lstnewenvironment{algorithm}[2]{
\renewcommand\lstlistingname{Algorithm}
\let\c@lstlisting=\c@algorithm
\let\thelstlisting=\thealgorithm
\lstset{caption=#1}
} {}

\lstnewenvironment{program}[2]{
\renewcommand\lstlistingname{Program}
\let\c@lstlisting=\c@program
\let\thelstlisting=\theprogram
\lstset{caption=#1}
} {}
\makeatother

关于 latex 列表 : different counters for different listing environments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3900847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com