我花了一段时间才找到错误,但这是一个 MWE。我正在使用我自己的类,如下所示:
\documentclass[fleqn,10pt,twocolumn]{MWEclass}
\usepackage{lipsum} % Required to insert dummy text
\definecolor{pt_Blau_04}{RGB}{20,20,20}
\begin{document}
\makeatletter
\renewcommand\chapter{\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\def\@topnewpage[#1]{#1}
\makeatother
\input{MWEchapter}
\chapter{Something}
\lipsum[7-10]
%\input{MWEchapter2}
%\input{MWEchapter3}
\end{document}
和班级:
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{MWEclass}[17/06/2013, v1.0]
\AtEndOfClass{\RequirePackage{microtype}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
\ProcessOptions*
\LoadClass{report}
\RequirePackage[usenames,dvipsnames,svgnames,table]{xcolor}
\RequirePackage[explicit]{titlesec}
\newlength\mylena
\newlength\mylenb
\setlength\mylena{1.3cm}
\setlength\mylenb{\dimexpr\columnwidth-\mylena\relax}
\newcommand\PlaceNumber[1]{%
\makebox[\mylena][l]{#1}}
\titleformat{\chapter}
{\color{pt_Blau_04}\Large\sffamily\bfseries}
{}
{0em}
{\PlaceNumber{\thechapter}\parbox[t]{\mylenb}{\raggedright#1}}
\titlespacing*{\chapter}{0pc}{3ex \@plus4pt \@minus3pt}{5pt}
如果我想避免每个新章节的分页符(MWEchapter 章节只是口头总结的文本),它最多可以包含两个章节,如果我想包含更多章节,就会出现有关水平模式和 titlesec 包的错误消息。
答案1
错误源于你对 的重新定义\chapter
没有确保在章节标题即将排版时段落结束。因此,
Text\chapter{Foo}
触发错误。
既然你无论如何都在使用titlesec
,我建议删除 的 hacky 重新定义\chapter
,并使用 的接口titlesec
使章节不开始新的页面。这可以通过将 from 的类设置为 来实现。\chapters
然后看起来像这样(参见最后一行):top
straight
MWEclass.cls
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{MWEclass}[17/06/2013, v1.0]
\AtEndOfClass{\RequirePackage{microtype}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
\ProcessOptions*
\LoadClass{report}
\RequirePackage[usenames,dvipsnames,svgnames,table]{xcolor}
\RequirePackage[explicit]{titlesec}
\newlength\mylena
\newlength\mylenb
\setlength\mylena{1.3cm}
\setlength\mylenb{\dimexpr\columnwidth-\mylena\relax}
\newcommand\PlaceNumber[1]{%
\makebox[\mylena][l]{#1}}
\titleformat{\chapter}
{\color{pt_Blau_04}\Large\sffamily\bfseries}
{}
{0em}
{\PlaceNumber{\thechapter}\parbox[t]{\mylenb}{\raggedright#1}}
\titlespacing*{\chapter}{0pc}{3ex \@plus4pt \@minus3pt}{5pt}
\titleclass{\chapter}{straight}%% added
\chapter
并且可以删除主文件中的重新定义。
答案2
这对我有用,只需要重置 cleardoublepage,如果你将它保存在内存中,就可以恢复。
\documentclass{book}
\begin{document}
\chapter{One}
Bla
\chapter{Two}
Bla Bla
%Reset
\makeatletter
\let\cleardoublepage@old\cleardoublepage
\let\cleardoublepage\relax
\makeatother
\chapter{Three}
Bla Bla Bla
%Restore
\makeatletter
\let\cleardoublepage\cleardoublepage@old
\makeatother
\chapter{Four}
Bla Bla Bla
\end{document}