11

On my up-to-date MiKTeX system, there is a copy of url.sty in three different places in the TDS:

  • texmf\tex\xelatex\xetexurl (part of MiKTeX package xetexurl, packaged on 2007-Sep-05)
  • texmf\tex\latex\url (part of MiKTeX package url, packaged on 2010-Jan-26)
  • texmf\tex\latex\ltxmisc (part of MiKTeX package ltxmisc, packaged on 2012-Dec-20)

The first one (in xetexurl) is version 3.1; the other two are version 3.3.

Why does the package exist in 3 different locations? Given that this is the case, how does the TeX program know which one to use? It seems that when I run pdfLaTeX or LuaLaTeX, it chooses the one from ltxmisc, giving log entry

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

while when running XeLaTeX it chooses the one from xetexurl, giving this log entry:

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

Why the discrepancy?

  • wouldn't it be better to ask on a miktex forum? (afaik, christian schenk doesn't read here.) [note, he may be merely reading, as i originally intended to do, but he has more self control than me (not difficult).] – wasteofspace May 30 '13 at 9:59
16

tex/xelatex/xetexurl/url.sty

The old url.sty had used 8-bit characters that break with XeTeX's expectations of input encoded with UTF-8. Thus the file in

tex/xelatex/xetexurl/url.sty

is a patched version:

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

Since version 3.3 of url.sty this is fixed:

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

Conclusion: xetexurl should be removed:

  • Out of date.
  • The reason for the patch is gone.
  • The patch is a violation of LPPL (LaTeX Project Public License) that requires the renaming of the file without agreement of the author.

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

The TDS (see "A Directory Structure for TeX Files") requires that all file names inside tex/latex// and tex/generic// are unique (see section "2.4 Duplicate filenames"). (The file in tex/xelatex does not clash, because it uses a differnt format directory.)

The reason for the constraint for uniqueness is that it is not defined, which file a TeX engine might find and use.

Therefore one of the two files has to be removed. TeX Live uses TDS:tex/latex/url/url.sty. Thus my suggestion would be to remove TDS:tex/latex/ltxmisc/url.sty.

Update 1: I have made a bug report, tracker id is 2268.

Update 2: Christian Schenk has now fixed the issue by removing the wrong/misplaced versions.

  • As far as I know, the LPPL doesn't require a name change (although it's recommended). – egreg May 30 '13 at 12:24
  • @egreg The file is modified and distributed, thus the conditions of (6) apply. (6a) is violated, because the \ProvidesPackage statement does not clearly indicate the change. – Heiko Oberdiek May 30 '13 at 13:56
  • This is different from not renaming the file. – egreg May 30 '13 at 17:02
  • 1
    Thanks. After updating the packages, I had to "synchronize" the Package Manager so that it wouldn't keep looking for xetexurl. – Ari Brodsky Jun 4 '13 at 5:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.