ææžExpl3ããã±ãŒãžãšLaTeX3ããã°ã©ãã³ã°ïŒvã2017/ 09/18ïŒã¯ãpã 7ïŒ
LaTeX3ã®ã³ãŒãã£ã³ã°èŠåã§ã¯ã䜿çšããåã«ãã¹ãŠã®å€æ°ã宣èšããå¿ èŠããããŸãã
åæ§ã«ãããã¥ã¡ã³ãThe LaTeX3 InterfacesïŒvã2017/ 09/18ïŒã¯ãpã 10ïŒ
...åžžã«å®£èšããå¿ èŠãããå€æ°ãšã¯å¯Ÿç §ç
expl3
ã¯ãå€æ°ãããŒã«ã«ã§å®£èšããæ©èœãæäŸããŸããã ã°ããŒãã«ã«ã®ã¿ã ãã ããããŸããŸãª\..._set:N...
é¢æ°ã䜿çšããŠãæé»çã«ããŒã«ã«å€æ°ãäœæããããšã¯å¯èœã§ãã
å€æ°ãã°ããŒãã«ã¹ã³ãŒãã«äžå¿ èŠã«ãã³ãããããšã¯é¿ããã¹ãã§ãããšããã®ãæ§é åããã°ã©ãã³ã°ã®ååã§ãã TeXèšèªã¯ãç§ãç¥ã£ãŠãããã¹ãŠã®é«çŽããã°ã©ãã³ã°èšèªïŒCãCïŒãFortranãJavaãLispãPascalãPythonãå«ãïŒãšåæ§ã«ãããŒã«ã«å€æ°ãã€ãŸãã°ã«ãŒããäœæããããã®ã¹ã³ãŒãã³ã°æ§é ãæäŸããŸãã ããã«ãLaTeX3ããã°ã©ãã³ã°èšèªèªäœã¯ããããããããšã«ãããã¥ã¢ã«ã§ææ¡ãããŠããããšã«ãããããããããŒã«ã«å€æ°ã®äœæããµããŒãããŠããŸãã
ç§ã®æèŠã§ã¯ãäžèšã§åŒçšããèŠåã¯ããã¥ã¢ã«ããåé€ããå¿ èŠããããå€æ°ã¯å¯èœãªéãããŒã«ã«ã§äœæã§ããããšãããã³äœæããå¿ èŠãããããšã説æããå¿ èŠããããŸãã
ããã«ããã¹ãŠã®å€æ°ã䜿çšãããåã«å®£èšãããããã°ã©ãã³ã°ã¹ã¿ã€ã«ã奚å±ãããå ŽåïŒå人çã«ã¯ãããã¯ããã°ã©ããŒã®åã ã®å¥œã¿ã«ä»»ããã¹ãããã°ã©ãã³ã°ã¹ã¿ã€ã«ã®åé¡ã ãšæããŸãïŒãé¢æ°ã¯ã°ããŒãã«å€æ°ã宣èšããããã®é¢æ°ãããã®ãšåãããã«ãããŒã«ã«å€æ°ã宣èšããããã«æäŸãããŸãã
çŸåšã®äœçœ®ã¯ã expl3
ãµããŒãããTeXãã¡ã³ãã¡ã³ã¿ã«ãºã§æ©èœãããã¿ãŒã³ã確ç«ããããã®ããŒã ã«ããããã€ãã®å®éšã«åŸããŸãã ç¹ã«ãå€æ°ã¯ãã¯ããŸãã¯ã¬ãžã¹ã¿ã䜿çšããŠå®è£
ãããå¯èœæ§ãããããšã«æ³šæããTeXã°ã«ãŒãåãã©ã®ããã«æ©èœããããèŠããŠããããšãéèŠã§ãã
ã¬ãžã¹ã¿ãŒïŒ int
ã¿ã€ãã®å Žåã¯_e.g._ïŒã䜿çšããå Žåãã¢ã¯ã»ã¹ã«äœ¿çšããŠããã¬ãžã¹ã¿ãŒçªå·ãšcsããªã³ã¯ããã¢ãã±ãŒã¿ãŒãå¿
èŠã§ãã 察ç
§çã«ãå¿
èŠã®ãªããã¯ãããŒã¹ã®ã¹ãã¬ãŒãžã®å Žåã ãããã£ãŠã \cs_set_eq:NN
ã䜿çšããŠæ°ããtl
åãçæã§ããŸããïŒããšãã°ïŒãã¬ãžã¹ã¿ã䜿çšãããšå€±æããŸãã
\int_set_eq:NN \l_undeclared_int \l_tmpa_in
ãšã©ãŒãçºçããŸãã
ããŒã«ã«ã¬ãžã¹ã¿ã¢ãã±ãŒã¿ãäœæããããšã¯å¯èœã§ãããéå»ã«_e.g._ \int_local_new:N
è©ŠããŠã¿ãŸããã ïŒãã®ãããªå®è£
ã®1ã€ã«ã€ããŠã¯etex
ããã±ãŒãžãåç
§ãããã expl3
å±¥æŽãæ¯ãè¿ã£ãŠãã ãããïŒããŒã ã¯ãTeXã¹ã³ãŒãã«ãé©åãããŠããªãããã ã£ããããæçµçã«ããã«å察ããããšã«ããŸããã ããã§éèŠãªã®ã¯ãTeXã®ã°ã«ãŒãåã¯å®£èšã«åºã¥ãã®ã§ã¯ãªããæ瀺çãªã°ã«ãŒãã«åºã¥ããŠããããšãšããã¹ããããã°ã«ãŒãå
ã«ããŒã«ã«å€æ°ãååšããããšã§ãã
\begingroup
\def\foo{}
\begingroup
\show\foo
å€æ°ã®ããŒã«ã«_äœæ_ãè©ŠãããšãããTeXã°ã«ãŒãåãã©ã®ããã«æ©èœãããããããã«ãããªãå±éºæ§ããããããã°ã©ããŒã誀解ãããå¯èœæ§ãããããã§ããã
ãããã£ãŠãå€æ°ã®ããã¹ãŠã®ã°ããŒãã«ã_宣èš_ã䜿çšããããšã«ããŸãããããã®ãããªå€æ°ã®ããŒã«ã«ãšã°ããŒãã«ã®äž¡æ¹ã®_èšå®_ã䜿çšããããšã«ããŸããïŒ \l_...
_察\g_...
èŠåïŒã ããã«ãããéèŠãªããšãã€ãŸãå€ãããŒã«ã©ã€ãºãããŸãã ãããã£ãŠããã¹ãŠã®å®£èšããããã¬ãã«ã«ããããšããå§ãããŸã
\tl_new:N \l_my_tl
\int_new:N \l_my_int
...
\cs_new_protected:Npn \my_func:nn #1#2
{
\group_begin:
\tl_set:Nx \l_my_tl { \tl_lower_case:n {#1} }
çŸåšãŸã§ããã®ãã¿ãŒã³ã¯expl3
ã䜿çšãããã¿ã¹ã¯ã§ããŸãæ©èœããŠããããã§ãã
texã§ã¯ãããŒã«ã«ã§å®çŸ©ãããå€æ°ã§ãããã°ã«ãŒãã®çµäºåŸã«å®å šã«ç Žæ£ãããããšã¯ãããŸããã 圌ãã¯ãŸã ããã€ãã®æååã¹ããŒã¹ã䜿çšããŠããŸãïŒ https ïŒ
@ u-fischerè¯ãç¹ïŒåœæå®éã«æ€èšãããã®ã§ã¯ãããŸããããèŠããŠãã䟡å€ããããŸãã
ç§ã®æèŠã§ã¯ããã®ã¢ãããŒãã¯ééã£ãŠããŸãã ããã¯æ§é åããã°ã©ãã³ã°ã®ååã«åããããŒã«ã«å€æ°ã®äœæãå¯èœã«ããTeXã«ãåããŸãã ãŸããäžéšã®ããŒã¿åã¯ããŒã«ã«å€æ°ã«å¯Ÿå¿ããäžéšã¯å¯Ÿå¿ããªããããLaTeX3ã®äžè²«æ§ã倱ãããŸãã
ãã¹ãŠã®ã¿ã€ãã®å€æ°ã®ããŒã«ã«äœæãåéããããã«ãé¡ãããããšæããŸãã ããã«ãããããã°ã©ããŒã¯éžæè¢ãåŸãããšãã§ããŸãããã¹ãŠã®å€æ°ãã°ããŒãã«ã«å®çŸ©ããããšã奜ã人ã¯ããããããšãã§ããäžéšãã°ããŒãã«ã«å®çŸ©ããã人ãããŒã«ã«ã«å®çŸ©ããã人ãããããããšãã§ããŸãã
ã¡ã¢ãªãŒã«é¢ããŠããŸãã¯ãã®ä»ã®æ³šæäºé ãããå Žåã¯ãããã¥ã¡ã³ãã«èšèŒãããŠããŸãã
ååŸ9æ17æ2017幎10æ18æ¥ãEvanAad [email protected]ã¯æžããŸããïŒ
ç§ã®æèŠã§ã¯ãããã¯ã¢ãããŒãã®èª€ãã§ãããç§ã¯ãããèŠæ±ããããšæããŸã
å€æ°ã®ããŒã«ã«äœæãåéããŸãã ããã¯ããã°ã©ããŒã«
éžæïŒãã¹ãŠã®å€æ°ãã°ããŒãã«ã«å®çŸ©ããããšã奜ã人ã¯ããããããšãã§ããŸãããããŠ
äžéšãã°ããŒãã«ã«å®çŸ©ããäžéšãããŒã«ã«ã§å®çŸ©ããã人ãããããããšãã§ããŸããã¬ãžã¹ã¿ã¿ã€ãã«åºã¥ãå€æ°ã®å ŽåããããªãœãŒã¹ãå²ãåœãŠãŸãã
ã°ããŒãã«ããŒã«ãåºå®ãããŠãããããååã®ã°ããŒãã«å²ãåœãŠã¯å®éã«ã¯ã¯ããã«å€ããªããŸã
ããã¥ã©ã«ã etexãæ³å®ããŠããã®ã§ã256ãè¶ ããã¬ãžã¹ã¿ããããŸãã
ã¿ã€ãããšã«ãå²ãåœãŠåäœã¯ãããããã以äžã«é ãããšãã§ããŸã
å€å žçãªtexã§å¯èœã§ããããããã§ã
åºç€ãšãªãTeXã·ã¹ãã ã expl3ãå®å šã«äžè¬çãªããã°ã©ãã³ã°ã«ãªãããšã¯ãããŸãã
èšèªïŒåºç€ãšãªãTeXã·ã¹ãã ãšé£æºããå¿ èŠããããŸãã ããªãã¯ãã¹ãã§ã¯ãããŸãã
CïŒãšæ¯èŒããŸãããä»ã®TeXããŒã¹ã®èšèªãç¹ã«
\ newcountãšåéã
ä»ã®ãã¹ãŠã®èšèªãå€æ°ãèš±å¯ããŠãããšèšãã®ãå®éã«ã¯çå®ã§ã¯ãããŸãã
ããŒã«ã«ã¹ã³ãŒãã§å®£èšãããŠããå Žåãããšãã°Fortranã§ã¯å€æ°ã®ã¿ãèš±å¯ãããŸã
é¢æ°/ãµãã«ãŒãã³ã®éå§æã«å®£èšãããŸãã
äžèšã®ãããããããŒã«ã«å®£èšã絶察ã«è¿œå ããªãããšãæå³ããŸã
ã·ã¹ãã ã§ãããæ±çšèšèªã«ã¢ããŒã«ããããšã¯è¯ããŠãŒã¹ã±ãŒã¹ã§ã¯ãããŸããã
texæ€åå
ã§åççãªãŠãŒã¹ã±ãŒã¹ãå¿
èŠã«ãªãã§ãããã
ã°ããŒãã«å®£èšã·ã¹ãã ã®äœ¿çšã¯åé¡ã§ããã
Fortranãé¢æ°/ãµãã«ãŒãã³ã®éå§æã«å€æ°ã宣èšããããšãèŠæ±ãããšããäºå®ã¯ããããã®å€æ°ãã°ããŒãã«ã§ããããšãæå³ããŸããã ãã¹ãŠã®å€æ°ã宣èšããå¿ èŠãããããã°ã©ãã³ã°ã¹ã¿ã€ã«ã奚å±ããããšã䞻匵ããå Žåã¯ããã§ãããã°ããŒãã«å€æ°ã宣èšããããã®å€æ°ã«å¯Ÿå¿ããããŒã«ã«å€æ°ã宣èšããããã®é¢æ°ãæäŸããŸãã
ã¹ã³ãŒãã³ã°ãšããŒã«ã«å€æ°ã®çè«çæ ¹æ ã¯ãäœããããŸãæŠå¿µçã§ãã åºç€ãšãªãTeXãšã³ãžã³ãããŒã«ã«å€æ°ã«é¢é£ä»ãããããªãœãŒã¹ã®äžéšã解æŸããªããšããäºå®ã¯åŽäžãããã¹ãã§ã¯ãããŸããããç§ã®æèŠã§ã¯ããããã¹ã³ãŒããšããŒã«ã«å€æ°ã®æŠå¿µãæ¹æ¶ããçç±ã«ã¯ãªããŸããã ãã¯ãŒããã°ã©ããŒãé€ããŠãåºç€ãšãªãå®è£ ã¯åé¡ã§ã¯ãããŸããã ãŸãããã¯ãŒããã°ã©ããŒåãã«ããã³ããšèŠåãããã¥ã¡ã³ãã§æäŸã§ããŸãã
æ±çšèšèªã«ã¢ããŒã«ããããšã¯ãè¯ããŠãŒã¹ã±ãŒã¹ã§ã¯ãããŸããã
TeXãå«ãã1960幎代ããä»æ¥ãŸã§äºå®äžãã¹ãŠã®ããã°ã©ãã³ã°èšèªã§å®è£ ãããŠããæ§é åããã°ã©ãã³ã°ã®ååããéžè±ããããšã¯ãLaTeX3ããŒã ãè¡ãã¹ãéåžžã«èª¬åŸåã®ããçç±ã§ããã¯ãã§ãã ç«èšŒè²¬ä»»ã¯ããŠããã¿ã¹ã«åªããããã°ã©ãã³ã°ææ³ãšèŠãªãããŠãããã®ãããã³TeXã«ãã§ã«ååšãããã®ãå»æ¢ããã人ã«ããã¹ãã§ãã ãããä¿åããã人ã§ã¯ãããŸããã
@EvanAadããŒã¯ã³ãªã¹ããã³ã³ããªã¹ãã·ãŒã±ã³ã¹ãããã³ããããã£ãªã¹ãå€æ°ã¯ãå®éã«ã¯TeXãã¯ãã§ãããç°ãªãçš®é¡ã®å€æ°ã¯ããã§ã¯ãããŸããã æŽæ°å€æ°ãããŒã«ã«ã§å®£èšããããšãèš±å¯ãããŠãããšä»®å®ããŸãããã ããã¯ã¬ãžã¹ã¿ãæ¶è²»ããå²ãåœãŠããã§ã«å²ãåœãŠãããŠããã¬ãžã¹ã¿ã«è§Šããªãããã«ããããã°ããŒãã«ã«åŠçããå¿ èŠããããŸãã
ããŒã«ã«æŽæ°å€æ°\x
ã«ã¬ãžã¹ã¿ãŒ100ãå²ãåœãŠãããŠãããšããŸãããã®ã¬ãžã¹ã¿ãŒã¯ãäžäœã¬ãã«ã®å€æ°\y
ã«ãã£ãŠæ¢ã«ååŸãããŠããŸãã 䜿çšããŠ\y
åãã¬ãã«ã§\x
ããŒã«ã«ã«å®çŸ©ãããŠããããšã¯ãåã«æ²æšãªããšã§ãããã ãããã£ãŠãå²ãåœãŠãããã¬ãžã¹ã¿ã®ã°ããŒãã«ãªç°¿èšãå¿
èŠã§ãããããŒã«ã«ã«å²ãåœãŠãããã¬ãžã¹ã¿ã解æŸããããšã¯éåžžã«å°é£ã§ãã ããŒã«ã«å²ãåœãŠçšã«ã¬ãžã¹ã¿ã®ãããã¯ãäºçŽããããšã¯è§£æ±ºçã§ã¯ãããŸããã
ã§ããªããšèšã£ãŠããããã§ã¯ãããŸããããèŠåŽãã䟡å€ã¯ãªããšæããŸãã
\ newcountãåã«ããŒã«ã«ïŒãŸãã¯ã°ããŒãã«ïŒã§ã¯ãªããšããäºå®ãèŠéããŠããŸã
ååã宣èšãããšãååãå€éšã§å®çŸ©ãããåºå®ã«é¢é£ä»ããããŸã
è³æºã ã«ãŠã³ãã¬ãžã¹ã¿42ã¯1ã€ã ãã§ããã¹ãŠã®ååã¯
count42ãåãã¬ãžã¹ã¿ãåç
§ããŠããããšãæå³ãããšå®£èšãããŠãããã©ãã
ååã®å²ãåœãŠã¯ããŒã«ã«ãŸãã¯ã°ããŒãã«ã§ãã ç§ãä»ãšã®æ¯èŒã«ã€ããŠè¿°ã¹ãããã«
èšèªã¯ããã»ã©æçšã§ã¯ãããŸããããæ¯èŒãå¿
èŠãªå Žåã¯ã
ãã¡ã€ã«ã¹ããªãŒã ã®å²ãåœãŠãªã©ãæ¯èŒããŸããåžžã«åé¢ã§ãããšã¯éããŸããã
å€éšã§å®çŸ©ããããã®ãšã€ã³ã¿ãŒãã§ãŒã¹ããå Žåã®ããŒã«ã«å®£èš
è³æºã
21ïŒ43ã§2017幎10æ18æ¥ãEvanAad [email protected]ã¯æžããŸããïŒ
Fortranã§ã¯ãå€æ°ã®éå§æã«å€æ°ã宣èšããå¿ èŠããããšããäºå®
é¢æ°/ãµãã«ãŒãã³ã¯ããããã®å€æ°ãã°ããŒãã«ã§ããããšãæå³ãããã®ã§ã¯ãããŸããã ç§ãšããŠ
ããªãããã¹ãŠã®å€æ°ã
宣èšããå¿ èŠãããã®ã§ãããã§ãããããŒã«ã«ã宣èšããããã®é¢æ°ãæäŸããŸã
ã°ããŒãã«å€æ°ã宣èšããããã®å€æ°ã«å¯Ÿå¿ããå€æ°ãã¹ã³ãŒãã³ã°ãšããŒã«ã«å€æ°ã®çè«çæ ¹æ ã¯äœãããéèŠã§ã
æŠå¿µã åºç€ãšãªãTeXãšã³ãžã³ãäžéšããªãªãŒã¹ããªããšããäºå®
ããŒã«ã«å€æ°ã«é¢é£ä»ããããŠãããªãœãŒã¹ã®ãã¡ãåŽäžãããã¹ãã§ã¯ãããŸããã
ããããç§ã®æèŠã§ã¯ããããæŠå¿µãæ¹æ¶ããçç±ã«ã¯ãªãåŸãŸãã
ã¹ã³ãŒããšããŒã«ã«å€æ°ã®ã ãã¯ãŒããã°ã©ããŒãé€ããŠã
åºç€ãšãªãå®è£ ã¯åé¡ã§ã¯ãããŸããã ãã¯ãŒããã°ã©ããŒåãã®ãã³ã
ããã³èŠåã¯ãããã¥ã¡ã³ãã§æäŸã§ããŸããâ
ããªããã³ã¡ã³ãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/latex3/latex3/issues/410#issuecomment-337721923 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/ABNcAimMfBDqA-e96Q7tkS-ERr5fv_2Mks5stmLqgaJpZM4P-Mpq
ã
éèŠãªç¹ã¯ãJosephãšDavidãè¿°ã¹ãããã«ã int
ããŒã«ã«ã§å®çŸ©ã§ããããã«ããããšã¯å¯èœã§ããïŒãããŠå®è¡ãããŠããïŒãšããããšã§ãã æ§é åããã°ã©ãã³ã°ã®ååãšäžèŽããäžè²«ããæœè±¡åã¬ã€ã€ãŒãæ瀺ããèšèªãäœæããããšã¯ãèŠåŽãã䟡å€
ããããç§ã¯LaTeX3èšèªãå®è£
ãããšããèŠçã«ãããããŠããããã§ã¯ãªãã®ã§ãèŠçã«å€ãããšèšãã®ã¯ç°¡åã§ãã ã§ããããæ
æ²æ·±ãã¢ãããŒããåããããã¯å®éã«ã¯èŠçã®äŸ¡å€ããªããšèšããŸãããã 眰éã ãã®å ŽåãããŒã¿åã2ã€ã®ã«ããŽãªã«åé¡ããŸããããŒã«ã«å€æ°ã®äœæãèš±å¯ãããã®ãšèš±å¯ããªããã®ã§ãã ãããŠããããã®ã«ããŽãªãŒãããã¥ã¢ã«ã«èšè¿°ããŠãã ããã èšããªãã§ãã ããïŒãã¹ãŠã®å€æ°ã¯äœ¿çšããåã«å®£èšããå¿
èŠããããŸãã 説æïŒãããŒã¿åã«ã¯2ã€ã®ã«ããŽãªããããŸãã1ã€ç®ã¯cs
ã tl
ã clist
ã...ã§æ§æãããããŒã«ã«å€æ°ã«å¯Ÿå¿ãã2ã€ç®ã¯ã§æ§æãããŸãã int
ã...ããŸãããã ãããŠã2çªç®ã®ã«ããŽãªãååšããçç±ã説æããŸãã ãã®ããã«ããŠãããã¥ã¡ã³ãã¯äºå®ã«å¿ å®ã§ãããããã°ã©ããŒã¯ååãªæ
å ±ãåŸãŠãéžæããããšãã§ããŸãã äžéšã®ããã°ã©ã ã¯ã2çªç®ã®ã«ããŽãªã®ããŒã¿åããŸã£ãã䜿çšããå¿
èŠããããŸããããããã®å Žåããªãããã°ã©ããŒã¯ã°ããŒãã«å€æ°ã宣èšããå¿
èŠãããã®ã§ããããã
@EvanAadããã¯ãç§ãTeXããã°ã©ãã³ã°ïŒTeX90ã®ãåŸæ¥ã®ãå¶éãå«ãïŒã«æ
£ããŠããããã ãšæããŸãããçŸåšã®ãšãããçŸåšã®ã¢ãããŒãã®åé¡ãäœã§ãããã¯ããããŸããã ããŒã«ã«ã«å²ãåœãŠãããå€æ°ããµããŒãããå®éã«æšå¥šããŸãããããã¯éåžžã«äžè¬çã§ãããå€æ°ã®åœåã«äœ¿çšããæ§æã®äžéšã§ãïŒ \l_...
/ \g_...
ïŒã ããããã°ããŒãã«ã«å²ãåœãŠ/ãäºçŽããããŠãããšããäºå®ã¯ãããã劚ããŸããã
ãšããã§ãã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ã«çµã³ä»ããããããŸãããããšãã°ã prop
ããŒã¿åã«ã¯ãç§ãç¥ã£ãŠããå°ãªããšã2ã€ã®ç°ãªãå®è£
ãããããã®ãã¡ã®1ã€ã¯ã¬ãžã¹ã¿ã䜿çšããçŸåšã®å®è£
ã¯ãã¯ãã䜿çšããŠããŸãã
ããã«ãã1ã€æ³šæãå ãããšãããŒã«ã«ã¬ãžã¹ã¿/å€æ°å²ãåœãŠã·ã¹ãã ãèœã¡ããšããã©ã¯ãã®èäžãïŒç§ã®èšæ¶ã®äžã§ïŒå£ããã¹ãããŒã¯ãççŸãåå ã§ããã ãã¯ããšã¬ãžã¹ã¿ã®åäœãç°ãªããããæžã蟌ã¿æã«åäœãç°ãªãããšã«ãªããŸãã
\group_begin:
\int_new_local:N \l_tmpa_int
\int_gset:Nn \l_tmpa_int {7}
\group_end:
% `\l_tmpa_int` undefined
vs
\group_begin:
\tl_new_local:N \l_tmpa_tl
\tl_gset:Nn \l_tmpa_tl {7}
\group_end:
% `\l_tmpa_tl` defined as `7`
ãããŠããã®åé¡ã解決ããå¯äžã®æ¹æ³ã¯ããã¯ãã®å²ãåœãŠã·ã¹ãã ãäœæããããšã§ããããã¯ããªãŒããŒãããã®ããã«çå£ã«æ€èšãããããšã¯ãããŸããã§ããã ïŒTeXã¯ãå®çŸ©ãããå€æ°ãå¢ããã»ã©é床ãäœäžãããããããŒã¯ã³ãªã¹ãã®æ°ã2åã«ãããšãããã©ãŒãã³ã¹ã«èãã圱é¿ããå¯èœæ§ããããŸããïŒ
expl3
ã¯ããã¯ããšã¬ãžã¹ã¿ãåãå€èŠ³ãšæ觊ã®é¢æ°ã«æœè±¡åããããšã§æ£ããããšããããšæããŸããæ¬ ç¹ã¯ãæ§æãçã«ããŒã«ã«ãªå€æ°ãšã¬ãžã¹ã¿ãèªç¶ã«ãµããŒãããŠããªãããšã§ããäžèšã®çç±ã«ãããTeXã§ã®äœ¿çšã¯éåžžã«éãããŠããŸãããç§ã®èŠ³ç¹ããã¯ãããã¯èš±å®¹ã§ãããã¬ãŒããªãã§ãã
@wsprããããã©ã¯ãã®èäžãå£ãããã®ãšããŠããªããåŒçšããäŸã¯ãããã°ã©ããŒãããŒã«ã«å€æ°ã«ã°ããŒãã«ã«å²ãåœãŠãããšã«ãã£ãŠèšèªãæªçšããäŸã§ãã ããã¯ããã°ã©ããŒã«ãããŸãã çŸåšã®ã·ã¹ãã ã§ã¯ãããã°ã©ããŒã¯\l_...
å€æ°ãã°ããŒãã«ã§ãããã®ããã«äœ¿çšã§ãããããèšèªã®ä¹±çšã®åé¡ã¯è§£æ±ºãããŸããã
...ããã¯æ§é åããã°ã©ãã³ã°ã®ååãšäžèŽããŠããŸãã
è€æ°ã®ã»ãããããããšãèãããšãããã¯éåžžã«å€§èãªã¹ããŒãã¡ã³ãã§ãã
ååãšç°ãªãååãçµ±åããããšããããšãèãããš
ã¹ãŒããŒã»ããã¯éåžžãéå»ã«å€§ãããŠã圹ã«ç«ããªãèšèªãäœæããŠããŸããã
éèŠãªç¹ã¯ãå¿
ãããäœããã§ãããšããããšã§ã¯ãããŸããïŒ
ãã¥ãŒãªã³ã°å®å
šåºå°å
ã§ã¯ããã¹ãŠããã®ã¬ãã«ã§åçã§ãïŒã
å¹ççãã€äžè²«ããŠäœããã§ãããã©ãããªã©ã
@wspr ïŒãªããã®åé¡ããããã£åã®ããã«éããã®ã§ããïŒ ããã¯è§£æ±ºããããã®ã§ã¯ãããŸããã
@EvanAad âç©äºãæŽé ããããšããŠããã ãã§ãã è°è«ã¯ç¢ºãã«ç¶ç¶ããããšãã§ããæ£åœãªçç±ãããå Žåã¯åéããŸãã
ããã€ãã®çœç±ããã³ã¡ã³ãã®ãããç§ã¯ãããã®åé¡ãäžæçã«ããã¯ããŠããŸãã
ããã¯é¢é£ãã質åã ãšæããŸãã ãã®è°è«ã®çµæã®1ã€ã¯ãå°ãªããšããã°ããŒãã«å®£èšã®ã¿ãéžæããçç±ãããã¥ã¡ã³ãã§ãã泚ææ·±ã説æããããšã§ãã @EvanAad TeXã·ã¹ãã ã®å¶éã\int_local_new:N
ãŸãã¯éžæããã»ãã³ãã£ã¯ã¹ã䜿çšããå¥ã®ã·ã¹ãã ã䜿çšããäŸïŒããšãã°ã10ã20è¡ïŒãæããŠããã ããŸããïŒ ããå
·äœçãªèšå®ã§è°è«ãçµã¿ç«ãŠãã®ã«åœ¹ç«ã¡ãã¡ãªãã/ãã¡ãªãããããã·ã¥åã§ããŸãã
ãããããããã¯ã解é€ãããã®ãåŸ ããªããã°ãªããªãã®ã§ããããã®æ¹æ³ãããããŸããã ãããã«ããããã®äŒè©±ã®ã»ãšãã©ã®äººã¯æ°æéå¯ãããšã«ãªããŸãã ïŒã¡ãªã¿ã«ãæ··ä¹±ããè°è«ãšããŠïŒ410ãïŒ411ã«ã³ããŒããããšã¯éåžžã«åççã§ã¯ãªããšæããŸããïŒ
ããã¯éåžžã«è©³çŽ°ãªè°è«ã§ãããšããäºå®ãèŠããšãç§ãã¡ãä»ããå Žæã«ãã©ãçããæè¡çããã³ç€ŸäŒçæŽå²ãèŠçŽãã䟡å€ããããšæããŸãã
æè¡ã¬ãã«ã§ã¯ãTeXã¯ã¹ãã¬ãŒãžçšã®ã¬ãžã¹ã¿ãšãã¯ããæäŸããŸãã ãã¯ãã¯\def
ã䜿çšããŠãäœæãã§ããŸãããååã§ã¬ãžã¹ã¿ã䜿çšããã«ã¯ãã°ããŒãã«ã¬ãžã¹ã¿çªå·ïŒäŸïŒ \count40
ïŒãååïŒäŸïŒ \mycount
ã«ãªã³ã¯ããã¢ãã±ãŒã¿ãå¿
èŠã§ãã \newcount
ã_ etc._ãã¢ãã«ãæäŸããŠããŸãã ç°¡åã«èšããšã \newcount
ã¯ã°ããŒãã«ã«å²ãåœãŠãããååã«ããããããããã§ãã¯ã¯è¡ããŸããã ä»ã®ãã©ãŒããããç¹ã«LaTeX2eãšConTeXtã¯ãã©ã¡ããäžè¬çã«ãã®ã¢ãããŒããæ¡çšããŠããŸãã ãŸããäžè¬çã«ãåã
ã®ã¬ãžã¹ã¿ãããŒã«ã«ãŸãã¯ã°ããŒãã«ã«_å²ãåœãŠ_ããããšããèããæ¡çšããŠããŸããããã«ãããä¿åã¹ã¿ãã¯ã®èç©ãé²æ¢ãããŸãã
TeX90ã¯äžè¬çãªã¿ã€ãã®256åã®ã¬ãžã¹ã¿ããæäŸããªãã£ããããããŒã«ã«ã³ã³ããã¹ãã§ã®ã¬ãžã¹ã¿ã®åå©çšãäžå¯æ¬ ã§ããã _e.g._ graphics
ã§ãã³ãŒãããæ£æ°ãã«ä¿ã€å Žæã§ãå€æ°ã®ã¬ãžã¹ã¿ã«ã°ã«ãŒãå
ã§æ°ããååãä»ããããçŽç²ã«ããŒã«ã«ã§äœ¿çšãããŠããããšãããããŸãã e-TeXã§ã¯ãããå€ãã®ã¬ãžã¹ã¿ãŒãããããããã®ã¢ãããŒãã¯ããã»ã©å¿
èŠã§ã¯ãããŸãããå°çšã®ç®çã®ããã«ããå€ãã®ã¬ãžã¹ã¿ãŒïŒããã³ãã¯ãïŒãèªç±ã«å²ãåœãŠãããšãã§ããŸãã ç¹ã«ãè€æ°ã®ååã§ã¬ãžã¹ã¿ãŒãããªãµã€ã¯ã«ãããããã«ãã¬ãã·ã£ãŒããããããŠãããããªãã®ã§ã¯ãªãããšãæå³ããŸãã
expl3
ã®ã³ãŒãããŒã¹ã¯_é·ãé_éçºäžã§ãããããšããše-TeXãå¿
èŠãšããŸããã§ããã expl3
éçºããäž»ã«LaTeX2eã®ãäžãã§è¡ãããäžè¬çãªååãšããŠã expl3
ã¯ããã¥ã¡ã³ãã®åå空éãæ±æããããã³ã¢ã®LaTeX2eã®åäœãå€æŽãããããŸããã
ç¹ã«ãLaTeX2eã®\newcount
ã¯ãã¬ãŒã³ã®ãã®ãšäŒŒãŠããããšã«æ³šæããå¿
èŠããããŸããã€ãŸããã°ããŒãã«ã«å²ãåœãŠããããã§ãã¯ãããŸããã ãããã£ãŠãç¹ã«
\def\foo{%
\begingroup
\newcount\localfoocnt
\foo
ãè€æ°ååŒã³åºããããã®ããã«ããæªãã¹ã¿ã€ã«ãã§ããå Žåã解æŸãããªãã¬ãžã¹ã¿ã䜿ãæãããŸãã
expl3
å ŽåãããŒã ã¯ãææžåãããå€æ°ã®åäœããã¯ããŸãã¯ã¬ãžã¹ã¿ãŒã®å®è£
ã«çµã³ä»ããªãããã«ããŸããã ïŒã¢ã¯ã»ãµãŒãªãã§tl
䜿çšãèš±å¯ããŠããããšã«æ³šæããŠãã ãããããã¯ãæçµçã«ã¯ãã¯ãã§ããããšã«äŸåããŸããïŒæŽæ°ã次å
ã_etc._ã®ã¬ãžã¹ã¿ãŒãå©çšå¯èœã§ãããæäŸãããŠãããããåŒãç¶ã䜿çšããŸãããã¯ãã§ãã¹ãŠãå®è¡ãããããåªããããã©ãŒãã³ã¹ãšãèªå·±çµäºãã ïŒããã¯ãe-TeXãšããŸããŸãª\<thing>expr
ããªããã£ãã䜿çšããŠå®è¡ã§ããŸããïŒãã®ãããã¢ãã±ãŒã¿ãŒã·ã¹ãã ãå¿
èŠã§ãããäžè²«æ§ãä¿ã€ããã«ãã¬ãžã¹ã¿ãŒã«åºã¥ããã®ã ãã§ãªãããã¹ãŠã®å€æ°ã¿ã€ããå²ãåœãŠãŸãã ã @EvanAadã芳å¯ããããã«ããã§ãã¯ãã¢ã¯ãã£ãã§ãªãå Žåããšã©ãŒãªãã§_e.g._ \tl_set_eq:NN \l_new_tl \l_existing_tl
ãå®è¡ã§ããŸãããããã¯ãµããŒããããŠããåäœã§ã¯ãããŸããïŒããšãã°ããã§ãã¯ã«ãã£ãŠãã©ã°ãç«ãŠãããŸãïŒã
äžç°ãšããŠã expl3
ã¢ãã±ãŒã¿ã決å®ããªãããããšnew
ãšã¯å¯Ÿç
§çã«ååšãããã_would_ãã§ãã¯ã \newcount
ã®ã§ã
\cs_new_protected:Npn \my_foo:
{
\group_begin:
\tl_new:N \l_my_tl
\my_foo:
ãç¹°ãè¿ã䜿çšããããšã_error_ãçºçããŸãã ããã¯ããã¬ãŒã³ã®æåã®æ¥ããæšæºçãªTeXã®æ
£è¡ã§ãã£ãæ¹åã«1ã€ãæŒãé²ããŸãïŒå²ãåœãŠã¯ãã¯ãã®å€ã«è¡ããŸãã ïŒåçŽã«ã \newcount
ã¯\outer
ããããã¯ãå
ã§ã¯ãçŠæ¢ããããŠããããšã«æ³šæããŠãã ãããïŒ
\tl_new:N \l_my_tl
\cs_new_protected:Npn \my_foo:
{
\group_begin:
\tl_clear:N \l_my_tl
äœå¹Žãåã«å°å
¥ãããetex
ããã±ãŒãžã¯ãã¬ãžã¹ã¿ã®ããŒã«ã«ããã³ã°ããŒãã«å²ãåœãŠãå®è¡ã§ããã¬ãžã¹ã¿ã¢ãã±ãŒã¿ã \loccount
_versus_ \globcount
ãªã©ã§ãã ããªãé·ãéã expl3
ã¯etex
ãããŒããã \int_local_new:N
ãªã©ã®æ©èœãæäŸããããã«äœ¿çšãããŠããŸããã ã»ãšãã©ã®TeXããã°ã©ããŒãã°ããŒãã«ãªå²ãåœãŠãè¡ãããšã«æ
£ããŠãããšããäºå®ãèãããšããããããã»ã©åºãåãäžããããªãã£ãããšã¯ããããé©ãã¹ãããšã§ã¯ãããŸããã ããããããŒã ã¯èª€è§£ã®å¯èœæ§ã«ã€ããŠãæžå¿µããŠããŸããã ã®ãããªãã®ã§
\cs_new_protected:Npn \my_foo:
{
\group_begin:
\tl_local_new:N \l_my_tl
\my_foo:
ãžã®ãã¹ããããåŒã³åºãããŸãã¯\l_my_tmp_tl
ãªã©ã®ãåçŽãªãååã䜿çšãããå¯èœæ§ãé«ãå Žæã§äœãèµ·ããããšããåé¡ããããŸãã new
ã«ãã§ãã¯ãå®è¡ãããããšããäžè¬çãªèãã«åºã¥ããšãããã¯ãšã©ãŒã«ãªãã¯ãã§ãã ä»ã®å€ãã®èšèªããæ¥ãŠããããã°ã©ããŒã¯ããããããå¥åŠã ãšæãããããããŸããã ãã¡ãããTeXã®ã¹ã³ãŒãã«ãŒã«ã«é©åããŸãã
ç¹ã«ãè¿å¹Žã®LaTe2eã«ãŒãã«ãžã®å€æŽã¯ã etex
ãããŒãããããªãããšãæå³ããŸãïŒå®éã expl3
ãèªå·±å®çµåãã«ããããã«äžçæžåœåãçµãã§ããŸããïŒã ãããã£ãŠãæ°ããããŒã«ã«ã¢ãã±ãŒã¿ã¯ã expl3
ã䜿çšããŠããªããŠãŒã¶ãŒã®åäœããä¹±ããããšãªãLaTeX2eã§åäœããããã«äœæããå¿
èŠããããŸããå®è¡å¯èœã§ãããå®å
šã«ç°¡åã§ã¯ãããŸããã
\l_my_tmp_tl
ãããªãã®ã®å Žåããã¡ããã°ããŒãã«å²ãåœãŠãè¡ãããšãã§ããŸãããçŸåšã®ã°ã«ãŒãã§ããŒã«ã«ã«å²ãåœãŠãããŠãã\l_...
å€æ°ãšãã°ããŒãã«ã«å²ãåœãŠãããŠãããããŒã«ã«ã«å²ãåœãŠãããŠããå€æ°ãç¥ãå¿
èŠããããŸãã
æå ã«ãããã¹ãããŒã¿ã¯ãããŸããããå€æ°ã®å²ãåœãŠã¯åã«èšå®ãããããæéããããããïŒç¢ºãã«ãã§ãã¯ãã¢ã¯ãã£ãã§ãªãå ŽåïŒãããŒã«ã«ã¢ãã±ãŒã¿ã®äœ¿çšã¯ã°ããŒãã«ã¢ãã±ãŒã¿ãã©ã¹ããããããã«é ããªããŸããããŒã«ã«å²ãåœãŠã
ãããã£ãŠãæè¡çãªçç±ãšãæŽå²ãšã®é©åããæ··åšãããããå³å¯ã«ã°ããŒãã«ãª_å²ãåœãŠ_ã«åºå·ããããšã«ããŸããã ããã¯ãæšå¥šãããéåžžã«åºã䜿çšãããŠããå€æ°ã®ããŒã«ã«å²ãåœãŠã劚ãããã®ã§ã¯ãããŸããã
ããã¯ç§ãã¡ãã瀟äŒçãèŠçŽ ã«é£ããŠè¡ããŸãã è¿å¹Žã®expl3
ã¯ãéšåããåºããå®å®ãããããšã«ãã£ãŠåŒ·åã«æ¯æŽãããŠããŸãã ãã段éã§ãããŒã ã¯ç©äºã«ã€ããŠæ±ºå®ãäžããªããã°ãªããŸãããããã¯ãäžéšã¯äººã
ãããã䜿çšã§ããããã«ããããã§ãããäžéšã¯ä»ã®ã¿ã¹ã¯ã«é²ãããã§ãã ããã¯ç§ãã¡ãç©äºãåèããããšã劚ãããã®ã§ã¯ãããŸãããããã確ç«ãããæ
£ç¿ã¯å€æŽãããæ£åœãªçç±ãå¿
èŠãšããŸãã
ããã§ãçŸæç¹ã§ã¯ãã®ãéåžžã®ãã¢ãããŒãã®äœãåé¡ã«ãªã£ãŠããã®ãããããŸããã
\tl_new:N \l_my_tl
\cs_new_protected:Npn \my_foo:
{
\group_begin:
\tl_clear:N \l_my_tl
å°ãªããšããæ»ã£ãŠçŸåšã®èšå®ãå€æŽããå¿ èŠããããšãããŸã§ã
@bleflochã¯ãã ã«å¯Ÿããç§ã®åå¿ãäžåçã§ãã£ãããšã«åæãã圌ãšä»ã®çããã«è¬çœªããŸãã ç§ã¯è§£éãããŠæ²é»ããŠãããšæãããããŠç§ã¯ã¿ã³ãã©ã ã«åå¿ããŸããã ããã¯åãå ¥ããããã ç³ãèš³ãããŸããã
@josephwright詳现ãªè¿ä¿¡ããããšãããããŸãã åé¡ãèããåŸã \<module>_clear_new:N
ã®ã¿ã䜿çšãããšã \<module>_set...
ã䜿çšããŠå²ãåœãŠãéããå®éã«ã¯ãã¹ãŠã®å€æ°ãåšå²ã®ã°ã«ãŒãã«å¯ŸããŠããŒã«ã«ã§ãããã®ããã«åäœããããšã«æ°ä»ããŸããã \<module>_gset...
\<module>_set...
ã§ã¯ãªã\<module>_gset...
ã ããã«ããã®æ¹æ³ã¯ã䜿çšåã«å€æ°ã宣èšãããšããLaTeX3ã®èŠåã«æºæ ããŠãããšæãã®ã§ããã§ãã¯ããªã³ã«ãªã£ãŠããå Žåã¯ãã©ã°ãç«ãŠãããŸããã
ãã®ç·Žç¿ã«ç¶ããŠã @ josephwrightã®æåŸã®äŸã次ã®ããã«æžãçŽããŸãã
\cs_new_protected:Npn \my_foo:
{
\group_begin:
\tl_clear_new:N \l_my_tl
ãã®ã¹ããŒãã«é©åããªãå¯äžã®ããŒã¿åã¯cs
ã§ãããç§ãç¥ãéãã \cs_set:Npn
ã䜿çšããŠãã®åã®å€æ°ãäœæããããšã¯åæ³ã§ãã LaTeX3ã¯å®éã«ã¯cs
ãä»ã®ããŒã¿åãšåçã®éåžžã®ããŒã¿åãšããŠæ±ã£ãŠããªããããæåã«å®£èšããããšã¯ãããŸããïŒããã¯å¥ã®åé¡ã§ãããçãããšäžç·ã«åãäžããããšæããŸãããæ®ããŠãããŸãå¥ã®ã¹ã¬ããã«ïŒã ãã®ã¢ãããŒãã䜿çšãããšã cs
å€æ°ãããŒã«ã«ã§äœæã§ããŸãã æ§æã®äžè²«æ§ãä¿ã¡ããå Žåã¯ããã€ã§ãç¬èªã®\cs_clear_new:N
ã©ãããŒãäœæã§ããŸãã
ãããã£ãŠãç§ã«é¢ããéããå¿ èŠã«å¿ããŠãã®åé¡ãéããããšãã§ããŸãã @ wspr ã
@EvanAad \<thing>_clear_new:N
ã§ãå€æ°ããŸã ååšããªã宣èš_is_globalã«æ³šæããŠãã ããã ãã
\cs_new_protected:Npn \my_foo:
{
\group_begin:
\tl_clear_new:N \l_my_tl
\group_end:
}
\my_foo:
\tl_show:N \l_my_tl
以åã«ä»ã®å€ã«èšå®ããŠããªããšä»®å®ãããšã \l_my_tl
ãå®çŸ©ãããŠç©ºã§ããããšã衚瀺ãããŸãã
ãã®è°è«ãããè¯ãããã¥ã¡ã³ãã«ã€ãªããããšãé¡ã£ãŠã @ bleflochã«åå ããããšæããŸãã ç¹ã«ãå ã®æçš¿ã§åŒçšããæç« ã®ããã«ãããã°ã©ããŒãç¹å®ã®ã³ãŒãã£ã³ã°ãã¿ãŒã³ã«ãåŸããªããã°ãªããªãããšæžããšããããã¥ã¡ã³ãã¯ãã®ãããªããã°ãªããªããã®æå³ã説æããå¿ èŠããããšæããŸãã ãã¿ãŒã³ãå®ãããŠããªãå Žåã¯ã©ããªããŸããïŒ
5ã®äŸãšããŠãé¢æ°åã®æ«å°Ÿã«åŒæ°æå®ãè¿œå ããèŠåãåãäžããŸãã ç§ã®ç¥ãéãããã®èŠåã«åŸããªããšæ£ããæ©èœããªãé¢æ°ã¯\cs_new:Nn
ã ãã§ããã ` cs_ newïŒNpn 'ãå«ãæ®ãã®
6ã®äŸãšããŠãããŒã«ã«å€æ°ãšã°ããŒãã«å€æ°ã\g_...
ãš\l_...
ã§ããŒã¯ããèŠåãåãäžããŸãã ç§ã®ç¥ãéãããã®æ
£ç¿ã«åŸããªãã£ãå Žåã®åœ±é¿ã¯ãŸã£ãããããŸããã ãã¹ãŠãæ£ããåäœããŸãã
@EvanAad âè¬çœªãåãå ¥ããŸãããè°è«ãå®äºããåã«åé¡ã解決ããŠç³ãèš³ãããŸããã
@josephwright âç§ãæžããå ŽåãããŒã«ã«å²ãåœãŠãžã®å©ç¹ã®1ã€ã®å°ããªå©ç¹ãšããŠ
\cs_new_protected:Npn \my_foo:
{
\group_begin:
\tl_new_local:N \l_my_tl
...
次ã«ã \l_my_tl
ã¯å€éšããã®å¹²æžããªãã ãã§ãªãã _clear
é¢æ°ã䜿çšããå Žåãšã¯ç°ãªããå€æ°ã®ãã¹ãŠã®ãã¬ãŒã¹ãé¢æ°ã®äœ¿çšå€ã«ããããšãç¥ã£ãŠããŸãã èšãæããã°ãã³ãŒããèŠãã ãã§ã¯ãå°æ¥çã«ã¯ã»ãã°ããŒãã«å€æ°ãšããŠäœ¿çšã§ããªãããšãããããŸãã ïŒãããŠã \tl_if_exist_p:N
ã䜿çšããŠãäœãå¥åŠãªããšãèµ·ãã£ãŠããªãããšã確èªã§ããŸããïŒ
ïŒå®è¡ããå¿ èŠããããŸãããããã«è°è«ããå¿ èŠãããå Žåã¯åŸã§ç¶è¡ã§ããŸããïŒ
@wsprã¯ãããããããã¯TeXã°ã«ãŒãã¹ã³ãŒãã«åºã¥ããŠãããšããäºå®ã«æ»ã£ãŠããŸãã ãããã£ãŠã次ã®åœ¢åŒã®æ§æã§ãåã°ããŒãã«ã«ã䜿çšã§ããŸãã
\cs_new_protected:Npn \my_foo:
{
\group_begin:
\tl_new_local:N \l_my_tl
\tl_set:Nn \l_my_tl { foo }
\__my_foo:
..
}
\cs_new_protected:Npn \__my_foo:
{
\group_begin:
\tl_use:N \l_my_foo % Definition from \my_foo: => "foo"
...
}
ããã¯å°ãªããšãç§ãã¡ã®èãã®äžéšã§ããã
ãããé¢ããåã«ãæè¡ã¬ãã«ã§ã¯ãããŒã«ã«ã¬ãžã¹ã¿ã¢ãã±ãŒã¿ãèšå®ããæ¹æ³ãããã€ãããããšã匷調ããããšæããŸãã
@josephwright âçŽããããäŸãšããŠãããèŠãããšããããŸããã ããšãã°ãMatlabã§ã¯ãã¹ã³ãŒããå
±æããªããµãé¢æ°ãšãã¹ã³ãŒããå
±æãããã¹ãããããµãé¢æ°ãåºå¥ããŸãã ã ããç§ã®æèã«åžžã«ãããããªãã§ãããã§ã¯ãªãããŠãããªãã \__my_foo:
ãå€åŽãé¢æ°ã®ã¹ã³ãŒããç¶æ¿ïŒ ããã¯ãTeXã®ã°ã«ãŒãååäœãšå®å
šã«äžèŽããŠããŸãã
ïŒè°è«ãç¶ããŠç³ãèš³ãããŸãããé·ãäžæ¥ã§ãããå®éã«ç¶ããããšã«èå³ããã人ã¯ããŸããïŒïŒ
åå19.10.2017um 09:23ã·ã¥ãªãŒããžã§ã»ãã©ã€ãïŒ
ãããé¢ããåã«ãç§ã¯ããã匷調ããããšæããŸã
æè¡ã¬ãã«ããŒã«ã«ã¬ãžã¹ã¿ãèšå®ããæ¹æ³ã¯ããã€ããããŸã
ã¢ãã±ãŒã¿ã
ã¯ãããããTuringã®è°è«ã«ããªãè¿ããã€ãŸããã®ãããªå®è£
åºç€ãšãªããšã³ãžã³ãåå ã§ãå®è¡æã«éåžžã«éå¹çã«ãªããŸã
ã¬ãžã¹ã¿ã¹ãã¬ãŒãžãã°ããŒãã«ã«ç®¡çããŠããŸãã ãããŠexpl3ïŒãã®ã¬ãã«ã§ïŒ
ãåççã«å¹ççã§ããç¶ããã¹ãã§ãã
ããã¯ãããšãã°ãã°ããŒãã«å€æ°ãšããŒã«ã«å€æ°ãããã³ãããã®ãã¥ãŒããŒã¿ãŒã®ãããªãã®ã§ãã ããããã
åé¢æ°ã§ã°ããŒãã«æäœãå®è¡ããŠãããã©ããããã¹ãããããã
ããŒã«ã«å€æ°ãæŠå¿µã¯ããã©ã«ãã§ååã«ã®ã¿ååšããŸãã
äŸïŒ\ l _...ã¯ããŒã«ã«å€æ°ã§ãããšæ³å®ãããŠããããã䜿çšããªãã§ãã ãã
..._ gset ïŒNnã®ãããªã°ããŒãã«é¢æ°ã䜿çšããŸããã
ã©ã³ã¿ã€ã
ãã ãããã§ãã¯ã¢ãžã¥ãŒã«ïŒå®è¡é床ãäœåãé
ãïŒãæäŸããŠããŸã
ããã«ãããããããã¹ãŠã®èŠåãå®éã«å®ãããŠããããšã確èªãããŸãã
ãããã£ãŠãã°ããŒãã«/ããŒã«ã«å€æ°ã«æ»ãã«ã¯
expl3ã®æšæºçãªæŠå¿µã¯æ¬¡ã®ãšããã§ãã
å€æ°ã®ååãäžåºŠïŒã°ããŒãã«ã«ïŒå®£èšããŸã-å€ãã®çç±ã¯
äžéšã®ã¿ã€ãã«ã¯ã°ããŒãã«æ£çªã®ã¿ããããŸã
åœåèŠå\ l_ \ g_ã䜿çšããŠãããŒã«ã«å€æ°ãšã°ããŒãã«å€æ°ã瀺ããŸã
ããã¯ããªãã«ã°ããŒãã«ãšããŒã«ã«ã®äž¡æ¹ãäžããŸããã
ã¹ã³ãŒãã®å
é ã§ããŒã«ã«å€æ°ã宣èšããªãã§ãã ããã
代ããã«ããã®æç¹ã§_setãŸãã¯_clear_newã䜿çšããåŸè
ã䜿çšããŸã
å€æ°ã®ååããã®æç¹ã§ã°ããŒãã«ã«æ¥ãå¯èœæ§ãããããšãæå³ããå ŽåããããŸã
ååšãã
ã¹ã³ãŒãå€ã§ã¯ãå€æ°ã¯ããã©ã«ãã®ãŸãŸååšããŸã
åã®å€ïŒããšãã°ã_intã0ãªã©ïŒãªã®ã§ãã³ã³ãã€ã©ã¯ååŸã§ããŸãã
ãã®ãããªå€æ°ãæå³ããç¯å²å€ã§ã誀ã£ãŠãåç
§ãããšãšã©ãŒãçºçããŸã
ç¯å²
ã ããåºæ¬çã«ããªããåŸãããªãå¯äžã®ããšã¯å®£èšããããšãã§ããããšã§ã
ãã®ååãã¹ã³ãŒãå€ã«æ¶ããããã«ïŒãããŠçæããããã«ïŒããŒã«ã«å€æ°
å€éšããåç
§ãããå Žåãå®è¡æã«äœããã®æªå®çŸ©ã®ãšã©ãŒ
宣èšãããã¹ã³ãŒãïŒã
ãããè¡ãã«ã¯ïŒã¯ãå¯èœã§ãïŒãexpl3ã¯ããèªäœãç¶æããå¿
èŠããããŸã
ååãšã°ããŒãã«ã®éã®åçŽãªé¢é£ä»ããã¯ããã«è¶
ãããªãœãŒã¹ããŒã«
ãšã³ãžã³ã«ãã£ãŠæäŸãããããŒã«ãããã¯ãã¹ãŠã®ã¢ã¯ã»ã¹ã
éåžžã«èããé
ããªããŸãã-ããã¯expl3ã®èšèšåºæºã«åããŸãã
@FrankMittelbach âä»ããªãã¯ç§ã«èå³ããããŸãã ã¬ãžã¹ã¿ãŒã«å¯Ÿããetex.styã¢ãããŒãã¯æ¬åœã«éå¹ççã§ããïŒ ãŸãã¯å€åããªãã¯tlå€æ°ãæå³ããŸãããã®å Žåç§ã¯åæããŸãïŒ
@FrankMittelbachç§ã®æèŠã§ã¯ãLaTeX3ããŒã ã«ãããã¹ããã©ã¯ãã£ã¹ãšãLaTeX3èšèªã®ã«ãŒã«ã®ææ³çãŸãã¯æå³çãªæ£åŒãªèŠä»¶ãåºå¥ããããã¥ã¡ã³ãã§æ確ã«ããããšãéèŠã§ãã
ããªããåŒçšãã2ã€ã®ã«ãŒã«ãããªãã¡ïŒ
\l_
\g_
ã䜿çšããŠãããŒã«ã«å€æ°ãšã°ããŒãã«å€æ°ã瀺ããŸãLaTeX3ããŒã ãæšå¥šãããšèŠãªããã®ã³ãŒãã£ã³ã°èŠåã®ã«ãŒããªãã¯ã«è©²åœããŸãããã©ã¡ããèšèªã®ææ³èŠåã«ãã£ãŠçŸ©åä»ããããŠãããããããã®èŠåã«åŸããªããŠããšã©ãŒãæ©èœã®æ倱ã¯çºçããŸããã
èšãæããã°ããããã®ã«ãŒã«ã«åŸãããšã¯å人ã®å¥œã¿ãšã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ã®åé¡ã§ãããããã¯ç§ã®æèŠã§ã¯ããã¥ã¡ã³ãã§æ確ã«ãããã¹ãã§ãã
ããã¯ã50mhã®æšèã¯èŠåã§ã¯ãªããé転ã§ãããšèšã£ãŠãããããªãã®ã§ãã
æ
£ç¿ã§ããããã©ã€ããŒãããã«åºå·ãããã©ããã¯å¥œã¿ã®åé¡ã§ãïŒã¡ããã©
ã»ãšãã©ã®å Žåãããã«ã¯ãã§ãã¯ãããªãããïŒ
_gsetã§\ l_å€æ°ã䜿çšããå Žåã§ããTeXã§ããã°ã©ã ããŸãã
expl3ã®ææ³èŠåã«åŸãã®ããããŸãã
èšèªã ããã¯ããã«ããªãã®ã³ãŒããå£ããŸããïŒ ããããããã§ã¯ãããŸããããããªãã¯
savestackãã«ãã¢ãããçæããŸãïŒTeXbookã€ã³ããã¯ã¹ãåç
§ïŒ
ã§ãã§ãã¯ããŠããã®ã¯ææ³çãªã«ãŒã«ã«éããªããšèšã£ãŠããã®ã§ãã
å®è¡æãããšãã°æ¯é±ç«ææ¥ïŒ
@FrankMittelbach確ãã«ãããªãã¯ããããå®çŸ©ã«ãã£ãŠããã§ãããããããã§ãã¯ãããããšã¯ãããŸããã®ã§ãç§ã®ãã€ã³ãã¯ãããã¯èšèªã®ã«ãŒã«ã®äžéšãšããŠå®çŸ©ãããã¹ãã§ãªãããšã§ããããããããã¯èšèªã®èŠåã®äžéšã§ããããšãå®çŸ©ããå Žåãšããã®èŠåã«åŸããªããŠããããèªäœã§ãšã©ãŒãæ©èœã®æ倱ãçºçããããšã¯ãããŸããã
ãè±èªãæžããšãã¯ãã€ã³ã¯ãã«ããã®ãé²ãããããã³ãå³æã«æã€ã®ãæåã§ãããšèšãã®ã¯éããŸãã ãããŠãè±èªã¯å³æã«æã£ããã³ã§æžãããªããã°ãªããªããšããæ³åŸãå¯æ±ºããŸããã 確ãã«ãããªãã¯ãã®ãããªæ³åŸãã§ãããããæ£åœåãã確ããªè«ççæ ¹æ ããããŸãããæçµçã«ã¯ãã³ãæ¡ãæã¯åã ã®äœå®¶ã«ä»»ãããã¹ãã§ãã ãããŠããã®ã«ãŒã«ã«åŸããªãããšãéžæããããã§ããããé å®ãã人ã ãšåãããã«ãã¡ããšæžãããšã«ãªã人ã ãããã§ãããã
@FrankMittelbachã¯ãããŒã«ã«å®£èšã®ãªãŒããŒããããèªåŒµããŠãããšæããŸãïŒ \loccount
ã¯ããŒã«ã«ã§ã«ãŠã³ãã管çããã°ããŒãã«ã§ã¯äœãè¡ããªãããããªãŒããŒããããæ£åžžã«ä¿ã¡ãŸãïŒã
\int_zero_new:N
ãš\tl_clear_new:N
ã«éåžžã«é¡äŒŒãã\int_local:N
ãš\tl_local:N
ïŒ= \tl_set_eq:NN #1 \c_empty_tl
ïŒãªã©ãæäŸããããšã«å€§ããªåé¡ã¯èŠãããŸãããããããããŒã«ã«ã§ãæ°ãããããšãããã ãã§ãã ããã«ã¯ã¬ãžã¹ã¿ãŒã«å°ãã®äœæ¥ãå¿
èŠã§ãããé床ã«äœæ¥ããå¿
èŠã¯ãããŸããã
@EvanAadå€æ°ã宣èšããªããšãããæç¹ã§åã¿ä»ãå¯èœæ§ãããããšãç¥ã£ãŠããå¿ èŠããããŸãïŒèŠåïŒãã®ã³ãŒãã¯ç¡éã«å€ãã®ããŒãžãçæããŸãïŒã
\documentclass{article}
\usepackage{expl3}
\begin{document}
\ExplSyntaxOn
\tl_put_left:cn { l_my_tl } { foobar \par }
\l_my_tl
\end{document}
@bleflochç§ãèšã£ãŠããã®ã¯ããã¯ãå
ã§å€æ°ã宣èšããããšã¯ãŸã£ããåé¡ãããŸããïŒ \<module>_clear_new
ïŒã \l_amount_paid_int
ãšããååãä»ããå¿
èŠã¯ãªããåã«åŒã³åºãããšãã§ããŸããä»ã®ããã°ã©ãã³ã°èšèªãšåãããã«ã \amount_paid
ãŸãã¯\amountPaid
ã§ãã \l_..._int
ã¯ãæŽæ°ã§ãããããŒã«ã«ã§äœ¿çšãããããšã«ãªã£ãŠããããšãæãåºãããããã®åªããããŒã¢ããã¯ã§ããããããä»ã®ããŒã¢ããã¯ã䜿çšããããã«åŒ·å¶ãããã¹ãã§ã¯ãããŸããã
ããã¯æ±ºããŠãã§ãã¯ãããªãã®ã§ããããŠãã®æ £ç¿ã«åŸããªãã®ã§
ããèªäœããšã©ãŒãæ©èœã®åªå€±ãåŒãèµ·ããããšã¯ãããŸããã
ã§ãããããã€ã³ãã§ã
aïŒç¶æ³ã«ãã£ãŠã¯å®³ãåãŒããŸã-ã€ãŸããæ··ãããšã
åãå€æ°ãžã®ã°ããŒãã«ããã³ããŒã«ã«ã®å²ãåœãŠ
bïŒãªã¯ãšã¹ãã«å¿ããŠãã§ãã¯ããŸãïŒãããŠä»ã®ãšãããã³ãŒãã¯ããã§ã¯ãªããããããŸãã
æ©èœçã§ãããaïŒïŒã®ããã«ãæçµçã«ã¯åã³æ©èœããããã«ãªããŸãã
psã¯ãç§ã¯ãã³ã®æã¡æ¹ïŒå·Šå©ãïŒã«ã€ããŠããªãã®æèŠãèããŸããããŠã¯ãç§ã¯
ïŒç§ã®ãã€ã¯ã§ã¯ïŒå¶éé床ãè¶
ããŠããŸãããããã§ãç§ã¯ããã
亀éèŠåã¯äº€éæ
£ç¿ã§ã¯ãªããããã§ããããã«åŸããªãããšãã§ããŸã
害ã¯ãããŸããããããã§æ»ã¬ããå°ãªããšã眰éãç§ããããå¯èœæ§ããããŸã
ïŒç§ã®åã®ã³ãŒãäŸãææããŠããã®ã¯ãtlã®å Žåã§ãã䜿çšåã«å®£èšããããšãäžå¯æ¬ ã§ãããšããããšã§ãã宣èšããã¹ããããã§ãã¯ãªãã·ã§ã³ããããŸãããéåžžã®äœ¿çšã§ã¯ãã®ãããªãªãŒããŒãããã¯å¿ èŠãããŸãããïŒ
ååã¯åãªãæ £äŸã§ãããšãã
'conventions'ã§ã¯ã \amountPaid
ã¯ããã¥ã¡ã³ãã³ãã³ãã§ããã \l_amount_paid_int
ã¯ããã§ã¯ãªããåŸè
ã¯amount
åå空éã®äžéšã§ãïŒæ
£äŸã«ãããTeXã§ã¯ããªãéèŠãªãã®ã§ãïŒ ïŒã ããã¯\l_
/ \g_
ã«ã¯åœãŠã¯ãŸããŸããããå€ãã®èšèªã§ã¯ãæè¡ã¬ãã«ã§åŒ·å¶ãããããšãªããåœåã«åŒ·ããèµåããããããšæããŸãã
2017幎10æ19æ¥ã«ã16ïŒ58ã§ããžã§ã»ãã»ã©ã€ãã®[email protected]ã¯æžããŸããïŒ
'conventions'ã§ã¯ãamountPaidã¯ããã¥ã¡ã³ãã³ãã³ãã§ããã\ l_amount_paid_intã¯ããã§ã¯ãªããåŸè ã¯amountåå空éã®äžéšã§ãïŒæ £äŸã«ãããTeXã§ã¯éåžžã«éèŠã§ãïŒã ããã¯\ l _ / \ g_ã«ã¯åœãŠã¯ãŸããŸããããå€ãã®èšèªã§ã¯ãæè¡ã¬ãã«ã§åŒ·å¶ãããããšãªããåœåã«åŒ·ããèµåããããããšæããŸãã
LaTeX2eããã°ã©ãã³ã°ã®ææªã®æªå€¢ã¯ãã³ãã³ãã®å®çŸ©ã§ãã
ããŠãŒã¶ãŒã¬ãã«ã®ã¹ããŒã¹ããããšãã°\ fooã§ãè¡çªããããšãçºèŠããŸã
ã³ãã³ãã䜿çšããŠã_internal_ã§äœ¿çšããããã«å®çŸ©ãããå¥ã®ããã±ãŒãžïŒ
ããã¥ã¢ã«ã«ã¯èšèŒãããŠããŸããïŒã
ããã¯æ¬åœã«èµ·ãããŸãããïŒ ã¯ããäžåºŠã ãã§ã¯ãããŸããã ã«ãã ãã
\
ãã®ãããªåé¡ã
ãã¡ãããããŠãŒã¶ãŒã¬ãã«ã®ã¹ããŒã¹ãã§ã®è¡çªãçºçããå¯èœæ§ããããŸãã
ãããããããã¯èŠã€ããŠè§£æ±ºããã®ãã¯ããã«ç°¡åã§ãã ããã«ãªããš
å
éšã§ã¯ãéåžžã«æ¡åŒµã远跡ããå¿
èŠãããããšããããããŸã
æ·±ãã¬ãã«ã
è°å¡ãšã¯ç°ãªãã眰éãæ²åœ¹ãç§ãããšã¯ã§ããŸããã
LaTeX3ããã°ã©ãã³ã°ã®æ³åãé å®ããŠããªã人ã ããããç§ãã¡ã¯
ã³ãã¥ããã£ãšèª°ãããã¹ãã§ãã
åœåèŠåã«é¢ããã¬ã€ãã©ã€ã³ã¯ã決ããŠèŠã€ããããªãã®ã«åœ¹ç«ã€ã¯ãã§ã
ä»ã®äººãšè¡çªããããã±ãŒãžã®å
éšã³ãã³ãã
å人ã³ãŒãã®å Žåãèªåãããããããšãäœã§ãããæš©å©ããããŸãã
ç§æ財ç£ã§ã®ã¹ããŒãéåãçŠæ¢ããæ³åŸã¯ãããŸãããã
å
¬éã§ãããããããšã«ã€ããŠã®1ã€ããããŸãã
ä»»æã®ã¿ã€ãã®å€æ°\ fãããŒã«ã«ã§å®çŸ©ããå Žåã¯ã
ã³ãã³ããäžéšã®äººã«ãã£ãŠå®çŸ©ãããŠããããšãå¿é
ããå¿
èŠããããŸã
ããã±ãŒãžãšãããŒãã£ãŒã®æ³åã«ãããåŒæ°ã§æ£ç¢ºã«çµäºããŸã
å€æ°\ fã䜿çšããé¢æ°ã«ã ãã£ãšæªãããšãæ³åã§ããŸãã
ã·ããªãªïŒ
ãã£ãª
ãšã³ãªã³
\ l_amount_paid_intãšããååãä»ããå¿ èŠã¯ãããŸãããä»ã®ããã°ã©ãã³ã°èšèªã®å Žåãšåãããã«ãåã«amount_paidãšåŒã¶ããšãã§ããŸãã \ l _...ã¯ãããŒã«ã«ã§äœ¿çšãããããšã«ãªã£ãŠããããšãæãåºãããããã®åªããããŒã¢ããã¯ã§ããããããä»ã®ããŒã¢ããã¯ã䜿çšããå¿ èŠã¯ãããŸããã
ãã¡ããã md5-fc693aa157832059d7daeeb61c55 cddbïŒpaidãŸãã¯amountïŒpaidïŒåè«ã§ã¯ãããŸãããïŒã䜿çšããããã±ãŒãžãç¥ã£ãŠããŸãïŒãŸãã¯ã奜ã¿ã®ãã®ã䜿çšããããšãã§ããŸãã ããããååãåãªãæ £äŸã§ãã£ãŠãã人ã ããã®ãããªæ £ç¿ã«åºå·ããã°ãã³ãã¥ãã±ãŒã·ã§ã³ã容æã«ãªããŸãã ããªãã¯tex.sxã§ããªãå€ãã®è³ªåãããŠããŸãã ãããŒãœãã«ã¹ã¿ã€ã«ãã§èšè¿°ãããã³ãŒãã«åé¡ãããå Žåã¯ã©ãããŸããïŒ ãããæšæºã¹ã¿ã€ã«ã«ç¿»èš³ãã質åãããŠããããå ã«æ»ããŸããïŒ ãããšãã誰ããããªãã®å人çãªã¹ã¿ã€ã«ãåŠçã§ããããšãæåŸ ããŠããŸããïŒ
@ eg9
å人ã³ãŒãã®å Žåãèªåãããããããšã¯äœã§ãããæš©å©ããããŸã
ããã¥ã¡ã³ããèªãã§ãããã¯ããããŸããããç§ãèšã£ãŠããã®ã¯ããã ãã§ãã
ããããã¿ã€ãã®å€æ°
\f
ãããŒã«ã«ã§å®çŸ©ããå Žåã¯ãã³ãã³ããããã±ãŒãžã«ãã£ãŠå®çŸ©ãããŠããããšãå¿é ããå¿ èŠããããŸãã
åæããŸããã ã³ãŒãã\group_begin: ... \group_end:
ã«ããããã¹ãŠã®ããŒã«ã«å€æ°ã\<module>_clear_new:N
ã§å®çŸ©ããããŒã«ã«å€æ°ã«ã®ã¿\<module>_set:N...
å²ãåœãŠãå Žåã¯ãå¿é
ããå¿
èŠã¯ãããŸãããã³ãŒãã§å¥ã®ããã±ãŒãžã䜿çšããªãéããããŒã«ã«å€æ°ã®ååãä»ã®ããã±ãŒãžãšè¡çªããŸãã
@ u-fischer
ããããååãåãªãæ £äŸã§ãã£ãŠãã人ã ããã®ãããªæ £ç¿ã«åºå·ããã°ãã³ãã¥ãã±ãŒã·ã§ã³ã容æã«ãªããŸãã
æ £ç¿ã«åºå·ããæ£åœãªçç±ããªããšèšã£ãŠããã®ã§ã¯ãããŸããã ç§ãèšã£ãŠããã®ã¯ããããã®èŠåãèšèªèŠåã«ããã¹ãã§ã¯ãªããææžã¯ãçè«çæ ¹æ ãè¿°ã¹ãå¿ èŠãããèŠåãšèŠåãæ確ã«åºå¥ããå¿ èŠããããšããããšã§ãã ãããŠãèŠåã«åŸããã©ããã®éžæã¯ãæçµçã«ã¯ããã°ã©ããŒã«å§ããããã¹ãã§ãã
@EvanAadããªãã説æããå Žåã§ããååã®è¡çªã«ã€ããŠå¿é ããå¿ èŠããããŸãã ããªããæžããšèšã
\cs_new_protected:Npn \evanaad_halve:n #1
{
\group_begin:
\int_zero_new:N \f
\int_set:Nn \f { (#1) / 2 }
\iow_term:x { \int_use:N \f }
\group_end:
}
次ã«ãããã±ãŒãžã®ãŠãŒã¶ãŒã¯
\int_const:Nn \f {123}
\evenaad_halve:n { \f }
圌ãã¯62ã§ã¯ãªã0ãèŠãŠé©ãããããšã§ãããã
äžæ¹ã \evanaad_f
ãªã©ã®ååïŒãŸãã¯l3docstrip
ããžãã¯ã䜿çšããçã\@@_f
ãªã©ïŒã䜿çšããå Žåã¯å®å
šã§ãã
ããã¥ã¡ã³ããèªãã§ãããã¯ããããŸããããç§ãèšã£ãŠããã®ã¯ããã ãã§ãã
ç³ãèš³ãããŸããããexpl3.pdfã§ã¯ãã³ã³ãã³ã·ã§ã³ããšããèšèãçŽ20å䜿çšãããŠããŸãã publicã³ãã³ããšprivateã³ãã³ãã®å Žåããæ·±å»ãªèšç®ãªãŒããŒããããªãã«ããã匷å¶ããæ¹æ³ã¯ïŒã»ãšãã©ïŒãªãã®ã§ãåœåèŠåã«ãã£ãŠã®ã¿å®è£ ããŸãããšããæãããããŸãã
@bleflochè¯ãç¹ã
@ u-fischer OKããŸããŸãã é¢æ°ã®ååã¯åŒæ°æå®åã§çµããå¿
èŠããããšããèŠåã¯ã©ãã§ããïŒ ã»ã¯ã·ã§ã³3.3ã®é¢æ°ã¯åŒæ°æå®åãæ€æ»ãããããããã¯å®å
šã«æ
£äŸã§ã¯ãããŸãããããããã®é¢æ°ã¯åãªããã·ã³ã¿ãã¯ã¹ã·ã¥ã¬ãŒãã§ããã䜿çšããªãå Žåã¯ã \mymodule_myfunc
ãããªé¢æ°åã䜿çšããŠãåé¡ã¯ãããŸããã ãããããããªãã¯ãããããã¥ã¢ã«ããã¯ç¥ããªãã§ãããã
2017幎10æ19æ¥ã«ã¯ãåå17æ52åã§ãEvanAad [email protected]æžããŸããïŒ
@ u-fischer OKããŸããŸãã é¢æ°ã®ååã¯åŒæ°æå®åã§çµããå¿ èŠããããšããèŠåã¯ã©ãã§ããïŒ ã»ã¯ã·ã§ã³3.3ã®é¢æ°ã¯åŒæ°æå®åãæ€æ»ãããããããã¯å®å šã«æ £äŸã§ã¯ãããŸãããããããã®é¢æ°ã¯åãªããã·ã³ã¿ãã¯ã¹ã·ã¥ã¬ãŒãã§ããã䜿çšããªãå Žåã¯ã\ mymodule_myfuncãªã©ã®é¢æ°åã䜿çšããŠãåé¡ã¯ãããŸããã
ãã¡ãããããã¯cs_generate_variant ïŒNnã«å¿ èŠã§ãã
ãã£ãª
ãšã³ãªã³
\mymodule_myfunc
ã䜿çšãããšãããã®é¢æ°ã䜿çšã§ããªããªããŸãã
l3expan
ã ãããã®æ¡åŒµé¢æ°ãããã³ããªã¢ã³ãã®æŠå¿µã¯ã
expl3ã®ã³ã¢éšåã
å€æ°åãçãããïŒåé€ããïŒããšãã§ããããšã«åæããŸãã
"l _" / "g_"ããã³ "_int" / ...ïŒãé¢æ°ã®ã·ã°ããã£ã¯å®éã«ã¯ãåãªã
倧äŒ"ã
@bleflochç§ã¯ããªãã®ç解ããŠãããããã¯è¯ãããšã§ãããããã§ããç§ã®æèŠã§ã¯ãããã¥ã¡ã³ãã³ãã³ããæžãããšã ããå¿ èŠãªå Žåã¯ã次ã®ãããªé¢æ°ãå®çŸ©ããããšã§ãããã§ããããšãç¥ã£ãŠããå¿ èŠããããŸãã
\ExplSyntaxOn
\cs_new:Npn \MyDocumentCommand {Hello,~world!}
\ExplSyntaxOff
æåã«ãã·ã£ããŠãé¢æ°\mymodule_my_document_command:
å®çŸ©ããŠããããããã³ããŒããå¿
èŠã¯ãããŸããã
\cs_new_eq:NN \MyDocumentCommand \mymodule_my_document_command:
@bleflochã¡ãªã¿ã«ã @ eg9ãèšåãã\cs_generate_variant:Nn
ã»ãã«ã l3expan
ã¢ãžã¥ãŒã«ã®ä»ã®é¢æ°ã¯é¢æ°åã®åŒæ°æå®åéšåãå©çšããŸããïŒ
ä»ã§ã¯ãããªãã¯è°è«ã®ããã«äž»ã«è°è«ããŠããããã«ç§ã«ã¯èãããŸã
ã¯ããããªãã¯ããããã¹ãŠè¡ãããšãã§ããäžæ¥ã®çµãããŸã§ã«å¯äžã®é£ããèšèª
ã«ãŒã«ã¯ãTeXãšã³ãžã³ãããªããã£ãã«é
ç·ãããã®ã§ãã ãããŠäžãããã
TeXã¯ãåºæ¬çã«ã©ãããã§ã移åã§ããèªå·±å€æŽèšèªã§ãã
ããã«äŸãã°
\ endlinechar-1 \ defãïŒ1 {\ catcode`ïŒ113} ãQãSãUã_ãVãWãJãKãLãMãNãOã @ ãXãYã [ã] ãïŒ
ã|ãïŒ ãZã'ã "ããhãzãïŒãqãjãkã;ã/ãïŒãïŒããã$ã+ \ let_ \ let_ãnewcountã $$-1ãQ ãJãVãSãã '' 1ã "" 2ã * 1 _ïŒ\ countïŒ144 'ïŒ155'ïŒ145 "ïŒ154" _ [\ ifnum _ïŒ\ ifcase_O \ or
_ | \ else _] \ fi_N \ number _ @ \ Advance_X \ expandafter_Z \ global_Y \ typeout_ãnewif
ã\ ifGã \ if_ã \ defãj {[0 Q [0
Jk | $] | $] | $] | $]} ãk {ïŒ1NQNJ}ã\ 2ïŒ1ïŒ2 {}ãïŒïŒ1 {
ã/ {Y {è¡ãšåïŒ äŸïŒE6} \ read $ toM \ ifcatãX \ 2Mã $$ X \ jM |ïŒinputïŒ]}ãïŒïŒ1ïŒ{
Y {ç¡å¹ãªïŒ1ã} /}ã\ jïŒ1ïŒ2 {Q #1@Q-
@J #2@J-
0;ïŒVïŒmoveïŒ]}ã; {V0ïŒjS1z1z0z {$} NS
0z1z {$} S $ z1z0z {$}]} ã_ {@ã\ ifodd '-]} ãzïŒ1 {{\ trueKïŒ1 {\ falseq}}} ãq {@ QS @ JK [j = "
\ ifZk'Z_2] @ V1q | [j = 'ZVV \ ifG \ if | \ aftergroupq]]]]}ã\ãïŒ1 {QïŒ1ïŒã}ããïŒ1 {JïŒ1; [0
ã^^ Jh1Ah2Bh3Ch4Dh5Eh6Fh7Gh8HïŒã^^ J} \ GfalseWïŒW $ | 0]ãïŒ\ã\ Gtrue [0
ããã¯çŸããTeXããã¥ã¡ã³ãã§ãïŒå®éã«ã¯çŸããLaTeXããã¥ã¡ã³ãã§ãïŒ
ãããããã®ã³ãŒãã«é¢ããéããããã¯ãŸã£ãã圹ã«ç«ã¡ãŸããã ãš
ãã«ãŒãããã®ãããªææžãæžãããšãã§ãããšããäºå®ã¯ãããæå³ããŸãã
expl3ããã¥ã¢ã«ïŒãŸãã¯ãã®å Žåã¯LaTeXããã¥ã¢ã«ïŒã§ãã®ããããã説æããå¿
èŠããããŸãã
LaTeXïŒ2.09ããã³2eïŒã³ãŒãã«ã¯ãåæã«ã¯å€§ããªåé¡ããããŸããã
ããã°ã©ãã³ã°ãã人ãå€ãããŠãäœã¬ãã«ã®ã·ã§ãŒãã«ããã«ã€ããŠç解ããŠããŸãã
TeXã§ãããã§ã¯ãªããšæã£ãã®ã§ããããã䜿çšããã³èª€çšããŸãã
å±å®³ãäžããã ãã®çµæãæ¢åã®2eããã±ãŒãžã®èšå€§ãªéã
çžäºã«äºææ§ããªããã䜿çšæã«å Žæã«åŸ®åŠãªåé¡ããã
äžç·ã«ãªã©ããŸãã¯1ã€ãŸãã¯ããã€ãã¹ããããã«æã
å£ããŸã
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ïŒããããªããŠãæ©èœããããã«èŠããããïŒã
ããªãã¯åºæ¬çã«ããã ããææžåããããã«äœåºŠãäœåºŠãç§ãã¡ã«æ±ããŠããŸãã
ã€ãŸããèšèšååã«éåããå¯èœæ§ã®ããã·ã§ãŒãã«ãã
圌ãã¯æã
ïŒãŸãã¯çŸæç¹ã§ãåžžã«ïŒæ©èœããããã§ãã ãããexpl3
ãããŠãã®æ
£ç¿/èŠåã¯äž»ã«ãããçµéšããããšãã掟çããŠããŸã
ã³ãŒããŒã¯éå»ã«ãã®ãããªèŠåã«åŸããªãã£ããããã®çµæã§ããæ··ä¹±
ããããã ããããã«ãŒã«ã¯æå³çãªãã®ã§ãããåãªãæ°ãŸããã§ã¯ãããŸããïŒã»ãšãã©ã®å ŽåïŒ
åœæã®ïŒãããŠãããªããäœãããŠããã®ãç¥ã£ãŠããã°ãããªãã¯
ç¹å®ã®ç¶æ³ã§ãããã®ã»ãšãã©ããã€ãã¹ããããšãã§ããŸããããã¯ãããæå³ãããã®ã§ã¯ãããŸãã
ã³ãŒãã移åãããšãããå Žæãã次ã®å Žæã«ç§»åããŸãã
ã±ãŒã¹ãŸãã¯ããã¯æéã®çµéãšãšãã«ã±ãŒã¹ã§ããå¿
èŠããããŸããã
ä»ã®äººãèšã£ãããã«ãããªããæžããã³ãŒãã«ã¯å€§ããªéãããããŸã
ããªãèªèº«ã®ããã®ããšãšããªãããå
¬åŒã«ãé
åžããããã®ãšããŠæžããã³ãŒã
ããã±ãŒãžã å°ãªããšãåŸè
ã«ã€ããŠã¯ãã«ãŒã«ãåãå
¥ããŠ
ããããèšèªã®äžéšã§ãããšèããŠãã ããã ããªãèªèº«ã®ããã«ãããªãã¯ããããããããŸãã
äžèšã®ãããªããã¥ã¡ã³ãã®ã³ãŒãã£ã³ã°æ¹æ³ãåŠã³ãŸããããã®æ¹æ³ã«ã€ããŠã®ç¥è
expl3ããã¥ã¢ã«ããã¯åºãŠããŸãã
ããã¯èšã£ãŠããç§ã¯ããªããææŠçãªæŠå¿µãæããšã©ãŸãããããããŸããã
ã³ãã³ããã€ã³ã¿ãŒãã§ãŒã¹ãããªãã¯äœãæã£ãŠããŸããã ããªããæèµ·ããå€ãã®ãã€ã³ã
ä»ã®æ©äŒã¯ããŸãåãããŠããŸãïŒãŸãã¯å°ãªããšãç§ãã¡ã«1ã€ãåèãããŸãã
ãŸãã¯ä»ã®ãã€ã³ãïŒã
ããããexpl3ããã¥ã¢ã«ã«é¢ããéããç§ã¯ããªããèããããšããããšæããŸã
äœäººãã®äººã
ã¯ãææžåããããšã«èå³ããªããšããããšã§ã
ãéæ
£ç¿ããšãéèŠåãã ããã«ãã³ãŒããè¿åãããããš
ç§ãã¡ãã«ãŒã«/ã³ã³ãã³ã·ã§ã³ãšåŒãã§ãããã®ãããããã¯ãŸã TeXã³ãŒãã«ãªããŸãã
expl3ã³ãŒãã¯ãªããªããŸããã
ç§ãã¡ã¯ããã«ã€ããŠè©±ãåã£ããšæããŸãïŒç§ã¯éããŸããããã¡ããèŠæ±ãããã°åéããŸãã