在 Linux 上使用 groff -me 格式化你的学术论文 | Linux 中国

简介: 在 Linux 上使用 groff -me 格式化你的学术论文 | Linux 中国

在 Linux 上使用 groff -me 格式化你的学术论文 | Linux 中国

译者:amwps290 Linux中国 2018-05-06 13:59学习用简单的宏为你的课程论文添加脚注、引用、子标题及其它格式。-- Jim Hall

有用的原文链接请访问文末的“原文链接”获得可点击的文内链接、全尺寸原图和相关文章。致谢编译自 | https://opensource.com/article/18/2/how-format-academic-papers-linux-groff-me

 作者 | Jim Hall

 译者 | amwps290 🌟 🌟 共计翻译:10 篇 贡献时间:51 天

学习用简单的宏为你的课程论文添加脚注、引用、子标题及其它格式。

当我在 1993 年发现 Linux 时,我还是一名本科生。我很兴奋在我的宿舍里拥有 Unix 系统的强大功能,但是尽管它有很多功能,但 Linux 却缺乏应用程序。像 LibreOffice 和 OpenOffice 这样的文字处理程序还需要几年的时间才出现。如果你想使用文字处理器,你可能会将你的系统引导到 MS-DOS 中,并使用 WordPerfect、共享软件 GalaxyWrite 或类似的程序。

这就是我的方法,因为我需要为我的课程写论文,但我更喜欢呆在 Linux 中。我从我们的 “大 Unix” 校园计算机实验室得知,Unix 系统提供了一组文本格式化的程序 nrofftroff,它们是同一系统的不同接口:nroff 生成纯文本输出,适用于屏幕或行式打印机,而 troff 产生非常优美的输出,通常用于在激光打印机上打印。

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

关于 groff ,首先要了解的是它根据一组宏来处理和格式化文本。宏通常是个两个字符的命令,它自己设置在一行上,并带有一个引导点。宏可能包含一个或多个选项。当 groff 在处理文档时遇到这些宏中的一个时,它会自动对文本进行格式化。

下面,我将分享使用 groff -me 编写课程论文等简单文档的基础知识。 我不会深入细节进行讨论,比如如何创建嵌套列表,保存和显示,以及使用表格和数字。

段落

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

  1. .lp
  2. Thisis the first paragraph.
  3. .pp
  4. Thisis a standard paragraph.

文本格式

用粗体格式化文本的宏是 .b,斜体格式是 .i 。 如果您将 .b.i 放在一行上,则后面的所有文本将以粗体或斜体显示。 但更有可能你只是想用粗体或斜体来表示一个或几个词。 要将一个词加粗或斜体,将该单词放在与 .b.i 相同的行上作为选项。 要用粗体或斜体格式化多个单词,请将文字用引号引起来。

  1. .pp
  2. You can do basic formatting such as
  3. .i italics
  4. or
  5. .b "bold text."

在上面的例子中,粗体文本结尾的句点也是粗体。 在大多数情况下,这不是你想要的。 只要文字是粗体字,而不是后面的句点也是粗体字。 要获得您想要的效果,您可以向 .b.i 添加第二个参数,以指示以粗体或斜体显示的文本后面跟着的任意文本以正常类型显示。 您可以这样做,以确保尾随句点不会以粗体显示。

  1. .pp
  2. You can do basic formatting such as
  3. .i italics
  4. or
  5. .b "bold text".

列表

使用 groff -me,您可以创建两种类型的列表:无序列表(.bu)和有序列表(.np)。

  1. .pp
  2. Bullet lists are easy to make:
  3. .bu
  4. Apple
  5. .bu
  6. Banana
  7. .bu
  8. Pineapple
  9. .pp
  10. Numbered lists are as easy as:
  11. .np
  12. One
  13. .np
  14. Two
  15. .np
  16. Three
  17. .pp
  18. Note that numbered lists will reset at the next pp orlp.

副标题

如果你正在写一篇长论文,你可能想把你的内容分成几部分。使用 groff -me,您可以创建编号的标题(.sh) 和未编号的标题 (.uh)。在这两种方法中,将节标题作为参数括起来。对于编号的标题,您还需要提供标题级别 :1 将给出一个一级标题(例如,1)。同样,23 将给出第二和第三级标题,如 2.13.1.1

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

智能引号和块引号

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

  1. .pp
  2. ChristinePeterson coined the phrase \*(lqopen source.\*(rq

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

  1. .pp
  2. ChristinePeterson coined the phrase
  3. .q "open source."

如果引用的是跨越几行的较长的引用,则需要使用一个块引用。为此,在引用的开头和结尾插入块引用宏(.(q)。

  1. .pp
  2. ChristinePeterson recently wrote about open source:
  3. .(q
  4. OnApril7,1998,Tim O'Reilly held a meeting of key
  5. leaders in the field. Announced in advance as the first
  6. .q "Freeware Summit,"
  7. by April 14 it was referred to as the first
  8. .q "Open Source Summit."
  9. .)q

脚注

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

  1. .pp
  2. ChristinePeterson recently wrote about open source:\**
  3. .(f
  4. \**ChristinePeterson.
  5. .q "How I coined the term open source."
  6. .i "OpenSource.com."
  7. 1Feb2018.
  8. .)f
  9. .(q
  10. OnApril7,1998,Tim O'Reilly held a meeting of key
  11. leaders in the field. Announced in advance as the first
  12. .q "Freeware Summit,"
  13. by April 14 it was referred to as the first
  14. .q "Open Source Summit."
  15. .)q

封面

大多数课程论文都需要一个包含论文标题,姓名和日期的封面。 在 groff -me 中创建封面需要一些组件。 我发现最简单的方法是使用居中的文本块并在标题、名字和日期之间添加额外的行。 (我倾向于在每一行之间使用两个空行)。在文章顶部,从标题页(.tp)宏开始,插入五个空白行(.sp 5),然后添加居中文本(.(c) 和额外的空白行(.sp 2)。

  1. .tp
  2. .sp 5
  3. .(c
  4. .b "Writing Class Papers with groff -me"
  5. .)c
  6. .sp 2
  7. .(c
  8. JimHall
  9. .)c
  10. .sp 2
  11. .(c
  12. February XX,2018
  13. .)c
  14. .bp

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

更多内容

这些是用 groff-me 写一份专业的论文非常基础的东西,包括前导和缩进段落,粗体和斜体,有序和无需列表,编号和不编号的章节标题,块引用以及脚注。

我已经包含一个示例 groff 文件[2]来演示所有这些格式。 将 lorem-ipsum.me 文件保存到您的系统并通过 groff 运行。 -Tps 选项将输出类型设置为 PostScript ,以便您可以将文档发送到打印机或使用 ps2pdf 程序将其转换为 PDF 文件[3]

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

如果你想使用 groff -me 的更多高级功能,请参阅 Eric Allman 所著的 “使用 Groff -me 来写论文”,你可以在你系统的 groff 的 doc 目录下找到一个名叫 meintro.me 的文件。这份文档非常完美的说明了如何使用 groff-me 宏来格式化你的论文。


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

作者:Jim Hall[5] 译者:amwps290 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


阅读原文

喜欢此内容的人还喜欢

Wave:即使你讨厌命令行,也会喜欢的现代新 Linux 终端 | Linux 中国

 

Linux中国

不喜欢

不看的原因

确定

  • 内容质量低
  • 不看此公众号

硬核观察 #1195 特斯拉开源其跑车的所有设计和工程资源

 

Linux中国

不喜欢

不看的原因

确定

  • 内容质量低
  • 不看此公众号

Moosync:一款充满特色的开源音乐播放器 | Linux 中国

 

Linux中国

目录
相关文章
|
7月前
|
存储 算法 Shell
【Shell 命令集合 文档编辑】Linux 格式化输出 ispell命令使用指南
【Shell 命令集合 文档编辑】Linux 格式化输出 ispell命令使用指南
64 3
|
7月前
|
存储 Shell Linux
【Shell 命令集合 文档编辑】Linux 格式化输出 Shell fold命令使用指南
【Shell 命令集合 文档编辑】Linux 格式化输出 Shell fold命令使用指南
63 2
|
7月前
|
算法 Shell Linux
【Shell 命令集合 文档编辑】Linux 格式化文本文件fmt命令使用教程
【Shell 命令集合 文档编辑】Linux 格式化文本文件fmt命令使用教程
77 2
|
7月前
|
存储 算法 Shell
【Shell 命令集合 磁盘维护 】Linux 对软盘进行格式化操作 fdformat命令使用指南
【Shell 命令集合 磁盘维护 】Linux 对软盘进行格式化操作 fdformat命令使用指南
84 0
|
7月前
|
IDE Linux 开发工具
Linux添加硬盘并进行分区、格式化、挂载及卸载
Linux添加硬盘并进行分区、格式化、挂载及卸载
367 0
|
Linux 人机交互 C语言
Linux系统中如何实现串口的格式化功能方法
Linux系统中如何实现串口的格式化功能方法
75 0
|
7月前
|
Kubernetes Shell Linux
linux|shell脚本|有趣的知识---格式化输出日志和脚本调试方法以及kubernetes集群核心服务重启和集群证书备份脚本
linux|shell脚本|有趣的知识---格式化输出日志和脚本调试方法以及kubernetes集群核心服务重启和集群证书备份脚本
222 0
|
2月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
70 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
5月前
|
Linux Shell
linux date格式化获取时间
linux date格式化获取时间
67 1
|
4月前
|
存储 安全 Linux
在Linux中,如何格式化一个磁盘分区?
在Linux中,如何格式化一个磁盘分区?