更改字体大小而不影响章节、目录和参考书目标题

更改字体大小而不影响章节、目录和参考书目标题

我需要将字体大小更改为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将字体大小恢复为\normalsize10pt、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{ subsectionsubsectionparagraphsubparagraph}\FormatHangHeading{}\FormatRunInHeading{}\normalsizemwrep-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}}

相关内容