{"action":"created","issue":{"url":"https://api.github.com/repos/LettError/MutatorMath/issues/29","repository_url":"https://api.github.com/repos/LettError/MutatorMath","labels_url":"https://api.github.com/repos/LettError/MutatorMath/issues/29/labels{/name}","comments_url":"https://api.github.com/repos/LettError/MutatorMath/issues/29/comments","events_url":"https://api.github.com/repos/LettError/MutatorMath/issues/29/events","html_url":"https://github.com/LettError/MutatorMath/issues/29","id":147670252,"number":29,"title":"Instance kerning data should reflect switched masters","user":{"login":"LettError","id":1243961,"avatar_url":"https://avatars.githubusercontent.com/u/1243961?v=3","gravatar_id":"","url":"https://api.github.com/users/LettError","html_url":"https://github.com/LettError","followers_url":"https://api.github.com/users/LettError/followers","following_url":"https://api.github.com/users/LettError/following{/other_user}","gists_url":"https://api.github.com/users/LettError/gists{/gist_id}","starred_url":"https://api.github.com/users/LettError/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LettError/subscriptions","organizations_url":"https://api.github.com/users/LettError/orgs","repos_url":"https://api.github.com/users/LettError/repos","events_url":"https://api.github.com/users/LettError/events{/privacy}","received_events_url":"https://api.github.com/users/LettError/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/LettError/MutatorMath/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"LettError","id":1243961,"avatar_url":"https://avatars.githubusercontent.com/u/1243961?v=3","gravatar_id":"","url":"https://api.github.com/users/LettError","html_url":"https://github.com/LettError","followers_url":"https://api.github.com/users/LettError/followers","following_url":"https://api.github.com/users/LettError/following{/other_user}","gists_url":"https://api.github.com/users/LettError/gists{/gist_id}","starred_url":"https://api.github.com/users/LettError/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LettError/subscriptions","organizations_url":"https://api.github.com/users/LettError/orgs","repos_url":"https://api.github.com/users/LettError/repos","events_url":"https://api.github.com/users/LettError/events{/privacy}","received_events_url":"https://api.github.com/users/LettError/received_events","type":"User","site_admin":false},"assignees":[{"login":"LettError","id":1243961,"avatar_url":"https://avatars.githubusercontent.com/u/1243961?v=3","gravatar_id":"","url":"https://api.github.com/users/LettError","html_url":"https://github.com/LettError","followers_url":"https://api.github.com/users/LettError/followers","following_url":"https://api.github.com/users/LettError/following{/other_user}","gists_url":"https://api.github.com/users/LettError/gists{/gist_id}","starred_url":"https://api.github.com/users/LettError/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LettError/subscriptions","organizations_url":"https://api.github.com/users/LettError/orgs","repos_url":"https://api.github.com/users/LettError/repos","events_url":"https://api.github.com/users/LettError/events{/privacy}","received_events_url":"https://api.github.com/users/LettError/received_events","type":"User","site_admin":false}],"milestone":null,"comments":2,"created_at":"2016-04-12T08:15:43Z","updated_at":"2016-08-10T21:12:47Z","closed_at":null,"body":"A glyph can have different masters in specific instances. This way a glyph can have a radically different construction in some weights or widths. In Superpolator this is the **rules** feature.\r\n\r\nCurrently the kerning is unaware of these new masters. That means the kerning data generated for that glyph will be invalid as they depend on the old glyph geometry. So the kerning will need to be manipulated to insert the kerning of the replacement masters. \r\n\r\nAny number of glyphs may be switched, so it will probably need to be some sort of child element of the kerning element."},"comment":{"url":"https://api.github.com/repos/LettError/MutatorMath/issues/comments/239006182","html_url":"https://github.com/LettError/MutatorMath/issues/29#issuecomment-239006182","issue_url":"https://api.github.com/repos/LettError/MutatorMath/issues/29","id":239006182,"user":{"login":"LettError","id":1243961,"avatar_url":"https://avatars.githubusercontent.com/u/1243961?v=3","gravatar_id":"","url":"https://api.github.com/users/LettError","html_url":"https://github.com/LettError","followers_url":"https://api.github.com/users/LettError/followers","following_url":"https://api.github.com/users/LettError/following{/other_user}","gists_url":"https://api.github.com/users/LettError/gists{/gist_id}","starred_url":"https://api.github.com/users/LettError/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LettError/subscriptions","organizations_url":"https://api.github.com/users/LettError/orgs","repos_url":"https://api.github.com/users/LettError/repos","events_url":"https://api.github.com/users/LettError/events{/privacy}","received_events_url":"https://api.github.com/users/LettError/received_events","type":"User","site_admin":false},"created_at":"2016-08-10T21:12:47Z","updated_at":"2016-08-10T21:12:47Z","body":"It is useful to improve the mechanism for switching glyphs in generated instances. Currently an alternative set of masters can be defined for a glyph in order to give it a different appearance. However, this can give unexpected results with components that now point to a new shape.\r\n\r\nRather than just **replace** a shape, a **swap** will give clearer results. Both the old and new shapes continue to be part of the font and components can be remapped to maintain appearance. The kerning can also be remapped. \r\n\r\n### option 1: store the swaps\r\nThis means the swapping has to be done after generating the instance. It also means the information about the swap needs to available. The swaps could be explicitly recorded in each instance like this:\r\n\r\n```xml\r\n...as part of an instance element\r\n<sub>\r\n        <!-- if swap elements are present, change one name for the other in glyph, components, kerning, groups -->\r\n        <swap source=\"a\" with=\"a.alt\">\r\n</sub>\r\n```\r\nIt is very clear what needs to be done, but the reason why is lost.\r\n\r\n### option 2: store the rules\r\nOr the rules and conditions could be stored separately and executed."}}
{"actor":{"display_login":"LettError"}}