我正在使用LaTeX listings包,并且我通过以下方式对代码的每第五行进行编号:
\lstset{
numbers=left,
stepnumber=5,
firstnumber=1,
numberfirstline=true
}
Run Code Online (Sandbox Code Playgroud)
现在因为numberfirstline=true在这些设置中,除了五的倍数之外,每个列表的第一行也被编号,但我想让代码的最后一行也被编号.因此,如果我有17行代码的列表,我想看到的行数是1 5 10 15 17.
有什么方法可以让我的列表表现得像这样吗?我试过了numberlastline=true,但这似乎并不存在.
编辑:我更喜欢使用它\lstinputlisting,而不必修改以这种方式导入的代码.
我希望在我的OCaml输入文件的开头有几行代码,以便记住最后一次输入的表达式,名称为it.即,我想拥有:
# 3 + 4;;
val it : int = 7
# it;;
val it : int = 7
# let foo = 42;;
val foo : int = 42
# it + 130;;
val it : int = 137
#
Run Code Online (Sandbox Code Playgroud)
但我不希望建立一个自定义的顶层或使用camlp5或任何幻想这样的.
我目前做的是(在OCaml版本4.02.3中,我不知道为什么我有那个版本;但我希望确切的版本没关系?)如下:
#directory "+compiler-libs";;
#load "/opt/src/ocaml-4.02.3/utils/warnings.cmo";;
#load "/opt/src/ocaml-4.02.3/parsing/location.cmo";;
let convert_phrase x =
match x with
| Parsetree.Ptop_def
[{Parsetree.pstr_desc = Parsetree.Pstr_eval (e, a)}] ->
Parsetree.Ptop_def
([{Parsetree.pstr_desc =
Parsetree.Pstr_value (Asttypes.Nonrecursive,
[{Parsetree.pvb_pat =
{Parsetree.ppat_desc =
Parsetree.Ppat_var …Run Code Online (Sandbox Code Playgroud)