自定义 .sty 包中的 \input{} 命令

自定义 .sty 包中的 \input{} 命令

这是我的设置:

  • 两台电脑(一台台式机和一台笔记本电脑)
  • 两个 Texmaker 和 MikTex 的安装(完全相同的版本)

我已经创建了自己的包(.sty 文件),并且该包使用外部文件(位于与包相同的目录中)。这些文件是通过 \input{...} 命令添加的

我在两台电脑上都完美地使用了该软件包很长一段时间,但现在笔记本电脑在编译时(使用该软件包的文档)出现错误

LaTeX Error: File 'basic_packages.tex' not found. Type X...

我设法了解发生了什么:

  • 桌面将“\input{...}”解释为“去查找文件在包的目录中
  • 笔记本电脑寻找文件在文档的目录中。我当然希望包含的文件保留在包中。

这是我的代码(简化)

包裹

\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{sdlibV1}[14/03/2019 custom package]

\newif\if@all\@allfalse
\DeclareOption{all}{\@alltrue}


\ProcessOptions\relax


\input{basic_packages} %<-- this input
%\input{basic_macros} also not useful for the question

\if@all
%stuff, not useful here
\fi

\endinput

基本包.tex

\RequirePackage[table,dvipsnames,named]{xcolor}
\RequirePackage{tikz}
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage{siunitx}
\RequirePackage{enumitem}
\RequirePackage{multicol}
\RequirePackage{tabu}
\RequirePackage{makecell}
\RequirePackage{array}

文档

\documentclass{report}
\usepackage{sdlibV1}% <-- package loaded here

\usepackage[margin=1.5cm]{geometry}

\begin{document}
\subfile{calcul_integral}% I've tried removing those, and only using "hello world"
\subfile{algebre_lineaire}
\subfile{equations_differentielles}
\end{document}

文件路径:

文档:\HEIG-VD\Cours\Math2\Notes

sdlibV1.sty 和 basic_packages.text:\HEIG-VD\Notes\LaTex\packages\tex\latex\sdlibV1

(包文件夹已正确配置为包“源”)我还尝试过:

  • 检查 pdflatex 的命令
  • 使用临时文档(独立的,其中没有任何内容,只有一个“hello world”)
  • 使用 \include 命令(根本不起作用)
  • 把我包含的所有文件(16 个元素)放入 .sty 文件中,虽然可以工作,但效果非常糟糕

答案1

问题已经解决!

在对包(和/或其中包含的文件)进行更改后,MikTex 控制台中运行以下命令(运行作为管理员

initexmf -u --admin

相关内容