绘制具有指定尺寸的正方形或矩形的最佳方法是什么?

绘制具有指定尺寸的正方形或矩形的最佳方法是什么?

如何定义一个命令\rectangle,通过例如调用

\rectangle{70cm}{70cm} 

生成指定尺寸的黑色轮廓矩形?

答案1

无需任何包的方法如下:

\newcommand{\rectangle}[2]{{% #1 = width, #2 = height
  \fboxsep=-\fboxrule\sbox0{}\wd0=#1\ht0=#2\relax\fbox{\box0}}}

使用\fboxsep=-\fboxrule(在正确的 LaTeX 语法中应该是\setlength{\fboxsep}{\fboxrule}),我们要求 LaTeX 在“框内”绘制框架。我们绘制的框是空的,但其宽度和高度设置为指定的参数。因此,我们构建这个空框,然后为其添加框架。

我更\usebox{0}喜欢使用原始命令\box0,它使用盒子并销毁它。由于所有操作都发生在组内,值\fboxsep将恢复到之前的值,我们还隐藏了(临时)盒子寄存器 0 的踪迹。

如果还想指定深度,那么扩展就很容易:

\newcommand{\rectangle}[3][0pt]{{%
  \fboxsep=-\fboxrule\sbox0{}\wd0=#2\ht0=#3\dp0=#1\relax\fbox{\box0}}}

这样\rectangle{10pt}{20pt}将构建一个宽 10pt、高 20pt 的矩形,同时

\rectangle[2pt]{10pt}{18pt}`

将构建相同的内容,但放置在基线略下方。

答案2

使用 TikZ 的另一种答案是

\newcommand{\rectangle}[2]{\tikz \draw (0,0) rectangle (#1,#2);}

(您需要添加\usepackage{tikz}您的序言)

如果要用黑色填充矩形,请将其替换\draw\fill。您还可以选择颜色:例如

\newcommand{\rectangleplus}[3]{\tikz \draw[#3] (0,0) rectangle (#1,#2);}
\rectangleplus{4cm}{0.5cm}{blue}
\rectangleplus{4cm}{0.5cm}{blue,dashed}

以及许多其他事物。

答案3

我尝试使用picture环境,

\documentclass{article} 

\newcommand{\rectangle}[2]{%
    \setlength{\unitlength}{1cm}%
    \begin{picture}(#1,#2)%
        \linethickness{0.1mm}%
        \multiput(0,0)(#1,0){2}{\line(0,1){#2}}%
        \multiput(0,0)(0,#2){2}{\line(1,0){#1}}%
    \end{picture}%
    \setlength{\unitlength}{1pt}    % Reset unit length to 1 pt
}

\begin{document}

\rectangle{1}{4}
\rectangle{7}{2}
\rectangle{3}{3}

\end{document}

相关内容