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}

물론 이는 크게 개선될 수 있지만(형식이 올바른지 확인하는 등), 그렇게 해야 합니다.

관련 정보