如何强制 \lstinline 添加换行符

如何强制 \lstinline 添加换行符

我的主 LaTeX 文档中有一段内联代码,我使用以下\lstinline命令将其包含在内:

\lstinline{template<class UIntType, UIntType a, UIntType c, UIntType m> class linear_congruential_engine;} 

结果输出如下所示,这确实不太理想:

在此处输入图片描述

我想要做的是实现一些更美观的东西,在第二类关键字之前引入换行符,下一行缩进 3 个字符。

以下是 MWE:

\documentclass{article}
\usepackage{listings}

\begin{document}
\lstset{language=C++,
        basicstyle=\small\ttfamily,
        emptylines=1,
        breaklines=true}
\lstset{numbers=left,tabsize=2}
\setcounter{secnumdepth}{1}
\lstMakeShortInline[language=C++,basicstyle=\ttfamily]`

\section{Linear Congruential Generators}
text text text text:
% I want to add a newline after the second class keyword and indent with 3 spaces so that "class linear_congruental_engine" appears indented on the next line
\noindent\lstinline{template<class UIntType, UIntType a, UIntType c, UIntType m> class linear_congruential_engine} 
text text text
\end{document}

这是一个相关问题:允许在 \lstinline 中的 C++ 运算符 ('::'、'->'、...) 处换行

答案1

我建议在两个手动分隔的语句之间插入适当的换行符\lstinline。也就是说,

...
\noindent\lstinline{template<class UIntType, UIntType a, UIntType c, UIntType m>} \par
\lstinline{class linear_congruential_engine}
...

\lstinline如果需要,您可能需要在第二个开头添加一些空格。

相关内容