下面的 MWE 中,是否列出了在数学模式下实现符号任意上下左右移动的所有通用方法?如果是,那就是答案。如果没有,那么遗漏了哪些好方法?具体来说,是否有任何方法可以解决下面列出的相关问题?
- 表格堆栈几乎可以在任何有有序行和列的符号的地方完成工作,但是比例盒无法在其中进行编译。
- 在某些情况下,raisebox 似乎运行良好,但是在其中放置数学模式字体大小命令时以及在类似情况下,它不会进行编译。
- 另外,我们也不能将一个 raisebox 放在另一个 raisebox 里面:如果将 raisebox 放第二个,将导致将第一个 raisebox 忽略。
\;
通过、\
、进行水平间距
\:
设置经常会导致某些公式变得混乱。有没有办法将数学模式中所有符号之间的间距默认设置为确定的大小?这可以通过在表格堆栈内完成所有工作并设置一个参数来实现,但在普通数学环境中是否存在这种参数?MWE 中的公式用于说明:
\documentclass[12pt]{article} \usepackage{amsfonts,mathtools,amssymb} \usepackage{tabstackengine} \usepackage{tikz} \begin{document} \[% \setstackgap{L}{25pt}\setstacktabulargap{2pt}\TABbinary% \underset{\raisebox{-7pt}{$\textstyle 1$}}{\underbrace{\raisebox{4pt}{\;qbqb\;}}}% \raisebox{-9pt}{\hspace{7pt}${\tabularCenterstack{rcl}{\textstyle = \\ \textstyle +}}$\hspace{7pt}}% \underset{\raisebox{-7pt}{$\textstyle 1$}}{\underbrace{\raisebox{4pt}{\;qqbb\;}}}% \raisebox{-9pt}{\hspace{7pt}${\tabularCenterstack{rcl}{\textstyle = \\ \textstyle +}}$\hspace{7pt}}% \underset{\raisebox{-7pt}{$\textstyle 1$}}{\underbrace{\raisebox{4pt}{\;qb\;}}}% \mathrel{\raisebox{-21pt}{$\;=\;\;\;3$}}% \] \[% \underset{\raisebox{-5pt}{\scalebox{0.9}{$1$}}}{\underbrace{\raisebox{4pt}{\;qbqb\;}}}% \;\stackrel{\raisebox{2pt}{=}}{\raisebox{-19pt}{\scalebox{0.9}{\,+}}}\;% \underset{\raisebox{-5pt}{\scalebox{0.9}{$1$}}}{\underbrace{\raisebox{4pt}{\;qqbb\;}}}% \;\stackrel{\raisebox{2pt}{=}}{\raisebox{-19pt}{\scalebox{0.9}{\,+}}}\;% \underset{\raisebox{-5pt}{\scalebox{0.9}{$1$}}}{\underbrace{\raisebox{4pt}{\;qb\;}}}% \mathrel{\raisebox{-19pt}{\scalebox{0.9}{$\;=\;\;\;3$}}}% \] \scalebox{1}{\begin{tikzpicture}[scale=1]% \node at (2.75,-1.2) {$+$};% \node at (2.75,-1.9) {$d$};% \node at (0,0) {$% \underset{\raisebox{-5pt}{\scalebox{0.9}{$1$}}}{\underbrace{\raisebox{4pt}{\;qbqb\;}}}% \;\stackrel{\raisebox{2pt}{=}}{\raisebox{-19pt}{\scalebox{0.9}{\,+}}}\;% \underset{\raisebox{-5pt}{\scalebox{0.9}{$1$}}}{\underbrace{\raisebox{4pt}{\;qqbb\;}}}% \;\stackrel{\raisebox{2pt}{=}}{\raisebox{-19pt}{\scalebox{0.9}{\,+}}}\;% \underset{\raisebox{-5pt}{\scalebox{0.9}{$1$}}}{\underbrace{\raisebox{4pt}{\;qb\;}}}% \mathrel{\raisebox{-19pt}{\scalebox{0.9}{$\;+\;\;\;p$}}}% $};\end{tikzpicture}} \end{document}
当然,也可以将公式放在文档中
standalone
,output
然后将其作为图形包含在tikz
上面的环境中,并在其上绘制其他符号,依此类推,避免宏不能在另一个宏内编译的所有问题,但这是最后的手段。更好的办法:有没有办法在一个文档中做到这一点,比如说代码中途输出到
pdf
。然后,编译器会读取它(它将与最终输出pdf
和.tex
文件位于同一文件夹中),因为它会继续执行文档代码,并被编译器中剩余的代码视为图形,从而输出第二个pdf
(实际的论文)。编辑:澄清一下,这个已经在任何地方实施了吗/可以做到吗?
答案1
i) 表格堆栈几乎可以在任何有有序行和列的符号的地方完成工作,但比例盒无法在其中进行编译。
\scalebox
应该在那里工作。
ii) 在某些情况下,raisebox 似乎运行良好,但在其中放置数学模式字体大小命令时以及在类似情况下,它不会编译。
a\raisebox
形成一个水平(LR)框,因此要在其参数中重新进入数学模式,您需要$
或\(
等等
iii) 另外,不能将一个 raisebox 放置在另一个 raisebox 内:第二个 raisebox 会导致第一个 raisebox 被忽略。
\raisebox
可以任意嵌套(尽管在 30 年的 TeX 使用过程中,我从来没有想过嵌套它们,或者在数学模式中使用它们,人们想知道这些问题的背景是什么?
这难道不是 .aux 文件对需要在输出中早于编译器计算的参数所做的操作吗?
不,该aux
文件包含 TeX 代码\input
。它无法在排版文本级别上工作。