我正在尝试创建一个新的\lstlisting
环境,其中包含一个代表标题的输入。我尝试执行以下操作,但收到“怀疑您忘记了 }”错误。有什么建议吗?
\lstnewenvironment{textfile}[1]
{
\lstset{frame=shadowbox, caption=#1}
}
{
}
以下是我尝试使用它的方法:
\documentclass[11pt, letterpaper]{article}
\usepackage{listings} % Used for code blocks
%% Format the captions
\usepackage{caption} % Caption package
\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]{ font={tt}, labelformat=empty}
\begin{document}
\begin{textfile}[results.txt]
Album of the year: 24K Magic - Bruno Mars
Song of the year: Despacito - Justin Bieber
Best Rap Song: HUMBLE. - Kendrick Lamar
\end{textfile}
\end{document}
答案1
根据定义(但在“MWE”中缺失),textfile
列表环境需要一个强制参数,但在文档中它被用一个可选[...]
参数调用——这是一个语法错误。
纠正使用即可{}
消除错误。
\documentclass[11pt, letterpaper]{article}
\usepackage{listings} % Used for code blocks
%% Format the captions
\usepackage{caption} % Caption package
\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]{ font={tt}, labelformat=empty}
\lstnewenvironment{textfile}[1]
{
\lstset{frame=shadowbox, caption=#1}
}
{
}
\begin{document}
\begin{textfile}{results.txt}
Album of the year: 24K Magic - Bruno Mars
Song of the year: Despacito - Justin Bieber
Best Rap Song: HUMBLE. - Kendrick Lamar
\end{textfile}
\end{document}