-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathreadhanja.sty
More file actions
78 lines (66 loc) · 2.6 KB
/
readhanja.sty
File metadata and controls
78 lines (66 loc) · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
% 한자에 한글 독음을 달아준다.
% written by Dohyun Kim
% public domain
\ProvidesPackage{readhanja}[2021/04/01 v0.9 Typeset Hanja-to-Hangul sound values]
\RequirePackage{fontspec}
\newattribute\readhanjatohangul
\directlua{require "readhanja"}
% [draft] 옵션을 주면 모든 독음을 다 나열한다.
% 그중 하나를 '\t2樂' 방식으로 선택한다. 1이 기본값.
% 현재 선택된 독음에 굵은 밑줄이 그어진다.
\DeclareOption{draft}{\directlua{readhanja.draft=true}}
\ProcessOptions\relax
% 한글 독음에 쓰일 폰트는 \readhanjahangulfont로 지시한다.
% 이 명령이 없으면 기본 한글 폰트로 식자한다.
\protected\def\readhanjahangulfont{\setfontfamily\readhanja@hangulfont}
% readhanja 환경 안 or 명령 이후에만 동작한다.
\protected\def\readhanja{%
\readhanjatohangul\z@
\begingroup
\ifdefined\readhanja@hangulfont
\readhanja@hangulfont
\else
\ifdefined\luatexkohangulfont
\luatexkohangulfont
\fi
\fi
\directlua{readhanja.hangulfont=font.current()}%
\endgroup
\def\t{\begingroup\afterassignment\readhanja@tohangul\count@}%
}
\def\readhanja@tohangul#1{\readhanjatohangul\count@#1\endgroup}
% 한글 독음을 추가/수정하기:
% \readhanjareading{樂}{낙,락,악,요}
\protected\def\readhanjareading#1#2{%
\directlua{readhanja.add_hanja_reading("#1","#2")}%
}
% 한글 읽기 사전 추가:
% \readhanjadictionary{召史}{조이}
% 사전에서 삭제:
% \readhanjadictionary{召史}{}
\protected\def\readhanjadictionary#1#2{%
\directlua{readhanja.add_hanja_dictionary("#1","#2")}%
}
% 한글 독음의 올려쓰기 정도: \readhanjaraise{0.5ex}.
% 독음 위치 pre 또는 post에서는 기본값이 0.5ex.
% 독음 위치 top 또는 bottom에서는 기본값이 0pt.
\protected\def\readhanjaraise#1{%
\directlua{readhanja.raise=tex.sp("#1")}%
}
% 읽기 단위: 독음을 글자마다 달 것인가, 단어 단위로 달 것인가?
% \readhanjaunit{char} or \readhanjaunit{word}
% 기본값은 word.
% [draft] 옵션은 읽기 단위 char를 강제한다.
% 독음 위치 top 또는 bottom은 읽기 단위 char를 강제한다.
\protected\def\readhanjaunit#1{%
\directlua{readhanja.unit="#1"}%
}
% 독음 달기 위치: 한자 앞에 달 것인가, 뒤에 달 것인가,
% 한자 위에 달 것인가, 아래에 달 것인가?
% \readhanjalocate{pre} or \readhanjalocate{post} or
% \readhanjalocate{top} or \readhanjalocate{bottom}
% 기본값은 pre.
% [draft] 옵션은 pre 또는 post만 허용한다.
\protected\def\readhanjalocate#1{%
\directlua{readhanja.locate="#1"}%
}