Preamble.tex 内部

Preamble.tex 内部

跳至日志输出部分来查看我的问题。

我们假设以下文件结构:

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 树(例如主安装树)中,要么是 中列出的位置之一TEXMFHOMEETC。具体来说,这里发生的情况是:

  • LaTeX 查找文件Libraries/Addresses/addresses.sty,找到并加载
  • \ProvidesFile记录版本信息\ver@Libraries/Addresses/addresses.sty
  • \listfiles请求文件列表,其中包含所有已加载文件的“名称”
  • 建立文件列表的过程仅有的根据文件名本身查找版本,因此查找并且不产生任何输出,因为它不存在\[email protected]

值得注意的是,如果您尝试加载同一个文件两次,也会发生同样的问题:就 LaTeX 机制而言,addresses.styfoo/addresses.styfoo/bar/addresses.sty不同的文件名。


如上所示,系统内置于 LaTeX强烈期望文件名称没有给出文件路径。这可以通过

  • 将文件放置于‘此处’
  • 将它们放置在本地 TeX 树中,以便使用TEXMFHOME(使用环境变量或 MiKTeX 管理器(如果适用))进行访问
  • 调整TEXINPUTS指向其他位置

请注意,后一种机制都允许添加多条路径,因此可以根据每个项目进行调整。

相关内容