平均能量损失
\documentclass{article}
\usepackage{menukeys}
\usepackage{enumitem}
\usepackage{xcolor}
\newcommand\alternate{\color{gray}}
\newcommand\alternatereset{\color{black}}
\newcommand\keyify[1]{\keys{\ttfamily#1}}
\newlist{keylist}{description}{1}
\setlist[keylist]{
labelindent = 2ex,
itemsep = -1ex,
font = \alternatereset\keyify,
before = \ttfamily\let\&\alternate
}
\begin{document}
\begin{keylist}
\item[C-M-x] cider-eval-defun-at-point
\&\item[C-c C-c] cider-eval-defun-at-point
\item[C-c C-f] cider-pprint-eval-defun-at-point
\end{keylist}
\end{document}
我希望第二个标签cider-eval-defun-at-point
变灰。我\aftergroup
之前尝试过使用\alternatereset
,但\font
无济于事——事实上,这会抵消效果\&
(可能是因为标签位于组中)。
答案1
我们可以把 reset 添加到每个前面\item
。这立即引发了一个问题:
\&\item[foo] bar & input syntax
\color{gray}\item[foo] bar & \& is expanded
\color{gray}\color{black}\item[foo] bar & \item is 'expanded'
每次我们都会立即重置颜色。那么我们如何解决这个问题呢?
我们可以定义\alternate
吞噬并重新插入到\item
正确的位置:
\def\alternate\item[#1]{\item[#1]\color{gray}}
这将我们的扩展变成:
\&\item[foo] bar & input syntax
\item[foo]\color{gray} bar & \& is expanded
\color{black}\item[foo]\color{gray} bar & \item is 'expanded'
这给了我们正确的序列。
完整 MWE
\documentclass{article}
\usepackage{menukeys}
\usepackage{enumitem}
\usepackage{xcolor}
\usepackage{xpatch}
\def\alternate\item[#1]{\item[#1]\color{gray}}
\newcommand\alternatereset{\color{black}}
\newcommand\keyify[1]{\keys{\ttfamily#1}}
\newlist{keylist}{description}{1}
\setlist[keylist]{
labelindent = 2ex,
itemsep = -1ex,
font = \keyify,
before = \let\&\alternate
\xpretocmd{\item}{\alternatereset}{}{}
\ttfamily
}
\begin{document}
\begin{keylist}
\item[C-M-x] cider-eval-defun-at-point
\&\item[C-c C-c] cider-eval-defun-at-point
\item[C-c C-f] cider-pprint-eval-defun-at-point
\end{keylist}
\end{document}