为什么 url.sty 会出现在 TeX 目录结构中的 3 个不同位置?

为什么 url.sty 会出现在 TeX 目录结构中的 3 个不同位置?

在我最新的 MiKTeX 系统上,url.styTDS 中的三个不同位置有一个副本:

  • texmf\tex\xelatex\xetexurl(MiKTeX 软件包的一部分xetexurl,打包于 2007 年 9 月 5 日)
  • texmf\tex\latex\url(MiKTeX 包的一部分url,打包于 2010-Jan-26)
  • texmf\tex\latex\ltxmisc(MiKTeX 包的一部分ltxmisc,打包于 2012-12-20)

第一个(在 中xetexurl)是 3.1 版本;另外两个是 3.3 版本。

为什么包存在于 3 个不同的位置?既然如此,TeX 程序如何知道该使用哪一个?似乎当我运行pdfLaTeX或 时LuaLaTeX,它会从 中选择其中一个ltxmisc,并给出日志条目

Package: url 2006/04/12  ver 3.3  Verb mode for urls, etc.

而在运行时,XeLaTeX它从中选择一个xetexurl,并给出以下日志条目:

Package: url 2004/03/15  ver 3.1  Verb mode for urls, etc.

为什么会有这种差异?

答案1

tex/xelatex/xetexurl/url.sty

旧版本url.sty使用了 8 位字符,这不符合 XeTeX 对 UTF-8 编码输入的期望。因此

tex/xelatex/xetexurl/url.sty

是修补版本:

% url.sty  ver 3.1    15-Mar-2004   Donald Arseneau   ...
...
% Byte codes >= 0x80 replaced by ^^xx sequences - JK, 2006-04-07

自 3.3 版本起,url.sty此问题已修复:

% ver 3.3 April 2006:
% Fix some encoding bugs and remove 8-bit characters.

结论: xetexurl应该删除:

  • 已过时。
  • 补丁的原因已经消失。
  • 该补丁违反了 LPPL(LaTeX 项目公共许可证),要求在未经作者同意的情况下重命名文件。

TDS:tex/latex/ltxmisc/url.styTDS:tex/latex/url/url.sty

TDS(见“TeX 文件的目录结构”) 要求tex/latex//和内的所有文件名tex/generic//都是唯一的(请参阅“2.4 重复文件名”一节)。( 中的文件tex/xelatex不会发生冲突,因为它使用不同的格式目录。)

唯一性约束的原因是没有定义 TeX 引擎可能找到并使用哪个文件。

因此必须删除其中一个文件。TeX Live 使用TDS:tex/latex/url/url.sty。因此我的建议是删除TDS:tex/latex/ltxmisc/url.sty

更新 1:我已经做了错误报告,跟踪器 ID 为 2268。

更新 2:Christian Schenk 现已通过删除错误/放错的版本解决了该问题。

相关内容