### Source Han Mega OTC

## Source Han Sans, Source Han Serif & Source Han Mono

otf2otc -o SourceHan.ttc SourceHanSans.ttc SourceHanSerif.ttc SourceHanMono.ttc


### Noto CJK Mega OTC

## Noto Sans CJK & Noto Serif CJK

otf2otc -o NotoCJK.ttc NotoSansCJK.ttc NotoSerifCJK.ttc


### Source Han + Noto CJK Ultra OTC

## Replace Noto CJK CFFs and 'cmap' tables with Source Han versions

# Extract the Source Han Sans (J) CFFs
#
# $dir = ExtraLight Light Normal Regular Medium Bold Heavy

sfntedit -x CFF=CFF.Sans.$dir SourceHanSans-$dir.otf

# Rename ExtraLight to Thin, Normal to DemiLight, and Heavy to Black

mv CFF.Sans.ExtraLight CFF.Sans.Thin
mv CFF.Sans.Normal CFF.Sans.DemiLight
mv CFF.Sans.Heavy CFF.Sans.Black

# Extract the 10 unique Source Han Sans 'cmap' tables

sfntedit -x cmap=cmap.Sans.jp SourceHanSans-Regular.otf
sfntedit -x cmap=cmap.Sans.kr SourceHanSansK-Regular.otf
sfntedit -x cmap=cmap.Sans.sc SourceHanSansSC-Regular.otf
sfntedit -x cmap=cmap.Sans.tc SourceHanSansTC-Regular.otf
sfntedit -x cmap=cmap.Sans.hk SourceHanSansHC-Regular.otf
sfntedit -x cmap=cmap.Sans.Mono.jp SourceHanSansHW-Regular.otf
sfntedit -x cmap=cmap.Sans.Mono.kr SourceHanSansHWK-Regular.otf
sfntedit -x cmap=cmap.Sans.Mono.sc SourceHanSansHWSC-Regular.otf
sfntedit -x cmap=cmap.Sans.Mono.tc SourceHanSansHWTC-Regular.otf
sfntedit -x cmap=cmap.Sans.Mono.hk SourceHanSansHWHC-Regular.otf

# Insert Source Han Sans CFFs and 'cmap' tables; remove 'DSIG' tables
#
# $dir = Thin Light DemiLight Medium Black

sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.jp NotoSansCJKjp-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.kr NotoSansCJKkr-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.sc NotoSansCJKsc-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.tc NotoSansCJKtc-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.hk NotoSansCJKhk-$dir.otf

# $dir = Regular Bold

sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.jp NotoSansCJKjp-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.kr NotoSansCJKkr-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.sc NotoSansCJKsc-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.tc NotoSansCJKtc-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.hk NotoSansCJKhk-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.Mono.jp NotoSansMonoCJKjp-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.Mono.kr NotoSansMonoCJKkr-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.Mono.sc NotoSansMonoCJKsc-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.Mono.tc NotoSansMonoCJKtc-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Sans.$dir,cmap=cmap.Sans.Mono.hk NotoSansMonoCJKhk-$dir.otf

# Rebuild Noto Sans CJK Super OTC

otf2otc -o NotoSansCJK.ttc NotoSansCJKjp-Thin.otf NotoSansCJKkr-Thin.otf NotoSansCJKsc-Thin.otf NotoSansCJKtc-Thin.otf NotoSansCJKhk-Thin.otf NotoSansCJKjp-Light.otf NotoSansCJKkr-Light.otf NotoSansCJKsc-Light.otf NotoSansCJKtc-Light.otf NotoSansCJKhk-Light.otf NotoSansCJKjp-DemiLight.otf NotoSansCJKkr-DemiLight.otf NotoSansCJKsc-DemiLight.otf NotoSansCJKtc-DemiLight.otf NotoSansCJKhk-DemiLight.otf NotoSansCJKjp-Regular.otf NotoSansCJKkr-Regular.otf NotoSansCJKsc-Regular.otf NotoSansCJKtc-Regular.otf NotoSansCJKhk-Regular.otf NotoSansMonoCJKjp-Regular.otf NotoSansMonoCJKkr-Regular.otf NotoSansMonoCJKsc-Regular.otf NotoSansMonoCJKtc-Regular.otf NotoSansMonoCJKhk-Regular.otf NotoSansCJKjp-Medium.otf NotoSansCJKkr-Medium.otf NotoSansCJKsc-Medium.otf NotoSansCJKtc-Medium.otf NotoSansCJKhk-Medium.otf NotoSansCJKjp-Bold.otf NotoSansCJKkr-Bold.otf NotoSansCJKsc-Bold.otf NotoSansCJKtc-Bold.otf NotoSansCJKhk-Bold.otf NotoSansMonoCJKjp-Bold.otf NotoSansMonoCJKkr-Bold.otf NotoSansMonoCJKsc-Bold.otf NotoSansMonoCJKtc-Bold.otf NotoSansMonoCJKhk-Bold.otf NotoSansCJKjp-Black.otf NotoSansCJKkr-Black.otf NotoSansCJKsc-Black.otf NotoSansCJKtc-Black.otf NotoSansCJKhk-Black.otf

# Extract the Source Han Serif (J) CFFs
#
# $dir = ExtraLight Light Regular Medium SemiBold Bold Heavy

sfntedit -x CFF=CFF.$dir SourceHanSerif-$dir.otf

# Rename Heavy to Black

mv CFF.Serif.Heavy CFF.Serif.Black

# Extract the four unique Source Han Serif 'cmap' tables

sfntedit -x cmap=cmap.Serif.jp SourceHanSerif-Regular.otf
sfntedit -x cmap=cmap.Serif.kr SourceHanSerifK-Regular.otf
sfntedit -x cmap=cmap.Serif.sc SourceHanSerifSC-Regular.otf
sfntedit -x cmap=cmap.Serif.tc SourceHanSerifTC-Regular.otf

# Insert Source Han Serif CFFs and 'cmap' tables; remove 'DSIG' tables
#
# $dir = ExtraLight Light Regular Medium SemiBold Bold Black

sfntedit -d DSIG -a CFF=CFF.Serif.$dir,cmap=cmap.Serif.jp NotoSerifCJKjp-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Serif.$dir,cmap=cmap.Serif.kr NotoSerifCJKkr-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Serif.$dir,cmap=cmap.Serif.sc NotoSerifCJKsc-$dir.otf
sfntedit -d DSIG -a CFF=CFF.Serif.$dir,cmap=cmap.Serif.tc NotoSerifCJKtc-$dir.otf

# Rebuild Noto Serif CJK Super OTC

otf2otc -o NotoSerifCJK.ttc NotoSerifCJKjp-ExtraLight.otf NotoSerifCJKkr-ExtraLight.otf NotoSerifCJKsc-ExtraLight.otf NotoSerifCJKtc-ExtraLight.otf NotoSerifCJKjp-Light.otf NotoSerifCJKkr-Light.otf NotoSerifCJKsc-Light.otf NotoSerifCJKtc-Light.otf NotoSerifCJKjp-Regular.otf NotoSerifCJKkr-Regular.otf NotoSerifCJKsc-Regular.otf NotoSerifCJKtc-Regular.otf NotoSerifCJKjp-Medium.otf NotoSerifCJKkr-Medium.otf NotoSerifCJKsc-Medium.otf NotoSerifCJKtc-Medium.otf NotoSerifCJKjp-SemiBold.otf NotoSerifCJKkr-SemiBold.otf NotoSerifCJKsc-SemiBold.otf NotoSerifCJKtc-SemiBold.otf NotoSerifCJKjp-Bold.otf NotoSerifCJKkr-Bold.otf NotoSerifCJKsc-Bold.otf NotoSerifCJKtc-Bold.otf NotoSerifCJKjp-Black.otf NotoSerifCJKkr-Black.otf NotoSerifCJKsc-Black.otf NotoSerifCJKtc-Black.otf

## Source Han Sans, Source Han Serif, Source Han Mono, Noto Sans CJK & Noto Serif CJK

otf2otc -o SourceHanNotoCJK.ttc SourceHanSans.ttc SourceHanSerif.ttc SourceHanMono.ttc NotoSansCJK.ttc NotoSerifCJK.ttc

# EOF
