我想定义一种样式(例如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}