1

I would like to have variants of assumptions (sub-assumptions, if you like) labeled and referenced as 1a, 2b, etc., without using the amsthm package which is known to conflict with the publisher's house style (INFORMS Management Science style file). MWE:

MWE

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Author template for Management Science (mnsc) for articles with no e-companion (EC)
%% Mirko Janc, Ph.D., INFORMS, [email protected]
%% ver. 0.95, December 2010
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[mnsc,blindrev]{informs3}
%\documentclass[mnsc,nonblindrev]{informs3} % current default for manuscript submission

\OneAndAHalfSpacedXI
%%\OneAndAHalfSpacedXII % Current default line spacing
%%\DoubleSpacedXII
%%\DoubleSpacedXI

% If hyperref is used, dvi-to-ps driver of choice must be declared as
%   an additional option to the \documentclass. For example
%\documentclass[dvips,mnsc]{informs3}      % if dvips is used
%\documentclass[dvipsone,mnsc]{informs3}   % if dvipsone is used, etc.

% Private macros here (check that there is no clash with the style)


%% Setup of theorem styles. Outcomment only one.
%% Preferred default is the first option.
\TheoremsNumberedThrough     % Preferred (Theorem 1, Lemma 1, Theorem 2)
%\TheoremsNumberedByChapter  % (Theorem 1.1, Lema 1.1, Theorem 1.2)
\ECRepeatTheorems

%% Setup of the equation numbering system. Outcomment only one.
%% Preferred default is the first option.
\EquationsNumberedThrough    % Default: (1), (2), ...
%\EquationsNumberedBySection % (1.1), (1.2), ...

% For new submissions, leave this number blank.
% For revisions, input the manuscript number assigned by the on-line
% system along with a suffix ".Rx" where x is the revision number.
\MANUSCRIPTNO{MS-0001-1922.65}

%%%%%%%%%%%%%%%%
\begin{document}
%%%%%%%%%%%%%%%%

\begin{assumption}
    The first assumption.
\end{assumption}

Some text\ldots

\begin{assumption}
    I want this to be displayed and referenced as ``Assumption~2a''.
\end{assumption}

Some text\ldots (If the text here interferes with the solution, it can be omitted.)

\begin{assumption}
    I want this to be displayed and referenced as ``Assumption~2b''.
\end{assumption}

Some text\ldots

\begin{assumption}
    I want this to be displayed and referenced as ``Assumption~3''.
\end{assumption}

%%%%%%%%%%%%%%%%%
\end{document}
%%%%%%%%%%%%%%%%%

The answer to a related question uses the amsthm package. I also tried the answer here but it didn't work either.

*Probably unrelated to the solution: Eventually I would also like to add a prime(') to some of the assumption variants (e.g., Assumption~2b') with this method; so I hope the solution is compatible with it as well.

7
  • Can you use the ntheorem package?
    – Bernard
    Nov 13, 2018 at 20:25
  • @Bernard I just tried loading ntheorem; errors came up. I think the INFORMS style file already defines theorem-related commands so such packages are usually incompatible without first disabling some of the commands in the style file; but that could be tricky to make work.
    – tvk
    Nov 13, 2018 at 20:31
  • In your numbering system (e.g. Assumption 2b) the 2 would be the number of what? A main assumption of a higher level?
    – Bernard
    Nov 13, 2018 at 20:54
  • Are you sub-assumptions meant toi best nested assumption environments? If your MWE can you say what you want the numbering to be? It is easy enough to do this it is just not clear to me what you actually want.
    – user30471
    Nov 13, 2018 at 22:22
  • @Bernard The same "2" would indicate the 2a, 2b, etc. assumptions are in the same "series". I'm actually thinking of alternative assumptions: Assumption 2a. $a > b$. Assumption 2b. $a = b$. Assumption 2c. $a < b$. Something like that. It would be best if the sub-assumptions can automatically count using the alphabet. Similar to subsections counting using Arabic numerals.
    – tvk
    Nov 14, 2018 at 2:22

2 Answers 2

1

Some fighting against small caps, but for the rest quite straightforward.

If you need different consecutive groups of subassumptions, you can just issue \stepcounter{assumption} between the groups.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Author template for Management Science (mnsc) for articles with no e-companion (EC)
%% Mirko Janc, Ph.D., INFORMS, [email protected]
%% ver. 0.95, December 2010
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[mnsc,blindrev]{informs3}
%\documentclass[mnsc,nonblindrev]{informs3} % current default for manuscript submission

\OneAndAHalfSpacedXI
%%\OneAndAHalfSpacedXII % Current default line spacing
%%\DoubleSpacedXII
%%\DoubleSpacedXI

% If hyperref is used, dvi-to-ps driver of choice must be declared as
%   an additional option to the \documentclass. For example
%\documentclass[dvips,mnsc]{informs3}      % if dvips is used
%\documentclass[dvipsone,mnsc]{informs3}   % if dvipsone is used, etc.

% Private macros here (check that there is no clash with the style)


%% Setup of theorem styles. Outcomment only one.
%% Preferred default is the first option.
\TheoremsNumberedThrough     % Preferred (Theorem 1, Lemma 1, Theorem 2)
%\TheoremsNumberedByChapter  % (Theorem 1.1, Lema 1.1, Theorem 1.2)
\ECRepeatTheorems

%% Setup of the equation numbering system. Outcomment only one.
%% Preferred default is the first option.
\EquationsNumberedThrough    % Default: (1), (2), ...
%\EquationsNumberedBySection % (1.1), (1.2), ...

% For new submissions, leave this number blank.
% For revisions, input the manuscript number assigned by the on-line
% system along with a suffix ".Rx" where x is the revision number.
\MANUSCRIPTNO{MS-0001-1922.65}

\newtheorem{subassumption}{Assumption\normalfont}[assumption]
\renewcommand{\thesubassumption}{\theassumption\alph{subassumption}}}

\newenvironment{assumption*}
 {\ifnum\value{subassumption}=0 \stepcounter{assumption}\fi\subassumption}
 {\endsubassumption}
\newenvironment{assumption+}[1]
 {\renewcommand{\thesubassumption}{#1}\subassumption}
 {\endsubassumption}

%%%%%%%%%%%%%%%%
\begin{document}
%%%%%%%%%%%%%%%%

\begin{assumption}\label{a1}
    The first assumption.
\end{assumption}

Some text\ldots

\begin{assumption*}\label{a2a}
    I want this to be displayed and referenced as ``Assumption~2a''.
\end{assumption*}

Some text\ldots (If the text here interferes with the solution, it can be omitted.)

\begin{assumption*}\label{a2b}
    I want this to be displayed and referenced as ``Assumption~2b''.
\end{assumption*}

Some text\ldots

\begin{assumption+}{\ref{a2b}$'$}\label{a2b'}
    I want this to be displayed and referenced as ``Assumption~2b''.
\end{assumption+}

Some text\ldots

\begin{assumption}\label{a3}
    I want this to be displayed and referenced as ``Assumption~3''.
\end{assumption}

References: \ref{a1}, \ref{a2a}, \ref{a2b}, \ref{a2b'}, \ref{a3}.

%%%%%%%%%%%%%%%%%
\end{document}
%%%%%%%%%%%%%%%%%

enter image description here

Different version, introducing a subassumptions environment, modeled on subequations.

I define the auxiliary environment fixedassumption in order to avoid the label 2a printed in small caps.

Note that in this version assumption* is used instead of assumption+ of the previous version.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Author template for Management Science (mnsc) for articles with no e-companion (EC)
%% Mirko Janc, Ph.D., INFORMS, [email protected]
%% ver. 0.95, December 2010
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[mnsc,blindrev]{informs3}
%\documentclass[mnsc,nonblindrev]{informs3} % current default for manuscript submission

\OneAndAHalfSpacedXI
%%\OneAndAHalfSpacedXII % Current default line spacing
%%\DoubleSpacedXII
%%\DoubleSpacedXI

% If hyperref is used, dvi-to-ps driver of choice must be declared as
%   an additional option to the \documentclass. For example
%\documentclass[dvips,mnsc]{informs3}      % if dvips is used
%\documentclass[dvipsone,mnsc]{informs3}   % if dvipsone is used, etc.

% Private macros here (check that there is no clash with the style)


%% Setup of theorem styles. Outcomment only one.
%% Preferred default is the first option.
\TheoremsNumberedThrough     % Preferred (Theorem 1, Lemma 1, Theorem 2)
%\TheoremsNumberedByChapter  % (Theorem 1.1, Lema 1.1, Theorem 1.2)
\ECRepeatTheorems

%% Setup of the equation numbering system. Outcomment only one.
%% Preferred default is the first option.
\EquationsNumberedThrough    % Default: (1), (2), ...
%\EquationsNumberedBySection % (1.1), (1.2), ...

% For new submissions, leave this number blank.
% For revisions, input the manuscript number assigned by the on-line
% system along with a suffix ".Rx" where x is the revision number.
\MANUSCRIPTNO{MS-0001-1922.65}

% not to be used directly
\newcounter{subassumption}
\theoremstyle{TH}
\newtheorem{fixedassumption}[assumption]{Assumption\normalfont}
\newenvironment{subassumptions}
 {%
  \refstepcounter{assumption}%
  \edef\theassumption{\theassumption\noexpand\alph{assumption}}%
  \setcounter{subassumption}{\value{assumption}}%
  \setcounter{assumption}{0}%
  \let\assumption\fixedassumption
  \let\endassumption\endfixedassumption
  \ignorespaces
 }
 {\setcounter{assumption}{\value{subassumption}}\ignorespacesafterend}

\newenvironment{assumption*}[1]
 {\renewcommand{\theassumption}{#1}\fixedassumption}
 {\endfixedassumption}

%%%%%%%%%%%%%%%%
\begin{document}
%%%%%%%%%%%%%%%%

\begin{assumption}\label{a1}
    The first assumption.
\end{assumption}

Some text\ldots

\begin{subassumptions}
\begin{assumption}\label{a2a}
    I want this to be displayed and referenced as ``Assumption~2a''.
\end{assumption}

Some text\ldots (If the text here interferes with the solution, it can be omitted.)

\begin{assumption}\label{a2b}
    I want this to be displayed and referenced as ``Assumption~2b''.
\end{assumption}
\end{subassumptions}

Some text\ldots

\begin{assumption*}{\ref{a2b}$'$}\label{a2b'}
    I want this to be displayed and referenced as ``Assumption~2b''.
\end{assumption*}

Some text\ldots

\begin{assumption}\label{a3}
    I want this to be displayed and referenced as ``Assumption~3''.
\end{assumption}

References: \ref{a1}, \ref{a2a}, \ref{a2b}, \ref{a2b'}, \ref{a3}.

%%%%%%%%%%%%%%%%%
\end{document}
%%%%%%%%%%%%%%%%%
2
  • This looks great! The only issue I realized (which was not explicitly requested in the question) is that if I write two groups of subassumptions consecutively, the assumption counter does not increase for the second group. Hence I defined the following in the preamble: \newcommand{\StartSubassumptions}{\stepcounter{assumption}}; then use \StartSubassumptions before each group of subassumptions and use the subassumption environment as defined directly (without needing the assumption* environment).
    – tvk
    Nov 14, 2018 at 14:40
  • 1
    @FangJing I should have thought of that. I added a simpler trick, but also a new version that does the business with a subassumptions environment.
    – egreg
    Nov 14, 2018 at 15:53
1

Perhaps I misunderstand the question, it seems that this requires two different environments: one for assumptions and one for subassumptions. Under the hood, all of the theorem-like environments use \trivlist so the natural thing to do here is to define new environments that use the same mechanism.

The code below defines two environments, assumption and assumption*, for assumptions and subassumptions. As with the standard theorem-like environments, both of these environments accept an optional argument. Adapting the MWE above, the output is:

enter image description here

Here is the code:

\documentclass{article}

\newcounter{assumption}
\newcounter{subassumption}
\renewcommand\theassumption{Assumption~\arabic{assumption}}
\renewcommand\thesubassumption{\theassumption\alph{subassumption}}
\makeatletter
\@addtoreset{subassumption}{assumption}
\newenvironment{assumption}[1][]{%
  \refstepcounter{assumption}%
  \def\@currentlabel{Assumption~\arabic{assumption}}%
  \if\relax\detokenize{#1}\relax\let\@assumptionextra\relax%
  \else\def\@assumptionextra{\space(#1)}%
  \fi%
  \trivlist\item[\textsc{Assumption}~\arabic{assumption}\@assumptionextra\space]%
    \ignorespaces\itshape%
  }{\endtrivlist}%
\newenvironment{assumption*}[1][]{%
  % change the assumption counter if this is the first subassumption
  \ifnum\value{subassumption}=0\refstepcounter{assumption}\fi%
  \refstepcounter{subassumption}%
  \def\@currentlabel{Assumption~\arabic{assumption}\alph{subassumption}}%
  \if\relax\detokenize{#1}\relax\let\@assumptionextra\relax%
  \else\def\@assumptionextra{\space(#1)}%
  \fi%
  \trivlist\item[\textsc{Assumption}~\arabic{assumption}\alph{subassumption}%
    \@assumptionextra\space]\ignorespaces\itshape%
  }{\endtrivlist}%
\makeatother

\begin{document}

    \begin{assumption}
        The first assumption.
        \label{Assumption1}
    \end{assumption}

    Some text\ldots

    \begin{assumption*}
        I want this to be displayed and referenced as ``Assumption~2a''.
        \label{Assumption2a}
    \end{assumption*}

    Some text\ldots (If the text here interferes with the solution, it can be omitted.)

    \begin{assumption*}
        I want this to be displayed and referenced as ``Assumption~2b''.
        \label{Assumption2b}
    \end{assumption*}

    \begin{assumption*}[$c>a$]
        I want this to be displayed and referenced as ``Assumption~2b''.
        \label{Assumption2c}
    \end{assumption*}

    Some text\ldots

    \begin{assumption}
        I want this to be displayed and referenced as ``Assumption~3''.
        \label{Assumption3}
    \end{assumption}

    Labels: \ref{Assumption1}, \ref{Assumption2a}, \ref{Assumption2b}
    and \ref{Assumption3}

\end{document}

You must log in to answer this question.

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