Code: Select all
\def\the@cartoon
{
Betty Boop
}
Code: Select all
\def\the@cartoon
{
Betty Boop
}
NEW: TikZ book now 40% off at Amazon.com for a short time.
Code: Select all
\tl_const:Nn \c_the_cartoon {Betty\ Boop}
Code: Select all
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\tl_const:Nn \c_the_cartoon {Betty\ Boop}
\NewDocumentCommand { \thecartoon } { }
{
\tl_use:N \c_the_cartoon
}
\ExplSyntaxOff
\begin{document}
\thecartoon
\end{document}
That depends. Iserwann wrote:I would I rewrite this code inside a package (*.dtx) using expl3?
Code: Select all
\def\the@cartoon { Betty Boop }
\the@cartoon
going to be a tokenlist that is never going to change? Or may it be that its value (definition) changes (maybe depending on user settings)?Code: Select all
% constant public variable:
\tl_const:Nn \c_mypackage_cartoon_tl {Betty~ Boop}
% constant internal variable:
\tl_const:Nn \c__mypackage_cartoon_tl {Betty~ Boop}
% public variable:
\tl_new:N \l_mypackage_cartoon_tl
\tl_set:N \l_mypackage_cartoon_tl {Betty~ Boop}
% internal variable:
\tl_new:N \l__mypackage_cartoon_tl
\tl_set:N \l__mypackage_cartoon_tl {Betty~ Boop}
\use:n
.Not only tokenlists but all kinds of variables, even functions. Public means that those variables and functions are allowed to be used by others and ideally are documented (just like all those in interface3). Internal functions and variables are not meant to be used by anyone (which also means there is no need to document them):erwann wrote:Two undescores for internal, one for public TL's.
Code: Select all
\l_module_name_tl % local public tokenlist
\l__module_name_tl % local internal token list
\g_module_name_tl % global public tokenlist
\g__module_name_tl % global internal token list
\l_module_name_int % local public integer
\l__module_name_int % local internal integer
...
\module_name:n % public function with one brace group argument
\__module_name:n % internal function with one brace group argument
Quite true. I never do that in my real world documents. Only in the preamble or in packages.erwann wrote:ExplSyntaxOn/Off inside 'document' environment seems odd, or I am missing something?
Code: Select all
\l_module_name_tl % local public tokenlist
\l__module_name_tl % local internal token list
\g_module_name_tl % global public tokenlist
\g__module_name_tl % global internal token list
\l_module_name_int % local public integer
\l__module_name_int % local internal integer
...
\module_name:n % public function with one brace group argument
\__module_name:n % internal function with one brace group argument
NEW: TikZ book now 40% off at Amazon.com for a short time.