I'd like to use datetime
's \monthname
as part of a command; consider this snippet of command line pdflatex
use:
$ pdflatex
This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010)
restricted \write18 enabled.
**\documentclass{article}
entering extended mode
LaTeX2e <2009/09/24>
Babel <v3.8l> and hyphenation patterns for english, dumylang, nohyphenation, lo
aded.
*\usepackage{datetime}
(/PATH/TO/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/PATH/TO/texlive/texmf-dist/tex/latex/base/size10.clo))
*\newdate{someDate}{30}{05}{2011}
(/PATH/TO/texlive/texmf-dist/tex/latex/datetime/datetime.sty
(/PATH/TO/texlive/texmf-dist/tex/latex/fmtcount/fmtcount.sty
(/PATH/TO/texlive/texmf-dist/tex/latex/base/ifthen.sty)
(/PATH/TO/texlive/texmf-dist/tex/latex/graphics/keyval.sty)
(/PATH/TO/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)
(/PATH/TO/texlive/texmf-dist/tex/latex/fmtcount/fc-english.def)
(/PATH/TO/texlive/texmf-dist/tex/latex/fmtcount/fc-USenglish.def)
No configuration file fmtcount.cfg found.
))
*\newcommand\someDateStr{\getdateday{someDate} \monthname[\getdatemonth{someDate}] \getdateyear{someDate}}
*\typeout{\someDateStr}
30 \monthname[05] 2011
*\typeout{\monthname[\getdatemonth{someDate}]}
\monthname[05]
So, it looks like in the construct \monthname[\getdatemonth{someDate}]
, Latex will expand only \getdatemonth{someDate}
, but not the \monthname
part; I'm suspecting it has something to do with the square brackets as arguments, because if I try to use edef
instead, I get an error:
*\edef\someDateStr{\getdateday{someDate} \monthname[\getdatemonth{someDate}] \getdateyear{someDate}}
! Argument of \reserved@a has an extra }.
<inserted text>
\par
<*> ...atemonth{someDate}] \getdateyear{someDate}}
?
So, the question is: how can I use \monthname[\getdatemonth{someDate}]
as a part of a newcommand, such that it results with (in this case) "May"?
Thanks in advance for any responses,
Cheers!
Best Answer
The main problem with datetime is that it is oriented towards printing dates rather than manipulating them.
A "completely expandable" version would be