荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: georgehill (佐治·希尔), 信区: Linux
标  题: info教程的其余部分(转寄)
发信站: BBS 荔园晨风站 (Fri Jan 21 00:24:48 2000), 站内信件

【 以下文字转载自 georgehill 的信箱 】
【 原文由 georgehill.bbs@smth.org 所发表 】
发信人: 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 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.115]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店