TeX를 사용하는 유목민들이라면 누구나 그림을 그리고 싶을때 tikz pgf 라는 라이브러리를 들어본 적이 있었을거임



대충 텍으로 문서작업할 때 중간중간에 이런 고퀄 삽화를 수록하고 싶은 사람들이 가장 먼저 접하는게 바로 tikz지

본인도 과제할 때 아래처럼 트리를 그리거나, 수학적인 삽화를 수록하고 싶을때 tikz를 썼던 시절이 있었음



요런식으로.. 아무래도 tikz를 이용해서 여러가지 그래프, 표, 일러스트를 고퀄리티로 만들 수 있다고 해서 혹했지만,,,


이거 써본 사람은 사용감이 개ㅈ같아서 갖다 버리고 싶은 경험 다들 있었을 거라 생각함 ㅇㅇ

노드랑 패스 하나하나 지정하는 것도 개같고, 한번도 안써본 외부 라이브러리 지식은 요만큼도 없는데다, 공식 문서 읽기엔 너무 방대하고.. 일러스트는 그냥 빨리 만들어서 넣고싶고..

오죽하면 프로그래밍에서 코드가 가장 더럽고 짜증나는 분야가 UI 그리는 쪽인데, 심지어 이런 일러스트를 뭔가 자동화된 라이브러리 없이 커스터마이징한다고 생각하면 토나오는 게 당연지사


그래서 이 글은


1. tikz나 tikz 기반 자동화 라이브러리(예를 들어 대수 chain 그릴때)를 굳이 쓰지 않더라도 간단하게 고퀄리티로 수학 삽화를 만드는 방법에 관심있는 사람들

2. 혹은 라이브러리가 정해주는 규격 이외로 커스터마이징한 삽화를 만들고 싶은 사람들


이라면 한번쯤 읽어봐도 나쁘지 않을 거 같아


보통 출판물 일러스트 작업을 할 때 어도비 일러스트레이터나 ipe같은 툴을 쓰는데 일러스트레이터는 어도비 툴이라 구독료가 비싸고 미려한 TeX 수식을 쓰려면 많은 사전작업을 거쳐야 해서 어렵고, ipe도 복잡한 곡선 위주의 일러스트 그리기 시작하면 머리 깨지기 시작하지


그래서 내가 이 글에서 추천하고 싶은 방법은 대중적인 PPT랑 TeX를 이미 설치한 사람이라면 누구나 있는 TeX 런타임을 활용하는 방법을 소개할까 해

바로 IguanaTeX 라는 PPT 확장 매크로


https://www.jonathanleroux.org/software/iguanatex/



이게 뭐냐면 PPT에 TeX를 이미지화시켜서 ppt에다 박아주는 확장 기능을 추가해주는 매크로야

보다시피 TeX를 사용해서 쓰는 수식 폰트와 동일하게 출력되고, 출판물 수준(보통 600 dpi정도)까지도 지원되는 높은 dpi 출력에 TeXLive에 설치된 라이브러리라면 얼마든 쓸 수 있는 기능을 갖췄어 (예를 들어 xcolor같은 거 불러와서 색상 변경하거나 이 안에서 tikz도 쓸 수 있다!!)


준비물은 ppt, 저 확장 매크로 파일, 이 매크로가 불러들일 TeXLive 혹은 MiKTeX (즉 PC에서 TeX 쓸때 까는 엔진)이야

그외로 개발자가 추가로 설치하면 좋다는 건 GhostScriptImageMagick, TeX2img인데 이건 필요에 따라 설치하면 될 거 같아.

특히 svg 형태로 저장하는 등 벡터 기반 출력물을 얻고 싶다면 설치해서 IguanaTeX 메인 옵션에서 경로설정만 하면 벡터 오브젝트 형태로 출력되니까 참고하구


다 설치하고 매크로 파일을 누르면..



이런 창이 뜨는데 이건 나온지 엄청 오래됐고, 이미 많은 사람들이 쓰고있는 툴이라 보안 문제 없이 매크로 포함을 눌러서 쓰면 될 거 같아

그러면 ppt 인터페이스 위에 IguanaTeX라는 탭이 뜨는 걸 확인할 수 있을 거야



요런식으로 각 기능별로 눌러가면서 써보면 어도비 일러스트레이터 남부럽지 않은 기능에, TeX 폰트까지 누릴 수 있는 수학 삽화를 만들 수 있음 ㅇㅇ

(회전/반전, 우클릭 - 점편집으로 직관적인 베지어 곡선 그리기, 정렬, 패스파인더 등등..)


일러스트를 어찌저찌 잘 만들어서 이미지로 출력시키고 싶다면 다른 이름으로 저장 - png, jpg, svg 등으로 슬라이드를 이미지화시켜 저장하고 내보낸 다음 빈 여백 공간만 다른 이미지 편집 툴(보통 포토샵)으로 크롭해서 쓰면 될 거 같아

그런 다음 TeX에서 includegraphics로 적정하게 조절해서 넣으면 편하게 수학 삽화를 작업해서 넣을 수 있어


그런데 만약 출판물 수준의 높은 수준의 dpi로 슬라이드를 이미지화시키고 싶다면


https://docs.microsoft.com/ko-kr/office/troubleshoot/powerpoint/change-export-slide-resolution


이 링크를 따라가서 그대로 해보면 될 거 같아 (나는 보통 300dpi 수준이면 떡을 쳐서 그정도로 내보내기함)


다만 tikz랑 비교했을 때 단점은 tikz로 쪄올린 이미지는 pdf상에서 아무리 확대해도 깨지지 않지만, png랑 jpg같은 걸로 비트맵 픽셀 기반으로 저장하면 확대했을 때 픽셀 형태로 보이는 건 어쩔 수 없겠지


근데 이미지는 솔직히 출판물 dpi 수준이면 충분히 만족할 급이고, 그 이상급으로 벡터 화질 일러스트를 요구하는 변태는 드물거라 생각해.. 아니면 위에서 언급했던 것처럼 TeX2Img를 설치해서 오브젝트를 전부 벡터 이미지로 생성한 다음 슬라이드를 svg로 내보내는 방식도 있어


마지막으로 구글에 있는 그리기 어려울법한 예시를 ppt로 간단하게 만들고 마무리하는 걸로 하자.


실제로 TeX Stack Exchange에 질문글로 올라온 일러스트야

tikz를 써본 사람이라면 저 현란한 마니폴드스러운 곡선과 화살표를 보는 순간 패스, 노드, 컨트롤 포인트 지정해줄 생각에 벌써부터 어질어질했을 거임..


일단 이걸 ppt로 이미지만 불러와보자




일단 대충 곡선으로 중요 포인트 몇개만 찍고 형태만 맞추자

그런 다음 그린 곡선을 우클릭 - 점 편집으로 점마다의 세부 기울기 보간 조절하면 직관적으로 곡선 모양을 잡을 수 있음



그리고 위의 S를 TeX 스타일로 그려보자. TeX를 오래 써본 사람이라면 저게 mathcal 폰트의 S 글자라는 걸 단박에 알 수 있다

IguanaTeX의 New LaTeX display를 눌러 수식을 추가해주자



이런식으로 쓸 수 있다! 밑에 Reset size로 폰트 사이즈를 바꿔서 출력할 수 있고, 상단 메뉴에 dpi도 얼마든지 조정 가능하다

벡터 기반으로도 출력 가능한데 이건 아까 말했던 GhostScript, ImageMagick, TeX2Img가 깔려있어야만 가능하다는 점을 염두하자


그러면 정갈한 TeX 수식이 이미지 오브젝트로 출력되는 걸 확인할 수 있엉

만약 폰트 색깔을 바꾸고 싶다면 내가 아까 말해준 xcolor 라이브러리 가져와서 변형시켜주면 얼마든지 바꿀 수 있음 ㅇㅇ


그러면 다들 tikz 못지 않게 미려한 일러스트를 편하게 작업해보도록 하자


** 추가 팁으로 정확한 그래프 개형이 필요하다 싶으면 GeoGebra나 Desmos같은 툴에서 먼저 그래프를 그린 후에 사진찍어 가져온다음 그대로 만들면 된다!


** 벡터 오브젝트를 얻고 싶다면 https://velog.io/@jyong0719/IguanaTex-%EC%84%A4%EC%B9%98 대로 세팅을 한 후,


1. img2tex.exe를 한 번 실행한 다음 Tools - Option에서 나머지는 디폴트로 냅두고 Ghostscript 경로만 우리가 설치한 경로로 설정

2. Old Ghostscript 체크박스를 해제

3. 캐릭터 코드를 UTF-8로 수정


한 다음 제대로 eps 파일이 generate되는지 확인하고


4. IguanaTeX의 Main Settings에서 Ghostscript gswinXXc.exe, ImageMagick convert.exe, TeX2imgc.exe 경로를 내 PC에 설치된 경로에 맞게 세팅해준 다음

5. 에디터에서 생성 옵션을 Vector로 설정하면


벡터 오브젝트로 뽑아낼 수 있고 슬라이드도 svg로 내보내면 예쁜 벡터 기반 일러스트을 출력할 수 있어