FLS7 为什么要引入元素?

Why Elements? 为什么是元素?

I've been trying to use 7 for a couple of weeks. There are many concepts I can't grasp but the main one is elements. I've read that section of the manual several times but it doesn't explain why. I've been using components in FontLab for 20 years so I understand how they work and why I'd want to use them. I think an element is like a component except it doesn't need to be an entire glyph...like the bowl of a b could be an element. But then the manual says it will convert elements to components on export, depending on the output format. If that's the case, why are there components and elements? If elements, get converted to components, why do I need two different things? Can I use elements for everything and have no components at all.

这几个星期我一直在尝试使用FL7。有许多我无法理解的概念,主要是元素。我已经阅读了该手册的这一部分,但没有解释原因。我在FontLab中使用组件已有20年了,因此我了解它们的工作原理以及为什么要使用它们。我认为一个元素就像一个组件,只是它不需要是一个完整的字形……就像 d 和 b 的字碗可以是同一个元素。但是手册随后说,它将根据输出格式将元素转换为导出时的组件。如果是这样,为什么会有组件和元素?如果将元素转换为组件,为什么我需要两个不同的东西?我可以将元素用于所有内容,而完全不包含任何组件。

How do you use elements in your work? 你们是如何在工作中使用元素的?

另外:当我使用元素并对其进行更改时,这些更改不会反映在字体窗口中……但是当我转到该字形时,这些更改已被应用。这是它们正常的工作方式吗?

Also: when I use elements and make changes to it, those changes aren't reflected in the font window...but then when I go to the glyph, the changes have been applied. Is this how they're supposed to work?


Ray Larabie

The essential difference: 本质区别:


组件(包含位置信息)
元素(部件,可以移动到任何位置)

Yes, this was also possible before elements. But then you need to create several additional glyphs with the desired "piece". With elements, you can have the many "pieces" in a single glyph. You can store them in a reserve glyph or directly in the glyphs where they are used: 

是的,这在元素出现之前也是可能的。但是,你需要创建一些额外的字符来保存所需的“部件”。使用元素,您可以在一个字符中包含许多“部件”。你可以将它们存储在一个备用字符中,或者直接存储在使用它们的字符中:

Regarding the Font window update, there is a control for this in Font > Live Update. Does this solve the issue? 

关于 Font 窗口的更新,在 Font > Live Update 中有一个用于此的控件。这能解决你的困扰吗?

#2 2号 - 2020-10-24, 20:44 - 2020-10-24,20:44

Igor Freiberger (FontLab)

Global Moderator 全球主持人

Hero Member 英雄会员

Antecipating a possible question: yes, in the example above I could use one half-leg and then re-use it flipped. To have an additional, mirrored element (like _h1 and _h2) was not necessary. But I took this path because this font structure will be used to build others in the future and sometimes the design will not be symetrical. 

预防有人问到: 是的,在上面的例子中我可以使用一个半腿,然后翻转使用它。不需要额外的镜像元素(如 _h1和 _h2)。但是我选择了这条路,因为这种字体结构将来会被用来构建其他字体,有时候这种设计不会是对称的。

#3 3号 - 2020-10-24, 21:00 - 2020-10-24,21:00

Ray Larabie

Full Member 正式成员

Yes, the live update fixes it. Okay, I understand now. 是的,实时更新解决了问题。好吧,我现在明白了。

Why can't the diacritical marks also be elements? If they're going to be converted to components on export anyway, why have two different, yet very similar things in the source? 

为什么变音符号不能也是元素?如果它们无论如何都要在导出时转换为组件,那么为什么在源代码中有两个不同但非常相似的东西呢?

#4 4号 - 2020-10-24, 22:14 - 2020-10-24,22:14

Ray Larabie

Typodermic Fonts Inc. 深圳市印刷字体有限公司

Igor Freiberger (FontLab)

Global Moderator 全球主持人

Hero Member 英雄会员

They can. 它们当然可以做成元素

There are some details that make one or another thing the best for each situation.
但是一些细节差别在某些情况下会有很大的不同

For example: additional contents of a glyph, like anchors, glyph guides, and sidebearings, are part of a component. An element does not have these additional contents. It is more like a Lego piece.
例如: 组件包含字符的附加内容,如锚、字符辅助线和侧架。元素没有这些附加内容。元素更像是一块乐高积木(只包含曲线)

In other hand, elements provide more flexibility. You can apply different colors and filters to each element in the same glyph. And also apply different transformations.
另一方面,元素提供了更多的灵活性。你可以对同一字符中的每个元素应用不同的颜色和滤镜。还可以应用不同的变换操作。

Initially, in FontLab VI, everything were elements. But many users found hard to handle the new characteristics of the elements, prefering to use the simple components they were already used to in FontLab Studio 5. So components were brought back with the naming and overall functionality everybody knew from FLS5.
最初,在 FontLab VI 中,所有东西都是元素。但是许多用户发现很难处理元素的新特性,他们更喜欢使用他们在 FontLab Studio 5中已经使用过的简单组件。所以在7中组件恢复了之前的命名和总体功能,与FLS5一致。

This way, you can use only components in a font and never mess with elements if you don't want. It's optional.
通过这种方式,您可以只使用字体中的组件,而且如果您不想使用元素,可以永远不要使用它们。这是可选的。

#5 第五条 - 2020-10-24, 22:35 - 2020-10-24,22:35

hyvyys海维斯

Full Member 正式成员

The most essential part is, quoting from above:
最重要的部分是,引用上面的话:

additional contents of a glyph, like anchors, glyph guides, and sidebearings, are part of a component. 
组件包含字符的附加内容,例如锚、字符辅助线和侧架,都是组件的一部分 

Components reflect position changes in the base glyph. And they copy anchors from base glyph. For these two reasons I typically steer clear of components unless a component is what I logically want. For instance, I would not use an A component in Aogonek, but an A element, because I want the bottom anchor lower, not the same as A. 组件反映基本字符中的位置变化。它会从基本字形复制锚点。出于这两个原因,我通常避开组件,除非某个组件是我在逻辑上想要的。例如,我不会在 Aogonek 使用 A 组件,而是使用 A 元素,因为我希望底部的锚更低,不同于字符 A。

#6 6号 - 2020-10-25, 08:21 - 2020-10-25,08:21

Adam Twardoch (FontLab)

亚当 · 特瓦多克(亚当 · 特瓦多克)

Director, FontLab FontLab 董事

Global Moderator 全球主持人

Hero Member 英雄会员

The biggest difference: 最大的区别是:

- an element reference only re-uses the contours - 元素参考只复用轮廓

- a component points to a source glyph - 组件指向源字符(包含位置信息)

If you move the contours in a source glyph, all components that point to it will effectively move. With element references, this does not happen, because there is no source glyph. 如果你移动源字符中的轮廓,所有指向它的组件将同步地移动。对于元素引用,不会发生这种情况,因为没有源字符(不包含位置信息)

Elements live outside of glyphs and every time you place the same element in a glyph, that placement is completely independent of the placements elsewhere.
元素存在于字形之外,每次你将元素置入一个字形中时,这个置入元素完全独立于其他置入的元素。(你可以对一个元素引用进行移动、缩放、镜像,而不会影响其余的元素)

Changes in sidebearings in `A` don't influence the placement of an `A` element in `Aacute`, but do influence the placement of you use the `A` component in `Aacute`.
改变字符A的侧架,不会影响到‘ Aacute’中‘ A’元素的位置,但会影响到‘ Aacute’中‘ A’组件的位置。

FontLab VI before version 6.1 did not have components, only element references. But people wanted components, so we added them as well.
版本6.1之前的 FontLab VI 没有组件,只有元素引用。但是人们需要组件,所以我们就添加了它们。

Components in FontLab 7 can be variable if you have multiple masters: if you open the properties section in Elements panel and expand it with the ^ icon, you can click a little button and you get sliders, so you can use a size-reduced interpolated `1` for the superscript 1, for example.
如果你有多个母版,那么 FontLab 7中的组件可以是可变的: 举个例子。如果你打开 Elements 面板中的 properties 部分,并用 ^ 图标展开它,你可以点击一个小按钮并得到滑块,这样你就可以对上标1使用一个缩小的插值“1” 。

And if you Decompose a glyph made from components, that glyph inherits the anchors of the component source glyphs.
如果你分解由组件制成的字符,该字符将继承组件源字符的锚点。

« Last Edit: 2020-10-25, 09:41 by Adam Twardoch (FontLab) 最后编辑: 2020-10-25,09:41,作者: Adam twardor (FontLab) »

Regards, 问候,

Adam Twardoch 亚当 · 特瓦多克

Fontlab Ltd. 

tiro_hudson

泰罗・哈德森

Sr. Member 高级成员

Quote 引用

And if you Decompose a glyph made from components, that glyph inherits the anchors of the component source glyphs. 如果您分解由组件制成的字符,该标志符号将继承组件源字符的锚点

If one has used a transformed component, e.g. scaled and/or interpolated as in your superscript 1 example, I presume the inherited anchors will reflect that when the component is decomposed?
如果使用了变换后的组件,例如缩放和/或插值,就像上标1中的例子一样,我假定继承的锚会反映出当组件被分解的时候?

#8 8号 - 2020-10-25, 10:11 - 2020-10-25,10:11

Adam Twardoch (FontLab)

亚当 · 特瓦多克(亚当 · 特瓦多克)

Director, FontLab FontLab 董事

Global Moderator 全球主持人

Hero Member 英雄会员

"Traditional" transformations work OK. Referencing another master also works OK (e.g. in "Aacute", "Regular" master you can insert the "A" component from "Bold" master). 

“传统的”转换可以工作。引用另一个母版也可以正常工作(例如在“ Aacute”中,“ Regular”主控可以从“ Bold”主控插入“ a”组件)。

Currently using an arbitrary instance (for components) does not work OK, including decomposing (you get the contours from the default master), and the anchors don’t correctly interpolate.
 目前使用任意实例(对于组件)不能正常工作,包括分解(从默认母版获取轮廓) ,以及锚点不能正确插值。

As a workaround today — in the source glyph, add an intermediate master (named e.g. :wt=600 ) and then reference that master in the component. In Glyph > Reinterpolate, you can always update the intermediate master via interpolation. The "arbitrary variable components" functionality is still a bit experimental, so its UI is hidden.
作为当前的解决方案——在源字符中,添加一个中间母版(例如: wt = 600) ,然后在组件中引用该母版。在字形 > 重新插值中,你总是可以通过插值来更新中间母版。“任意可变组件”的功能仍处于试验阶段,因此其用户界面是隐藏的。

#9 9号 - 2020-10-26, 07:52 - 2020-10-26,07:52

Regards, 问候,

Adam Twardoch 亚当 · 特瓦多克

Fontlab Ltd.

https://forum.fontlab.com/fontlab-7/why-elements/?PHPSESSID=ad896a3e3690a3a4e358ed6e4645ca22

你可能感兴趣的:(FLS7 为什么要引入元素?)