siunitx: 値の追加中にエラーが発生しました

siunitx: 値の追加中にエラーが発生しました

値はファイル(value.txt)に保存されます。コマンド

\SI{\input{value.txt}}{\someunit}

次のエラーが発生します:

Argument of \input has an extra }

外部ファイルから数値を読み取って で使用するにはどうすればよいでしょうか\SI?

答え1

TeX コマンドを使用してファイルを読み取る必要があります:

\documentclass{article}
\usepackage{siunitx}

\def\inputval{0}
\newread\inputFile
\let\oldSI\SI

\renewcommand*{\SI}[3][]{%
  \IfFileExists{#2}{
    \openin\inputFile=#2
    \read\inputFile to \inputval
    \closein\inputFile
    \oldSI[#1]{\inputval}{#3}
  }{\oldSI[#1]{#2}{#3}}
}

\begin{document}
  \SI{value.txt}{\metre} % use \SI like always, but with input file
  \oldSI{5}{\metre}      % \oldSI does work like the old \SI ;)
\end{document}

もちろん、これは大幅に改善できる可能性があります (形式が正しいかどうかなどを確認する) が、これが最善の方法です。

関連情報