다음 문서가 있다고 가정해 보겠습니다.
\documentclass{article}
\newcommand\mass{30}
\newcommand\acc{9.8}
\newcommand\force{\the\numexpr \mass * \acc \relax} % F=m*a
\begin{document}
\section{Exerted force}
F = \force N
\end{document}
세 개의 '변수', 즉 처음 두 변수의 곱인 mass
, acc
및 를 생성합니다 .force
이 특정 예( mass = 30
, acc = 9.8
)는 F = 270.8N
의도한 대로 를 인쇄합니다.
곱셈은 \numexpr
명령에 의해 수행됩니다. 이것은 언제든지 작동 mass
하며 acc
둘 다 일반 숫자입니다. mass
또는 이 acc
변수(예: )인 경우 숫자에 대해서만 작업을 수행할 수 \newcommand\mass{m}
있으므로 문서가 작성되지 않습니다 .\numexpr
mass = 30g
변수에 대수 연산을 수행하여 언제 및 acc = g
가 인쇄되도록 하는 방법이 있습니까 F = 30g^2
? 나는 이것이 물리적으로 말이 되지 않는다는 것을 알고 있지만 요점은 분명하다고 생각합니다.
몇 가지 다른 예:
mass = m
,acc = 9.8
->F = m*9.8
또는F = 9.8*m
mass = m
,acc = g
->F = m*g
또는F = g*m
mass = x
,acc = x
->F = x^2
\numexpr
편집: @PhelypeOleinik이 친절하게 지적 했듯이정수. 따라서 9.8 * 30 = 294인 경우 30 * 9 = 270이고 .8을 추가하므로 결과는 270.8입니다.
답변1
sagetex
요청한 패키지를 사용하는 코드는 다음과 같습니다 .
\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sagesilent}
m = 30.0
a = 9.8
Force = m*a
var('g')
mass = 30*g
\end{sagesilent}
\section{Exerted force}
F = $\sage{Force.n(digits=5)}$ N \\\\
If the mass is $\sage{mass}$ then it's square is $\sage{mass^2}$.
\begin{sagesilent}
var('m')
acc = 9.8
\end{sagesilent}
$F = \sage{m*acc.n(digits=2)}$\\
\begin{sagesilent}
var('a')
m=a
\end{sagesilent}
If the mass, $m$, is equal to the acceleration, $a$ then
$F = \sage{m*a}$.
Sage even works with square roots:
\begin{sagesilent}
var('g')
m=sqrt(3)
\end{sagesilent}
$F = \sage{m*g}$ which, if you want decimals, is about $F=\sage{m.n(digits=4)*g}$
\end{document}
Cocalc에서 실행되는 출력(위의 설명에서 언급됨)은 다음과 같습니다.
Sage에서 x는 기본적으로 변수입니다. 다른 변수는 코드에서 정의한 대로 정의해야 합니다(예: var('g')). 환경 sagesilent
은 스크래치 종이와 같습니다. 이는 계산을 수행하는 Python 및 Sage 명령으로 구성됩니다. \sage{}
결과를 얻으려면 형식을 사용하십시오 . 숫자이므로 수학 모드(달러 기호 사이)에서 수행됩니다. 세이지는 많은 숫자를 제공하는 경향이 있습니다. 그러면 .n(digits=5)
답은 유효숫자 5자리가 됩니다.
답변2
pythontex
패키지를 사용하여 LaTeX 문서에 Python을 포함시킨 다음 다음 sympy
과 같이 기호 계산에 Python 패키지를 사용할 수 있습니다 .
\documentclass{article}
\usepackage{pythontex}
\begin{pycode}
from sympy import *
m = sqrt(3)
a = symbols('g')
f = m * a
\end{pycode}
\begin{document}
\section{Exerted force}
F = $\pyc{print(latex(f))}$
\end{document}
pythontex
이를 위해서는 LaTeX, python3, LaTeX용 패키지 및 Python용 패키지가 설치되어 있어야 합니다 sympy
. 또한 Python에 대한 지식이 있으면 문제가 되지 않습니다.
코드에 대한 간단한 설명:
\usepackage{pythontex}
필요한 패키지를 가져옵니다.
\begin{pycode}
파이썬 코드 블록을 시작합니다.
다음 Python 코드 블록을 살펴보겠습니다.
from sympy import *
m = sqrt(3)
a = symbols('g')
f = m * a
그러면 라이브러리를 가져오고 3의 제곱근과 변수로 sympy
설정합니다 . 그런 다음 곱하여 결과 를 에 저장합니다 . 3의 제곱근을 구하는 데 사용되는 함수는 수학 라이브러리가 아닌 라이브러리의 함수입니다. 이는 즉m
a
g
m
a
f
sqrt()
sympy
m
정확히와 같으며 sqrt(3)
근사치가 아닙니다.
$\pyc{latex(f)}$
그런 다음 latex(f)
반환되는 내용을 인쇄합니다. 이제 f의 값은 와 같습니다 sqrt(3) * g
. 함수 를 통과하면 latex()
LaTeX 표기법을 사용하여 인쇄되므로 수학 모드로 들어가려면 달러 기호가 필요합니다.
latex
이는 먼저 를 호출 한 다음 pythontex
다시 호출 하여 빌드할 수 있습니다 latex
.
결국 문서는 다음과 같이 보일 것입니다.
sympy
및에 대한 일부 리소스 pythontex
: