2011-08-27 41 views
1

我不確定這是否是正確的地方問這個,但我不知道任何其他網站會更好。這個問題與編程有關,所以:顯示全角字符w /正好是半角字符長度的兩倍?

我正在寫一個格式化的txt指南。請看看這段摘錄:http://mad-gaksha.homelinux.net/public/width.txt。我需要顯示全角字符,以便它們佔用半角字符的兩倍空間。雖然等寬字體似乎只用半角字符正常工作,但我嘗試過的大多數全寬「固定寬度」字體沒有產生所需的結果。

在firefox中,當我將等寬字體(「編輯」>「首選項」>「內容」>「高級」)設置爲「等寬」時,此功能可用。但只適用於14的字體大小。與gedit相同的東西,固定寬度字體MS-Gothic,僅適用於字體大小13/14。

因爲我覺得這種行爲很奇怪,不希望我的讀者受到技術細節的困擾,有沒有人有建議或給任何資源或可以解釋這裏發生了什麼?爲什麼看起來很難顯示每個固定大小的字形?

在此先感謝您抽出時間。

+2

您可以使用HTML而不是文本。這將消除這個問題。而且你的用戶不會感到煩惱。 –

回答

0

它看起來像是舍入小數像素。

當字形寬度不是整個屏幕像素數時,字體渲染器可能會調整水平位置。我相信gedit和Firefox在Linux上使用的開羅渲染不會爲字體做子像素定位,所以這可能是必要的。

在真正的等寬字體中,這並不重要,因爲每個字形都具有相同的寬度,因此可以接受相同的處理,但在有全角和半角字符混合的情況下,舍入將不會一致,除非字形碰巧是整個像素寬度的數字(這在你的情況下發生在字體大小14)。

請注意,在大多數小尺寸的Windows上,MS Gothic等字體將使用字體文件中的自定義內置位圖來呈現,而不是渲染輪廓及其度量。這使得所有的字形必須是固定的像素寬度。然而,這確實導致了典型的老派'jaggy'渲染風格。

如果您正在生成格式化文本文件,您無法對此做任何事情。您只能希望您的目標受衆擁有合適的日文等寬字體,並且可以以特定的字體大小切換到這些字體。

我同意克萊門特的評論,即使用HTML來獲得你想要的渲染會更強大,現代和方便。使用HTML進行佈局可以讓您不必擔心排列字符,並且可以獲取比所有半寬等寬拉丁文字更難看的字體。

+0

這就是爲什麼字體總是在微軟上與蘋果相比顯得非常殘酷的原因?我使用Opera並經常縮放到有趣的百分比。蘋果的字體非常流暢,但微軟卻非常可怕。 – tchrist

+0

@tchrist:當然,Windows上的CJK字體歷史上一直很糟糕。在ClearType之前,字體'平滑'算法很糟糕,特別是漢字的破壞。即使在XP +中使用ClearType,你也必須擁有像Meiryo這樣的字體,這些字體是專門設計用來使用嚴格水平筆畫,而不是接近水平筆畫的,因爲ClearType只偏好沿着X軸的反鋸齒(通常適用於拉丁字母的形狀,但對中日韓表意文字來說是一場災難)。 – bobince

+0

這些天在WPF中終於[修復](http://msdn.microsoft.com/en-us/library/ms749295.aspx#y-direction_antialiasing),但大多數應用程序都沒有使用,所以我們堅持在此期間使用Meiryo或獲得鋸齒水平筆劃。 – bobince