Iguess that the issue here is that :
, etc., are punctuation, but %
is not really. It's a unit, of sorts, and so deserves different handling. (To be honest, I always think babel
is a bit of a mess: for consistency French and Spanish should treat %
in the same way.)
As has been pointed out, there are packages available for handling units, including %
, for example my own siunitx
.
It's a wrong choice by elsarticle.cls
that has
\def\appendixname{Appendix }
with a space, whereas babel
correctly does
\renewcommand{\appendixname}{Appendix}
with no space. You can reinstate the behavior expected by elsarticle
doing
\addto\captionsenglish{\renewcommand{\appendixname}{Appendix }}
Here's a minimal example (the other packages you load have nothing to do with the issue)
But, really, elsarticle
should do di
\documentclass{elsarticle}
\usepackage[english]{babel}
\addto\captionsenglish{\renewcommand{\appendixname}{Appendix }}
\begin{document}
\appendix
\section{Tasks for Progressive Formulation}
\end{document}
But, really, elsarticle
should do differently: the code from line 748 to line 758 in elsarticle.cls
should be
\renewcommand\appendix{\par
\setcounter{section}{0}%
\setcounter{subsection}{0}%
\setcounter{equation}{0}
\gdef\thefigure{\@Alph\c@section.\arabic{figure}}%
\gdef\thetable{\@Alph\c@section.\arabic{table}}%
\gdef\thesection{\appendixname\space\@Alph\c@section}%
\@addtoreset{equation}{section}%
\gdef\theequation{\@Alph\c@section.\arabic{equation}}%
}
without a redefinition of \appendixname
and adding the space in the redefinition of \thesection
. A fixed tag should be just a tag, with no “formatting instructions” that belong elsewhere.
Best Answer
If you want to get the correct spacing between
\fg
and a word following it, you have to add an empty statement{}
after it.This because the definition of
\fg
infrenchb.ldf
resorts to the definition of\FB@fg
which isAs you can see, this command takes no arguments, so it inserts no space after it, if you don't break the command explicitly with
{}
(or\
which is not advisable).The behavior is the same as if you define a new command with no arguments
and use it as
MWE
You can also notice that the definition of
\FB@fg
contains an\xspace
at its end. This means that, if you don't want to insert{}
each time you use\fg
, you can simply load the packagexspace
.The following MWE gives the same result as in the above picture: