在 LaTeX 中操控长度

在 LaTeX 中操控长度

我正在使用 tikz 包来制作漂亮的方案来展示我的工作,但我遇到了一个小问题:操作变量。

我可以用困难的方式来做到这一点:

例如假设我想画一个矩形(8*4),

%Defining nodes for geometry
\coordinate (left_minus) at (-4,-2) ;
\coordinate (left_plus) at (-4,2) ;
\coordinate (right_minus) at (4,-2) ;
\coordinate (right_plus) at (4,2) ;

%Drawing rectangle
\draw[line width= 1pt, fill=green!30] (left_minus) rectangle (right_plus)

但我想做这样的事情:

\newcommand{\Length}{8}
\newcommand{\Width}{4}
\coordinate (left_minus) at (-Length/2,-Width/2) ;
\coordinate (left_plus) at (-Length/2,Width/2) ;

我浏览了网页,但没能找到有关在 LaTeX 中操作变量的有用信息。你们知道我该怎么做吗?

谢谢!

奥布里

答案1

您的方法应该有效(至少在 TikZ 中),但您必须使用以反斜杠开头的宏名称\

\newcommand{\Length}{8}
\newcommand{\Width}{4}
\coordinate (left_minus) at (-\Length/2,-\Width/2) ;
\coordinate (left_plus) at (-\Length/2,\Width/2) ;

捷径我通常使用\def 里面{tikzpicture}。在这种情况下,“延长”是 TeX 意义上的简单宏,可以通过 TikZ 进行配对,就像您直接输入它们一样,即 (0,0.5*\h) 将与 (0,0.5*2) 相同,但 (0,0.5\h) 将被读作 (0,0.25),因此不要省略符号*。我使用这种方式,因为它取决于 的基向量的当前设置TikZ。 的缺点\def是它会覆盖现有的宏,但如果您在(重新)定义中使用它,则{tikzpicture}保持在本地,应该没有问题。如果您想全局使用变量,您可以改用\newcommand更长的变量名。

捷径

路途更漫长使用真正的 TeX 延长,它可以在任何需要长度的地方使用,例如\hspace。但在这种情况下,您必须添加一个单位,并且当基向量改变时,延长不会改变。

路途更漫长

例子:

\documentclass{article}
\usepackage{parskip}

\usepackage{tikz}

\begin{document}

\section{short way}
\begin{tikzpicture}
    \def\l{5}
    \def\h{2}
    \draw (0,0) rectangle (0.5*\l,\h/2);
\end{tikzpicture}

\begin{tikzpicture}[x=2cm,y=2cm]
    \def\l{5}
    \def\h{2}
    \draw (0,0) rectangle (0.5*\l,\h/2);
\end{tikzpicture}

\section{longer way}
\newlength{\mylength}
\setlength{\mylength}{5cm}
\newlength{\myheight}
\setlength{\myheight}{2cm}
\begin{tikzpicture}
    \draw (0,0) rectangle (0.5\mylength,\myheight/2);
\end{tikzpicture}

\begin{tikzpicture}[x=2cm,y=2cm]
    \draw (0,0) rectangle (0.5\mylength,\myheight/2);
\end{tikzpicture}

\end{document}

相关内容