Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
- 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
- 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
- 최소 예제는 "Minimal working example"을 읽어 보세요.
- 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
- 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 사용하는 편집기는 CKeditor입니다.
- 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
- 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
- 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.
원하는 폰트로 수식의 글꼴을 변경하고 싶습니다.
2024.08.09 01:36
기존에 MathType 으로 워드에 수식을 작성하다가 LaTeX 로 넘어오려 합니다.
MathType 의 경우에는 [Define Styles] -> [Advanced] 에 들어가면,
Text, Function, Variable, L.C. Greek, U.C. Greek, Symbol, Vector-Matrix, Number, Extra Math 등의 폰트를 다 지정할 수 있는데, LaTeX 에서는 어떻게 할 수 있나요?
Century Schoolbook 폰트의 Roman, Bold, Italic 스타일의 .ttf 파일은 모두 가지고 있는 상태입니다.
댓글 3
-
yihoze
2024.08.09 13:34
-
noname
2024.08.09 19:01
(1) 전제: Math 폰트와 Text 폰트
유니코드 오픈타입 또는 트루타입 폰트 가운데 "수학 글꼴"이라는 것은 다음 두 가지 조건을 갖춘 것을 말합니다: (1) 유니코드 수학 부호의 테이블과 글리프가 갖추어져 있고, (2) Script=Math 속성을 가진 것.
예를 들어 대표적인 LaTeX 수학 글꼴인 latinmodern-math.otf의 경우에 이 두 가지를 검사해보면,
이 조건을 갖추지 않은 폰트는 Text 폰트입니다.
Math 폰트로 Windows 시스템의 기본 수학 글꼴인 Cambria Math라는 것이 있고, TeX Live에 들어 있는 것의 목록은 다음과 같습니다(TeXLive 2024). 상업용 폰트 가운데는 Minion Math가 유명합니다.
Latin Modern Math NewComputerModernMath (Regular,Book) Concrete Math (+Bold) Euler Math STIX Math STIX Two Math XITS Math (Regular,Bold) Fira Math KpMath (Sans,SansBold,Light,Regular,Bold,Semibold) OldStandard-Math TeX Gyre Bonum Math TeX Gyre DejaVu Math TeX Gyre Pagella Math TeX Gyre Schola Math TeX Gyre Termes Math Lete Sans Math (+Bold) Garamond-Math GFS Neohellenic Math Erewhon Math (+Bold) Asana Math Libertinus Math XCharter Math (+Bold)
(2) unicode-math 패키지
일반적으로 XeLaTeX 또는 LuaLaTeX으로 문서를 작성한다 하더라도, 수학 글꼴의 디폴트는 CM Math입니다. TeX의 기본 수학 글꼴에 익숙한 분들은 다른 폰트를 써야 할 필요를 거의 느끼지 못할 것이라고 생각합니다. 이 경우에는 수학 글꼴을 위한 별도의 선언은 필요없고, 단지 amsmath와 amssymb를 쓰는 것으로 충분할 것입니다. (주석: amssymb는 디폴트 CM 글꼴을 쓸 때에만 사용하는 것이 좋습니다.)
그러나 유니코드 수학 글꼴을 사용해야 하는 경우가 없지 않을 것입니다. 대표적인 예를 들자면, Microsoft Word로 작성한 수식과 비슷한 모양이 되도록 LaTeX 문서를 작성하려 할 때, 수학 글꼴을 Cambria Math로 하고 싶다든가, 그런 경우겠지요.
이를 위한 패키지가 unicode-math입니다. 사용법은 간단한 듯하면서도 복잡한데... 자세한 사항은 패키지 문서를 읽어보시기 바랍니다. 아무튼 처음 질문하신, "...다 지정할 수 있는데, LaTeX에서는" 어떻게 하느냐는 질문에 대해서는 unicode-math 패키지를 이용한다는 것이 답변이 되겠습니다.
(3) Century Schoolbook 폰트와 비슷한 LaTeX 문서의 텍스트 및 수학식 폰트 설정
TeX Live에 탑재되어 배포되는 TeX Gyre Schola라는 폰트는 Century Schoolbook의 변형 글꼴 중의 하나인 URW Schoolbook을 바탕으로 조성된 자유 글꼴입니다. Schoolbook 계통의 폰트와 거의 비슷합니다. 이 폰트군에는 Math 글꼴도 제공되고 있으므로, 다음과 같이 하고 xelatex (lualatex)으로 컴파일하면 원하는 결과를 얻을 수 있습니다.
\usepackage{fontspec} \setmainfont{TeX Gyre Schola} \usepackage{unicode-math} \setmathfont{TeX Gyre Schola Math}
한편 Windows의 Century Schoolbook 폰트에 대해(질문하신 것입니다만) 말씀드리자면, 이것은 Math 폰트가 아닙니다. 따라서 unicode-math로 \setmathfont 설정을 할 수 없습니다. 수학식은 Cambria로 하는 것이 맞겠지요. 이에 해당하는 설정은 대략 다음과 같습니다.
\usepackage{fontspec} %%%% Century Schoolbook font of Windows \setmainfont{CENSCBK.TTF}[% BoldFont={SCHLBKB.TTF}, ItalicFont={SCHLBKI.TTF}, BoldItalicFont={SCHLBKBI.TTF} ] %%%% Cambria Math, the default math font of Windows --[ \usepackage[slash-delimiter=frac]{unicode-math} \setmathfont{Cambria Math} \let\lgroup(\let\rgroup)
(4) 일부 기호만 다른 폰트로
첨부 파일의 수식 예제를 컴파일할 때 CambriaMath로 하게 되면 \lgroup과 \rgroup이 제대로 나오지 않습니다. 그리고 중첩 \sqrt 기호가 좀 어색하게 나타나는데요, \sqrt, \int, \lgroup, \rgroup 네 개의 심볼만은 다른 폰트로 찍게 하는 것이 가능합니다. 다음은 위의 예제 마지막 부분에 해당합니다.
\usepackage[slash-delimiter=frac]{unicode-math} \setmathfont{Cambria Math} \setmathfont[range={\sqrt,\int,\sum,\prod}]{XITS Math} \setmathfont[range={\lgroup,\rgroup}]{Latin Modern Math}
\int, \sum 기호 같은 것은 취향이 많이 갈리니까 원하는 모양을 가진 폰트에서 가져다 쓰는 것이 좋은 선택입니다.
(5) 텍스트 폰트를 수식의 숫자, 라틴, 그리스 글자에 적용하는 방법
마지막 주제는 과연 Century Schoolbook 폰트의 글리프를 수식 안에서 쓸 수 없는가 하는 문제입니다.
가능은 한데요, mathspec이라는 패키지가 이 역할을 합니다. mathspec은 텍스트 폰트를 수식 안에서 쓰게 해주는 것으로서 digits, latin, greek 세 종류의 글자에만 적용되고 math symbols에는 적용되지 않습니다. (참고: mathspec은 xelatex으로만 쓸 수 있습니다.)
\usepackage{mathspec} \setmathsfont(Digits,Latin,Greek)[Scale=MatchUppercase]{Century Schoolbook}
이건 제 생각에 불가피할 때가 아니면 쓰지 않는 것이 좋겠습니다. 제일 문제가 되는 것은 letter boundary라고 하는, 예컨대 이탤릭 f를 텍스트 폰트에서 가져온 글자로 찍으면 f'라고 했을 때 f와 프라임 부호가 너무 붙어버리는 문제가 생깁니다. mathspec은 "f'와 같이 " 부호를 이용하여 간격을 확보하는 방법을 제시하고 있지만 귀찮습니다.
yihoze께서 추천하신 Gentium Plus 폰트도 기본적으로 텍스트 폰트이기 때문에, 이것을 쓰려면 다음과 같이 설정합니다.
\usepackage[no-math]{fontspec} \setmainfont{Gentium Plus} \usepackage{mathspec} \setmathsfont(Digits,Latin,Greek)[Scale=MatchUppercase]{Gentium Plus}
(6) 첨부 파일에 관하여
첨부 파일의 preamble을 적당히 바꾸어 가면서 원하는 결과를 찾아보시기 바랍니다. 참고 삼아, pdflatex일 때에 scholax와 newtxfont를 이용하는 예시도 함께 들어두었습니다.
-
대학원생
2024.08.10 00:25
상세하고 친절한 답변 감사합니다!
저는 기본 LaTeX 수식 글꼴을 좋아하고 익숙해서 괜찮은데...사실 교수님이 요구하신 사항이라 ㅎㅎ ㅠ (3) ~ (5) 방법을 시도해봐야겠습니다!!