利用lstlistings排版IDL程序

LaTeX利用lstlistings排版IDL程序

載入宏包

由於我是mac系統所以在可選參數加了fontset

\documentclass[UTF8,fontset = macnew] {ctexart} %mac字體設置
\usepackage{listings}
\usepackage{xcolor}
\usepackage{framed}

listings的宏包支持多種語言,具體可以見下圖,而xcolor主要是用來設置一些字體顏色或者邊框等顏色,framed的話主要是爲了避免程序過長超過一頁.

在這裏插入圖片描述
這裏面是lstlistings支持的語言.需要的時候只需要在可選參數裏設置langauage = 即可
在這裏插入圖片描述
由於很多時候代碼太長,會導致超出一頁,邊框無法封閉,在lstlistings的doc裏面說的需要使用framed宏包進行封閉.
xcolor的話只需要定義自己需要的顏色.一些基本的顏色如圖
在這裏插入圖片描述

\lstset{numbers=left, 
 numberstyle=\tiny,
 stepnumber=1}

這是對lst環境進行全局的設置,如果設置則會對每個環境進行設置,但是如果在後續的可選參數進行修改的話仍會被覆蓋(沒試過但是應該跟tikz差不多)
面的話主要是設置旁邊的代碼行數顯示進行設置number顯示在左邊,stepnumber就是步距…

\begin{lstlisting}[language=IDL,
		firstnumber=1,		%行標開始字數
		frame = single,		%邊框,有single等
		xrightmargin=2cm,					
		framexrightmargin = 3cm,
		breaklines = true,   	%如果過長自動斷行 
		keywordstyle=\color{red},		%關鍵字顏色
		commentstyle=\color{brown},		%註釋顏色
		ndkeywordstyle=\corlor{yellow}, 
		stringstyle = \color{blue},	%字符串顏色
		basicstyle=\color{teal},  %基本字體的顏色 
		rulesepcolor=\color{blue},
		numbersep=3.2pt,   %行數顯示距離邊框的距離
		]
 ;coding = GBK
 ;to draw classified graphics and colorbar 
 pro READCLASS
 file = 'C:\Users\黃\Desktop\classimage.dat'
 data = make_array(5963,5988,type = 1)
 ioenr,lun,file,/get_lun
 readu,lun,data 
 lun_lun,lun
 data = congird(data,596,599)
 window,1,xsize = 800,ysize=700
 device, decomposed = 0
 lookup = [255,255,255,90,178,115,233,255, 
 190,240,240,240,151,219,242,214,133,137]
 lookup = reform(lookup, 3, 6)
 tvlct,lookup[0,*],lookup[1,*],lookup[2,*] 
 erase,0
 tv,data,50,50,order = 1
 colbar = rebin(indgen(1, 6),40,240) 
 tv,colbar,650,50
 loadct,0
 shadowdata = bytarr(3,240)+180 
 tv,shadowdata,690,50
 bottomshad = bytarr(40,3)+180 
 tv,bottomshad,653,47
 classnames = ['background','forest','agriculture','city','water','other']
 xpos = 705+intarr(6)
 ypos = 60+indgen(6)*40
 xyouts,xpos,ypos,classnames,color=0,/device
 end
\end{lstlisting}

這裏我都寫了一些註釋,需要注意的是這裏的鎖進是非常嚴格的.你可以先全部縮進之後然後再空格設置(我還沒想到好方法).
這個是沒有超出一頁邊框的程序效果如圖.在這裏插入圖片描述
具體的還是需要多讀讀lstlistings的documentation的.有許多的參數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章