Terminal

更改終端字型大小後使用正確的格式重繪手冊頁

  • July 3, 2020

如果我在最大化終端中打開手冊頁,然後增加字型大小(“放大”),文本仍然可讀,但格式被扭曲。即,段落縮進和邊距失去。

man lessxterm無縮放

man less字型大小增加後xterm(用Shift+完成KeyPad +): 帶變焦

這會損害可讀性。退出手冊頁並再次打開它可以解決問題(文本格式正確),但這是一個笨拙的解決方法,它通常意味著我需要導航回我正在閱讀的文本。

**更改字型大小後有什麼方法可以恢復正確的格式?**附加資訊:

  • man用作less尋呼機。more因為尋呼機沒有幫助。縮放後它甚至不換行,從而導致部分文本消失。
  • Bash 的checkwinsize選項已打開。
  • 其他終端 ( xfce4-terminal, terminator) 中的相同問題。
  • less重新繪製鍵綁定 ( r, R, Ctrl-R, )都沒有Ctrl-L幫助。

手冊頁,在很大程度上忽略了預處理階段,是這樣工作的:

  • troff 源,具有多個宏集之一,被轉換為 ditroff(“設備無關的 troff”)輸出格式,在 GNU 世界中也稱為中間輸出格式
  • ditroff 輸出被後處理器渲染為特定設備(或設備系列)的最終輸出格式,例如(來自 GNU 工具集)grotty、、、gropdf等等grohtml。原始 ditroff 的實際 Unix 後處理器被稱為諸如 , 之類的東西devpsdevX75並且devlp還有第三方的後處理器,例如 TextWare 的tplus.
  • grotty終端設備(在 GNU 工具集中)的後處理器的輸出被饋送到一個選擇的尋呼機。

它的知名度還不夠高,但 Unix 尋呼機的輸入是 1968 年提供給 Teletype 37 型紙質終端的輸入,在項目符號列表中為下劃線、粗體和花哨的項目符號添加了重劃線。然後尋呼機將其轉換為適合實際終端類型的控制序列。(大多數 Unix 尋呼機無法處理花哨的過度子彈,並且它們不會以交叉圓圈的+形式出現,被 過度撞擊o,它們實際上處於 7 位模式。)

一些尋呼機,例如less可以處理來自 ECMA-48 的“新”終端編碼,該編碼於 1976 年首次發布並用於影片終端,但它們並不是特別聰明,如果使用任何東西都可能出錯,而不是最基本的 ECMA-48 功能。

grotty可以輸出其中任何一個。遺憾的是,它通常被一些本地配置文件強制使用舊的 1968 紙終端輸出格式。

當事情到達尋呼機時,文件已經被後處理器格式化為特定的設備寬度(它將“設備無關”轉換為“設備特定”記住)。 less, more, 並且most不負責包裝,也不要重新包裝。正如您所發現的,如果終端寬度減小到低於用於格式化文件的寬度,您將得到的最好結果是從這些尋呼機橫向滾動。

通過使用其他輸出格式之一,您可能更接近重排手冊頁,但這顯然不會涉及將 Unix 尋呼機作為最終文件查看器。

進一步閱讀

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