10

I have

biblio.bib:

@article{XX,
title={{Title}},
author={Author},
journal={Journal Title},
volume=1,
number=11,
pages={1-2},
year=1666
} 

And myfile.tex

\documentclass[oneside]{memoir}
   \usepackage{natbib} 
\begin{document}

   ...
   \cite{XX}
   ...

  \bibliography{biblio} 
  \bibliographystyle{acm} 

\end{document}       

I get the error:

ERROR: Class memoir Error: Font command \sc is not supported.

--- TeX said ---

See the memoir class documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.4 {\sc
         Author}.
--- HELP ---
From the .log file...

Use \textsc, or \scshape{...}, or the oldfontcommands option

What might I be doing wrong?

  • 3
    Have you tried \documentclass[oldfontcommands]{memoir}? – Werner Aug 20 '13 at 19:40
  • @Werner: No, I hadn't tried that. I get an error saying: LaTeX Error: File '.cls' not found. – Thomas Aug 20 '13 at 19:42
  • @Thomas are you sure you typed exactly what Werner said? (square brackets not braces for the oldfontcommands part)? – Alan Munn Aug 20 '13 at 19:48
  • @AlanMunn: Ok, so I can get \documentclass[oldfontcommands]{memoir} to work. But I can't get \documentclass[oldfontcommands][oneside]{memoir} to work. – Thomas Aug 20 '13 at 19:54
  • 1
    @Thomas: add all the options within on set of [ ] separated by commas. So \documentclass[oneside,oldfontcommands]{memoir}. – Alan Munn Aug 20 '13 at 20:00
18

The memoir class enforces the use of proper font commands. The old two-letter commands such as \bf and \it, \sc, etc. are problematic and now very old. See

Unfortunately, many older bibliography styles still use the old font commands, and since their code is not trivial to modify, you are kind of stuck with them. Luckily, memoir also provides an option to allow you to use the old font commands. So for your example you need to load the class with this option (described in Sec.1.4 "Other options" of the documentation for v3.7f):

\documentclass[oneside,oldfontcommands]{memoir}

Multiple options can be passed to a class or a package by putting them all inside one set of square brackets and separating them with commas.

3

have you tried:

\renewcommand{\bf}{\textbf}

or

\renewcommand{\sc}{\textsc}

right after the \usepackage{} section and before \begin{document}?

It worked for me.

https://blogs.oracle.com/mociepka/entry/bibtex

  • 4
    Welcome to TeX.SX! I don't think \renewcommand can do, since the problem is that \sc is not defined by default. It should be \newcommand{\sc}{\scshape}, also. – egreg Sep 30 '13 at 14:31
  • 1
    For me, \renewcommand{\sc}{\scshape} worked, and that was really what I needed, because my "enforcing" package was not memoir but komascript. I suspect that I had to use renewcommand instead of newcommand, because some of my other packages must have defined it. – rumtscho Feb 4 '17 at 7:28
0

Another possible solution involves changing the bibliography style file (.bst) file.

You will find one or more \sc command on it, which you can replace with \textsc to solve the problem.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.