blob: 170867a7716a71d56689019ee2e55c212fa6ac48 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
<head>
<title>UK TeX FAQ -- question label empty</title>
</head><body>
<h3>Detecting that something is empty</h3>
<p>Suppose you need to know that the argument of your command is empty:
that is, to distinguish between <code>\</code><code>cmd{}</code>
and <code>\</code><code>cmd{blah}</code>. This is pretty simple:
<blockquote>
<pre>
\def\cmd#1{%
\def\tempa{}%
\def\tempb{#1}%
\ifx\tempa\tempb
<empty case>
\else
<non-empty case>
\fi
}
</pre>
</blockquote>
The case where you want to ignore an argument that consists of nothing
but spaces, rather than something completely empty, is more tricky.
It's solved in the code fragment <i>ifmtarg</i>, which defines
commands <code>\</code><code>@ifmtarg</code> and <code>\</code><code>@ifnotmtarg</code>, which distinguish (in
opposite directions) between a second and third argument. The
package's code also appears in the LaTeX <i>memoir</i> class.
<p><i>Ifmtarg</i> makes challenging reading; there's also a discussion of the
issue in number two of the "around the bend" articles by the late
lamented Mike Downes.
<dl>
<dt><tt><i>Around the bend series</i></tt><dd><a href="ftp://cam.ctan.org/tex-archive/info/aro-bend.zip">info/aro-bend</a> (<a href="ftp://cam.ctan.org/tex-archive/info/aro-bend.tar.gz">gzipped tar</a>, <a href="http://www.tex.ac.uk/tex-archive/info/aro-bend/">browse</a>)
<dt><tt><i>ifmtarg.sty</i></tt><dd><a href="ftp://cam.ctan.org/tex-archive/macros/latex/contrib/misc/ifmtarg.sty">macros/latex/contrib/misc/ifmtarg.sty</a>
<dt><tt><i>memoir.cls</i></tt><dd><a href="ftp://cam.ctan.org/tex-archive/macros/latex/contrib/memoir.zip">macros/latex/contrib/memoir</a> (<a href="ftp://cam.ctan.org/tex-archive/macros/latex/contrib/memoir.tar.gz">gzipped tar</a>, <a href="http://www.tex.ac.uk/tex-archive/macros/latex/contrib/memoir/">browse</a>)
</dl>
<p><p>This question on the Web: <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=empty">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=empty</a>
</body>
|