KTUG마당은 KTUG를 방문하는 모든 이용자가 대화를 나누고 소식을 전하는 곳입니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- Team Blog의 글을 이곳 게시판의 "정보글"로 모았습니다. Team blog는 기고자가 올린 글에 질문을 받는 부담을 줄이기 위하여 댓글을 허용하지 않았습니다. 그러나 이곳 게시판으로 모으면서 댓글을 달 수 있습니다. 게시물을 작성하실 때 댓글을 원하지 않으시면 댓글을 허용하시지 않으시기를 바랍니다. 또한 불필요한 소모성 댓글을 달지 않도록 주의하여 주시기를 바랍니다.
- TeX과 관련된 질문이나 답변은 QnA 마당을 이용하십시오. TeX과 관련된 질문은 지웁니다
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- 사용하는 편집기는 CKeditor입니다. 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한줄을 비웁니다. 글줄만 바꾸려면 shift-enter 를 누르시면 <BR>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
한자만 입력하면 독음을 자동으로 달아준다면 참 좋을텐데... 에 관련된 내용입니다.
유니코드 한자의 우리말 독음 데이터베이스가 없을까 찾아봤는데, Windows의 IME 관련 API에 그런 게 있기는 있는 모양입니다만 TeX으로 이용하는 건 불가능할테고요. 다른 거라도 혹시 관련 라이브러리 공개된 게 없는지 아시는 분이 계신가요?
아무튼, 일단 U+4EXX와 U+4FXX의 500여자에 대하여 독음 데이터베이스를 만들었습니다.
%% U+4EXX
\clist_set:Nn \ondb_iv_xiv_zero {일,정,교,칠,상,하,면,만,장,삼,상,하,기,불,여,면}
\clist_set:Nn \ondb_iv_xiv_i {개,축,축,전,차,비,세,세,구,병,병,총,동,사,승,주}
\clist_set:Nn \ondb_iv_xiv_ii {구,양,주,유,량,엄,병,상,곤,구,개,아,장,중,극,개}
\clist_set:Nn \ondb_iv_xiv_iii {봉,관,관,찬,림,착,주,하,환,단,위,주,정,려,거,별}
\clist_set:Nn \ondb_iv_xiv_iv {불,이,예,내,복,구,구,탁,요,의,호,지,오,사,호,핍}
\clist_set:Nn \ondb_iv_xiv_v {락,음,핑,퐁,교,호,괴,승,승,을,은,야,먀,구,걸,야}
\clist_set:Nn \ondb_iv_xiv_vi {습,향,개,규,할,홀,서,둘,시,계,낭,갈,걸,돌,묠,올}
\clist_set:Nn \ondb_iv_xiv_vii {매,란,찰,유,설,염,볼,살,나,건,솔,얼,줄,잘,건,치}
\clist_set:Nn \ondb_iv_xiv_viii {귀,간,란,린,의,궐,료,마,여,쟁,사,사,이,촉,우,우}
\clist_set:Nn \ondb_iv_xiv_ix {우,운,호,기,오,정,사,세,긍,긍,아,사,아,제,아,극}
\clist_set:Nn \ondb_iv_xiv_x {두,망,항,대,교,해,역,산,형,묘,역,향,경,정,량,향}
\clist_set:Nn \ondb_iv_xiv_xi {경,야,친,박,우,설,단,렴,타,미,인,인,집,라,망,을}
\clist_set:Nn \ondb_iv_xiv_xii {십,인,륵,정,측,부,부,구,팔,장,금,개,빙,잉,종,불}
\clist_set:Nn \ondb_iv_xiv_xiii {산,륜,어,창,자,사,타,장,부,선,헌,탁,홍,동,인,천}
\clist_set:Nn \ondb_iv_xiv_xiv {간,흘,작,대,령,이,초,장,삼,상,의,무,문,인,반,묘}
\clist_set:Nn \ondb_iv_xiv_xv {앙,금,중,비,월,오,건,개,요,봉,창,임,왕,분,저,방}
%% U+4FXX
\clist_set:Nn \ondb_iv_xv_zero {종,기,패,여,조,돈,물,역,심,항,이,급,애,오,기,복}
\clist_set:Nn \ondb_iv_xv_i {벌,휴,근,비,침,부,탕,음,우,화,회,구,쉬,전,산,위}
\clist_set:Nn \ondb_iv_xv_ii {전,거,아,현,상,창,륜,창,순,신,위,저,척,현,노,백}
\clist_set:Nn \ondb_iv_xv_iii {고,이,이,설,반,혁,령,주,신,저,사,팽,사,가,비,이}
\clist_set:Nn \ondb_iv_xv_iv {사,치,정,전,감,매,단,저,포,거,피,소,차,위,저,주}
\clist_set:Nn \ondb_iv_xv_v {좌,우,앙,분,점,하,필,타,사,여,일,불,작,구,녕,통}
\clist_set:Nn \ondb_iv_xv_vi {이,헌,거,용,와,첨,석,카,포,패,회,격,로,항,합,양}
\clist_set:Nn \ondb_iv_xv_vii {백,법,명,가,이,병,길,한,활,궤,전,조,교,차,일,사}
\clist_set:Nn \ondb_iv_xv_viii {형,신,탁,간,질,해,래,이,치,과,광,례,음,시,미,주}
\clist_set:Nn \ondb_iv_xv_ix {혁,유,안,률,모,이,륜,동,타,치,순,공,주,의,여,천}
\clist_set:Nn \ondb_iv_xv_x {협,가,재,려,고,요,정,측,교,쾌,제,녕,농,진,모,후}
\clist_set:Nn \ondb_iv_xv_xi {군,정,진,좌,호,침,려,국,두,정,심,태,발,남,효,편}
\clist_set:Nn \ondb_iv_xv_xii {퇴,우,계,촉,아,구,서,광,곡,오,준,읍,보,량,조,초}
\clist_set:Nn \ondb_iv_xv_xiii {리,용,흔,경,현,삼,배,속,부,희,리,면,빙,보,유,사}
\clist_set:Nn \ondb_iv_xv_xiv {협,신,수,오,제,거,주,지,엄,량,려,래,리,검,수,부}
\clist_set:Nn \ondb_iv_xv_xv {화,구,효,배,천,표,숙,비,봉,아,엄,비,죽,흔,비,치}
이렇게 해놓고 한자 한 글자가 입력되면 그 글자의 코드포인트를 얻습니다. 예컨대 低자의 코드포인트는 U+4F4E입니다.
이 가운데 앞의 세 16진수 숫자를 가지고 ondb 매크로의 이름을 찾습니다. 4, F 는 iv와 xv이므로 \ondb_iv_xv_iv라는 매크로가 여기에 해당합니다.
마지막 16진수 숫자의 10진수 표현에 1을 더하여(0부터 시작하기 때문에) 해당 아이템을 가려냅니다. 즉 \ondb_iv_xv_iv의 15(E=14+1)번째 항목을 찾는 것이죠.
그것은 "저"입니다.
첨부파일은 이 아이디어를 구현한 것입니다. 그러나...
- 두 가지 이상의 음으로 읽히는 경우를 반영하지 못했습니다.
- 두음법칙이 적용되는 것도 이음이므로 역시 반영되지 않았습니다.
- BMP 평면만 생각해도 4EXX에서 9FXX까지, 여기에 한중일 통합한자 확장 A/B, 호환한자(F9XX--FAXX)의 모든 독음 정보를 만들어야 하는데 이건 뭐... 누가 해둔 거 없으면 못할 일이겠네요.
댓글 17
-
DohyunKim
2015.05.07 22:14
-
nanim
2015.05.08 01:50
말씀 듣고 조금 해봤습니다.
$ awk '/kHangul/' Unihan_Reading.txt >kHangul.txt
$ wc -l kHangul.txt
7746 kHangul.txt
그러니까, 모두 7745자에 한국어 음이 붙어 있다는 얘기겠네요.
이 파일에 간단한 정규식을 적용하여 HanjakHangul.tex을 만들고, 이걸 읽어들이도록 했습니다.
부하가 좀 걸리지만... 뭐 그럭저럭 의도한 대로 됩니다.
-
nanim
2015.05.08 10:52
어느 정도나 손이 가야 하는지 소단적치인으로 테스트해봤습니다. 확실히 수작업이 불가피하겠네요.
그런데 unihan이 제공하는 한자음이 우선순위가 이상한 것, 이음이 있는데도 안 나오는 것, 마땅히 한글 음이 제공되어야 할 것 같은데 없는 것이 제법 됩니다.
그래도 아무튼지 한자만 주루룩 써두면 (특히 \everyhanja를 이용하여) 한글 음이 붙는 것은 제법 신기하네요.
아시는 분은 아시겠지만 소단적치인은 사연있는 문서입니다. :)
-
DohyunKim
2015.05.08 11:22
kHangul 보다 kKorean 을 이용하는 쪽이 더 좋습니다. 한글 음가가 더 많아요.
kKorean 은 예일 표기법으로 표기되어 있습니다.
-
DohyunKim
2015.05.08 14:49
kHangul 에다 kKorean 을 추가한 것을 첨부합니다.
한자 "則"에 대한 음가로 "칙"과 "측"만 있고 "즉"은 여전히 포함돼 있지 않더군요.
-
nanim
2015.05.08 15:29
감사합니다. kKorean을 이용하라셔서 yale2lvt를 만드는 삽질...을 해봤습니다만... 올려주신 합쳐진 파일로 하는 게 좋겠네요.
그래도 테스트한 게 아까우니까 올려보겠습니다.
-
nanim
2015.05.09 21:26
지금까지 한 것을 정리했습니다. grruby와 hnja2hngl 두 개의 스타일 파일로 이루어져 있습니다.
(grruby는 앞서 올린 것 그대로입니다.)
궁금하신 분은 문서만 읽어보시어요. hnja2hngl-doc.pdf
저는 이 정도로 만족합니다. (해보고 싶던 건 다 했습니다. :)
// v0.2: 한자 다음의 쉼표가 사라지는 치명적 버그를 수정하였습니다.
-
DohyunKim
2015.05.13 20:29
루아텍 패키지를 만들어봤습니다. BMP평면은 거의 완전하게 지원합니다.
https://goo.gl/Xld4Nz
-
Progress
2015.05.13 23:22
올려주신 루아텍용 readhanja 패키지를 테스트해봤는데요.
1. 혹시 readhanja 패키지를 얹으면 본문에서 \setmainhanjafont로 지정된 폰트가 제 기능을 발휘하는지 궁금합니다. (readhanja 환경 안팎을 물론하고)
2. 한글 독음을 한자 우측에 놓는 옵션을 혹시 추가할 수 있을까요?
p.s. 2007년경 C일보에서 다운로드해 놓은 ChosunM.ttf 를 테스트 파일에 사용하였습니다. 현재 C일보 사이트에서 다운로드 페이지를 제공하는 것 같진 않더라고요. 차선책으로 다른 페이지를 링크해둡니다.
http://iff.co. kr/iff_font/8125
*grruby 패키지와 progress 루비 스타일도 잠깐 사용해봤습니다. ^^;
-
nanim
2015.05.14 00:22
readhanja 잘 봤습니다. 역시 루아텍이 좋네요. :)
첨부파일은 앞서 올린 hnja2hngl.sty의 개선판입니다.
-
DohyunKim
2015.05.14 00:28
@Progress
1. hanjabyhanjafont=1 을 선언하셨나요?
2. 네, TODO 목록에 올려두겠습니다.
-
Progress
2015.05.14 18:30
감사합니다. \hanjabyhanjafont=1을 지정하니 잘 나옵니다.
근데 이건 좀 다른 얘긴데요.
luatexko-doc.pdf에 모노폰트로 사용된 Source Han Sans K,
hnja2hngl-doc.pdf에 모노폰트로 Noto Sans CJK KR Regular
pdf에서 이 두 폰트는 텍스트 복사가 아니되더라고요.
폰트 자체에 텍스트 복사를 금하는 기능이 들어있는 건지 모르겠습니다.
설마 half width feature를 부여해서 그런 건 아니겠지요? (시간 없어서 테스트는 안 해봤습니다.)
-
DohyunKim
2015.05.15 13:05
half width feature 때문인 거 같네요.
다음 버전에 고치도록 하겠습니다.
-
nanim
2015.05.14 21:48
김도현 교수님의 readhanja가 생겨나서 제가 하던 건 별 쓸모가 없게 되었습니다만
readhanja를 보고 자극받아서... 不의 독음(불/부)을 자동화하는 데까지 해봤습니다.
결국 다음 글자 하나를 읽어서 결정해야 하는 거라 아주 말끔하지는 않지만 어쨌든지 원하는 대로 되는 거 같습니다.
이거 하나만 추가해도 무척 편해지네요. 아무튼 저는 여기까지...
readhanja를 ktug 사설저장소에서 받을 수 있게되면 좋겠습니다.
readhanja의 샘플 문서를 hnja2hngl로 식자하는 그림을 (기념으로) 첨부합니다.
-
DohyunKim
2015.05.15 16:25
ktug 저장소에 hnja2hngl과 readhanja를 넣었습니다.
-
nanim
2015.05.15 19:09
감사합니다.
(역시) 기념으로, 맨처음 이 얘기가 시작되던 무렵 예문으로 쓴 "춘야연도리원서"를 음가 수동 선택 없이 두 패키지로 조판한 결과입니다.
ps. 어디선가 긁어왔더니 결국 문제가... 고담은 마땅히 高談이어야 하겠습니다. (편복자가 사는 도시 아닙니다... ^^) 그리고 "대괴가아이문장"의 '가'자도 마음에 안 드네요...
-
Progress
2015.05.15 19:16
감사합니다.
방금 설치하고 매뉴얼을 좀 들여다보았습니다.
꼭 유용하게 써먹겠습니다.
물론 한국이 제출한 한자에만 한글 음가가 달려있습니다.
게다가 한자 하나에 한글 음가가 여럿인 경우가 상당히 많고요.
결국 사전을 검색하는 방법을 써야하고, 궁극에는 사람의 손이 가야한다고 봅니다.
우선 폰트 하나를 간단히 시험해봤습니다.