
iopart.cls
Класс документа iopart определяет в файле следующее:
\def\cases#1{%
\left\{\,\vcenter{\def\\{\cr}\normalbaselines\openup1\jot\m@th%
\ialign{\strut$\displaystyle{##}\hfil$&\tqs
\rm##\hfil\crcr#1\crcr}}\right.}%
Является ли это заменой для amsmath
окружения cases
? Как мне его использовать? Определение больше нигде в файле не встречается.
Вопрос о том, как реализовать среду кейсов вручную, уже задавался.здесь. Мне интересно, нужно ли это еще, учитывая возраст этого поста.
решение1
Это определение \cases
(которое не является средой) является модификацией определения в ядре LaTeX, которое, в свою очередь, по сути такое же, как в простом TeX.
Кстати, такие команды, как \rm
и \bf
устарели и считаются неактуальными уже почти три десятилетия.
Есть очень простой способ загрузить amsmath
вместе с iopart
. Я также воспользуюсь трюком, чтобы сравнить результат iopart
's \cases
и amsmath
's cases
.
\documentclass[10pt]{iopart}
% for using amsmath
\expandafter\let\csname equation*\endcsname\relax
\expandafter\let\csname endequation*\endcsname\relax
%%% This is just to compare the results
\let\iopartcases\cases
%%%
\usepackage{amsmath}
\begin{document}
In the following display I'll be using \verb|\cases| as
defined by \verb|iopart| in order to check the differences
\[
f(x)=\iopartcases{1 & abc \\ 0 & uvw}
\]
The following display will use \verb|cases| as defined by
\verb|amsmath| in order to check the differences
\[
f(x)=\begin{cases} 1 & abc \\ 0 & uvw \end{cases}
\]
Now we can decide which one to use.
\end{document}
Если вам больше нравится такой подход iopart
, вы можете определить iopcases
среду (я бы не стал amsmath
ее переопределять).
\documentclass[10pt]{iopart}
% for using amsmath
\expandafter\let\csname equation*\endcsname\relax
\expandafter\let\csname endequation*\endcsname\relax
%%% This is just to compare the results
\let\iopartcases\cases
%%%
\usepackage{amsmath}
\usepackage{mathtools}
\makeatletter
\newcases{iopcases}{\tqs}
{$\m@th\displaystyle##$\hfil}
{##\hfil}
{\lbrace}
{.}
\makeatother
\begin{document}
In the following display I'll be using \verb|\cases| as
defined by \verb|iopart| in order to check the differences
\[
f(x)=\iopartcases{1 & abc \\ 0 & uvw}
\]
The following display will use \verb|iopcases| as defined
above in order to check the differences
\[
f(x)=\begin{iopcases} 1 & abc \\ 0 & uvw \end{iopcases}
\]
Now we can decide which one to use.
\end{document}
Вы хотите тонкое пространство, как iopart
делает? Измените на
\makeatletter
\newcases{iopcases}{\tqs}
{$\m@th\displaystyle\,##$\hfil}
{##\hfil}
{\lbrace}
{.}
\makeatother
и вы получите
Я бы не стал использовать iopart
в личных целях. Есть несколько других классов, которым не нужны трюки, чтобы использовать базовые инструменты для набора математики.