\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{nicefrac}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{xcolor}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage[lastexercise]{exercise}
\definecolor{DarkBlue}{rgb}{0.00,0.08,0.45} % #000086
\renewcommand{\Question}{ \color{DarkBlue}}
\begin{document}
\section{Minimal Beispiel} \vspace{2cm}
\begin{ExerciseList}
\Exercise{teest}
\Question{Hier steht die Frage?}
\Answer{Hier steht die Antwort}
\end{ExerciseList}
\end{document}
答案1
欢迎使用 TeX.SX!遗憾的是,此包不支持简单的样式设置,因此您需要使用一些技巧。
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage{xcolor}
\usepackage[lastexercise]{exercise}
\definecolor{DarkBlue}{rgb}{0.00,0.08,0.45} % #000086
\let\OldQuestion\Question
\renewcommand{\Question}[1]{\OldQuestion{\color{DarkBlue} #1}}
% in case you also want to color the number:
\renewcommand{\QuestionNB}{{\color{DarkBlue}\arabic{Question}.\ }}
\begin{document}
\section{Minimal Beispiel} \vspace{2cm}
\begin{ExerciseList}
\Exercise{teest}
\Question{Hier steht die Frage?}
\Answer{Hier steht die Antwort}
\end{ExerciseList}
\end{document}
既然你问了,让我简单解释一下发生了什么:
该宏\Question
对你传递给它的参数(大括号内的部分)进行了大量格式化操作。它的定义实际上如下(当然,不需要理解这个定义):
\def\Question{\@InitQuestion\@ifnextchar[\@@Question{\@@Question[]}}%]
现在,如果你说\renewcommand{\Question}{\color{DarkBlue}}
你覆盖了所有这些定义,格式就会丢失。相反,你会得到一个你可能没有想到的相当奇怪的输出。(实际上你很幸运,你根本没有得到错误。)
真正有效的是放置颜色宏在论证内部宏\Question
:\Question{\color{DarkBlue}Steht hier eine Frage?}
。但当然你必须对每一个问题都这样做,我知道你想对所有问题都使用这种颜色,因此正在寻找更好的解决方案。
现在,解决方案实际上是复制原始宏,然后替换原始宏。宏的\let
作用正是如此:它将旧宏的定义复制\Question
到新宏,我将其称为\OldQUestion
。将原始定义存储在其他地方后,我们可以安全地\Question
用重新定义原始宏\OldQuestion{\color{DarkBlue} #1}
。这样,我们就将颜色宏包含在\Question
宏中了。部分#1
代表您传递给宏的参数。我希望这个解释是可以理解的。