[tex-live] l3keys2e class options ignored with TL 2015
Joseph Wright
joseph.wright at morningstar2.co.uk
Sat Jul 4 12:01:07 CEST 2015
On 04/07/2015 10:52, Joseph Wright wrote:
> On 04/07/2015 10:35, Denis Bitouzé wrote:
>> Le 30/06/15 à 09h39, Joseph Wright <joseph.wright at morningstar2.co.uk>
>> a écrit :
>>
>>> On 29/06/2015 19:54, Denis Bitouzé wrote:
>>>> Le 29/06/15 à 13h19, Joseph Wright <joseph.wright at morningstar2.co.uk>
>>>> a écrit :
>>>>
>>>>> I think I see what is going on here and will fix shortly.
>>>>
>>>> Thanks!
>>>
>>> I have a fix in hand and checked in to our SVN. I have a few other
>>> things to look at this week and will then aim to release.
>>
>> Thanks!
>>
>>>> BTW, if you see why the LaTeX warning: "Unused global option(s):
>>>> [key=foo]", please let me know :)
>>>
>>> This is due to the LaTeX2e kernel not the expl3 code. You have in your
>>> example
>>>
>>> \LoadClassWithOptions{article}
>>>
>>> This passes all of the class options to article. It then populates the
>>> unused list based on options it does not know. If you want to avoid
>>> that use just
>>>
>>> \LoadClass{article}
>>
>> It doesn't change anything:
>>
>> --8<---------------cut here---------------start------------->8---
>> \begin{filecontents*}{myclass.cls}
>> \RequirePackage{l3keys2e}
>> \ExplSyntaxOn
>> \ProvidesExplClass
>> {myclass}
>> {2015/06/28}
>> {0.1}
>> {
>> My~nice~class!
>> }
>> \NeedsTeXFormat{LaTeX2e}
>>
>> \tl_new:N \g_key_tl
>> \keys_define:nn { myclass }
>> {
>> key .tl_gset:N = \g_key_tl
>> }
>> \ProcessKeysOptions { myclass }
>> \LoadClass { article }
>> \ExplSyntaxOff
>> \end{filecontents*}
>> %
>> \documentclass[key=foo]{myclass}
>> \begin{document}
>> \ExplSyntaxOn
>> \tl_show:N \g_key_tl
>> \ExplSyntaxOff
>> \end{document}
>> --8<---------------cut here---------------end--------------->8---
>>
>> leads to the same warning:
>>
>> ┌────
>> │ LaTeX Warning: Unused global option(s):
>> │ [key=foo].
>> └────
>>
>
> No warning here:
>
> This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014/W32TeX)
> (preloaded format=pdflatex 2015.1.12) 4 JUL 2015 10:50
> entering extended mode
> \write18 enabled.
> %&-line parsing enabled.
> **test.tex
> (./test.tex
> LaTeX2e <2014/05/01>
> Babel <3.9l> and hyphenation patterns for 79 languages loaded.
>
> LaTeX Warning: Writing file `./myclass.cls'.
>
> \openout15 = `myclass.cls'.
>
>
> (./myclass.cls
> (c:/texlive/2014/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
> (c:/texlive/2014/texmf-dist/tex/latex/l3kernel/expl3.sty
> Package: expl3 2015/03/01 v5547 L3 programming layer (loader)
>
> (c:/texlive/2014/texmf-dist/tex/latex/l3kernel/expl3-code.tex
> Package: expl3 2015/03/01 v5547 L3 programming layer (code)
> L3 Module: l3bootstrap 2015/02/28 v5542 L3 Bootstrap code
>
> (c:/texlive/2014/texmf-dist/tex/latex/etex-pkg/etex.sty
> Package: etex 2015/03/02 v2.1 eTeX basic definition package (PEB,DPC)
> \et at xins=\count79
> )
> L3 Module: l3names 2015/02/24 v5535 L3 Namespace for primitives
> L3 Module: l3basics 2015/01/27 v5500 L3 Basic definitions
> L3 Module: l3expan 2014/11/27 v5472 L3 Argument expansion
> L3 Module: l3tl 2015/01/27 v5500 L3 Token lists
> L3 Module: l3str 2015/03/01 v5545 L3 Strings
> L3 Module: l3seq 2014/08/23 v5354 L3 Sequences and stacks
> L3 Module: l3int 2015/02/21 v5529 L3 Integers
> \c_max_int=\count80
> \l_tmpa_int=\count81
> \l_tmpb_int=\count82
> \g_tmpa_int=\count83
> \g_tmpb_int=\count84
> L3 Module: l3quark 2014/08/23 v5354 L3 Quarks
> L3 Module: l3prg 2014/08/23 v5354 L3 Control structures
> \g__prg_map_int=\count85
> L3 Module: l3clist 2014/08/23 v5354 L3 Comma separated lists
> L3 Module: l3token 2014/09/15 v5422 L3 Experimental token manipulation
> L3 Module: l3prop 2014/08/23 v5354 L3 Property lists
> L3 Module: l3msg 2015/02/26 v5537 L3 Messages
> L3 Module: l3file 2014/08/24 v5369 L3 File and I/O operations
> \l_iow_line_count_int=\count86
> \l__iow_target_count_int=\count87
> \l__iow_current_line_int=\count88
> \l__iow_current_word_int=\count89
> \l__iow_current_indentation_int=\count90
> L3 Module: l3skip 2014/08/23 v5354 L3 Dimensions and skips
> \c_zero_dim=\dimen102
> \c_max_dim=\dimen103
> \l_tmpa_dim=\dimen104
> \l_tmpb_dim=\dimen105
> \g_tmpa_dim=\dimen106
> \g_tmpb_dim=\dimen107
> \c_zero_skip=\skip41
> \c_max_skip=\skip42
> \l_tmpa_skip=\skip43
> \l_tmpb_skip=\skip44
> \g_tmpa_skip=\skip45
> \g_tmpb_skip=\skip46
> \c_zero_muskip=\muskip10
> \c_max_muskip=\muskip11
> \l_tmpa_muskip=\muskip12
> \l_tmpb_muskip=\muskip13
> \g_tmpa_muskip=\muskip14
> \g_tmpb_muskip=\muskip15
> L3 Module: l3keys 2015/01/27 v5500 L3 Key-value interfaces
> \g__keyval_level_int=\count91
> \l_keys_choice_int=\count92
> L3 Module: l3fp 2014/08/22 v5336 L3 Floating points
> \c__fp_leading_shift_int=\count93
> \c__fp_middle_shift_int=\count94
> \c__fp_trailing_shift_int=\count95
> \c__fp_big_leading_shift_int=\count96
> \c__fp_big_middle_shift_int=\count97
> \c__fp_big_trailing_shift_int=\count98
> \c__fp_Bigg_leading_shift_int=\count99
> \c__fp_Bigg_middle_shift_int=\count100
> \c__fp_Bigg_trailing_shift_int=\count101
> L3 Module: l3box 2014/08/23 v5354 L3 Experimental boxes
> \c_empty_box=\box26
> \l_tmpa_box=\box27
> \l_tmpb_box=\box28
> \g_tmpa_box=\box29
> \g_tmpb_box=\box30
> L3 Module: l3coffins 2014/08/23 v5354 L3 Coffin code layer
> \l__coffin_internal_box=\box31
> \l__coffin_internal_dim=\dimen108
> \l__coffin_offset_x_dim=\dimen109
> \l__coffin_offset_y_dim=\dimen110
> \l__coffin_x_dim=\dimen111
> \l__coffin_y_dim=\dimen112
> \l__coffin_x_prime_dim=\dimen113
> \l__coffin_y_prime_dim=\dimen114
> \c_empty_coffin=\box32
> \l__coffin_aligned_coffin=\box33
> \l__coffin_aligned_internal_coffin=\box34
> \l_tmpa_coffin=\box35
> \l_tmpb_coffin=\box36
> \l__coffin_display_coffin=\box37
> \l__coffin_display_coord_coffin=\box38
> \l__coffin_display_pole_coffin=\box39
> \l__coffin_display_offset_dim=\dimen115
> \l__coffin_display_x_dim=\dimen116
> \l__coffin_display_y_dim=\dimen117
> L3 Module: l3color 2014/08/23 v5354 L3 Experimental color support
> L3 Module: l3candidates 2015/03/01 v5544 L3 Experimental additions to
> l3kernel
> \l__box_top_dim=\dimen118
> \l__box_bottom_dim=\dimen119
> \l__box_left_dim=\dimen120
> \l__box_right_dim=\dimen121
> \l__box_top_new_dim=\dimen122
> \l__box_bottom_new_dim=\dimen123
> \l__box_left_new_dim=\dimen124
> \l__box_right_new_dim=\dimen125
> \l__box_internal_box=\box40
> \l__coffin_bounding_shift_dim=\dimen126
> \l__coffin_left_corner_dim=\dimen127
> \l__coffin_right_corner_dim=\dimen128
> \l__coffin_bottom_corner_dim=\dimen129
> \l__coffin_top_corner_dim=\dimen130
> \l__coffin_scaled_total_height_dim=\dimen131
> \l__coffin_scaled_width_dim=\dimen132
> )
> (c:/texlive/2014/texmf-dist/tex/latex/l3kernel/l3unicode-data.def
> File: l3unicode-data.def 2015/03/01 v5544 L3 Unicode data
> )
> (c:/texlive/2014/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
> File: l3pdfmode.def 2015/03/01 v5544 L3 Experimental driver: PDF mode
> \l__driver_color_stack_int=\count102
> ))
> Package: l3keys2e 2014/11/25 v5471 LaTeX2e option processing using
> LaTeX3 keys
> )
> Document Class: myclass 2015/06/28 v0.1 My nice class!
> (c:/texlive/2014/texmf-dist/tex/latex/base/article.cls
> Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
> (c:/texlive/2014/texmf-dist/tex/latex/base/size10.clo
> File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
> )
> \c at part=\count103
> \c at section=\count104
> \c at subsection=\count105
> \c at subsubsection=\count106
> \c at paragraph=\count107
> \c at subparagraph=\count108
> \c at figure=\count109
> \c at table=\count110
> \abovecaptionskip=\skip47
> \belowcaptionskip=\skip48
> \bibindent=\dimen133
> ))
> No file test.aux.
> \openout1 = `test.aux'.
>
> LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 24.
> LaTeX Font Info: ... okay on input line 24.
> LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 24.
> LaTeX Font Info: ... okay on input line 24.
> LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 24.
> LaTeX Font Info: ... okay on input line 24.
> LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 24.
> LaTeX Font Info: ... okay on input line 24.
> LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 24.
> LaTeX Font Info: ... okay on input line 24.
> LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 24.
> LaTeX Font Info: ... okay on input line 24.
>> \g_key_tl=macro:
> ->foo.
> <recently read> }
>
> l.26 \tl_show:N \g_key_tl
>
> ?
> (./test.aux) )
> Here is how much of TeX's memory you used:
> 5999 strings out of 493109
> 118944 string characters out of 6138587
> 140020 words of memory out of 5000000
> 9529 multiletter control sequences out of 15000+600000
> 3640 words of font info for 14 fonts, out of 8000000 for 9000
> 1141 hyphenation exceptions out of 8191
> 45i,1n,39p,10385b,87s stack positions out of
> 5000i,500n,10000p,200000b,80000s
>
> No pages of output.
> PDF statistics:
> 0 PDF objects out of 1000 (max. 8388607)
> 0 named destinations out of 1000 (max. 500000)
> 1 words of extra memory for PDF output out of 10000 (max. 10000000)
>
>
> In any case, this is as I say not a TeX Live issue!
> --
> Joseph Wright
>
I notice that's with my TL'14 install. With TL'15, updated today and
with the development version of expl3 (SVN 5650):
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/W32TeX)
(preloaded format=pdflatex 2015.7.4) 4 JUL 2015 11:00
entering extended mode
\write18 enabled.
%&-line parsing enabled.
**./test.tex
(./test.tex
LaTeX2e <2015/01/01> patch level 1
Babel <3.9l> and hyphenation patterns for 79 languages loaded.
LaTeX Warning: File `myclass.cls' already exists on the system.
Not generating it from this source.
(./myclass.cls
(c:/Users/c227/texmf/tex/latex/l3packages/l3keys2e/l3keys2e.sty
(c:/Users/c227/texmf/tex/latex/l3kernel/expl3.sty
Package: expl3 2015/06/15 v5630 L3 programming layer (loader)
(c:/Users/c227/texmf/tex/latex/l3kernel/expl3-code.tex
Package: expl3 2015/06/15 v5630 L3 programming layer (code)
L3 Module: l3bootstrap 2015/06/24 v5634 L3 Bootstrap code
L3 Module: l3names 2015/06/30 v5644 L3 Namespace for primitives
L3 Module: l3basics 2015/01/27 v5500 L3 Basic definitions
L3 Module: l3expan 2014/11/27 v5472 L3 Argument expansion
L3 Module: l3tl 2015/01/27 v5500 L3 Token lists
L3 Module: l3str 2015/03/01 v5545 L3 Strings
L3 Module: l3seq 2014/08/23 v5354 L3 Sequences and stacks
L3 Module: l3int 2015/02/21 v5529 L3 Integers
\c_max_int=\count79
\l_tmpa_int=\count80
\l_tmpb_int=\count81
\g_tmpa_int=\count82
\g_tmpb_int=\count83
L3 Module: l3quark 2014/08/23 v5354 L3 Quarks
L3 Module: l3prg 2015/04/13 v5566 L3 Control structures
\g__prg_map_int=\count84
L3 Module: l3clist 2014/08/23 v5354 L3 Comma separated lists
L3 Module: l3token 2014/09/15 v5422 L3 Experimental token manipulation
L3 Module: l3prop 2014/08/23 v5354 L3 Property lists
L3 Module: l3msg 2015/02/26 v5537 L3 Messages
L3 Module: l3file 2015/06/07 v5627 L3 File and I/O operations
\l_iow_line_count_int=\count85
\l__iow_target_count_int=\count86
\l__iow_current_line_int=\count87
\l__iow_current_word_int=\count88
\l__iow_current_indentation_int=\count89
L3 Module: l3skip 2015/05/18 v5607 L3 Dimensions and skips
\c_zero_dim=\dimen102
\c_max_dim=\dimen103
\l_tmpa_dim=\dimen104
\l_tmpb_dim=\dimen105
\g_tmpa_dim=\dimen106
\g_tmpb_dim=\dimen107
\c_zero_skip=\skip41
\c_max_skip=\skip42
\l_tmpa_skip=\skip43
\l_tmpb_skip=\skip44
\g_tmpa_skip=\skip45
\g_tmpb_skip=\skip46
\c_zero_muskip=\muskip10
\c_max_muskip=\muskip11
\l_tmpa_muskip=\muskip12
\l_tmpb_muskip=\muskip13
\g_tmpa_muskip=\muskip14
\g_tmpb_muskip=\muskip15
L3 Module: l3keys 2015/07/03 v5649 L3 Key-value interfaces
\g__keyval_level_int=\count90
\l_keys_choice_int=\count91
L3 Module: l3fp 2014/08/22 v5336 L3 Floating points
\c__fp_leading_shift_int=\count92
\c__fp_middle_shift_int=\count93
\c__fp_trailing_shift_int=\count94
\c__fp_big_leading_shift_int=\count95
\c__fp_big_middle_shift_int=\count96
\c__fp_big_trailing_shift_int=\count97
\c__fp_Bigg_leading_shift_int=\count98
\c__fp_Bigg_middle_shift_int=\count99
\c__fp_Bigg_trailing_shift_int=\count100
L3 Module: l3box 2014/08/23 v5354 L3 Experimental boxes
\c_empty_box=\box26
\l_tmpa_box=\box27
\l_tmpb_box=\box28
\g_tmpa_box=\box29
\g_tmpb_box=\box30
L3 Module: l3coffins 2014/08/23 v5354 L3 Coffin code layer
\l__coffin_internal_box=\box31
\l__coffin_internal_dim=\dimen108
\l__coffin_offset_x_dim=\dimen109
\l__coffin_offset_y_dim=\dimen110
\l__coffin_x_dim=\dimen111
\l__coffin_y_dim=\dimen112
\l__coffin_x_prime_dim=\dimen113
\l__coffin_y_prime_dim=\dimen114
\c_empty_coffin=\box32
\l__coffin_aligned_coffin=\box33
\l__coffin_aligned_internal_coffin=\box34
\l_tmpa_coffin=\box35
\l_tmpb_coffin=\box36
\l__coffin_display_coffin=\box37
\l__coffin_display_coord_coffin=\box38
\l__coffin_display_pole_coffin=\box39
\l__coffin_display_offset_dim=\dimen115
\l__coffin_display_x_dim=\dimen116
\l__coffin_display_y_dim=\dimen117
L3 Module: l3color 2014/08/23 v5354 L3 Experimental color support
L3 Module: l3candidates 2015/05/21 v5613 L3 Experimental additions to
l3kernel
\l__box_top_dim=\dimen118
\l__box_bottom_dim=\dimen119
\l__box_left_dim=\dimen120
\l__box_right_dim=\dimen121
\l__box_top_new_dim=\dimen122
\l__box_bottom_new_dim=\dimen123
\l__box_left_new_dim=\dimen124
\l__box_right_new_dim=\dimen125
\l__box_internal_box=\box40
\l__coffin_bounding_shift_dim=\dimen126
\l__coffin_left_corner_dim=\dimen127
\l__coffin_right_corner_dim=\dimen128
\l__coffin_bottom_corner_dim=\dimen129
\l__coffin_top_corner_dim=\dimen130
\l__coffin_scaled_total_height_dim=\dimen131
\l__coffin_scaled_width_dim=\dimen132
L3 Module: l3luatex 2015/06/30 v5646 L3 Experimental LuaTeX-specific
functions
)
(c:/Users/c227/texmf/tex/latex/l3kernel/l3unicode-data.def
File: l3unicode-data.def 2015/07/01 v5647 L3 Unicode data
)
(c:/Users/c227/texmf/tex/latex/l3kernel/l3pdfmode.def
File: l3pdfmode.def 2015/06/30 v5646 L3 Experimental driver: PDF mode
\l__driver_color_stack_int=\count101
))
Package: l3keys2e 2015/07/03 v5650 LaTeX2e option processing using
LaTeX3 keys
)
Document Class: myclass 2015/06/28 v0.1 My nice class!
(c:/texlive/2015/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(c:/texlive/2015/texmf-dist/tex/latex/base/size10.clo
File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
)
\c at part=\count102
\c at section=\count103
\c at subsection=\count104
\c at subsubsection=\count105
\c at paragraph=\count106
\c at subparagraph=\count107
\c at figure=\count108
\c at table=\count109
\abovecaptionskip=\skip47
\belowcaptionskip=\skip48
\bibindent=\dimen133
)) (./test.aux)
\openout1 = `test.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 24.
LaTeX Font Info: ... okay on input line 24.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 24.
LaTeX Font Info: ... okay on input line 24.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 24.
LaTeX Font Info: ... okay on input line 24.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 24.
LaTeX Font Info: ... okay on input line 24.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 24.
LaTeX Font Info: ... okay on input line 24.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 24.
LaTeX Font Info: ... okay on input line 24.
> \g_key_tl=macro:
->foo.
<recently read> }
l.26 \tl_show:N \g_key_tl
?
(./test.aux) )
Here is how much of TeX's memory you used:
6475 strings out of 493093
128379 string characters out of 6138557
140156 words of memory out of 5000000
10026 multiletter control sequences out of 15000+600000
3640 words of font info for 14 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
45i,1n,39p,10387b,87s stack positions out of
5000i,500n,10000p,200000b,80000s
No pages of output.
PDF statistics:
0 PDF objects out of 1000 (max. 8388607)
0 named destinations out of 1000 (max. 500000)
1 words of extra memory for PDF output out of 10000 (max. 10000000)
Again, no warning.
--
Joseph Wright
More information about the tex-live
mailing list