我正在写一本有关计算机项目的书,我的副标题已编号,格式为“任务 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}