当我在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

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

  1. sc计算机技术,计算机学院师生首次在超级计算旗舰会议SC上发表学术论文

    我校计算机学院中德所杨海龙副教授团队(HiPO)的两篇论文被The International Conference for High Performance Computing, Networkin ...

  2. 计算机网络工程期刊,信息工程学院李挥教授课题组在计算机网络顶级期刊JSAC上发表学术论文...

    近日,信息工程学院李挥教授课题组在计算机网络方向顶级期刊IEEE Journal on Selected Areas in Communications(JSAC) "网络虚拟化关键技术&q ...

  3. linux4 sd卡驱动,在Linux上,如何格式化USB驱动器和SD卡

    在Linux中,你可以使用图形工具,如GParted或命令行工具,例如fdisk或parted,来格式化驱动器和分区. 在本教程中,向你展示如何使用Linux的parted工具格式化USB驱动器或SD ...

  4. “交通·未来”系列线上公益学术活动等你来~

    1.活动背景 交通领域的科研圈子,同行间深入交流甚少,导致其相对较封闭,这极不利于重大的科研创新.闭门造车,很难出好的成果,我们不能和别人比,但一定要向别人学习,有时候听君一席话,可能会胜读十年书. ...

  5. linux 磁盘格式化 恢复数据,从格式化为 exfat 的损坏 U 盘上恢复数据的记录

    把一个格式化为 exfat 格式的 64GB U 盘放到一个老旧的 Android 平板上用了一下,结果就无法识别了.在电脑上也是无法用,Windows 提示需要格式化,Linux 无法挂载但是可以显 ...

  6. Linux 上 12 个高效的文本过滤命令

    在这篇文章中,我们将会看一些 Linux 中的过滤器命令行工具.过滤器是一个程序,它从标准输入读取数据,在数据上执行操作,然后把结果写到标准输出. 因此,它可以用来以强大的方式处理信息,例如重新结构化 ...

  7. 250g硬盘linux分区,linux分区格式化命令使用方法

    linux分区格式化命令使用方法 首先使用root权限登陆进入linux操作界面 使用fdisk -l 参数查看设备名跟设备状态 类似如下 : [root@ecofe2 /]# fdisk -l Di ...

  8. 如何在 Linux 上安装服务器管理软件 Cockpit

    如何在 Linux 上安装服务器管理软件 Cockpit Cockpit 是一个自由开源的服务器管理软件,它使得我们可以通过它好看的 web 前端界面轻松地管理我们的 GNU/Linux 服务器.Co ...

  9. Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo

    随笔 - 70  文章 - 0  评论 - 88 Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo 近期为了分析国内航空旅游业常见安全漏洞,想到 ...

最新文章

  1. 转tigase 安装
  2. 同步和互斥在进程并发执行相互间会有什么影响
  3. BPM与Workflow的区别
  4. docker利用Dockerfile来制作镜像
  5. LeetCode 145. 二叉树的后序遍历(递归)(迭代)(颜色标记法)
  6. 机器学习-西瓜书、南瓜书第六章
  7. 伦巴时间步的动作要领_成人拉丁舞_伦巴、恰恰、桑巴舞、牛仔舞、斗牛舞
  8. 【运动学】基于matlab计步【含Matlab源码 524期】
  9. 算法:回溯五 数组全排列permutations
  10. 银行排队叫号系统项目总结
  11. java中Joiner的使用笔记
  12. Android 高通8909 系统之路之 裁剪系统 一
  13. C++将两个字符串合并在一起
  14. 前端间隔查询的两种方法:Debounce和Throttle
  15. 计算机视觉---opencv人脸识别
  16. 钱多多软件制作第四天
  17. 字符串format拼接格式化
  18. EBS成本类型和算法
  19. YOLOv5检测界面-PyQt5实现
  20. 初中计算机罗辑思维测试,逻辑思维能力测试20题_数学教学中学生创造思维能力的培养...

热门文章

  1. Docker图形化工具Portainer
  2. Eureka获取注册信息
  3. 关于多线程的几个问题
  4. JAVA IO基本知识
  5. 使用networkx求解网络的平均度
  6. 从零开始学 Kotlin 之「2」数据类型
  7. 例行性工作 排程(crontab)
  8. 精通Python网络爬虫:核心技术、框架与项目实战.3.2 爬行策略
  9. Stack Overflow: The Architecture - 2016 Edition(Translation)
  10. 用awk 取出ifconfig eth0中IP的方法