问题

问题

问题

是否可以为命令编写一个条件语句,根据命令在文档中出现的位置来改变它们,但又与包titlesectocloft包完全兼容?这是原始问题的延伸。原始问题没有解决titlesec/titletoc/tocloft我需要的三个包的问题。

示例情况

当命令出现在正文中时,它应该是

  • 颜色为粗体和黑色。

当它出现在标题中(分段命令:\section \subsection, \paragraph等)时,

  • 使其加粗并呈红色。

在下面的代码中,我\keyword在标题\section和正文中使用了该命令。我希望根据文本所在的位置更改文本的外观。这意味着我需要访问两个条件:

  1. 对于任何类型的分段命令(包括 titlesec 的命令)
  2. 对于身体

示例代码

\documentclass{article}
\usepackage{fontspec}
\usepackage{xcolor}
\usepackage{titlesec}
\usepackage{titletoc,tocloft}

\titleformat{\section}[hang]{\color{blue}\huge\bfseries}{\thesection}{1em}{}
\titleformat{\subsection}[hang]{\color{blue}\bfseries}{\thesubsection}{1em}{}
\titlecontents{section}[0mm]{\color{gray}\large\bfseries\thecontentslabel\quad}{}{}{}
\titlecontents{subsection}[2em]{\color{gray}}{\thecontentslabel\quad}{}{\titlerule*[10pt]{.}\contentspage}

\newcommand{\keyword}[1]{\textbf{#1}}

\begin{document}
\section{Product \keyword{rabunza}}
You can find the information about \keyword{rabunza} on our website.
\end{document}

答案1

正如 Harish Kumar 在评论中所说,egreg 的解决方案在这里也可以工作。

只要将命令中的“colorkeywords”条件设置为 true 即可:

\titleformat{\section}[hang]{\colorkeywordstrue\color{blue}\huge\bfseries}{\thesection}{1em}{}
\titleformat{\subsection}[hang]{\colorkeywordstrue\color{blue}\bfseries}{\thesubsection}{1em}{}
\titlecontents{section}[0mm]{\colorkeywordstrue\color{gray}\large\bfseries\thecontentslabel\quad}{}{}{}
\titlecontents{subsection}[2em]{\colorkeywordstrue\color{gray}}{\thecontentslabel\quad}{}{\titlerule*[10pt]{.}\contentspage}

梅威瑟:

\documentclass{article}
\usepackage{fontspec}
\usepackage{xcolor}
\usepackage{titlesec}
\usepackage{titletoc,tocloft}

\newif\ifcolorkeywords

\DeclareRobustCommand{\keyword}[1]{%
  \textbf{\ifcolorkeywords\color{red}\fi #1}%
}

\titleformat{\section}[hang]{\colorkeywordstrue\color{blue}\huge\bfseries}{\thesection}{1em}{}
\titleformat{\subsection}[hang]{\colorkeywordstrue\color{blue}\bfseries}{\thesubsection}{1em}{}
\titlecontents{section}[0mm]{\colorkeywordstrue\color{gray}\large\bfseries\thecontentslabel\quad}{}{}{}
\titlecontents{subsection}[2em]{\colorkeywordstrue\color{gray}}{\thecontentslabel\quad}{}{\titlerule*[10pt]{.}\contentspage}

\begin{document}

\tableofcontents

\section{Product \keyword{rabunza}}
You can find the information about \keyword{rabunza} on our website.
\end{document} 

输出

在此处输入图片描述

相关内容