我正在尝试使用 titlesec 设计我的硕士论文的布局,但遇到了一个问题,即 Overleaf/titlesec 在我插入的每个部分/小节上都显示错误。它显示:
软件包 titlesec 错误:以水平模式输入。参数不能包含水平材料,例如文本、\noindent、\makebox 等。
我在 titlesec 代码中使用了 hskip 将节/子节向左移动,结果出现了错误。但是,它仍然有效,我得到了我想要的格式。问题是,随着我添加节,错误会不断累积,这并不理想。有人知道如何在保留 hskip 的同时避免此错误吗?或者应用其他可以移动节而不会出现错误的方法?
这是我的代码(章节标题样式归功于下面链接的帖子中的 Gonzalo Medina。只需稍微修改一下就可以得到我想要的。如何制作此章节标题样式?)
\usepackage{lmodern}
\usepackage{xcolor}
\usepackage{titlesec}
\usepackage{microtype}
% Chapter formatting
\definecolor{new}{RGB}{70,82,155}
\definecolor{myblue}{RGB}{0,82,155}
\titleformat{\chapter}[display]
{\normalfont\bfseries\color{black}}
{\filleft\hspace*{-60pt}%
\rotatebox[origin=c]{90}{%
\normalfont\color{black}\Large%
\textls[180]{\textsc{\chaptertitlename}}%
}\hspace{10pt}%
{\setlength\fboxsep{0pt}%
\colorbox{myblue}{\parbox[c][3cm][c]{2.5cm}{%
\centering\color{white}\fontsize{80}{90}\selectfont\thechapter}%
}}%
}
{10pt}
{\titlerule\vskip2pt\titlerule[2pt]\vskip2pt\titlerule\vskip8pt\fontsize{40}{50}\vskip-72pt\normalfont}
% Section/Subsection formatting
\titleformat{\section}
{\normalfont\Large\hskip-45pt}{\colorbox{myblue}{\parbox[c][0.4cm][c]{0.8cm}{\centering\color{white}\fontsize{16}{40pt}\selectfont\thesection}}}{1em}{}
\titleformat{\subsection}
{\normalfont\large\hskip-45pt}{\colorbox{myblue}{\parbox[c][0.3cm][c]{0.8cm}{\centering\color{white}\fontsize{12}{34pt}\selectfont\thesubsection}}}{1em}{}
答案1
您正在使用水平命令,例如\hskip
在仅允许使用垂直命令的地方,反之亦然。
我重新格式化了一些代码并使用零宽度框而不是猜测它们的宽度。
\documentclass{book}
\usepackage{lmodern}
\usepackage{xcolor}
\usepackage{titlesec}
\usepackage{microtype}
\usepackage{rotating}
% Chapter formatting
\definecolor{new}{RGB}{70,82,155}
\definecolor{myblue}{RGB}{0,82,155}
\titleformat{\chapter}[display]
{\normalfont\bfseries\color{black}}
{%
\hfill
\rotatebox[origin=c]{90}{%
\normalfont\color{black}\Large\textls[180]{\textsc{\chaptertitlename}}%
}%
\hspace{10pt}%
\begingroup
\setlength\fboxsep{0pt}%
\colorbox{myblue}{%
\parbox[c][3cm][c]{2.5cm}{%
\centering\color{white}\fontsize{80}{90}\selectfont\thechapter
}%
}
\endgroup
}
{10pt}
{%
\titlerule
\vspace{2pt}%
\titlerule[2pt]%
\vspace{2pt}%
\titlerule
\vspace{8pt}%
\fontsize{40}{50}\vspace{-72pt}\normalfont
}
% Section/Subsection formatting
\titleformat{\section}
{\normalfont\Large}
{%
\makebox[0pt][r]{%
\colorbox{myblue}{%
\parbox[c][0.4cm][c]{0.8cm}{%
\centering\color{white}\fontsize{16}{40pt}\selectfont\thesection
}%
}%
\hspace*{10pt}%
}%
}
{0pt}
{}
\titleformat{\subsection}
{\normalfont\large}
{%
\makebox[0pt][r]{%
\colorbox{myblue}{%
\parbox[c][0.3cm][c]{0.8cm}{%
\centering\color{white}\fontsize{12}{34pt}\selectfont\thesubsection
}%
}%
\hspace*{10pt}%
}%
}
{0pt}
{}
\begin{document}
\chapter{Test}
\section{Test}
\subsection{Test}
\end{document}