你好,我在修改列表的标题时遇到了一些问题。
目前结果如图所示。
我想要改变的是在第二张图片中可以看到的。
如您所见,我想将其放在Listing 1: Nicht implementierte Funktion
左边距。此外,我想在颜色框中写上标题。(在第二张图片中,标题Listing 1: Nicht implementierte Funktion
也有灰色背景)此颜色框的大小应为从左到右边距(与列表相同)
我的代码:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{color}
\definecolor{bg}{rgb}{0.85,0.85,0.85}
\usepackage[most]{tcolorbox}
\tcbset{
frame code={}
center title,
left=0pt,
right=0pt,
top=0pt,
bottom=0pt,
colback=gray!70,
colframe=white,
width=\dimexpr\textwidth\relax,
enlarge left by=0mm,
boxsep=0pt,
arc=0pt,outer arc=0pt,
}
\usepackage[newfloat]{minted}
\usepackage{caption}
\newenvironment{code}{\captionsetup{type=listing}}{}
\begin{document}
\begin{code}
\captionof{listing}{Nicht implementierte Funktion}
\label{code:comp area listing}
\begin{minted}[linenos, bgcolor=bg]{python}
def komplizierte_funktion(a, b):
raise NotImplementedError('Noch nicht implementiert.')
\end{minted}
\end{code}
\end{document}
答案1
我可能会定义一个新的 tcblisting。您已经在使用tcolorbox
了minted
。您可以结合它们的功能,当然还可以添加标签并引用它们:
\documentclass{article}
\usepackage[minted,most]{tcolorbox}
\definecolor{bg}{rgb}{0.85,0.85,0.85}
% `blend into = listings' can only be used after begin document
\begin{document}
\newtcblisting[blend into = listings]{code}[1][]{
listing engine = minted ,
listing only ,
minted language = python ,
minted options = { linenos } ,
colback = bg ,
coltitle = black ,
colframe = gray!70 ,
fonttitle = \large ,
left = 6mm,
lefttitle = 0mm,
leftrule = 0pt,
rightrule = 0pt,
bottomrule = 0pt,
arc = 0pt,
#1
}
\begin{code}[title=Nicht implementierte Funktion,label=code:comp area listing]
def komplizierte_funktion(a, b):
raise NotImplementedError('Noch nicht implementiert.')
\end{code}
See Listing~\ref{code:comp area listing} as an example for\dots
\end{document}
答案2
看看我的建议:
\documentclass[a4paper,oneside]{article}
\usepackage{a4wide}
\usepackage[icelandic]{babel}
\usepackage{minted}
\usemintedstyle{perldoc}
\setlength\partopsep{-\topsep}
\usepackage{caption,newfloat}
\usepackage{xcolor}
\definecolor{bg}{rgb}{0.85,0.85,0.85}
\DeclareFloatingEnvironment[fileext=lol]{lstlisting}[Listing][List of Listings]
\captionsetup[lstlisting]{box=colorbox,boxcolor=gray, justification=raggedright,singlelinecheck=false, labelfont=bf, font=it}
\begin{document}
\begin{lstlisting}
\caption{This is the title I want for my code}
\vspace{-0.65cm}
\begin{minted}[linenos, bgcolor=bg]{python}
def komplizierte_funktion(a, b):
raise NotImplementedError('Noch nicht implementiert.')
\end{minted}
\end{lstlisting}
\end{document}
答案3
只需添加更多选项\captionsetup
:
justification=
来指定理由。
singlelinecheck=0
因为如果没有它,标题随后就会重新居中。
更多信息:标题文档,第 9-10 页
\newenvironment{code}{\captionsetup{type=listing,justification=RaggedRight,singlelinecheck=0}}{}```