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>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
자유글 memoir(oblivoir) + tikzpagenodes 호환을 위한 삽질기
2018.04.10 18:57
\( \mathrm\LaTeX{} \)을 접하고 가볍게 사용한 것은 3년째이지만 아직까지 \( \mathrm\LaTeX{} \)으로 책을 만들어본 적은 없었는데,
올해 출판 편집을 맡으면서 본격적으로 \( \mathrm\LaTeX{} \)을 파고들게 되었습니다.
그런데 oblivoir로 판면을 짜는데, 판형이 바뀐 경우 tikzpagenodes가 잘못된 영역을 가리키고 있는 문제를 겪게 되었습니다.
원인을 알아보니 다음과 같았습니다. (출처 https://goo.gl/o2ys18)
Sizes are correct because TikZ/PGF uses
\paperwidth
and\paperheight
for page dimensions, which memoir correctly sets without bleed. Origin however isn't calculated at all, a{0pt}{0pt}
is hardcoded in pgfmoduleshapes, wherecurrent page
is created.
Origin 설정의 문제이므로 해당 글에서는 current page를 대체할 목적으로 memoir page를 정의하고, stockpaper 사이즈에도 사용할 수 있도록 memoir stock을 정의하였더라구요.
대충 보니 원리가 어려운 것 같지는 않아서 memoir header area, memoir footer area, memoir marginpar area, memoir text area에도 적용할 수 있도록 코드를 짜봤습니다.
일단 제가 작업하는 것에 대해서는 잘 작동하는 것 같습니다만, 혹시라도 코드가 잘못된 부분이 있거나 개선할 부분이 있다면 말씀 부탁드리겠습니다.
감사합니다.
첨부가 안되서 링크합니다 : https://www.kockoc.com/newgari/1119255
댓글 9
-
Progress
2018.04.11 13:29
-
Kriss
2018.04.11 17:01
감사합니다. 그런데 무슨 이유인지 1mb 미만인데도 첨부가 되지 않네요.. 업로드중 100%에서 그냥 사라져버립니다.
링크한 곳에서는 받으실 수 있습니다.
-
관리자
2018.04.11 20:34
(관리자) 화일을 올리시려 하셨으나 올라가지 않았다고 하시기에 화일을 가져와 올려 둡니다. 감사합니다.
-
Kriss
2018.04.11 21:57
감사합니다~
-
yihoze
2018.04.12 09:11
오우, 멋져요! 고맙습니다. 모든 페이지에 표시되게 명령을 만들어봤습니다.
\NewDocumentCommand \DisplayPageLayout { }
{
\calculatetrims
\AddToShipoutPictureBG{
\begin{tikzpicture}[remember picture, overlay, line width=1pt]...
\end{tikzpicture}
}
} -
Kriss
2018.04.13 17:32
제일 필요한 기능이었는데 아직 제가 있는 코드를 참고해서 쓰는 것밖에 안되는 수준이라 구현하지 못했었습니다 ㅎㅎ 감사합니다 -
불량양파
2018.06.04 13:17
헉.. 귀한자료군요...... 감사합니다..(꾸벅)
-
noname
2022.11.14 14:45
오래 전 주제이기는 한데, 2022년 현재 이 문제는 다음과 같이 피해갈 수 있는 것으로 보입니다.
\usepackage{oblivoir-misc} \makeatletter \def\current@textarea@top {(\paperheight-\textheight-\lowermargin-\trimtop)} \makeatother
oblivoir-misc가 tikz의 current page 노드를 대략 맞춰주기 때문에 tikzpagenodes를 쓰면 거의 수정하지 않아도 됩니다만, showtrims일 때 trimtop을 보정해주는 것이 빠져 있어서 위와 같이 정의해주면 (굳이 memtikzpagenodes를 쓰지 않아도) 대략 원하는 대로 동작하는 것으로 보입니다.
memtikzpagenodes가 정의하는 "memoir ..." 노드들은 또 그대로 쓸모있을 때가 있기 때문에 이 패키지를 즐겨 쓰시는 분들은 그대로 써도 좋으리라 봅니다. 다만 \calculatetrims는 위에 제안한 코드 이후에 두어야 할 것 같습니다.
다음 그림의 본문 첨부 예제의 2-3페이지인데, 왼쪽은 원래 "호환이 안 된다"고 하던 부분이고 오른쪽은 memtikzpagenodes를 적용한 것입니다. 왼쪽 페이지도 "잘 호환이 되고 있음"을 알 수 있습니다. 결론은 tikzpagenodes를 oblivoir와 함께 쓸 수 있다는 것입니다.
첨부 파일을 참고해 주세요. (Kriss님은 잘 계시는지 궁금하군요.)
-
Kriss
2023.01.25 15:12
예 덕분에 잘 지내고 있습니다.
학회와 워크숍 등의 오프라인 행사가 없어서 아쉽네요. 다시 행사가 열리면 그때 인사드릴 수 있을 것 같습니다.
좋은 패키지 감사합니다.
아주 훌륭한 것을 만들어주셨네요.
1MB 이내 zip 파일로 묶어 올려주시면 될 것 같습니다.