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] 北交大论文模板
LaTeX入门|(2)定制专属模板相关推荐
- LaTeX入门系列之四(LaTeX模板)
[color=orange][size=x-large]下面是在网上收集到的国内外部分大学及期刊的LaTeX模板,分享一下!请大家下载使用,使用前请先核对是否适合最新格式![/size][/color ...
- LaTeX入门教程 Elseiver模板使用
LaTeX入门教程 & Elseiver模板使用 背景 最近准备向Elseiver期刊投稿,而官网仅提供了LaTeX写作模板,虽然内心有一万个不愿意使用LaTex(是的-我不会用==) ...
- LaTeX入门|(1)从Word到LaTeX:LateX排版常用指令
从word的需要到latex的使用 写在前面 学习latex之前大多数使用word的,甚至精通word排版的,对于latex这种使用代码编程进行论文排版或ppt制作就显得比较费劲,比如平时很简单的居中 ...
- grunt从入门到自定义项目模板
文章还可在我的github上找到,排版更友好一点:grunt从入门到自定义项目模板 一.Grunt入门介绍 1. Grunt是神马 基于任务的命令行构建工具(针对JavaScript项目) 链接:ht ...
- latex 中文正文双栏模板_LaTeX学习指南(一)
关于 的入门,可以参考: <LaTeX环境配置>,和 <LaTeX入门(一)>当然,我不打算继续从 入门(二)开始写起,关于这个新的专题: 学习指南,将会一直写下去,与 R ...
- 学术写作利器——LaTeX入门笔记整理(不定期更新,附加使用心得)
LaTeX入门教程(上) 比Word更适合学术写作的编纂语言 Credit:讲座是敝系的几个技术宅办的,作者只负责记录和整理.后面的更新是个人心得. 写这篇日志的初衷是小圈子分享和个人心得记录,适合完 ...
- 一份其实很短的 LaTeX 入门文档
一份其实很短的 LaTeX 入门文档 优雅的 LaTeX 有很多 Geeks 或者 LaTeX's Fanatical Fans 过分地强调了 LaTeX 的一些并非重点的特性,以至于很多初学者会觉得 ...
- LaTeX 入门-语法
LaTeX 入门 - 语法 一.使用 LaTeX 优点 这里首先说明,并不是因为 Word 排版不好才使用 LaTeX.之所以 Word 排版不美观,很大一部分是因为上手太简单,很少有人在使用 Wor ...
- Latex入门篇之论文排版
Latex入门篇 1. 概述 1.1 Latex作用 1.2 初识Latex 2. Latex模板的使用 3. Latex排版的正经讲解 3.1 关于tex File文件 3.2 关于普通文本 3.3 ...
最新文章
- LeetCode中等题之最优除法
- 网站服务器可以用虚拟主机吗,做网站虚拟主机可以用服务器吗
- 我和美国 AI 博士聊了聊:2020 年,这件事比存钱更重要!
- 解决Kali Linux没有声音
- memcache nginx
- sql distinct多个字段_数据分析|记一“道”难忘的SQL面试题...
- 第十四题: 以下代码的输出结果是?
- 【转】细说.NET中的多线程 (四 使用锁进行同步)
- luoguP1463:反素数ant(打表心得☆)
- 程序转制作人——游戏设计课程导论
- CentOS7安装KVM、KVM安装CentOS7
- DayDayUp:2021年的自我总结
- mfc 固定编辑框输入上限和下限_S7200smart的模拟量输入输出
- NameNode DataNode
- python开发酷q插件gui_Python酷Q应用开发
- CMDN Club每周精选(第2期)
- 数据透视表mysql_MySQL查询和数据透视表
- android studio超级玛丽源码,VR版NES模拟器来了,超级玛丽、魂斗罗都支持
- 安装wordpress时Error establishing a database connection
- 引导区坏 计算机无法启动,小白告诉你Win10无法正常启动修复引导文件教程