如何使用特殊字体和 siunitx 定义绘图样式?

如何使用特殊字体和 siunitx 定义绘图样式?

我想定义一种样式(例如style=techDraw),使我能够定义由该图形制作tikz或导入的所有技术图纸的行为,pdf_tex当为该图形techDraw设置样式时。

它应该启用标准化字体(在我的例子中,DIN EN ISO 3098 近似于osifont.ttf)、字体大小随纸张格式而变化(例如,DIN A4 的高度为 7 毫米),并正确解析所有出现的数字siuntix

例如如下的绘图将被采取。还有一张我从 Inkscape 导出的图形,其中 pdf 和文本分开。我希望获得这样的设置:

%The following commands are invented and not serving as an MWE
\documentclass[tikz]{standalone}
\usepackage{siunitx}
\usepackage{ifthen}
\defineGraphicsStyle{techDraw/.style=
{\sisetup{mode=text, parse-numbers=true},
\setmainfont{osifont},
% some if-else routine to change fontsize (if papersize = A4 set fontsize = 7mm else...)
%maybe some function telling latex, that all text should be treated as math input. 
%Include "$ $" to all text fields. 
\tikzset{font=osifont}}}

\begin{document}
\begin[style=techDraw]{tikzpicture}
%some nodes with input such as dimensions "15000", angles "\ang{90}", 
%symbols "\alpha" or units "\SI{5}{\kilogram}"
\end{tikzpicture}
%
\begin[style=techDraw]{figure}
\input{someInkscapeDrawing.pdf_tex}
%it would be easier not to write "$ $" and "\num" when constructing the original svg. 
%Therefore same settings as above would be useful.
\end{figure}
\end{document}

我很抱歉代码这么丑陋。我只是想给出一些我想象的、但不知道如何实现的想法。这样做的目的是在每篇论文中获取一个符合 ISO 标准的图纸模板。


在尝试(针对单个图形,因为我不知道如何在不影响其他字体的情况下全局设置它)时,我遇到了问题siunitx。 包含的 MWE 显示,操作未使用我的字体的“点”和“逗号”符号\num{}

\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[]{siunitx}
\usepackage{xltxtra,fontspec,xunicode}
\setmainfont{osifont}
%
\begin{document}
%
\noindent 123456789.0\\
\num{123456789.0}\\
123456789,0\\
\sisetup{locale=DE}
\num{123456789,0}
%
\end{document}

相关内容