You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LaTeX中如何在\newenvironment中传入数字参数构建列向量环境?

解决列向量环境行间距缩放因子的问题

你的原始代码其实可以直接接收数字作为参数使用,比如:

\begin{VEC}{1.5}
x_1 \\
x_2 \\
x_3
\end{VEC}

如果你的问题是想传入计数器的数值而非直接输入数字,那你对\value{#1}的用法有误:\value{#1}是获取计数器的内部整数值,而\arraystretch需要的是字符串形式的数字,这时候应该用\the#1或者\arabic{#1}来转换为可识别的数字字符串。

比如先定义一个计数器:

\newcounter{vecstretch}
\setcounter{vecstretch}{2}

然后修改环境定义,让它能处理计数器参数:

\newenvironment{VEC}[1]{\begin{Bmatrix}\renewcommand{\arraystretch}{\the#1}}
                       {\end{Bmatrix}}

调用时直接传入计数器名称即可:

\begin{VEC}{vecstretch}
a \\
b \\
c
\end{VEC}

如果需要更灵活的处理(比如同时支持直接数字、计数器甚至数学表达式),可以借助xparse包的\dim_eval:n命令来确保参数能被正确解析:

\usepackage{xparse}
\NewDocumentEnvironment{VEC}{m}
  {\begin{Bmatrix}\renewcommand{\arraystretch}{\dim_eval:n {#1}}}
  {\end{Bmatrix}}

这样无论是输入2、\thevecstretch还是1.2+0.3这类表达式,环境都能正常识别并应用行间距缩放。

内容的提问来源于stack exchange,提问作者sqrt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 02:05:25