排版坐标

排版坐标

我正在尝试排版坐标如下:

(0 0 0)或者(0, 0, 0)

我不确定 LaTeX 是否提供了一个包,可以使符号比仅仅在每个坐标之间手动插入空格更专业一些。

答案1

如果您稍后决定更改格式(调整间距等),以下是 Ryan Reich 对有关向量的类似问题的回答的改编版。它至少会为您提供坐标的语义命令:

\documentclass{article}
\usepackage{amsmath}
% From Ryan Reich, http://tex.stackexchange.com/a/19698/3345
\def\vektor#1{\innervector(#1)}
\def\innervector(#1,#2,#3) {\ensuremath{\left( #1,#2,#3 \right)}}

\let\coord\vektor

\begin{document}
Displaymath version, probably not relevant: \[ \coord{a,b,c} \]
Inline version: \coord{a,b,c}
\end{document}

在此处输入图片描述

答案2

适用于任意数量坐标(至少一个)的解决方案:

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\coord}{sO{}m}
 {
  \IfBooleanTF{#1}
   {\left(\coord_print:n {#3}\right)}
   {\mathopen{#2(}\coord_print:n {#3}\mathclose{#2)}}
 }

\seq_new:N \l_coord_list_seq
\tl_new:N \l_coord_last_tl
\cs_new_protected:Npn \coord_print:n #1
 {
  \seq_set_split:Nnn \l_coord_list_seq { , } { #1 }
  \seq_pop_right:NN \l_coord_list_seq \l_coord_last_tl
  \seq_map_inline:Nn \l_coord_list_seq { ##1 , }
  \tl_use:N \l_coord_last_tl
 }
\ExplSyntaxOff

\begin{document}

$\coord{0,1,0}$

$\coord[\Big]{0,1,2,3,4}$

$\coord*{\dfrac{1}{2},2}$

$\coord{1}$

\end{document}

对于 *-变体,我们使用\left\right;对于可选参数,可以选择明确的大小(使用\big\Big\bigg\Bigg

通过改变定义中的逗号或括号,可以修改外观。

在此处输入图片描述

答案3

您可能需要定义一个专用命令,例如

\newcommand{\coord}[3]{\ensuremath{(#1,#2,#3)}}

这样您就可以在数学环境内或数学环境外插入坐标,例如\coord{1}{2}{3}。稍后,您可以通过调整一行轻松更改坐标的排版。

答案4

您不必手动插入任何空格,只需使用数学模式,LaTeX 就会自行插入适当的空格:

We have a vector $(x,y,z)$ that is orthogonal to $(1,2,3)$ and $(4,5,6)$.

相关内容