我需要将字体大小更改为8pt
,但我只想更改常规文本 - 章节标题、目录和参考书目字体必须保持不变。是否可以按我想要的方式更改它?我尝试documentclass
使用
\documentclass[a4paper,8pt]{<class>}
但似乎它影响了整个文档。
以下是我的序言
\documentclass[a4paper,12pt]{mwrep}
\usepackage[MeX]{polski}
\usepackage[cp1250]{inputenc}
\usepackage[left=3.0cm,right=3cm,top=3.0cm,bottom=3.0cm]{geometry}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{algorithmic}
\usepackage{colortbl}
\usepackage{dcolumn}
\usepackage{float}
\usepackage{tabularx}
\usepackage{longtable}
\usepackage[centerlast]{caption}
\usepackage{multirow}
\usepackage[section] {placeins}
\usepackage{booktabs}
\usepackage{xcolor}
\usepackage{changepage}
%\usepackage{lipsum}
\linespread{1.3}
\makeatletter
\def\hlinewd#1{%
\noalign{\ifnum0=`}\fi\hrule \@height #1 %
\futurelet\reserved@a\@xhline}
\makeatother
\newcommand{\mytoprule}{\specialrule{2pt}{0em}{0em}}
\newcommand{\mybottomrule}{\specialrule{2pt}{0em}{0em}}
\renewcommand{\labelitemii}{$\bullet$}
\setlength{\belowcaptionskip}{-10pt}
\newcommand{\eightptsize}{%
\fontsize{8}{9.5}\selectfont}
答案1
\fontsize{8}{9.5}\selectfont
您应该在命令之后发出命令\tableofcontents
(和其他前置命令),但是前第一章命令。靠近文档末尾,即前书目,您还需要发出命令\normalsize
将字体大小恢复为\normalsize
10pt、11pt 或 12pt(或任何其他值)。
在以下 MWE 中,命令\eightptsize
包含更改字体大小的命令:
\documentclass[a4paper,12pt]{book} % basic font size in this MWE: 12pt
\usepackage[margin=2.5cm]{geometry}
\usepackage{lipsum}
% command to switch to 8pt on a baselineskip of 9.5pt
\newcommand{\eightptsize}{%
\fontsize{8}{9.5}\selectfont}
\begin{document}
\tableofcontents
\eightptsize
\chapter{In the Beginning}
\section{Section 1}
\subsection{Some subsection}
As posited by \cite{x}, we can't know for sure \ldots
\lipsum[1]
\subsection{Another subsection}
\lipsum[2]
%% back to 'normalsize' font size before start of bibliography
\normalsize
\begin{thebibliography}{9}
\bibitem{x}Variable, Random, 2011, ``On Randomness,'' \emph{Journal of Randomness},
Vol.~1, No.~1, pp.\ 1--2.
\end{thebibliography}
\end{document}
您可能会问, 9.5pts 的值从何\baselineskip
而来?我取自此变量的默认定义,即 normalsize 为 10pt 的情况,在这种情况下,命令\footnotesize
会切换到 8pt 字体大小,baselineskip 为 9.5pt。当然,您可能希望行距比 TeX 默认值更大或更小。
编辑:附录——如何处理设置为8pt的文本中脚注的字体大小?
我突然想到,即使您指定除了文本的字体大小之外什么都不要改变,您也应该愿意为脚注的情况做出例外。(我假设您在一本书长度的文档中会有一些脚注!)这样做的原因是,如果您的 documentclass\normalsize
分别设置为 10pt、11pt 或 12pt,脚注文本的字体大小将设置为 8pt、9pt 和 10pt。然而,常见的(几乎通用的?!)排版实践是将脚注的字体大小设置为 1 或 2 磅更小即\normalsize
。例如,假设\normalsize
可能是 12pt,即使文本本身设置为 8pt,您也会将脚注设置为 10pt:至少可以这么说,这看起来很奇怪。解决方案是在\renewcommand
名为 的 LaTeX 宏上执行\footnotesize
。在上面的 MWE 代码中,您必须用\eightptsize
以下代码替换宏的定义(\makeatletter
和\makeatother
命令是必需的,因为要重置的几个命令包含“特殊”字符@
):
\makeatletter
\newcommand{\eightptsize}{
\fontsize{8}{9.5}\selectfont
\renewcommand\footnotesize{%
\@setfontsize\footnotesize{7}{8}%
\abovedisplayskip 5\p@ \@plus2\p@ \@minus3\p@
\abovedisplayshortskip \z@ \@plus\p@
\belowdisplayshortskip 2\p@ \@plus\p@ \@minus1\p@
\belowdisplayskip \abovedisplayskip
}
}
\makeatother
主要的变化是将脚注字体大小设置为 7pt,即比正文字体大小小 1pt。其余代码毫无顾忌地抄袭了 book10.clo 文件中的定义。:-)
编辑:第二个附录--如何修复类文件mwrep?
由于某种原因,您使用的类文件 ( mwrep.cls
) 没有为小节、小小节、段落和小段落的标题指定默认字体大小。要修复此问题,您应该复制此类文件,将其命名为 (例如) ,找到命令、、mwrep-kronos.cls
的四个实例,并在这些命令中找到命令(两次) 和(两次) 的实例。在 4 对空花括号中插入指令。保存新的类文件,并根据需要更新 TeX 文件名数据库。(顺便说一句,您可能需要超级用户权限才能复制/重命名文件并更新文件名数据库。)然后将类文件指定为命令的参数,一切就绪了。\SetSectionFormatting{
subsection
subsection
paragraph
subparagraph}
\FormatHangHeading{}
\FormatRunInHeading{}
\normalsize
mwrep-kronos
\docummentclass
答案2
您可以重新定义命令\normalsize
。为此,您可以使用\normalsize
文档类中的原始代码(您尚未提及),将其复制到序言中并使用\renewcommand
或对其进行修改\def
。
\normalsize
也可以在一个文件中定义.clo
,由你的类加载的类选项文件。
由于章节标题和其他标题通常不使用\normalsize
较大的字体大小,这可以帮助您并且保持较大的标题不受影响。
如果你知道\small
你想要的文本大小,你可以写
\let\normalsize\small
笔记:
\normalsize
调整其他值,例如显示和列表跳过,以及\small
执行\footnotesize
同样操作。这就是\let
上述命令方便的原因。如果合适,也考虑更改
\small
、等。\footnotesize
\scriptsize
尽量保持字体大小一致。
至少
\normalsize
在文档开头调用。
\normalsize
以下是 10pt类的定义book
,作为可能受到影响的值的演示:
\renewcommand\normalsize{%
\@setfontsize\normalsize\@xpt\@xiipt
\abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
\abovedisplayshortskip \z@ \@plus3\p@
\belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
\belowdisplayskip \abovedisplayskip
\let\@listi\@listI}
不过,我建议考虑反过来做:选择 8 pt 基本字体大小,然后根据需要调整标题大小,例如使用包titlesec
。或者重新定义\large
、\Large
、\LARGE
和,它们用于标题。与较小尺寸的命令相比,它们通常仅由一行定义,例如\huge
\Huge
\newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}