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>처럼 입력하시면 좋습니다.

태준

근데.. 궁금한게 생기네요..

 

\makeatletter

 

\makeatother

 

사이에는 어떤 것을 넣어야 하는지 기준이 있나요?

구글링을 해보니... 다음과 같은 말이 있더군요

=======================================

 

일반적으로 .cls 파일 (class 파일)과 .sty 파일 (style 파일)에는 매크로 이름에 @ 를 사용할 수가 있다고 한다.

반대로, user file, 즉 class나 style 파일이 아닌 일반 문서에서는 @를 매크로 이름에 사용할 수 없다.

즉 @를 매크로 이름에 사용가능하게 한 것은 일종의 macro 보호목적으로써, c++에서 사용되는 namespace나

class의 public, private 지시자와 비슷한 역할을 하기 위한 것으로 보인다. 

그런데 부득이하게 user file에서 class나 style file에서 internal purpose로 사용되는 macro에 접근해야할 필요가 생길경우

TeX 컴파일러에게 @를 사용할 수 있게 해주세요라고 알려주는 역할을 하는 것이 위 두개의 명령어가 된다.

stack overflow에 좀 더 상세한 설명이 기술되어 있는데 요약하자면 TeX에서 각 문자에 category code 혹은 catcode라는

일종의 일련번호를 부여했는데, 예를 들어 \ 는 catcode가 0이고 일반 알파벳문제들은 catcode가 11이다.

그리고 @는 catcode가 12로 일반 알파벳문자들과 구분하고 있다는 것을 알 수 있다.

그래서 \makeatletter라고 하면 @의 catcode를 12 -> 11 로 변경시켜 macro 이름에 사용할 수 있게 하는 것이고 볼일이 다 끝나고 나면

\makeatother 명령으로 @의 catcode를 원래대로 11->12 바꾸어 주는 것이다.

그리고 한가지 주의사항이 있는데 class와 style 파일 내부에서는 이 명령어들을 명시적으로 사용하지 않아야한다는 것이다.

왜냐하면 class파일과 style 파일을 불러오면서 내부적으로 \makeatletter와 \makeatother 명령을 불러오기 때문에 오작동의 소지가

있기 때문이다.

=====================================

 

문서를 작성하면서 새롭게 추가해야할거 많이 생겨서 프림블에서 정의되는 많은 명렁어 중에

 

어떤 것을  \makeatletter와 \makeatother 사이에 넣아야 할지가 메우 헷갈리기 시작하네요




XE Login