当代码位于单独的文件中时,我不知道如何使用 listings 包修复双引号字符 ('"')。Listing 将其作为字符串的开头,但事实并非如此。
非常感谢 Gustavo Mezzetti 提供的 moredelim/morestring 选项的答案。不幸的是,即使这些修复在 latex 文件中运行良好,当我从单独的文件中包含代码时,morestring 和 moredelim 修复也不起作用。
下面是展示该问题的新最小示例:
\documentclass[varwidth]{standalone}
\usepackage{listings}
\usepackage{color}
\lstset{
language=bash,
stringstyle=\color{red},
commentstyle=\color{green},
showspaces=false,
showstringspaces=false,
morestring=[b]',
}
\begin{document}
This is working fine thanks to Gustavo Mezzetti answer's and the morestring=[b]' option :
\begin{lstlisting}
file_name=$(cut -d '"' -f 2)
# This shoud be a comment
echo "This should be a String"
\end{lstlisting}
This isn't working anymore when the same code is included from a separated file :
\lstinputlisting[language=Bash, morestring{[b]'}]{test.sh}
\end{document}
使用以下分离文件“test.sh”:
file_name=$(cut -d '"' -f 2)
# This shoud be a comment
echo "This should be a String"
结果是 :
谢谢你的帮助 !
请注意,这个问题紧接着这个问题: 列表中的双引号字符 ('"') 会产生问题
答案1
好的,我明白了:我只需要更换
\lstinputlisting[language=Bash, morestring{[b]'}]{test.sh}
经过
\lstinputlisting{test.sh}
我猜想这里的问题在于列表选项的冗余;)