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>처럼 입력하시면 좋습니다.
latex3를 써 보려고 하는데 xkeyval과 상성이 안 맞는 건지...
2016.01.23 22:49
똑같은 포맷의 다국어 문서를 만들기 위해서 간단한 패키지를 하나 만들어 보고 있습니다.
쉽게 말하면, 문서 파일의 끝에 _ko, _en과 같은 태그를 붙이고 \usepackage[lang-=ko]{multilang} 같은 식으로 해 주면 _ko 태그가 붙은 파일을 포함시켜서 컴파일하는 식입니다.
전에도 쓰던 건데 기능을 좀 보강하면서 LaTeX3 연습도 해 볼 겸 expl3과 xparse를 사용하고 있는데, 한 군데서 막혀서 진전이 안 되네요
첨부한 파일로 컴파일을 해 보면, \IncludeGraphicsLocalised[scale=.8]{test} 부분에서
! Package xkeyval Error: `scale=.8' undefined in families `Gin'.
에러가 납니다. 옵션 [scale=.8]을 빼면 정상 컴파일이 됩니다.
어디선가 LaTeX3하고 xkeyval이 안 맞는다는 얘기를 들은 것 같은데, 그래서일까요? 원인을 잘 모르겠습니다. 도움 부탁드립니다.
댓글 6
-
메타
2016.01.24 10:02
-
Dennis
2016.01.25 02:23
자체 해결했습니다.
며칠 틈틈이 씨름하다 보니까, 이게 LaTeX3의 문제는 아니고, \includegraphics의 옵션 부분 안에 매크로를 쓰면 어떤 식으로든 일어나는 expansion 관련 문제네요. \expandafter\includegraphics\expandafter[...]{...}와 같이 하니까 컴파일이 잘 됩니다.그러나 메커니즘은 잘 모르겠습니다. TeX을 쓰기는 참 오래 쓴 것 같은데, expansion에 관한 것은 여전히 깜깜합니다. 이번 텍학회를 가야 하나...
-
yihoze
2016.01.25 09:34
kvoption 쓰지 마시고요. 대신 l3keys2e를 쓰세요.
\keys_define:nn { multilang }
{
lang ...
}
\keys_set:nn {multilang}
{ % 여기에 디폴트 값 넣으세요. }
\ProcessKeysOptions {multilang}
제가 만든 클래스가 도움이 될지 모르겠습니다.
https://github.com/YiHoze/HzGuide/blob/master/hzguide.cls
Expl3와 xkeyval를 섞어쓰는 경우에만 문제가 생깁니다. xkeyval을 사용하는 모든 매크로와 호환되지 않는다는 게 아니라, 옵션 정의 또는 글로벌 설정 따위를 하는 경우에만 오류가 발생합니다. 그러니까 \ExplSyntaxOn ... \ExplSyntaxOff 사이에 \define@key를 사용한다거나 polyglossia의 \setmainlanguage 같은 것을 쓰면 안됩니다. 얼핏 생각하면 심각한 문제일 것 같지만, 전혀 그렇지 않습니다.
내가 만든 클래스나 스타일에서 xkeyval을 쓰지 않으면 되고, \setmainlanguage 같은 게 필요하면 \ExplSyntax 밖에서 쓰면 됩니다. xkeyval을 써야 할 이유도 없습니다. expl3을 대체할 수 있는 모든 것들이 있으니 xkeyval을 비롯한 다른 온갖 유틸리티 패키지들이 필요없게 됩니다.
-
Dennis
2016.01.25 11:12
감사합니다. 처음에 올린 문제는 해결했지만 말씀하신 패키지를 사용하니 좀 더 낫네요.
hzguide에 묻어갈까 하다가 일단은 공부 차원에서 제걸 계속 키워 보는 식으로 가 보려고 합니다.
-
yihoze
2016.01.25 12:28
HzGuide가 범용적으로 사용할 만한 물건은 아니고요, Expl3로 매크로를 만드는 것에 대해 다소 참고할 만하지 않나 생각합니다.
-
Dennis
2016.01.25 13:10
네 여러 모로 앞으로 공부하는 과정에서 참고가 많이 될 것 같습니다. 감사합니다. ^^
LaTeX3은 아직 정식 버전이 나오지 않고 개발중인 것으로 알고 있습니다.
개발자들한테 물으셔야 할 듯합니다.
LaTeX3은 Memmoir와 비슷한 목표를 가지고 출발했습니다.
저는 그러한 목표에 대해서 회의적입니다.
영미권에도 저와 같은 생각을 가진 사람들이 있더군요.
The LaTeX 3 project insists on doing almost everything using TeX macros, and the long-standing delay (already over 15 years) is proof not of the difficulty of the task but of the problems in the approach.
LaTeX 3 is immune to “potentially rather large resources” because the kind of horse you can hope to complete this course with is no longer bred.
geongma에서 숫말을 거세시키면 경주에서 더 잘 뜁니다. 그러나 거세된 말은 더 이상 후손을 낳을 수 없습니다. LaTeX3은 다양한 기능을 내부적으로 처리하는 것을 목표로 했지만 그것 때문에 다른 패키지와의 호환성이나 확장성에 심각한 문제가 있다.는 이야기입니다. (헐 geongma가 금지어네요.)
링크는 안 붙입니다. 별의별 것이 다 금칙어로 지정되어서 링크가 안 올려지네요.
출처를 아시고 싶으면 구글링을 하세요.