我正在使用 lstlisting 显示一些 ProLog 代码,在此代码中我需要在另一个后面添加 5 个破折号:-----
,但它们一直组合成一行,这不是我想要的。
我尝试使用\lstinline
和\verb
,但似乎这些在 lstlisting 中是不允许的,-{}-{}-{}-{}-{}
也不起作用因为它{}
也只会显示。
在 lstlisting 中执行此操作的正确方法是什么?
我目前有这样的东西:
\documentclass[11pt,a4paper]{report}
\usepackage[a4paper,left=3.5cm, right=2.5cm, top=3.5cm, bottom=3.5cm]{geometry}
\usepackage[dutch]{babel}
\usepackage{graphicx}
\usepackage[latin1]{inputenc}
\usepackage{listings}
\usepackage{verbatim} % weergeven van code, commando's, ...
\usepackage{hyperref} % maak PDF van de thesis navigeerbaar
\usepackage{url} % URL's invoegen in tekst met behulp van \url{http://}
\usepackage[small,bf,hang]{caption} % om de captions wat te verbeteren
\usepackage[final]{pdfpages} % gebruikt voor het invoegen van het artikel in pdf-formaat
\usepackage{pslatex}
\usepackage{sectsty}
\usepackage{float}
\usepackage{amsmath}
\usepackage{mdwlist}
\usepackage{paralist}
\begin{document}
\selectlanguage{dutch}
\definecolor{dkgreen}{rgb}{0,0.5,0}
\lstset{language=Prolog, commentstyle=\color{dkgreen}}
\begin{lstlisting}[frame=LR]
% Bunch of prolog code that displays fine
evidence(burglary,false).
evidence(alarm,false).
-----
evidence(earthquake,false).
evidence(alarm,true).
evidence(burglary,true).
-----
evidence(burglary,false).
\end{lstlisting}
\end{document}
但破折号并不像上面那样显示。
答案1
防止 TeX “连接”连续连字符的一个技巧是滥用该literate
选项,将每个-
字符替换为......其本身!
\documentclass{report}
\usepackage{listings}
\lstset{
language = Prolog,
literate = {-}{-}1, % <------ trick!
}
\begin{document}
\begin{lstlisting}
% Bunch of prolog code that displays fine
evidence(burglary,false).
evidence(alarm,false).
-----
evidence(earthquake,false).
evidence(alarm,true).
evidence(burglary,true).
-----
evidence(burglary,false).
\end{lstlisting}
\end{document}