0

我目前正在写简历,但空间不足。我希望更改整个简历模板中的字体,但我想按比例进行。例如,有些标题是 12pt,副标题是 11pt。我希望能够将它们更改为 0.9 * 12 pt、0.9 * 11 pt,也就是相应地缩放它们。我想改变

\fontsize{12pt}{1em}

\fontsize{(0.9 * 12)pt}{1em}

, 其中 \fontsize 是来自 anyfontsize 包的命令。

但我最终得到了奇怪的结果和很多日志/错误。有没有办法确保 '*' 会产生一个数字,就像在“常规”编程语言中一样?

我尝试过的其他事情包括:

\newcommand{\myfont}[2]{\fontsize{0.9*#1pt}{0.9*#2}em}
\myfont{12}{1}

但它并不像我期望的那样工作。我还尝试添加方括号 () 并创建一个新命令\newcommand{\mymultiply}[2]{#1*#2}

有没有一种优雅而整洁的方法来做到这一点?在 LaTeX 中是否有一种“常规”的方式来进行实际计算,或者我应该避免这种方法吗?提前致谢!

4

1 回答 1

0

3种可能的方法:

  • 我会完全避免使用硬编码的字体大小。如果您改为使用字体命令,\smaller或者您可以使用文档类选项(如或)\larger简单地更改整体大小,并且文档中的所有字体都将缩放,包括部分等。10pt12pt

  • 如果您将基本字体大小存储在一个长度中,您可以使用它\dimexpr来进行计算

  • 如果出于某种原因不想创建新长度,请使用 expl3 命令进行计算


\documentclass[
%10pt
12pt
]{article}  

\usepackage{anyfontsize}

\ExplSyntaxOn
  \cs_new_eq:NN \fpeval \fp_eval:n
\ExplSyntaxOff

\begin{document}  

\section{section}

section

\newlength{\foo}
\setlength{\foo}{12pt}
\fontsize{\dimexpr.9\foo\relax}{\dimexpr1.08\foo \relax}\selectfont

test

\fontsize{\dimexpr\fpeval{.9*12}pt\relax}{\dimexpr\fpeval{.9*1.2*12}pt\relax}\selectfont

test

\end{document}
于 2021-10-02T16:45:52.937 回答