我想創建一個命令,用比當前字體小一點的字體列印參數。
例如,如果文件具有 11pt 字體,則該命令必須以 10pt 列印。如果文件有 10pt 字體,我希望命令以 9pt 字體列印。
但我不希望將其綁定到文件的字體大小。如果在將字體定義為 Xpt 的環境中使用該命令,我希望該命令生成字體大小為 (X-1)pt 的文本
答案1
答案2
當前字體大小儲存在巨集中\f@size
:
\RequirePackage{fix-cm} % or use a scalable font
\documentclass{article}
\makeatletter
\newcommand{\oneptsmaller}[1]{%
\begingroup
\fontsize{\dimexpr\f@size pt-1pt}{\f@baselineskip}\selectfont
#1%
\endgroup
}
\makeatother
\begin{document}
\fontname\font\ \oneptsmaller{\fontname\font}
\large
\fontname\font\ \oneptsmaller{\fontname\font}
\footnotesize
\fontname\font\ \oneptsmaller{\fontname\font}
\end{document}
使用可縮放字體,例如\usepackage{baskervald}
,
注意:\fontname\font
僅用於顯示目前使用的字體。在ybvr8t
沒有子句的情況下,at
因為字體是其自然大小 10pt。
答案3
fontspec
我親自和我心愛的人一起做XelaTex
。這是一個 Libertine 的例子(因為它很漂亮)。
\usepackage{fontspec}
\setmainfont[Ligatures=TeX,]{Linux Libertine O}
\newfontfamily{\ninetypercent}[Scale=0.90]{Linux Libertine O}
\newcommand{\ninety}[1]{{\ninetypercent #1}
執行此操作後,您的字體\ninety{text}
將比基本字體小 10%。要從 11pt 獲得 10pt 大小,您只需進行快速數學計算,如果您想要超精確,請將縮放參數設為 0.909。
這樣,您就可以按照您喜歡的係數(可以是 3.5%、50% 等)減少任何字體大小,並且它始終與您的基本字體大小相關。
我同意這有點矯枉過正,但fontspec
有很多非常令人汗水的功能可供使用。
答案4
對egreg提出的改進,可以將其參數化如下:
\documentclass[12pt]{article}
%: ==== N pt smaller
\makeatletter
\newcommand{\hbFontSmaller}[2]{%
\begingroup
\fontsize{\dimexpr\f@size pt-#1pt}{\f@baselineskip}\selectfont
#2%
\endgroup
}
\makeatother
% ====
\begin{document}
Abcde
\hbFontSmaller{1}{Abcde}
\hbFontSmaller{2}{Abcde}
\hbFontSmaller{3}{Abcde}
\hbFontSmaller{4}{Abcde}
\hbFontSmaller{5}{Abcde}
\hbFontSmaller{6}{Abcde}
\hbFontSmaller{7}{Abcde}
\hbFontSmaller{8}{Abcde}
Abcde
\end{document}