自定义类
?
LaTeX中自定义类与自定义宏包几乎是一样的,区别就是扩展名,类文件的扩展名是cls,宏包文件的扩展名是sty。在文件内容格式上也差不多,类文件中内容的样式举例如下:
\NeedsTeXFormat{LaTeX2e}%
\ProvidesClass{lua-general}[2019/01/01]%
%
\LoadClass{book}% 载入book类
%
% 需求的宏包
\RequirePackage{geometry}% 用于页面设置
\RequirePackage{tikz}% 绘图包
\RequirePackage{xcolor}% 色彩包
...
上面的区别就是\ProvidesClass命令,宏包中是\ProvidesPackage,但好像并没有区别,我两个都换着试过,都没问题。
?
宏包中加载库的问题
????????通常情况下,我们在使用\usepackage命令时,有时会用中括号把相关的一些库载入进来,例如:
\usepackage[dvipsnames, svgnames, x11names]{xcolor}% 色彩支持
????????这种方式在宏包与类的定义文件中就不能使用,会报错。例如我在自定义的宏包中使用命令\RequirePackage{xcolor}包含了xcolor宏包,这时在调用文件中使用扩展的色彩名称时会报错,即使在调用文件中加入\usepackage命令也不行。解决办法是在调用文件中把这些库加入进去,例如:
\documentclass[dvipsnames, svgnames, x11names]{lua-general}%
?
加载其他类的方法
????????上面的代码示例中已经有了,就是用命令:\LoadClass{}。注意LaTeX中是大小写敏感的。上面的例子可以视为是在标准类book的基础上扩展出来的类。此外,要注意的是每一份文件只能调用一个类,换句话说就是\documentclass命令只能用一次,不像宏包可以多项调用。所以才需要使用\LoadClass命令去载入其他类。
真希望51CTO博客能够支持LaTeX。
原文地址:http://blog.51cto.com/14013986/2339199
时间: 2024-09-30 23:05:05