This is re: egreg's solution to this question.
Issue:
I would like the \NameOne command to replicate the \NameTwo command where it outputs only when being called on like so: \NameOne. When an argument is being entered into the command: \NameOne{} or \Name{Argument} it prints nothing and is only defining a global definition (as done in \NameTwo).
MWE:
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\NameOne}{g}
{
\IfNoValueF{#1}
{
\tl_gset:Nn \g_jalep_nameone_tl {#1}
}
\tl_use:N \g_jalep_nameone_tl
}
\tl_new:N \g_jalep_nameone_tl
\ExplSyntaxOff
\newcommand{\NameTwo}[1]{\xdef\NameTwo{#1}}
\begin{document}
\textbf{NameOne}
\par This should say nothing: \NameOne{Argument}
\par This should say Argument: \NameOne
\par \hrulefill
\par \textbf{NameTwo}
\par This should say nothing: \NameTwo{Argument}
\par This should say Argument: \NameTwo
\end{document}
Output:
Edit:
I realize my question has been previously answered here. If a moderator thinks this question is a repeat, feel free to mark it as such.


goption in any distributed code, it breaks all latex syntax guidelines. It is useful in some very special circumstances but should not be used for general latex document commands. – David Carlisle Jan 15 '19 at 20:03\NameTwo{élite}? – egreg Jan 15 '19 at 21:28goption. I'm doing all of this for my own curiosity and to better understand the TeX -> LyX relationship, but all in experimentation. @egreg I'm not quite sure I understand? – jed Jan 15 '19 at 21:35