我想使用 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}