我正在 Lyx 中准备我的文档(Koma-script 报告类)。
如果我使用 \KOMAoptions{headings=onelinechapter},则该章节没有前缀
如果没有它,MWE 将生成包含两行章节前缀 + 标题的文件。
\documentclass[fontsize=13pt]{scrreprt}
\usepackage{fontspec}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\RequirePackage{fix-cm}
\usepackage{fontspec}
\setmainfont{Cambria}
\usepackage[english, russian]{babel}
%\usepackage[fontsize=13pt]{scrextend}
\usepackage {setspace}
\onehalfspacing
\usepackage[a4paper, left=2.5cm, right=1cm, top=2cm, nohead]{geometry}
\addtokomafont{disposition}{\rmfamily}
\KOMAoption{chapterprefix}{true}
\KOMAoptions{headings=onelinechapter}
\setkomafont{chapter}{\MakeUppercase}
\setkomafont{chapter}{\rmfamily\mdseries}
\setkomafont{section}{\rmfamily\mdseries}
\usepackage{mathtext}
%\usepackage[backend=biber, style=gost-numeric, bibencoding=utf8, sorting=none, language=auto]{biblatex}
%\usepackage{multirow}
%\usepackage{longtable}
\ifpdf\usepackage{graphicx}\else\usepackage{graphicx}\fi
\usepackage{comment}
%\ifpdf\usepackage{epstopdf}\usepackage{pdfpages}\fi
\graphicspath{{fig/}}
\renewcommand{\appendixfont}{\normalsize\bfseries}
\setcounter{tocdepth}{2}
\makeatother
\usepackage[style=gost-numeric,backend=biber, style=gost-numeric, bibencoding=utf8, sorting=none, language=auto]{biblatex}
\begin{document}
\tableofcontents
\clearpage
\chapter*{{\large{}Введение}}
\addcontentsline{toc}{chapter}{Введение}
\chapter{\textsc{\large{}Литературный обзор}}
\vspace{40pt}
\section{{\normalsize{}один}}
\section{{\normalsize{}два}}
\chapter{\textsc{\large{}Технология приготовления }}
\vspace{40pt}
\section{{\normalsize{}один}}
\section{еще}
\chapter*{{\large{}Литература}}
\end{document}
我想保留前缀,但在同一行并且后面也有一个点。
类似于“第 1 部分。第 1 部分”
这是怎么做到的?我相信\chapterlineswithprefixformat 应该以某种方式使用命令,但不确定。
答案1
您的代码中有几件事您不应该做,例如,将字体大小命令添加到\chapter
和的参数中\section
。KOMA-Script 提供了一个用户界面,可以干净地更改字体。请使用它。
使用 LuaLaTeX 和 XeLaTeX 时,包fix-cm
没有意义。fontspec
默认字体已经是 Latin Modern 的 OTF 版本。fix-cm
适用于旧版欧洲计算机现代和旧版计算机现代。因此它只对 PDFLaTeX 有意义。
注意:\MakeUppercase
不是 KOMA-Script 意义上的字体切换命令。因此您不应将其用作 的参数\setkomafont
。请参阅KOMA-Script 手册有关 的更多信息\setkomafont
。 在您的情况下\setkomafont{chapter}{\MakeUppercase}
完全没用,因为下一个\setkomfont{chapter}{…}
会覆盖并因此停用 的使用\MakeUppercase
。
您不应多次加载软件包。我知道,如果选项相同(即使选项不同,某些软件包也可以),加载软件包是可行的,但下次更改选项或使用软件包时,加载软件包可能会失败。所以不要这样做。
不要使用随机\makeatletter
和\makeatother
。仅在需要的地方使用它们。
另外,您不应\vspace{…}
在标题后使用。KOMA-Script 提供了一个用户界面来更改标题前后的间距。请使用它。
为了改变标题数字的格式,KOMA-Script 提供了诸如 等命令\chapterformat
。\sectionformat
因此,我认为更好的(且最小化的)代码应该是:
\documentclass[fontsize=13pt,headings=nochapterprefix]{scrreprt}
\usepackage{fontspec}
\usepackage{libertine}%\setmainfont{Cambria}% Sorry, Cambria is not a font of TeX Live. Please reactivate the font yourself
\usepackage[english, russian]{babel}
\usepackage[onehalfspacing]{setspace}
\usepackage[a4paper, left=2.5cm, right=1cm, top=2cm, nohead]{geometry}
\addtokomafont{disposition}{\rmfamily}
\renewcommand*{\chapterformat}{\chapapp~\thechapter.\enskip}% or maybe
% \autodot instead of the hard coded "."
\setkomafont{sectioning}{}% don't use \sffamily\bfseries
%\setkomafont{chapter}{\MakeUppercase}% \MakeUppercase is not a font command
% and does not really make sense, when using \scshape
\setkomafont{chapter}{\large}% change size
\setkomafont{section}{\normalsize}% change size
\RedeclareSectionCommand[afterskip=74pt plus 2.25pt minus 3.75pt]{chapter}% increase space after chapter
\begin{document}
\tableofcontents
\addchap{Введение}
\addtokomafont{chapter}{\scshape}% Why not already in the preamble and
% therefor also for the \addchap chapter?
\chapter{Литературный обзор}
\section{один}
\section{два}
\chapter{Технология приготовления}
\section{один}
\section{еще}
\chapter*{Литература}
\end{document}
如果你真的想要\MakeUppercase
,你可以添加类似以下内容:
\renewcommand{\chapterlinesformat}[3]{%
\MakeUppercase{#2#3}%
}
或者
\renewcommand{\chapterlinesformat}[3]{%
#2\MakeUppercase{#3}%
}
或者
\makeatletter
\renewcommand{\chapterlinesformat}[3]{%
\@hangfrom{\MakeUppercase{#2}{\MakeUppercase{#3}}%
}
\makeatother
或者
\makeatletter
\renewcommand{\chapterlinesformat}[3]{%
\@hangfrom{#2}{\MakeUppercase{#3}}%
}
\makeatother
文件序言。
如果您还想将章节前缀添加到页眉中的章节条目(例如,页面样式)headings
,请\chaptermarkformat
参阅KOMA-Script 手册。