\titleformat* 问题

\titleformat* 问题

我用了并尝试如下图所示添加下划线这里

单独工作得很好,但每当我尝试添加行

\titleformat*{\section}{\bfseries\sectionfont}{\thesubsection}{1em}{#1}[{\titlerule[0.8pt]}]

代替

\titleformat*{\section}{\bfseries\sectionfont} 它说

丢失的\begin{document}. ...ion}{\bfseries\sectionfont}{\thesubsection

\documentclass[12pt,a4paper]{article}

\usepackage[explicit]{titlesec} % control over title section
\usepackage{fontspec}       % change to system font
\usepackage{anyfontsize}    % changing font size any
\usepackage{graphicx}   % import figure
\usepackage{setspace}   % line gap => \setstretch
\usepackage{parskip}    % linegap => \linespread
\usepackage{gensymb}    % degree symbol
\usepackage{ragged2e}   % Text alignment
\usepackage{xcolor} % changing color
\usepackage{sectsty}    % underline section

\definecolor{Nblack}{rgb}{0,0,0}
\newfontfamily\sectionfont[Color=Nblack,Scale=1.34]{Arial}
\newfontfamily\subsectionfont[Color=Nblack,Scale=1.34]{Garton Medium}
\newfontfamily\subsubsectionfont[Color=Nblack,Scale=1.34]{Garton Medium}

\titleformat{\section}{\bfseries\sectionfont}{\thesubsection}{1em}{#1}[{\titlerule[0.8pt]}]
\titleformat{\subsection}{\subsectionfont}
\titleformat{\subsubsection}{\itshape\subsubsectionfont}

\begin{document}
\section{Introduction}
\end{document}

或者如果我删除[explicit]并添加*\titleformat

定义中的参数编号非法\ttlf@section. ...esubsection}{1em}{#1}[{\titlerule[0.8pt]}]

另外,喜欢第一个单词大写,其他单词小写

答案1

\titleformat和的语法\titleformat*非常不同;后者只接受两个参数,而前者更为复杂。

很少需要explicit:最后一个强制参数可以\titleformat以单参数宏结束,如下例所示。

还要注意,titlesecsectsty彼此不兼容。由于您需要前者来实现其高级功能,因此请不要加载sectsty

\documentclass[12pt,a4paper]{article}

\usepackage{fontspec}       % change to system font
\usepackage{titlesec} % control over title section

\ExplSyntaxOn
\NewDocumentCommand{\firstword}{m}
 {
  \seq_set_split:Nnn \l_tmpa_seq {~} {#1}
  \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl
  \seq_put_left:Nn \l_tmpa_seq {\MakeUppercase{\l_tmpa_tl}}
  \seq_use:Nn \l_tmpa_seq {~}
 }
\ExplSyntaxOff

\newfontfamily\sectionfont{TeX Gyre Heros}
\newfontfamily\subsectionfont{TeX Gyre Heros}

\titleformat{\section}
  {\bfseries\scshape\sectionfont}
  {\thesection}
  {1em}
  {}
  [{\titlerule[0.8pt]}]
\titleformat*{\subsection}{\subsectionfont}
\titleformat*{\subsubsection}{\itshape\subsectionfont}

\begin{document}
\section{Introduction and something else}
\subsection{Subsection}
\subsubsection{Subsubsection}
\end{document}

我使用了系统上已有的字体(建议您不要使用 Garton)。

\firstword宏在空格处分割参数,隔离第一个项,将其封闭起来\MakeUppercase并最后恢复它以打印由空格分隔的所有项。

在此处输入图片描述

相关内容