使用 FiXme 包自定义更正列表中的背景颜色

使用 FiXme 包自定义更正列表中的背景颜色

假设我正在使用 FiXme 包:

\usepackage{fixme}
\fxsetup{
    status=draft,
    author= ,
    layout=inline,
    theme=color}
\definecolor{fxnote}{rgb}{0,0,0}    % black
\definecolor{fxwarning}{rgb}{0,0,0} % black
\definecolor{fxerror}{rgb}{0,0,0}   % black
\colorlet{fxnotebg}{green}     % define the background colour:
\colorlet{fxwarningbg}{yellow} % define the background colour:
\colorlet{fxerrorbg}{red}      % define the background colour:
% redefine the layout macro:
\makeatletter
\renewcommand*\FXLayoutInline[3]{%
  \@fxdocolon {#3}{%
    \@fxuseface {inline}%
    \begingroup
      \sethlcolor{fx#1bg}%
      \color {fx#1}\ignorespaces \hl{#3\@fxcolon #2}%
    \endgroup}}
\makeatother

其中我有三种不同的背景颜色 - 红色,黄色和绿色 - 分别使用\fxerror{...}\fxwarning{...}和调用\fxnote{...}

如何使这些背景颜色显示在更正列表中?截至目前,注释以传统方式显示,即白色背景上的黑色字符。

答案1

\FXLayoutContentsLine还可以在 Fixmes 列表中重新定义添加背景颜色;可能的重新定义为:

\renewcommand*\FXLayoutContentsLine[3]{%
  \iffx@mode@multiuser%
    \fxaddcontentsline{\ignorespaces#3 \protect\sethlcolor{fx#1bg}\color{fx#1}\hl{\fxnotename{#1}: #2}}%
  \else%
    \fxaddcontentsline{\protect\sethlcolor{fx#1bg}\color{fx#1}\hl{\fxnotename{#1}: #2}}%
  \fi}

一个完整的例子

\documentclass{article}    
\usepackage{xcolor}
\usepackage{soul}
\usepackage{fixme}
\fxsetup{
    status=draft,
    author= ,
    layout=inline,
    theme=color}
\definecolor{fxnote}{rgb}{0,0,0}    % black
\definecolor{fxwarning}{rgb}{0,0,0} % black
\definecolor{fxerror}{rgb}{0,0,0}   % black
\colorlet{fxnotebg}{green!60}     % define the background colour:
\colorlet{fxwarningbg}{yellow!60} % define the background colour:
\colorlet{fxerrorbg}{red!60}      % define the background colour:
% redefine the layout macro:
\makeatletter
\renewcommand*\FXLayoutInline[3]{%
  \@fxdocolon {#3}{%
    \@fxuseface {inline}%
    \begingroup
      \sethlcolor{fx#1bg}%
      \color {fx#1}\ignorespaces \hl{#3\@fxcolon #2}%
    \endgroup}}

\renewcommand*\FXLayoutContentsLine[3]{%
  \iffx@mode@multiuser%
    \fxaddcontentsline{\ignorespaces#3 \protect\sethlcolor{fx#1bg}\color{fx#1}\hl{\fxnotename{#1}: #2}}%
  \else%
    \fxaddcontentsline{\protect\sethlcolor{fx#1bg}\color{fx#1}\hl{\fxnotename{#1}: #2}}%
  \fi}
\makeatother

\begin{document}
\listoffixmes

Some regular text
\fxnote{Some test note}
\fxwarning{Some test warning}
\fxnote{Another test note}
\fxnote{Yet another test note}
\fxerror{Some test error}
\fxwarning{Another test warning}
\fxerror{Another test error}

\end{document}

结果:

在此处输入图片描述

相关内容