將字體大小減小一磅

將字體大小減小一磅

我想創建一個命令,用比當前字體小一點的字體列印參數。

例如,如果文件具有 11pt 字體,則該命令必須以 10pt 列印。如果文件有 10pt 字體,我希望命令以 9pt 字體列印。

但我不希望將其綁定到文件的字體大小。如果在將字體定義為 Xpt 的環境中使用該命令,我希望該命令生成字體大小為 (X-1)pt 的文本

答案1

您也可以使用該包relsize,它可以滿足您的需求。考慮這個 MWE:

\documentclass{article}
\usepackage{relsize}
\begin{document}
This is normal size font.

\smaller

And this is one point smaller.
\end{document}

在此輸入影像描述

答案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}  

相關內容