\documentclass[ukenglish,10pt,a4paper,openany]{book}
\usepackage{babel}
\usepackage[pagestyles]{titlesec}
\titleformat{\chapter}{\normalfont\Large}{\thechapter}{12mm}{}[\titlerule]
\titlespacing*{\chapter}{0pt}{6mm}{1cm}
\titleformat{\section}{\normalfont\large}{\thesection}{8mm}{}
\titlespacing*{\section}{0pt}{5mm}{5mm}
\newpagestyle{main}{
\sethead[\thepage][\chaptertitle][(\thesection] % even
{\thesection)}{\sectiontitle}{\thepage}} % odd
\begin{document}\pagestyle{main}
\chapter{C1}
\section{S1}
\end{document}
生成
"The <format> argument cannot contain horizontal material such as text, \noindent, \makebox, etc."
命令出现错误消息\chapter{C1}
,我不明白为什么。我遗漏了什么?
答案1
这是 LaTeX 内核 2019-10-01 更新中引入的一个错误。在此更新中,一些命令变得更加健壮,并且某些软件包(例如babel
本例)尝试重新定义这些命令。如果这些重新定义没有考虑到新的健壮性,可能会发生不好的事情。
当前问题的出现是因为babel
重新定义\markboth
(没有考虑到它现在很强大),然后它错误地在章节标题中排版当前语言。titlesec
不喜欢这样并引发您看到的错误。
该问题可以归结为:
\documentclass{article}
\usepackage{babel}
\usepackage{titleps}
\newpagestyle{main}{}
\begin{document}
\pagestyle{main}
\section{a}
\end{document}
该错误已修复。如果您遇到此问题,则需要更新babel
。
答案2
我尝试设置英语,成功了。尝试设置编码选项。
\documentclass[english,10pt,a4paper,openany]{book}
%--------------------------------------
%encoding
%--------------------------------------
\usepackage[utf8]{inputenc} %Allow to input letters of national alphabets directly from the keyboard.
\usepackage[T1]{fontenc} %choose a font encoding which has to support specific characters for Spanish language
\usepackage{babel}
\usepackage[pagestyles]{titlesec}
\titleformat{\chapter}{\normalfont\Large}{\thechapter}{12mm}{}[\titlerule]
\titlespacing*{\chapter}{0pt}{6mm}{1cm}
\titleformat{\section}{\normalfont\large}{\thesection}{8mm}{}
\titlespacing*{\section}{0pt}{5mm}{5mm}
\newpagestyle{main}{
\sethead[\thepage][\chaptertitle][(\thesection] % even
{\thesection)}{\sectiontitle}{\thepage}} % odd
\begin{document}\pagestyle{main}
\chapter{C1}
\section{S1}
\end{document}