Skip to content

Instantly share code, notes, and snippets.

@monokano
monokano / Glyphs-AJ1-GSUB.md
Last active November 20, 2020 23:44
GlyphsのAJ1の問題と対処 1. GSUB編

GlyphsのAJ1の問題と対処 1. GSUB編

GlyphsはAdobe-Japan1フォントを書き出せるものの、その実装にはいくつか問題を抱えています。ここではGSUBの問題と対処方法を説明します。

GSUBファイル

ROSをAJ1にして、OpenTypeフィーチャーになにも設定しないと、Glyphsはフォント書き出し時にAdobe製GSUBファイルを読み込み、そのフォントのGSUBフィーチャーにします。読み込まれるGSUBファイルは以下のResourcesフォルダの中にあります。

  • v2まで Glyphs.app/Contents/PlugIns/OTF.glyphsFileFormat/Contents/Resources/
  • v3 Glyphs 3.app/Contents/Frameworks/GlyphsCore.framework/Versions/A/Resources

GSUBファイルは5つあります。

  • gsubAdobe-Japan1-3.txt
@monokano
monokano / Glyphs-AJ1-ROS.md
Last active July 28, 2019 01:33
GlyphsのAJ1の問題と対処 2. ROS編

GlyphsのAJ1の問題と対処 2. ROS編

GlyphsはAdobe-Japan1フォントを書き出せるものの、その実装にはいくつか問題を抱えています。ここではROS情報の問題と対処方法を説明します。

ROS情報

AJ1フォントのCFFテーブルには冒頭にROS情報が記述されています。ROSは「Registry」「Ordering」「Supplement」の頭文字を指しています。AJ1-6のときは、ROSは以下のようになります。

  • Registry:Adobe
  • Ordering:Japan1
  • Supplement:6

AJ1-3フォントの場合、JIS90用(Std)はSupplementが「3」になります。一方で、JIS04用(StdN)はSupplementを「6」にしなければいけません。JIS04用はJIS90用の後に追加されたものであり、1-3用のグリフだけでなく1-6用までのグリフもあるからです。

//#################################################################
// リンク更新を解決.jsx
//
// InDesignのオブジェクトレイヤーオプション > リンク更新オプションを
// 「applicationSettings」に設定し、反映する。
//
// 選択範囲内のリンクが処理対象
//#################################################################
if(app.documents.length === 0) {exit();}
@monokano
monokano / inddver.py
Last active December 13, 2022 13:07
InDesignファイル(ドキュメント、ブック、ライブラリ、テンプレート)の作成アプリバージョンを検出する
#!/usr/bin/python
#
# Usage: python inddver.py indesign-file(indd,indb,indl,indt)
#
# This script will detect the app version written in the indesign file.
#
import sys, os, re
def getAppName(verDec):
@monokano
monokano / aiver.py
Last active December 14, 2022 03:09
Illustratorファイル(ai, eps)の作成アプリバージョンと保存バージョンを検出する
#!/usr/bin/python
#
# Usage: python aiver.py illustrator-file(ai,eps)
#
# This script will detect the app version written in the illustrator file.
#
import sys, os, re
def getAppName(ver):
tell application "Adobe InDesign 2021"
try
--選択テキストを取得する
set curSelection to object reference of selection of document 1
if class of curSelection is in {text, character, word, line, paragraph, text style range, text column} then
set everyChar to object reference of every character of curSelection
--1文字ずつ処理をする
repeat with aChar in everyChar
@monokano
monokano / CID2Glyph.jsx
Last active September 6, 2021 10:24
InDesignでCID数字列をグリフにするJavaScript
/*
####################################################################
CID2Glyph.jsx
InDesign用JavaScript。
indd上のCID数字列をそのグリフにします。
選択範囲内を処理対象にします。
要件1 選択範囲内の文字列に「cid数字列」または「\数字列」がある。例)cid8017, \8017
要件2 そのCID数字列に「そのCIDが存在するフォント」が適用されている。
@monokano
monokano / 校正設定 Dot Gain 15%.jsx
Created March 25, 2021 01:58
InDesignの「表示>校正設定>カスタム...」を「Dot Gain 15%」にする。
//#################################################################
// 校正設定 Dot Gain 15%.jsx
//
// InDesignの「表示>校正設定>カスタム...」を「Dot Gain 15%」にする。
//#################################################################
app.layoutWindows[0].properties =
{
proofingType : ProofingType.CUSTOM,
proofingProfile : "Dot Gain 15%",
@monokano
monokano / alert_supression.applescript
Created July 3, 2021 06:01
Adobe Illustrator で Logitech の「IllustratorGc.jsxスクリプトエラー」を非表示にする AppleScript
-- Details
-- https://helpx.adobe.com/jp/illustrator/using/automation-scripts.html
tell application id "com.adobe.Illustrator"
do javascript "app.preferences.setBooleanPreference(\"ShowExternalJSXWarning\", false);"
end tell
// Script for Illustrator
// Replaces all spaces in the selected swatch name with underscores.
selSwatches = app.activeDocument.swatches.getSelected();
for(i=0; i<selSwatches.length; i++) {
selSwatches[i].name = selSwatches[i].name.split(" ").join("_");
}