본문으로 건너뛰기

CrossPoint Reader CJK

전자잉크 리더 펌웨어에 세로쓰기와 CJK 읽기를 붙였습니다

CrossPoint Reader는 Xteink X3·X4 전자잉크 리더의 제조사 펌웨어를 대체하는 오픈소스 펌웨어입니다. EPUB 렌더링부터 무선 전송, OPDS까지 갖췄고 24개 UI 언어에 RTL도 지원하지만, 한중일 문자는 다루지 않습니다. 이 포크는 거기에 CJK 읽기를 붙인 것입니다.

붙인 것

  • 세로쓰기(縦書き) — 일본어 책을 원래 방향으로 읽습니다. 세로쓰기는 글자를 90도 돌리는 게 아니라, 문자마다 처리가 다릅니다
  • 괄호 회전과 여백 — 「」『』 같은 모서리 괄호는 회전하지 않고 자리만 옮겨야 하고, 여는 괄호와 닫는 괄호의 여백이 다릅니다
  • 타테추요코(縦中横) — 세로쓰기 안에서 한두 자리 숫자는 눕히지 않고 가로로 묶어 세웁니다. 세 자리부터는 다시 한 자씩 세웁니다
  • CJK 글꼴 렌더링 — 내장 CJK 폰트와 SD 카드 .epdfont 지원, 없는 글자를 대체 폰트에서 찾는 폴백
  • 큰 폰트의 지연 로딩 — CJK 폰트는 라틴 폰트보다 훨씬 크고, ESP32C3의 메모리는 넉넉하지 않습니다
  • 한국어 UI — 인터페이스 번역과 폰트 폴백
  • 단어 조회와 단어장 — 본문에서 범위를 잡아 뜻을 찾고, 모아둔 단어를 플래시카드로 넘겨봅니다
  • 사전 변환 도구 — JMdict와 일본어 위키낱말사전을 기기에서 읽을 수 있는 형식으로 바꾸는 스크립트

만든 이유

전자잉크 리더는 하드웨어가 마음에 들어도 펌웨어가 언어를 지원하지 않으면 쓸 수 없습니다. 기기를 바꾸는 것보다 펌웨어를 고치는 편이 빨랐습니다.

원본을 갈아엎지 않고 그 위에 얹는 방식으로 갔습니다. 본가가 업데이트되면 다시 맞출 수 있어야 하고, 실제로 여러 차례 상류를 병합하며 따라가고 있습니다.