专栏首页linux百科小宇宙技术|在 Linux 上使用 groff-me 格式化你的学术论文
原创

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.ppChristinePetersonrecentlywroteaboutopensource:.(qOnApril7,1998,TimO'Reillyheldameetingofkeyleadersinthefield.Announcedinadvanceasthefirst.q"FreewareSummit,"byApril14itwasreferredtoasthefirst.q"OpenSourceSummit.".)q脚注要插入脚注,请在脚注文本前后添加脚注宏(.(f),并使用内联宏(\**)添加脚注标记。脚注标记应出现在文本中和脚注中。

.ppChristinePetersonrecentlywroteaboutopensource:\**.(f\**ChristinePeterson..q"HowIcoinedthetermopensource.".i"OpenSource.com."1Feb2018..)f.(qOnApril7,1998,TimO'Reillyheldameetingofkeyleadersinthefield.Announcedinadvanceasthefirst.q"FreewareSummit,"byApril14itwasreferredtoasthefirst.q"OpenSourceSummit.".)q封面大多数课程论文都需要一个包含论文标题,姓名和日期的封面。在groff-me中创建封面需要一些组件。我发现最简单的方法是使用居中的文本块并在标题、名字和日期之间添加额外的行。(我倾向于在每一行之间使用两个空行)。在文章顶部,从标题页(.tp)宏开始,插入五个空白行(.sp5),然后添加居中文本(.(c)和额外的空白行(.sp2)。

.tp.sp5.(c.b"WritingClassPaperswithgroff-me".)c.sp2.(cJimHall.)c.sp2.(cFebruaryXX,2018.)c.bp最后一个宏(.bp)告诉groff在标题页后添加一个分页符。

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

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

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 每天学一个 Linux 命令(15):man

    https://github.com/mingongge/Learn-a-Linux-command-every-day

    民工哥
  • javaer的目标,是星辰大海!

    有一天,我去爬山。突然脚一滑,掉下了悬崖。摔的眼冒金星,精神破碎,最终掉到一个山洞中。山洞中央有一个宝盒,打开以后是一本书,细看是一份JAVA开发者的秘籍。举目...

    xjjdog
  • 使用bash编写Linux shell脚本--调试和版本控制

    当我还在布鲁克大学上学的时候, Macquarium 实验室中充满了苹果公司的 Macintosh Plus 电脑。一天,我在为第三年的操作系统课程准备一个程序...

    猿人谷
  • Linux 命令(0)—— man 命令

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    Dabelv
  • Mac 10.13 安装中文版 man 命令

    Mac 10.13 安装中文版 man 命令 本文参考于 《Mac 安装man命令中文文档》,但原文提供的链接以及安装的版本比较老旧。因此重新整理新版在这边提供...

    FungLeo
  • 王炸!!IDEA 2021.1 推出语音、视频功能,边写代码边聊天,我真的服了…

    如上图所示,2021.1 更新了 9 个新特性,下面栈长会一一体验给大家介绍一下。

    Java技术栈
  • 程序猿必须知道的一些有用的(外国)网站

    原文:https://github.com/sdmg15/Best-websites-a-programmer-should-visit

    华章科技
  • Linux man命令的具体使用

    Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。

    砸漏
  • 程序猿必须知道的一些有用的网站

    来自:开源中国 原文:https://github.com/sdmg15/Best-websites-a-programmer-should-visit 在学习...

    企鹅号小编
  • 如何使用BPF将SSH会话转换为结构化事件

    Teleport 4.2引入了一个名叫增强型会话记录(Enhanced Session Recording)的新功能,该功能可以接收一个非结构化的SSH会话,并...

    FB客服
  • 10.2.为什么需要Docker?

    估计大家也可能听过Docker这项技术(在论坛上、招聘技能上、交流群上等等),要是不了解Docker,都不好意思在网上冲浪的时候吹牛逼了。

    itjim
  • 【Rust日报】 2019-05-15:Rust 4周岁生日快乐!

    不知不觉,Rust1.0发布已经四周年了。 Rust 1.0是2015年5月15号发布。所以,四年了,大家学会Rust了吗?

    MikeLoveRust
  • 合法练习黑客技术?这15个网站也许可以帮到你

    俗话说得好,最好的防守就是进攻,而这句话同样适用于信息安全领域。接下来,我们将给大家介绍15个最新的网络安全网站。 无论你是开发人员、安全专家、审计人员、或者是...

    FB客服
  • 合法练习黑客技术?这15个网站也许可以帮到你

    来自:FreeBuf.COM(微信号:freebuf) 链接:www.freebuf.com/special/123961.html(点击尾部阅读原文前往)...

    顶级程序员
  • 张亚勤寄语哥伦比亚大学2020年毕业生:引领未知时代

    5月18日,人工智能和数字视频的世界级科学家和企业家,美国艺术与科学院院士、百度前总裁、清华大学智能科学讲席教授张亚勤博士,在哥伦比亚大学工学院的毕业典礼上发表...

    数据猿
  • GitHub 热点速览 Vol.12:不可思议的浏览器 browser-2020 周涨 star 超 3 千

    以下内容摘录自上周 HelloGitHub 微博的 GitHub Trending,选项标准:新发布 | 实用 | 有趣,根据项目 release 时间分类,发...

    HelloGitHub
  • 开源软件那么多,我们该如何选择?|洞见

    当我们说起开源软件的时候,想必大家都有丰富的使用经历,小到Node.js的一个组件库,大到一套办公软件如LibreOffice,再如Linux操作系统,可以说无...

    ThoughtWorks
  • 如何学习Java?谈Java学习之路

    Java光学习书籍就数不胜数,初学者对于如何学习Java往往一头雾水。在我们学习Java之前就应该先做好以下几点: 1. 思考一下 学习Java之前,先别急,静...

    企鹅号小编
  • SAP Lot Size  批量大小 介绍

    而在 PLANNING RUN 的时候,SAP 又区分为 short term setting(for MRP, MPS ) and long term set...

    用户5495712

扫码关注云+社区

领取腾讯云代金券