删除列表中反斜杠后的空格

删除列表中反斜杠后的空格

我正在尝试在列表中编写一些代码,但是,每个反斜杠都会在其右侧添加一个空格,我试图保持原样。我怎么才能删除它们呢?

\begin{lstlisting}[showstringspaces=false]
1   package org.jmlspecs.samples.jmlrefman
2
3   public abstract class IntHeap{
4
5   //@ public model non_null int[] elements;
6
7   /*@ public normal_behaviour
8     @    requires elements.length >= 1;
9     @    assignable \nothing
10    @    ensures \result 
11    @    == (\max int j;
12    @            0 <= j && j < elements.length;
13    @            elements[j]);
14    @*/
15   public abstract /*@ pure @*/ int largest();
16
17   //@ ensures \result == elements.length;
18   public abstract /*@ pure @*/ int size();
19   };
\end{lstlisting}

例如,第 9 行显示为

9 @ assignable \ nothing

代替

9 @ assignable \nothing

编辑:被告知添加一个最小的工作示例,因此这里有一个:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\usepackage[english]{babel}
\usepackage{multicol}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{comment}
\usepackage{titlesec}
\usepackage{parskip}
\usepackage{fontenc}
\usepackage{geometry}
\setlength{\columnsep}{1cm}
\usepackage{listings}

\begin{document}


\title{Brief Article}
\author{The Author}

\maketitle

\section{example}

\begin{lstlisting}
1 public class BubbleSort {    
2   /*@
3     @ requires arr != null; 
4     @ ensures \forall int k; 0 <= k && k < arr.length -1;
5     @           arr[k] > arr[k+1];
6     @*/
7  public static void sort(int [] arr) {        
8    for (int i = 0; i < arr.length; i++) {
9      for (int j = arr.length-1; j > i; j--) {
10       if (arr[j-1] < arr[j]) {
11          int tmp = arr[j];
12        arr[j] = arr[j-1];
13      arr[j-1] = tmp;
14           }
15       }
16     }
17   }
18 }
\end{lstlisting}

\end{document}

答案1

欢迎使用 TeX.SX!您在代码中看到的并不是真正的空格,但这是该listings包将所有字符放置在每列 0.6em 宽的列中的结果。这实际上是该包的一个功能。

您可能需要咨询listings包装手册并尝试以下不同的选项(一起或单独):

  • 将选项设置basewidth为小于 0.6em 的值,
  • 将选项设置columnsflexiblefullflexible
  • 设置选项basicstyle{\ttfamily}使用等宽字体系列。

顺便说一下,该包可以自动添加行号。例如,listings只需添加选项即可。numbers=left

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{listings}

\begin{document}

\begin{lstlisting}[columns=fixed, basewidth=0.5em, basicstyle={\ttfamily}]  % set options here
1 public class BubbleSort {    
2   /*@
3     @ requires arr != null; 
4     @ ensures \forall int k; 0 <= k && k < arr.length -1;
5     @           arr[k] > arr[k+1];
6     @*/
7  public static void sort(int [] arr) {        
8    for (int i = 0; i < arr.length; i++) {
9      for (int j = arr.length-1; j > i; j--) {
10       if (arr[j-1] < arr[j]) {
11          int tmp = arr[j];
12        arr[j] = arr[j-1];
13      arr[j-1] = tmp;
14           }
15       }
16     }
17   }
18 }
\end{lstlisting}

\end{document}

在此处输入图片描述

相关内容