XeLaTeX 忽略序言中的 \fontsize 命令

XeLaTeX 忽略序言中的 \fontsize 命令

考虑以下 LaTeX 手稿:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Times}
\begin{document}
    \fontsize{50}{50}\selectfont
    Hello, world!
\end{document}

使用 处理时xelatex,它会呈现如下文本。具体来说,字体大小50pt与预期一致:

大尺寸

如果我现在将\fontsize...\selectfont命令移至序言部分,如下所示:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Times}
\fontsize{50}{50}\selectfont
\begin{document}
    Hello, world!
\end{document}

xelatex忽略尺寸规范,文本会变小:

小尺寸

为什么是这样?

答案1

当 latex 或 xelatex 读取 \begin{document} 时,它会将 fontsize 改回 \normalsize...尝试下一个代码来查看它:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\renewcommand\normalsize{\fontsize{50}{50}\selectfont}

\begin{document}
   Hello, world!
\end{document}

问题是,如果你使用上面的命令,那么 \Large、\small 等也必须更改。因此,更好的解决方案是让命令在文档开头读取:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\AtBeginDocument{\fontsize{50}{50}\selectfont}

\begin{document}
   Hello, world!
\end{document}

编辑:(以下内容不正确) 这样,即使你开始一个部分,或者使用 \Large 等,它也会给你所需的结果

不幸的是你必须手动更改每一个尺寸:

看这里:更改 \Large 等的字体大小。

答案2

设置新的“正常”字体大小还涉及更改 \Large、\small 和一些其他命令以及间距(例如列表)。检查 size10.clo(由您的文档加载)或 scrsize11.clo(由我的文档加载)以了解涉及的内容。存在许多适用于其他字体大小的 .clo 文件,但如果您想更改为任意字体大小,最好使用 KOMA 包中的 scrartcl 之类的类:

\documentclass{scrartcl}
\KOMAoptions{fontsize=50pt}
\usepackage{fontspec}
\setmainfont{Times New Roman}


\begin{document}
Test, \Large large, \tiny tiny
\end{document}

在此处输入图片描述

答案3

如果你的目的只是打印一行大字体,那么在你想输出这行时就声明一下。我认为在序言中发布声明没有什么真正的好处。总是有

\AtBeginDocument{\fontsize{50}{50}\selectfont}

就可以了。

对于定义更大基本字体大小的更普遍问题,由于您使用的是 XeLaTeX 或 LuaLaTeX,因此有一个简单的(或可能过于简单的)解决方案来解决 LaTeX\normalsize在开始文档时出现的问题。请注意,如果您使用 sans 和 mono 字体,您还需要将它们设置为相同的比例。

\documentclass{article}
\usepackage[a3paper]{geometry}
\usepackage{fontspec}

\setmainfont{Times New Roman}[Scale=5]
\linespread{5}

\begin{document}

\section{Humongous}

Some text at 50pt size.
Some text at 50pt size.
Some text at 50pt size.
Some text at 50pt size.
Some text at 50pt size.
Some text at 50pt size.
Some text at 50pt size.
Some text at 50pt size.
Some text at 50pt size.
Some text at 50pt size.
Some text at 50pt size.

\end{document}

在此处输入图片描述

我添加了信息窗口

在此处输入图片描述

相关内容