
Это дополнительный вопрос кСимвол валюты: французский франк.
Рассмотрим следующий пример:
\documentclass{article}
\usepackage{fontspec}
\usepackage{siunitx}
\DeclareRobustCommand*{\myfranc}{%
\begingroup
\fontspec{FreeSerif.otf}%
^^^^20a3%
\endgroup
}
\DeclareSIUnit{\franc}{\myfranc}
\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}
\SI{1000}{\franc}
\end{document}
Это (последнее предложение Хайко Обердика в егоотвечать) раньше работало, но теперь нет; теперь печатается только количество, а не единица (символ французского франка). Как это исправить?
Также, как удалить следующее предупреждение о шрифте?
Команда
\normalsize
недопустима в математическом режиме на строке ввода 26.
решение1
Эту команду \fontspec
никогда не следует использовать в документе; определите семейство шрифтов и используйте его.
\documentclass{article}
\usepackage{fontspec}
\usepackage{siunitx}
\DeclareRobustCommand*{\myfranc}{%
\mbox{\freeserif^^^^20a3}%
}
\DeclareSIUnit{\franc}{\myfranc}
\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}
\newfontfamily{\freeserif}{FreeSerif.otf}
\begin{document}
\SI{1000}{\franc}
\end{document}
₣
При желании вы также можете ввести данные напрямую:
\documentclass{article}
\usepackage{fontspec}
\usepackage{siunitx}
\usepackage{newunicodechar}
\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}
\newfontfamily{\freeserif}{FreeSerif.otf}
\newunicodechar{₣}{\text{\freeserif ₣}}
\newcommand{\FF}{₣}
\DeclareSIUnit{\franc}{\FF}
\begin{document}
\SI{1000}{\franc} is 1000\,₣ or \SI{1000}{₣}
\end{document}
решение2
Похоже, проблема возникла из-за версии 2.6siunitx
переключает стандартную настройку для опции режима с text
на math
.
\documentclass{article}
\usepackage{fontspec}
\usepackage{siunitx}
\DeclareRobustCommand*{\myfranc}{% thanks to egreg and Manuel
\begingroup
\freeserif^^^^20a3%
\endgroup
}
\DeclareSIUnit[mode = text]{\franc}{\myfranc}
\newfontfamily{\freeserif}{FreeSerif.otf}
\begin{document}
\SI{1000}{\franc}
\end{document}