Поиск…


Вступление

Браузеры больше не поддерживаются шрифтами SVG. Тем не менее они очень удобны для программного создания шрифтов, таких как шрифты символов или шрифты штрих-кода. Существует множество инструментов, которые позволяют конвертировать SVG-шрифты в любой другой формат шрифта.

замечания

Ниже приведен список инструментов, которые вы можете использовать с шрифтами SVG.

Преобразователи

простой шрифт

Простой пример шрифта svg. Несколько вещей, чтобы отметить здесь:

  • система координат глифов находится в противоречии с обычной системой координат в svg. ось y указывает вверх . Точка 0,0 находится в нижнем правом углу.
  • Все дорожки в шрифте должны быть нарисованы против часовой стрелки.
  • В большинстве инструментов поддерживается только атрибут d элемента глифа. Элементы ребенка не будут работать, хотя они технически разрешены.
<svg xmlns="http://www.w3.org/2000/svg">
  <font id = "myFont"
        horiz-adv-x   = "1000"
        vert-origin-x = "0"
        vert-origin-y = "0" >
    <font-face font-family  = "myFont"
               font-weight  = "normal"
               units-per-em = "1000">
      <font-face-src>
        <font-face-name name="myFont"/>
      </font-face-src>
    </font-face>`
    <glyph unicode="a" d="M0 0 H1000 L500 1000z M200 200 L500 800 L800 200z" />
    <glyph unicode="b" d="M0 0 H1000 L500 1000z M200 200 L500 800 L800 200z" />
  </font>
</svg>

Если у вас более широкие или более узкие глифы, просто измените horiz-adv-x на сам элемент глифа.

<glyph unicode="a" horiz-adv-x="512" d="M0 0 H1000 L500 1000z M200 200 L500 800 L800 200z" />

подбор шрифтов

свойство unicode используется для последующего выбора глифов. Вы можете использовать простые буквы или кодовые страницы unicode, а также лигатуры (сочетание букв или кодов Unicode)

  • unicode="abc"
  • unicode="&#97;&#98;"
  • unicode="ab&#97;&#98;"
  • unicode="a"
  • unicode="&#98;"

глифы всегда выбираются с помощью первого совпадения, поэтому имеют все лигатуры перед любым символом.

unicode codepoints могут быть записаны в decimal &#123; или в шестнадцатеричном &#x1f .

восхождение, спуск и базовый уровень

свойство units-per-em является одним из самых важных свойств шрифта. Он используется, чтобы придавать любому значению любого другого свойства какое-либо значение.

спецификация шрифта CSS2 имеет хорошее определение em sqare :

Определенные значения, такие как метрики ширины, выражаются в единицах, которые относятся к абстрактному квадрату, высота которого представляет собой предполагаемое расстояние между строками типа одного размера

базовая линия по умолчанию равна 0 в em-квадрате. для расчета высоты линии и выравнивания цели восхождения и спуска двух первостепенной важны.

Восхождение - это максимальное расстояние от базовой линии до самой высокой точки вашего самого большого глифа. Обычно это 1em, поэтому значение, которое вы дали для единиц по-em.

Спуск - это максимальное расстояние от базовой линии до самой низкой точки в любом знаке вашего шрифта.

Вот шрифт с глифами, отображающий линию на самой низкой и самой высокой точке, а также на базовой линии.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000">
  <font id = "myFont"
        horiz-adv-x   = "1000"
        vert-origin-x = "0"
        vert-origin-y = "0" >
    <font-face font-family  = "myFont"
               font-weight  = "normal"
               units-per-em = "1000"
               descent="500"
               ascent="1000">
      <font-face-src>
        <font-face-name name="myFont"/>
      </font-face-src>
    </font-face>`
    <glyph unicode = "a" d = "M0 900h1000v100h-1000z" />
    <glyph unicode = "b" d = "M0 0h1000v100h-1000z" />
    <glyph unicode = "c" d = "M0 -500h1000v100h-1000z" />
  </font>
</svg>

Подъем и спуск используются для определения высоты линии. Единицы по умолчанию и базовая линия используются для определения местоположения и размера по сравнению с другими используемыми шрифтами.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow