上次写实验报告的时候从网上剽来一份代码高亮的配置,其中有一句 escapeinside=**
,当时不知道是什么意思。这次写 Linux 实验的时候同样使用了这份高亮配置,结果吞掉了一些符号,记录一下这个坑。
escapeinside
的意思是添加注释暂时离开 listings
的环境,也就是说编译之后不会在代码块中出现,例如 escapeinside={(*}{*)}
就表示这个「暂时离开」的部分以 (*
开头,以 *)
结尾:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| \begin{lstlisting}[language={[x86masm]Assembler}] (* 这里是\LaTeX *) ; function: to compare information CMP_INFO PROC MOV AL, U_BUF+1 CMP AL, U_LEN JNE S_NEQ MOV AL, P_CNT CMP AL, P_LEN JNE S_NEQ MOV SI, OFFSET U_BUF+2 MOV DI, OFFSET U_ORI CLD MOV CL, U_LEN MOV CH, 0 REPE CMPSB JNE S_NEQ MOV SI, OFFSET P_BUF MOV DI, OFFSET P_ORI CLD MOV CL, P_LEN MOV CH, 0 REPE CMPSB JNE S_NEQ MOV DX, OFFSET SUC CALL PRT_STR RET S_NEQ: MOV DX, OFFSET REJ CALL PRT_STR RET CMP_INFO ENDP \end{lstlisting}
|
这是输出结果是这样的:
可以看到被 (*
和 *)
包裹的内容是以 LaTeX 的形式编译的。