这是
问题
多年来,我收集了相当多的有用的软件包和命令。到目前为止,我将它们保存在 TeXstudio 中作为模板,以便我可以从中开始一个新文件。这类似于每次创建新文件时复制粘贴所有内容,这会引起一些可维护性和重复问题。
我尝试过
我尝试将前言分离到 test.sty 文件中,将其放在新根目录 (../tex/latex/test.sty) 中,在 MiKTeX 设置 (管理员) 中添加根目录并按“刷新 FNDB”将其包括在内。
当我编译使用 TeXstudio,它可以找到 test.sty,一切正常。然而,自动完成器既不识别这些包,也不识别它们的命令。
据我所知这里,如果设置了 MiKTeX,TeXstudio 会使用 将自定义的本地包 test.sty 与来自 MiKTeX 的云端包列表进行比较mpm.exe --list
。这可能是问题所在,因为运行该命令并将其输出保存在临时 .txt 文件中,我的 test.sty 没有出现!
我是不是在尝试做一些目前不可能的事情,或者我只是在犯傻?
这是我尝试的 MWE 和自动完成器的图片。
myTex.tex
\documentclass{article}
\usepackage{test}
%\usepackage{mathtools}
\begin{document}
% the flalign* env. from mathtools in test.sty is not recognized before compiling.
\begin{flalign*}
2x+3 &= 5 \\[1mm]
x &= \dfrac{5-3}{2}
\end{flalign*}
\end{document}
测试.sty
\ProvidesPackage{test}[2017/10/14 The Amazing Squirrel's collection of packages]
\RequirePackage[utf8]{inputenc}
\RequirePackage{mathtools}
\RequirePackage{amssymb}
\RequirePackage{logicproof} %Fitch-Style Predicate Logic Proof in the style of Huth & Ryan
\endinput
技术信息。
我在 Win. 7 Pro 联想笔记本电脑上运行了 TeXstudio 2.12.6 和 MiKTeX 2.9。
答案1
为了让 TeXstudio 识别包含的软件包中的命令(特别是对于你的情况,通过.sty
文件包含),您需要设置自定义.cwl
文件因为这些文件控制 TeXstudio 的自动完成功能。请参阅我的上一个答案有关创建自定义.cwl
文件的详细信息。
在这里,您不需要将命令逐个添加到自定义.cwl
文件中,因为您包含的包已经有自己的.cwl
文件,例如mathtools
包amssymb
,您可以使用#include:<packagename>
加载packagename.cwl
。
例如,在test.cwl
:
#include:mathtools
#include:amssymb
并对文件中添加的任何其他包重复此操作.sty
。
Configure TeXstudio -> Completion
如果 TeXstudio 没有自动获取它,请记住通过以下方式激活它。