用于模拟 siunitx 包的 \SI 宏的宏

用于模拟 siunitx 包的 \SI 宏的宏

我在用潘多克将 .tex 文档转换为 .docx。tex 文档使用希尼奇包裹。

由于 pandoc 无法解释包中的宏,因此我必须为使用的宏编写虚拟宏,然后 pandoc 将使用这些虚拟宏。由于 docx 仅供我的合著者审阅,因此这不是问题,最终的格式化将由 LaTeX 完成。

我已经实现了一些宏

\newcommand{\percent}{percent}
\newcommand{\per}{/}

\newcommand{\num}[1]{#1}
\newcommand{\numrange}[2]{#1 to #2}
\newcommand{\numlist}[1]{#1}

\newcommand{\si}[1]{#1}

但我很纠结\SI,尤其是单元前的部分

\SI{number}[preunit]{unit}

因为第二个参数[preunit]是可选参数。我发现我可以将第一个参数指定为可选参数,如下所示:

\newcommand{\SI}[3][test]{#1#2#3}

但是我如何使用方括号和作为第二个参数来实现这一点?


附加信息

Pandoc版本:pandoc 1.15.2.1

答案1

这样的事情会起作用吗?

\documentclass{article}

\newcommand{\percent}{percent}
\newcommand{\per}{/}
\newcommand{\kilogram}{kg}
\newcommand{\coulomb}{C}
\newcommand{\mole}{mol}

\newcommand{\num}[1]{#1}
\newcommand{\numrange}[2]{#1 to #2}
\newcommand{\numlist}[1]{#1}

\newcommand\svnum{}
\newcommand\SI[2][]{\renewcommand\svnum{#2}\SIhelp}
\newcommand\SIhelp[2][]{\(#1\)\svnum\,#2}
\begin{document}
\SI{23}{m}

\SI{23}[\$]{}

\SI[per-mode=symbol]{1.99}[\$]{\per\kilogram} 

\SI[per-mode=fraction]{1.345}[1000\times]{\coulomb\per\mole}
\end{document}

在此处输入图片描述

相关内容