BBS水木清华站∶精华区

发信人: GoldenEagle (鹫*只想飞), 信区: Linux        
标  题: 【转载】info教程的其余部分 
发信站: BBS 水木清华站 (Thu Jan 20 18:06:15 2000) 
 
 
来自 ana的主页 http://ana.163.net/ 
 
----------------------------------------- 
        第二章          Info 进阶 
 
    这一章描述了许多高级 info 命令,以及怎样写一个 info  
文档,写 info 文档与写 Texinfo 有什么不同。(然而,在多 
数情况下,写 Texinfo 文档要更好一点,因为你可用它来产生 
Info 文件和打印手册。) 
 
目录 
 
一、专家行为    高级的 info 命令:g, s, e, 1 -5 . 
二、增加小节    描述了怎样在目录结构中增加新的小节,并 
                且描述了小节看起来是什么样子。 
三、目录        在 info 小节中怎样增加和建立目录。 
四、交叉参考    在 info 小节中怎样增加交叉参考。 
五、标记        在 info 文件中怎样增加标记。 
六、检查        检查 info 文件。 
七、Emacs中关于 info 的变量 
                可以改变Emacs Info 行为的相关变量。 
 
                第一节        高级 Info 命令 
 
    `g', `s', `1', - `9', 和 `e' 
     
    假如你知道小节的名字,你可以通过按‘g’,名字,回车跳 
转到那儿。举例来说,‘gTop<RET>’将会跳转到这个文件中名叫 
‘Top’的小节(它是目录节点)。‘gExpert<RET>’将回到这里。 
 
    不象‘m’,‘g’不允许缩写。 
 
    跳转到另外一个文件中的节点,你可以把文件名用括号括起 
来放在节点名字的前面。也就是说,‘g(dir)Top<RET>’将跳转 
到文件‘dir’中的‘Top’一节。 
 
    名叫‘*’的节点定义为整个文件。因此你可查阅整个的当前 
文件通过键入‘g*<RET>’或观看其他的整个文件通过`g(FILENAME) 
<RET>'。 
 
    ‘s’命令允许你在整个文件中搜寻字符串。它会在必要的时 
候跳转到下一节。要查找某个字符串,输入‘s’,然后跟着输入 
要查找的字符串,最后按回车键。如果要再次搜索同一字符串,仅  
仅需要输入‘s’然后回车。在多数情况下,你需要通过键入‘b’ 
来查看当前所处的节点,因为‘s’把光标放在找到的字符串上, 
而不是小节的开始。 
 
    假如你喜欢通过输入章节名的方式来跳转,你可以输入命令 
`1', `1', `3', `4', ... `9'。它们是 `m' 的快捷方式,`1' 
跳转到当前小节的第一个子目录; `2' 跳转到第二个目录,依次类 
推。 
 
    假如你的显示模式支持多字体,并且你是用Emacs阅读 info  
文件,那么第五个目录的`*'带有下划线,第九个目录的`*'也带有 
下划线,这样你就能很快的知道是第几个目录。 
 
    命令‘e’将改变 info 模式到普通的Emacs编辑模式,这样你 
就可以编辑当前小节的内容。输入命令‘C-c C-c’返回 info 模式。 
‘e’命令仅仅在变量‘Info-enable-edit’非零的情况下才被允许。 
 
        第二节          在 info 中增加一个新的节点 
 
   要在 info 的目录列表中增加一个新的章节,须经过以下步骤: 
   1、建立相关的文档、小节。 
   2、将章节放入目录列表。333 
 
   通常,使用 Texinfo 建立 info 节点,用它的一个好处是你可 
以同时得到一个打印手册。当然了,你也可以直接编辑一个 info 
文件。 
 
    在一个 info 文档中,在节点的前面有一个〈^_〉字符(对于 
使用者不可见),并以〈^_〉,〈^L〉,或文件尾终止。注意: 
假如你用〈^L〉终止一个节点,那么你必须以一个〈^_〉开始一个 
新的节点,因为〈^_〉不能开始一个节点。同样的,一个好的方法 
是在节点的边界处在〈^_〉的后面放上一个〈^L〉。 
 
    在节点的开始,<^_> 后面必须跟着新行或以 <^L> 开始的新行, 
接下来是节点的顶端行,顶端行必须给出此节点的名字(通过它 info 
找寻相应信息),以及相应的 `Next', `Previous', `Up' 的节点名。 
(假如有的话)。正如你所见,现在的节点的 `Up'节点是 `Top', 
`Next' 节点名是 `Menu'。 
 
    关键字 " Node", "previous", "Up", "Next", 在顶端行中可以 
以任何顺序出现,但推荐以以上顺序出现。每一个关键字后面都必须 
跟着一个冒号,空白,然后是名字。名字必须以制表符、逗号或新行 
结尾,一个空格不能表示它的结束,因为节点名有可能包含空格。名 
字的大小写不敏感。 
    
    一个节点名有两种形式。当前文件的节点名以出现在节点第一行 
中的 `Node: ' 后的名称命名。举例来说,当前节点叫做 `Add'。在 
另外一个文件中的以文件中的 `(FILENAME)NODE-WITHIN-FILE' 中的 
名字命名,就象当前节点以 `(info)add' 中的 add 命名一样。假如 
文件名以 "./" 开始,那么它相对于当前路径; 或者以标准 info 文 
档所在目录为相对路径开始。`(FILENAME)Top' 可以缩写为`(FILENAME)'。 
依照惯例, `Top' 是任何节点的最高节点。目录节点是 `(dir)'。 
一个文档的 `Top' 节点都有一个 `Up: (dir)' 指向目录节点。 
 
    以 `*' 命名的的节点是特殊节点:它指向整个文件。也就是说, 
`g*' 显示出整个的当前文件。`*' 节点的用途是用在老式样的,没有 
inf0 结构 的文件中。 
 
    `Node' 名字,不能包含文件名,`Next', `Previous', `Up' 可 
以包含文件名。在这个节点中,因为 `Up' 节点是在同一个文件中, 
所以它不须要包含文件名。 
 
    注意当前节点的顶端行中包含文件名。这个文件名被 info 所忽 
略,但是它可以提醒读者所在的节点。 
 
        第三节          怎样建立目录 
 
    许多节点都有一个 目录`Menu' --- 子章节的列表。`m' 命令搜索 
这个目录来查找相应的章节。 
 
    一个目录以一行 `* Menu:' 开始,这一行的剩余部分为注释。在 
后面的行每一个节点都以一个 `*' 开始。章节的名字(也就是读者用 
`m' 命令来选择章节时所给出的参数)后面跟着一个冒号,空格或制表 
符,然后是章节所在的节点名。节点的名字,就象 `Next', `Previous', 
`Top' 一样,以一个制表符、逗号或新行结束,它也可以以句号结束。 
 
   假如节点名和章节名相同,那么就可以缩写为`* NAME::',这样可 
以使目录清楚明了。 
 
   把章节的名字的开始部分尽量与其他章节名不同,这样会结省读者输 
入缩写的困难度。在一个长目录中,把每一条目的第一个单词都大写是 
一种好的做法。 
 
   节点可以有子节点。每一个子节点都有一个 `Up' 指向它的上一级。 
这对于重组整个文档,使读者不需要反复阅读目录非常有用。 
 
   Info 目录也就是节点 `(dir)Top' --- 也就是,文件 `.../info/dir' 
的 `Top' 节点目录。你可以在这个目录中放入新的条目。 info 目录并不 
是文件目录 `info' ,文件目录中包含许多的 info 文件,但是它们并不 
被 info 目录结点自动加入。 
 
   尽管 info 结点结构被称为分层组织,实事上它也是直线结构。可共享 
的结构和指针非常容易实现,也表达得很清楚。没有必要把所有的节点都放 
在一个文件里来形成相连的结构。实事上,这个文件就有两个相连的部分, 
一个就是你现在所处的节点,在 `Top' 下的一个节点,另一个包含了 `Help' 
也就是 `h' 命令显示的章节。也因为没有垃圾结构,如果一个根部没有指 
向也不会有什么可怕的事情发生。但是这样一个结构是没有任何人能找出它 
存在什么的。( 这一段我看得糊里糊涂的,所以也就翻译不清楚。:-< ) 
 
        第四节          建立交叉参考 
 
    交叉参考可以放在文本的任何地方,不象目录必须放在一行的前面。 
它看起来非常象目录除了以 `*note' 代替目录的 `*'。它不能以 `)'结 
尾,因为 `)' 经常是结点名的一部分。假如你想把交叉参考放在括号中, 
那么你必须先以一个句号结束它。这儿是两个例子: 
 
        *Note details: commands.  (See *note 3: Full Proof.) 
    它们仅仅是例子,实际指向并不存在。 
 
        第五节          Info 文件的名称对照表 
 
    你可以通过给出一个名称对照表来加快在比较庞大的 info 文件 
中的存取速度。不象程序中的名称,info 名称表存在于文件中,当 
 info 读取这个文件时自动的使用名称对照表。 
 
    要建立一个名称对照表,在 emacs 的 info 模式跳转到文件的节 
点处输入 `M-x Info-tagify'。然后你必须用 `C-x C-s' 来保存文件。 
 
    一但 Info 文件拥有名称对照表,你必须保证它是最新的。假如 
你删除了一些文本,一个节点相对于名称对照表中的记录位置退后了 
超过一千个字符位置,Info 将不能再找到这个节点。你必须再次用 
`Info-tagify' 命令来更新名称对照表。 
 
    名称对照表存在于 info 的文件尾并且看起来是这个样子: 
 
     ^_ 
     Tag Table: 
     File: info, Node: Cross-refs^?21419 
     File: info,  Node: Tags^?22145 
     ^_ 
     End Tag Table 
 
    注意每一行包含一个节点,节点的开始部分,一个删除字符, 
以及节点的开始部分在文件中的位置。 
 
        第六节          检查一个 info 文件 
 
    当你建立一个 info 文件时,在你从另一个节点建立指向时非常 
容易望记想要的节点的名字。假如你放入了错误的名字,那是很不容 
易被发现的,除非有人沿着指向碰到了这个错误。检查是一个自动的 
过程,它通过检查所有的节点指针来发现并报告那些是非法的。每一 
个 `Next', `Previous', `Up' 被检查,当然,所有的目录入口和所 
有的交叉参考都会被检查。附加的,任何 没有 `Previous' 的`Next'  
节点都将产生报告。但是只有在同一个文件中的指向被检查,因为在 
其他文件中的指向将会非常的慢。幸好这种情况不多。 
 
    要检查一个 info 文件,在 emacs 的 info 模式中阅读节点时使 
用 `M-x Info-validate' 命令。 
 
        第七节         emacs 中的 info 模式变量 
 
    以下的变量可以改变 emacs 中的 info 模式行为。你可以通过设 
置这些变量或者在你的 `~./emacs' 文件中初始化。 
 
`Info-enable-edit' 
 
    将它设置成 `nil',将禁止 `e' ( `info-edit' ) 命令。非 `nil' 
值使能它。 
 
`Info-enable-actvie-nodes' 
 
    当设置成非 `nil' 值时,允许 info 执行 节点关联的 Lisp 代码。 
当节点被选择时 Lisp 代码被执行。 
 
`Info-directory-list' 
 
    用来搜寻 info 文件的目录列表。每一条目是一个字符串(目录名) 
或 `nil' ( 使用缺省目录名 )。 
 
`Info-directory' 
 
    缺省的 info 文档所在目录。仅仅在功能 `Info-directory' 被呼叫 
时使用。 
 
        第三章          建立一个 Info 文件 
 
    请参阅 Texinfo 来学习怎样写 Texinfo 文档,怎样用 Texinfo 文件 
产生 info 文档以及怎样安装 Info 文档。 
 
----------------------------------------- 
 
-- 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.34.143] 

BBS水木清华站∶精华区