왜 이런 이상한 짓을 하게되었냐….면…

가끔 학회에서 자체적으로 제공해주는 LaTeX 템플릿을 차용해서 쓰다보면 일반적으로는 작동하는 코드가 해당 템플릿 안에서는 제대로 돌아가지 않는 경우가 있습니다(…)

최근에 일본의 한 학회에서 제공하는 템플릿을 쓰고 있었는데, 일반적으로 도표를 그릴 때 쓰는 pgfplots와 tikzpicture가 제대로 작동하지 않더라구요. 왜 논문을 쓰면서도 디버깅을 해야하는지… 마치 리눅스를 다루는 것 같은 그런 느낌었지만 아무튼 인터넷에서 찾아봐도 정보가 잘 안 나오기도 했고, 제 쪽에서 설정을 잘못했을 가능성도 있어서(아마 템플릿을 Overleaf 위에 올려서 써서 그런것같기도?) 미봉책을 고려해봤습니다.

물론 가장 쉬운 방법은, 빈 LaTeX 문서를 만들고 거기서 정상적으로 도표를 그린 다음에 그걸 PNG 이미지로 캡처해서 원래의 LaTeX 문서에 삽입하는거죠. 그치만 도표가 래스터화되는데다가 LaTeX의 복잡한 내부 툴체인을 거치면서 손실압축이 적용되는지 PDF로 뽑아내보면 도표의 화질이 생각보다 많이 깨져버립니다.

그래서 곰곰이 다른 미봉책을 생각해봤습니다. 래스터화를 피하는 방향으로 도표를 저장하려면 SVG라는 대안이 있을 수 있지만 도표는 단순한 도형이 아니라서 더 복잡할 것 같았습니다. 근데 가만보니 도표 그릴려고 만든 TeX 문서에서 PDF로 도표를 뽑으면 래스터화를 피할 수 있지 않나요?

구글링을 해보니 저같은 생각을 해본 사람이 있는지 TeX 문서에 PDF를 Figure 형태로 삽입하는 방법을 물어본 사람이 있네요. [링크] 저렇게 넣으면 잘 들어가나봅니다.

그런데 딱 하나 더 문제점이 있습니다. PDF로 도표를 뽑으면 A4 사이즈의 여백 안에 도표가 배치되기 때문에, 도표만 보이도록 크롭을 적용해야 합니다. 근데 그것도 LaTeX에선 가능합니다(??) [링크]

여기까지 알아봤으면 다 해결된 줄 알았지만, EPS 포맷으로 삽입하는게 아니어서 Figure로 삽입한 이미지(PDF) 파일의 가로, 세로 픽셀값을 파라미터로 알려줘야했습니다. 이건 컴퓨터 & 운영체제 환경마다 다를 수 있을 것 같은데요, 일반적인 윈도우 환경이면 기본 PPI가 72이기 때문에 [여기]를 참고하면 595*842 픽셀인걸 추정할 수 있었습니다.

그리하여 위와 같은 코드를 삽입해서 래스터화되지 않은 도표를 넣는데 성공했습니다…

trim과 width 같은 경우엔 본인이 그린 도표의 크기에 따라 다르게 설정해줘야할겁니다.

trim은 순서대로 {왼쪽 아래 오른쪽 위}에 해당하는 trim 길이니까 참고해주세요.

진짜 돌아만 가면 된다는 점에서 프로그래밍 그 자체네요….

LaTeX는 어떤 언어일까….

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.