0

I want to change the definition of footnotes in order to be able to change the footnote symbol for some footnotes (the footnotes corresponding to the authors of a paper). I tried the recommendation of the first answer of this thread: Make all footnotes numbered subsequently, but one with a symbol

I use the Dissertate class (https://github.com/suchow/Dissertate) and there this code doesn't work, since Latex complains about the use of \@:

Use of \@ doesn't match its definition.
tho_mi
  • 131
  • 2
    What is the problem with \makeatletter...\makeatother? You could make the change in an own package file -- you don't need \makeatletter...\makeatother then –  Jan 11 '16 at 17:01
  • 1
    since the recommendation in the linked question is to redefine the command \@xfootnote, \makeatletter and \makeatother are required. – barbara beeton Jan 11 '16 at 17:02
  • If I run Werner's document with the dissertate class instead of article, I get no error. Can you show a minimal example? However, the footnotes are not numbered with that class, so I don't understand what you're doing. – egreg Jan 11 '16 at 17:11

2 Answers2

2

I don't see the point in not using the \makeatletter...\makeatother pair but if really necessary: Here's a package based wrap around (I stole the full code from Werner's answer in the given link Make all footnotes numbered subsequently, but one with a symbol ;-) -- but the splitting is by me)

withoutatletter.sty:

\NeedsTeXFormat{LaTeX2e}

\ProvidesPackage{withoutatletter}


\def\@xfootnote[#1]{%
  \protected@xdef\@thefnmark{#1}%
  \@footnotemark\@footnotetext}

\endinput

And here the foo.tex

\documentclass{article}
\usepackage{withoutatletter}
\begin{document}
This is a\footnote{Regular footnote} piece of text.
This is a\footnote[*]{Different footnote} piece of text.
This is a\footnote{Regular footnote} piece of text.
This is a\footnote{Regular footnote} piece of text.
This is a\footnote[$\dagger$]{Different footnote} piece of text.
This is a\footnote{Regular footnote} piece of text.
This is a\footnote[$\star$]{Different footnote} piece of text.
\end{document}
2

For code in a class or package @ is already a letter so if you go

\makeatletter
... new code
\makeatother
... rest of original code

then the rest of the original code is broken as @ is no longer a letter.

\makeatletter is intended for use in teh preamble for short sections of code to avoid needing to make a package or class file so

\documentclass{yourclass}
\makeatletter
... new code
\makeatother

 ... rest of _document_ with @ not a letter
David Carlisle
  • 757,742