跳至日志输出部分来查看我的问题。
我们假设以下文件结构:
Root
- Preamble.tex
|- Libraries
|- Addresses
- addresses.sty
|- Documents
|- UserManual
- UserManual.tex
Preamble.tex 内部
% ----------------------
% Load Addresses Library
%
\documentclass{article}
\usepackage{Libraries/Addresses/addresses}
地址内部
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{addresses}[2016/03/01 Provides Addresses for Highly Specialized Services Documentation]
\def\localaddress{
Highly~Specialized~Services~GmbH\\
Eisenloven~00\\
38744~Timbuktu\\
Mali\\
Phone:~+00~101~101011
}
UserManual.tex 内部
\listfiles
\input{../../Preamble.tex}
\begin{document}
\localaddress\
\end{document}
日志输出片段
地址.sty 行上的版本信息在哪里?
article.cls 2014/09/29 v1.4h Standard LaTeX document class
../../Libraries/Addresses/addresses.sty
答案1
\usepackage
该机制ETC。,假设文件位于“TeX 可以找到它们的地方”,IE要么是‘这里’,要么是指定的位置,TEXINPUTS
要么是 TeX 树(例如主安装树)中,要么是 中列出的位置之一TEXMFHOME
,ETC。具体来说,这里发生的情况是:
- LaTeX 查找文件
Libraries/Addresses/addresses.sty
,找到并加载 \ProvidesFile
记录版本信息\ver@Libraries/Addresses/addresses.sty
\listfiles
请求文件列表,其中包含所有已加载文件的“名称”- 建立文件列表的过程仅有的根据文件名本身查找版本,因此查找并且不产生任何输出,因为它不存在
\[email protected]
值得注意的是,如果您尝试加载同一个文件两次,也会发生同样的问题:就 LaTeX 机制而言,addresses.sty
和foo/addresses.sty
是foo/bar/addresses.sty
不同的文件名。
如上所示,系统内置于 LaTeX强烈期望文件名称没有给出文件路径。这可以通过
- 将文件放置于‘此处’
- 将它们放置在本地 TeX 树中,以便使用
TEXMFHOME
(使用环境变量或 MiKTeX 管理器(如果适用))进行访问 - 调整
TEXINPUTS
指向其他位置
请注意,后一种机制都允许添加多条路径,因此可以根据每个项目进行调整。