使用-ms宏设置UNIX文本格式(1984)

2020-05-12 15:06:24

有五个新宏可以帮助生成目录。所有用于目录的条目必须用.XSand.XE对括起来,可选的.XAmacros用于附加条目。.XS或.XA的第一个参数指定要打印在一行点之后的页码。如果第一个参数为NO,则不会打印页码,就像章节及其第一个子节在同一页上开始时一样。第二个参数指定缩进级别;如果缺少此参数,则当前缩进保持有效。最后,.PX宏打印出目录。如果您忘记了,不会发生任何事情。以下是典型输入和输出文本的示例:.XS II(开始)介绍。XA 1第一章:历史。XA no第二章:证据.XA 24 5(缩进5个字符)启发式假设.XA 35实验数据.XA 56 0(返回原始缩进)结论.XE(结束).PX(打印输出)CONTENTS简介表格.。第三章第一章:历史.。1第2章:证据启发式假设.。24实验数据.。35结论.。五十六。

还可以在整个文本正文中使用.XS和.XE对自动收集目录,包括自动生成的页码。例如,您可能想要为每个部分标题编制索引,在这种情况下,您可以执行以下操作:如果您使用的是.NH宏生成的编号标题,并且希望目录中包含标题编号,请使用此格式:\*(输出目录时,SN字符串将替换为标题编号,例如:TableOf Contents1。原生动物门.。12.Porifera门.。63.。腔肠动物门.。10个。

或者,您可以在纸张末尾使用.TC宏(而不是.PX)打印出目录。如果您忘记了它,则不会发生任何事情。这两个宏几乎完全相同,但.TC会导致分页符,并将页码重置为I(小写罗马数字1)。(因此,第I页将显示在文档的最后一页之后,但不会阻止您将其移到最前面。)。

请注意,这种自动索引方法只能在一次运行中正确工作。在排字机上,一次运行被限制在35页以内。

如果您没有另外请求,nroff将生成单列格式的输出。通过在输入文件中放置命令.2C,输出将以双列格式开始打印。每列的宽度将是单列格式下一行长度的7/15,而栏间距或列之间的间距将是整个行长的1/15。要返回单列,请使用命令。1C。从双列切换时,请使用命令.1C从双列格式切换到单列格式。要返回到单列格式,请使用命令.1C。从双列格式的行长的7/15的宽度,以及列之间的间距将是整个行长的1/15。要返回单列,请使用命令.1C。从双列格式切换到单列格式时,每列的宽度将是下一行长度的7/15。

这将导致输出的格式设置为页面上可以容纳的指定宽度的列数。列宽可以用任何刻度单位指定,但如果没有标明单位,则该设置将被理解为若干个EN。(刻度单位在第2.15节中讨论。)不指定任何列宽的.MC表示与.2C相同的含义。列数的任何更改(从1到更大的列数除外)都会导致跳到新页。

-ms软件包提供了用于将文本块全部保留在一页上的宏。有两种方法可以做到这一点。标准保持以宏.KS开始,以.KE结束。如果当前页面上有足够的空间容纳这两个宏之间包含的材料,nroff会在那里打印它;如果没有,它会跳到下一页并在那里打印。另一种类型称为浮动保持,";以.KF开头,以.KE结束。如果有必要跳到新页面打印此材料,nroff首先用输入文件中Keep之后的普通文本填充当前页面。这可避免在页面底部保留保留材料之前的空白。浮动Keep最常用于定位表格或不属于严格文本逻辑顺序的某些其他类型的材料。无论使用哪种样式的Keep,都必须以.KE结尾。宏/转移溢出。";

在双栏或多栏格式中,KEEP宏会尝试将所有保留的素材放在同一栏中。如果包含在KEEP道岔中的素材需要超过一页空间或多栏格式的一栏,则它将从新的页面或栏开始,然后直接转到下一页或栏。

有时需要设置某些文本的格式而不填充和调整它-例如,项目列表或诗节。要关闭填充以使每一个输出行精确对应于一行输入,请使用命令.DS开始材料,使用.de结束材料。默认情况下,此材料从左边距缩进PI值。以下是一些输入示例:

请注意,在上面的示例中,每行都是单独居中的。要生成作为页面上的一部分居中的左调整块,请使用.DS B开始:

另一种可能是.DS I,其含义与普通.DS相同。您可以通过在这两个构造中的任何一个后面包括另一个参数来指定缩进量;.DS I 3或.DS 3开始显示时从页边距缩进3 ns。

上述任何显示都会自动放入标准保留中。与普通保留文本块一样,如果当前页面上没有足够的显示空间,则会保存整个显示并放到下一页上。如果您不想将显示保留在单个页面上,并且希望避免文本中出现难看的间隙,或者如果您的显示比一页长,请使用显示命令.BD、.CD、.ID或.LD,而不是.DS B、.DS C、.DS I,请使用显示命令.BD、.CD、.ID或.LD,而不是使用.DS B、.DS C、.DS I。这两个命令也必须用.de关闭才能结束任何类型的显示。未能包括结束命令会导致类似于无法关闭脚注或保留而导致的问题。(=。

MS为加快文档格式化所做的一件事就是建立标准的页面布局样式。在用-ms制作的论文中,文本行的默认长度为6英寸;段落第一行的缩进为5英寸;页码打印在每页后每页的顶部中心;页眉和页脚边距为1英寸宽。这些功能中的许多功能都由-ms作为变量存储在计算机内存中的值控制。这使得这成为可能。

存储这些值的存储位置称为数字寄存器和字符串寄存器。前者保存数字值,后者保存字符串。数字和字符串寄存器的名称类似于命令的名称,长度为一或两个字符。例如,行长的值存储在名为LL的数字寄存器中。除非您发出命令更改寄存器LL中存储的值,否则它将包含由-ms分配给它的标准值或缺省值(6英寸)。在寄存器LL中存储这些值的存储位置称为数字寄存器和字符串寄存器。前者保存数字值,后者保存字符串。数字和字符串寄存器的名称类似于命令的名称,长度为一两个字符。例如,行长的值存储在一个名为LL的数字寄存器中。

要更改尺寸(如线长度)的缺省值,可重置相关的编号寄存器。为此,请使用nroff命令.nr,如下所示:

第一个参数是数字寄存器的名称,第二个参数是分配给它的值。值可以表示为整数,也可以包含小数。设置数字寄存器的值时,几乎总是需要在值之后紧跟一个缩放单位。在上面的示例中,";i";由于刻度单位会让nroff知道您的意思是5英寸,而不是其他距离单位的5英寸。但是点大小(PS)和垂直间距(VS)寄存器是此规则的例外:通常应将一个值指定为点数,而不应指明刻度单位。例如,要将垂直间距从12点(单倍间距)更改为24点(双倍间距),请使用以下命令:

在要将垂直间距设置为大于半英寸(大于36磅)的特殊情况下,请在设置VS寄存器时包括一个刻度单位。表1解释了nroff和troff可用的测量单位。

+--+|表1||诺洛夫和特洛夫计量单位|+。-+|__表示__||单位abbr Nroff Troff||point p 1/72英寸1/72英寸||pica P 1/6英寸1/6英寸||em m宽度等于||当前字体大小||中的||个|点数||en n半个em|字符||垂直v间距,已测量||基线||英寸i英寸||厘米c厘米||机器u 1/240英寸1/432英寸||单位|+--+。

单位point、pica、em和en是传统排版中使用的度量单位。垂直空间单位也对应于排版术语";LEADING,";指的是从一行文字的基线到下一行基线的距离。Em和en特别有趣,因为它们与当前使用的字体大小成比例(通常表示为几个点)。Aem是等于字体大小中的点数的距离(大致等于。这些单位便于指定尺寸,如缩进。在troff中,em和en有其传统含义--距离的一个em等于两个en。另一方面,对于nroff,em和en都表示相同的距离量,即一个打字字符的宽度。在troff中,em和en有其传统含义--一个em距离等于两个en。另一方面,em和en都表示相同的距离量,即一个打字字符的宽度。在nroff中,em和en都表示相同的距离量,即一个打字字符的宽度。在troff中,em和en有其传统含义-距离的一个em等于两个en。

机器单位是一种特殊的单位,几乎所有的尺寸在存入存储器时都会通过nroff和troff在内部转换为该单位。尽管存在这样的测量单位,但它永远不会用来修改默认尺寸。

数字寄存器需要记住的一个重要方面是,对一个寄存器(如LL)的更改不会立即改变输出中该点的相关维度。相反,在行长的情况下,更改发生在下一段的开头,其中-ms将各种维度重置为相关的数字寄存器的当前值。表2为每个寄存器列出了对寄存器的更改实际生效的位置。

如果立即需要效果(例如,如果您需要更改段落中间的垂直间距),则必须使用nroff命令.vs,该命令直接控制垂直间距。该命令在输入文件中出现的位置生效。但是,由于它不会更改VSregister,因此其效果仅持续到下一段落的开头。一般规则是:要进行永久性更改,或者更改将持续多个段落直到您再次更改它的值,请更改。使用nroff命令。(请参阅";欲了解更多信息,请参见第7节。)如果你希望改变既立竿见影又持久,那就两者兼而有之。

+--+|表2||-ms编号寄存器摘要|+。-+|注册表。采用||名称控制生效默认值||PS点大小下一段。10||与下一段垂直间距相比。12||所有行长下一段。6i||文本||LT下一页行长与页标题LL||相同||FL下一FS 5.5i行长||脚注||PD垂直距离下一段。.3v(特罗夫)||1v(特罗夫)||下一个DS的DD垂直距离。5v(特罗夫)||显示器周围的1v(特罗夫)||PI段。缩进下一段。5N||QI左、右下一QP 5N||QP缩进||FI脚注缩进下一FS 5N||PO下一页偏移量~1i(Troff)||0(Nroff)||HM页眉边距下一页1i||FM下一页页脚边距1i||下一页前M1间距HM/2||标题||下一页后M4空间FM/2||标题|+。-+。

在设置缺省页面布局时,-ms提供了六个字符串寄存器来存储要打印在页面顶部和底部的连续标题。与数字寄存器一样,字符串寄存器也是计算机内存中的存储位置;它们的不同之处在于它们的内容是字符串而不是数字值。除第一页(大概有标题)之外,每页顶部的三毫秒字符串寄存器名称是LH、CH和RH。它们表示打印位置的左侧、中部和右侧

对于nroff输出,默认值ch是由连字符括起来的当前页码;cf包含计算机提供的当前日期。对于troff,ch值也包含页码,但cfis为空。对于nroff和troff,其他四个寄存器默认情况下都是空的。您可以使用命令.ds(";定义字符串";)为字符串寄存器赋值。例如:

这会导致字符串";NOT FOR PUBLICATION";打印在每页的右下角。不需要用双引号将参数括起来;这是参数内空格规则的另一个例外。要删除字符串寄存器,只需使用.rm命令即可。例如,要清除字符串寄存器CH,使后续页面的中心标题为空,请使用以下命令:

在页眉和页脚中,页眉和页脚都是指nroff的自动页面计数器的特殊符号。如果要在页码的两侧使用连字符,请将它们放在命令中%的任意一侧。

还可以生成在偶数页和奇数页上不同的自定义页眉和页脚。.OH和.EH宏定义奇数和偶数页眉,而.OF和.EF定义奇数和偶数页脚。这四个宏的参数必须包含在一组四个撇号中。例如:

在本例中,标题(此处的斜体,请参阅第2.4节)通过括在第一个和第二个撇号之间的方式打印在奇数页的左侧。中间区域留空,因为不会在中央页眉区域打印任何内容。请注意,这两个标记是单撇号,而不是双引号。页码指定(斜体,因为它在字体更改范围内)出现在第三和第四个撇号之间的右侧。左侧的任何变体。通过调整由四个撇号分隔的区域内的标题部分,可以创建右侧位置。重要的是,不要在标题文本中使用撇号,除非您在标题的左、中和右部分周围使用不同的分隔符。您可以使用任何字符作为分隔符,只要它不使用';在.OH、.EH、.OF或.EF的参数中,不会出现在其他位置。标题长度的默认限制是9个单词。如果需要更多内容,请将整个标题参数括在双引号中,也包括四个撇号。

另一个涉及页眉和页脚的新功能是.TM宏,用于根据伯克利标准打印论文。(此论文模式非常类似于-me中的.th宏)。它会自动将页码放在每页的右上角,并对第一页进行编号。此外,它会取消中间页脚中的日期,并将除引号、显示和保留之外的所有内容加倍。它应该用在组成论文的每个文件的顶部。作为副产品,.TM的调用定义了章节标题的.CT宏。每当新章节开始时,使用此宏会将页码从右页眉移动到中心页脚。与之类似,即使没有论文模式也可以使用.P1(P ONE)宏,打印第1页的页眉(包括页码)。如果要使用罗马数字页码,请将该行放在文件的开头:

在引用页码的任何行中-其中,例如要放置页眉或页脚-使用\\n(PN而不是%)。要返回到阿拉伯数字并从第1页开始新的一节,请插入以下行:

如果设置字符串和数字寄存器的值的命令要从输出的第一页起生效,则它们应该放在输入文件的开头或附近,在开始宏之前(而开始宏必须在第一行文本之前)。(初始化或开始宏可以是标题宏,也可以是段落或小节标题宏之一。这一点在第1.3节中讨论。输入文件的示例开始在第6节中显示。)因为开始宏会导致所谓的伪。对于纸张的第一页(包括该页的页首处理),尤其重要的是,在过渡到要生效的页面之前,应放置更改页面偏移量、上下边距、PO、HM和FM编号寄存器以及页眉字符串寄存器的值的命令。附录B列出了可以设置uPA文件的可能命令和可以启动文件的命令。

某些外语重音符号已预定义为-ms包中的字符串。要使用它们,请在要强调的字母之前放置对重音字符串的引用。在输入文本中,字符串引用位于字母";e";之前,例如:

以下是DEFAULT提供的七个重音字符串的列表及其打印形式的示例:

输入输出输入输出输出\*';eé\*~aã\*`eè\*:uü\*,cç\*ce[对不起,无法在HTML中做--JRP]\*.Eê.。

现在有大量额外的外国重音符号以及上面七个变音符号的更好定义可供使用。要使用它们,命令.AM必须包含在文档的开头。与默认的-ms重音符号不同,新的重音字符串应该放在要强调的字母之后。但是,某些外语结构完全由重音字符串组成。请小心区分下表中的哪个是哪个:[对不起,其中一些是';

重音符号输入output--急性重音e*';éGrave accent e\*`èspirflex o\*ôcedilla c\*,çtilde n\*~ñproblem\*?感叹\*!元音u*:üdigraph s 8?hacek c*v马克龙a*_下点s\*。o-斜杠o*/øangstrom a*o­yogh KNI\*(Th?thorn\*(TH Eth\*(D-Ig-Eth\*(d-Ika Hooko\*Q ae Ligature\*(aeæAE Ligature\*(Ae?OE Ligature\*(OE OLigature\*(Oe?Oe Ligature\*(Oe。

如果.am不在文件顶部,这些新的变音符号将不会出现或放置在错误的字母上。如果.am位于文件的顶部,则默认的-ms重音符号将放置在错误的字母上。选择一组或另一组并一致使用。

为了帮助生成可以使用nroff和troff正确格式化的文本,有一些新的字符串定义为这两个格式化程序中的每一个程序定义了破折号和引号。\(*-字符串将在nroff中生成两个连字符,但在troff中它将生成一个em破折号--就像这样。\*q和\(*U字符串将在troff中生成开始引号和结束引号,但在nroff中生成直接的双引号。(在排版中,双引号。

ms宏组成了一个软件包,因为它们旨在满足大多数格式化需求,并且不需要学习关于更多组件的大量详细信息。

..