В настоящее время я перекомпилирую черновик монографии с классом Springer "svmono". При компиляции файла все работает нормально, но когда TeX впервые встречает сноску, он выдает сообщение об ошибке
! LaTeX Error: Font U/shuffle/m/n/4.25 not found.
Вот минимальный пример, генерирующий ошибку:
\documentclass{svmono}
\usepackage{shuffle}
\begin{document}
This is a footnote.
\footnote{This generates an error message.}
\end{document}
Если закомментировать строку "сноска", то все работает нормально. Если кто-то хочет попробовать, вот ссылка Dropbox на класс svmono:https://dl.dropboxusercontent.com/u/2623632/svmono.cls. Есть ли у кого-нибудь идеи, как это исправить?
Хотя мне нужен символ перемешивания в основном тексте, он мне никогда не нужен внутри сноски, поэтому я был бы рад решению, которое исправляет сообщение об ошибке за счет нарушения команды \shuffle внутри команды \footnote. На случай, если это поможет, я использую TeX Live 2013 на OS X. Заранее большое спасибо за любые подсказки!
решение1
Математические размеры, определяемые, svmono
нестандартны.
Вот выход
\documentclass{svmono}
\usepackage{fix-cm} % avoid tons of warnings
\usepackage{shuffle}
\DeclareFontFamily{U}{shuffle}{}
\DeclareFontShape{U}{shuffle}{m}{n}{ <-8>shuffle7 <8->shuffle10}{}
\begin{document}
This is a footnote.
\footnote{This generates an error message.}
\end{document}
решение2
Быстрая починка.
Переопределить \footnotesize
не так, как \small
определено в svmono.sty
, а так:
\makeatletter
\renewcommand\footnotesize{%
\@setfontsize\footnotesize{8}{10}%
\abovedisplayskip 8.5\p@ % \@plus3\p@ \@minus4\p@
\abovedisplayshortskip \z@ %\@plus2\p@
\belowdisplayshortskip 4\p@ %\@plus2\p@ \@minus2\p@
\def\@listi{\leftmargin\leftmargini
\parsep \z@ \@plus\p@ \@minus\p@
\topsep 6\p@ \@plus2\p@ \@minus4\p@
\itemsep\z@}%
\belowdisplayskip \abovedisplayskip
}
МВЭ:
\documentclass{svmono}
\usepackage{shuffle}
\makeatletter
\renewcommand\footnotesize{%
\@setfontsize\footnotesize{8}{10}%
\abovedisplayskip 8.5\p@ % \@plus3\p@ \@minus4\p@
\abovedisplayshortskip \z@ %\@plus2\p@
\belowdisplayshortskip 4\p@ %\@plus2\p@ \@minus2\p@
\def\@listi{\leftmargin\leftmargini
\parsep \z@ \@plus\p@ \@minus\p@
\topsep 6\p@ \@plus2\p@ \@minus4\p@
\itemsep\z@}%
\belowdisplayskip \abovedisplayskip
}
\begin{document}
This is a footnote.
\footnote{This doesn't generates an error message.}
\end{document}
Выход:
Другой метод — перезаписать определения, содержащиеся в Ushuffle.fd
, то есть добавить следующие строки в преамбулу:
\DeclareFontFamily{U}{shuffle}{}
\DeclareFontShape{U}{shuffle}{m}{n}{%
<4-8>shuffle7%
<8->shuffle10%
}{}
MWE (результат тот же, что и выше):
\documentclass{svmono}
\usepackage{shuffle}
\DeclareFontFamily{U}{shuffle}{}
\DeclareFontShape{U}{shuffle}{m}{n}{%
<4-8>shuffle7%
<8->shuffle10%
}{}
\begin{document}
This is a footnote.
\footnote{This doesn't generates an error message.}
\end{document}