部分命令不起作用

部分命令不起作用

以下 LaTeX 代码在我的笔记本电脑上运行良好,但在我朋友的电脑上却不行。我们都在使用 Texmaker。问题似乎出在 section 命令上,它给了我错误消息:“缺少数字,视为零”和“非法计量单位(插入 pt)”

\documentclass[12pt,DIV = 15, titlepage,bibtotoc]{scrreprt}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{fourier,avant}
\usepackage[pdftex]{graphicx}
\usepackage[font=footnotesize,bf,sf]{caption}
\usepackage[onehalfspacing]{setspace}
\parindent0pt
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{textcomp}
\usepackage{wallpaper}
\usepackage{hyperref}
\usepackage[top=1in,bottom=1in,left=1in,right=1in]{geometry}

\usepackage{titlesec, blindtext, color}
\definecolor{gray75}{gray}{0.75}
\newcommand{\hsp}{\hspace{20pt}}
\titleformat{\chapter}[hang]{\Huge\bfseries}{\thechapter\hsp\textcolor{gray75}{|}\hsp}{0pt}{\huge\bfseries}


\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{#1}}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\fancyhf{}
\fancyhead[L]{\leftmark}
\fancyhead[R]{\rightmark}
\cfoot{\thepage} 




\begin{document}
\chapter{works}
\subsection*{Doesn't}
Why not?
\end{document}

这可能是什么问题?

答案1

不要将包titlesec与 KOMA-Script 类一起使用。使用 KOMA-Script 命令可以获得与章节标题相同的格式。

\renewcommand\chapterformat{%
  \thechapter\hspace*{20pt}\textcolor{gray75}{|}\hspace*{20pt}%
}
\addtokomafont{chapter}{\Huge\rmfamily}

补充说明:

  • 对 option 使用新的语法bibliography=totoc
  • 删除pdftex包的选项graphicx
  • 如果应该用\parskip\parindent标记新段落,请使用 class 选项parskip及其值之一fullhalf等等(请参阅 KOMA-Script 文档)。
  • 您的示例中无需加载包。您可以使用或caption更改标题及其标签的字体。\addtokomafont\setkomafont
  • hyperref应该是最后一个包。

在此处输入图片描述

代码:

\documentclass[12pt,DIV = 15,titlepage,
  bibliography=totoc % <- changed syntax
]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{fourier,avant}
\usepackage{graphicx} % <-remove option pdftex
\usepackage[onehalfspacing]{setspace}
\setlength{\parindent}{0pt} % <- do really want no paragraph mark?
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{textcomp}
\usepackage{wallpaper}

\usepackage[top=1in,bottom=1in,left=1in,right=1in]{geometry}

\usepackage{color}
\definecolor{gray75}{gray}{0.75}

\renewcommand\chapterformat{%
  \thechapter\hspace*{20pt}\textcolor{gray75}{|}\hspace*{20pt}%
}
\addtokomafont{chapter}{\Huge\rmfamily}

\addtokomafont{caption}{\footnotesize}% <- instead using package caption
\addtokomafont{captionlabel}{\bfseries\sffamily}% <- <- instead using package caption

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{#1}}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\fancyhf{}
\fancyhead[L]{\leftmark}
\fancyhead[R]{\rightmark}
\cfoot{\thepage} 

\usepackage{blindtext}% dummy text
\usepackage{hyperref}% last package

\begin{document}
\chapter{works}
\subsection*{Doesn't}
Why not?
\begin{figure}[htb]
  \centering
  \rule{3cm}{2cm}%
  \caption{A caption}%
\end{figure}
\blinddocument
\end{document}

请注意,如果您使用fancyhdrKOMA-Script 类,则必须重新定义\fancyhead\fancyfoot(如在代码中一样)删除旧的字体命令等\sl

但是 KOMA-Script 文档中页眉和页脚的推荐包是scrlayer-scrpage

\documentclass[12pt,DIV = 15,titlepage,
  bibliography=totoc % <- changed syntax
]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{fourier,avant}
\usepackage{graphicx} % <-remove option pdftex
\usepackage[onehalfspacing]{setspace}
\setlength{\parindent}{0pt} % <- do really want no paragraph mark?
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{textcomp}
\usepackage{wallpaper}

\usepackage[top=1in,bottom=1in,left=1in,right=1in]{geometry}

\usepackage{color}
\definecolor{gray75}{gray}{0.75}

\renewcommand\chapterformat{%
  \thechapter\hspace*{20pt}\textcolor{gray75}{|}\hspace*{20pt}%
}
\addtokomafont{chapter}{\Huge\rmfamily}

\addtokomafont{caption}{\footnotesize}% <- instead using package caption
\addtokomafont{captionlabel}{\bfseries\sffamily}% <- <- instead using package caption

\usepackage[autooneside=false,automark,headsepline]{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{\leftmark}
\ohead{\rightmark}
\cfoot*{\pagemark}
\addtokomafont{pageheadfoot}{\upshape}
\renewcommand\chaptermarkformat{}
\renewcommand\sectionmarkformat{}

\usepackage{blindtext}% dummy text
\usepackage{hyperref}
\begin{document}
\chapter{works}
\subsection*{Doesn't}
Why not?
\begin{figure}[htb]
  \centering
  \rule{3cm}{2cm}%
  \caption{A caption}%
\end{figure}
\blinddocument
\end{document}

也许您也可以删除包wallpaper,因为您可以定义一个附加层来使用背景图像。


titlesec如果你确实想与 KOMA-Script 类一起使用,并且你拥有titlesec版本 2.10.2,那么你必须安装KOMA-Script 3.20 预发布版。如果您的titlesec是版本 2.10.1,那么您也必须更新此包。

相关内容