使用 XeLatex 和 fontspec 自定义类中的字体大小

如何解决使用 XeLatex 和 fontspec 自定义类中的字体大小

我正在研究几个属于一起的乳胶模板(信件、文章、报告)。我几乎实现了所有目标,除了一个目标,使用 \documentclass[.pt]{} 命令更改字体大小,无论我使用 9pt 还是 12pt,我的文档看起来都一样。我如何确保这对我的自定义类正常工作?

只是一些旁注,我使用 XeLaTex 编译我的文档,同时我使用 fontspec 包和 \setromanfont{DejaVu Serif} 命令安装字体(DejaVu 系列)。这些类可以选择在系列中的 serif 和 sans-serif 字体之间切换。

这是我的最小工作示例:letter.tex 文件组成。

% !TeX encoding = UTF-8
% !TEX TS-program = xelatex

\documentclass[12pt,british]{letter-Bram}

% Sender information
\signature{Sender Full Name}
\address{Sender\\ Adress line 1\\ Adress line 2\\ Country}

\begin{document}
\begin{letter}{Recipient\\ Organization\\ Adress line 1\\ Adress line 2\\ Country}
    \opening{Dear Recipient,}
    This letter is send from the sender to the recipient,and styled in a sans-serif font. The class has the following class settings:
    \begin{description}
        \item[sans] To turn the document and math into a sans serif font.
        \item[lanuage] You can specify the language like normal. For example \enquote*{dutch},\enquote*{british},\enquote*{german},defaults to \enquote*{american}. I recommend specifying a language as this does set quotation marks,date notations,hyphenation and others.
    \end{description}

    Here is an example equation:
    \begin{equation}
        a x^2 + b x + c = 0
    \end{equation}
    which can be solved with the standard $abc$ formula.

            
    \closing{Kind Regards,}
\end{letter}
\end{document}

这里是 letter-Bram.cls文件

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{letter-Bram}[2019/07/01 v1.1 letter-Bram]

%%%%%%%%%%%%%%%%%%%%%
% NEW CLASS OPTIONS %
%%%%%%%%%%%%%%%%%%%%%
\newif\if@sans
\DeclareOption{sans}{\@sanstrue}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}

\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

我很确定我遗漏了一些非常明显的东西,但找不到。

解决方法

两个问题:

  • 您的类正在加载 letter 类,但将其选项传递给 article 类。下定决心,你真正想要的两个课程中的哪一个

  • 9pt 不是有效选项,请尝试使用 10pt12pt


\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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?