我在 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
?)