moderncv and babel spanish cause "Missing \endcsname..." error
The babel
module for Spanish redefines \roman
to use small caps and in many places moderncv
uses \roman
for building indexed macros, basically by doing
\csname xyz\roman{counter}\endcsname
which won't work if \roman
is redefined in that way.
Solution: add the es-lcroman
option when loading babel
:
\usepackage[spanish,es-lcroman]{babel}
I'm not sure that activeacute
is really necessary with UTF-8 input. I wouldn't use ~
for the phone numbers: a normal space seems sufficient.
A different strategy, if es-scroman
is needed, is to patch all the moderncv
commands that use \roman
:
\documentclass[
11pt,
a4paper,
sans,
]{moderncv}
\moderncvstyle{classic}
\moderncvcolor{blue}
\usepackage[scale=0.75]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish, activeacute]{babel}
\usepackage{regexpatch}
\makeatletter
\regexpatchcmd*{\endcvcolumns}
{\c{roman}\cB.tmpiteratorcounter\cE.}
{\c{romannumeral}\c{c@tmpiteratorcounter}}
{}{}
\regexpatchcmd*{\cvcolumn}
{\c{roman}\cB.cvcolumnscounter\cE.}
{\c{roman}\c{c@cvcolumnscounter}}
{}{}
\regexpatchcmd*{\collectionadd}
{\c{roman}\cB.(collection@\cP.2@count)\cE.}
{\c{romannumeral}\c{csname}c@\1\c{endcsname}}
{}{}
\makeatother
% Personal Data
\firstname{John}
\familyname{Doe}
\title{CV}
\address{city}{state}{country}
\phone[mobile]{+1 (234) 567~890}
\phone[fixed]{+2 (345) 678 901}
\phone[fax]{+3 (456) 789 012}
\email{[email protected]}
\homepage{www.johndoe.com}
\extrainfo{extrainfo}
\quote{somequote}
\begin{document}
\makecvtitle
\section{First section}
\cventry{year--year}{Degree}{Institution}{City}{\textit{Grade}}{Description}
\cventry{Prueba}{Alimentación}{alimentaci'on}{}{}{}
\end{document}
A request for bug fix should be filed to the maintainer of moderncv
. The macros involved are
\endcvcolumns
which is defined by\newenvironment{cvcolumns}
, where the occurrences of\roman{tmpiteratorcounter}
should become
\romannumeral\c@tmpiteratorcounter
\cvcolumn
, where the occurrences of\roman{cvcolumnscounter}
should become
\romannumeral\c@cvcolumnscounter
\collectionadd
(inmoderncvcollection.sty
), where the occurrences of\roman{collection@#2@count}
should become
\romannumeral\csname c@collection@#2@count\endcsname
A similar problem that shows when \moderncvstyle{banking}
is used can be solved by adding
\renewcommand*{\maketitlesymbol}{%
{\quad{\rmfamily\textbullet}\quad}}
The style uses ~~~
instead of \quad
and, due to how the Spanish module of babel
treats ~
, using this in the title breaks the compilation. I believe that \quad
or \hspace{...}
should be used anyway: leave sequences of spaces to word processors, LaTeX can do better. ;-)