例如,在编写公式时,如何以一种易于解析(对于编辑器而言)的方式获得以下类型的内联或至少公式空间排版:
是的,我知道,等式...可以在 TikZ 中用于通勤图,例如使用箭头。但是有没有一种简单的方法可以在简单的公式中以这种方式使用垂直等式(最重要的是不等式),而无需在普通的乳胶数学中调用 TikZ 框架 $...$。
编辑:
我应该澄清一下,我指的是上面的图片作为例子。发布了一些很棒的解决方案,但如何将它们推广到允许更多或更少的级别或嵌套在一起,以便可以在不改变基本网格上下到从左到右的相对框架的情况下稳健地使用它们(从而避免让论文编辑或合著者抓狂)?例如:
最清楚的是:如何使用堆栈或宏在行内或公式中创建“上方”“下方”的任意等式/不等式,而忽略上方和下方的其他级别?
我自己的尝试,但效果并不理想,因为矩阵中的列不能侧面重叠,但它们又必须看起来好看,而且宏方法也存在同样的问题,当然矩阵不能是下标大小:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsmath}
\usepackage{adjustbox}
\newcommand{\veq}{\mathrel{\rotatebox{90}{$=$}}}
\newcommand{\vneq}{\mathrel{\rotatebox{90}{$\neq$}}}
\begin{document}
This is a test. Yes it is. Of course. Look here. Yes, Here. That's right. Mhmm. Words. Filler. Indeed. Look. A paragraph. With words. Here. Yes. And where's that? Where is here? It's right here:
\[
\left. \frac{\partial f(A,B,C,D)}{\partial A} \right|
\raisebox{.9\baselineskip}{$_{\begin{array}{ccccc}
A & = & B & = & Z \\
{} & {} & \vneq & {} & {} \\
C & \neq & I & \neq & W \\
\veq & {} & {} & {} & {} \\
D & = & G & \neq & Q^2+3 \end{array} }$}
\]
\end{document}
答案1
使用堆栈相对简单。本质上,垂直相等是\tabbedCenterstack
,使用旋转等号\req
和\rne
。
对于第一个例子,我只是使用了常规堆栈,但对于更复杂的例子,完整的表格堆栈使其变得最简单。
\documentclass{article}
\usepackage{tabstackengine}
\stackMath
\makeatletter
\renewcommand\TAB@delim[1]{\scriptstyle#1}
\def\req{\protect\rotatebox{90}{$\scriptstyle=$}}
\def\rne{\protect\rotatebox{90}{$\scriptstyle\ne$}}
\makeatother
\usepackage{graphicx}
\begin{document}
\[
\setstackgap{L}{.6\baselineskip}
\left.\frac{\partial f(A,B,C,D)}{\partial A}\right|
\raisebox{.9\baselineskip}{$_{A = \tabbedCenterstack{C\\ \req\\0\\ \rne\\ D} \ne B}$}
\]
\[
\setstackgap{L}{.6\baselineskip}\setstacktabulargap{0pt}\TABbinary
\left.\frac{\partial f(A,B,C,D)}{\partial A}\right|
\raisebox{-.2\baselineskip}%
{$_{\tabularCenterstack{rcl}{A = & 0&\\ &\req&\\&D& \ne B = C}}$}
\]
\[
\setstackgap{L}{.6\baselineskip}\setstacktabulargap{0pt}\TABbinary
\left.\frac{\partial f(A,B,C,D)}{\partial A}\right|
\raisebox{.9\baselineskip}%
{$_{\tabularCenterstack{rcl}{L = & 0&\\ &\req&\\A = &0& \ne B = F\\
&\rne&\\ &D&\ne B\\&\rne&\\&E&}}$}
\]
\end{document}
注意:\TABbinary
在 中不需要\scriptstyle
,但在 中需要\displaystyle
,以便在 之后立即出现的关系运算符周围放置适当的间距&
。
答案2
您可以定义一个自定义宏来为您执行此操作:
添加\mathclap
了以确保正确处理宽文本的情况:
参考:
代码:
\documentclass{article}
\usepackage{graphicx}
\usepackage{mathtools}
\usepackage{adjustbox}
\newcommand{\veq}{\mathrel{\rotatebox{90}{$=$}}}
\newcommand{\vneq}{\mathrel{\rotatebox{90}{$\neq$}}}
\newcommand*{\VerticalRelations}[5]{%
% #1 = center
% #2 = above
% #3 = symbol above
% #4 = below
% #5 = symbol below
\adjustbox{stack=cc}{%
\ensuremath{#2}\\%
\ensuremath{\mathclap{#3}}\\%
\ensuremath{#1}\\%
\ensuremath{#5}\\%
\ensuremath{\mathclap{#4}}%
}%
}%
\begin{document}
\[
A = \VerticalRelations{0}{C}{\veq}{D}{\vneq} \neq B
\]
and check appropriate spacing for longer ``above" and ``below" text:
\[
A = \VerticalRelations{0}{C}{\veq}{D\neq B}{\vneq} \neq B
\]
\end{document}