# Bug Tracker

ID 104 Closed (Fixed) mfirstuc 2.01 \capitalisewords fails with commands in non-first word

## Report

\capitalisewords works okay when the first word contains a command, but not when subsequent words of the phrase contain commands or grouping. Error message:
! You can't use macro parameter character #' in math mode.


Nicola Talbot

### MWE

\documentclass{article}

\usepackage{mfirstuc}

\begin{document}
%\newcommand*{\test}{\textbf{s}ample phrase}% works
%\newcommand*{\test}{\textbf{s}ample p\textbf{h}rase}% doesn't work
%\newcommand*{\test}{\textbf{s}ample {p}hrase}% doesn't work
\newcommand*{\test}{\textbf{s}ample \textbf{p}hrase}% doesn't work

Tagged text: \test.

Title Case: \xcapitalisewords{\test}.

\end{document}


## Evaluation

The cause is due to the use of etoolbox's \ifinlist macro, which is only intended for unformatted strings. The same error message is caused by:
\documentclass{article}

\usepackage{etoolbox}

\begin{document}

\newcommand{\testlist}{}

\ifinlist{\textbf{f}oo}{\testlist}{TRUE}{FALSE}.

\end{document}

The remedy is for mfirstuc (or its author, me) to follow the recommendation of the etoolbox manual and use a loop instead of \ifinlist. This will be fixed in the next version of mfirstuc.

Temporary patch for pre v2.02:

\renewcommand*\mfu@checkword[1]{%
\def\mfu@checkword@arg{#1}%
\let\@mfu@domakefirstuc\makefirstuc
\forlistloop\mfu@checkword@do\@mfu@nocaplist
}
\newcommand*{\mfu@checkword@do}[1]{%
\ifdefstring{\mfu@checkword@arg}{#1}%
{%
\let\@mfu@domakefirstuc\@firstofone
\listbreak
}%
{}%
}
`

Update 2015-12-17: Fixed in version 2.02.

## Watch This Report

If you supply your name, it will be used in the email greeting, which provides a more personal message, otherwise you'll just get a generic greeting. If you have previously supplied your name when signing up for notifications, you don't need to resupply it unless you want to change it.

If you have previously subscribed to notifications for this report, you can unsubscribe by clicking on the "Stop Notification" button.

The "Confirm Bug ID" field helps to protect against spambots. Please enter the bug ID (which you can find at the top of this page).

Name: (Optional.)

## Comment

You can append a comment to the report using the form below. Comments are checked first before being added. Any spam or offensive content will be removed first according to this site's Terms of Website Use. Please bear in mind that I develop and maintain free software in my spare time. If you want commerical level support then you can hire a TeX consultant.

The "Confirm Bug ID" field helps to protect against spambots. Please enter the bug ID (which you can find at the top of this page).

Name: (Optional. If provided, it will be shown with the comment.) Message: You can use the following markup: [pre]Displayed verbatim[/pre] [tt]monospace text[/tt] [em]emphasized text[/em] [b]bold text[/b] [url]web address[/url] Ordered list: [ol] [li]first item[/li] [li]second item[/li] [/ol] Unordered list: [ul] [li]first item[/li] [li]second item[/li] [/ul]

Click on the Preview button to preview the message.