首页
学习
活动
专区
圈层
工具
发布

groff算法
EN

Unix & Linux用户
提问于 2019-07-28 20:16:13
回答 1查看 260关注 0票数 3

是否可以使用groff执行算术?

假设我想计算当前的页面是什么,我现在在第2页。我可以通过以下方法获得下一页的编号:

代码语言:javascript
复制
.PP
Next page is number \n[.pn]

它将编译为Next page is number 3

如何执行算术以代替呈现:

代码语言:javascript
复制
.PP
Current page is ((\n[.pn]-1))

变成Current page is 2

EN

回答 1

Unix & Linux用户

发布于 2019-07-29 01:45:34

是的,groff可以执行算术。这在GNU格式(使用info groffpinfo groff查看完整手册)的GNU格式的完整groff手册中有文档记录,手册页只是一个快速引用,完整的文档是Info格式的。

来自https://www.gnu.org/software/groff/manual/html_节点/Expressions.html

gtroff有其他语言共有的大多数算术运算符:

  • 算术:‘+’(加法),‘-’(减法),‘/’(除法),‘*’(乘法),‘%’(模)。

gtroff只提供整数算法。用于计算结果的内部类型是“int”,通常是32位有符号整数。

  • 比较:<(小于)、‘>(>)、’<=‘(小于或等于)、’>=‘(大于或等于)、’=‘(相等)、’==‘(与’=‘相同).
  • 逻辑:‘&’(逻辑和),‘:’(逻辑或)。
  • 一元运算符:‘-’(否定,即改变符号),‘+’(只是为了完整性,在表达式中什么都不做),‘!’(逻辑上没有;这只在如果请求和同时请求中起作用)。有关在运行请求中使用一元运算符的情况,请参见下文。

如上文所述,逻辑not运算符仅在if和while请求中工作。此外,它可能只出现在表达式的开头,并否定整个表达式。试图插入‘!’表达式中的运算符将产生“数字表达式预期”警告。这保持了与旧版本troff的兼容性。示例:.nr X 1 .nr Y 0 .\“这不像预期的.if (\nX)和(!\n是) .nop X。.\”只使用.if (\nX=1)和(n是=0) .nop X。

顺便说一下,info是标准的GNU文档查看器。pinfo是一种可供选择的查看器,它提供了一个更像“浏览器”的用户界面,类似于像lynx这样的文本web浏览器。我个人无法忍受info而使用pinfo。它可用于大多数发行版的预打包,源代码可在上面的pinfo链接中获得。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/532631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档