그것은이다 내가 답을 찾을 수 없습니다 오전 간단한 질문 :LaTeX : 명령이 속한 패키지를 찾는 방법은 무엇입니까?
감안할 LaTeX의 명령, 어떻게 패키지 (들)이 속한 또는에서 온다 무엇을 알 수 있습니까?
예를 들어, \qquad
horizontal spacing 명령을 사용하면 어떤 패키지가 생성됩니까? 패키지를 넣지 않아도 작동하므로 특히 골칫거리입니다!
그것은이다 내가 답을 찾을 수 없습니다 오전 간단한 질문 :LaTeX : 명령이 속한 패키지를 찾는 방법은 무엇입니까?
감안할 LaTeX의 명령, 어떻게 패키지 (들)이 속한 또는에서 온다 무엇을 알 수 있습니까?
예를 들어, \qquad
horizontal spacing 명령을 사용하면 어떤 패키지가 생성됩니까? 패키지를 넣지 않아도 작동하므로 특히 골칫거리입니다!
LaTeX 명령을 사용하면 어떤 패키지가 속해 있거나 어떤 패키지가 제공되는지 어떻게 알 수 있습니까?
당신의 참조를 참조하십시오 :
latex.ltx
에 정의되어 있거나 패키지가 아닌 표준 클래스 파일 중 하나에 정의되어있을 가능성이 큽니다.find /usr/share/texmf -name '*.sty'
의 결과에 약간의 grepping을 할 수 있지만, 고통스러운 운동을 준비하십시오.해당 정보는 http://www.ctan.org/tex-archive/info/symbols/comprehensive/ 이상을 검색 할 수 있습니다.
LaTeX는 TeX 상단의 매크로 언어이며, 모든 매크로는 가져올 필요가없는 TeX로 구성되어 있다는 것을 기억하십시오. \qquad
은 해당 카테고리에 있습니다.
내가 아는 한, 이것에 대한 좋은 대답은 없습니다. 그러나 주어진 명령에 대해 시도 할 수있는 여러 기술이 있습니다. \qquad
의 경우 기본 TeX의 일부입니다.
$ tex '\show\qquad' This is TeX, Version 3.141592 (Web2C 7.5.6) > \qquad=macro: ->\hskip 2em\relax . \show\qquad ? x No pages of output.
일부 매크로 텍 위에 유액에 의해 추가되는 등 \begin
등 :
$ tex '\show\begin' This is TeX, Version 3.141592 (Web2C 7.5.6) > \begin=undefined. \show\begin ? x No pages of output.
다른 모든
$ latex '\show\begin' This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) %&-line parsing enabled. entering extended mode LaTeX2e Babel and hyphenation patterns for english, usenglishmax, dumylang, noh yphenation, greek, monogreek, ancientgreek, ibycus, pinyin, loaded. > \begin=macro: #1->\@ifundefined {#1}{\def \[email protected] {\@[email protected] {Environment #1 undefine d}\@eha }}{\def \[email protected] {\def \@currenvir {#1}\edef \@currenvline {\[email protected] }\csname #1\endcsname }}\@ignorefalse \begingroup \@endpefalse \[email protected] . \show\begin ? x No pages of output.반면, 당신은 항상 대화 형 모드에서 TeX이 사용할 수있는 기억 패키지에서 제공됩니다. 매크로가 어떤 패키지를 제공하는지 알고 싶다면 (구글이나 texmf 트리를 제외하고), 각 패키지가로드되었는지 확인한 후 정의되었는지 여부를 확인할 수 있습니다. 어떤
\usepackage
명령하기 전에이 정의보십시오 :
\let\oldusepackage\usepackage \renewcommand\usepackage[1]{ \oldusepackage{#1} \ifcsname includegraphics\endcsname \message{^^Jincludegraphics is defined in #1^^J} \let\usepackage\oldusepackage \fi}
을 그리고 당신이 당신의 .tex
파일 latex
을 실행할 때, includegraphics is defined in graphicx
을 말한다 출력에서 줄을 찾습니다. 그럴 가능성은 없지만 일부 사악한 패키지는 \usepackage
으로 나쁜 일을 할 수 있으므로 작동하지 않을 수 있습니다.또 다른 대안은 단순히 어떤 패키지를로드하기 전에 관심있는 명령을 정의하는 것입니다 : 명령을 정의하는 패키지가 로딩 될 때
\newcommand\includegraphics{}
그런 다음 오류 메시지가 표시 될 수 있습니다. 많은 패키지가 \newcommand
대신 매크로를 정의하기 위해 \def
과 \let
을 사용하여 "이미 정의 된"체크를 우회하기 때문에 이전의 방법보다 실제로 신뢰성이 떨어진다. 각로드 사이에 손으로 수표를 삽입 할 수도 있습니다.
\ifcsname includegraphics\endcsname\message{^^Jdefined after graphicx^^J}\fi
평판이 부족하기 때문에 Steve의 답변에 대해서는 언급 할 수 없지만 조금 더 연장하고 싶습니다.
첫 번째, 그의 두 번째 접근법 (usepackage
으로 손대지)에서 usepackage
에 선택적 인수가있는 경우는 다루지 않습니다. 두 번째로 패키지는 종종 RequirePackage
을 통해 다른 패키지에 의해로드되기 때문에 명령 정의의 실제 위치를 찾기가 어렵습니다. 그래서 스티브의 대답은 내 정제는 다음과 같습니다
\usepackage{xargs}
\let\oldusepackage\usepackage
\let\oldRequirePackage\RequirePackage
\renewcommandx{\usepackage}[3][1,3]{
\oldusepackage[#1]{#2}[#3]
\ifcsname includegraphics\endcsname
\message{^^Jincludegraphics is defined in #2^^J}
\let\usepackage\oldusepackage
\let\RequirePackage\oldRequirePackage
\fi}
\renewcommandx{\RequirePackage}[3][1,3]{
\oldRequirePackage[#1]{#2}[#3]
\ifcsname includegraphics\endcsname
\message{^^Jincludegraphics is defined in #2^^J}
\let\usepackage\oldusepackage
\let\RequirePackage\oldRequirePackage
\fi}
xargs
패키지가 usepackage
권리의 특별한 옵션을 얻기 위해 여기에 사용된다 (첫 번째와 세 번째 매개 변수는 선택 사항입니다).
documentclass
다음에 직접 입력하면 includegraphics
이 정의되어 있어야합니다.
'\ qquad '는 TeX (즉 핵심 부분)에서 나왔기 때문에 LaTeX 패키지를 사용할 필요가 없습니다. –
Noram : 나는 그와 같은 약간의 OCD입니다. 필자는 사용하는 명령에 대한 원래 패키지와 설명서를 알고 싶어합니다. Microsoft API를 사용하면 MSDN에서도 동일한 작업을 수행합니다. –