宏参数乘法

宏参数乘法

由于baselineskip字体大小的参数最好是字体大小的 1.2 倍,因此我想定义一个宏,它只接受一个参数,并baselineskip从字体大小推导出来。它应该是这样的。

\newcommand{\myfontsize}[1]{\fontsize{#1}{1.2*#1}\selectfont}

当然,代码无法编译,因为1.2*#1。我搜索了几个小时,但找不到任何解决方案。由于像这样的代码1.2\baselineskip是可能的,我希望这是一个简单的问题。

附录:我不太熟悉低级 LaTeX 命令。也许fp会有calc帮助,但我不知道怎么做。

更新2013/11/13:

\documentclass{minimal}

\newlength\x
\newcommand{\zihao}[1]{\setlength\x{#1}\fontsize{\x}{1.2\x}\selectfont}
\newcommand{\chuhao}{\zihao{42.2pt}}
\newcommand{\xiaochu}{\zihao{36.1pt}}
\newcommand{\yihao}{\zihao{26.1pt}}
\newcommand{\xiaoyi}{\zihao{24.1pt}}
\newcommand{\erhao}{\zihao{22.1pt}}
\newcommand{\xiaoer}{\zihao{18.1pt}}
\newcommand{\sanhao}{\zihao{16.1pt}}
\newcommand{\xiaosan}{\zihao{15.1pt}}
\newcommand{\sihao}{\zihao{14.1pt}}
\newcommand{\xiaosi}{\zihao{12.1pt}}
\newcommand{\wuhao}{\zihao{10.5pt}}
\newcommand{\xiaowu}{\zihao{9.0pt}}

\begin{document}
\noindent \chuhao ABCDEFG\\
\xiaochu ABCDEFG\\
\yihao ABCDEFG\\
\xiaoyi ABCDEFG\\
\erhao ABCDEFG\\
\xiaoer ABCDEFG\\
\sanhao ABCDEFG\\
\xiaosan ABCDEFG\\
\sihao ABCDEFG\\
\xiaosi ABCDEFG\\
\wuhao ABCDEFG\\
\xiaowu ABCDEFG\
\end{document}

在此处输入图片描述

更新 2013/11/13 将 \ 更改为 \par 在此处输入图片描述

答案1

您需要创建一个长度(此处为\myfntht),以便轻松完成乘法。

我编辑了答案,允许使用可选参数作为宏的两个参数之间的乘数\fontsize。请注意,虽然我使用乘数\baselineskip在 MWE 中设置新字体大小,但最好使用另一种度量,因为\baselineskip它本身在制作新字体大小时会发生变化,因此,使用它时,一些间距可能会复合(如复利)。

\documentclass{article} 
\usepackage{lipsum}
\newlength\myfntht
\newcommand{\myfontsize}[2][1.2]{\setlength\myfntht{#2}%
  \fontsize{\myfntht}{#1\myfntht}\selectfont}
\begin{document}
\lipsum[4]
\myfontsize{\baselineskip} \lipsum[4]
\myfontsize{2\baselineskip} \lipsum[4]
\end{document}

在此处输入图片描述

相关内容