調整konsole(和其他CLI應用程式)垂直行距,可能嗎?

調整konsole(和其他CLI應用程式)垂直行距,可能嗎?

是否可以減少konsole中的垂直行間距?

在「設定/進階」下,有一個「行間距」選項,但它只能降至 0,即使為 0,行之間也有相當大的空間(即,排版中通常提到的太多空間)領導,文字行之間的空白垂直間距)。我使用的是非常垂直保守的Inconsolata 字體,例如,與Monospace 相比,它的垂直間距最小,但即使使用這種字體,在我使用的磅值(13) 下,行之間的間距仍然太大。

有沒有什麼方法可以進一步減少垂直行間距,而不必修改字體本身來補償?許多編輯器都允許這樣做,但我無法找出任何方法在 Konsole(低於零)或整個 KDE 中作為某種系統設定來做到這一點。

答案1

對於任何有興趣的人,我已經找到了一種方法來做到這一點,但它確實涉及字體編輯。這應該會節省你幾個小時,甚至幾天的谷歌搜尋和挫折感,因為我知道我花了太多的時間試圖弄清楚所有這些。請不要因為階梯上的文字牆而氣餒。整個過程從字面上看不到五分鐘。我剛剛花了很長時間才完全拼出它,所以可能需要五分鐘:)並且有盡可能少的歧義關於做什麼以及按什麼順序進行。

以下是您如何在所有 Linux GUI 應用程式中根據自己的喜好調整垂直行距:

  1. 下載並安裝 FontForge(該套件應使用fontforgeyumapt-getdnf您使用的任何套件管理器來呼叫)。如果您喜歡手動執行操作,也可以在 github 中找到它:github安裝詳細信息
  2. 打開您想要更改的字體(在我的例子中為 Inconsolata)。注意:在更改字體甚至創建新字體之前(我強烈建議這樣做),請將舊字體複製到/usr/share/fonts/...~/.local/share/fonts在本地fonts目錄中進行所有更改(或添加新字體),作為獎勵,您將編寫權限,無需root 訪問權限(to /usr/share/fonts)。
  3. 好的,回到 FontForge,您可以執行它:fontforge安裝後。首先從.local/share/fonts將原始字體複製到的目錄中開啟字體。.local/share/fonts假設您從主目錄啟動 fontforge,只需輸入,它就會帶您進入該目錄。請注意,fontforge 不喜歡用~字元取代您的主目錄,因此請使用相對或絕對路徑,但~在開啟字體檔案時不要使用。如果您的字體有子目錄,只需按一下該子目錄即可將其打開,最後選擇並開啟字體本身。在我們更改任何其他內容之前,我們應該重命名字體。從選單中選擇元素/字型資訊... 以開啟Font Information對話方塊。轉到左側的常規類別,讓我們透過在字體名稱後面加上後綴來更改字體名稱(例如,我將 Inconsolata 更改為 InconsolataDense80,以表明我將把垂直行間距(即行距)減小到 80其現值的百分比)。確保分別對「字體名稱」、「姓氏」和「人類名稱」欄位進行三次此變更。
  4. 接下來,選擇左側的 OS/2 類別(誰會想到它???),然後選擇頂部的 Metrics 標籤。
  5. 我們將修改 HHead Ascent 和 Descent 值,這是影響 Linux 上垂直間距的唯一兩個值。祝你好運,自己解決這個問題。我花了很長時間才找到這些眾所周知的大海撈針、未加工的鑽石,您選擇的類比:)!
  6. 在進行任何更改之前,請務必記錄(例如寫下)當前值。
  7. 現在要更改垂直間距,我們需要將兩個值乘以一個係數,具體取決於您想要減少垂直間距的量(對我來說,我使用了當前值的 80%)。對於 99% 的情況,您可能想要對兩者使用相同的因子。如果這不起作用或導致顯示偽影,您可以稍後使用不同的因素來微調各個值,這是絕對的最後手段。人為因素也可能意味著您已經將值減少太多,並且通過減少我的意思是向零移動(即減少它們的幅度,它們的絕對值,因為 HHead Descent 可能是負的,所以您實際上會以如果將其乘以正百分比比例因子,則具有數值意義)。
  8. 將每個 HHead Ascent 和 Descent 設定為您在步驟 7 中計算的值(例如,先前值的 80% 是一個好的開始)
  9. 我們已經完成了“字體資訊”對話框,所以讓我們單擊“確定”按鈕
    1. 此時,讓我們將字體儲存為 .SDF 文件,因此執行“文件/另存為...”,它應該記住您之前設定的字體的新名稱。
    2. 現在要應用我們的更改,我們需要(重新)生成字體。從 FontForge 選單中選擇字體/生成字體...。如果您正在處理 TrueType 字體,請確保在字體檔案名稱下選擇 TrueType。然後點擊生成按鈕。您可能會收到各種檢測到的錯誤,您可以安全地忽略這些錯誤 - 如果似乎繼續生成字體,請單擊該對話框上的“生成”按鈕。
    3. 此時您就可以開始了,但需要重置字體快取。透過鍵入 來執行此操作fc-cache -v -r
    4. 開啟一個新的 konsole 視窗(新字體或甚至可能對現有字體的變更不會顯示在您已開啟的任何視窗中)。
    5. 透過前往“設定/編輯目前設定檔”並選擇“外觀”標籤來選擇新字體。字型選擇選項位於設定頁面。點擊選擇字體...,您應該會看到列出的新字體並能夠選擇它。按一下「確定」後,變更將立即生效。
    6. 恭喜你,你已經完成了!如果線條仍然距離太遠或太近,請返回步驟 7 並將 HHead Ascent/Descent 值調整為其原始值的其他倍數。不要忘記更改(所有三個)字體名稱值來描述您乘以的百分比,以供將來參考,然後確保將字體保存在新文件名下(並將其生成為新字體)新名稱也是如此)。最後,不要忘記更新字體快取並打開一個新視窗來查看效果。

我通常在更改 Konsole 中的字體之前執行ls -l或操作,以便可以看到對列出的檔案名稱之間的行間距的影響。ls -lR最好使用l彼此上方/下方的上行符(例如 )和下行符(例如“y”)的文件名,這樣您可以確保行不會太近,並且上行符和下行符不相交。您可以透過建立三個檔案輕鬆完成此操作:「agjpqy」、「mbdfijlt」和「zgjpqy」。檔案名稱的第一個字母只是按預期按字母順序對文件進行排序。其餘字母包含上伸部、下伸部或兩者。您可以查看它們是否相交,並根據您的主觀喜好調整字體的垂直間距(讓我想起金髮女孩和三隻熊的故事)。

我希望這對您有所幫助,並為您節省大量的時間和挫折。患有強迫症的使用者會最欣賞這一點!

相關內容