Chinaunix首页 | 论坛 | 博客
  • 博客访问: 154411
  • 博文数量: 12
  • 博客积分: 3064
  • 博客等级: 中校
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-04 19:34
文章分类
文章存档

2006年(12)

我的朋友

分类: LINUX

2006-06-26 22:55:34

所见即所得的文档撰写方式会让你陷入文档格式化的泥沼中。譬如你在使用MS Word,每当你开始在文档中插入一个新段落,心里不由自主的思考:是按Tab键呢,还是用全角输入俩空格?标题、正文我该用几号字?这行文本,我是用斜体还是加重显示?在你的写作过程中,诸如此类的问题不断的在你的脑海中浮现。是可忍,孰不可忍?

那么所想即所得呢?考虑一个问题吧。我们大家都喜欢写程序,所写的文档中不可避免的要出现程序代码。在Word中,程序代码该怎样排版呢?而在HTML文本中,只需要使用代码就可以了,至于代码究竟如何显示,我们把它交给浏览器来处理就是了!

总之,我们这些非WEB开发人员,写文档的目的主要在于表达自己的思想,而不是思考如何排版。虽然文档的排版很重要,但我觉得那应该是排版工人们做的活。

1、进入HTML模式

前面讲了一些和主旨无关的话,主要目的是让你意识到学习HTML或其他标记语言的必要性。但本文不是教你如何学习HTML语言,而是讲述如何在 Emacs中利用各种HTML模式来写HTML文档,所以这里假定你已经基本掌握了HTML标记语言的使用。

让Emacs进入HTML模式很简单,直接打开一个HTML文件即可,也可以使用 M-x html-mode指令。进入 HTML模时候,Emacs的菜单栏中会出现"HTML"和"SGML"菜单,仔细观摩一下。

Emacs提供了一个简单的HTML模板来缓解一些懒人因不愿过多输入代码的抱怨情绪,C-c C-t html,然后需要输入title内容回车,即可调入该模板。C-c C-v可以调出浏览器看看当前HTML代码的显示效果。M-x html-autoview-mode,可以实现在Emacs保存HTML文档之时打开浏览器查看文档显示效果。

2、在HTML模式中移动光标

进入Emacs之后,就不要思考鼠标操作的问题了,尽量用键盘来完成一切工作。首先,Emacs通用的光标移动功能绑定键依然可以在HTML模式中使用,现在可以回顾一下(经常性的回顾,是学习Emacs的好方法):

  • C-n,光标移动到下一行
  • C-p,光标移动到上一行
  • C-f,光标沿文本输入的前进方向移到其相邻字符上
  • C-b,光标沿文本输入的后退方向移到其相邻字符上
  • C-a,光标移动到行首位置
  • C-e,光标移动到行尾位置
  • C-l,光标所在当前行挪移到窗口中央位置
  • M-f,对英文而言,光标沿文本输入的前进方向移动一个单词的距离;如果是中文,自己体会吧
  • M-b,对英文而言,光标沿文本输入的后退方向移动一个单词的距离;如果是中文,自己体会吧
  • M-a,光标移动到其当前所在语句的句首位置
  • M-e,光标移动到其当前所在语句的局尾位置
  • C-v,向文本输入的前进方向翻过一页
  • M-v,向文本输入的后退方向翻过一页

Emacs HTML模式提供了标签之间的光标快速移动的键盘绑定:

  • C-c C-f,光标移到其当前所在位置的下一个HTML标签位置
  • C-c C-b,光标移到其当前所在位置的前一个HTML标签位置

3、隐藏/显示HTML标记

当你觉得正在编写的HTML文档中无处不在的HTML标记破坏了文档的美感,可以试试C-c Tab,暂时将HTML标记隐藏起来,只显示你的文本内容。在HTML隐藏状态下继续编辑文档,Emacs会保护其隐藏的所有标记,所以你没有必要担心会不小心把它们给删掉了,而且当你的光标移动到一个被隐藏的标记位置上时,Emacs会在Mini-buffer中显示该标记名。

在HTML标记隐藏状态下,再次C-c Tab,即可将所有被隐藏的HTML标记重新显示出来。

4、HTML模式其它一些常用的键绑定

C-c 1~6,可以自动插入h1~h6的标题。譬如键入C-c 1,就会在当前位置自动插入h1标题。

C-c Enter,可以实现在光标位置插入段落标记

。这个键绑定,我不是很喜欢。因为我习惯使用

风格的段落标记。但是可以先使用这个键绑定作出段落标记的前一半,然后使用C-c /将其封闭。对于其它未提供闭合功能的键绑定,都可以使用这种方法。

C-c C-c h,可以实现在光标位置插入超级连接标记。C-c C-c n可以实现在光标当前位置处插入一个anchor(锚标),以备在文档其他位置建立跳转到该位置的超级链接。这两个键盘绑定,需要在Mini-buffer中输入超级连接地址或锚标名称。动手一试便知了。

C-c C-c u,在光标位置处插入无序列表标记。C-c C-c o,在光标当前位置插入有序列表标记。C-c C-c l,在当前位置插入一个列表项。与C-c C-c p一样,所插入的

  • 标记依然是不封闭的。

    C-c C-c i,在光标位置插入图像引入标记,即,需要在Mini-buffer中指定图片的 URL。

    C-c C-j,在光标位置处插入换行符
    C-c C-c -,在光标位置处插入水平线标记,即


    如果想看看某个标记的解释,可以将光标移到该标记上,C-c ?,在Mini-buffer中显示解释。

    想知道更多一些的键绑定功能,可以C-c C-h,看看说明。

    5、HTML模式中的特殊字符输入

    在HTML中,已经被用作HTML标记的字符,如果要在HTML文本中将它们显示出来,直接键入是不行的。譬如我要在HTML页面中显示< p>,浏览器会将它视为段落标记来处理。为了解决这个问题,我们可以C-c C-n <,再键入字母p,最后再C-c C-n >来实现。通过这个小例子,应该知道C-c C-n的功用了吧。对于其它字符,只要键盘上有的,但 HTML语言已经征用了的,都可以使用这个键绑定来输入。

    对于键盘上没有的字符,譬如拉丁文-1中的字符,该如何输入呢?Emacs HTML模式提供了许多语言模式。使用键绑定C-c 8可以打开SGML name entity小模式,这个键绑定是以开关方式执行的,即再次键入C-c 8即可关闭这个该模式。打开 SGML name entity小模式后,键入C-x RET k,选择语言模式,我们要使用拉丁文-1,那么就可以键入 latin-1,回车即可进入拉丁文-1字符插入模式。在向HTML文档中插入拉丁文-1字符时,使用键绑定C-x 8为前缀。譬如,我要在文档中插入"¥",只需要键入C-x 8 Y即可。此时,在HTML源文件中,会将¥显示为其字符实体,即"& yen",而在Mini-buffer中会同时显示所插入的实际符号"¥",此时只需执行一次Undo(C-x u或C-_),就可以将Mini-buffer中的实际符号送入到源文件中了。

    可以在HTML定义的标准字符表中查找你所需要的字符实体,这个字符表可以在网上搜一搜了。

    6、HTML内容样式标记

    这节内容本不符合这篇文章的主题的,但我在学习HTML语言数天中,发现网上不少教程中有不少内容违背了HTML4.0标准所倡导的尽量使用内容样式标记来取代物理样式标记的原则。这里,我想将最常用的一些基于内容的文本样式标记的用法总结一下,由于我学习HTML的目的是为了书写一些技术文档,而不是用它来做眩目的网页,所以,仅基于实用的角度整理了一丁点儿。

    6.1 何为内容样式标记与物理样式标记?

    内容样式标记可以告诉浏览器,它所包含的文本具有特定的含义、上下文或者用法,然后浏览器就会把与该含义、上下文或者用法一致的格式应用于该标记修饰的文本上。这里一定要理解清楚:内容样式标记授予浏览器的是含义,而不是告诉浏览器如何对文本进行格式化!譬如,告诉浏览器,它修饰的是一段代码。至于这段代码具有怎样的外观,那是浏览器开发商的任务。现在各种浏览器,对于所修饰的代码,采用等宽字体来显示。但也许在未来,浏览器的开发商可能会考虑采用更眩目的显示方式来格式化标记所修饰的代码呢!

    物理样式标记仅仅告诉浏览器采取哪种物理格式对其所修饰的文本进行很精确的格式化,譬如标记可以让文本斜体显示, 标记可以让文本加粗显示等等。虽然许多文本编辑器的发展趋势是精确地控制文本样式和外观,但在使用HTML语言时,除非极少情况下,都应该尽量避免使用物理样式标记,应当尽量地用内容样式标记授予浏览器以含义。只有如此才可以让你所编辑的HTML文档相对于浏览器具有更强的弹性。

    6.2 标题

    HTML提供了6种级别的标题,分别为h1、h2、h3、h4、h5、h6,其字体大小顺次递减。标题标记具有左对齐(align=left)、居中(align=center)、右对齐(align=right)三种属性。实际上,标题的两边对齐属性(align=justify)也是有的,不过现在不为任何浏览器所支持,因为没有什么实际意义。不过,即使标题有自己的对齐属性,但HTML4.0标准中不再赞成使用这个属性了,其他属性也不推荐使用,而是推荐使用样式表(CSS)来定义其各种属性(我还没有学习样式表)。

    我觉得一级标题

    显得太大了。文档标题,建议用二级标题。三级标题只比普通文本大一点,很适合做章节标题,本文档就就是这样做的。用四级标题对章节作进一步细分。五级标题和六级标题比普通文本小一些,可以用于文档目录或主页上显示站点内容,也可以用于版权通告等。

    6.3 段落

    段落标记,可以封闭,也可以不封闭(下文如未作特别说明,所述的各类标记都必须封闭的)。前面说过,在Emacs HTML模式中,C-c RET可以插入不封闭的段落标记

    C-c /可以将其封闭。浏览器通常会将段落之间的行间距设定的比普通文本行间距要大一些,其最终目的是让你在创作文档时不必担心行宽、自动换行和断行等问题。

    同标题标记一样,HTML4.0标准中不推荐设置其属性,而推荐采用样式表来设置。

    6.4 引用

    标记表示它所包含的文本是对某份参考文献的引用。按照惯例,所引用的文本将以斜体显示。

    可以借引用标记,再次强调一下本节前面所提到的内容样式标记与物理样式标记的区别。目前,浏览器将引用标记修饰的文本采用斜体显示,而< i>标记也可以用于斜体文本显示。但可以让你或其他人从一份文档中自动摘录所引用的参考文献,因为你只需要从文档中解析出 所修饰的文本即可。这一点,无法做到,因为斜体文本,并不一定是引用文本!另外,现在的浏览器对引用文本是采用斜体显示,但将来却未必是。而斜体标记所修饰的文本,永远是斜体!

    6.5 代码

    程序员习惯了编写源代码时文本的特殊显示格式。代码标记就是为他们设计的。目前,浏览器可以将代码标签内的文本用等宽,类似打字机样式的字体显示出来。目前,能够实现与代码标记同样显示风格的物理样式标记是

    6.6 强调

    标记告诉浏览器将其所包含文本表示为强调内容。目前,几乎所有浏览器采取将强调内容采用斜体来显示。

    是比语气更强的强调,浏览器目前以粗体来显示其修饰的文本

    6.7 键盘输入的文本

    标记用来表示文本是使用键盘输入的,当前的浏览器通常用等宽字体来格式化其修饰的文本。这个标记经常用在与计算机相关的文档和手册中。譬如:

    HTML文本
    Type quit to exit the utility, or type menu to return to the main menu.
    浏览器显示效果
    Type quit to exit the utility, or type menu to return to the main menu.

    6.8 术语定义

    标记所修饰的文本通常为术语。将来,该标记可能会用来创建文档的索引或者术语表,目前流行的浏览器通常以斜体来显示该标记所修饰的文本。在技术文档中,第一次引入术语时,应当采用这个标记将术语文本与普通文本分开,以使读者更好的理解文章当前的主题。但在文档后续部分就不要再对已出现的术语进行标记了,否则会将版面弄的一团糟。

    6.9 小结

    暂时就列举这么些吧。当你在书写HTML文档之时,碰到需要用斜体、加粗、等宽等格式化标记时,一定要考虑一下你要对文本进行格式化的目的何在。是强调吗?是引用吗?是键盘输入文本吗?通过这样的询问,我想,在大多数情况下,我们不需要使用物理样式的标记就可以完成一篇HTML文档的书写。譬如我这一篇文章,完全采用本文所提到的各种内容样式标记书写的,虽然文档结构很简单,但对于技术文档的撰写者,这已经足够用了。当然,为了更好的利用HTML,还需要掌握样式表的知识。

    7、后记

    文中,关于Emacs的HTML模式的内容,基本上是Learning Gnu Emacs 3rd Editon这本书的第8章的不完全译文。另外书中还提到了其他几种HTML编辑主模式,待日后再看了。目前首要目的是尽快能将HTML用起来,可以让我摆脱字处理器的束缚。

    其实我原本是想学习TEX的,但思量着暂时也用不大上,所以改为学习HTML。至今,断断续续学习HTML语言有4天了,其中包括写这篇文章用了一天,文章是直接用HTML写的,轻量级的锻炼了一下HTML基本的写作模式。

    谢谢你能看到这里!

  • 阅读(4478) | 评论(7) | 转发(0) |
    给主人留下些什么吧!~~