可以试试这组参数
xleftmargin=.35em,%
xrightmargin=.35em,%
但这是要在geometry
宏包不修改左右页面相对距离以及指定文档类的oneside
选项的前提下的(如果修改了,这组参数也要做相应修改):
\documentclass[oneside]{ctexbook}
\usepackage{zhlipsum}
\usepackage[showframe]{geometry}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{titlesec}
\titleformat*{\section}{\makebox[\textwidth][c]}
\titleformat{\section}[frame]
{\color{magenta}}
{\centering\footnotesize\enspace 节 \thesection\enspace}
{8pt}
{\bfseries\filcenter\songti}
[\vspace{-10pt}]
\usepackage{listings}
\usepackage{xcolor}
\lstdefinelanguage{VBA}{
morekeywords={Sub, End, Dim, As, Set, Range, Worksheet, MsgBox, If, Then, Else, For, Next, Do, While, Loop, Integer, String},
sensitive=true,
morecomment=[l]{'},
morestring=[b]{"},
keywordstyle=\color[HTML]{0184bc},
stringstyle=\color[HTML]{41a977},
basicstyle=\small\ttfamily,
keepspaces=true,
numbers=left,
columns=fullflexible,
xleftmargin=.35em,%
xrightmargin=.35em,%
}
\lstset{
language=VBA,
frame=single,
linewidth=\dimexpr\textwidth\relax,
escapeinside=``
}
\begin{document}
\section{初步}
\begin{lstlisting}[caption={生成斐波那契数列},label={code:fib}]
'To generate the Fib Sequence
Sub GenerateFibonacci()
\end{lstlisting}
\end{document}
问 关于lstlisting代码块文本框宽度的控制