将定理分解成几个部分

将定理分解成几个部分

在下面的代码中,定理的编号为 1 到 4。但我想在文本中写出名称:我想将假设分解成许多部分。我找到了一些解决方案来获得两个数值(数字和字母),但我没有找到如何保留最后一个定理的编号。

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{ntheorem}
\theoremseparator{:}
\newtheorem{hyp}{Hypothèse}

\begin{document}

\begin{hyp}
    Hypothese 1
\end{hyp}

\begin{hyp}
    Hypothese 2
\end{hyp}

\begin{hyp} %I have to change the environment
    Hypothese 2 A
\end{hyp} %I have to change the environment

\begin{hyp} %I have to change the environment
    Hypothese 2B
\end{hyp} %I have to change the environment
\end{document}

编辑这里是第一个带有“新”问题的答案的代码:我有 4C 4D 4E 而不是 4A 4B 4C

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{ntheorem}

\theoremseparator{:}
\newtheorem{hyp}{Hypothèse}


\newcounter{hyphelper}


\begin{document}

\begin{hyp}
    Hypothese 1
\end{hyp}

\begin{hyp}
    Hypothese 2
\end{hyp}

\makeatletter
\begingroup
\edef\hypval{\the\c@hyp}
\renewcommand{\thehyphelper}{\hypval\Alph{hyphelper}}

\let\thehyp\thehyphelper
\let\c@hyp\c@hyphelper

\begin{hyp} 
    Hypothese 2 A
\end{hyp} 

\begin{hyp} 
    Hypothese 2B
\end{hyp} 
\endgroup
\makeatother

\begin{hyp}
    Hypothese 3
\end{hyp}

\begin{hyp}
    Hypothese 4
\end{hyp}

\makeatletter
\begingroup
\edef\hypval{\the\c@hyp}
\renewcommand{\thehyphelper}{\hypval\Alph{hyphelper}}

\let\thehyp\thehyphelper
\let\c@hyp\c@hyphelper

\begin{hyp} 
    Hypothese 4 A
\end{hyp} 

\begin{hyp} 
    Hypothese 4B
\end{hyp} 
\begin{hyp}
    Hypothese 4C
\end{hyp}
\endgroup
\makeatother

\end{document}

这是带有可接受答案的代码

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}

\usepackage{ntheorem}
\theoremseparator{:}
\newtheorem{hyp}{Hypothèse}
\newtheorem{hyp+}{Hypothèse}[hyp]
\expandafter\renewcommand\csname thehyp+\endcsname{\thehyp\Alph{hyp+}}

\begin{document}

\begin{hyp}
    Hypothèse 1
\end{hyp}

\begin{hyp}
    Hypothèse 2
\end{hyp}

\begin{hyp+}
    Hypothèse 2A
\end{hyp+}

\begin{hyp+}
    Hypothèse 2B
\end{hyp+}

\begin{hyp}
    Hypothèse 3
\end{hyp}

\begin{hyp}
    Hypothèse 4
\end{hyp}

\begin{hyp+}
    Hypothese 4A
\end{hyp+}

\begin{hyp+}
    Hypothese 4B
\end{hyp+}

\begin{hyp+}
    Hypothese 4C
\end{hyp+}


\end{document}

答案1

最简单的方法是定义一个新的环境。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}

\usepackage{ntheorem}
\theoremseparator{:}
\newtheorem{hyp}{Hypothèse}
\newtheorem{hyp+}{Hypothèse}[hyp]
\expandafter\renewcommand\csname thehyp+\endcsname{\thehyp\Alph{hyp+}}

\begin{document}

\begin{hyp}
    Hypothèse 1
\end{hyp}

\begin{hyp}
    Hypothèse 2
\end{hyp}

\begin{hyp+}
    Hypothèse 2A
\end{hyp+}

\begin{hyp+}
    Hypothèse 2B
\end{hyp+}

\begin{hyp}
    Hypothèse 3
\end{hyp}

\end{document}

在此处输入图片描述

答案2

这是一种不需附加软件包的方法,通过存储\c@hyp计数器值并使用另一个计数器进行步进hyphelper

\let\c@hyp\c@hyphelper“强制” LaTeXhyphelper代替hyp\thehyphelper格式化为hypval\Alph{hyphelper}-- 全部在组内使用,以防止后续hyp环境的“污染”。

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{ntheorem}

\theoremseparator{:}
\newtheorem{hyp}{Hypothèse}


\newcounter{hyphelper}


\begin{document}

\begin{hyp}
    Hypothese 1
\end{hyp}

\begin{hyp}
    Hypothese 2
\end{hyp}

\makeatletter
\begingroup
\edef\hypval{\the\c@hyp}
\renewcommand{\thehyphelper}{\hypval\Alph{hyphelper}}

\let\thehyp\thehyphelper
\let\c@hyp\c@hyphelper

\begin{hyp} %I have to change the environment
    Hypothese 2 A
\end{hyp} %I have to change the environment

\begin{hyp} %I have to change the environment
    Hypothese 2B
\end{hyp} %I have to change the environment
\endgroup
\makeatother


\end{document}

在此处输入图片描述

相关内容