为什么使用 \titleformat 时 \subsection 未定义?

为什么使用 \titleformat 时 \subsection 未定义?

我使用 TexLive 和 Sublime Text 3 以及 TexTools。编译时

\title{my title}
\author{
        Foo Men
}
\date{\today}

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}

\titleformat{\subsection}
  {\normalfont\Small\bfseries}{\thesection}{1em}{}[{\titlerule[0.8pt]}]

\begin{document}
\maketitle

\section{Section}
\subsection{subsection}
\end{document}

它可以编译并生成一个看起来不错的 pdf,但我还得到了: foo.tex:18: Undefined control sequence. [\subsection{subsection}]

没有了 \titleformat{\subsection} {\normalfont\Small\bfseries}{\thesection}{1em}{}[{\titlerule[0.8pt]}] 一切都很好。

答案1

未定义的命令不是\subsection\Small。没有命令\Small\small。注意,TeX 区分大小写。因此

\title{my title}
\author{
        Foo Men
}
\date{\today}

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}

\titleformat{\subsection}
{\normalfont\small% Changed!
  \bfseries}{\thesection}{1em}{}[{\titlerule[0.8pt]}]

\begin{document}
\maketitle

\section{Section}
\subsection{subsection}
\end{document}

作品。

顺便说一句:我建议设置所有信息\title\author例如,\date至少在之后\documentclass,因为有些类可能与 LaTeX 内核处理它们不同。所以我会使用

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}

\title{my title}
\author{
        Foo Men
}
\date{\today}

\titleformat{\subsection}
{\normalfont\small% Changed!
  \bfseries}{\thesection}{1em}{}[{\titlerule[0.8pt]}]

\begin{document}
\maketitle

\section{Section}
\subsection{subsection}
\end{document}

甚至

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}

\titleformat{\subsection}
{\normalfont\small% Changed!
  \bfseries}{\thesection}{1em}{}[{\titlerule[0.8pt]}]

\begin{document}
\title{my title}
\author{
        Foo Men
}
\date{\today}

\maketitle

\section{Section}
\subsection{subsection}
\end{document}

相关内容