제안된 대로 TikZ를 사용하여 스펙트럼 시퀀스를 조판하고 싶습니다.이 게시물, 그러나 내 스펙트럼 시퀀스 항목에는 대괄호와 수직선이 포함되어 있습니다(예: [x|...|x]). 순진하게 입력하면 전체 노드가 공백으로 나타납니다. 이 문제를 어떻게 피할 수 있습니까?
내가 사용하는 코드는 다음과 같습니다
\documentclass[a4paper,12pt]{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (m) [matrix of math nodes,
nodes in empty cells,nodes={minimum width=5ex,
minimum height=5ex,outer sep=-5pt},
column sep=1ex,row sep=1ex]{
0 & 0 & 0 & \vdots & \\
0 & [x] & 0 & k & \\
0 & 0 & 0 & \vdots & \\
0 & 0 & 0 & |1| & \\
0 & 0 & [] & 0 & \\
-2 & -1 & 0 & & \\};
\end{tikzpicture}
\end{document}
"|1|"을 포함하는 줄을 컴파일하려고 하면 오류가 반환되지만 "[x]"에는 문제가 없는 것 같지만 출력에는 아무 것도 표시되지 않습니다.
답변1
키 matrix of math nodes
(또는 matrix of nodes
)를 사용할 때 TikZ는 앰퍼샌드 사이의 모든 것을 노드의 내용으로 해석하려고 합니다. 그러나 우리(사용자)는 사례별로 해당 노드의 스타일을 수정할 수 있는 기능을 원하는 경우가 많습니다. 일반적인 사용법에서는 \node
명령에 대한 매개변수를 통해 이 작업이 수행됩니다. 또한 행렬이 노드를 배치하는 방식을 약간 수정하고 싶습니다. 따라서 TikZ가 수행하는 작업은 셀에서 먼저 발생해야 하는 특수 구문을 사용하여 이러한 항목을 지정할 수 있도록 하는 것입니다. \node
명령과 내용 사이에 수직선으로 된 내용이 추가됩니다 . 따라서 를 써서 특정 노드를 그릴 수 |[draw]|
있고 를 써서 명시적으로 이름을 지정할 수 있습니다 |(name)|
. 또한 앰퍼샌드는 실제로 선택적 인수를 취할 수 있는 명령이며 이는 행 사이의 추가 간격으로 변환됩니다(첫 번째 행에 제공된 경우).
따라서 대괄호는 행 건너뛰기로 소모되고(첫 번째 행에 없기 때문에 무시됩니다) 수직선이 node 명령의 기계에 들어가게 됩니다. 각각을 보호하려면 셀의 첫 번째 문자가 특별하지 않은지 확인해야 합니다. 전체 내용을 중괄호로 묶거나 앞에만 넣으세요 {}
.
두 버전은 다음과 같습니다.
\documentclass[a4paper,12pt]{article}
%\url{http://tex.stackexchange.com/q/68600/86}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (m) [matrix of math nodes,
nodes in empty cells,nodes={minimum width=5ex,
minimum height=5ex,outer sep=-5pt},
column sep=1ex,row sep=1ex]{
0 & 0 & 0 & \vdots & \\
0 & {[x]} & 0 & k & \\
0 & 0 & 0 & \vdots & \\
0 & 0 & 0 & {}|1| & \\
0 & 0 & {}[] & 0 & \\
-2 & -1 & 0 & & \\};
\end{tikzpicture}
\end{document}
덧붙여서 다음을 사용 execute at empty cell={\node {0};}
하면 0을 모두 입력하지 않아도 됩니다.
\documentclass[a4paper,12pt]{article}
%\url{http://tex.stackexchange.com/q/68600/86}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (m) [matrix of math nodes,
execute at empty cell={\node {0};},nodes={minimum width=5ex,
minimum height=5ex,outer sep=-5pt},
column sep=1ex,row sep=1ex]{
& & & \vdots \\
& {[x]} & & k \\
& & & \vdots \\
& & & {}|1| \\
& & {}[] & \\
-2 & -1 & & {} \\};
\end{tikzpicture}
\end{document}