使用背景自定义标题

使用背景自定义标题

在此处输入图片描述

你好,我在修改列表的标题时遇到了一些问题。

目前结果如图所示。

我想要改变的是在第二张图片中可以看到的。

在此处输入图片描述

如您所见,我想将其放在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。您已经在使用tcolorboxminted。您可以结合它们的功能,当然还可以添加标签并引用它们:

\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

只需添加更多选项\captionsetupjustification=来指定理由。 singlelinecheck=0因为如果没有它,标题随后就会重新居中。

更多信息:标题文档,第 9-10 页

\newenvironment{code}{\captionsetup{type=listing,justification=RaggedRight,singlelinecheck=0}}{}```

相关内容