我有一些 eps 格式的方形图片,应该被视为数学符号。每个方形图片都由一个空白正方形和中心的一些图形组成。我希望能够用这些图片做两件事。
(最重要的)用这些图片制作矩阵。问题:我需要最终矩阵为正方形。划分矩阵每列和每行的线必须与正方形图片的边框精确匹配。使用数组矩阵得到的结果并不令人满意,因为最终矩阵实际上不是正方形,并且划分列和行的线与图片的边框不匹配。
(同样重要)我需要将这些图片序列化,并用几种类型的括号括起来,例如 ()、[]、{} ,图片之间用逗号分隔。我得到的结果并不令人满意,因为出于某种原因,图片下方出现了巨大的空白。
下面是我想要用方形图片做的事情的一个例子。
但是,我实际上通过下面给出的最小示例得到的结果并不令人满意。
下面给出了我的代码的最小示例。
\documentclass[a4paper]{article}
\usepackage{graphicx,amsmath,amssymb}
\newcommand{\squarepicture}{{\includegraphics[scale=0.8]{squarepicture.eps}}}
\begin{document}
\begin{equation}
\left\{ \squarepicture, \squarepicture, \squarepicture \right\}
\end{equation}
\begin{equation}
\left( \squarepicture, \squarepicture, \squarepicture \right)
\end{equation}
\begin{equation}
\begin{array}{|c|c|c|}
\hline
\squarepicture & \squarepicture & \squarepicture \\
\hline
\squarepicture & \squarepicture & \squarepicture \\
\hline
\squarepicture & \squarepicture & \squarepicture \\
\hline
\end{array}
\end{equation}
\end{document}
答案1
您可以使用 调整符号,使其稍微向下移动\vcenter
。我会避免使用scaled
,而倾向于设置height
,因此符号会随当前字体大小一起缩放。
\documentclass[a4paper]{article}
\usepackage{graphicx,amsmath,amssymb}
\makeatletter
\newcommand{\squarepicture}{%
\ensuremath{\vcenter{\hbox{%
\includegraphics[height=\fontcharht\font`A]{squarepicture}%
}}}%
}
\begin{document}
\begin{equation}
\{ \squarepicture, \squarepicture, \squarepicture \}
\end{equation}
\begin{equation}
( \squarepicture, \squarepicture, \squarepicture )
\end{equation}
\begin{equation}
\renewcommand{\arraystretch}{0}
\begin{array}{@{\vline}c@{\vline}c@{\vline}c@{\vline}}
\hline
\squarepicture & \squarepicture & \squarepicture \\
\hline
\squarepicture & \squarepicture & \squarepicture \\
\hline
\squarepicture & \squarepicture & \squarepicture \\
\hline
\end{array}
\end{equation}
\Huge
\begin{equation}
\{ \squarepicture, \squarepicture, \squarepicture \}
\end{equation}
\end{document}
顺便说一下,这是该图片的 Metapost 来源:
beginfig(1);
fill (0,0)--(100,0)--(100,100)--(0,100)--cycle withcolor (1,1,0);
pickup pencircle scaled 4;
draw fullcircle scaled 90 shifted (50,50);
draw (5,50)--(95,50);
draw (50,5)--(50,95);
pickup pencircle scaled 10;
drawdot (30,70);
drawdot (70,30);
endfig;
end.
答案2
我提出了另一种垂直对齐问题的解决方案。一个垂直调整参数以获取正确分隔符的宏。对于数组,egreg 解决方案似乎不错。
\documentclass{scrartcl}
\usepackage{tikz}
\newcommand*\squarepicture
{\tikz[scale=.5]{\fill[yellow](-1,-1)rectangle(1,1);
\draw circle(.8)(0,.8)--(0,-.8)(.8,0)--(-.8,0)
(.35,-.35)circle(.1)(-.35,.35)circle(.1);}}
\newcommand*\adjustheight[1]{\mathpalette\doadjustheight{#1}}
\newcommand*\doadjustheight[2]
{\ensuremath{\vcenter{\hbox{$#1#2$}}}}
\begin{document}
\begin{equation}
\left\{ \adjustheight{\squarepicture, \squarepicture, \squarepicture} \right\}
\end{equation}
\begin{equation}
\left( \adjustheight{\squarepicture, \squarepicture, \squarepicture} \right)
\end{equation}
\end{document}
如果你更喜欢 LaTeXy 定义,你可以使用
\newcommand*\doadjustheight[2]
{\raisebox{\dimexpr-.5\height+\fontdimen22\textfont2}{$#1#2$}}