由于用户定义 \lstdefinelanguage 而导致 \lstlisting 的宽度改变

由于用户定义 \lstdefinelanguage 而导致 \lstlisting 的宽度改变

我使用 \lstdefinelanguage 为我想添加到文件中的某些 JSON 块创建格式,我使用了该问题答案中的格式:

如何改进 JSON 文件的列表显示?

因此我创建了自己的 \lstdefinelanguage,如下所示:

\lstdefinelanguage{json}{
    basicstyle=\normalfont\ttfamily,
    numbers=left,
    numberstyle=\scriptsize,
    stepnumber=1,
    numbersep=8pt,
    showstringspaces=false,
    breaklines=true,
    frame=lines,
    backgroundcolor=\color{background},
    literate=
     *{0}{{{\color{numb}0}}}{1}
      {1}{{{\color{numb}1}}}{1}
      {2}{{{\color{numb}2}}}{1}
      {3}{{{\color{numb}3}}}{1}
      {4}{{{\color{numb}4}}}{1}
      {5}{{{\color{numb}5}}}{1}
      {6}{{{\color{numb}6}}}{1}
      {7}{{{\color{numb}7}}}{1}
      {8}{{{\color{numb}8}}}{1}
      {9}{{{\color{numb}9}}}{1}
      {:}{{{\color{punct}{:}}}}{1}
      {,}{{{\color{punct}{,}}}}{1}
      {\{}{{{\color{delim}{\{}}}}{1}
      {\}}{{{\color{delim}{\}}}}}{1}
      {[}{{{\color{delim}{[}}}}{1}
      {]}{{{\color{delim}{]}}}}{1},
}

像这样使用它:

\begin{figure}[htbp]
    \centering
    \begin{lstlisting}[language=json][firstnumber=1]
    {
      "type": "auth-request",
      "content": {
        "user": "agentA1",
        "pw": "1"
      }
    }
    \end{lstlisting}
    \caption{Example of an AUTH-REQUEST message.}
    \label{fig:auth-request}
\end{figure}

这将给出以下文档:

在此处输入图片描述

所以对于我的问题,改变此列表宽度的最佳方法是什么?如果可能的话,我想让它达到 80% 左右\textwidth。但如果我这样做:

\begin{lstlisting}[language=json][firstnumber=1, linewidth=.8\textwidth]
        {
          "type": "auth-request",
          "content": {
            "user": "agentA1",
            "pw": "1"
          }
        }
 \end{lstlisting}

我收到一个警告,即:Package Listings Warning: Text dropped after begin of listing。它实际上并没有改变文档中列表的外观。

那么如何更改特定列表的宽度?

相关内容