我有一个前言,我把它复制粘贴到几乎所有的文档中。有没有一种好的方法可以把它变成一个包,然后我就可以使用它了?我更愿意以一种不依赖于我的 Latex 前端或编译器的方式来做到这一点,这样我就可以了\usepackage{coolpreamble}
。这对于分发给其他人也很有用,以便在我的研究小组中保持标准的 LaTeX 格式。
答案1
您可以将前导代码放入.sty
文件中,然后使用\usepackage{mystyle}
它来加载它。您的.sty
文件将如下所示:
% Declare that this style file requires at least LaTeX version 2e.
\NeedsTeXFormat{LaTeX2e}
% Provide the name of your page, the date it was last updated, and a comment about what it's used for
\ProvidesPackage{mystyle}[2010/07/28 BBischof's custom LaTeX style]
% Now paste your code from the preamble here
% Finally, we'll use \endinput to indicate that LaTeX can stop reading this file. LaTeX will ignore anything after this line.
\endinput
请注意,样式文件可能会变得更加复杂(如果您想包含诸如等选项\usepackage[option]{mystyle}
),但是这种基本格式应该可以帮助您入门。
将您的文件另存为mystyle.sty
并将其与您的文件一起放在当前目录中.tex
。
您还可以查看适用于课程和软件包编写者的 LaTeX2e指南也可在卡坦。它将引导您更详细地了解这一点。
答案2
thesis.sty
我想说:不要。网上有大量的软件包,但我认为它们都忽略了一个重要点:
这就是类的用途,而不是包的用途。因此,如果您发现自己重复使用相同的序言,则很可能它是针对同一类型的文档。在这种情况下,不要将其打包 - 而是将其打包成类。
差异很小:
- 您需要调用您的文件
<foo>.cls
而不是<foo>.sty
- 您(很可能)需要使用以下方法在类中加载基类
\LoadClass
\documentclass
您可以通过在文档开头加载类,而不是使用\usepackage
。
答案3
将您的序言放在.sty
文件中,并将\usepackage
语句更改为RequirePackage
,然后用关闭文件\endinput
是最直接的方法。
重要的是要意识到样式文件中@
有一个字母,这意味着它可以在命令中使用。因此,如果您在前言中的 a\makeatletter
和\makeatother
pair 之间有代码,则可以在文件中省略这两个命令.sty
。
现在,如果你想更进一步,你可以使用\NeedsTeXFormat
和指定所需的格式、包的名称和描述。此外,你可以定义包选项并使用和\ProvidesPackage
处理它们,但如果你走得更远,要么从CTAN 上精心制作的文件中学习,要么看看\DeclareOption
\ProcessOptions
.sty
适用于课程和软件包编写者的 LaTeX2e。
答案4
我使用与样式文件不同的方法。我使用Autohotkey
一个小的热键扩展器。每次我在任何IDE,它扩展到
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs}
\usepackage{babel}
\usepackage{graphicx}
\usepackage{csquotes}
\usepackage{paralist}
\usepackage{xcolor}
该软件可以做更多事情,例如以不同的格式插入(计算)日期或在扩展后移动光标。定义文件在我的 Dropbox 中,因此更改几乎会立即发送到我的所有机器上。