フォントを等幅にするにはどうすればよいですか?


14

私は控えめに人気のあるフォーマット(フォントを持っていると仮定し.ttf.otfなど)、そして私はそれを修正する法的権利を持っています。現状では、幅と間隔が異なるさまざまな文字(グリフ?)を持つ通常のフォントです。上記のフォントを等幅フォントに変換するにはどうすればよいですか(たとえば、すべての文字が同じサイズであるなど)。

可能であれば、当て推量を行うことができる自動化ツールはありますか?(結果は完璧である必要はありません。)フォントは大きい(多くの文字)場合があり、編集は面倒です。

問題に関する提案は大歓迎です!:)


免責事項:申し訳ありませんが、これは考慮されている場合、単純なHOWTOが、Googleは、件名にはほとんど情報を持っており、多くのグラフィックスやフォントを扱っていないプログラマのために、それはわからないですシンプル。また、私の用語がオフの場合は申し訳ありません...:P


使用しているフォントソフトウェアはありますか?Fontlab?Fontforge?
-thomasrutter

回答:


12

フォント編集ソフトウェアをまだお持ちでない場合、良いニュースはFontforgeが無料でオープンソースであることです。悪いニュースは、比較的高い学習曲線とやや珍しいユーザーインターフェイスがあることです。

基本的に、フォントがモノスペースと見なされるには、すべてのグリフが同じ幅で、正確に同じユニット数になる必要があります。これには、通常ゼロ幅または特定の幅(emスペース、emダッシュなど)であるグリフも含まれます。

FAQエントリ「フォントを等幅としてマークするにはどうすればよいですか?」を参照してください。

バッチで一度にすべてのグリフの幅を実際に編集するには、メニューの[メトリック]-> [幅の設定]に移動しますが、すべての文字で機能するとは思われません。「W」、「M」、「@」などのすべてのワイド文字を手動で編集して、重複しないようにする必要があります。また、発音区別記号(レンダリング時に文字と「結合」することを意図したアクセント)を組み合わせると、すべての位置が台無しになる場合があります(アメリカ/英語で、ほとんど使用しない場合はテストが困難です)。

フォントを作成および編集する方法を知っている人は、このタスクを実行できますが、それでも簡単ではありません。


フォントを等幅に変換することについて同じ質問があります。ストリーチングが悪いことを理解しています。私が本当に探しているのは、1)最も広いグリフを見つけ、2)グリフを引き伸ばす代わりに、その幅のフィールドの中央に配置するツールです。それを行うツールはありませんか?
NJランディ14年

gnu unifontの場合は@thomasrutter?(グリフが8 16または16 16であるビットマップフォント)
-user2284570

素晴らしい答え。FontForgeのUIから直接編集することはできませんでした(強制終了するまで何時間もフリーズしたままです)。代わりに、Pythonバインディングを使用しました。私の目標は、モノスペースのフォントをフォールバックとして使用することでしたので、カーニングとブリーディングはそれほど大きな問題ではありませんでした。これについては別の回答で詳しく説明しました。
クレメント

1
私が最初に学んだとき、無料のフォントを編集して多くのモノフォントを作りました。他の自動化ツールと同様に、それは出発点にすぎません。必要に応じて結果を調整する必要があります。Fontographerの学習曲線が最も速いことがわかりました。グリフを選択しSet WidthMetricsドロップダウンメニューの下に移動します。すべてのグリフを1つの平均幅に設定し(必要に応じて後で変更します)、最後にメニューのEqualise Sidebearings下でも選択しMetricsてグリフをem-squareの中央に配置します。もちろん、成功した固定幅フォントの設計に特有の困難を他の人がどのように克服したかを研究してください。
モスカルダ

7

thomasrutterは、より技術的な答えを提供します。本当に必要な場合を除いて、あなたがやりたいことをやめさせるために、タイポグラフィのいくつかの原則を紹介します。

ConsolasまたはCourierで「i」および「m」にズームインし、次にCorbelまたはVerdanaにズームインします。モノスペースが機能するためには、文字がどれほど異なっている必要があるかに注意してください。フォントをモノスペースに適切に変換するには、多くの知識と作業が必要です。フォントを引き伸ばすという一般的な考え方は、彼らの塩に値するデザイナーによって嫌われています。そのため、通常から凝縮バリアントに移行する場合でも、すべてのグリフの再描画が必要になります。

したがって、ここでConsolasとCorbelを見て、ズームインすると、1)文字間の間隔、2)ストロークの太さの一貫性、3)各文字がボックスにどのように収まるかを確認できます。等間隔の面(最初)を可変間隔の面(2番目)と比較してから、3番目と4番目を見て、ストレッチしようとしてスペースが等しくなるとどうなるかを確認します。4番目は、Msを75%に押しつぶしてボックスに入りましたが、現在はIsよりもはるかにスキニーです。それは使用されたときに顕著になります。

モノスペース書体と可変スペース書体の比較

つまり、要するに、書体を台無しにしないでください。彼らはあなたが期待するよりもはるかに手ごわいです!


2
はい、Mのような幅の広いグリフを伸ばすことは、ブレンダンが指摘するまさにその理由で十分な解決策ではありません。コントロールポイントを選択して移動することにより、実際にグリフを手動で編集する必要があります。うまくいけば、これがOPに、これを正しく(またはうまく)行うことが小さなタスクではないという考えを与えてくれることを願っています。特に、ある程度まともなグリフをカバーしたい場合。
-thomasrutter

@Brendanグリフの幅が2つしかないビットマップフォントでは異なると思います(私の場合、グリフの
-user2284570

+1; 完全自動翻訳を期待するのは非現実的です。ただし、制限されたコンテキストでは、3番目の図で示したものが実際にうまく機能します。不足している数学演算子を等幅フォントにインポートしたい場合、そのソリューションはかなり問題ないように見えます(これを別の回答として行うソフトウェアを投稿しました)。
クレメント

@ブレンダンは同意しません。すべての例の問題は、すべてのグリフに同じ変換を適用しなかったことです
共生

6

Unicodeシンボルを多用してソースコードを編集しようとすると、この非常に問題に遭遇しました。そのコンテキストでは、ソースコードのほとんどは1つの固定幅フォントで表示され、そのフォントでカバーされていないいくつかのシンボルは最終的に整列を台無しにします。

完全なフォントを「モノスペース化」すると恐ろしい結果が得られるのは事実ですが(カーニング、ストローク幅、および一般的なバランスはすべて完全に台無しになります)、可変幅フォントからわずかな記号をモノスペースにインポートすると、適切な結果が得られます。以下のアニメーションは、Consolas + Symbolaのモノスペースバージョンを使用する場合と比較して、Consolas + Symbolaをフォールバックとして使用する方法を示しています。

モノスペース化の前後

これは高度なタイポグラフィには役に立たないが、インデントを損なうことなくソースコードでシンボルを使用したい場合には良い妥協案である。ただし、いくつかの注意事項があります。

  • ワイド文字は、隣接するスペースに少しにじみます(ただし、問題を軽減するためにわずかに縮小できます)
  • カーニングは悪くなります(フォールバックにすぎないため、それほど問題ではありません)

この種のフォント変換を自動的に処理するGitHubプロジェクトを開始しまし。事前に生成されたフォントと、fontforgeのPythonバインディングを使用したコードが含まれています。

このemacs.seの質問も参照してください。


-1

ワープロでは、I:(1)テーブルを作成しました。(2)列に分割-文字ごとに1列。(3)文字を中央揃えにしました。(4)内部および外部のすべての境界線を非表示にしました。


1
これは質問に答えません。フォントを作成する助けにはならず、時間の無駄のように聞こえます。
モスカルダ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.