我在我的论文中使用minted和列表LaTeX 包来设置代码片段的样式。
我正在尝试将代码片段的编号系统更改为section.numberinsection
. 所以下面我的示例中的两个代码片段将是1.1
和1.2
。如果第 2 节中有第三个片段,它将被编号2.1
。
我这样做是为了与我的论文中已经存在的和list of code snippets
具有相似的编号方案,并且默认情况下具有我正在寻求的行为。list of tables
list of figures
目前,对于论文中的每个片段,片段的计数器仅从 1 递增。
我正在尝试使用下面代码中的这一特定行来更改输出:\AtBeginDocument{\renewcommand*{\thelstlisting}{\thesection.\arabic{lstlisting}}}
但它似乎不起作用。
想法?
示例乳胶:
\documentclass{thesis}
% Imports
\usepackage{listings}
\usepackage{minted}
% Style Minted
\usemintedstyle{default}
\definecolor{codebg}{rgb}{0.96,0.96,0.96}
\newminted{python}{bgcolor=codebg,
linenos=true,
frame=lines,
numbersep=5pt,
fontsize=\footnotesize}
\renewcommand\listoflistingscaption{LIST OF CODE SNIPPETS}
\renewcommand\listingscaption{Code Snippet}
% Style Listings
\AtBeginDocument{\renewcommand*{\thelstlisting}{\thesection.\arabic{lstlisting}}}
\begin{document}
\listoflistings
\chapter{A Chapter}
\section{A Section}
\subsection{A Sub-Section}
Nam pulvinar euismod facilisis. Quisque vel sagittis diam. In ut egestas sem. Cras sit amet purus elementum, tempor nisi at, imperdiet diam. Mauris rhoncus vitae erat vel laoreet. Suspendisse interdum aliquet bibendum. Quisque venenatis leo eget neque blandit ullamcorper.
\begin{listing}[H]
\begin{pythoncode}
def get_path_leaf(path):
""" return the leaf of a path. """
if not isinstance(path, str):
path = str(path)
head, tail = ntpath.split(path)
return tail or ntpath.basename(head)
\end{pythoncode}
\caption{SPARQL Endpoint}
\label{lst:SPARQL Endpoint}
\end{listing}
Aenean pharetra at mauris at posuere. Vivamus ante libero, posuere et luctus in, condimentum in lacus. Nam rhoncus mi nunc, consequat rhoncus sapien lobortis eu. Fusce feugiat orci nec sollicitudin cursus. Nunc at ligula mi. Vestibulum nec pharetra lacus. Suspendisse a ultrices massa. Nulla mauris purus, tempus quis convallis id, pellentesque vel nibh.
\begin{listing}[H]
\begin{pythoncode}
def get_path_leaf(path):
""" return the leaf of a path. """
if not isinstance(path, str):
path = str(path)
head, tail = ntpath.split(path)
return tail or ntpath.basename(head)
\end{pythoncode}
\caption{SPARQL Endpoint}
\label{lst:SPARQL Endpoint}
\end{listing}
\end{document}
输出:
编辑:
它似乎minted
支持我需要的东西。minted
已经使用该listings
包来完成它的工作,因此我需要listings
明确停止导入,并将其更改\usepackage{minted}
为\usepackage[chapter]{minted}
. 如果我使用section
它,它将对列表进行编号section
,但它也将包括subsection
(例如1.1.1
和1.1.2
来自上面的示例。
我仍然需要一种方法来更改编号行为以针对 命名section
,但忽略subsection
.