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>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.

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

2015.06.16 00:37

nanim 조회 수:78870 추천: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 )


======


국 어의 로마자 표기법 제3장 제8항에 나와 있는 규정은, 표기법의 복원을 염두에 둔, 학술적 목적의 로마자 표기법입니다. 이를 "전자법"이라고 한다고 가르쳐주셨습니다. 이것은 한글 자소를 기계적으로 로마자에 대응시키는 것이므로 복잡한 음운현상을 고려하지 않아도 되어서 구현이 쉬운 편에 속합니다.


초/중/종성 각각의 대응 로마자 표기를 clist에 넣는데, 이것은 상수로 취급할 예정입니다. 즉 이 내용이 바뀔 일은 없습니다.


\clist_const:Nn \c_cho_clist
    {g,kk,n,d,tt,l,m,b,pp,s,ss,-,j,jj,ch,k,t,p,h}
\clist_const:Nn \c_jung_clist
    {a,ae,ya,yae,eo,e,yeo,ye,o,wa,wae,oe,yo,u,wo,we,wi,yu,eu,ui,i}
\clist_const:Nn \c_jong_clist
    {0,g,kk,gs,n,nj,nh,d,l,lg,lm,lb,ls,lt,lp,lh,m,b,bs,s,ss,ng,j,ch,k,t,p,h}


종성의 첫 글자는 "없는" 것이므로 '0'으로 넣어두긴 했지만 실제로 사용하지는 않을 것입니다.


지난번 작성한 \SylToLvt를 \split_hangul:n이라는 이름의 함수로 이름만 바꾸고,

한 글자를 전자하는 함수는 다음과 같습니다.


\cs_new:Npn \to_RR_a_char:n #1
{
%%% 초/중/종 코드를 얻습니다.
    \split_hangul:n #1
%%% 초성의 로마자 표현을 \c_cho_clist에서 얻어내어 \g_output_tl에 넣음
    \tl_gput_right:Nx \g_output_tl {
        \clist_item:Nn \c_cho_clist { \g_cho_int + 1 }
    }
%%% 중성의 로마자 표현을 \c_jung_clist에서 얻어냄.
    \tl_gput_right:Nx \g_output_tl {
        \clist_item:Nn \c_jung_clist { \g_jung_int + 1 }
    }
%%% 종성의 로마자 표현을 \c_jong_clist에서 얻어냄. 종성이 없으면 생략.
    \int_compare:nTF { \g_jong_int = 0 }
    { }
    {
        \tl_gput_right:Nx \g_output_tl {
            \clist_item:Nn \c_jong_clist { \g_jong_int + 1 }
        }
    }
}


=======


이제 단어를 처리할 차례입니다. 아이디어만 소개하면,

  • 인자로 한글 문자열이 들어옵니다.
  • 이 문자열을 토큰리스트(tl)에 넣습니다.
  • tl의 각 아이템에 대하여 반복 작업을 실행하는 mapping함수 \tl_map_inline:Nn을 불러서 출력 문자열을 만듭니다.
  • 완성된 출력 문자열의 첫 문자가 -이면 표기하지 않는다는 규정을 위해 이것을 검사하여 제거하고 출력합니다.

다른 방식의 해법도 얼마든지 있을 것입니다.


아무튼, 이리하여 입력된 문자열의 로마자 전자법 표기가 가능하게 되었습니다.

첨부파일을 참고하십시오. RR38.tex


=====


이제 한 번 더 남았습니다. 다음 번에 할 것은 실제로 "국어의 로마자 표기법" 자체를 구현해보는 것입니다.


번호 제목 글쓴이 날짜 조회 수
346 ibook author에 관련해서 .. beavim 2012.02.06 27778
345 kswrapfig 수정본, 발표자료 [4] nova de hi 2012.02.06 24710
344 푸로구레수 님, 어제 하든 얘기... [2] file nobva dhe hii 2012.02.05 20829
343 TeX, ePub 그리고 수식 [10] file 에드 2012.02.05 27011
342 [흑흑] USB 잃어버렸습니다. [2] Kunggom 2012.02.04 25474
341 [KTS 2012] mdframed 패키지 소개 [18] Progress 2012.02.04 25085
340 2012 한국텍학회 학술대회 및 정기총회 [3] 관리자 2012.01.25 89595
339 인자를 verbatim으로 찍는 명령 file karnes 2012.01.19 4960
338 회원가입승인요청 [2] latex장갑 2012.01.18 21579
337 Texmaker 3.2.2 update [3] 에드 2012.01.16 33006
336 A4 용지를 꽉 채우는 판면 karnes 2012.01.09 5762
335 KTUG Companion 에드 2012.01.05 27727
334 KTUG 여러분 [3] Progress 2011.12.30 21918
333 한글과컴퓨터 한컴의 오피스뷰어 (Office Viewer) 이용 라이센스 변경 에드 2011.12.28 25394
332 KoPub 서체 공개 ( 문화체육관광부와 한국출판인회의 ) [1] 샘처럼 2011.12.27 49986
331 프레임 문단에 관한 잡담 file karnes 2011.12.16 5352
330 쓸만한 LaTeX 관련 문서 소개 두텁 2011.11.23 4843
329 [공지] spam 댓글로 발생하는 문제를 개선하기 위하여 초기화면의 게시글 정렬순서를 변경합니다. [3] 관리자 2011.11.21 56086
328 킨들 파이어 첫날 소감. [5] 양사장 2011.11.19 39669
327 텍관리자님 메일 문제 [2] z0nam 2011.11.15 27901



XE Login