使用Xeletex和fontspec的自定义类中的Fontsize
我正在研究两个属于同一类的乳胶模板(信件、文章、报告)。除了一个目标外,我几乎实现了所有目标,即使用使用Xeletex和fontspec的自定义类中的Fontsize,fonts,xelatex,fontspec,Fonts,Xelatex,Fontspec,我正在研究两个属于同一类的乳胶模板(信件、文章、报告)。除了一个目标外,我几乎实现了所有目标,即使用\documentclass[.pt]{}命令更改字体大小,无论使用9pt还是12pt,我的文档看起来都一样。如何确保这对我的自定义类正确工作 只是一些旁注,我使用Xeletex编译文档,同时使用fontspec包和\setromanfont{DejaVu Serif}命令安装字体(DejaVu Family)。这些类可以在族中的衬线字体和无衬线字体之间切换 下面是我的最简单的工作示例: 由let
\documentclass[.pt]{}
命令更改字体大小,无论使用9pt还是12pt,我的文档看起来都一样。如何确保这对我的自定义类正确工作
只是一些旁注,我使用Xeletex编译文档,同时使用fontspec包和\setromanfont{DejaVu Serif}
命令安装字体(DejaVu Family)。这些类可以在族中的衬线字体和无衬线字体之间切换
下面是我的最简单的工作示例:
由letter.tex
文件组成
%!TeX编码=UTF-8
% !TEX TS程序=xelatex
\文档类[12点,英国]{字母Bram}
%发送者信息
\签名{发件人全名}
\地址{发件人\\地址行1\\地址行2\\Country}
\开始{document}
\开始{信函}{收件人\\组织机构\\地址行1\\地址行2\\Country}
\正在打开{亲爱的收件人,}
这封信由发件人发送给收件人,并采用无衬线字体。该类具有以下类设置:
\开始{description}
\项[sans]将文档和数学转换为无衬线字体。
\item[lanuage]您可以像普通语言一样指定语言。例如\enquote*{dutch}、\enquote*{british}、\enquote*{german},默认为\enquote*{american}。我建议指定一种语言,因为这会设置引号、日期符号、连字符等。
\结束{说明}
下面是一个示例等式:
\开始{等式}
a x^2+b x+c=0
\结束{方程}
这可以用标准的$abc$公式来解决。
\结束{亲切问候,}
\结束{字母}
\结束{document}
这是字母Bram.cls
类文件
\NeedsTeXFormat{LaTeX2e}
\ProvideClass{letter Bram}[2019/07/01 v1.1 letter Bram]
%%%%%%%%%%%%%%%%%%%%%
%新类别选项%
%%%%%%%%%%%%%%%%%%%%%
\纽伊夫\if@sans
\声明{sans}{\@sanstrue}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}
\ProcessOptions\relax
\装入类{字母}
%%%%%%%%%%%%%%%%%
%加载包%
%%%%%%%%%%%%%%%%%
\usepackage{babel}
\在选择数学字体之前,需要重新打包[fleqn]{amsmath}%
\RequirePackage{csquotes}%正确的引号
%%%%%%%%%%%%%%
%加载字体%
%%%%%%%%%%%%%%
\RequirePackage{fontspec}
\setromanfont{DejaVu Serif}%打开Serif字体。
\setsansfont{DejaVu Sans}%打开Sans字体。
\setmonofont{DejaVu Sans Mono}%打开Mono字体。
\if@sans
\更新命令{\familydefault}{\sfdefault}
\RequirePackage{arevmath}%数学字体,在样式上与DejaVu Sans相同,但更好的是a、nu、omega、l、x等
\SetSymbolFont{symbols}{bold}{OMS}{zavm}{m}{n}%超出粗体数学符号的警告
\否则
\usepackage{unicode math}
\setmathfont{DejaVu Math TeX Gyre}%数学字体的样式和大小与DejaVu衬线相同
\SetSymbolFont{symbols}{bold}{OMS}{zavm}{m}{n}
\fi
我很确定我遗漏了一些非常明显的东西,但找不到。两个问题:
- 您的类正在加载
类,但将其选项传递给字母
类。下定决心,你到底想要这两门课中的哪一门文章
不是有效选项,请尝试使用9pt
与10pt
12pt
谢谢,我自己也应该知道的:-(.移动到letter类修复了我的问题。9pt在MWE中是一个问题,奇怪的是它没有出错,但会导致10pt的字体大小。@aijLag它不会出错,因为类无法知道未知选项是否可能来自稍后加载的包以及documentclass选项传递到的包。这很有意义。t汉克斯。@aijLag不客气!
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{letter-Bram}[2019/07/01 v1.1 letter-Bram]
%%%%%%%%%%%%%%%%%%%%%
% NEW CLASS OPTIONS %
%%%%%%%%%%%%%%%%%%%%%
\newif\if@sans
\DeclareOption{sans}{\@sanstrue}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{letter}}
\ProcessOptions\relax
\LoadClass{letter}
%%%%%%%%%%%%%%%%%
% LOAD PACKAGES %
%%%%%%%%%%%%%%%%%
\usepackage{babel}
\RequirePackage[fleqn]{amsmath} % needs before math font selection
\RequirePackage{csquotes} % proper quotation marks
%%%%%%%%%%%%%%
% LOAD FONTS %
%%%%%%%%%%%%%%
\RequirePackage{fontspec}
\setromanfont{DejaVu Serif} % open serif font.
\setsansfont{DejaVu Sans} % open sans font.
\setmonofont{DejaVu Sans Mono} % open mono font.
\if@sans
\renewcommand{\familydefault}{\sfdefault}
\RequirePackage{arevmath} % math font that is equal in style DejaVu Sans, but better a, nu, omega, l, x ect
\SetSymbolFont{symbols}{bold}{OMS}{zavm}{m}{n} % surpress warning of bold math sybols
\else
\usepackage{unicode-math}
% \setmathfont{DejaVu Math TeX Gyre} % math font equal in style and size to DejaVu Serif
\SetSymbolFont{symbols}{bold}{OMS}{zavm}{m}{n}
\fi