![为什么在对齐环境中不允许使用括号(用于界定范围)?](https://linux22.com/image/287160/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%E5%AF%B9%E9%BD%90%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%B8%8D%E5%85%81%E8%AE%B8%E4%BD%BF%E7%94%A8%E6%8B%AC%E5%8F%B7%EF%BC%88%E7%94%A8%E4%BA%8E%E7%95%8C%E5%AE%9A%E8%8C%83%E5%9B%B4%EF%BC%89%EF%BC%9F.png)
我刚刚了解到,你可以使用括号来限定 的效果\tikzset
。但在 align 环境中不允许这样做:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\begin{document}
\begin{align}
\tikzset{every node/.style={draw}}
\tikz{\node {};} &= \text{Box}\\
{
\tikzset{every node/.style={fill}}
\tikz{\node {};} &= \text{Filled box}\\
}
\tikz{\node {};} &= \text{Box}\\
\tikz{\node {};} &= \text{Box}
\end{align}
\end{document}
这会失败并出现很多错误,例如“对齐制表符放错位置”等。
遗憾的是,即使是解决方法在这里也不起作用:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\begin{document}
\begin{align}
\tikzset{every node/.style={draw}}
\tikz{\node {};} &= \text{Box}\\
\tikzset{every node/.style={fill}}
\tikz{\node {};} &= \text{Filled box}\\
\tikzset{every node/.style={draw}}
\tikz{\node {};} &= \text{Box}\\
\tikz{\node {};} &= \text{Box}
\end{align}
\end{document}
注意最后一个节点没有被绘制。出了什么问题?
答案1
无论如何,&
已经限制了范围。因此,即使从 OP MWE 中删除独立的两个括号,也不会绘制最后两个框。可能的简单解决方法:
任何一个
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\begin{document}
\begin{align}
\tikzset{every node/.style={draw}}
\tikz{\node {};} &= \text{Box}\\
\tikzset{every node/.style={fill}}
\tikz{\node {};} &= \text{Filled box}\\
\tikzset{every node/.style={draw}}\tikz{\node {};} &= \text{Box}\\
\tikzset{every node/.style={draw}}\tikz{\node {};} &= \text{Box}
\end{align}
\end{document}
或者
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\begin{document}
\tikzset{every node/.style={draw}}
\begin{align}
\tikz{\node {};} &= \text{Box}\\
\tikzset{every node/.style={fill}}
\tikz{\node {};} &= \text{Filled box}\\
\tikz{\node {};} &= \text{Box}\\
\tikz{\node {};} &= \text{Box}
\end{align}
\end{document}
均产生
答案2
在一个align
环境内——或者任何单元格被&
或分隔的环境中\\
——每个单元格都完全独立于其他单元格。因此,设置或更改样式的指令必须在每个单元格内完成。
您可以通过插入代码来“拯救”您的解决方法示例
\tikzset{every node/.style={draw}}
紧接着最后一个\\
。