根据以下文本更改章节标题

根据以下文本更改章节标题

我正在写一本有关计算机项目的书,我的副标题已编号,格式为“任务 1”,“任务 2”等。def 文件中的当前代码是:

\titleformat{\subsection}  
 [hang]% shape  
  {\normalfont\large\itshape}% format applied to label+text  
  {Task \thesubsection}% label  
  {1em}% horizontal separation between label and title body  
  {}% before the title body    
  []% after the title body  

但是,我想要两个版本:如果我不在标题正文后指定文本,我只希望它保留为“任务 1”、“任务 2”,但如果我指定一些文本,比如“随机数”,我希望它添加冒号和文本,以显示“任务 1:随机数”。

我该怎么做?谢谢!

答案1

最后一个强制参数可以\titleformat以一个参数宏结尾,该宏将输入标题。我们可以检查标题是否为空。

\documentclass{article}
\usepackage{titlesec}

\titleformat{\subsection}  
  [hang]% shape  
  {\normalfont\large\itshape}% format applied to label+text  
  {Task \thesubsection}% label  
  {0pt}% horizontal separation between label and title body  
  {\perhapscolon}% before the title body    
%  []% after the title body  

\newcommand{\perhapscolon}[1]{%
  \if\relax\detokenize{#1}\relax
    % empty argument, do nothing
  \else
    : #1%
  \fi
}

\begin{document}

\section{Test}

\subsection{Test}

\subsection{}

\end{document}

在此处输入图片描述

相关内容