前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术|在 Linux 上使用 groff-me 格式化你的学术论文

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

原创
作者头像
用户8710643
修改2021-07-12 10:35:02
1.6K0
修改2021-07-12 10:35:02
举报
文章被收录于专栏:linux百科小宇宙linux百科小宇宙

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

当我在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宏来格式化你的论文。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档