"Дріт" (одномірний) шрифт


17

Усі шрифти, про які я коли-небудь чув, є двовимірними : кожен гліф - це в основному двовимірна область (замкнутий контур або деякі закриті контури), яку програмне забезпечення або принтер якось обводить або заповнює залежно від інструкцій, наданих користувачем. Я хотів би знати, чи є одновимірні шрифти , де гліфи описуються як колекції сегментів (які програмне забезпечення може обробляти, але не обов'язково заповнювати), а не з регіонів.

Іншим словом (а ще краще - у зображеннях), що я хотів би мати ліву річ, а не праву на малюнку нижче. Чи існує це?

Від двовимірної до одновимірної літери

(вибачте за фотографію, я знаю, що це дуже погано; я просто зробив це швидко)


Можливо, нам потрібно відповісти graphicdesign.stackexchange.com/questions/64626/…, перш ніж ми дійсно зможемо відповісти на ваше запитання
Ryan

Яка бажана програма для шрифту? Я не бачу жодного використання шрифту з одним штрихом для проектування, тому я припускаю, що ви цього хочете для креслення або гравюри. На якій програмі ви плануєте використовувати шрифт?
DavidC

5
Є ще два виміри, всередині просто немає: P
Zach Saucier

8
Найближчим до одновимірного шрифту був би штрих-код.
Джеральд Шнайдер

Як ідея програми я написав демонстрацію Raspberry Pi, щоб побудувати контури SVG на осцилоскопі XY - це було б ідеально для цього. Справді, це незвичне середовище (як і перо-плотер, я маю намір використовувати його пізніше).
Кріс Н

Відповіді:


23

У графіках це називається "шрифт обведення", " шрифт однієї лінії ", "шрифт гравірування", "шрифт технічної літери" або просто "шрифт плоттера".

Графік гладить зображення на папір за допомогою ручки. Він не може заповнювати зображення, за винятком багаторазового погладжування їх менше, ніж на ширину пера. Отже шрифти, призначені для використання з плотерами, будуть містити гліфи з одним штрихом ("симплекс"), двома більш-менш паралельними штрихами ("дуплекс") або трьома штрихами ("триплекс"). Шрифти з більшою кількістю штрихів займають більше часу, але дозволяють більше змінювати ширину обведення в глифі. Використання ручки занадто вузької для гліфа заданого розміру призведе до видимих ​​проміжків між штрихами.

Одним із прикладів шрифту в основному симплекс є Hershey Vector Font . Її знаки @, дужки [], дужки {}та тильда ~є дуплексними.

Гліфи в шрифті Hershey Vector

Якщо ви бачили " чорну дошку жирним шрифтом ", це шрифт 𝕕𝕦𝕡𝕝𝕖𝕩 з шириною ручки менше відстані між штрихами.

Сміливий двосторонній шрифт

Бібліотеки зображень старої школи підтримували шрифти обведення так само, як це робить плоттер. Під час надання тексту додаток задає ширину та колір обведення перед нанесенням тексту так само, як це робиться перед нанесенням рядка. Це аналогічно вибору пера на плотері.

Але сучасні бібліотеки растрових зображень використовують шрифти OpenType, які містять контури TrueType або CFF (PostScript Type 2). Шрифти OpenType, що імітують шрифти обведення, замість цього містять обриси обведення на деякій ширині рядка. Цю операцію погладжування можна змінити, встановивши контур гліфа на відстань пів ширини штриха, на зразок зворотного алгоритмічного жирного шрифту.


Бінго! Вони існують, але є досить марними, якщо їх не застосовують для BluePrints, гравірування або лазерних додатків. Дизайнерські додатки, такі як Adobe, Corel тощо, не мають труднощів навіть їх надання, тому вони не дуже корисні для створення дизайну.
DavidC

@DavidC: На графічних платформах, які можуть застосовувати перетворення окремо до малювальної ручки незалежно, а шрифт, шрифти з паличками можуть добре працювати, якщо використовується дуже тонка еліптична ручка та застосовується до неї перетворення (вигляд виглядає як каліграфічна ручка). Це, здається, краще працює з шрифтом, що нагадує майже палицю, ніж зі шрифтом, який має нормальну ширину обведення.
supercat

10

Більшість інженерних програм підтримують шрифти із простою лінією та товщиною постачальників користувачів. Як і досить багато гравірувальних та фрезерних верстатів. Деякі шрифти існують, хоча вони не дуже добре працюють у сучасному програмному забезпеченні (якщо взагалі є).

У цьому полягає проблема: двигуни шрифту регресували з моменту застарілого PostScript. Вибачте, немає простих рішень. Таким чином, можна було б придбати всілякі смаколики в той день, що вже не можливо на більшості комп'ютерів. Майже жоден додаток не підтримує це, навіть якщо нинішні звичаї навіть не працюють у svg, оскільки визначення шрифту SVG застаріли у браузерах.

Проблема полягає в тому, що немає універсального формату для таких шрифтів. А самі шрифти будуть несправними у багатьох випадках. Звичайні програми ставляться до них дивно. Побачити:

Jongware створив сценарій під назвою монолінне малювання тексту для ілюстратора, наприклад, його можна отримати тут:

Можна створити власні шрифти цього типу в PostScript, хоча використовуючи шрифти типу 3 (але підтримка вже не широка *, хоча ілюстратор може використовувати їх за певних обставин). Хоча підтримка в розробці додатків обмежена. Але я фактично використовую це цілий день, коли роблю 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-х, але не сьогодні. Підтримка в основному була видалена, деякі гвоздикові софи все ще є.


1
Тим не менш, навіть мій сценарій не може змусити його працювати без будь-якої товщини: ви все одно повинні встановити "a" товщину на лінії, яку ви малюєте. Але, безумовно, ви можете встановити його на будь-яке значення, яке вам подобається, на відміну від контурних шрифтів, які мають "заздалегідь задану" товщину.
usr2564301

2
Хоча бічна примітка, лазерні різаки та верстати з ЧПУ та програми для роботи з кадрами працюватимуть без товщини ліній, оскільки товщина для них - лише артефакт післяобробки.
joojaa

2
Це чудово і денді, але це не шрифт. Я перевірив декілька визначень шрифту і ще не знайшов жодного, що не включає товщину / ширину як частину визначення. У графічному дизайні це не шрифт із нічого, що я знайшов. Навіть @Jongware, і ви визнаєте, для роботи він повинен мати деяку товщину. Я заперечую (і кожне знайдене нами визначення погоджується), що це не шрифт, поки це не відбудеться. Однак на практиці це дуже добре може бути тим, що йдеться про оперативну програму, якщо вони просто намагаються побудувати точки :) Можливо, хочеться подивитися на Corel Draw, я знаю, що виробники символів часто використовують це.
Райан

1
Крім того, це ще не одновимірне, про що йдеться в питанні. Але тоді я б сказав , що фактичний, одновимірний шрифт є неможливим, тому що один розмір буде обмежувати вас на прямій лінії, а, в одному вимірі. Ви можете робити l і i без двох вимірів, але не багато іншого.
Жакус Бахс Жак

3
@Ryan: це може бути прекрасно і денді, але суть полягає в тому, що шрифти, що містять лише обведення, можуть існувати, але не підтримуються поточними основними шрифтовими технологіями.
usr2564301

8

Metafont - мова опису, яка використовується для визначення векторних шрифтів.

На відміну від більш поширених форматів шрифту контуру (наприклад, TrueType або PostScript Type 1), шрифт Metafont в основному складається з штрихів з "ручками" кінцевої ширини, а також із заповненими регіонами. Таким чином, замість того, щоб безпосередньо описувати контур гліфа, файл Metafont описує шляхи пера.

Те, що ви описуєте, може бути реалізовано як шрифт Metafont з постійною шириною ручки.


6

Інший термін для того, що ви шукаєте, - це "шрифт палички" - є безкоштовний набір 9 з них, які я використовував для ЧПУ та лазерної гравірування на веб- сайті http://www.mrrace.com/CamBam_Fonts/

Зауважте, що ці шрифти виглядають погано на екрані, а вкладені ділянки часто виглядають суцільними. Це тому, що вони є технічно недійсними контурами шрифтів: кожен символ обов'язково складається з однієї або більше замкнених циклів (оскільки сучасні ОС не підтримують жодного іншого типу шрифту), але кожен цикл має нульову площу. Тому вони можуть бути для вас непридатними, якщо мета - це щось інше, ніж гравірування.


Він працює з Inkscape за умови, що ви натискаєте його замість того, щоб заповнювати його. Спасибі!
Джованні Масселлані,

3

В архітектурі новачок може малювати стіни як окремі лінії. Це неточно, але не може існувати - стіни навіть тонкі мають товщину.

Так само і ваш A зліва, навіть тонкий має товщину. Як густо? Це 1pt? Це 0,025pt? Як дізнається принтер? Ми мусимо це сказати.

Щоб відповісти на ваше запитання, не може існувати одновимірний шрифт під час його опису. Всі лінії повинні мати деяку товщину, щоб існувати.


2
Я не повністю згоден: мета шрифту - описати геометрії, пов'язані з передачею тексту. Як потрібно вимальовувати ці геометрії - це інше питання, яке не описується самим шрифтом. Навіть із звичайними шрифтами, описаними в TrueType, OpenType або якими ви хочете, вам все одно потрібно визначити, який колір, візерунок і що використовувати для нанесення або обведення контуру. Таким чином, ви можете мати шрифт, як той, про який я кажу: обов'язок користувача визначати товщину лінії та інші властивості.
Джованні Масселлані

2
Більше того, існують програми, в яких ви маєте поняття лінії незалежно від її товщини. Наприклад, програма, яку я маю на увазі, - це векторне лазерне гравірування. Товщина того, що я гравірую, є побічним продуктом лазерної швидкості, потужності та фізичних властивостей матеріалу, який я використовую. Це не потрібно знати програмним забезпеченням, що веде гравер.
Джованні Масселлані

2
@Ryan це категорично не вірно. Це справедливо у світі, орієнтованому на абебе. І лише в тому випадку, якщо ви хочете бути задоволеними собою. Інакше навіть тоді це брехня.
joojaa

1
@immibis, що, безумовно, враховується при друці під час вибору матеріалу, чорнила та кольору, але не має нічого спільного з шрифтом. Шрифт може існувати на вашому екрані без глибини, але він не може існувати на екрані без якоїсь ширини.
Райан

3
Весь текст повинен мати ширину рядка при малюванні, але цю ширину не потрібно зберігати у шрифті. Натомість він може зберігатися в документі за допомогою шрифту, як і розмір та колір.
Даміян Єрік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.