这单独工作得很好,但每当我尝试添加行
\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
以单参数宏结束,如下例所示。
还要注意,titlesec
和sectsty
彼此不兼容。由于您需要前者来实现其高级功能,因此请不要加载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
并最后恢复它以打印由空格分隔的所有项。