Ash*_*ppa 20 search latex command
这是一个简单的问题,我无法找到答案:
给定一个LaTeX 命令,我如何找出它所属或来自哪个包?
例如,给定\qquad水平间距命令,它来自哪个包?特别麻烦,因为它不包括任何包装!
Nor*_*sey 15
给定一个LaTeX命令,我如何找出它所属或来自哪个包?
咨询您的参考:
latex.ltx是在标准类文件中或其中一个中定义的,而不是在包中.find /usr/share/texmf -name '*.sty',但要做好准备进行痛苦的运动.Rya*_*ior 10
您可以在http://www.ctan.org/tex-archive/info/symbols/comprehensive/上搜索该信息等.
请记住,LaTeX是一种基于TeX的宏语言,所有宏都由TeX组成,不需要导入.\qquad属于那一类.
据我所知,对此没有真正好的一般答案.但是,对于任何给定的命令,您可以尝试许多技术.在这种情况下\qquad,它是基本TeX的一部分.请记住,您始终可以在交互模式下使用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.
LaTeX在TeX上添加了一些宏,例如\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 \reserved@a {\@latex@error {Environment #1 undefine
d}\@eha }}{\def \reserved@a {\def \@currenvir {#1}\edef \@currenvline {\on@line
}\csname #1\endcsname }}\@ignorefalse \begingroup \@endpefalse \reserved@a .
\show\begin
? x
No pages of output.
其他一切都来自包装.如果你真的想知道一个宏来自哪个包(除了google或grepping你的texmf树),你可以检查你加载的每个包后是否定义.尝试在任何\usepackage命令之前定义它:
\let\oldusepackage\usepackage
\renewcommand\usepackage[1]{
\oldusepackage{#1}
\ifcsname includegraphics\endcsname
\message{^^Jincludegraphics is defined in #1^^J}
\let\usepackage\oldusepackage
\fi}
然后当你运行latex你的.tex文件时,在输出中查找一行说明includegraphics is defined in graphicx.这不太可能,但是一些狡猾的包装可能会做坏事,\usepackage所以这可能不会起作用.另一种方法是在加载任何包之前简单地定义您感兴趣的命令:
\newcommand\includegraphics{}
然后,当加载定义命令的包时,您可能会收到错误消息.这实际上不如前一种方法可靠,因为许多软件包使用\def和\let定义它们的宏而不是\newcommand绕过"已经定义的"检查.您也可以在每次加载之间手动插入支票:
\ifcsname includegraphics\endcsname\message{^^Jdefined after graphicx^^J}\fi
| 归档时间: |
|
| 查看次数: |
4422 次 |
| 最近记录: |