前言
在 的学习当中,不可避免地要提问、解答问题,这时候一个好的 MWE 是非常重要的,而 filecontents
环境能对提供 MWE 产生极大的便利。
介绍
均为机翻
texdoc source2e
filecontents
环境用于将包、选项或其他文件的内容与文档一起传递到单个文件中。它有一个参数,即要创建的文件的名称。如果该文件已经存在(如果操作系统支持“当前目录”或“默认目录”的概念,则可能只存在于当前目录中),那么什么也不会发生(一条信息消息除外),并且环境主体将被绕过。否则,环境的主体将逐字写入作为第一个参数提供的文件名,并附带一些关于如何生成它的注释。
环境也可以用一个可选的参数来调用,用来改变它的一些行为:选项 force
或 overwrite
将允许覆盖现有的文件,选项 nosearch
将只检查当前目录时查找文件是否存在。如果您希望为 的 search tree 中已经存在的某个文件生成一个本地(修改后的)副本,那么这将非常有用。最后,您可以使用 nopremable
防止它在文件的顶部编写标准的简介(这实际上与使用环境的星型形式相同)。
现在允许该环境在文档中的任何位置,但是为了确保在文档运行时所有必要的包或选项可用,通常最好将其放在文件的顶部(在 \documentclass
之前)。在文档主体中使用它的一个可能的用例是,如果您希望在文档中多次重用某些文本,那么您可以编写它,然后在需要时使用 \input
检索它。
开始和结束标记应该各自在一行上。
texdoc latex2e
filecontents
:写一个外部文件
概要:
\begin{filecontents}{filename} |
或者
\begin{filecontents*}{filename} |
创建一个名为 filename
的文件,并用 text
填充它。环境 filecontents
的未加星号的版本在创建的文件内容前加上一个头;参见下面的示例。加星号的版本 filecontents*
不包含头。
这种环境可以在序言中的任何地方使用,尽管它经常出现在 \documentclass
命令之前。通常在源文件需要非标准样式或类文件时使用。环境将把该文件写到包含源文件的目录中,从而使源文件自包含。另一种用法是在文件中包含 bib
引用,同样使其自包含。
该环境检查该名称的文件是否已经存在,如果存在,则不执行任何操作。有一个 filecontents
宏包,它重新定义了 filecontents
环境,这样它就不会在这种情况下什么都不做,而是会覆盖现有的文件。
例如,这个文档
\documentclass{article} |
生成此文件 JH.sty
。
%% LaTeX2e file ‘JH.sty’ |
探索出的结论
由 filecontents
环境生成文件的编码,与「使用 filecontents
环境的代码所在的文件编码」一致。