使用 \par\xdef\tpd 时出错

使用 \par\xdef\tpd 时出错

\par\xdef\tpd{\region\prevdepth}为什么我会收到带有 的错误消息,但却没有收到带有 的错误消息\par\xdef\tpd{\the\prevdepth}

\documentclass{amsart}
\usepackage{mathtools}

\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{calc,intersections}

\usepackage{pgfplots}
\pgfplotsset{compat=1.11}

\setlength{\oddsidemargin}{0.0in}
\setlength{\evensidemargin}{0.0in} \setlength{\textwidth}{6.1in}
\setlength{\topmargin}{0.0in} \setlength{\textheight}{9in}


\begin{document}


\noindent \begin{minipage}[t]{4.875in}
\noindent \textbf{1. }The following figure depicts three congruent semicircles bounded by another \\
semicircle; the diameters of the three smaller semicircles cover the diameter of \\
the bigger semicircle, and each of the three smaller semicircles is tangent to \\
two other semicircles at the endpoints of its diameter. \textit{A} is the area of the \\
region enclosed by the three smaller semicircles, and \textit{B} is the area of the \par\xdef\tpd{\region\prevdepth}
\end{minipage}
%
\hspace{-0.25cm}
%
\raisebox{0mm}[0mm][0mm]
{
\begin{tikzpicture}[baseline=(current bounding box.north west)]

\coordinate (O) at (0,0);
\draw[fill=blue!50] (-1.5,0) -- (1.5,0) arc (0:180:1.5) -- cycle;
%
\draw[fill=yellow] (-3/2,0) -- (-1/2,0) arc (0:180:1/2) -- cycle;
\draw[fill=yellow] (-1/2,0) -- (1/2,0) arc (0:180:1/2) -- cycle;
\draw[fill=yellow] (1/2,0) -- (3/2,0) arc (0:180:1/2) -- cycle;

\draw[fill] (O) circle (1.5pt);


\end{tikzpicture}
} \\
\prevdepth=\tpd
enclosed by the big semicircle but outside the three smaller semicircles. Compute the ratio of $A : B$.

\end{document}

答案1

  1. \region由于不是定义的命令,因此您会收到错误。

  2. minipage带有该选项的At具有非常大的深度,因此下一行将用\lineskip胶水与其分开。

  3. 如果我们测量最后一行的深度minipage,我们可以在开始下一个段落之前重新插入该深度,从而确保基线跳过的恒定。

  4. 是什么\tpd?只是一个临时宏。您可以随意调用它\depthofthelastlineintheminipage或任何您喜欢的名称,只要它不太可能成为常用命令即可。

  5. 为什么\xdef?因为minipage组成一个组,而简单的\def宏不会使该组结束后仍存在。

  6. 为什么?因为我们想使用定义时\xdef\tpd{\the\prevdepth}的实际值;与 相同,因此将被扩展。参见\prevdepth\xdef\global\edef\the\命令欲了解更多信息\the

答案2

您尚未\region在文档中定义该宏,并且任何包含的软件包均未提供该宏。\xdef定义

\xdef\tpd{\region\prevdepth}

\region强制完全扩展其替换文本,其中需要的定义。如果\region未定义,则会出现错误! Undefined control sequence.。这与常规定义相反,\def例如

\def\tpd{\region\prevdepth}

\tpd只有在实际扩展时才需要知道替换文本中标记的定义。

阅读 TeXbook 中的第 20 章“定义(也称为宏)”以了解更多详细信息。

相关内容