调整宽度和新环境

调整宽度和新环境

编辑:感谢您的评论。我已经编辑了问题以供使用,lstnewenvironment但它仍然给出相同的错误。我会在阅读手册时将问题保留在这里lstlistings

以下代码在文档中使用时对我有用:

\begin{adjustwidth*}{0pt}{-5cm}
\begin{lstlisting}
function test() { return (void *) test_func(a, b, 3); }
\end{lstlisting}
\end{adjustwidth*}

但是当我想为其创建自定义环境时,Overleaf 给出了错误

任务中止,没有找到合法的 \end。

梅威瑟:

\documentclass{article}
\usepackage[right=10cm]{geometry}    % Create a large right margin
\usepackage{listings}
\usepackage{changepage}

% Create a new environment for code samples that can extend into the outer margin.
\lstnewenvironment{config}{%
   \begin{adjustwidth*}{0pt}{-5cm}
}{%
   \end{adjustwidth*}
}

\begin{document}
\begin{config}
function test() { return (void *) test_func(a, b, 3); } asdfasdfa asdf
\end{config}
\end{document}

答案1

显然,changepage而且listings互相争斗。但是,您不需要changepage此应用程序。

\documentclass{article}
\usepackage[right=10cm]{geometry}    % Create a large right margin
\usepackage{listings}
\usepackage{lipsum}

% Create a new environment for code samples that can extend into the outer margin.
\lstnewenvironment{config}[1][]{\lstset{xrightmargin=-5cm,#1}}{}

\lstset{basicstyle=\ttfamily,columns=fullflexible} % so my eyes don't bleed

\begin{document}

\lipsum[1][1-4]

\begin{config}
function test() { return (void *) test_func(a, b, 3); } asdfasdfa asdf
\end{config}

\end{document}

您可以通过调用“\begin{config}[]”以通常的方式添加listings选项config

在此处输入图片描述

相关内容