首页 >

sty文件编辑教程 – CSS – 前端,css 按钮浮动在图片上

css设置滚动条的位置,css月牙效果,css下拉和轮播,css 点击ul出现li,css元素calc无法使用,css隔行变色选择器,css 按钮浮动在图片上sty文件编辑教程 - CSS - 前端,css 按钮浮动在图片上

文档编写的介绍从第三部分开始,文档的命令从第四部分开始,参数的传递从第五部分开始。

1.sty和cls文档简介

a.可以使用docstrip生成sty和cls文件

b.如果命令可以在其他tex文件中使用,应该写在sty文件中。

如果命令(排版格式)只适合某一文档,应该写在cls文件中。

2.编写sty和cls

a.tex命令包含三种格式

tex作者使用的,即一般tex文件包含的命令,

sty和cls作者使用的,如\RequirePackge,

tex内部命令,如\@temcnta。

您不可以在tex文件中使用后两种命令。

b.鲁棒性

为了增强文档鲁棒性,使用较为严谨的命令。

文件加载命令:

\LoadClass{cls file name} %加载cls文件

\LoadClassWithOptions

\RequirePackage{sty file name} %加载所需要的包

\RequirePackageWithOptions

\input{file name}

不建议使用最后一种,会导致多次加载。

命令定义

\newcommand

\renewcommand

\providecommand

\CheckCommand

\def

上面四个差别不大,不建议使用第四种,会导致意外定义新命令

环境定义

\newenvironment

\renewenvironment

\def\foo{…} \def\endfoo{…}

上面两个均可,不建议使用第三种

c.便携性

文档名尽量不要超过8字符,不包括3个字符的扩展名,

不能和已有的latex标准包重名,

尽量加上首字母前缀,比如XXX thesis.cls

d.重定义document

使用\AtBeginDocument和\AtEndDocument重定义docunment

3.cls和sty结构

一个完整的cls或者sty文件通常包含以下的结构。

a.文档介绍

\NeedsTeXFormat{LaTeX2e}

\ProvidesPackage{包的名称}[时间及其他信息]

\NeedsTeXFormat{LaTeX2e}

\ProvidesClass{类名称}[时间及其他信息]

时间使用YYYY/MM/DD格式

b.引用cls或者sty文件

\RequirePackage[options]{package}[date]

\LoadClass[hoptionsi]{hclass-namei}[hdatei]

当载入的文件中options和当前文档相同,使用以下命令:

\LoadClassWithOptions{article}

\RequirePackageWithOptions{graphics}

c.定义选项

使用如下命令定义选项

\DeclareOption{option}{code}

如果出现了选项,则会执行选项中的代码。

使用如下代码,将error变为warning

\DeclareOption*{%

\PackageWarning{fred}{Unknown option ‘\CurrentOption’}%

}

使用如下命令使定义的选项被文档调用执行

\ProcessOptions\relax

d.最小文档

文档必须包括四个内容:

\normalsize,\textwidth, \textheight,页数的规范

一个最小文档如下例:

\NeedsTeXFormat{LaTeX2e}

\ProvidesClass{minimal}[1995/10/30 Standard LaTeX minimal class]

\renewcommand{\normalsize}{\fontsize{10pt}{12pt}\selectfont}

\setlength{\textwidth}{6.5in}

\setlength{\textheight}{8in}

\pagenumbering{arabic} % needed even though this class will

% not show page numbers

1

2

3

4

5

6

7

1

2

3

4

5

6

7

信件文档如下例:(文档名为neplet.cls)

\NeedsTeXFormat{LaTeX2e}

\ProvidesClass{neplet}[1995/04/01 NonExistent Press letter class]

\DeclareOption*{\PassOptionsToClass{\CurrentOption}{letter}}

\ProcessOptions\relax

\LoadClass[a4paper]{letter}

\renewcommand{\ps@firstpage}{%

\renewcommand{\@oddhead}{letterhead goes here}%

\renewcommand{\@oddfoot}{letterfoot goes here}%

}

1

2

3

4

5

6

7

8

9

10

11

1

2

3

4

5

6

7

8

9

10

11

4.文档命令

\NeedsTeXFormat {format-name} [release-date] %文档的定义

\ProvidesClass {class-name} [release-info]%表示当前文档提供了XX类的定义

\ProvidesPackage {package-name} [release-info]%表示当前文档提供了XX包的定义

\ProvidesFile {file-name} [release-info]%表示当前文档提供了XX文件的定义

\RequirePackage [options-list] {package-name} [release-info]

\RequirePackageWithOptions {package-name} [release-info]%引用包

\LoadClass [hoptions-listi] {class-name} [release-info]

\LoadClassWithOptions {class-name} [release-info]%引用类

\DeclareOption {option-name} {code}%选项定义

\DeclareOption* {code}%对于所有选项都为执行

以下命令只在定义option的code中使用

\CurrentOption%引用当前选项

\OptionNotUsed%当前选项加入未使用选项列表

\PassOptionsToPackage {options-list} {package-name}

\PassOptionsToClass {options-list} {class-name}%意味着如果调用这个包,就会执行optionlist中的选项

\AtEndOfClass{code}

\AtEndOfPackage{code}%代码将在执行完整个包之后执行

\AtBeginDocument {code}

\AtEndDocument {code}%代码将在执行\begin{document}或者\end{docpment}时执行

\AtBeginDvi {specials}

\ProcessOptions%

\ProcessOptions*

\@options%

\ExecuteOptions {hoptions-listi}

以上只在code中使用

\IfFileExists {file-name} {true} {false}%定义文件不存在时如何操作,这个命令本身不会加载文件

\InputIfFileExists {file-name} {true} {false}%如果存在,执行True中代码,然后加载文件,否则执行faulse

\ClassError {class-name} {error-text} {help-text}

\PackageError {package-name} {error-text} {help-text}%如果在引入包中出现错误,将显示text的内容。

%\protect加在命令之前,使得其被打印而不是执行,\MessageBreak打印换行,\space打印空格。

\ClassWarning {class-name} {warning-text}

\PackageWarning {package-name} {warning-text}

\ClassWarningNoLine {class-name} {warning-text}

\PackageWarningNoLine {package-name} {warning-text}

\ClassInfo {class-name} {info-text}

\PackageInfo {package-name} {info-text}

\DeclareRobustCommand {cmd} [num] [default] {definition}

\DeclareRobustCommand* {cmd} [num] [default] {definition}%定义更加鲁棒的命令,和renewcommand类似。

\CheckCommand {cmd} [num] [default] {definition}

\CheckCommand* {cmd} [num] [default] {definition}%定义的同时会检查,如果不同则会产生warning

\paperheight

\paperwidth%设定页面大小

\MakeUppercase {text}

\MakeLowercase {text}%大小写转换

\ignorespacesafterend%取消空格

\normalsfcodes%恢复字间距

\if@compatibility

可能需要重新定义如下命令

\rm \sf \tt \bf \it \sl \sc

\normalsize

@normalsize

需要重新定义如下命令

\tiny \footnotesize \small \large

\Large \LARGE \huge \Huge

\tenrm \elvrm \twlrm . . .

\tenbf \elvbf \twlbf . . .

\tensf \elvsf \twlsf . . .

可能需要替换如下命令

\vpt \vipt \viipt . . .

\prm, \pbf, \ppounds, \pLaTeX . . .

以下命令被移除

\footheight

@maxsep

@dblmaxsep

5.参数传递

参数传递使得tex写作是不需要重复添加相同的信息。(比如页眉上方的标题)。遗憾的是原文中并没有介绍相关的内容。以下内容均来自于下方链接。

https://blog.csdn.net/RobertChenGuangzhi/article/details/50461514

在cls文件中,使用以下命令定义参数

\newcommand{\@ang-name}{默认值}

参数名通常为\@后跟tex文件中使用的名称

在cls文件中,使用以下命令关联cls参数和tex参数

\newcommand{\tex-cmd}[参数数目][默认值]{

\renewcommand{\@avg-name1}{#1}

\renewcommand{\@avg-name2}{#2}

\renewcommand{\@avg-name3}{#3}

}

命令名通常为\加上tex文件中引用的名称。

在cls文件中使用\@avg-name1…调用参数

在tex文件中使用如下代码获取参数:

\tex-cmd{参数1的值}{参数2的值}{参数3的值}…


sty文件编辑教程 - CSS - 前端,css 按钮浮动在图片上
  • 关于洗牙的有趣文案 - CSS - 前端,css3缩放边框线
  • 关于洗牙的有趣文案 - CSS - 前端,css3缩放边框线 | 关于洗牙的有趣文案 - CSS - 前端,css3缩放边框线 ...

    sty文件编辑教程 - CSS - 前端,css 按钮浮动在图片上
  • 斑马笔芯型号区别 - CSS - 前端,css漂亮弹窗
  • 斑马笔芯型号区别 - CSS - 前端,css漂亮弹窗 | 斑马笔芯型号区别 - CSS - 前端,css漂亮弹窗 ...

    sty文件编辑教程 - CSS - 前端,css 按钮浮动在图片上
  • scale用法 - CSS - 前端,css top什么意思
  • scale用法 - CSS - 前端,css top什么意思 | scale用法 - CSS - 前端,css top什么意思 ...