「ワイヤー」(1次元)フォント


17

私が聞いたすべてのフォントは2次元です:各グリフは基本的に2次元領域(閉じた輪郭またはいくつかの閉じた輪郭)であり、ソフトウェアまたはプリンターはユーザーの指示に応じて何らかの方法でストロークまたは塗りつぶします。グリフは、領域ではなくセグメントのコレクション(ソフトウェアはストロークできますが、必ずしも塗りつぶすことはできません)として記述されている1次元フォントあるかどうかを知りたいです。

言い換えれば(または画像で)、下の写真の右のものではなく、左のものが欲しいと思います。これは存在しますか?

二次元から一次元の手紙へ

(写真は申し訳ありませんが、それは本当に悪いことがわかります;私はすぐにそれをしました)


おそらく、graphicdesign.stackexchange.com / questions / 64626 /に答える必要があります。実際にあなたの質問に答える前に
ライアン

フォントの希望するアプリケーションは何ですか?設計のためのシングルストロークフォントでの使用は見当たらないので、設計図や彫刻のためにこれが必要だと思います。どのプログラムでフォントを使用する予定ですか?
DavidC

5
まだ2つの次元があり、内部はありません:P
ザックソーサー

8
1次元フォントに最も近いものはバーコードです。
ジェラルドシュナイダー

アプリケーションのアイデアと同じように、XYオシロスコープでSVGのパスをプロットするRaspberry Piデモを作成しました-これは完璧でした。確かに、これは珍しい媒体です(後で使用する予定のペンプロッターです)。
クリスH

回答:


23

プロッターでは、「ストロークフォント」、「単一行フォント」、「彫刻フォント」、「技術的なレタリングフォント」、または単に「プロッターフォント」と呼ばれます。

プロッターは、ペンを使用して画像を用紙にストロークします。ペン幅未満の間隔で繰り返しストロークすることを除いて、画像を埋めることはできません。したがって、プロッターで使用するために設計されたフォントには、1つのストローク(「シンプレックス」)、2つの多かれ少なかれ平行なストローク(「デュプレックス」)、または3つのストローク(「トリプレックス」)のグリフが含まれます。ストロークの多いフォントは描画に時間がかかりますが、グリフ内のストローク幅のバリエーションを増やすことができます。特定のサイズのグリフに対して狭すぎるペンを使用すると、ストローク間に目に見えるギャップが生じます。

ほとんどシンプレックスフォントの1つの例はHershey Vector Fontです。そのアットマーク@、ブラケット[]、ブレース{}、およびチルダ~は二重です。

ハーシーベクターフォントのグリフ

太字の黒板」を見た場合、それはペン幅がストローク間の距離よりも小さい𝕕𝕦𝕡𝕝𝕖𝕩フォントです。

デュプレックスセリフフォントで太字

古い学校のイメージングライブラリは、プロッタとほぼ同じ方法でストロークフォントをサポートしていました。テキストをレンダリングする場合、アプリケーションは、線を描画する前と同様に、テキストを描画する前にストロークの幅と色を設定します。これは、プロッターでペンを選択することに似ています。

しかし、最新のラスターイメージングライブラリは、TrueTypeまたはCFF(PostScript Type 2)アウトラインを含むOpenTypeフォントを使用します。代わりに、ストロークフォントをシミュレートするOpenTypeフォントには、ある線幅のストロークのアウトラインが含まれています。このストローク操作は、グリフのアウトラインをストローク幅の半分の距離、アルゴリズムの太字の逆のような距離で挿入することで逆にできます。


ビンゴ!それらは存在しますが、BluePrints、彫刻、またはレーザーのアプリケーションに使用されない限り、かなり役に立ちません。Adobe、Corelなどのアプリを設計します。それらをレンダリングすることさえ難しいので、実際に設計するのにあまり使用されません。
DavidC

@DavidC:変換を個別に描画ペンとフォントに個別に適用できるグラフィックスプラットフォームでは、非常に細い楕円形のペンを使用し、それに完全な変換を適用すると、スティックフォントがうまく機能します(カリグラフィックペンのように見えます)。これを行うと、通常のストローク幅のフォントよりも、スティックに近いフォントの方がうまく機能するようです。
supercat

10

ほとんどのエンジニアリングアプリケーションは、線とユーザーサプライの太さだけでフォントをサポートしています。非常に多くの彫刻およびフライス盤と同様に。一部のフォントは存在しますが、最新のソフトウェアでは非常にうまく機能しません(あるとしても)。

これが問題です。PostScriptを非推奨にしたため、フォントエンジンが退行しました。簡単な解決策はありません。そのため、ほとんどのコンピューターでは不可能になった、あらゆる種類のグッズをその日に戻すことができます。svgフォント定義がブラウザーから非推奨になったため、svgで機能しなくても、これをサポートするアプリはほとんどありません。

問題は、そのようなフォントに普遍的な形式がないことです。そして、多くの場合、フォント自体が誤動作します。通常のアプリはそれらを奇妙に扱います。見る:

  • トピックstar-trek-interior-plaquesに関する他の質問では、一部のアプリケーションで動作する可能性のあるこのようなフォントを見つけることができます。

Jongwareは、イラストレーター用のモノラインテキスト描画と呼ばれるスクリプトを作成しました。たとえば、ここから入手できます。

タイプ3フォントを使用して、PostScriptでこのタイプの独自のフォントを作成することが可能です(ただし、イラストレーターは状況によってはこれらを使用できますが、サポートはもはや広くありません*)。ただし、デザインアプリのサポートはほとんどありません。しかし、ostScriptを実行するときは、実際にこれを終日使用しています。以下に例を示します(  このデモ用に編集された専用のフォント):

%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 200 40
%%Title: Demo type 3 font
%%Creator: Janne Ojala
%%CreationDate:  2015-12-23
%%EndComments

% set stroking characteristics
5 setlinewidth 
1 setlinecap
1 setlinejoin

% lets define the font
10 dict dup begin
  /FontType 3 def
  /FontMatrix [.01 0 0 .01 0 0] def
  /FontBBox [-2 0 52 102] def

  /Encoding 256 array def
  0 1 255 {Encoding exch /.notdef put} for 

  Encoding
    dup (L) 0 get /L put
    dup (a) 0 get /a put
        (b) 0 get /b put

  /Metrics 4 dict def
  Metrics begin
    /.notdef 30 def
    /L 65 def
    /a 65 def
    /b 55 def
  end

  /BBox 4 dict def
  BBox begin
    /.notdef [0 0 0 0] def
    /L [0 0 75 100] def
    /a [25 0 75 100] def
    /b [25 0 65 100]  def
  end

  /CharacterDefs 4 dict def
  CharacterDefs begin
    /.notdef { } def

    /L
      { newpath
        0 100 moveto
        0 0 lineto
        50 0 lineto
        stroke
      } def 
    /a
      { newpath
        25 25 25 0 360 arc 
        50 45 moveto 
        50 0 lineto
        stroke
      } def
    /b
      { newpath
        0 100  moveto
        0 0 lineto
        40 0 40 50 17.5 arct
        40 50 0 50 17.5 arct
        0 50  lineto
        stroke
      } def
    end

  /BuildChar
    { 0 begin

        /char exch def
        /fontdict exch def

        /charname fontdict /Encoding get char get def
        fontdict begin
          Metrics charname get 0
          BBox charname get aload pop
              setcachedevice

          CharacterDefs charname get exec
        end
      end
    } def
  /BuildChar load 0 3 dict put
  /UniqueID 1 def
end

/SpecialUseOnly exch definefont pop
/special /SpecialUseOnly findfont 20 scalefont def

special setfont 

10 10 moveto

%write some text
(Lab baa baa abL) show

%%EOF

これを使用するには、EPSで終わるテキストファイルに配置し、イラストレーターまたは単語にドラッグアンドドロップします。開始前に空行がないことを確認してください。3行フォームの終わりにある括弧内の内容を変更することにより、テキストを編集できます。ここでの注意点は、文字「L」「a」および「b」のみを定義したことです。

プレビュー

画像1:フォントプログラムのプレビュー。

*したがって、これは1980年代後半から1990年代半ばに簡単に可能でしたが、今日では不可能でした。サポートはほとんど削除されましたが、一部のAdobeソフトにはまだこれがあります。


1
しかし、でも私のスクリプトは、それをせずに動作させることはできません任意の厚さ:あなたはまだセットにあなたが描くラインに「」の厚さを有します。しかし、当然のことながら、「定義済み」の太さを持つアウトラインフォントとは異なり、任意の値に設定できます。
usr2564301

2
ただし、レーザーカッターとCNCマシンとCADアプリは、線の太さは後処理の成果物であるため、線の太さなしで機能します。
joojaa

2
それは素晴らしいとダンディですが、それはフォントではありません。フォントの複数の定義を確認しましたが、定義の一部として太さ/幅を含まないものをまだ見つけていません。グラフィックデザインでは、これは私が見つけたフォントではありません。@Jongwareでさえ、それを機能させるにはある程度の厚さが必要であることを認めます。私はそれが起こるまでフォントではないと主張します(そして私が見つけたすべての定義は同意します)。ただし、実際には、ポイントをプロットしようとしているだけの場合、OPはこれが非常にうまくいく場合があります。
ライアン

1
また、質問で尋ねられたように、それはまだ一次元ではありません。しかし、実際の1次元のフォント不可能だと思います。1つの次元によって、1つの次元の直線に制限されるからです。2次元なしでlとiを実行できますが、それ以外のことはできません。
ヤヌスバズジャケ

3
@Ryan:うまくいくかもしれませんが、最終的には、ストロークのみのフォントが存在する可能性がありますが、現在の主流のフォント技術ではサポートされていません。
usr2564301

8

メタフォントは、ベクターフォントの定義に使用される記述言語です。

より一般的なアウトラインフォント形式(TrueTypeやPostScript Type 1など)とは異なり、メタフォントフォントは主に、塗りつぶされた領域に加えて、有限幅の「ペン」を持つストロークで構成されます。したがって、メタフォントファイルは、グリフのアウトラインを直接記述するのではなく、ペンのパスを記述します。

あなたが説明するものは、一定のペン幅を持つMetafontフォントとして実装できます。


6

あなたが探しているものの別の用語は「スティックフォント」です-http : //www.mrrace.com/CamBam_Fonts/でCNCとレーザー彫刻に使用した9つの無料セットがあります

これらのフォントは、画面上で見た目が悪くなりがちで、囲まれた領域はしばしば無地に見えることに注意してください。これは、技術的に無効なアウトラインフォントであるためです。各文字は必ず1つ以上のクローズドループで構成されます(最新のOSは他の種類のフォントをサポートしないため)。したがって、目標が彫刻以外の何かである場合、それらはあなたに適さない可能性があります。


Inkscapeでは、塗りつぶすのではなくストロークを行うことで問題なく動作します。ありがとう!
ジョヴァンニマスチェラーニ

3

建築では、初心者は壁を単一の線として描くかもしれません。ただし、これは不正確であり、存在することはできません。壁が薄い場合でも厚さがあります。

同様に、左側のAは、薄いものでも厚さがあります。厚さは?1ptですか?0.025ptですか?プリンターはどのように知っていますか?教えなければなりません。

あなたの質問に答えるために、あなたがそれを説明するように一次元フォントが存在することはできません。存在するためには、すべての線にある程度の太さが必要です。


2
私は完全に同意しません。フォントの目的は、テキストのレンダリングに関連するジオメトリを記述することです。これらのジオメトリをどのようにレンダリングする必要があるかは、フォント自体では説明されない別の問題です。TrueType、OpenType、または必要なもので説明されている通常のフォントを使用しても、塗りつぶしや輪郭のストロークに使用する色、パターン、その他を決定する必要があります。したがって、私が言うようなフォントを使用できます。線の太さやその他のプロパティを指定するのはユーザーの義務です。
ジョヴァンニマスチェラーニ

2
また、あなたはどのアプリケーションがある必要があり、その厚さとは独立してラインの概念を。たとえば、私が念頭に置いているアプリケーションは、ベクトルレーザー彫刻です。私が刻むものの厚さは、レーザー速度、出力、使用している材料の物理的特性の副産物です。彫刻家を駆動するソフトウェアが知る必要はありません。
ジョヴァンニマスチェラーニ

2
@Ryanこれは厳密には正しくありません。アドビ中心の世界ではまさにその通りです。そして、あなたが自分自身に満足したい場合にのみ。そうでなければ、それでも嘘です。
joojaa

1
@immibisは、素材、インク、色を選択する際に印刷物で確実に考慮されますが、フォントとは関係ありません。フォントは深さのないスクリーン上に存在できますが、何らかの幅がないとスクリーン上に存在できません。
ライアン

3
すべてのテキストは描画時に線幅を持っている必要がありますが、この幅をフォントに保存する必要はありません。代わりに、サイズと色と同様に、フォントを使用してドキュメントに保存できます。
ダミアンジェリック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.