如何在多个定理中以不同方式重新定义同一命令

如何在多个定理中以不同方式重新定义同一命令

我想知道是否有办法为您定义的emph每个新命令更新命令。newtcbtheorem

我已经有以下代码,改编自用户 egreg 的旧解决方案。目标是将新颜色emph与定理的一般颜色样式相匹配,但随着定义的自定义定理越多,它变得难以管理:

\documentclass[a4paper, 11pt]{article}           
\usepackage[T1]{fontenc} 
\usepackage[most]{tcolorbox}

\tcbset{
    mytitlebox/.style={ colframe=#1!80!black }
}

\newtcbtheorem[number within=section]%
{definition_}
{Définition}
{mytitlebox=blue}
{def}

\let\oldEmph=\emph
\newenvironment{definition}[3]
  {\renewcommand{\emph}[1]{\textbf{{\color{blue!80!black}##1}}}%
   \begin{definition_}{#1}{#2}{#3}}
  {\end{definition_}}

\newtcbtheorem[number within=section]%
{propriete}
{Propriété}
{mytitlebox=orange}
{propr}
% Not wanting to copy paste the renewcommand code

\begin{document}

\begin{definition}{Titre de la définition}{}
Ceci est une \emph{définition}.
\end{definition}

\begin{propriete}{Titre de la propriété}{}
Ceci est une \emph{propriété}.
\end{propriete}

\end{document}

有什么建议吗?非常感谢!

答案1

如果命令在命令内部使用,tcolorbox则可以将其颜色用于命令中。它可以独立于特定的框

\documentclass[a4paper, 11pt]{article}           
\usepackage[T1]{fontenc} 
\usepackage[most]{tcolorbox}

\tcbset{
    mytitlebox/.style={ colframe=#1!80!black }
}

\newtcbtheorem[number within=section]%
{definition}
{Définition}
{mytitlebox=blue}
{def}

%\let\oldEmph=\emph
%%\newenvironment{definition}[3]
%%  {
%  \renewcommand{\emph}[1]{\textbf{{\color{tcbcolframe}##1}}}%
%%   \begin{definition_}{#1}{#2}{#3}}
%%  {\end{definition_}}

\newcommand{\markcolor}[1]{{\bfseries\color{tcbcolframe}#1}}%

\newtcbtheorem[number within=section]%
{propriete}
{Propriété}
{mytitlebox=orange}
{propr}
% Not wanting to copy paste the renewcommand code

\begin{document}

\begin{definition}{Titre de la définition}{}
Ceci est une \markcolor{définition}.
\end{definition}

\begin{propriete}{Titre de la propriété}{}
Ceci est une \markcolor{propriété}.
\end{propriete}

\end{document}

在此处输入图片描述

相关内容