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>처럼 입력하시면 좋습니다.
이상한 색인생성. 분류가 원할하게 안됩니다.
2015.02.02 23:36
안녕하세요.
최근에 다른 분이 만든 문서를 조판하다가 다른분이 지적하셔서 발견했던 오류였습니다.
오류는 이 두가지입니다.
Minimal Example은 만들기 어려워서, 첨부파일로 idx파일을 삽입하고 인공적으로 만든 파일입니다.
komkindex로 만들었고, xelatex으로 컴파일했습니다.
우선 제 수준에서 파악한 오류의 원인은
첫번째 사진의 이유는 idx에서
\indexentry{아르에스에이@RSA 암호체계|hyperpage}{136}
라 입력해서 [ㅇ]항을 언급한 것으로 추정되고요
차례곱은
\indexentry{차례곱 ($n"!$)|hyperpage}{72}
에서 이 " 때문에 나타났던 오류로 추정하고 있습니다. 실제로 전자는 없애고, 후자는 "을 없앴더니, 분류자체는 잘 되지만 색인에서 수식은 이상하게 나옵니다.
다행히 이런 경우가 적어서 손으로 수정하면 되기는 하는데, 이렇게 조판이 되지 않게 하려면 어떻게 해야 할지 궁금합니다.
댓글 9
-
DohyunKim
2015.02.03 02:12
-
하늘연
2015.02.03 08:06
잘못된 xindy 명령어를 써서 komkindex를 썼는데, 문법을 잘못 알았네요.
그런데 다른 파일을 가지고 테스트했을 때는 이상이 없었는데, 이 파일에서는 또 에러가 발생하네요.
기호때문에 문제 생긴 것인가 하고 기호를 다 삭제해봤는데도 여전히 오류가 발생합니다.
에러 내용은 다음과 같습니다.
-
nanim
2015.02.03 09:03
첫번째 RSA 어쩌구는 indexentry가 두 개가 있는데 하나는 위치지정(@)을 하고 하나는 안 해서 생긴 문제입니다.
두 개를 똑같이 만들면 해결될 것 같습니다. 즉, 문서 어디선가 \index{RSA 암호체계}라고 한 것을 (모두) \index{아르에스에이@RSA 암호체계}로 수정하십시오.
두번째 문제는 팩토리얼 기호와 index subitem 지정에 쓰이는 !가 같은 문자라서 생긴 혼선입니다.
preamble에
\protected\def\factorial{!}
과 같은 명령을 하나 정의하고 \index 엔트리에서는 ! 대신 이것을 써야겠네요.
\index{차례곱 ($n\factorial $)}
그리고 잠깐 테스트하다 보니 idx 안에 @@와 같은 입력이 있던데, 수정해야 할 것 같습니다.
idx가 이 상태라면 komkindex가 더 원활하게 돌 것 같습니다. xindy로 제대로 처리되게 하려면 $ 기호, \로 시작하는 tex 명령, \"와 같은 방식으로 식자한 문자들 가운데 xindy가 이해하지 못하는 것들을 모두 xdy로 제공해야 하는데... 그 일이 더 많을 듯...
참고로, index 엔트리를 만들 때 수식 표현이 들어간다면 예컨대 다음과 같이 하는 것이 안전합니다.
\index{제곱근 (\ensuremath{\sqrt{2}})}
즉, $를 쓰지 말라는 것입니다. 일반적으로 $$는 아예 쓰지 말아야 하고 $는 되도록 쓰지 않아야 합니다.
-
하늘연
2015.02.03 09:22
감사합니다!
-
DohyunKim
2015.02.03 12:00
idx 파일에 오류가 좀 있습니다. 일별해서 이상해 보이는 것들을 뽑아봤습니다.
--- FINT.idx 2015-02-02 15:23:22.000000000 +0900
@@ -1369,10 +1369,10 @@
+++ test.idx 2015-02-03 11:50:15.000000000 +0900
@@ -528,7 +528,7 @@
\indexentry{Chinese remainder theorem!history|hyperpage}{86}
\indexentry{Sun Tzu Suan Ching|textit}{86}
\indexentry{손자산경|textit}{86}
-\indexentry{오일러@오일러 $\phi $ 함수!!함수값이 짝수|hyperpage}{86}
+\indexentry{오일러@오일러 $\phi $ 함수!함수값이 짝수|hyperpage}{86}
\indexentry{EulerF@Euler $\phi $ function!is even|hyperpage}{86}
\indexentry{오일러@오일러 $\phi$ 함수!4의 배수|hyperpage}{86}
\indexentry{Euler@Euler $\phi$ function!is divisible by four|hyperpage}{86}
@@ -1274,8 +1274,8 @@
\indexentry{제곱수의 합|hyperpage}{205}
\indexentry{합!제곱수|hyperpage}{205}
\indexentry{제곱수!두 개의 합|hyperpage}{205}
-\indexentry{divide and conquer!|hyperpage}{205}
-\indexentry{나누어라, 그리고 정복하라!|hyperpage}{205}
+\indexentry{divide and conquer|hyperpage}{205}
+\indexentry{나누어라, 그리고 정복하라|hyperpage}{205}
\indexentry{각개격파|hyperpage}{205}
\indexentry{Sum of Two Squares Theorem|hyperpage}{208}
\indexentry{square number!sum of two|hyperpage}{208}\indexentry{소수!소수값을 가지는 다항식|hyperpage}{216}
\indexentry{induction proof!paradoxical|hyperpage}{217}
\indexentry{수학적 귀납법을 이용한 증명!역설적|hyperpage}{217}
-\indexentry{induction proof|)}{217}
-\indexentry{proof!by induction|)}{217}
-\indexentry{수학적 귀납법을 이용한 증명|)}{217}
-\indexentry{증명!수학적 귀납법|)}{217}
+\indexentry{induction proof|)hyperpage}{217}
+\indexentry{proof!by induction|)hyperpage}{217}
+\indexentry{수학적 귀납법을 이용한 증명|)hyperpage}{217}
+\indexentry{증명!수학적 귀납법|)hyperpage}{217}
\indexentry{sigma@$\sigma$ function|hyperpage}{219}
\indexentry{EulerF@Euler $\phi$ function!sum of divisors|hyperpage}{219}
\indexentry{divisor!sum of $\phi$ of|hyperpage}{219}
@@ -2232,9 +2232,9 @@
\indexentry{법 $m$에 대한 피보나치 수열의 주기|hyperpage}{362}
\indexentry{sum!$1+2+\cdots+n$|hyperpage}{365}
\indexentry{합!$1+2+\cdots+n$|hyperpage}{365}
-\indexentry{bigoh@big-Oh|(hyperpage}{365}
-\indexentry{o@$O$ (big-Oh)|(hyperpage}{365}
-\indexentry{오@$O$ (빅-오)|(hyperpage}{365}
+\indexentry{bigoh@big-Oh|hyperpage}{365}
+\indexentry{o@$O$ (big-Oh)|hyperpage}{365}
+\indexentry{오@$O$ (빅-오)|hyperpage}{365}
\indexentry{sum!$1^2+2^2+\cdots+n^2$|hyperpage}{365}
\indexentry{합!$1^2+2^2+\cdots+n^2$|hyperpage}{365}
\indexentry{sum of squares|hyperpage}{365}@@ -2596,7 +2596,7 @@
\indexentry{타원곡선!과 페르마의 마지막 정리|hyperpage}{425}
\indexentry{페르마의 마지막 정리!와 타원곡선|hyperpage}{425}
\indexentry{frey@Frey, Gerhard|hyperpage}{425}
-\indexentry{프라이@@프라이, 게르하르트|hyperpage}{425}
+\indexentry{프라이@프라이, 게르하르트|hyperpage}{425}
\indexentry{Frey curve|hyperpage}{425}
\indexentry{discriminant|hyperpage}{425}
\indexentry{elliptic curve!Frey|hyperpage}{425} -
DohyunKim
2015.02.03 13:15
xindy에서 page range 오류는 memoir와 hyperref 사이의 부조화에 기인한 듯합니다.
article 클래스에서는 page range가 잘 됩니다.
\usepackage{makeidx, hyperref}
\makeindex
...
\index{test|(}
...
\index{test|)}
memoir에서 xindy를 쓰는 무난한 방법은 현재로서는 hyperindex=false 옵션을 hyperref에 주는 것입니다.
-
DohyunKim
2015.02.04 16:58
어쨌든 " (quotation mark) 문제에 대한 komkindex 쪽의 해결책을 제시해둡니다:
http://goo.gl/TVjJwB
quotation mark 쓰는 건 완전히 합법적이므로 전적으로 komkindex의 버그입니다.
색인 작성이란 게 매우 복잡해서 komkindex에 어떤 또다른 버그가 숨어있을지 알 수 없습니다.
개인적으로는 xindy를 이용하는 쪽을 권합니다.
-
두텁
2015.02.04 20:57
CTAN에 업로드되었습니다.
-
하늘연
2015.02.04 23:09
김도현 교수님, 두텁님 감사합니다 :)
색인 만들 때 komkindex는 가급적 쓰지 마시고, 대신 xindy를 이용하세요.