値はファイル(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}
もちろん、これは大幅に改善できる可能性があります (形式が正しいかどうかなどを確認する) が、これが最善の方法です。