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>처럼 입력하시면 좋습니다.
XeLaTeX와 hyperdef 링크문제
2014.07.02 15:40
첨부한 파일로 PdfLaTeX으로 컴파일했을 때는 dest.pdf에서 의도한대로 원할하게 src.pdf의 부분으로 링크가 됩니다.
그러나 XeLaTeX로 하면 링크가 작동하지 않습니다.
악상을 TeX코드로 안쓴 사람이 많아서 XeLaTeX을 써야하는 상황입니다. 어떻게 해야하나요?
댓글 10
-
하늘연
2014.07.02 16:44
-
Progress
2014.07.02 17:12
혹시 TeXlive를 어떤 버전을 쓰시는지요?
저는 TeXLive2014를 쓰는데
여기서 xelatex으로 각각 컴파일한 dest.pdf에서 src.pdf로, 또는 그 역방향으로 잘 하이퍼링크됩니다.
pdfviewer로 Acrobat Professional과 SumatraPDF 양쪽에서 테스트해봤는데 둘다 잘 됩니다.
-
하늘연
2014.07.02 18:18
저도 TeX Live 2014를 쓰는데, 파일 자체의 링크는 잘 되지만, 문제는 해당파일의 특정부분으로 가는 것이 안되었습니다.
PDFLaTeX와 LuaLaTeX을 썼을때 나타나지 않았던 에러는 다음과 같습니다.
Package hyperref Warning: Invalid page number (0) for remote PDF file. Using page 1 on input line 18.
-
yihoze
2014.07.03 08:47
저도 잘 됩니다. 저는 각 파일들을 세 번 컴파일했습니다.
-
그로몹
2014.07.03 10:23
hyperref의 사용법을 처음 보고 눈을 트였습니다. 감사합니다.
저도 xelatex에서 잘 됩니다. 물론 acrobat reader에서 지정한
곳으로 잘 갑니다. 다른 viewer는 장담할 수 없겠습니다.
(Mac Preview는 안됩니다.)
-
DohyunKim
2014.07.03 10:26
dvipdfmx.cfg 라는 파일을 찾아서
% C 0x0000
위와 같이 주석처리된 줄을 다음처럼 바꿔보세요.
C 0x0010
그리고 매뉴얼을 보면 hyperdef는 인자를 세 개 받는 것으로 돼 있더군요.
(제공하신 소스로는 Fill의 F가 세번째 인자로 작용했을 거 같습니다.)
-
yihoze
2014.07.03 11:05
xr 패키지를 써 보시는 것은 어떨까요? 이보다 더 좋은 패키지가 있을지도 모르겠습니다만.
http://hoze.tistory.com/51
-
DohyunKim
2014.07.03 14:23
위에서 dvipdfmx.cfg 파일을 고치라고 했는데요...
생각해보니 디폴트 설정은 가능하면 건드리지 않는 게 좋겠습니다.
외부 파일 링크를 쓰는 경우는 극히 예외적이니까요.
대신 다른 방도를 제안합니다.
파일 링크가 필요한 경우에만 컴파일 명령을 달리 주는 겁니다.
xelatex --output-driver="xdvipdfmx -C 0x0010" dest.tex
링크의 타겟 파일을 컴파일할 때만 이런 옵션은 주면 됩니다.
예제처럼 서로가 서로를 참조하는 경우엔 둘 다 이 옵션이 필요하고요.
사족입니다만, 다른 분들은 아무런 설정 변경 없이 성공하셨다는데,
어떻게 그게 가능한 지... 궁금해 죽겠습니다. 다들 같은 tex live2014 아닌가요?
-
nanim
2014.07.04 00:36
xdv를 거치는 방법도 있겠지요.
xelatex -no-pdf dest.tex
xdvipdfmx -C 0x0010 dest.xdv
제 생각엔 성공하셨다는 말씀들이 아마도 external pdf가 열리는 것까지만 확인하신 것이 아닌가 하는 생각이 듭니다.
지금 문제가 된 문서의 \hyperdef 방식 이외에도 외부 pdf에 참조하는 방법이 몇 가지 더 있는데
xr-hyper를 이용하는 방법, \hypertarget + \href 방법 모두 (xelatex이라면) 이 옵션 없이 그냥 컴파일해서는 단순히 해당 파일의 첫 페이지가 열리는 것에 그친다는 것을 확인하였습니다.
-
Progress
2014.07.04 09:11
음... 희한하네요.
scr.pdf의 [Link 1]을 누르면 dest.pdf의 2쪽 섹션 2 밑에 [Back 1]으로,
다시 [Back 1]을 누르면 src.pdf의 [Link 1] 부분으로 가고
scr.pdf의 [Link 2]를 누르면 dest.pdf의 3쪽 섹션 3 밑에 [Back 2]로
다시 [Back 2]를 누르면 src.pdf의 [Link 2] 부분으로 가도록 하는 것 맞죠?
그제는 -C 0x0010 옵션 없이도 위와 같이 되었던 것을 관찰하고 댓글을 달았던 것인데,오늘 다시 해보니 단순히 src.pdf <--> dest.pdf의 파일 열리는 것 말고 위와 같이 디테일한 참조는 아니 됩니다.제 착각이었나봅니다.-C 0x0010 옵션을 주고 컴파일해야만 가능합니다.
이게 LuaLaTeX으로 하니까 원하는 상황에 대해서는 문제해결이 되었습니다.
그냥 이젠 순수한 궁금증으로 왜 XeLaTeX과 PDFLaTeX에서는 잘되는데 XeLaTeX에서는 안되는지 궁금해지네요.