kpsewhich 找到了 maxidiagram,但 pdflatex 找不到

kpsewhich 找到了 maxidiagram,但 pdflatex 找不到

我正在尝试\usepackage{MaxiDiagram}在 Arch Linux 上进行操作,但是pdflatex出现以下问题:

! LaTeX Error: File `MaxiDiagram.sty' not found.

正在运行kpsewhich MaxiDiagram报告该文件存在于/usr/share/texmf-dist/tex/generic/borceux/MaxiDiagram

将该文件复制到MaxiDiagram.sty工作目录似乎取得了进一步的进展,尽管它现在在抱怨:

This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Arch Linux) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./book.2.6.tex
LaTeX2e <2016/03/31> patch level 3
Babel <3.9r> and hyphenation patterns for 83 language(s) loaded.
(/usr/share/texmf-dist/tex/latex/amscls/amsbook.cls
Document Class: amsbook 2015/03/04 v2.20.2
(/usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(/usr/share/texmf-dist/tex/latex/amsmath/amstext.sty
(/usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty))
(/usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty)
(/usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty))
(/usr/share/texmf-dist/tex/latex/amsfonts/umsa.fd)
(/usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty

Package amsfonts Warning: The 'psamsfonts' option is obsolete in AMSFonts v3.

)) (/usr/share/texmf-dist/tex/latex/base/ifthen.sty)
(/usr/share/texmf-dist/tex/latex/url/url.sty)
(/usr/share/texmf-dist/tex/generic/borceux/MaxiDiagram
(/usr/share/texmf-dist/tex/latex/amsfonts/umsa.fd)
(/usr/share/texmf-dist/tex/latex/amsfonts/umsb.fd)

/usr/share/texmf-dist/tex/generic/borceux/MaxiDiagram:784: LaTeX Error: Command
 \bold already defined.
               Or name \end... illegal, see p.192 of the manual.

我该如何修复此问题?

(我正在使用的 LaTeX 源不是我创作的;它可能是在 Windows 系统上编写的,不确定是用什么软件编写的)


最小示例:

\documentclass[11pt]{article}
\usepackage{MaxiDiagram}
\begin{document}
Hi!
\end{document}

答案1

 kpsewhich MaxiDiagram
/usr/local/texlive/2016/texmf-dist/tex/generic/borceux/MaxiDiagram

表示该文件名为MaxiDiagramnot MaxiDiagram.sty,因此需要通过

\input{MaxiDiagram}

您的第二个错误表明您 MaxiDiagram.sty在本地目录中有一个,但是在 texlive 或 CTAN 中没有该名称。

您没有展示可重现的测试,但如果您有两个包定义,\bold您可以在加载第一个包后“取消定义”它

`\let\bold\undefined`

但当然,你会失去这个定义,并且可能会或可能不会破坏第一个包,这取决于它如何使用该命令。

答案2

这是未经测试的,因为我不知道如何diagram正确使用,因为文档使用的编码在我看来是胡言乱语或小盒子,这取决于我用来查看它的应用程序。

我假设您amssymb在 之前加载MaxiDiagram。如果是这样,您可以尝试以下操作,因为amssymb只会打印一条警告,告诉您无论如何都要\bold{}使用。\mathbf{}

\usepackage{amssymb}
\let\bold\undefined % \bold is obsolete anyway
\input{MaxiDiagram}
\let\diagbold\bold
\renewcommand{\bold}{\ifdiagram\diagbold\else\mathbf\fi}

MaxiDiagram默认情况下会\bold{}产生错误消息。这将重新定义它以改为使用。\diagramfalse\mathbf{}

MaxiDiagram要么不应该在generic,要么不应该使用 LaTeX 命令。

而且,我根本不会相信它...它看起来好像是为了最大限度地增加与尽可能多的包发生冲突的风险而设计的。

相关内容