当前位置: 首页 > 工具软件 > Groff > 使用案例 >

如何使用groff -me在Linux上格式化学术论文

萧浩漫
2023-12-01

当我在1993年发现Linux时,我是一名本科生。我很高兴能在宿舍中拥有Unix系统的强大功能,但是,尽管它具有许多功能,但是Linux却缺少应用程序。 像LibreOffice和OpenOffice这样的文字处理器距离已经有好几年了。 如果要使用文字处理器,则可能将系统引导至MS-DOS并使用了WordPerfect,共享软件GalaxyWrite或类似程序。

nrofftroff 。 它们是同一系统的不同接口: nroff生成纯文本输出,适用于屏幕或行式打印机, troff生成非常漂亮的输出,通常用于在激光打印机上进行打印。

在Linux上, nrofftroff合并为GNU troff,通常更称为groff 。 我很高兴看到早期Linux发行版中包含了groff版本,因此我着手学习如何使用它编写课堂论文。 我学习的第一个宏集是-me宏包,这是一个简单易学的宏集。

关于groff的第一件事是,它根据一组宏来处理和格式化文本。 宏通常是一个两个字符的命令,由一行单独设置,并带有一个前导点。 宏可能包含一个或多个选项。 当groff在处理文档时遇到这些宏之一时,它将自动对文本进行适当的格式设置。

下面,我将分享使用groff -me编写简单文档(如课堂论文)的基础。 我将不深入细节,例如如何创建嵌套列表,保持和显示,表格和图形。

段落

让我们从几乎在每种类型的文档中看到的简单示例开始:段落。 可以使用第一行的缩进或不缩进格式设置段落的格式(即,与左边距齐平)。 许多印刷文档,包括学术论文,杂志,期刊和书籍,都使用这两种类型的组合,文档或章节的第一(前导)段落向左对齐,而所有其他(常规)段落都缩进。 在groff -me ,可以同时使用两种段落类型:前导段落( .lp )和常规段落( .pp )。



   
   
.lp
This is the first paragraph.
.pp
This is a standard paragraph.

文字格式

格式化粗体文本的宏为.b ,以斜体格式化的宏为.i 。 如果您将.b.i单独放在一行上,则其后的所有文本将以粗体或斜体显示。 但是您更有可能只想用粗体或斜体字输入一个或几个单词。 要使一个单词变为粗体或斜体,可以选择将该单词与.b.i放在同一行。 要用 粗体斜体设置多个单词的格式,请用引号将文本引起来。



   
   
.pp
You can do basic formatting such as
.i italics
or
.b "bold text."

在上面的示例中, 粗体文本末尾的句点也将为粗体。 在大多数情况下,这不是您想要的。 仅将粗体字改为粗体,而不是尾随期更正确。 为了获得想要的效果,您可以在.b.i添加第二个参数,以指示任何应在加粗或斜体文本之后的文本,但应为普通类型。 例如,您可以这样做以确保尾随期间不会以粗体显示。



   
   
.pp
You can do basic formatting such as
.i italics
or
.b "bold text" .

清单

使用groff -me ,您可以创建两种类型的列表:项目符号列表( .bu )和编号列表( .np )。



   
   
.pp
Bullet lists are easy to make:
.bu
Apple
.bu
Banana
.bu
Pineapple
.pp
Numbered lists are as easy as:
.np
One
.np
Two
.np
Three
.pp
Note that numbered lists will reset at the next pp or lp.

副标题

如果要写一篇长论文,则可能需要将内容分成几部分。 使用groff -me ,可以创建编号的标题( .sh )和未编号的标题( .uh )。 无论使用哪种方式,都将节标题用引号引起来。 对于编号的标题,您还需要提供标题级别: 1将给出第一级标题(例如1)。 同样, 23将给出第二和第三级标题,例如2.1或3.1.1。



   
   
.uh Introduction
.pp
Provide one or two paragraphs to describe the work
and why it is important.
.sh 1 "Method and Tools"
.pp
Provide a few paragraphs to describe how you
did the research, including what equipment you used

智能报价和大宗报价

在任何学术论文中,都以引用他人的著作为依据。 如果您引用一个简短的引号来突出显示关键消息,则只需在文本周围输入引号即可。 但是groff不会自动将您的引号转换为现代文字处理系统使用的“智能”或“卷曲”引号。 要在groff -me创建它们,请插入一个内联宏以创建左引号( \*(lq )和右引号( \*(rq )。



   
   
.pp
Christine Peterson coined the phrase \*(lqopen source.\*(rq

groff -me还有一个快捷方式来创建这些引号( .q ),我觉得它们更易于使用。



   
   
.pp
Christine Peterson coined the phrase
.q "open source."

如果您引用的跨行较长的引号,则需要使用块引号。 为此,请在引号的开头和结尾插入blockquote宏( .(q )。



   
   
.pp
Christine Peterson recently wrote about open source:
.(q
On April 7, 1998, Tim O'Reilly held a meeting of key
leaders in the field. Announced in advance as the first
.q "Freeware Summit,"
by April 14 it was referred to as the first
.q "Open Source Summit."
.)q

脚注

要插入脚注,请在脚注文本之前和之后添加脚注宏( .(f ),并使用内联宏( \** )添加脚注标记,该脚注标记应同时出现在文本和脚注中本身。



   
   
.pp
Christine Peterson recently wrote about open source:\**
.(f
\**Christine Peterson.
.q "How I coined the term open source."
.i "OpenSource.com."
1 Feb 2018.
.)f
.(q
On April 7, 1998, Tim O'Reilly held a meeting of key
leaders in the field. Announced in advance as the first
.q "Freeware Summit,"
by April 14 it was referred to as the first
.q "Open Source Summit."
.)q

封面

大多数班级论文都要求有一个封面,其中包含论文的标题,您的姓名和日期。 在groff -me创建封面需要一些组装。 我发现最简单的方法是使用居中的文本块并在标题,名称和日期之间添加额外的行。 (我更喜欢在每行之间使用两行空白行。)在纸张顶部,从标题页( .tp )宏开始,插入五行空白行( .sp 5 ),然后添加居中文本( .(c )以及多余的空行( .sp 2 )。



   
   
.tp
.sp 5
.(c
.b "Writing Class Papers with groff -me"
.)c
.sp 2
.(c
Jim Hall
.)c
.sp 2
.(c
February XX, 2018
.)c
.bp

最后一个宏( .bp )告诉groff在标题页之后添加一个分页.bp

了解更多

这些都是用groff -me撰写具有专业外观的论文的要点,该论文包含前导和缩进段落,粗体和斜体文本,项目符号和编号列表,编号和未编号的节标题,方框引号和脚注。

我提供了一个示例groff文件来演示所有这些格式。 将lorem-ipsum.me文件保存到系统中,然后通过groff运行它。 -Tps选项将输出类型设置为PostScript,因此您可以使用ps2pdf程序将文档发送到打印机或将其转换为PDF文件。



   
   
groff -Tps -me lorem-ipsum.me > lorem-ipsum.me.ps
ps2pdf lorem-ipsum.me.ps lorem-ipsum.me.pdf

如果您想在groff -me使用更高级的功能,请参阅Eric Allman的“使用−me使用Groff编写论文”,您可以在groff的doc目录中的meintro.me上找到它。 这是一个很好的参考文档,解释了使用groff -me宏格式化纸张的其他方法。

翻译自: https://opensource.com/article/18/2/how-format-academic-papers-linux-groff-me

 类似资料: