在方格上顯示字元?

在方格上顯示字元?

如何在 vim 中將字元顯示為正方形?字元本身不需要是正方形的,但是如果您要透過字元的所有中心點繪製網格,它應該會形成一個正方形網格。

我想這樣做,因為我正在設計一個堡壘佈局矮人要塞。遊戲在正方形/立方體網格上進行。

答案1

在 Windows 上,conhost.exe(這是 cmd 和 PowerShell 使用的預設終端)預設有一些方形等寬字體,例如 8x8 字體,但我從未聽說過 Linux 中有這種字體。我進行了搜索並找到了方塊字體是專為您的目的而製作

Square 是一種用於 Roguelike 遊戲的 TTF 字體

Roguelike 遊戲完全由文字組成網格單元,但問題是大多數等寬字體的高度遠大於寬度,這意味著 Roguelike 遊戲要么具有非方形單元,要么具有方形單元並且角色不佔據整個盒子,這兩種情況看起來都不太美觀。

Square 的設計目的是讓字元盡可能均勻地填滿方形空間。它的靈感來自於日本文字總是均勻地適合一個盒子,無論它們的設計如何。它放棄了小寫字元中典型的上升/下降,而是使小寫字元看起來像大寫字元的簡化版本。

方形字體

跨站點重複:

我還發現了同一類別中的許多其他字體,儘管我沒有機會測試它們

方形字體範例


但是,如果您的文字僅限於小字元集(特別是 ASCII 21 到 7E 加上一些東亞字元)那麼你可以使用全角表格直接使用,無需其他字體

下面是一個小的 shell 腳本,用於執行從半角到全角的轉換。要轉換的字串是從標準輸入讀取的

halfwidth='!"#$%&'\''()*+,-.\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⦅⦆¢£¬¯¦¥₩ '
fullwidth='!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~⦅⦆¢£¬ ̄¦¥₩ '
sed -e "y/$halfwidth/$fullwidth/"

例子

$貓方.txt
0123456789
1-方8
2####文本7
3$$$$$$$$6
4@@@@@@@@5
5(正方形)4
6~~~文字3
7>>>2
8////\\\\1
9876543210

$ 貓方塊.txt | sh 全角.sh
0123456789
1-第8節
2####正文7
3$$$$$$$$6
4@@@@@@@@5
5(SQUARE)4
6~~~TEXT 3
7<<<<>>>>2
8////\\\\1
9876543210

由於字體的原因,在許多情況下結果可能不是完美的正方形,因此如果寬高比不符合您的要求,您可能仍然需要檢查系統上是否有帶有正方形全角字元的字體

答案2

使用您最喜歡的字體編輯器從 Courier 創建方形等寬字體。在您的終端中使用它。

如果您缺乏字體編輯的耐心並且有魅力(或其他東西),您可以這樣做反而。

建議的間管對我來說,但也許它不是真正的正方形。

答案3

我正在尋找一種可以與python 二維碼產生器。該函式庫似乎假定精確的高度:寬度字元比為 8:7,因此上面的方形字體實際上產生的 QR 碼寬度大於高度。在我的 Mac 上,14 或 28 點大小的 Andale Mono 字體可產生完美的方形 QR 碼。在裡面iTerm如下圖所示窗口,例如二維碼正好是168:168。

在此輸入影像描述

相關內容