6

I have a piece of complex code from Use same formatting for \thanks footnote as the one created by footmisc which makes sure that \thanks doesn't place a star in the the title, only in the footnote itself, and that the \thanks footnote has the same formatting as other footnotes in the text.

The other footnotes have a formatting created with KOMA script (I think I tweaked it from Footnote marker in text should be superscript lining figure, but footnote marker in the footnote should be full size old style figure).

Combined, it gives me this:

\documentclass{article}

\usepackage{lipsum}

\usepackage{fontspec}
    \setmainfont{CMU Serif}[%
        Numbers = {OldStyle, Proportional}]
    \newfontfamily\footmarktextfont{CMU Serif}[% for footnote markers in the text
        Numbers = {Lining, Proportional}]

\usepackage{scrextend} % KOMA script for footnote marks hung left of the margin
    \newcommand*\footnotetextfrommargin{0em} % set distance for footnote text from the margin
    \deffootnote{\footnotetextfrommargin}% use distance from above
        {\parindent}% paragraph indent in footnotes
        {\thefootnotemark.\space} % footnote marks followed by a period and space in footnote
    \deffootnotemark{\footmarktextfont\textsuperscript{\thefootnotemark}} % use footmarktextfont for footnote markers in the text

\usepackage{xpatch}
\makeatletter
% 1. remove all redefinitions about footnotes done by \maketitle
%    and add \titletrue
\renewcommand\maketitle{\par
  \begingroup
    \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
    \titletrue
    \if@twocolumn
      \ifnum \col@number=\@ne
        \@maketitle
      \else
        \twocolumn[\@maketitle]%
      \fi
    \else
      \newpage
      \global\@topnum\z@   % Prevents figures from going at top of page.
      \@maketitle
    \fi
    \thispagestyle{plain}\@thanks
  \endgroup
  \setcounter{footnote}{0}%
  \global\let\thanks\relax
  \global\let\maketitle\relax
  \global\let\@maketitle\relax
  \global\let\@thanks\@empty
  \global\let\@author\@empty
  \global\let\@date\@empty
  \global\let\@title\@empty
  \global\let\title\relax
  \global\let\author\relax
  \global\let\date\relax
  \global\let\and\relax
}
% 2. define a conditional
\newif\iftitle
% 3. redefine \@makefnmark to print nothing when \titletrue
\xpretocmd{\@makefnmark}{\iftitle\else}{}{}
\xapptocmd{\@makefnmark}{\fi}{}{}
% 4. ensure \@makefntext has \titlefalse
%    that's justified by the fact that \@makefnmark
%    in \@makefntext is set in a box
\xpretocmd{\@makefntext}{\titlefalse}{}{}
\makeatother

\title{My paper on footnotes\thanks{\lipsum[4]}}

\begin{document}

\maketitle

A\footnote{\lipsum[11]}

\end{document}

enter image description here

The footnotes look like I want them, and the footnote mark for the numbered footnotes looks like I want. The problem is the footnote mark for the \thanks footnote.

(1) There shouldn't be a period after the star.

(2) The star should look exactly like the symbol *, which is high up on the line. In this case, however, it is a lowered star. This is either because the symbol used by the \thanks command is placed inside a math environment with \ensuremath (see e.g. this answer, but it doesn't say where this code snippet resides), or, as I've found in latex.ltx (line 2255), the symbol is defined as \textasteriskcentered. Either one will produce a lowered star (try \ensuremath{*}*\textasteriskcentered and see).

So my question is, how can I remove the period after the star and also have a normal non-lowered star in the \thanks footnote, without changing how other footnotes appear?

1 Answer 1

2

Well, you need to patch/define the footnote in the command \maketitle only.

For example can you use your already used definition with \deffootnote and delete there the disturbing . like:

\renewcommand\maketitle{\par
  \begingroup
    \deffootnote{\footnotetextfrommargin}% use distance from above
      {\parindent}% paragraph indent in footnotes
      {\thefootnotemark\space} % <==================================== deleted .

Inserting this changed definition after \begingroup makes sure it is only valid inside command \maketitle.

See the following complete code

\documentclass{article}

\usepackage{lipsum}

\usepackage{fontspec}
    \setmainfont{CMU Serif}[%
        Numbers = {OldStyle, Proportional}]
    \newfontfamily\footmarktextfont{CMU Serif}[% for footnote markers in the text
        Numbers = {Lining, Proportional}]

\usepackage{scrextend} % KOMA script for footnote marks hung left of the margin
    \newcommand*\footnotetextfrommargin{0em} % set distance for footnote text from the margin
    \deffootnote{\footnotetextfrommargin}% use distance from above
        {\parindent}% paragraph indent in footnotes
        {\thefootnotemark.\space} % footnote marks followed by a period and space in footnote
    \deffootnotemark{\footmarktextfont\textsuperscript{\thefootnotemark}} % use footmarktextfont for footnote markers in the text

\usepackage{xpatch}
\makeatletter
% 1. remove all redefinitions about footnotes done by \maketitle
%    and add \titletrue
\renewcommand\maketitle{\par
  \begingroup
    \deffootnote{\footnotetextfrommargin}% use distance from above
      {\parindent}% paragraph indent in footnotes
      {\thefootnotemark\space} % <==================================== deleted .
    \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
    \titletrue
    \if@twocolumn
      \ifnum \col@number=\@ne
        \@maketitle
      \else
        \twocolumn[\@maketitle]%
      \fi
    \else
      \newpage
      \global\@topnum\z@   % Prevents figures from going at top of page.
      \@maketitle
    \fi
    \thispagestyle{plain}\@thanks
  \endgroup
  \setcounter{footnote}{0}%
  \global\let\thanks\relax
  \global\let\maketitle\relax
  \global\let\@maketitle\relax
  \global\let\@thanks\@empty
  \global\let\@author\@empty
  \global\let\@date\@empty
  \global\let\@title\@empty
  \global\let\title\relax
  \global\let\author\relax
  \global\let\date\relax
  \global\let\and\relax
}
% 2. define a conditional
\newif\iftitle
% 3. redefine \@makefnmark to print nothing when \titletrue
\xpretocmd{\@makefnmark}{\iftitle\else}{}{}
\xapptocmd{\@makefnmark}{\fi}{}{}
% 4. ensure \@makefntext has \titlefalse
%    that's justified by the fact that \@makefnmark
%    in \@makefntext is set in a box
\xpretocmd{\@makefntext}{\titlefalse}{}{}
\makeatother

\title{My paper on footnotes\thanks{\lipsum[4]}}


\begin{document}

\maketitle

A\footnote{\lipsum[11]}

\end{document}

and its result:

resulting pdf

Update:

To get the asterix on the top of the line (and not at the bottom as you get with \textasterikscentered) change the definition of \@fnsymbol like this:

\renewcommand\@fnsymbol[1]{% <==========================================
  \ifcase #1
    \or  *%
    \or  \textdagger %
    \or  \textddagger %
    \or  \textsection %
    \or  \textparagraph %
    \or  \textbardbl %
    \or  {**}%
    \or  {\textdagger \textdagger}%
    \or  {\textdaggerdbl \textdaggerdbl}%
    \else \@ctrerr 
  \fi %
} % <===================================================================

Now test the new following mwe

\documentclass{article}

\usepackage{lipsum}

\usepackage{fontspec}
    \setmainfont{CMU Serif}[%
        Numbers = {OldStyle, Proportional}]
    \newfontfamily\footmarktextfont{CMU Serif}[% for footnote markers in the text
        Numbers = {Lining, Proportional}]

\usepackage{scrextend} % KOMA script for footnote marks hung left of the margin
    \newcommand*\footnotetextfrommargin{0em} % set distance for footnote text from the margin
    \deffootnote{\footnotetextfrommargin}% use distance from above
        {\parindent}% paragraph indent in footnotes
        {\thefootnotemark.\space} % footnote marks followed by a period and space in footnote
    \deffootnotemark{\footmarktextfont\textsuperscript{\thefootnotemark}} % use footmarktextfont for footnote markers in the text

\usepackage{xpatch}

\makeatletter
\renewcommand\@fnsymbol[1]{% <==========================================
  \ifcase #1
    \or  *%
    \or  \textdagger %
    \or  \textddagger %
    \or  \textsection %
    \or  \textparagraph %
    \or  \textbardbl %
    \or  {**}%
    \or  {\textdagger \textdagger}%
    \or  {\textdaggerdbl \textdaggerdbl}%
    \else \@ctrerr 
  \fi %
} % <===================================================================
% 1. remove all redefinitions about footnotes done by \maketitle
%    and add \titletrue
\renewcommand\maketitle{\par
  \begingroup
    \deffootnote{\footnotetextfrommargin}% use distance from above
      {\parindent}% paragraph indent in footnotes
      {\thefootnotemark\space} % <====================================== deleted .
    \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
    \titletrue
    \if@twocolumn
      \ifnum \col@number=\@ne
        \@maketitle
      \else
        \twocolumn[\@maketitle]%
      \fi
    \else
      \newpage
      \global\@topnum\z@   % Prevents figures from going at top of page.
      \@maketitle
    \fi
    \thispagestyle{plain}\@thanks
  \endgroup
  \setcounter{footnote}{0}%
  \global\let\thanks\relax
  \global\let\maketitle\relax
  \global\let\@maketitle\relax
  \global\let\@thanks\@empty
  \global\let\@author\@empty
  \global\let\@date\@empty
  \global\let\@title\@empty
  \global\let\title\relax
  \global\let\author\relax
  \global\let\date\relax
  \global\let\and\relax
}
% 2. define a conditional
\newif\iftitle
% 3. redefine \@makefnmark to print nothing when \titletrue
\xpretocmd{\@makefnmark}{\iftitle\else}{}{}
\xapptocmd{\@makefnmark}{\fi}{}{}
% 4. ensure \@makefntext has \titlefalse
%    that's justified by the fact that \@makefnmark
%    in \@makefntext is set in a box
\xpretocmd{\@makefntext}{\titlefalse}{}{}
\makeatother

\title{My paper on footnotes\thanks{\lipsum[4]}}
\author{John Doe}

\begin{document}

\maketitle

A\footnote{\lipsum[11]}

\end{document}

resulting in the following footnotes:

resulting footnotes

2
  • Nice! Any idea how to get a normal asterisk instead of the lowered/centered one?
    – Sverre
    May 22, 2019 at 19:20
  • 1
    @Sverre see updated answer ...
    – Mensch
    May 23, 2019 at 9:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .