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>처럼 입력하시면 좋습니다.
.cls 파일에 정의된 이름을 무효화하는 명령어?
2018.01.20 17:38
화살표 위에 심볼을 올릴 수 있는 \xrightarrow를 사용하기 위해 \usepackage{amsmath}를 두었습니다만,
제가 사용하는 (저널에서 사용하라고 제공한) .cls 파일에 equation* 명령어가 다음과 같이 정의되어서
\@namedef{equation*}{$$}
\@namedef{endequation*}{$$}
amsmath의 equation*와 이 .cls의 equation*가 충돌이 발생합니다. 그 결과 이 이름이 이미 정의되었다는 레이텍 컴파일 에러가 아래와 같이 발생합니다.
(/usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(/usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amstext.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsgen.sty))
(/usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsbsy.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsopn.sty)
! LaTeX Error: Command \equation* already defined.
Or name \end... illegal, see p.192 of the manual.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.2738 }
================
.cls 파일에서 equation*를 정의하는 부분을 주석 처리하면 충돌나지 않고 컴파일에 문제가 없네요.
.cls 파일을 건드리지 않고, 제 latex source 파일에서 이 이름을 undefined 되게 무효화하는 명령어는 없을까요?
감사합니다!!
댓글 10
-
Anonymous
2018.01.20 20:04
-
lazyswamp
2018.01.22 16:02
mathtools 패키지에도 equation* 명령어가 정의되어 있어서 충돌이 나네요.
어쨋든 답변 주셔서 감사합니다!!!
-
yihoze
2018.01.22 16:50
문제의 클래스와 예문을 함께 올려주시면 다양한 해법이 제시되지 않을까 싶습니다.
-
하늘연
2018.01.23 10:28
우선 클래스를 만든 사람이 정말 잘못 만든 것이라고 생각하고요.
클래스에 대한 컴플레인은 할 수 있으면 해야 한다고 생각합니다.
우선 땜빵 처리는 다음과 같습니다.
\documentclass 전에
\RequirePackage{amsmath} 또는 \RequirePackage{mathtools} 을 부르십시오.
다음부터는 MWE를 올리세요.
현재로서는 지레짐작밖에 안되는 상황입니다.
\RequirePackage{mathtools}
\documentclass{article}
\makeatletter
\@namedef{equation*}{$$}
\@namedef{endequation*}{$$}
\makeatother
\begin{document}
$\xrightarrow{\text{hello}}$
$\xrightarrow[\text{world}]{\text{hello}}$
$\xRightarrow[\text{world}]{\text{hello}}$
$\xrightarrow[g(x)]{f(x)}$
$\xRightarrow[g(x)]{f(x)}$
\end{document} -
lazyswamp
2018.01.23 18:03
감사합니다!!
말씀하신대로 \documentclass 이전에 \Requirepackage{amsmath}를 선언했더니
equation* 재정의로 컴파일 에러 나는 문제가 해결되었네요!!
usepackage하는 것과 어떻게 다른 방식인지 궁금하네요.
어쨋든 감사합니다!!! 그리고 조금 늦었습니다만, 말씀하신대로 .cls 파일과 샘플 tex 파일을 첨부로 올렸습니다.
감사합니다!!!
-
lazyswamp
2018.01.23 17:55
감사합니다!!
sample.tex 과 jfp1.cls 두 파일을 첨부합니다.
jfp1.cls에 문제가 되는 부분에 주석으로 ERROR라고 표시해놓았습니다.
1군데는 Equation* 정의가 문제되는 곳이고, 다른 1군데는 hline의 수직 공백을 지정한 부분입니다.
hline 관련해서도 불필요하게 많은 수직 공백을 지정해두어서 제가 tabular와 hline을
조합해서 원하는 등식을 만들때 형태가 이상해집니다. 이 hline 문제는 앞서 문의드린 문제와 별개의 문제입니다.
[.cls 파일의 hline 수직 공백 설정 선언 부분]
\def\hline{% FROM LATEX.LTX
\noalign{\ifnum0=`}\fi \vskip 6\p@
\hrule \@height \arrayrulewidth \vskip 6\p@
\futurelet \reserved@a\@xhline}
이 부분도 .cls 파일을 변경하지 않고 제 latex 파일에서 적절히 설정하여 위의 hline 수직 공백 설정을 무효화할 수 있을까요?
감사합니다!!!
-
ano
2018.01.24 08:54
별도의 문제이니 독립된 질문으로 생성해주시기 바랍니다.
그래야 다른 이들이 비슷한 문제에 부딪혔을 때 참고하기가 쉽습니다.
그리고 클래스에서 제공하는대로 사용하는 게 좋습니다.
클래스 설계자가 표의 상하 간격을 더 두기로 정해놓은 것을 사용자가 바꾸는 것은 권장되지 않습니다. -
lazyswamp
2018.01.24 10:01
감사합니다!!!
-
커꿈
2018.01.24 13:29
" tabular와 hline을 조합해서 원하는 등식"을 만드는 방식을 피하시는 것이 좋겠습니다. 원하시는 수식이 무엇인지 적어주시면 고수들께서 도와주실 겁니다.
-
lazyswapm
2018.01.25 12:59
ano님께서 말씀하신 대로 hline에 대한 문제는 새로운 적합한 제목으로 다시 글을 올리고 질문 드리도록 하겠습니다.
여기 답변 주시는 분들 대단히 감사합니다!!
amsmath 말고 다른 패키지를 쓰시면 어떨까요?
결과