사용자 정의 명령의 부동 소수점 곱셈

사용자 정의 명령의 부동 소수점 곱셈

주어진 길이의 밑줄을 생성하는 사용자 정의 명령을 만들고 싶습니다. 그러나 이 길이는 명령의 인수에 부동 소수점 상수를 곱한 값이어야 합니다.

명령 정의 내에서 명령 인수를 어떻게 곱할 수 있습니까?

곱셈이 없는 코드는 다음과 같습니다.

\newcommand{\utext}[2]{$\underset{\mbox{\tiny #1}}{\underline{\hspace{#2cm}}}$}

대신에 다음 \hspace#2cm같아야합니다.(0.75 * #2)cm

답변1

문제를 해결하는 방법에는 두 가지가 있습니다.

첫 번째(권장 사항):

\newlength{\threequarters}
\setlength{\threequarters}{0.75cm}

\newcommand{\utext}[2]{%
  $\underset{\mbox{\tiny #1}}{\underline{\hspace{#2\threequarters}}}$%
}

이런 식으로 #2임의의 십진수가 될 수 있습니다.

둘째, 더 까다롭습니다.

\newcommand{\utext}[2]{%
  $\underset{\mbox{\tiny #1}}{\underline{\hspace{0.75\dimexpr#2cm\relax}}}$%
}

왜 첫 번째 방법을 추천합니까? 정의를 전체적으로 \threequarters찾는 대신 한 곳에서만 작동하여 원하는 곳 어디에서나 사용할 수 있고 너비를 변경할 수 있습니다.0.75

그러나 두 번째 솔루션도 다음을 수행하여 "매개변수화 가능"합니다.

\newcommand{\threequarterfactor}{0.75}

그리고 \hspace{\threequarterfactor\dimexpr#2cm\relax}정의에 사용합니다. 나는 여전히 길이를 예약하는 것을 선호합니다.

답변2

이는 수학적 용도이므로 소수점 18자리까지 정확하게 계산할 수 있는 명령입니다.

\documentclass{article}
\usepackage{amsmath}
\usepackage{fp}

\begin{document}

\newcommand{\utext}[2]{
  \FPmul\result{.75000001}{#2}
  $\underset{\mbox{\tiny #1}}{\underline{\hspace{\result  cm}}}$}

\utext{test}{1.9809997889999999} \result

\utext{test}{1.9809997889999990} \result
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보