Titlesec:缺少数字,视为零且计量单位非法

Titlesec:缺少数字,视为零且计量单位非法

我是新来的,几乎对 Latex 一无所知。抱歉我的英语不好。

环境:Miktex 4.1,TexnicCenter 2.02(64位),模式:LaTeX=>PDF

我搜索了很多。首先,我搜索了将章节放入框架的方法......然后找到了这个:

titlesec 中的背景颜色

这并不是我一直在寻找的东西,但我决定尝试一下。

附加信息:我有 4 个章节。

第一次尝试:

...

\titleformat{\chapter}[display]
{\sffamily\bfseries}%
{}%
{}%
{\begin{adjustwidth}{-0.9in}{-0.8in}%
\tcbset{standard jigsaw,
    colback=ChapterBackColor,
    colframe=ChapterFrameColor,
    opacityback=0.1,
    arc=10pt,
    sharp corners=east,
    width=\linewidth-0.5in}%
\begin{tcolorbox}[rightrule=0mm,leftrule=3mm,toprule=1mm,bottomrule=0.5mm,flush right,halign=flush right,enlarge top by=-2.5cm,enlarge bottom by=1cm]%
\Large{}CHAPTER\huge{} \Roman{chapter}\strut\\[0.3ex] #1\end{tcolorbox}\end{adjustwidth}}

...


E D I T

好的。由于我的项目包含大量垃圾,我需要为您准备可编译的小样本。这样我就找到了vertical mode消息中的错误。甚至没什么可说的。

但仍然有错误,我相信我使用时做错了titleformat。我有四个章节和四个错误:

! Missing number, treated as zero

以及四个错误:

! Illegal unit of measure (pt inserted)

要编译的代码:...

\documentclass[a4paper,11pt,oneside]{book}
\usepackage[top=1in,bottom=1in,left=1.2in,right=0.8in,headsep=10pt,a4paper]{geometry}
\usepackage{changepage}
\usepackage{polski}
\usepackage[utf8]{inputenc}
\usepackage{avant}
\usepackage{mathptmx}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\definecolor{ChapterFrameColor}{RGB}{222, 66, 44}
\definecolor{ChapterBackColor}{RGB}{255, 222, 111}
\definecolor{ChapterForeColor}{RGB}{ 55, 16, 11}
\definecolor{ListingFrameColor}{RGB}{200, 80, 50}
\definecolor{ListingBackColor}{RGB}{231, 227, 201}
\definecolor{ListingNumColor}{RGB}{251, 249, 241}
\usepackage{tcolorbox}
\usepackage{array}
\usepackage[colorlinks=true,linkcolor=blue,urlcolor=black,bookmarksopen=true]{hyperref}
\usepackage[
    open,
    openlevel=2,
    atend
]{bookmark}[2011/12/02]
\usepackage{tikz}
%
%
%
\usepackage[explicit]{titlesec}
%
\titleformat{\chapter}[display]
{\sffamily\bfseries}%
{}%
{}%
{%
%
\begin{adjustwidth}{-0.9in}{-0.8in}%
\tcbset{standard jigsaw,
    colback=ChapterBackColor,
    colframe=ChapterFrameColor,
    opacityback=0.1,
    arc=10pt,
    sharp corners=east,
    width=\linewidth-0.5in}%
%
\begin{tcolorbox}[rightrule=0mm,leftrule=3mm,toprule=1mm,bottomrule=0.5mm,flush right,halign=flush right,enlarge top by=-2.5cm,enlarge bottom by=1cm]%
\Large{}CHAPTER\huge{} \Roman{chapter}\strut\\[0.3ex]#1\end{tcolorbox}\end{adjustwidth}%
%
}
%
%
%
\usepackage{lipsum}
\tcbuselibrary{minted,skins}
\newtcblisting{mynumcpp}[1][]{listing engine=minted,
minted style=vs,
minted language=cpp,
minted options={fontsize=\small,breaklines,linenos,autogobble,numbersep=3mm,#1},
colback=ListingBackColor,colframe=ListingFrameColor,listing only,
left=7mm,enhanced,
overlay={\begin{tcbclipinterior}\fill[ListingNumColor] (frame.south west)
rectangle ([xshift=7mm]frame.north west);\end{tcbclipinterior}}}
%
\newtcblisting{mycpp}{listing engine=minted,
minted style=vs,
minted language=cpp,
minted options={fontsize=\small,breaklines,autogobble},
colback=ListingBackColor,colframe=ListingFrameColor,listing only,
enhanced}
%
\frenchspacing
\pagestyle{headings}

\begin{document}
\part{Part One}
\chapter{Some chapter}
\section{Section name A}
\lipsum[1-2]
\begin{mycpp}
int main() {
    printf("hello, world");
    return 0;
}
\end{mycpp}
\lipsum[3-4]
\chapter{Some other chapter}
\section{Section name B}
\lipsum[5-6]
\chapter{Chapter name}
\section{Section name C}
\lipsum[7-8]
\part{Part Two}
\chapter{4th chapter}
\section{Section name D}
\lipsum[5-6]

\end{document}

...

minted如果这会是一个问题的话,我可以使用 - 来删除碎片。

我不知道是否应该更改该主题的标题或保留其原样。


E D I T - 2

Solution<sep>:必须给出论据。

答案1

第三个强制参数必须\titleformat包含长度,即使您需要 0pt。

这是您的序言的重新组织版本,其中包加载和设置被明确分开。

特别是,我建议使用babel而不是polski(这会产生一些奇怪的效果)和newtx而不是mathptmx

我加载titlesec时不使用explicit,这样就可以准备适合编号和未编号章节的代码,而不会出现代码重复。其思路是将章节标题传递到最后一个强制参数的代码中,因此它将被视为尾随参数。

在我看来,每个选项使用一行更好,这样可以更清楚地看到您已激活的内容,并尝试停用或更改其中的一些。

\documentclass[a4paper,11pt,oneside]{book}
\usepackage[top=1in,bottom=1in,left=1.2in,right=0.8in,headsep=10pt,a4paper]{geometry}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}
%\usepackage{polski}
\usepackage[polish]{babel}

\usepackage{changepage}
\usepackage{avant}
%\usepackage{mathptmx}
\usepackage{newtxtext,newtxmath}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage{tcolorbox}
\tcbuselibrary{minted,skins}
\usepackage{titlesec}
\usepackage{array}
\usepackage{lipsum}

\usepackage[
  colorlinks=true,
  linkcolor=blue,
  urlcolor=black,
  bookmarksopen=true
]{hyperref}
\usepackage[
    open,
    openlevel=2,
    atend
]{bookmark}[2011/12/02]

\definecolor{ChapterFrameColor}{RGB}{222, 66, 44}
\definecolor{ChapterBackColor}{RGB}{255, 222, 111}
\definecolor{ChapterForeColor}{RGB}{ 55, 16, 11}
\definecolor{ListingFrameColor}{RGB}{200, 80, 50}
\definecolor{ListingBackColor}{RGB}{231, 227, 201}
\definecolor{ListingNumColor}{RGB}{251, 249, 241}

\titleformat{name=\chapter}[display]
  {\sffamily\bfseries}
  {}
  {0pt}%
  {\bombadilchapter{1}}
\titleformat{name=\chapter,numberless}[display]
  {\sffamily\bfseries}
  {}
  {0pt}%
  {\bombadilchapter{0}}

\newcommand{\bombadilchapter}[2]{%
  \begin{adjustwidth}{-0.9in}{-0.8in}
  \begin{tcolorbox}[
    standard jigsaw,
    colback=ChapterBackColor,
    colframe=ChapterFrameColor,
    opacityback=0.1,
    arc=10pt,
    sharp corners=east,
    width=\linewidth-0.5in,
    rightrule=0mm,
    leftrule=3mm,
    toprule=1mm,
    bottomrule=0.5mm,
    flush right,
    halign=flush right,
    enlarge top by=-2.5cm,
    enlarge bottom by=1cm
  ]
  \ifnum#1=0
    \huge\strut\\[0.3ex]
  \else
    \Large \MakeUppercase{\chaptertitlename} \huge\Roman{chapter}\strut\\[0.3ex]
  \fi
  #2%
  \end{tcolorbox}
  \end{adjustwidth}
}


\newtcblisting{mynumcpp}[1][]{
  listing engine=minted,
  minted style=vs,
  minted language=cpp,
  minted options={
    fontsize=\small,
    breaklines,
    linenos,
    autogobble,
    numbersep=3mm,
    #1,
  },
  colback=ListingBackColor,
  colframe=ListingFrameColor,
  listing only,
  left=7mm,
  enhanced,
  overlay={%
    \begin{tcbclipinterior}
      \fill[ListingNumColor] (frame.south west) rectangle ([xshift=7mm]frame.north west);
    \end{tcbclipinterior}%
  },
}

\newtcblisting{mycpp}{
  listing engine=minted,
  minted style=vs,
  minted language=cpp,
  minted options={
    fontsize=\small,
    breaklines,
    autogobble
  },
  colback=ListingBackColor,
  colframe=ListingFrameColor,
  listing only,
  enhanced,
}

\frenchspacing
\pagestyle{headings}

\begin{document}
\part{Part One}

\chapter*{Introduction}

\lipsum[1-2]

\chapter{Some chapter}
\section{Section name A}
\lipsum[1-2]
\begin{mycpp}
int main() {
    printf("hello, world");
    return 0;
}
\end{mycpp}
\lipsum[3-4]
\chapter{Some other chapter}
\section{Section name B}
\lipsum[5-6]
\chapter{Chapter name}
\section{Section name C}
\lipsum[7-8]
\part{Part Two}
\chapter{4th chapter}
\section{Section name D}
\lipsum[5-6]

\end{document}

在此处输入图片描述

相关内容