\lstinline!...!
我想知道and有什么区别或正确用法\lstinline{...}
?
我更喜欢,{}
因为我觉得它与其他命令更一致,但例如在下面的示例中括号不起作用所以我必须使用!!
。
\documentclass[]{article}
\usepackage{listings}
\begin{document}
This line is fine I can use \lstinline{inline listings with brackets}.
begin{center}
\begin{tabular}{ c l }
Example & Explanation \\ \hline
\lstinline!$#! & This works\\
\lstinline{$*} & But how come this doesn't? \\
\end{tabular}
\end{center}
\end{document}
!!
这是为什么?和 的经验法则是什么{}
?
答案1
它们并存的原因是
- 在里面
{...}
,LaTeX“特殊字符”被视为不同,所以你不能使用$
,因为它是数学模式的字符。 - 里面
!...!
,你可以使用任何东西,但!
。
至于什么是“好习惯”:随你便。我认为{}
不太容易混淆,会将其用作默认设置,!!
只在必要时切换到。另一方面,如果您的大多数条目都需要!!
,那么可能将其设为默认设置。
答案2
{}
我发现使用任意符号作为分隔符之间存在细微的差别:
当尝试使用mathescape
内部数学模式时,{}
行为不如预期,!!
工作原理:
\documentclass{article}
\usepackage{listings}
\usepackage{amsmath}
\begin{document}
With ``!!'': \lstinline[mathescape]!a$\beta$c! in math mode gives
\begin{align}
\lstinline[mathescape]!a$\beta$c!
\end{align}
With ``\{\}'': \lstinline[mathescape]{a$\beta$c} in math mode gives
\begin{align}
\lstinline[mathescape]{a$\beta$c}
\end{align}
\end{document}
给出(我可以在这里表示的数量)
使用“!!”:数学模式下的
a
β给出c
a
βc
(1)使用“{}”:数学模式下的
a
β给出c
β
ac
(2)
并且第一个align
块编译时没有错误,而第二个块没有。(Improper alphabetic constant
在Undefined control sequence
第 15 行。)因此,我没有看到{}
处理方式$$
不同,如前面的答案所述,但大括号和其他符号的行为显然不同(并且似乎大括号或 amsmath- 确实存在问题align
。这需要进一步的实验、阅读或了解源代码的人)。
否则,我主要因为方便而使用它们,我通常的方法是使用,{}
除非我的代码包含括号,在这种情况下我会使用!!
。