CrossPoint Reader는 Xteink X3·X4 전자잉크 리더의 제조사 펌웨어를 대체하는 오픈소스 펌웨어입니다. EPUB 렌더링부터 무선 전송, OPDS까지 갖췄고 24개 UI 언어에 RTL도 지원하지만, 한중일 문자는 다루지 않습니다. 이 포크는 거기에 CJK 읽기를 붙인 것입니다.
붙인 것
- 세로쓰기(縦書き) — 일본어 책을 원래 방향으로 읽습니다. 세로쓰기는 글자를 90도 돌리는 게 아니라, 문자마다 처리가 다릅니다
- 괄호 회전과 여백 — 「」『』 같은 모서리 괄호는 회전하지 않고 자리만 옮겨야 하고, 여는 괄호와 닫는 괄호의 여백이 다릅니다
- 타테추요코(縦中横) — 세로쓰기 안에서 한두 자리 숫자는 눕히지 않고 가로로 묶어 세웁니다. 세 자리부터는 다시 한 자씩 세웁니다
- CJK 글꼴 렌더링 — 내장 CJK 폰트와 SD 카드
.epdfont지원, 없는 글자를 대체 폰트에서 찾는 폴백 - 큰 폰트의 지연 로딩 — CJK 폰트는 라틴 폰트보다 훨씬 크고, ESP32C3의 메모리는 넉넉하지 않습니다
- 한국어 UI — 인터페이스 번역과 폰트 폴백
- 단어 조회와 단어장 — 본문에서 범위를 잡아 뜻을 찾고, 모아둔 단어를 플래시카드로 넘겨봅니다
- 사전 변환 도구 — JMdict와 일본어 위키낱말사전을 기기에서 읽을 수 있는 형식으로 바꾸는 스크립트
만든 이유
전자잉크 리더는 하드웨어가 마음에 들어도 펌웨어가 언어를 지원하지 않으면 쓸 수 없습니다. 기기를 바꾸는 것보다 펌웨어를 고치는 편이 빨랐습니다.
원본을 갈아엎지 않고 그 위에 얹는 방식으로 갔습니다. 본가가 업데이트되면 다시 맞출 수 있어야 하고, 실제로 여러 차례 상류를 병합하며 따라가고 있습니다.