%% %% This is file `l3quark.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% l3quark.dtx (with options: `package,trace') %% %% %% EXPERIMENTAL CODE %% %% Do not distribute this file without also distributing the %% source files specified above. %% %% Do not distribute a modified version of this file. %% %% %% File: l3quark.dtx Copyright (C) 1990-2006 LaTeX3 project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this %% license or (at your option) any later version. The latest version %% of this license is in the file %% %% http://www.latex-project.org/lppl.txt %% %% This file is part of the ``expl3 bundle'' (The Work in LPPL) %% and all files in that bundle must be distributed together. %% %% The released version of this bundle is available from CTAN. %% %% ----------------------------------------------------------------------- %% %% The development version of the bundle can be found at %% %% http://www.latex-project.org/cgi-bin/cvsweb.cgi/ %% %% for those people who are interested. %% %%%%%%%%%%% %% NOTE: %% %%%%%%%%%%% %% %% Snapshots taken from the repository represent work in progress and may %% not work or may contain conflicting material! We therefore ask %% people _not_ to put them into distributions, archives, etc. without %% prior consultation with the LaTeX Project Team. %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} \GetIdInfo$Id: l3quark.dtx 761 2008-08-04 21:35:13Z morten $ {L3 Experimental Quark Commands} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \RequirePackage{l3expan}\par \def_new:Npn \quark_new:N #1{\tlp_new:Nn #1{#1}} \quark_new:N \q_stop \quark_new:N \q_no_value \quark_new:N \q_nil \quark_new:N\q_error \quark_new:N\q_mark \quark_new:N\q_recursion_tail \quark_new:N\q_recursion_stop \def_long_new:Npn \quark_if_recursion_tail_stop:n #1 { \exp_after:NN\if_meaning:NN \quark_if_recursion_tail_aux:w #1?\q_nil\q_recursion_tail\q_recursion_tail \exp_after:NN \use_none_delimit_by_q_recursion_stop:w \fi: } \def_long_new:Npn \quark_if_recursion_tail_stop:N #1 { \if_meaning:NN#1\q_recursion_tail \exp_after:NN \use_none_delimit_by_q_recursion_stop:w \fi: } \def_new:Npn \quark_if_recursion_tail_stop:o{ \exp_args:No\quark_if_recursion_tail_stop:n } \def_long_new:Npn \quark_if_recursion_tail_stop_do:nn #1#2 { \exp_after:NN\if_meaning:NN \quark_if_recursion_tail_aux:w #1?\q_nil\q_recursion_tail\q_recursion_tail \exp_after:NN \use_arg_i_delimit_by_q_recursion_stop:nw \else: \exp_after:NN\use_none:n \fi: {#2} } \def_long_new:Npn \quark_if_recursion_tail_stop_do:Nn #1#2 { \if_meaning:NN #1\q_recursion_tail \exp_after:NN \use_arg_i_delimit_by_q_recursion_stop:nw \else: \exp_after:NN\use_none:n \fi: {#2} } \def_new:Npn \quark_if_recursion_tail_stop_do:on{ \exp_args:No\quark_if_recursion_tail_stop_do:nn } \def_long_new:Npn \quark_if_recursion_tail_aux:w #1#2\q_nil\q_recursion_tail{#1} \def_long_new:Npn\use_none_delimit_by_q_recursion_stop:w #1\q_recursion_stop {} \def_long_new:Npn\use_arg_i_delimit_by_q_recursion_stop:nw #1#2\q_recursion_stop {#1} \def_long_test_function_new:npn {quark_if_no_value:N} #1 { \if_meaning:NN\q_no_value#1} \def_long_new:Npn \quark_if_no_value_p:N #1{ \if_meaning:NN \q_no_value #1 \c_true \else: \c_false \fi: } \cs_if_really_free:cTF{pdf_strcmp:D}{ \def_long_new:Npn \quark_if_no_value_p:n #1{ \if:w \exp_args:No \str_if_eq_var_p:nf {\token_to_string:N\q_no_value\space} {\tlist_to_str:n{#1}} \c_true \else: \c_false \fi: } } { \def_long_new:Npn \quark_if_no_value_p:n #1{ \if_num:w \pdf_strcmp:D {\exp_not:N \q_no_value}{\exp_not:n{#1}}=\c_zero \c_true \else: \c_false \fi: } } \def_long_test_function_new:npn {quark_if_no_value:n} #1 { \if:w \quark_if_no_value_p:n{#1}} \def_long:Npn \quark_if_no_value:nFT #1{ \if:w \quark_if_no_value_p:n{#1} \exp_after:NN\use_arg_ii:nn \else: \exp_after:NN\use_arg_i:nn \fi: } \def_long_new:Npn \quark_if_nil_p:N #1{ \if_meaning:NN \q_nil #1 \c_true \else: \c_false \fi: } \def_long_test_function_new:npn {quark_if_nil:N}#1{ \if_meaning:NN\q_nil#1} \cs_if_really_free:cTF{pdf_strcmp:D}{ \def_long_new:Npn \quark_if_nil_p:n #1{ \if:w \exp_args:No \str_if_eq_var_p:nf {\token_to_string:N\q_nil\space} {\tlist_to_str:n{#1}} \c_true \else: \c_false \fi: } } { \def_long_new:Npn \quark_if_nil_p:n #1{ \if_num:w \pdf_strcmp:D {\exp_not:N \q_nil}{\exp_not:n{#1}}=\c_zero \c_true \else: \c_false \fi: } } \def_long_test_function_new:npn {quark_if_nil:n} #1 { \if:w \quark_if_nil_p:n{#1}} \def_new:Npn \quark_if_nil_p:o{\exp_args:No\quark_if_nil_p:n} \def_new:Npn \quark_if_nil:oTF{\exp_args:No\quark_if_nil:nTF} \def_new:Npn \quark_if_nil:oT {\exp_args:No\quark_if_nil:nT} \def_new:Npn \quark_if_nil:oF {\exp_args:No\quark_if_nil:nF} %% %% %% End of file `l3quark.sty'.