文章來源:LaTeX的一些宏包及細節知識http://blog.chinaunix.net/uid-20289887-id-1710422.html
ps:我的機器上軟體并不能直接運作通,下面“代碼”,感覺很多有用的東西,慢慢的邊用邊驗證吧!
以下是直接copy原文的。
LaTeX的一些宏包及細節知識
2007年01月12日 星期五 17:45
這篇是我一年前總結的一些細節知識,有些方法我現在也不怎麼使用了,但應該都是正确的。現貼上,給自己一份紀念,給網友一份小禮。^_^
documentclass[a4paper,11pt,onecolumn]{article}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
usepackage{CJK} % CJK 中文支援
usepackage{geometry} % 利用 geometry 可以很友善的設定頁面的大小。
usepackage{fancyhdr} % 用 fancyhdr 來設定頁眉和頁腳十分友善,而且可以在配合 CCT、CJK來設定中文的頁眉等。
usepackage{fancyvrb} % 用來得到一些加框的列舉環境
usepackage{fancybox} % 提供了 shadowbox, doublebox, ovalbox 和 Ovalbox 四個指令來生成不同形狀的盒子。
usepackage{amsmath,amsfonts,amssymb,graphicx} % EPS 圖檔支援
usepackage{subfigure} % 使用子圖形
usepackage{indentfirst} % 中文段落首行縮進
usepackage{bm} % 公式中的粗體字元(用指令oldsymbol)
usepackage{multicol} % 正文雙欄
usepackage{picins} % 圖檔嵌入段落宏包 比如照片
usepackage{abstract} % 2欄文檔,一欄摘要及關鍵字宏包
usepackage{anysize} % 對于像 book 等雙面版式來說,這裡的 left 和 right 再奇偶頁會互換。
usepackage{hyperref} % 文獻引用的宏包
usepackage{listings}lstloadlanguages{C,C++,matlab,mathematica} %程式清單關鍵字宏包
usepackage{color} % 可以産生有顔色的符号
usepackage{units} % 用于美化機關及分式
usepackage{tabularx} % 用于靈活地控制表格的生成
usepackage{mathrsfs} % 用于産生一種數學用的花體字
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 關于各個宏包的說明。
% CJK宏包中重要的指令為:
% CJKcaption{GB} 章節标題為中文
% CJKfamily{hei}{} %song, fs, kai, hei, songsl, fssl, kaisl, heisl
% CTEX中文套裝中定義了六種中文字型,分别是
% song, 宋體
% fs, 仿宋
% kai, 楷書
% hei, 黑體 %以上這四種字型都是可以用的,并且還有對應的斜體可用(it 即可)
% li, 隸書 %但看來這個是不能用的,怎樣解決我還不知道,還不懂怎樣安裝字型
% yuan, 幼圓 %這個也不能用
% geometry宏包重要的指令為:
% geometry{height=10in,a4paper,body={14cm,21cm}} %具體内容由自己改寫
% fancyhdr宏包重要的指令為:
% 如下面所用到的頁眉和頁腳的定義,很典型的
% fancyvrb宏包重要的指令為:
% 很多,應用方法很靈活。具體查閱其說明文檔
% fancybox宏包重要的指令為:
% shadowbox{}和doublebox{},括号裡面可以包含一個minipage環境,可以含一個圖檔
% amsmath,amsfonts,amssymb,graphicx宏包重要的指令為:
% 這是一組非常重要的包,最重要的幾個指令為:
% dfrac{}{} %用于顯示一種分數,我在一個自定義指令中用過一次
% includegraphics[width=,height=]{} %插入圖檔的一般指令
% 有其它的一些常用的符号
% subfigure宏包重要的指令為:
% subfigure[子标題]{includegraphics[width=]{}} %詳情見下
% indentfirst宏包重要的指令為:
% 用了這個宏包之後,隻要在後面連續打兩個回車,就可以開始一個新的段,非常友善
% multicol宏包重要的指令為:
% egin{multicols}{2}
% .......
% end{multicols}
% 把文字放在這個環境中,就可以使這些文字分成兩欄,非常好用。
% picins宏包重要的指令為:
% parpic(寬度,高度)(水準偏移,垂直偏移)[選項][位置]{圖形}
% abstract宏包重要的指令為:
% 這個宏包我還沒發現有有用的指令,但鑒于摘要的重要性,就保留它了。
% anysize宏包重要的指令為:
% marginsize{25mm}{25mm}{15mm}{15mm}
% 用了anysize宏包以後,就可以用它友善地定義兩面文檔的裝訂對齊問題了,它會自動切換
% 詳情見下
% hyperref宏包重要的指令為:
% 用了這個宏包之後,會發現所有的參考文獻和交叉引用都具有了超連結功能,太棒了!
% listings宏包重要的指令為:
% 指令有一兩個非常實用,主要是畫框和控制程式清單字型的選項
% 它有一個很重要的特性,是可以把各種語言的關鍵字突顯出來,很不錯
% units宏包重要的指令為:
% $
icefrac[mathcal]{A}{B}$
%
icefrac{A}{B}
%
icefrac[ extit]{A}{B}
% $unitfrac[#1]{#2}{#3}$
% $unit[#1]{it #2}$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%紙張版式的定義
%marginsize{25mm}{25mm}{15mm}{15mm} %用了anysize宏包以後,就可以用它友善地定義兩面文檔的裝訂對齊問題了,它會自動切換,即可代替下鄰兩句
geometry{a4paper, hmargin={3.7cm, 3.3cm}, vmargin={1.8cm, 2.5cm}}
enewcommand{aselinestretch}{1.5} %定義行間距
parindent 24pt %重新定義縮進長度
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 自定義指令區
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%定義字型及字号
ewcommand{song}{CJKfamily{song}} % 宋體
ewcommand{fs}{CJKfamily{fs}} % 仿宋體
ewcommand{kai}{CJKfamily{kai}} % 楷體
ewcommand{hei}{CJKfamily{hei}} % 黑體
ewcommand{chuhao}{fontsize{42pt}{aselineskip}selectfont}
ewcommand{xiaochuhao}{fontsize{36pt}{aselineskip}selectfont}
ewcommand{yihao}{fontsize{28pt}{aselineskip}selectfont}
ewcommand{erhao}{fontsize{21pt}{aselineskip}selectfont}
ewcommand{xiaoerhao}{fontsize{18pt}{aselineskip}selectfont}
ewcommand{sanhao}{fontsize{15.75pt}{aselineskip}selectfont}
ewcommand{sihao}{fontsize{14pt}{aselineskip}selectfont}
ewcommand{xiaosihao}{fontsize{12pt}{aselineskip}selectfont}
ewcommand{wuhao}{fontsize{10.5pt}{aselineskip}selectfont}
ewcommand{xiaowuhao}{fontsize{9pt}{aselineskip}selectfont}
ewcommand{liuhao}{fontsize{7.875pt}{aselineskip}selectfont}
ewcommand{qihao}{fontsize{5.25pt}{aselineskip}selectfont}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%下面這一塊程式用于去掉圖檔标題中的冒号
makeatletter
longdef@makecaption#1#2{%
vskipabovecaptionskip
sbox@tempboxa{#1quad #2}%
ifdim wd@tempboxa >hsize
#1quad #2par
else
global @minipagefalse
hb@xt@hsize{hfilox@tempboxahfil}%
fi
vskipelowcaptionskip}
makeatother
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%下面這一片區域用來定義程式清單環境中的樣式細節設定
lstset
{
frameround=tttt, % define the frame style
%frameshape={RYRYNYYYY}{yny}{yny}{RYRYNYYYY}
basicstyle=small, % print whole listing small
%keywordstyle=color{red}underbar, % underlined bold red keywords
%identifierstyle={}, % nothing happens to other identifiers
%commentstyle=color{white}, % white comments
%stringstyle= tfamily, % typewriter type for strings
%stringspaces=false % no special string spaces
}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 關于去掉首頁的頁碼的方法
% 在maketitle後加上 hispagestyle{empty}就可以了
% 想讓所有的頁都無頁碼,則如下操作
% makeatletter
% letps@plain=ps@empty
% makeatother
% pagestyle{empty}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 把proof環境中的關鍵字proof改為"證明"的方法
% proofname{證明}
% 或
% egin{proof}{證明}
% ........
% end{proof}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%這一塊用來美化行内公式時靠字太緊的現象
ewcommand{f}[1]{\,\,$#1$\,}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%這一塊用來美化輸出一行序列時的各元素項靠得太緊的情況
ewcommand{seq}[4]{{\,\,(#1\,\,\,}{#2\,\,\,}{#3\,\,\,}{#4)}}
ewcommand{se}[4]{{\,\,#1\,\,\,}{#2\,\,\,}{#3\,\,\,}{#4\,}}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 腳注的行号預設是從每一章開始計數的,現在要求從每一頁開始計數
% makeatletter@addtoreset{footnote}{page}
% makeatother
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 這一句用來把腳注的序号由*号改成阿拉伯數字,當然也可換成其它幾種類型之一
%
enewcommand{ hefootnote}{arabic{footnote}}
%
enewcommand{ hepage}{--
oman{page}--} %變化非常多,應用很靈活
% 編号方式一共有五種:arabic,
oman, Roman, alph, Alph
% 常用的計數器有 hepage<-->page, hechapter<-->chapter, heequation<-->equation
% hefootnote<-->footnote, hefigure<-->figure, hetable<-->table
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 此行代碼用來美化分式的輸出
%
ewcommand{ gfrac}[2]{
aisebox{0.1cm}{dfrac{
aisebox{-0.07cm}{it #1}}{
aisebox{-0.01cm}{it #2}}}\,}
% 另外,在有usepackage{units}的情況下,還可以用
icefrac[mathcal]{#1}{#2}進行左右型的分式輸出
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 此行使标号引用的形式更好看一點
%
ewcommand{
e}[1]{\,(
ef{#1})\,} %後面就用在要加參考文獻的地方
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 此行使文獻引用以上标形式顯示
ewcommand{supercite}[1]{ extsuperscript{cite{#1}}} %後面就用在要加參考文獻的地方
% 寫上supercite{自定的符号}即可
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 簡化列舉環境中的打字的繁瑣
%
ewcommand{ gitem}{vspace{-2.8mm}item}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 正文兩欄環境不允許float環境,比如 figure, table。是以重新定義
% figure,使之可以浮動到你想要的位置。table也同樣,把figure改為
% table就可以。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
ewenvironment{figurehere}
% {def@captype{figure}}
% {}
%makeatother
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 文章正文
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
egin{document}
egin{CJK*}{GBK}{song}
CJKcaption{GB}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 此行代碼用來美化漢字中數字及字母的輸出
%
ewcommand{m}[1]{\,#1\,}
% 另外,在有usepackage{units}的情況下,還可以用
icefrac{#1}{#2}進行左右型的分式輸出
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 此行代碼用來美化漢字中破折号的輸出
%
ewcommand{pzh}{\,-!!-\,} %破折号,在這裡定義的原因是-為全角符号,隻能在CJK聲明後才能識别
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 此行代碼用來美化漢字中小括号和中括号的輸出
%
ewcommand{xkh}[1]{!!(#1)!!}
%
ewcommand{zkh}[1]{!![#1]!!}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 這一塊用來記錄一些很細微的經驗
% *!縮小1/3個半角字元寬,\,增加1/3個半角字元寬,quad 增加一個全角字元寬,qquad 增加兩個全角字元寬
% *中文的破折号用“-!!-”來表示。
% *$Astackrec{1;/!/}{=}B$會得到使平行号騎在等号上面的效果
% *空心方塊如下表示:hfilllacksquare
% *要得到數學中的花體字,得usepackage{mathrsfs} 然後後面再用$mathscr{ABCD..}$引用
% *公式中用 ext{-}表示短橫線
% *用usepackage{letteine}使文章的英文第一個字母變大
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%