OTS-SIDE-BY-SIDE(1)
π NAME π
okay so bestie, ots-side-by-side β she's a font quality checker β¨ that's literally her whole job description
πΈ SYNOPSIS πΈ
ots-side-by-side FONT_FILE
β¨ DESCRIPTION β¨
so ots-side-by-side is this program that renders a bunch of characters (ASCII, Latin-1, CJK, the whole squad) using both the original font and the transcoded font, and then it checks that the two rendering results are exactly equal. like, byte-for-byte, no cap. if they match? slay. if they don't? bestie we have a problem π₯
the following Unicode characters get used during the test, and yes I'm listing all of them because we don't skip:
0x0020 - 0x007E // Basic Latin
0x00A1 - 0x017F // Latin-1
0x1100 - 0x11FF // Hangul
0x3040 - 0x309F // Japanese HIRAGANA letters
0x3130 - 0x318F // Hangul
0x4E00 - 0x4F00 // CJK Kanji/Hanja
0xAC00 - 0xAD00 // Hangul
this tool uses the FreeType library π¦ iykyk
β οΈ note, bestie: this tool does not check kerning (GPOS/kern) nor font substitution (GSUB). those should be tested in Layout tests if necessary. not her department, she's just doing her thing π
π EXAMPLES π
$ ./ots-side-by-side linux/kochi-gothic.ttf # no problem
$ ./ots-side-by-side free/kredit1.ttf # this is known issue of OTS.
bitmap metrics doesn't match! (14, 57), (37, 45)
EXPECTED:
+#######*.
+##########+
.###+.#. .#.
*#* # #*
##. # ##
## # ##
## # ##
## #. ##
##. #. .##
##. #. .##
*#+ *+ +#*
*#+ *+ +#*
*#+ *+ +#*
*#+ *+ +#*
*#+ *+ *#*
*#+ ++ *#+
+#* +* *#+
+#* +* *#+
+#* +* *#+
+#* +* ##.
+#* +* ##.
.## .# ##
.## .# ##
.## .# ##
## # ##
## # ##
## # .##
## # .##
## .#+ +#*
## +######*
##.+#######*
*##########*
+##########+
#########*
.########
+####+
.*######*
+##*.*#####
.##+.#+ +#
*#* ## #+
##*### ##
###### ##
##+.##+ +##
## ##########
## +#########
## +########
*#. .########*
.#* #########.
+##########+
+*######*
ACTUAL:
.*##*+
+##+.##*.
.#* .##.+#*
*# ### *#+
#*######+ .*#+
#########*. +#*.
###########* +#*
*############+ *#+
+##############. .##.
*##############* +#*
+###############+ *#+
*###############+ .*#+
.###############*. +#*.
+###############* +#*
*###############+ *#+
.*###############+ .*#+
+###############*. +#*
+###############* **
*###############+ #+
.###############* ##
+############+ ##
+########* .##
.######. +###
+#####+ .*#..#
+#####* *###..#
*#####. +#######*
+#####+ .*########.
+#####* +#########*
*#####. +##########+
+#####+ *#########*.
.#####* +##########+
*#####. +##########*
+#####+ *#########*.
.#####* +##########+
*#####+ +##########*
.#*++#+ *#########*.
.#+ ## +##########+
****###+.##########*
##################.
###+ *#########+
## +########*
*#+ *########.
##.#######+
+#######*
*###*.
Glyph mismatch! (file: free/kredit1.ttf, U+0021, 100pt)!
so yeah, that first one's giving flawless π and the second one is a whole situation π but it's a known issue of OTS, so. not her fault, periodt.
π REPORTING BUGS π
found a bug? tell the girlies, they'll handle it: <https://github.com/khaledhosny/ots/issues> π«Ά
β SEE ALSO β
okay that's the whole page, bestie!! this one's from OpenType Sanitizer, dated May 2021 β go forth and check those fonts, you've got this πβ¨π
π¦ where this page comes from
- epel 10: opentype-sanitizer 9.3.0-1.el10_3 Β· BSD-3-Clause
- epel 9: opentype-sanitizer 9.3.0-1.el9 Β· BSD-3-Clause
- fedora 43: opentype-sanitizer 9.2.0-4.fc43 Β· BSD-3-Clause
- fedora 43: opentype-sanitizer 9.3.0-1.fc43 Β· BSD-3-Clause
- fedora 44: opentype-sanitizer 9.2.0-6.fc44 Β· BSD-3-Clause
- fedora 44: opentype-sanitizer 9.3.0-1.fc44 Β· BSD-3-Clause
- nixos 26.05: opentype-sanitizer 9.2.0
- nixpkgs unstable: opentype-sanitizer 9.3.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms