我知道我曾在某处看到过如何将 1/2 排版为 ½,但使用任意分数(即,一个采用两个参数并生成第一个分母和第二个分子的宏...)。现在我似乎找不到它了。
我如何以与 ½ 相同的方式排版任意分数?
答案1
你要xfrac
\documentclass{article}
\usepackage{xfrac}
\begin{document}
\sfrac{12}{3}
\end{document}
xfrac
和之间存在差异nicefrac
(在 手册中详细说明xfrac
),特别是当您使用 Computer Modern 以外的字体时。
答案2
如果你使用 XeTeX 或 LuaTeX fontspec
,你可能使用具有 OpenType 特性的字体frac
,该字体可能会被限制为一定数量的固定分数(例如Junicode),或者它可以与任何数字组合一起使用,例如在 Linux Libertine 中(libertineotf
包)或EB 加拉蒙德。
以下是使用 的 MWE libertineotf
:
\documentclass{article}
\usepackage{fontspec}
\usepackage{libertineotf}
\begin{document}
\addfontfeatures{RawFeature=+frac}
1/2 3/4 5/6 7/8 9/10 11/12 31415/27182 1000/1000000
\end{document}
如果字体包含 OpenType 特性numr
(分子)和dnom
(分母),我们可以做得更加漂亮,通常包含更多种类的字形:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{EB Garamond 12 Regular}
\newcommand{\unifrac}[2]{\mbox{% making sure we don't get a line break
{\addfontfeatures{RawFeature=+numr}#1}%
⁄% That slash is U+2044 FRACTION SLASH, which has special spacing
{\addfontfeatures{RawFeature=+dnom}#2}%
}}
\begin{document}
\unifrac{12}{14} \unifrac{31415}{27182} \unifrac{abc}{def} \unifrac{Foo!}{Bar?}
\unifrac{\#\$\%+/<>=}{?\@[]\textbackslash\_|\{\}§†}
\end{document}
要了解你的 OpenType 字体具有哪些功能,请参阅
要查找 Junicode 功能中包含哪些分数frac
,请参阅
要开始使用 Xe(La)TeX 和/或 Lua(La)TeX,请参阅
答案3
也许nicefrac
你想用什么?
\documentclass{article}
\usepackage{nicefrac}
\begin{document}
\nicefrac{12}{3}
\end{document}
答案4
(因为总有一个使用 TikZ 的解决方案,它就在这里!)
该解决方案可自动使用\frac
、的修改版本\slantfrac
或\sfrac
。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fpu}
\usepackage{fp}
\usepackage{parskip}
\usepackage{xfrac}
\pagestyle{empty}
\begin{document}
\pgfkeys{/pgf/number format/frac}
\pgfmathprintnumber{0.333333333333333}\hspace{1em}
\pgfmathprintnumber{0.5}\hspace{1em}
\pgfmathprintnumber{2.133333333333325e-01}\hspace{1em}
\pgfmathprintnumber{0.12}\hspace{1em}
\pgfmathprintnumber{2.666666666666646e-02}\hspace{1em}
\pgfmathprintnumber{-1.333333333333334e-02}\hspace{1em}
\pgfmathprintnumber{7.200000000000000e-01}\hspace{1em}
\pgfmathprintnumber{6.666666666666667e-02}\hspace{1em}
\pgfmathprintnumber{1.333333333333333e-01}\hspace{1em}
\pgfmathprintnumber{-1.333333333333333e-02}\hspace{1em}
\newcommand{\slantfrac}[2]{\,^{#1}\!/_{#2}}
\pgfkeys{/pgf/number format/frac TeX={\slantfrac}}
\pgfmathprintnumber{0.333333333333333}\hspace{1em}
\pgfmathprintnumber{0.5}\hspace{1em}
\pgfmathprintnumber{2.133333333333325e-01}\hspace{1em}
\pgfmathprintnumber{0.12}\hspace{1em}
\pgfmathprintnumber{2.666666666666646e-02}\hspace{1em}
\pgfmathprintnumber{-1.333333333333334e-02}\hspace{1em}
\pgfmathprintnumber{7.200000000000000e-01}\hspace{1em}
\pgfmathprintnumber{6.666666666666667e-02}\hspace{1em}
\pgfmathprintnumber{1.333333333333333e-01}\hspace{1em}
\pgfmathprintnumber{-1.333333333333333e-02}\hspace{1em}
\pgfkeys{/pgf/number format/frac TeX={\sfrac}}
\pgfmathprintnumber{0.333333333333333}\hspace{1em}
\pgfmathprintnumber{0.5}\hspace{1em}
\pgfmathprintnumber{2.133333333333325e-01}\hspace{1em}
\pgfmathprintnumber{0.12}\hspace{1em}
\pgfmathprintnumber{2.666666666666646e-02}\hspace{1em}
\pgfmathprintnumber{-1.333333333333334e-02}\hspace{1em}
\pgfmathprintnumber{7.200000000000000e-01}\hspace{1em}
\pgfmathprintnumber{6.666666666666667e-02}\hspace{1em}
\pgfmathprintnumber{1.333333333333333e-01}\hspace{1em}
\pgfmathprintnumber{-1.333333333333333e-02}\hspace{1em}
\end{document}