現在のフォントより 1 ポイント小さいフォントで引数を印刷するコマンドを作成したいと思います。
たとえば、ドキュメントのフォントが 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
現在使用されているフォントを示すためだけに使用されます。 の場合、フォントは 10pt の自然なサイズであるため、句ybvr8t
はありません。at
答え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% 小さくなります。11 ポイントから 10 ポイントのサイズを取得するには、簡単な計算を行って、超正確にしたい場合はスケーリング パラメータを 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}