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


=====


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


번호 제목 글쓴이 날짜 조회 수
972 hzexam.sty를 위한 파이썬 스크립트 [2] file yihoze 2021.04.20 2042
971 KTUG 사설 저장소 미러 (CRAN 0-Cloud-East-Asia) 정상화 안내 [3] 배성호 2021.05.02 2103
970 TL 2021 TL Manager 번역 파일 [3] file Dennis 2021.04.05 2113
969 tabularray 예제 [2] file Progress 2022.11.20 2166
968 회비 입금하신 분을 찾습니다. yihoze 2021.05.03 2208
967 감사인사 드립니다. :) [5] 이삭 2021.03.11 2215
966 oblivoir 3.0의 은 글꼴 [1] file noname 2021.03.15 2222
965 설 잘 쇠세요 [1] Progress 2021.02.12 2242
964 ksbaduk 2021 [8] file noname 2021.03.16 2245
963 텍 문서들을 한 파일에 담아 두고 심심할 때 꺼내 보기 [7] file yihoze 2021.02.23 2274
962 [취미] DOSBOX에서 WinLaTeX (1994) [7] noname 2021.07.02 2303
961 [제안] 문서 샘플을 공유해주십시오 [11] noname 2021.03.19 2309
960 올려주신 HzGuide를 템플릿으로 Rmarkdown 연결한 문서 아웃풋입니다. [3] file 이삭 2021.03.20 2317
959 구결 조판 시도 [5] file noname 2021.05.18 2431
958 안녕하세요 lshort-kr 오타를 찾은 것 같습니다. [2] file 텍초보 2020.09.09 2451
957 수식 한글 ( xetexko v3.0 (2021-03-20) 이후 부터 변경 사항 ) [1] file ischo 2021.03.26 2460
956 시험지, 문제지, 학습지 제작에 필요한 몇 가지 [10] noname 2021.03.29 2530
955 가입인사드립니다 김세훈 2020.12.18 2552
954 metapost 현업활용예시 [2] file onionsjk 2021.05.04 2632
953 삼각형과 원 [7] file 김퍼프 2021.05.02 2635



XE Login