KTUG마당은 KTUG를 방문하는 모든 이용자가 대화를 나누고 소식을 전하는 곳입니다.

  • 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
  • Team Blog의 글을 이곳 게시판의 "정보글"로 모았습니다. Team blog는 기고자가 올린 글에 질문을 받는 부담을 줄이기 위하여 댓글을 허용하지 않았습니다. 그러나 이곳 게시판으로 모으면서 댓글을 달 수 있습니다. 게시물을 작성하실 때 댓글을 원하지 않으시면 댓글을 허용하시지 않으시기를 바랍니다. 또한 불필요한 소모성 댓글을 달지 않도록 주의하여 주시기를 바랍니다.
  • TeX과 관련된 질문이나 답변은 QnA 마당을 이용하십시오. TeX과 관련된 질문은 지웁니다
  • MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
  • 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
    • 금지어에서 stackexchange, stackoverflow.com ctan.org등은 해제하였습니다.
  • 사용하는 편집기는 CKeditor입니다. 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한줄을 비웁니다. 글줄만 바꾸려면 shift-enter 를 누르시면 <BR>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.

자유글 국어의 로마자 표기법, 마지막

2015.06.17 17:11

nanim 조회 수:2939 추천:1

앞선 글

  • 문제: http://www.ktug.org/xe/index.php?document_srl=207243&mid=KTUG_open_board
  • 한글의 분해와 조립: http://www.ktug.org/xe/index.php?document_srl=208182&mid=KTUG_open_board
  • 전자법: http://www.ktug.org/xe/index.php?mid=KTUG_open_board&document_srl=208446
=====

이제 마지막으로, 실제 "국어의 로마자 표기법"을 구현해보겠습니다.

현행 국어의 로마자 표기법은 국어의 표준 발음법에 따라 적는 것이 원칙이고 로마자 이외의 부호는 (되도록) 사용하지 않습니다.
문제는 이 "표준 발음법"입니다. 기록된 문자와 실제 소리나는 발음이 상당히 다르고, 여러 음운현상이 끼어들기 때문에 이를 구현하기가 쉽지만은 않습니다.
제일 어려운 게 종성(받침)의 발음입니다. 어말 또는 자음 앞이냐, 음의 동화나 첨가가 인정되느냐 등에 따라 같은 글자라도 다른 소리로 적어야 하는 경우가 많습니다.

이 기능을 구현하는 데 있어 제일 먼저 떠오르는 생각은 초+중+종+초로 이어지는 string을 분석해서 종+초 부분을 상황에 따라 적절히 구성하면 되지 않겠는가 하는 것인데요, 그것도 한 가지 방법일 것입니다.
이 글에서는, 그러나, 애써 구해둔 "전자법"에 의한 표기를 살려보려고 합니다. 아이디어는 굉장히 단순합니다. 전자법에 의한 표기 문자열을 얻어둔 상태라면, 그 문자열의 특정할 수 있는 부분을 regex로 치환하자는 것이지요.

간단한 예를 들면 다음과 같습니다: `죽변'과 `곡안'을 생각하면, 앞의 것은 gb으로, 뒤의 것은 g-으로 적혀 있을 것입니다. 이 상태에서 g-는 g로 그 이외의 경우는 k로 적기로 하면 앞의 것은 kb, 뒤의 것은 g가 됩니다. 
이 아이디어를 밀고 나가기 위해, 전자법의 종성 부분을 다음처럼 넣어두겠습니다.

\dict_fn:nn { jong }
{
0=\empty,
1=K, 2=kk, 3=gs, 4=N, 5=NJ, 6=nh, 7=T, 8=L, 
9=LG, 10=lm, 11=lb, 12=ls, 13=lt, 14=lp, 15=lh,
16=m, 17=P, 18=BS, 19=S, 20=sS, 21=NG, 22=J, 23=C, 24=k,
25=t, 26=p, 27=H
}

(kk, gs, nh, lm, lb, ls, lt, lp, lh 등도 같은 방식으로 처리할 수 있겠지만 여기서는 아이디어만 보이기 위하여 이 모든 경우를 모두 구현하지 않았습니다.)
즉, 초성과 달리 종성은 일단 대문자로 써둔다는 것입니다. 그리고 다음과 같은 regex_replace를 적용합니다.

\regex_replace_all:nnN { K- } { g } \g_output_tl

나중에 K 대문자를 전부 소문자로 바꾸게 하면, 이 이외의 경우 종성 ㄱ은 모두 k로 나타날 것입니다.

참 재미나고 좋은 방법인데요, 문제는 l3regex 패키지가... 좀 속도의 문제가 있다는 거지요. 여러 개의 regex를 적용하면 아주 조금 지체가 발생합니다.
아무튼 이 강좌(?)의 목적은 아이디어를 구현하는 데 있으므로 (실용성은 차치하고) 이것으로 만족하려 합니다.
(당연하지만, 표준 발음을 옵션인자로 주면 정확한 표기를 얻을 수 있는 것은 동일합니다. 속도 문제로 구현하지 않은 말음의 처리가 문제가 되면 이 방법을 사용하십시오. 소스에 해당 사항이 있습니다.)

=====

\givenName이라는 명령은 로마자 표기법의 인명 표기 규정을 적용한 것입니다. 사용방법은 성과 이름을 세미콜론(;)으로 분리하고 필요하다면 붙임표를 쓸 수 있게 해두었습니다. \givenName{황;빛-나}

=====

첨부 파일을 컴파일하면 처음 변환되는 문자열을 먼저 보이고 최종 결과를 보여줍니다. 이 과정이 번거롭다면 소스 중에 !!!!!라고 주석이 달린 행을 주석처리하면 됩니다. 

첨부파일 참조: RR-f.tex
샘플의 컴파일 결과: RR-f.pdf

=====

이것으로 제1차 라텍 스터디를 마칩니다. 감사합니다.

번호 제목 글쓴이 날짜 조회 수
공지 [공지] 2020 한국텍학회 제13차 정기총회 및 학술대회 [13] yihoze 2020.01.10 1060
공지 KTUG 사설저장소 브라우저 베이드프즈 2017.07.16 69908
공지 장애 복구 안내 [9] 관리자 2017.05.04 73412
공지 TeX Live 2019 설치 안내 [9] 관리자 2016.06.05 112552
676 [샘플문서, 소스] 금강경 언해, 금강경 [3] file karnes 2010.05.06 30176
675 잡담: 텍 문서 번역 [3] yihoze 2010.10.04 46369
674 추억의 문서 <글쓰기와 병법> [1] file nova de hi 2011.07.04 28606
673 좋은 문서를 하나 crop해봤습니다.... [2] file 불량양파 2013.07.15 17582
672 멍청하고 비효율적인 워드프로세서 [5] ischo 2013.12.20 17713
671 인터넷 기반 TeX 문서 작성/공동작업: authorea [1] 커꿈 2015.05.29 2914
670 Arch Linux 사용자를 위한 은글꼴/나눔바른고딕 글꼴 패키지 [5] xylosper 2013.08.08 31344
669 [새 위키] 주제별 분류에 의한 텍 및 관련 문서 Progress 2014.11.15 3951
668 아주 약간 자세한 expl3 예 file yihoze 2015.08.28 2891
667 Expl3에 대한 단상 yihoze 2015.08.28 2828
666 게임 트리 그리기 2-2 (with tikz) [9] file ischo 2015.08.18 3150
665 게임 트리 그리기 2-1 (with tikz) [2] file ischo 2015.08.17 3240
664 [번역] 2015년판, essential-kr과 latex4wp-kr [3] ischo 2015.08.15 2958
663 게임 트리 그리기 2 (with tikz) [5] file ischo 2015.08.14 3038
662 tex를 배워보려는 학생입니다. [7] ghg 2015.08.01 3040
661 pdftex에서 truetype을 써보자 DohyunKim 2015.08.07 3392
660 syshan 패키지 file anony 2015.08.05 3064
659 josaref, 자동조사를 취하는 \ref file nanim 2015.07.30 2742
658 polyglossia를 이용하는 한국어 조판 [2] nanim 2015.07.27 3075
657 금지어 문의 [1] 세벌 2015.07.26 2885



XE Login