加载 [explicit] 时隐藏宏中的标题格式

加载 [explicit] 时隐藏宏中的标题格式

这是一个后续问题:不同无编号章节的标题格式不同

我有类似以下宏的内容:

\titleformat{\chapter}
  {\normalfont\Huge\color{blue}}
  {}
  {0pt}
  {%
    \begin{minipage}{.4\textwidth}
      #1
    \end{minipage}
  }

#1来自包[explicit]的选项titlesec。如果我尝试将前面的代码放入另一个宏中,如下所示:

\newcommand{\mycustomchapter}{
  \titleformat{\chapter}
   %...
}

编译失败,抱怨该论点。

当该选项到位时,是否可以将\titleformat宏隐藏在另一个宏中?explicit

平均能量损失

\documentclass{book}
\usepackage{xcolor}
\usepackage[explicit]{titlesec}
\newcommand{\mycustomchapter}{
  \titleformat{\chapter}
    {\normalfont\Huge\color{blue}}
    {}
    {0pt}
    {%
      \begin{minipage}{.4\textwidth}
        #1
      \end{minipage}
    }
}

\begin{document}
  \mycustomchapter
  \chapter{My chapter}
  Bla bla bla 
\end{document}

答案1

使用##1而不是#1。但是,该explicit选项很少需要。

更好的是像下面这样:最后一个参数可以\titleformat以一个带有一个参数的宏结束,该宏将被输入标题。

\documentclass{book}
\usepackage{xcolor}
\usepackage{titlesec}

\newcommand{\mycustomchapter}{%
  \titleformat{\chapter}
    {\normalfont\Huge\color{blue}}
    {}
    {0pt}
    {\mycustomchapterformat}%
}
\newcommand{\mycustomchapterformat}[1]{%
   \begin{minipage}{.4\textwidth}
   #1
   \end{minipage}%
}

\begin{document}
  \mycustomchapter
  \chapter{My chapter}
  Bla bla bla 
\end{document}

在此处输入图片描述

相关内容