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>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
정보글 TeX과 공백 문자 (2)
2014.07.05 13:34
앞 게시물( http://www.ktug.org/xe/?document_srl=184333&mid=blog )에서 어떤 때 공백 문자가 살아남는지를 보았거니와, 이렇게 살아남은 공백도 기실 공백 문자로 남는 게 아니라 텍에 의해 글루(glue)로 변환된다. 글루란 늘어나거나 줄어들 수 있는 간격이다. 이를테면
\hskip 3.33pt plus 1.67pt minus 1.11pt
이것이 수평모드(글자들을 가로로 배열하여 문단을 만드는 모드)에서의 글루의 예다. 기본값 3.33pt의 간격에다 필요시 최대 1.67pt까지 더해질 수 있고 최대 1.11pt만큼 감소할 수 있는 것이다. 그리하여 띄어쓰기 폭이 가변적이 된다. 예시의 값은 cmr10 폰트를 10포인트 크기로 불렀을 때 띄어쓰기 가변폭과 같다.
이 값들은 어디서 오는 것일까? 텍 폰트에는 적어도 7가지 fontdimen이 반드시 지정되도록 되어있다(수식폰트에는 수십 개가 있다고 한다). 나눔명조를 예로 들어,
\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont{NanumMyeongjo}
\begin{document}
\fontname\font\par
\begin{tabular}{rcl}
slant & 1:& \the\fontdimen1\font\\
space & 2:& \the\fontdimen2\font\\
stretch & 3:& \the\fontdimen3\font\\
shrink & 4:& \the\fontdimen4\font\\
xheight & 5:& \the\fontdimen5\font\\
quad & 6:& \the\fontdimen6\font\\
xspace & 7:& \the\fontdimen7\font
\end{tabular}
\end{document}
xelatex으로 이 문서를 컴파일하면 다음의 결과를 얻는다.
"NanumMyeongjo/OT:mapping=tex-text;"
slant 1: 0.0pt
space 2: 2.99805pt
stretch 3: 1.49902pt
shrink 4: 0.99934pt
xheight 5: 4.6875pt
quad 6: 10.0pt
xspace 7: 0.99934pt
여기서 2, 3, 4번 fontdimen이 각각 띄어쓰기 글루의 기본값, 증가값, 감소값이 되는 것이다. 즉 나눔명조의 띄어쓰기 공백은 \hskip 3pt plus 1.5pt minus 1pt에 해당하거니와, 보다시피 영문 기본 폰트인 cmr10의 값보다 작다.
공백 글루의 증가값은 기본값의 절반이고, 감소값은 기본값의 삼분의 일임을 어렵지 않게 짐작할 수 있다. 그렇다면 공백 글루의 기본값은 어떻게 정해지는가? 당연하게도 나눔명조 폰트에 들어있는 스페이스 글리프(0x20=32번 글자)의 가로폭 값이 그것이다. 스페이스 글리프는 결과물 PDF에 결코 포함되지 않는데, 그대신 fontdimen2의 값으로 자신의 역할을 다 하는 것이다.
한글 문서의 식자에는 영문 폰트와 한글 폰트가 혼용된다. 한글 폰트로 식자된 글자 다음의 공백에는 영문 폰트가 아니라 한글 폰트에 들어있는 fontdimen이 사용되어야 함이 마땅하다. 하지만 오래된 ko.TeX 패키지들은 영문 폰트의 fontdimen을 한글 다음에도 그대로 함께 사용한다. 그에 비해 cjk-ko (패키지 옵션 hangul이 지시된 경우), xetexko, 그리고 luatexko는 한글 다음에는 한글 폰트의 값을 사용하도록 디자인되어있다. 최근 패키지를 이용할 때 한글 문서가 좀더 예뻐 보이는 이유 가운데 하나가 여기에 있다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
1109 | latex4wp의 표 그리기 [4] | noname | 2023.11.26 | 213 |
1108 | yihoze님의 지워진 글에 대한 코멘트 [5] | noname | 2023.12.05 | 216 |
1107 | 게임 테이블 그리기 5 - 혼합전략 | ischo | 2024.02.16 | 223 |
1106 | 문단 단위 대역본 2 | yihoze | 2022.09.26 | 226 |
1105 | 인자 파일을 여는 VS Code 확장 프로그램 [14] | yihoze | 2023.01.12 | 234 |
1104 | 게임 테이블 그리기 3 - 3인 게임 | ischo | 2024.02.14 | 240 |
1103 | 상장 템플릿 [2] | 나그네 | 2023.11.05 | 241 |
1102 | 게임 테이블 그리기 4 - 제로섬 게임 [4] | ischo | 2024.02.14 | 258 |
1101 | SVG를 tikz로 바꾸기 | yihoze | 2022.09.30 | 259 |
1100 | 파워셸에서 [9] | yihoze | 2023.03.30 | 265 |
1099 | 제주어와 제주서체 (2) [3] | noname | 2023.02.20 | 272 |
1098 | cloche: tex-to-epub 변환기 [6] | yihoze | 2022.10.13 | 274 |
1097 | enqjftlr vozlwl [1] | noname | 2023.03.01 | 275 |
1096 | Noto 폰트 [4] | yihoze | 2023.09.06 | 275 |
1095 | eqnarray와 align [1] | noname | 2022.09.20 | 278 |
1094 | 문서작성 워크숍 위키를 Zotero 컬렉션으로 만든 파일 공유 [2] | 에드 | 2023.09.26 | 278 |
1093 | 1999년에 제출된 Unicode 한글 TeX 개발 연구결과보고서 [1] | likesam | 2023.05.29 | 281 |
1092 | 이원일차연립방정식 | noname | 2022.11.23 | 288 |
1091 | 그림 그리는 오픈소스웨어 ipe | 하늘연 | 2023.04.22 | 291 |
1090 | 오늘 날씨가 상당히 쌀쌀하네요 | 필교 | 2022.10.26 | 292 |