명령의 소스 표시

명령의 소스 표시

를 사용할 때 renewcommand때로는 특정 명령에 대한 원래 소스 코드가 무엇인지 먼저 확인하여 chapter의도하지 않은 변경을 하지 않도록 하고 싶을 때가 있습니다. 로드된 패키지가 많을 때 패키지의 소스 코드를 살펴보며 답을 찾는 것이 그리 간단하지 않을 때가 있습니다. 특정 명령을 정의하는 데 사용되는 소스 코드를 인쇄할 수 있는 방법이 있습니까?

답변1

  • \meaning, 를 사용 \show하면 매크로의 의미를 알 수 있습니다. (주제별 TeXbook 또는 TeX 참조)

  • \the, 를 사용하여 \showthe레지스터 값을 가져옵니다. (주제별 TeXbook 또는 TeX 참조)

  • 로그 파일에서 더 많은 정보를 얻으려면 , (주제별 TeXbook 또는 TeX 참조) 및 패키지를 사용하십시오 \tracingcommands.\tracingmacrostrace

  • eTeX의 \ifdefined, \ifcsname(eTeX 매뉴얼 참조) 또는 LaTeX 명령 \@ifundefined(참조 source2e) 또는 \ifx\foo\undefined트릭을 사용하여 매크로가 정의되었는지 확인하십시오.

  • LaTeX 매크로의 정의를 확인하려면 LaTeX 명령 \CheckCommand( 참조 )을 사용하십시오.clsguide

답변2

예, 를 사용하면 \show\mycommand매크로 정의가 \mycommand콘솔( .log파일)에 인쇄됩니다.

예를 들어, 컴파일

\documentclass{book}
\begin{document}
test
\show\chapter
\end{document}

출력

> \chapter=\long macro:
->\if@openright \cleardoublepage \else \clearpage \fi \thispagestyle {plain}\gl
obal \@topnum \z@ \@afterindentfalse \secdef \@chapter \@schapter .

콘솔에. 출력 정렬은 코드에 입력할 때와 동일하지 않습니다. 따라서 소스를 직접 볼 때 정확한 구조(제대로 들여쓰기된 경우)를 보는 것이 더 쉬울 때도 있습니다. 다음은 소스 항목입니다.book.cls을 위한 \chapter:

\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
                    \thispagestyle{plain}%
                    \global\@topnum\z@
                    \@afterindentfalse
                    \secdef\@chapter\@schapter}

또한 를 사용하면 \show해당 매크로에 대해 한 수준의 확장만 표시된다는 점에 유의하세요. 위의 예를 사용하면 와 쌍을 통해 적절한 범주 코드 수정을 사용하여 및 (예를 들어 ) 내의 \show\@chapter후속 호출의 의미를 확인해야 합니다 .\show\@schapter\makeatletter\makeatother\chapter

\meaning비슷한 맥락으로 사용될 수 있습니다.


로부터TeX 책(10페이지):

TeX를 실행하는 동안 제어 시퀀스의 의미를 표시할 수 있습니다. 제어 시퀀스가 \show\cs​​어디에 있는지 입력하면 \csTeX는 현재 의미로 응답합니다. 예를 들어 는 원시적이기 때문에 \show\input결과는 입니다. 반면에 수익률은> \input=\input.\input\show\thinspace

> \thinspace=macro:
->\kern .16667em .

\thinspace의 약어로 정의된 것을 의미합니다 \kern .16667em. 입력하면 \show\kern그것이 기본인지 확인할 수 있습니다 \kern . 결과는 \show터미널과 .logTeX를 실행한 후 얻는 파일에 나타납니다.

답변3

당신이 사용할 수있는texdef터미널에서 정의를 인쇄합니다. LaTeX 정의와 함께 사용하려면 옵션을 사용하여 호출 -t latex하거나 해당 별칭을 사용해야 합니다 latexdef(별칭이 시스템에 정의된 경우).

정의를 확인 \chapter하려면 texdef -t latex -c book chapter. 옵션을 사용하여 호출해야 하는 이유는 찾고 있는 것으로 보이는 가 해당 클래스에 정의되어 있기 -c book때문입니다 . \chapter정의를 찾을 파일도 확인하려면 전체 경로에 대한 -f옵션 을 추가하세요. -F내 시스템에서 texdef -t latex -c book -F chapter반환됨

\chapter first defined in "/usr/local/texlive/2011/texmf-dist/tex/latex/base/book.cls".

\chapter:
\long macro:->\if@openright \cleardoublepage \else \clearpage \fi \thispagestyle {plain}\global \@topnum \z@ \@afterindentfalse \secdef \@chapter \@schapter

사용 가능한 옵션을 보거나 texdef이에 대해 자세히 알아보려면 를 사용하여 해당 설명서에 액세스할 수 있습니다 texdoc texdef.

관련 정보