这是货币符号:法国法郎。
考虑以下代码:
\documentclass{article}
\usepackage{fontspec}
\usepackage{siunitx}
\DeclareRobustCommand*{\myfranc}{%
\begingroup
\fontspec{FreeSerif.otf}%
^^^^20a3%
\endgroup
}
\DeclareSIUnit{\franc}{\myfranc}
\begin{document}
Horse fififif \SI{123.45}{\franc}.
\end{document}
我该如何去除fi
连字符以获得单独的连f
字符i
?
更新
对我有用的设置如下:
\documentclass{article}
\usepackage{siunitx}
\DeclareRobustCommand*{\myfranc}{%
\begingroup
\fontspec{FreeSerif.otf}%
^^^^20a3%
\endgroup
}
\DeclareSIUnit{\franc}{\myfranc}
\usepackage{fontspec}
\defaultfontfeatures{
Ligatures={
NoCommon,
NoRequired,
NoContextual,
NoHistoric,
NoDiscretionary,
TeX
}
}
\setmainfont[
BoldFont=lmroman10-bold.otf,
ItalicFont=lmroman10-italic.otf,
BoldItalicFont=lmroman10-bolditalic.otf,
SlantedFont=lmromanslant10-regular.otf,
BoldSlantedFont=lmromanslant10-bold.otf,
SmallCapsFont=lmromancaps10-regular.otf
]{lmroman10-regular.otf}
\begin{document}
\section{Horse}
off fit fly office baffle -- \SI{123.456}{\franc}
\end{document}
答案1
压制全部印刷连字,你可以发出命令
\defaultfontfeatures{Ligatures={NoCommon, NoDiscretionary, NoHistoric, NoRequired, NoContextual}}
加载包后fontspec
。此指令将应用于文档中随后选择的所有字体。
评论:
- 到目前为止,上述指令中最重要的选项是
NoCommon
。所谓的 f 连字(ff、fi、fl、ffi、ffl,以及可能还有其他 f 连字)通常被分配到“通用”组。 - “Required”和“Contextual”是默认设置。但是,我所熟悉的几乎所有 OpenType 字体都不具备任何“Required”或“Contextual”连字符。因此,除非您使用某种特殊字体,否则可能不需要指定“NoRequired”和“NoContextual”。
- “NoHistoric” 和 “NoDiscretionary” 是
fontspec
默认值。但是,明确指定这些选项以明确您的意图也无妨,对吧?:-)
附录\defaultfontfeatures
:这是一个 MWE,说明了与 XeLaTeX 一起使用时该命令的用法:
% !TEX TS-program = xelatex
\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={NoCommon, NoRequired, NoContextual, NoHistoric, NoDiscretionary}}
\setmainfont{Latin Modern Roman}
% If your TeX distribution/Operating System doesn't recognize "logical" font names
% such as "Latin Modern Roman", try using the name of the file that contains the
% font you're trying to load. In this case, try "\setmainfont{lmroman10-regular.otf}".
\begin{document}
off fit fly office baffle
\end{document}
答案2
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Ligatures=NoCommon]{lmroman10-regular.otf}
\newfontface\Franc{FreeSerif.otf}
\usepackage{siunitx}
\DeclareSIUnit{\kroner}{kr.}
\DeclareRobustCommand*{\myfranc}{{\Franc^^^^20a3}}
\DeclareSIUnit{\franc}{\myfranc}
\begin{document}
Horse fififif \SI{123.45}{\franc}.
\end{document}
顺便说一句:定义字体而不是运行\fontspec