天天看點

LaTeX的一些宏包及細節知識

文章來源: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}使文章的英文第一個字母變大

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%