在“练习”之前和之后添加可选参数

在“练习”之前和之后添加可选参数

我想创建一个练习环境,为其指定两个可选参数,一个出现在“练习”提及之前,另一个出现在定理编号后的括号中。

我正在使用这个amsthm包。

使用基本定理风格,例如

\newtheoremstyle{mystyle}{}{}{}{}{\sffamily\bfseries}{.}{ }{}
\theoremstyle{mystyle}{
    \newtheorem{exo}{\bfseries Exercice}}

下面的代码

\begin{exo}[Nom de l'exo]
Montrer par récurrence sur $n$ que
\end{exo}

给出了这个输出:

在此处输入图片描述

在另一门课程中,我使用了不同的环境来帮助我添加一些内容“练习”:

\newtheoremstyle{exerci}{}{}{}{}{\bfseries}{.}{.5em}{\thmnote{#3}~\thmname{#1}~\thmnumber{#2}}
\theoremstyle{exerci}
\newtheorem{exo}[]{Exercice}

所以

\begin{exo}[\faBatteryThreeQuarters]
Montrer par récurrence sur $n$ que
\end{exo}

给出以下输出:

在此处输入图片描述

现在我不知道如何允许两个都可选参数出现。有人知道如何实现吗?

提前致谢!

答案1

这里您可以输入电池名称(batabatd或不输入任何名称,也可以输入练习名称。

演习指挥

\documentclass[12pt]{article}

\usepackage{amsmath}
\usepackage{ifthen}
\usepackage{fontawesome}



\newcounter{exer}
    \newenvironment{exercice}[2]
    {
    \addtocounter{exer}{1}
    
    \par\medskip\noindent{\textbf{\ifthenelse{\equal{#1}{}}{\hphantom{\bata}}{#1} Exercice {\theexer}\ifthenelse{\equal{#2}{}}{.}{ #2.}}}}
    {\par \medskip}
    
\begin{document}
    \newcommand{\bata}{\faBatteryQuarter}
    \newcommand{\batb}{\faBatteryHalf}
    \newcommand{\batc}{\faBatteryThreeQuarters}
    \newcommand{\batd}{\faBatteryFull}

    \exercice{\bata}{(Dérivation)}
    
        Montrer que la dérivée de la fonction $x \mapsto x^2$ est la fonction $x\mapsto 2x$.
        
    \exercice{\batb}{(Énoncé)}
    
        Faire ce que vous voulez pendant une demi-heure.
        
    \exercice{\batc}{}
        
        Ici, pas de nom d'exercice.

    \exercice{\batd}{(Comme avant)}
    
    \exercice{}{}
    
        Ici, carrément ni batterie, ni nom.
\end{document}

相关内容