LaTeX入门|(2)定制专属模板

看懂Latex模板(或定制专属模板)

一个简单的latex文档,我们只需要一个tex文件即可,但实际上我们在其中调用了文档类以及宏包。为了不在一个tex文件中将格式与正文堆在一起,我们可以自己设计专属的文档类(当然中间还是得使用人家的文档类),首先对tex中的文件类型进行说明:

文件类型功能
.cls模版类文件,自定义的文档类
.cfg模板配置文件,为文档类服务
.bst参考文献样式文件,自定义参考文献格式
.bib参考文献库
.tex主文件或其他文件
.sty模板宏包文件,自定义的宏包

迈出第一步,设计cls文件制作自己的文档类。自己设计的文档类中同样也需要使用其他文档类和宏包。要标注一个文档类和宏包的开头,可以使用

ProvidesClass{<文档类名>}[<发布信息>]
ProvidesPackage{<文档类名>}{<发布信息>}

其中发布信息的内容是年/月/日加上空格和进一步的描述。一般地,在此之前,使用命令\NeedsTeXFormat告诉编译器这个宏包是属于LaTeX的哪个版本的。当前LaTeX的版本是LaTeX2e,几乎所有的发行版本都是用这个,实例如下

\NeedsTeXFormat{LaTeX2e}
\ProvideClass{mymodel}[2020/03/06 My custom model for homework]

类文件需要包含很多格式信息和内部设置,以使得LaTeX正常工作,但是我们并不想人工地输入所有的东西。相反地,我们可以调用已有的类文件和宏包。在cls文件中,调用宏包不能再使用\usepackage而是使用\RequirePackage命令。这样,我们的文档类便有了这些已有文档类和宏包的功能了。

对与这些已有的文档类和宏包,我们可以设置使用其全部属性或者只使用其中某些。

%声明一个宏包或类的选项
\DeclareOption{
	\RequirePackage{htperref}
}

%使全部或指定的部分选项生效
\ProcessOptions
\ExecuteOptions{<选项列表>}

%使用命令在当前文档类或宏包末尾插入代码
\AtEndOfClass{<代码>}

此后,我们可以将格式设置在之后进行,包括但不限于标题格式、页眉页脚、封面、摘要页等。在cls文件中我们常用以下命令:

% def 为了书写方便 
\def \ctitle {\Large \bfseries 这是题目}

% 设置新命令
\newcommand {name}{num}{define}
%name为新的命令,num为参数个数, difine为新命令完成的操作,其中参数使用#1 #2表示,其#最大数应为num

%重新定义已有命令
\renewcommand{}{}
cls的目的是设置自己的文档类,因此会对已有的格式进行重新设置

我们希望文档类文件在设置好后用户尽量不再更改,但是其中有一些因人而异的内容,如封面的名字,我们希望其格式在cls文件中设置,而参数由tex问件输入,可以使用下面命令

%为了在tex中输入,我们可以定义一个命令,把需要设置的值作为参数
%而我们希望在cls文件中调用这个参数,可以给它def一下,作为简便写法
% cls文件中
\newcommand{\cname}[1]{\def\@cname{#1}}   
{\textbf{\@cname}}

% tex文件中
\cname{张三}

再说说cfg文件,它是cls的配置文件,因此可以在其中定义一些符号等,在cls文件中输入后即可使用,如

%cfg
\def \cover@cname{学生姓名:}
\def \cover@cmajor{学科专业:}
\def \cover@cinstitute{所在单位:}
\endinput

%cls
\begin{tabular}{l@{\extracolsep{0.2em}}c}
	{\songti \bfseries \cover@cname}    & \fillinblank{23em}{\textbf{\@cname}}\\
	{\songti \bfseries \cover@cmajor}     & \fillinblank{23em}{\textbf{\@cmajor}}\\
	{\songti \bfseries \cover@cinstitute}    & \fillinblank{23em}{\textbf{\@cinstitute}}
\end{tabular}
\AtEndOfClass{\input{DLreport.cfg}}
\endinput

最后在tex文件中使用\documentclass{mymodel}即可加载设置,实现干湿分离。当然,记得为正文和图片分别建一个文件夹,这样更美观。
比较复杂的模板如国科大的论文模板,初学者看北京交通大学的论文模板更容易理解,我为了深度学习作业设置了简单模板(pwe3)如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考

[1] 一份不太短的latex教程
[2] 写一个latex类文件
[3] 北交大论文模板

  • 7
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值