Bug Tracker
I’m currently working on a major new version of the datatool package. This may take a while. Please be patient. (Experimental version available for testing.)
ID | 104🔗 |
---|---|
Submitted by: | Nicola Talbot 🦜 |
Date: | 2015-12-08 09:41:49 |
Status | Closed (Fixed) |
Category | mfirstuc |
Version | 2.01 |
Summary | \capitalisewords fails with commands in non-first word |
Sign in to subscribe to notifications about this report.
Description
\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. <recently read> ##
MWE
Download (436B)
\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. First letter uppercase: \xmakefirstuc{\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.
Comments
0 comments.
Add Comment
Page permalink: https://www.dickimaw-books.com/bugtracker.php?key=104