티스토리 뷰

matlab

매트랩에서 폰트 설정 및 한글 폰트 쓰기

게으른 the lazy 2022. 7. 23. 01:29

 

매트랩의 불편한 점이 하나 있습니다. 폰트를 한번에 한 종류밖에 쓰지 못합니다. 그래서 한글이 포함되지 않은 폰트를 쓰면 한글이 제대로 표시되지 않습니다. 매트랩 설치 후 기본 폰트는 monospaced입니다. monospaced에는 한글이 포함되어 있습니다.

 

 

음. 못생겼습니다. 이걸 제가 사랑하는 Consolas[1]로 바꾸면 아래처럼 돼버립니다.

 

 

제대로 된 글자는 다 깨지면서 원래는 없는 글자인 은 제대로 표시되는게 아이러니하군요. 이 문제는 매트랩의 데스크탑 언어를 한글로 해도 똑같이 발생합니다. 원래는 아래처럼 나와야 할 것이

 

 

폰트를 Consolas로 바꾸면 아래처럼 한글이 깨져버리는 어이없는 현상이 발생합니다.

 

 

표시 언어와 환경 언어의 불일치라니[2] [3] 것으로 알고 있는데 왜 mathworks는 고쳐주지 않는 걸까요. [3]의 질문자는 [4]이신 듯한데, 혹시 답을 찾았다면 알려주세요!

 

그나저나 새로 설치한 매트랩에는 왜 데스크탑 언어를 바꾸는 부분이 안 보일까요…? 에서 대로[5] 도우 [6] 소용이 없군요. 매스웍스 일해라!

 

 

참고로 vscode는 폰트를 여러 개 설정해둘 수 있습니다. 그래서 첫 번째 폰트에 없는 글자는 그 뒤에 따라오는 폰트들에서 찾아서 표시합니다. 매트랩도 이렇게 할 수 있으면 좋을텐데 말이죠.

 

 


 

매트랩 기본 패키지에 없는 폰트를 쓰고 싶다면 폰트를 다운받아서 설치하면 됩니다. 그런데 여기에도 함정이 있습니다.

 

1. 폰트를 모든 사용자용으로 설치해야 합니다.[7]

이유는 모르겠지만 그냥 설치하면 설정 창의 폰트 목록에 폰트가 나오지 않습니다. 폰트를 모든 사용사용으로 설치하고 매트랩을 재시작하면 설치한 폰트가 목록에 뜹니다. D2 Coding은 이렇게 하니까 설치가 되네요.

 

2. 위 방법이 통하지 않는다면 폰트 폴더에 폰트를 직접 넣어야 합니다.[7][8]

폰트 폴더는 <matlabroot>\sys\java\jre\win64\jre\lib\fonts입니다. 모르겠다면 매트랩 command window에서 아래를 실행해보세요.

 

fullfile(java.lang.System.getProperty('java.home').toCharArray', 'lib', 'fonts')

  

경로를 찾아 들어가면 폰트가 이미 몇 개 있을 겁니다. 여기에 원하는 폰트 파일들을 직접 옮기면 됩니다. 이제 매트랩을 재실행하면 폰트가 보일 것입니다. Ubuntu mono1번 방법으로 되지 않아서 2번 방법을 썼습니다.

 


 

예전에 어느 분께서 Consolas와 맑은 고딕을 합친 폰트를 [9]에 올린 적이 있습니다. 이 폰트는 영어는 Consolas, 한글은 맑은 고딕으로 표시해줍니다. 한동안 잘 썼던 것으로 기억하고 있는데, 오랜만에 생각이 나서 설치해봤더니 이상한 문제가 발생하네요.

 

 

위는 맑은 고딕과 합친 Consolas, 아래는 원래의 Consolas입니다. 폰트 굵기가 살짝 다른게 보이시나요? 이게 bold냐 아니냐의 문제가 아닙니다. 위 폰트에 bold를 주면 아래보다 훨씬 굵어지거든요. 저는 Consolas가 적당히 두께가 있으면서 둥글둥글한 느낌이라 좋아하는데 위 폰트는 그 맛을 잃어버렸습니다. 그렇다고 폰트가 잘못 만들어졌냐 하면 그건 또 아닙니다. 폰트 파일을 열어보면 Consolas 특유의 Q, i, j, l 모양이 그대로 살아있습니다. 왜 두 폰트의 굵기가 다르게 표시되는지는 저도 모르겠습니다. hohoya33[10]님 답을 알려주세요!

 

 

폰트는 fontforge[11]라는 앱으로 합칠 수 있는 것 같은데, 저는 조금 만져보다가 포기했습니다. 포기하면 편하거든요.

 


 

그래서 아쉽지만 불편한대로 평소에는 Consolas를 쓰고 한글이 필요한 경우는 monospaced로 바꾸기로 했습니다. D2 Coding은 뭔가 길쭉길쭉해서 안 이쁘더라고요. 저는 동글동글한 폰트를 좋아합니다. 그런데 폰트를 바꿀 때마다 설정을 들어가려니 불편하네요. 이 있습니다.[12] 아래 두 줄을 실행하면 코드 폰트가 monospaced로 바뀝니다.

 

s = settings;
s.matlab.fonts.codefont.Name.PersonalValue = 'monospaced';

 

이왕 하는거 함수로 만들어버리면 더 편하겠군요.

 

 

이제 두 함수를 실행하여 폰트를 쉽게 바꿀 수 있습니다.

 

 

아참, 폰트 크기도 바꿀 수 있습니다. 아래 한줄이면 됩니다.

 

s.matlab.fonts.codefont.Size.PersonalValue = 10; % 10 대신 원하는 숫자 입력

 

settingsmatlab.fonts에는 이 외에도 재밌는 설정이 많습니다. 특히 라이브 에디터 폰트를 하나하나 만질 수 있는게 신기하네요. 자세한 내용은 [13]를 들어가보세요.

 


 

코딩에서 폰트가 중요하냐고요? 중요합니다. [14]도 있습니다.

 

 

 

 

Arial을 보고 있자니 화가 나는군요. 심지어 소문자 엘과 대문자 아이는 구분조차 되지 않습니다. 부들부들

 

이건 사족입니다만, 코딩에서 serif가 쓰이는 건 본 적이 없습니다. (참고: serif vs sans serif[15]) 옛날 저해상도 모니터에서 어차피 serif를 표현할 방법이 없다보니 sans serif만 사용했고 그것이 지금까지 굳어져있다는 것 같습니다. 출력물에서는 sans serif, 화면으로는 serif가 낫다고 알려져 있는데, 이게 과학적인 이유가 있는건지 그냥 레거시의 문제인지는 모르겠네요. 이유를 아시는 분이 계시면 댓글 남겨주세요.

 

게으른 맽랩

 


 

참고한 곳들

[1] https://docs.microsoft.com/ko-kr/typography/font-list/consolas

[2] https://kr.mathworks.com/matlabcentral/answers/112551-why-matlab-doesn-t-support-font-for-foreign-language-such-as-czech-for-example-the-character-e-s-c

[3] https://kr.mathworks.com/matlabcentral/answers/281805-matlab-incorrectly-recognizes-utf-8-korean-character

[4] https://kr.mathworks.com/matlabcentral/profile/authors/6593740

[5] https://kr.mathworks.com/help/matlab/matlab_env/matlab-desktop-language-preference.html

[6] https://kr.mathworks.com/help/matlab/matlab_env/setting-locale-on-windows-platforms.html

[7] https://kr.mathworks.com/matlabcentral/answers/439298-why-does-matlab-not-show-any-newly-installed-fonts-since-updating-to-windows-version-1809

[8] https://kr.mathworks.com/matlabcentral/answers/514119-can-i-add-custom-fonts-to-my-matlab-desktop-in-preferences

[9] https://hohoya33.tistory.com/73

[10] https://hohoya33.tistory.com/

[11] https://superuser.com/questions/490922/merging-two-fonts

[12] https://kr.mathworks.com/matlabcentral/answers/501921-how-to-programmatically-adjust-the-font-size-of-the-editor-and-command-window

[13] https://kr.mathworks.com/help/matlab/ref/matlab.fonts-settings.html

[14] http://www.codingworldnews.com/news/articleView.html?idxno=2898

[15] https://www.impactplus.com/blog/sans-serif-vs-serif-font-which-should-you-use-when

'matlab' 카테고리의 다른 글

수분부족이라고?  (2) 2022.10.13
매트랩 레이아웃을 command로 저장/불러오기  (0) 2022.07.23
매트랩 및 툴박스 설치  (0) 2022.07.21
ccc 패턴을 빠르게 입력하는 방법  (0) 2022.06.16
40 - 32÷2 = 4!  (0) 2022.06.12
댓글