轮廓包 - 颜色前缀和文本?

轮廓包 - 颜色前缀和文本?

我想使用 outlines 包,并希望用特定颜色为特定级别的线条着色。这是我当前的文档:

\documentclass[12pt,letterpaper]{article}

\usepackage{outlines}
\usepackage{enumitem}

\setenumerate[1]{label=\color{red}\Roman*.}
\setenumerate[2]{label=\color{blue}\Alph*.}
\setenumerate[3]{label=\arabic*.}
\setenumerate[4]{label=\alph*.}

\begin{document}

        \begin{outline}[enumerate]
            \1 Heading type 1
                \2 Heading type 2
                    \3 Outline type 1
                        \4 Outline type 2
        \end{outline}


\end{document}

输出如下:

在此处输入图片描述

我想将文本“标题类型 1”的颜色设为红色,将“标题类型 2”的颜色设为蓝色,以匹配它们的前缀。有没有办法做到这一点,而不必在每个标题上使用 \color 标签?毕竟,我使用 LaTeX 来简化编写大纲的过程,而 \color 标签会使事情变得不必要地复杂。

谢谢你!

答案1

您可以这样做。但是,请注意,LaTeX 无法知道标题何时结束。因此,如果标题之外还有文本,则需要手动设置颜色开关。这是因为您没有将标题标记为标题,即它是非语义标记。

\documentclass[12pt,letterpaper]{article}
\usepackage{outlines,enumitem,xcolor}
\colorlet{mycolour}{black}
\setlist[enumerate]{font=\color{mycolour}, after={\color{black}}}
\setlist[enumerate,1]{label=\Roman*., before={\colorlet{mycolour}{red}\color{mycolour}}}
\setlist[enumerate,2]{label=\Alph*., before={\colorlet{mycolour}{blue}\color{mycolour}}}
\setlist[enumerate,3]{label=\arabic*., before={\colorlet{mycolour}{black}\color{mycolour}}}
\setlist[enumerate,4]{label=\alph*.}
\begin{document}

\begin{outline}[enumerate]
  \1 Heading type 1
  \2 Heading type 2
  \3 Outline type 1
  \4 Outline type 2
\end{outline}

something here

\end{document}

枚举中的彩色文本

相关内容