Text-Processing

Gnu nroff - 在行首輸出帶點的行

  • April 21, 2017

我試圖用原始(無宏)GNU 編寫一個自我複製程序(“quine”)nroff。誠然,這是毫無意義且古怪的,但以前似乎沒有這樣做過。我沒有這樣做。

我很確定,無論誰成功編寫了無宏nroff輸入語言 quine,都需要定義字元串、宏或“框”。為此,您需要編寫如下請求:

.as s "just assigned this to string s
.de xxx
.nop "\*s"
..
.xxx

也就是說,nroff輸入中的每個請求都有一個“。” 在行的開頭。

由於 qui​​nes 只是輸出他們的原始碼(沒有作弊),輸出可能必須有 ‘.’ 作為幾個輸出行的第一個字元。

你到底是如何讓 GNUnroff輸出一個 ‘.’ 的?行首的字元?據我所知,任何間接或轉義都無法做到。是否有一些隱藏的請求會輸出“。” 在一行的開頭?

我正在使用最近同步的 Arch Linux,它安裝了 Groff 1.22.3。

mdoc(7)

The special meaning of a punctuation character may be escaped with the string ‘\&’

所以:

\&.

然而,這與後續行結合起來可能會很棘手,例如

\&.
\&.as s "nron, nroff--very good, again!

一起執行(並產生一大堆空白行)

$ nroff blah | head -2
.  .as s "nron, nroff‐‐very good, again!

儘管您可以通過添加空行或可能使用其他宏來解決此問題

\&.

\&.as s "nron, nroff--very good, again!

雖然我不知道這將如何影響奎因的需求……

引用自:https://unix.stackexchange.com/questions/360438