diff options
author | Karl Berry <karl@freefriends.org> | 2010-02-27 17:31:54 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-02-27 17:31:54 +0000 |
commit | cad9c7b7552dabd8248a903fa699d4764cb05723 (patch) | |
tree | e3cdc5411e8ffef074304e6e6df84ccf6d90311f | |
parent | f156b9f9622bbc52d6d48f41cc9e7910cdcd8039 (diff) |
new package lua-alt-getopt 0.7.0 (26feb10)
git-svn-id: svn://tug.org/texlive/trunk@17228 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/support/lua-alt-getopt/ChangeLog | 60 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/lua-alt-getopt/Makefile | 31 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/lua-alt-getopt/NEWS | 23 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/lua-alt-getopt/README | 36 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/lua-alt-getopt/alt_getopt | 34 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/lua-alt-getopt/tests/test.out | 130 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/lua-alt-getopt/tests/test.sh | 48 | ||||
-rwxr-xr-x | Master/texmf-dist/scripts/lua-alt-getopt/alt_getopt.lua | 166 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 2 | ||||
-rwxr-xr-x | Master/tlpkg/libexec/ctan2tds | 6 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-basic.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/lua-alt-getopt.tlpsrc | 0 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/scheme-basic.tlpsrc | 3 |
13 files changed, 537 insertions, 3 deletions
diff --git a/Master/texmf-dist/doc/support/lua-alt-getopt/ChangeLog b/Master/texmf-dist/doc/support/lua-alt-getopt/ChangeLog new file mode 100644 index 00000000000..caf91e665f8 --- /dev/null +++ b/Master/texmf-dist/doc/support/lua-alt-getopt/ChangeLog @@ -0,0 +1,60 @@ +2009-10-18 Aleksey Cheusov <vle@gmx.net> + + * Makefile, NEWS: + version -> 0.7.0 + Release notes in NEWS + + * alt_getopt.lua, tests/test.out: + Do not use error() for exiting, use os.exit() instead + + * alt_getopt, tests/test.out, tests/test.sh: + Additional regression tests/examples + + * alt_getopt.lua, tests/test.out: + POSIX getopt("xo:") accepts './app -xoVVV' and './app -xo VVV' + treating them as './app -x -o VVV'. Now Lua alt_getopt does the same. + +2009-04-26 Aleksey Cheusov <vle@gmx.net> + + * Makefile, NEWS, alt_getopt.lua: + version -> 0.6.0 + NEWS: release notes + s/2008/2009/ + + * alt_getopt.lua: + Minor clean-ups and improvements suggested by Leo P.: + - package.seeall is removed + - gmatch instead of loop + - others + +2009-01-12 Aleksey Cheusov <vle@gmx.net> + + * Makefile: + renamed tarball to lua-alt-getopt + version -> 0.5.0 + +2009-01-11 Aleksey Cheusov <vle@gmx.net> + + * Makefile: + version -> 0.4.0 + + * alt_getopt.lua, tests/test.out, tests/test.sh: + os.exit --> error + + * README, alt_getopt.lua: + README added + minor code clean-ups + +2009-01-10 Aleksey Cheusov <vle@gmx.net> + + * Makefile: PROJECTNAME is set + + * tests/_test.res: + removed + + * Makefile, alt_getopt, alt_getopt.lua, tests/_test.res, tests/test.out, tests/test.sh: + Imported sources + + * Makefile, alt_getopt, alt_getopt.lua, tests/_test.res, tests/test.out, tests/test.sh: + New file. + diff --git a/Master/texmf-dist/doc/support/lua-alt-getopt/Makefile b/Master/texmf-dist/doc/support/lua-alt-getopt/Makefile new file mode 100644 index 00000000000..e68b3507363 --- /dev/null +++ b/Master/texmf-dist/doc/support/lua-alt-getopt/Makefile @@ -0,0 +1,31 @@ +PREFIX?=/usr/local +LUAVER?=5.1 +LUAMODDIR?=${PREFIX}/lib/lua/${LUAVER} + +################################################## + +VERSION= 0.7.0 +PROJECTNAME= lua-alt-getopt +BIRTHDATE= 2009-01-10 + +FILES= alt_getopt.lua +FILESDIR= ${LUAMODDIR} + +INST_DIR?= ${INSTALL} -d + +################################################## +.PHONY: install-dirs +install-dirs: + $(INST_DIR) ${DESTDIR}${LUAMODDIR} + +.PHONY: test +test: + @echo 'running tests...'; \ + ln -f -s ${.CURDIR}/alt_getopt.lua ${.CURDIR}/tests; \ + export OBJDIR=${.OBJDIR}; \ + if cd ${.CURDIR}/tests && ./test.sh; \ + then echo ' succeeded'; \ + else echo ' failed'; false; \ + fi + +.include <bsd.prog.mk> diff --git a/Master/texmf-dist/doc/support/lua-alt-getopt/NEWS b/Master/texmf-dist/doc/support/lua-alt-getopt/NEWS new file mode 100644 index 00000000000..64195baf227 --- /dev/null +++ b/Master/texmf-dist/doc/support/lua-alt-getopt/NEWS @@ -0,0 +1,23 @@ +====================================================================== +Version 0.7.0, by Aleksey Cheusov, Sun, 18 Oct 2009 14:17:28 +0300 + + FIX: POSIX getopt("xo:") accepts './app -xoVVV' and './app -xo VVV' + treating them as './app -x -o VVV'. + Now Lua alt_getopt does the same. + + Additional regression tests/examples + + error() function is not used for exiting anymore. + os.exit() is used instead. + +====================================================================== +Version 0.6.0, by Aleksey Cheusov, Sun, 26 Apr 2009 19:52:38 +0300 + + FIXED: global variable 'optind'. Now it is local. + Minor improvements and code clean-ups. + Thanks to Leo P. <shell slact net> for all this. + +====================================================================== +Version 0.5.0, by Aleksey Cheusov + + First publicly available release diff --git a/Master/texmf-dist/doc/support/lua-alt-getopt/README b/Master/texmf-dist/doc/support/lua-alt-getopt/README new file mode 100644 index 00000000000..91131baa030 --- /dev/null +++ b/Master/texmf-dist/doc/support/lua-alt-getopt/README @@ -0,0 +1,36 @@ +lua_altgetopt is a MIT-licenced module for Lua programming language +for processing application's arguments the same way +BSD/GNU getopt_long(3) functions do. + +Main features and goals: +1) compatibility to SUS "Utility Syntax Guidelines" +http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap12.html#tag_12_02 +guidelines 3-13. +2) This module is for plain Lua +2) No extra dependencies +3) No hooks, no functional tricks ;-) +4) Support for long options, e.g. compatibility with getopt_long(3) C function + present in *BSD and GNU libc. +5) Long options may optionally have one-char synonym or other long synonym +6) Strict error checking (checks for an incorrect use of options) +7) alt_getopt.lua is a Lua module. + +In particular alt_getopt.lua supports the following + -kVALUE, -k VALUE, --key=VALUE, --key VALUE, + -abcd is equivalent to -a -b -c -d if neither of them accept value. +All options must be declared as accepting value or not. + +Two ways of options handling are provided. +See alt_getopt application which is a part of regression tests. + +Makefile: +It's probably useless for end users, you can copy alt_getopt.lua +to the destination yourself. Otherwise use BSD make, +NetBSD make is preferred because NetBSD is my development platform. + +If 'make test' fails on your platform/Lua, please let me know. +If you find a a bug, register it here +http://luaforge.net/project/lua_altgetopt +or send me bugreport directly. + +Author: Aleksey Cheusov <vle@gmx.net> diff --git a/Master/texmf-dist/doc/support/lua-alt-getopt/alt_getopt b/Master/texmf-dist/doc/support/lua-alt-getopt/alt_getopt new file mode 100644 index 00000000000..4a48bf4206b --- /dev/null +++ b/Master/texmf-dist/doc/support/lua-alt-getopt/alt_getopt @@ -0,0 +1,34 @@ +#!/usr/bin/env lua + +require "alt_getopt" + +local long_opts = { + verbose = "v", + help = "h", + fake = 0, + len = 1, + output = "o", + set_value = "S", + ["set-output"] = "o" +} + +local ret +local optarg +local optind +opts,optind,optarg = alt_getopt.get_ordered_opts (arg, "hVvo:n:S:", long_opts) +for i,v in ipairs (opts) do + if optarg [i] then + io.write ("option `" .. v .. "': " .. optarg [i] .. "\n") + else + io.write ("option `" .. v .. "'\n") + end +end + +optarg,optind = alt_getopt.get_opts (arg, "hVvo:n:S:", long_opts) +for k,v in pairs (optarg) do + io.write ("fin-option `" .. k .. "': " .. v .. "\n") +end + +for i = optind,#arg do + io.write (string.format ("ARGV [%s] = %s\n", i, arg [i])) +end diff --git a/Master/texmf-dist/doc/support/lua-alt-getopt/tests/test.out b/Master/texmf-dist/doc/support/lua-alt-getopt/tests/test.out new file mode 100644 index 00000000000..cdd2edb941a --- /dev/null +++ b/Master/texmf-dist/doc/support/lua-alt-getopt/tests/test.out @@ -0,0 +1,130 @@ +================================================================= +======= args: ../alt_getopt -h - +option `h' +fin-option `h': 1 +ARGV [2] = - +================================================================= +======= args: ../alt_getopt --help +option `h' +fin-option `h': 1 +================================================================= +======= args: ../alt_getopt -h --help -v --verbose -V -o 123 -o234 +option `h' +option `h' +option `v' +option `v' +option `V' +option `o': 123 +option `o': 234 +fin-option `V': 1 +fin-option `h': 1 +fin-option `o': 234 +fin-option `v': 1 +================================================================= +======= args: ../alt_getopt --output 123 --output 234 -n 999 -n9999 --len 5 --fake /dev/null +option `o': 123 +option `o': 234 +option `n': 999 +option `n': 9999 +option `len': 5 +option `fake' +fin-option `len': 5 +fin-option `fake': 1 +fin-option `o': 234 +fin-option `n': 9999 +ARGV [11] = /dev/null +================================================================= +======= args: ../alt_getopt -hVv -- -1 -2 -3 +option `h' +option `V' +option `v' +fin-option `h': 1 +fin-option `v': 1 +fin-option `V': 1 +ARGV [3] = -1 +ARGV [4] = -2 +ARGV [5] = -3 +================================================================= +======= args: ../alt_getopt --fake -v -- -1 -2 -3 +option `fake' +option `v' +fin-option `fake': 1 +fin-option `v': 1 +ARGV [4] = -1 +ARGV [5] = -2 +ARGV [6] = -3 +================================================================= +======= args: ../alt_getopt - -1 -2 -3 +ARGV [1] = - +ARGV [2] = -1 +ARGV [3] = -2 +ARGV [4] = -3 +================================================================= +======= args: ../alt_getopt --fake -v - -1 -2 -3 +option `fake' +option `v' +fin-option `fake': 1 +fin-option `v': 1 +ARGV [3] = - +ARGV [4] = -1 +ARGV [5] = -2 +ARGV [6] = -3 +================================================================= +======= args: ../alt_getopt -1 -2 -3 +Unknown option `-1' +================================================================= +======= args: ../alt_getopt -hvV +option `h' +option `v' +option `V' +fin-option `h': 1 +fin-option `V': 1 +fin-option `v': 1 +================================================================= +======= args: ../alt_getopt -ho 123 +option `h' +option `o': 123 +fin-option `o': 123 +fin-option `h': 1 +================================================================= +======= args: ../alt_getopt -hoV 123 +option `h' +option `o': V +fin-option `o': V +fin-option `h': 1 +ARGV [2] = 123 +================================================================= +======= args: ../alt_getopt --unknown +Unknown option `--unknown' +================================================================= +======= args: ../alt_getopt --output=file.out -nNNN --len=LENGTH +option `o': file.out +option `n': NNN +option `len': LENGTH +fin-option `len': LENGTH +fin-option `o': file.out +fin-option `n': NNN +================================================================= +======= args: ../alt_getopt --output --file-- +option `o': --file-- +fin-option `o': --file-- +================================================================= +======= args: ../alt_getopt --output +Missed value for option `--output' +================================================================= +======= args: ../alt_getopt -ho +Missed value for option `-o' +================================================================= +======= args: ../alt_getopt --help -o +Missed value for option `-o' +================================================================= +======= args: ../alt_getopt --help=value +Bad usage of option `--help=value' +================================================================= +======= args: ../alt_getopt -ofile1 --set_value 111 --output file2 --set-output=file3 +option `o': file1 +option `S': 111 +option `o': file2 +option `o': file3 +fin-option `o': file3 +fin-option `S': 111 diff --git a/Master/texmf-dist/doc/support/lua-alt-getopt/tests/test.sh b/Master/texmf-dist/doc/support/lua-alt-getopt/tests/test.sh new file mode 100644 index 00000000000..8487a8e7e45 --- /dev/null +++ b/Master/texmf-dist/doc/support/lua-alt-getopt/tests/test.sh @@ -0,0 +1,48 @@ +#!/bin/sh + +runtest (){ + printf '=================================================================\n' + printf '======= args: %s\n' "$*" + "$@" 2>&1 | awk '/stack traceback:/, /\[C\]: [?]/ {next} {print}' +} + +do_test_getopt (){ + runtest ../alt_getopt -h - + runtest ../alt_getopt --help + runtest ../alt_getopt -h --help -v --verbose -V -o 123 -o234 + runtest ../alt_getopt --output 123 --output 234 -n 999 -n9999 --len 5 --fake /dev/null + runtest ../alt_getopt -hVv -- -1 -2 -3 + runtest ../alt_getopt --fake -v -- -1 -2 -3 + runtest ../alt_getopt - -1 -2 -3 + runtest ../alt_getopt --fake -v - -1 -2 -3 + runtest ../alt_getopt -1 -2 -3 + runtest ../alt_getopt -hvV + runtest ../alt_getopt -ho 123 + runtest ../alt_getopt -hoV 123 + runtest ../alt_getopt --unknown + runtest ../alt_getopt --output='file.out' -nNNN --len=LENGTH + runtest ../alt_getopt --output --file-- + + runtest ../alt_getopt --output + runtest ../alt_getopt -ho + runtest ../alt_getopt --help -o + runtest ../alt_getopt --help=value + runtest ../alt_getopt -ofile1 --set_value 111 --output file2 \ + --set-output=file3 + + true +} + +do_test (){ + do_test_getopt +} + +OBJDIR=${OBJDIR:=.} + +do_test > $OBJDIR/_test.res 2>&1 + +if ! diff -u test.out $OBJDIR/_test.res; then + echo "rewrite fails" 1>&2 + exit 1 +fi + diff --git a/Master/texmf-dist/scripts/lua-alt-getopt/alt_getopt.lua b/Master/texmf-dist/scripts/lua-alt-getopt/alt_getopt.lua new file mode 100755 index 00000000000..7a6591a49a7 --- /dev/null +++ b/Master/texmf-dist/scripts/lua-alt-getopt/alt_getopt.lua @@ -0,0 +1,166 @@ +-- Copyright (c) 2009 Aleksey Cheusov <vle@gmx.net> +-- +-- Permission is hereby granted, free of charge, to any person obtaining +-- a copy of this software and associated documentation files (the +-- "Software"), to deal in the Software without restriction, including +-- without limitation the rights to use, copy, modify, merge, publish, +-- distribute, sublicense, and/or sell copies of the Software, and to +-- permit persons to whom the Software is furnished to do so, subject to +-- the following conditions: +-- +-- The above copyright notice and this permission notice shall be +-- included in all copies or substantial portions of the Software. +-- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +-- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +-- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +-- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +-- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +-- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +local type, pairs, ipairs, io, os = type, pairs, ipairs, io, os + +module ("alt_getopt") + +local function convert_short2long (opts) + local i = 1 + local len = #opts + local ret = {} + + for short_opt, accept_arg in opts:gmatch("(%w)(:?)") do + ret[short_opt]=#accept_arg + end + + return ret +end + +local function exit_with_error (msg, exit_status) + io.stderr:write (msg) + os.exit (exit_status) +end + +local function err_unknown_opt (opt) + exit_with_error ("Unknown option `-" .. + (#opt > 1 and "-" or "") .. opt .. "'\n", 1) +end + +local function canonize (options, opt) + if not options [opt] then + err_unknown_opt (opt) + end + + while type (options [opt]) == "string" do + opt = options [opt] + + if not options [opt] then + err_unknown_opt (opt) + end + end + + return opt +end + +function get_ordered_opts (arg, sh_opts, long_opts) + local i = 1 + local count = 1 + local opts = {} + local optarg = {} + + local options = convert_short2long (sh_opts) + for k,v in pairs (long_opts) do + options [k] = v + end + + while i <= #arg do + local a = arg [i] + + if a == "--" then + i = i + 1 + break + + elseif a == "-" then + break + + elseif a:sub (1, 2) == "--" then + local pos = a:find ("=", 1, true) + + if pos then + local opt = a:sub (3, pos-1) + + opt = canonize (options, opt) + + if options [opt] == 0 then + exit_with_error ("Bad usage of option `" .. a .. "'\n", 1) + end + + optarg [count] = a:sub (pos+1) + opts [count] = opt + else + local opt = a:sub (3) + + opt = canonize (options, opt) + + if options [opt] == 0 then + opts [count] = opt + else + if i == #arg then + exit_with_error ("Missed value for option `" .. a .. "'\n", 1) + end + + optarg [count] = arg [i+1] + opts [count] = opt + i = i + 1 + end + end + count = count + 1 + + elseif a:sub (1, 1) == "-" then + local j + for j=2,a:len () do + local opt = canonize (options, a:sub (j, j)) + + if options [opt] == 0 then + opts [count] = opt + count = count + 1 + elseif a:len () == j then + if i == #arg then + exit_with_error ("Missed value for option `-" .. opt .. "'\n", 1) + end + + optarg [count] = arg [i+1] + opts [count] = opt + i = i + 1 + count = count + 1 + break + else + optarg [count] = a:sub (j+1) + opts [count] = opt + count = count + 1 + break + end + end + else + break + end + + i = i + 1 + end + + return opts,i,optarg +end + +function get_opts (arg, sh_opts, long_opts) + local ret = {} + + local opts,optind,optarg = get_ordered_opts (arg, sh_opts, long_opts) + for i,v in ipairs (opts) do + if optarg [i] then + ret [v] = optarg [i] + else + ret [v] = 1 + end + end + + return ret,optind +end diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index e0b630cd687..233a32257b5 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -177,7 +177,7 @@ my @TLP_working = qw( lshort-spanish lshort-thai lshort-turkish lshort-ukr lshort-vietnamese ltablex ltabptch ltxdockit ltxindex ltxmisc ltxnew - luainputenc luamplib luaotfload luatextra lxfonts + lua-alt-getopt luainputenc luamplib luaotfload luatextra lxfonts macqassign mafr magyar mailing mailmerge makebarcode makebox makecell makecirc makecmds makeglos makeplot maple margbib diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index ed3d4b36e5d..08add4a1d26 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -93,6 +93,7 @@ $Master = "$mydir/../.."; 'backgammon', "die 'skipping, nonfree license'", 'bangtex', "&MAKEflatten", 'bardiag', "&MAKEbardiag", + 'bbm-macros', "&MAKEnosymlinks", 'bclogo', "&MAKEflatten", 'beamer', "&MAKEbeamer", 'beamer-contrib',"&MAKEflatten", @@ -1074,6 +1075,7 @@ $standardtex='\.(cfg|sty|clo|ldf|cls|def|fd|cmap|4ht)$'; 'lfb', 'fonts', 'lh', 'fonts', 'latex-notes-zh-cn', 'generic', + 'lua-alt-getopt', 'support', 'marvosym', 'fonts', 'mathabx', 'fonts', 'mathdots', 'generic', @@ -1285,6 +1287,7 @@ $standardsource='\.fdd|\.dtx|\.ins|\.c$|Makefile|configure.*|install-sh|\.drv'; 'latex2e-help-texinfo','NULL', # doc package 'latex2man', 'NULL', # leave Makefile 'latexdiff', 'NULL', # leave Makefile + 'lua-alt-getopt', 'NULL', 'mpman-ru', 'NULL', # doc package 'ot2cyr', '\.afm|\.etx|' . $standardsource, 'pdfx', 'rvdtx\.sty|' . $standardsource, @@ -1539,7 +1542,7 @@ $standardocp='\.ocp'; $standardxmt='\.xmt'; -# executable scripts to install under texmf*/.../scripts. +# code to install under texmf*/.../scripts. # if they should end up in $bindir too, # add to Build/source/texk/texlive/Makefile.in (and ChangeLog). %specialscripts = ( @@ -1556,6 +1559,7 @@ $standardxmt='\.xmt'; 'latexdiff' => 'latex(diff-so|diff-vc|revise)$', 'latexmk' => '\.pl$', 'listings-ext' => '\.sh$', + 'lua-alt-getopt' => '\.lua$', 'mkgrkindex' => 'mkgrkindex$', 'mkjobtexmf' => '\.pl$', 'pdfcrop' => '\.pl$', diff --git a/Master/tlpkg/tlpsrc/collection-basic.tlpsrc b/Master/tlpkg/tlpsrc/collection-basic.tlpsrc index bc916eea138..50b6f59926e 100644 --- a/Master/tlpkg/tlpsrc/collection-basic.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-basic.tlpsrc @@ -24,6 +24,7 @@ depend hyphen-base depend ifluatex depend ifxetex depend kpathsea +depend lua-alt-getopt depend luatex depend makeindex depend metafont diff --git a/Master/tlpkg/tlpsrc/lua-alt-getopt.tlpsrc b/Master/tlpkg/tlpsrc/lua-alt-getopt.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/tlpkg/tlpsrc/lua-alt-getopt.tlpsrc diff --git a/Master/tlpkg/tlpsrc/scheme-basic.tlpsrc b/Master/tlpkg/tlpsrc/scheme-basic.tlpsrc index 05eb8b052d3..470876798e6 100644 --- a/Master/tlpkg/tlpsrc/scheme-basic.tlpsrc +++ b/Master/tlpkg/tlpsrc/scheme-basic.tlpsrc @@ -2,6 +2,7 @@ category Scheme shortdesc basic scheme (plain and LaTeX) longdesc This is the basic TeX Live scheme: it is a small set of files longdesc sufficient to typeset plain TeX or LaTeX documents in PostScript -longdesc or PDF, using the Computer Modern fonts. +longdesc or PDF, using the Computer Modern fonts. This scheme +longdesc corresponds to collection-basic and collection-latex. depend collection-basic depend collection-latex |