使用 hskip 移动章节标题时出现 titlesec 错误

使用 hskip 移动章节标题时出现 titlesec 错误

我正在尝试使用 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}{}

这是我的布局图片,供参考。同样,看起来很棒!只是想避免 hskip 错误 :) 在此处输入图片描述

答案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}

在此处输入图片描述

相关内容