在 LaTex 中新定义的环境中更改文本颜色

在 LaTex 中新定义的环境中更改文本颜色

我在 LaTex 代码中定义了一个新的示例环境,我想自动更改示例细节的颜色。我曾尝试使用该包xcolor并在新环境中定义颜色(通过在 \newenvironment{exa}[1] 后的 [] 中插入 \color{Mahogany}),但它不起作用。

以下是 MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amsthm}
\usepackage[dvipsnames]{xcolor}
\newcounter{exa}[section]
\newenvironment{exa}[1][]{\refstepcounter{exa}\par\medskip 
\noindent \textbf{Example ~\theexa. #1} \rmfamily }{\medskip}
\begin{document}
\section{Introduction}
\begin{exa}[I want to color this text] This is an example. 
\end{exa}
\end{document}

请帮助我。谢谢。

答案1

我不太清楚你想把它放在哪里,\color但这个有效(假设拼写Mahogany正确:-)

\documentclass{article}

\usepackage[dvipsnames]{xcolor}

\newcounter{exa}[section]
\newenvironment{exa}[1][]{%
   \refstepcounter{exa}\par\medskip\noindent
   \textbf{Example ~\theexa. \textcolor{Mahogany}{#1}} %<-- You are introducing a space here
   \rmfamily % <-- I don't quite see the point of this
   \ignorespaces
 }{\par\medskip}

\begin{document}
\section{Introduction}
\begin{exa}[I want to color this text]
This is an example. 
\end{exa}
\end{document}

在此处输入图片描述

我会选择如下的间距,但这只是我的喜好。

\newenvironment{exa}[1][]{%
   \refstepcounter{exa}\par\medskip\noindent
   \textbf{Example ~\theexa.}
   \if\relax\detokenize{#1}\relax\else\enspace\textcolor{Mahogany}{\bfseries#1}\fi
   \rmfamily % <-- I don't quite see the point of this
   \enspace
   \ignorespaces
 }{\par\medskip}

在此处输入图片描述

(顺便问一下,如果你加载的话为什么要手动定义它amsthm?)

相关内容