更新: 这破模板是初学TeX时写的, 强烈不推荐使用, 问题很多, 也很ugly. 目前推荐使用ConTeXt或XeTeX+ctex文档类自己写模板.

为了方便后来的学弟学妹以及增进TeX技术交流(这句显得够假够客套,不就是为了方便x嘛,下次注意),特地把这次做C++程序设计实践的报告TeX模板释出。此模板已经包含了格式和大致的内容框架,并且做上了很详细的注释。OK,不多说,只解释一点,这个模板不包含标题页,因为你们可以用更专业的平面设 计工具(CorelDraw、Illustrator、PageMaker等)做出更优质的封面。这里,不得不再提一句,就像《LaTeX Notes》作者包老师在跋中所述,你把排版弄的再漂亮,也成不了《红楼梦》。因为《红楼梦》即使是手抄本,也依然是不朽的名著。一定要重视内容的质量 (可以扯远到一个专门的技术叫做Quality Control),就像Google的PageRank所看重的一样。
ok,闪人做事去。
% ---------------------------------------------------------------- documentclass[a4paper,oneside,openany]{article} %A4纸,单面打印,文章。 usepackage{ccmap} %使生成的PDF文件中的文字可以复制等 usepackage{CJK,CJKnumb,CJKulem} usepackage{CJKpunct} usepackage[indentafter,pagestyles]{titlesec} %使用titlesec宏包自定义页眉页脚和章节名格式 usepackage{indentifirst} %解决缩进问题 usepackage{times} %正文的英文部分使用Times New Roman字体 usepackage{graphicx,color} %黑白打印的话这里不引用color宏包也可 usepackage{listings} defpgfsysdriver{pgfsys-dvipdfmx.def} usepackage{tikz} %这两行是画程序结构框图时需要用到的PGF的声明 % ---------------------------------------------------------------- begin{CJK}{GBK}{com} CJKindent CJKtilde CJKcaption{GB} newcommand{hei}{CJKfamily{hei}} newcommand{song}{CJKfamily{song}} newcommand{fs}{CJKfamily{fs}} %定义要使用的字体,这里分别是黑体,宋体,仿宋。 newcommand{sihao}{fontsize{14pt}{baselineskip}selectfont} newcommand{xiaosi}{fontsize{12pt}{14pt}selectfont} newcommand{wuhao}{fontsize{10.5pt}{12.6pt}selectfont} %定义要使用的字号,四号,小四,五号。 newpagestyle{main} {sethead[heismall C++程序设计实践报告][][heismallsectiontitle] {heismall C++程序设计实践报告}{}{heismallsectiontitle} setfoot{}{smallbfseriesthepage}{}headrule} pagestyle{main} %自定义的页眉页脚设置 titleformat{section}[hang]{centeringLARGEbfseries}{sectionname}{1em}{} renewcommand{sectionname}{第CJKnumber{thesection}节} %设置章节前面那个第xxx章的格式。由于是报告,我就不写第xxx章了,而写第xx节。 titlelabel{thetitlequad} lstset{language=C++} lstset{basicstyle={ttfamily}} lstset{breaklines} lstset{extendedchars=false} %最后引用C++源码时用这个listing宏包,可以自动实现一些如等宽字体和加粗的调整。不过他的中英混排有点问题,切记切记,一定要输出看效果。 tikzset{box/.style={rectangle,rounded corners=6pt,minimum width=50pt,minimum height=20pt,inner sep=6pt,draw=black,thick,fill=lightgray}} %PGF画结构框图的那个框的属性 renewcommandrefname{参考文献} %更改默认的“Reference”为“参考文献”四个字 begin{document} %注意我的封面是单独彩印的,所以这里我不做封面,直接生成目录了。 {wuhao tableofcontents } thispagestyle{empty} clearpage % ---------------------------------------------------------------- section{问题重述} % ------------------------------------------------------ {wuhao 编写一个xxx程序。具体要求如下: begin{enumerate} item 换成你自己的内容 %自己加item,自己发挥 end{enumerate} } clearpage % ---------------------------------------------------------------- section{设计方案} % ---------------------------------------------------------------- subsection{设计目的} {wuhao 你自己的内容 } subsection{方案概述} {wuhao 你自己的内容 } subsection{方案评价} {heisihao 优点:} {wuhao begin{itemize} item 换成你自己的内容 %自己加item,自己发挥 end{itemize} } {heisihao 不足:} {wuhao begin{itemize} item 换成你自己的内容 %自己加item,自己发挥 end{itemize} } clearpage % ---------------------------------------------------------------- section{总体设计} % ---------------------------------------------------------------- subsection{程序结构框图} vspace*{2cm} begin{tikzpicture} node[box] (round1) at(-2,0) {周围的模块}; node[box] (center) at(3,0) {中央的模块}; node[box] (round2) at(8,0) {周围的模块}; node[box] (round3) at(0.5,4.325) {周围的模块}; node[box] (round4) at(5.5,4.325) {周围的模块}; node[box] (round5) at(0.5,-4.325) {周围的模块}; node[box] (round6) at(5.5,-4.325) {周围的模块}; draw[->] (center)--(round1); draw[->] (center)--(round2); draw[->] (center)--(round3); draw[->] (center)--(round4); draw[->] (center)--(round5); draw[->] (center)--(round6); end{tikzpicture} subsection{程序流程图} {wuhao 下图即为此程序的程序流程图。 } begin{figure}[htbp] %引用图形这段代码要自己看引用的效果酌情修改 centering includegraphics[bb=0 0 480 720]{你自己做的流程图.png} end{figure} clearpage % ---------------------------------------------------------------- section{详细实现} % ---------------------------------------------------------------- {wuhao 你自己的内容 } subsection{你自己的内容.cpp} subsubsection{功能} {wuhao 你自己的内容 } subsubsection{简要参数说明} {wuhao 你自己的内容 } subsubsection{函数调用关系} {wuhao 你自己的内容 } clearpage % ---------------------------------------------------------------- section{调试与测试} % ---------------------------------------------------------------- subsection{调试方法} {wuhao 你自己的内容 } subsection{测试结果} {wuhao 你自己的内容 } subsection{主要问题} {wuhao 你自己的内容 } subsection{解决措施} {wuhao 你自己的内容 } clearpage % ---------------------------------------------------------------- section{源代码清单} % ---------------------------------------------------------------- subsection{你自己的内容.cpp} begin{lstlisting}[stringstyle=color{black},frame=single,breaklines=true] / *------------------------------------------------------ * 你自己的内容.cpp * 说明:你自己的内容 *------------------------------------------------------ */ //要包含的头文件 #include <windows.h> end{lstlisting} % ---------------------------------------------------------------- nocite{*} bibliographystyle{unsrt} bibliography{参考文献列表示例} end{document} end{CJK} % ---------------------------------------------------------------- % 参考文献列表示例.bib % @BOOK{bib1, % title = {C++程序设计题解与上机指导}, % publisher = {北京:清华大学出版社}, % year = {2005}, % author = {谭浩强} % } % @BOOK{bib2, % title = {C++精髓软件工程方法}, % publisher = {机械工业出版社}, % year = {2002}, % author = {(美)~Victor Shtern} % } |
(本文最初发表于xiaonei.com)