如何计算 2 个变量的和(单位为 cm)?示例:\y+ \n \x + \m
预先感谢
最少编码:
\documentclass{article}
\usepackage[absolute,overlay]{textpos}
\usepackage{xcolor}
\newcommand*{\x}{0.5cm}
\newcommand*{\y}{2.0cm}
\newcommand*{\m}{1.5cm}
\newcommand*{\n}{2.5cm}
\begin{document}
\title{Texblock color}
\textblockcolour{cyan}
\begin{textblock*}{5cm}(2cm,10cm)
123
\end{textblock*}
\textblockcolour{red}
\begin{textblock*}{5cm}(\x,\y+\n)
456
\end{textblock*}
\textblockcolour{yellow}
\begin{textblock*}{5cm}(\x+\m,16cm)
789
\end{textblock*}
\end{document}
答案1
我建议不要定义单字母命令,而是使用更具语义的方法。
\documentclass{article}
\usepackage[absolute,overlay]{textpos}
\usepackage{xcolor}
\ExplSyntaxOn
\NewDocumentCommand{\definevar}{mm}
{
\tl_clear_new:c { l_forti_var_#1_tl }
\tl_set:cn { l_forti_var_#1_tl } { #2 }
}
\NewExpandableDocumentCommand{\usevar}{m}
{
\tl_use:c { l_forti_var_#1_tl }
}
\ExplSyntaxOff
\definevar{x}{0.5cm}
\definevar{y}{2.0cm}
\definevar{m}{1.5cm}
\definevar{n}{2.5cm}
\begin{document}
\title{Texblock color}
\textblockcolour{cyan}
\begin{textblock*}{5cm}(2cm,10cm)
123
\end{textblock*}
\textblockcolour{red}
\begin{textblock*}{5cm}(\usevar{x},\dimeval{\usevar{y}+\usevar{n}})
456
\end{textblock*}
\textblockcolour{yellow}
\begin{textblock*}{5cm}(\dimeval{\usevar{x}+\usevar{m}},16cm)
789
\end{textblock*}
\end{document}
您仍然可以\newcommand
使用相同的语法来\dimeval
执行操作,例如
\begin{textblock*}{5cm}(\x,\dimeval{\y+\n})
如果你更喜欢我不推荐的风格。
答案2
使用calculator
包。
\documentclass{article}
\usepackage{calculator}
\usepackage{amsmath}
\newcommand{\x}{0.5}
\newcommand{\y}{2}
\newcommand{\m}{1.5}
\newcommand{\n}{2.5}
\begin{document}
\ADD{\x}{\y}{\one}
\(\x\text{cm} + \y\text{cm} = \one\text{cm}\)
\ADD{\m}{\n}{\two}
And \(\m\text{cm} + \n\text{cm} = \two\text{cm}\)
\end{document}