在撰写有关编程语言的文章时,有一些示例可以格式化为列表。这很有效,并且会产生漂亮的结果。有时我想在文本中进一步提及列表中使用的关键字,就像declare
我用粗体斜体表示的那样。
我试过了\lstinline
,但它似乎只是逐字逐句地打印其参数,而不应用与列表中相同的文本格式。是否有其他机制可以排版常规文本中的关键字或简短片段,同时遵循中指定的相同语言格式\lstset
?
\documentclass[11pt,letterpaper]{book}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\begin{document}
\lstset{frameround=fttt,language=SQL,numbers=left,breaklines=true}
\begin{lstlisting}[caption={SQL},label={lst:sql}]
declare @t table(
id int
)
\end{lstlisting}
The above Listing \ref{lst:sql} demonstrates how to use \textbf{\textit{declare}} statement to create a table variable.
\end{document}
答案1
是的,我建议您使用,\lstinline
以便应用相同的风格:
请注意,尽管出现格式相同,如果仔细观察,您会注意到中的关键字间距\lstinline
与略有不同listings
。
原因是,\lstinline
根据文档的默认设置是\lstinline
工作原理类似
\verb
,但尊重活动语言和样式。除非在可选参数中另有要求,否则这些列表使用灵活的列
因此,您需要使用可选参数更改列规范:
\lstinline[columns=fixed]{declare}
或者使用\lstMakeShortInline[columns=fixed]|
来定义一个特殊的字符(在本例中为垂直 unix 管道)并简单地使用|declare|
:
如果您不想指定,\basicstyle
您将获得:
概括:
[columns=fixed]
需要应用于\lstinline
。
代码: 指定\basicstyle
:
\documentclass[11pt,letterpaper]{book}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\usepackage{xcolor}
\lstset{
frameround=fttt,
language=SQL,
numbers=left,
breaklines=true,
keywordstyle=\color{blue}\bfseries,
basicstyle=\ttfamily\color{red},
numberstyle=\color{black}
}
\lstMakeShortInline[columns=fixed]|
\begin{document}
\begin{lstlisting}[caption={SQL},label={lst:sql}]
declare @t table(
id int
)
\end{lstlisting}
The above Listing \ref{lst:sql} demonstrates how to use |declare| statement to create a |table| variable.
\end{document}
代碼: 沒有\basicstyle
:
\documentclass[11pt,letterpaper]{book}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\usepackage{xcolor}
\begin{document}
\lstset{frameround=fttt,language=SQL,numbers=left,breaklines=true}
\lstMakeShortInline[columns=fixed]|
\begin{lstlisting}[caption={SQL},label={lst:sql}]
declare @t table(
id int
)
\end{lstlisting}
\noindent Using \verb+\lstinlne+:\par
The above Listing \ref{lst:sql} demonstrates how to use \lstinline[columns=fixed]{declare} statement to create a \lstinline{table} variable.
\noindent Using \verb+|+:\par
The above Listing \ref{lst:sql} demonstrates how to use |declare| statement to create a \lstinline{table} variable.
\end{document}