创建带有不确定参数的新命令

创建带有不确定参数的新命令

我对 LaTeX 还不熟悉。我正在做一个项目,其中包含一些资源(例如公式、问题解决方案),我可以带到 3 月 16 日的考试日。我已经找了几个小时的问题解决方案了。我想要实现的是创建一个\newcommand带有不定变量(参数?)的,它可以执行重复任务,例如 5 \times 10 \times 15 \times 20 \times 25。数字应该是参数,而 是\times每个参数之间的重复任务。我曾尝试tabular在 中创建许多列\newcommand,但没有成功。为了给出更好的视觉效果,我将发布一段我的代码。

\documentclass{article}

\usepackage{lmodern}
\usepackage[T1]{fontenc}

\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{enumitem}
\usepackage{titlesec}
\usepackage[norsk]{babel}

\titleformat{\section}{\LARGE\filcenter}{}{1em}{}
\setlength{\jot}{14pt}

\title{Hjelpermidler i Digital Radio}
\author{Sami Rashiti}

\newcommand{\degree}[2]{#1\,^{\circ}\ \mathrm{#2}}


\begin{document}

\maketitle 
\newpage

\section*{Innlevering 1}
\input{innleveringer/innlevering1.tex}
~\newline

\begin{align}
    e_n &= \sqrt{4KTBR}                                                                     \\
    e_n^2 &= 4KTBR                                                                          \\
    R &= \frac{e_n^2}{4KTB}                                                                 \\
      &= \frac{(\frac{V_o}{A})^2}{4KTB} \qquad ,der \quad e_n = \frac{V_o}{A} = 3,2\mu V    \\
      &= \frac{(3.2\mu V)^2}{4\cdot1.38\cdot 10^{-23}\cdot 310\cdot   100\cdot 10^3}        \\
      &= 6\ k\Omega
    \end{align}

\end{document}

答案1

您可以使用列表;下面是使用列表的示例etoolbox并借用了沃纳his answer迭代逗号分隔的参数

\documentclass{article}
\usepackage{etoolbox}

\newcommand\Multiply[2][\cdot]{%
  \def\nextitem{\def\nextitem{#1}}% Separator
  \renewcommand*\do[1]{\nextitem##1}% How to process each item
  \docsvlist{#2}% Process list
}
\begin{document}

\[
\Multiply[\times]{4,1.38\cdot 10^{-23},310,100,10^3}\qquad
\Multiply{a,b,c,d,e,f,g,h,i,j,k,l,m,n}
\]

\end{document}

在此处输入图片描述

答案2

xparse使用and很简单expl3。用逗号分隔项目即可。

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand\Multiply{O{\cdot}m}
 {
  \seq_set_split:Nnn \l_tmpa_seq { , } { #2 } % split the input at commas
  \seq_use:Nn \l_tmpa_seq { #1 }              % put #1 between items
 }
\ExplSyntaxOff

\begin{document}

$\Multiply[\times]{4,1.38\cdot 10^{-23},310,100,10^3}$

$\Multiply{a,b,c,d,e,f,g,h,i,j,k,l,m,n}$

\end{document}

在此处输入图片描述

答案3

在 TeX 原始级别处理更多参数的常用方法是:

\def\Multiply#1{\MultiplyA#1,,}
\def\MultiplyA#1,{#1\MultiplyB}
\def\MultiplyB#1,{\ifx,#1,\else\cdot#1\expandafter\MultiplyB\fi}

$$
\Multiply{a,b,c,d,e,f,g,h,i,j,k,l,m,n}
$$

\end

相关内容