![使用 TeX Live 2016 编译 tikz 的问题](https://linux22.com/image/340626/%E4%BD%BF%E7%94%A8%20TeX%20Live%202016%20%E7%BC%96%E8%AF%91%20tikz%20%E7%9A%84%E9%97%AE%E9%A2%98.png)
我在编译此 MWE 代码时遇到一些问题pdflatex在 Fedora 24 上,使用我从其网站和 DNF 包安装的 TexLive 2016。相同的代码适用于Windows 10 上最新的MiKTeX 2.9 安装。
这些是我遇到的错误。
Undefined control sequence. {x_{\ell-1} & x
Package PGF Math Error: Unknown operator `$' or `$H' (in '{$H_{\ell -1}$}'). {x_{\ell-1} & x
这是 MWE。
\documentclass{article}
\usepackage{tikz}
\usepackage{amsmath,amssymb,amsfonts,amsthm}
\usetikzlibrary{matrix, fit, arrows, calc, positioning, patterns, decorations.pathreplacing, decorations.markings}
\begin{document}
\begin{tikzpicture}
\matrix(MX)[matrix of math nodes, row sep=0pt, column sep=0pt,%
%text height=1.5ex, text depth=0.25ex,%
minimum width=\widthof{$H_{\ell-1}$},%
minimum height=\heightof{$H_{\ell-1}$}]
{x_{\ell-1} & x_{\ell-2} & \cdots & x_{1} & x_{0} \\};
\end{tikzpicture}
\end{document}
在此先感谢您的帮助!
答案1
感谢 Torbjørn T. 的编辑,他发现早期版本的 PGF/Ti钾Z 可能允许\widthof
等等。参见使用 TeX Live 2016 编译 tikz 的问题。
如果该代码在 MikTeX 上编译成功,则你的 PGF/Ti 版本钾Z 可能已过时。您正在加载的任何内容都未定义\widthof
或\heightof
和 Ti钾Z 可能不喜欢在这里使用它们。即使你加载了包calc
,Ti钾Z 不喜欢它(尽管在这种情况下你确实会遇到不同的错误)。
我不确定 PGF/Ti 的早期版本是如何运作的钾Z,但\widthof
等等似乎已经被定义以允许在这种情况下使用它们。
有多种方法可以实现这一点,例如\pgfmathwidth
,\pgfmathheight
标准 TikZ 定义了这些方法。但是,由于calc
包的宏会给出错误,因此不能直接以该形式使用这些方法。
因此,最简单的解决方案是隐式调用它们,因为这样可以正常工作并且旨在允许这种事情。
\documentclass[border=10pt,multi,tikz]{standalone}
\usepackage{amsmath,amssymb}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix(MX)[matrix of math nodes, row sep=0pt, column sep=0pt,
minimum width=width("$H_{\ell-1}$"),
minimum height=height("$H_{\ell-1}$")]
{x_{\ell-1} & x_{\ell-2} & \cdots & x_{1} & x_{0} \\};
\end{tikzpicture}
\end{document}