我正在寻找创建自定义表格图的方法并发现了这个老问题:创建带有轴的表格
我正在使用我所在大学的 fithesis 包和模板,并根据我的要求更改了一个答案的解决方案。
\usetikzlibrary{matrix}
\begin{table}
\caption{Typy uživatelského rozhraní v herním průmyslu.}
\begin{tikzpicture}
\matrix (T) [matrix of nodes,nodes={draw,text width=3cm,align=center,minimum height=2.5cm,inner sep=1pt,font=\footnotesize,anchor=south}]
{
Diegetic & Spatial \\
Meta & Non-Diegetic \\
};
\node[yshift=12mm,font=\bfseries] at (T.north){Je součástí narativu?};
* \node[xshift=-16mm,font=\bfseries,rotate=90] at (T.west){Je v prostoru herní scény?};
\matrix at (T.north west) [matrix of nodes,anchor=south west,yshift=-4mm,column sep=4pt,nodes={text width=3cm,align=center,minimum height=1.3cm,inner sep=1pt,font=\bfseries}]
* {
Ano & Ne\\
};
\matrix at (T.north west) [matrix of nodes,anchor=north east,row sep=4pt,nodes={text width=2.3cm,align=right,minimum height=2.5cm,font=\bfseries}]
{
Ano\\
Ne\\
};
\end{tikzpicture}
\end{table}
上面的代码在单独的文件中(除了\usetikzlibrary{matrix}
,它在主文件中\usepackage{tikz}
)。我使用这个单独的文件插入到主文件中\input{}
一切都呈现正常,但在标有“*”的行上(* 不是真实代码,只是错误行的可视化)我收到错误缺少数字,被视为零,导致打印崩溃。
当我在明文文件中尝试此代码时,一切正常,因此我预计此代码与 fitthesis 之间存在一些不兼容性,但我不知道可能是什么问题。感谢您的帮助。
答案1
看看下面的解决方法是否能帮助您。
主文件:
\documentclass{book}
\usepackage{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix,
positioning}
\usepackage{caption}
\usepackage{lipsum}
\begin{document}
\lipsum[11]
\begin{table}[ht]
\centering
\caption{Typy uživatelského rozhraní v herním průmyslu.}
\label{tab:typy-rozhrani.tex}
\input{tab-typy-rozhrani.tex}
\end{table}
\lipsum[12]
\end{document}
带有表格的文件,其名称可以是tab-typy-rozhrani.tex
:
% file: tab-typy-rozhrani.tex
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix,
positioning}
\begin{document}
\begin{tikzpicture}[
node distance = 3mm and 3mm,
lbl/.style = {rotate=#1, anchor=south, inner sep=1pt, font=\bfseries}
]
\matrix (T) [matrix of nodes,
nodes={draw, minimum width=3cm, align=center, minimum height=24mm,
font=\footnotesize, outer sep=0pt, anchor=south},
column sep=-\pgflinewidth,
row sep=-\pgflinewidth,
column 1/.append style = {nodes={minimum width=2em, draw=none, font=\bfseries}},
row 1/.append style = {nodes={minimum height=1.2em, draw=none, font=\bfseries}}
]
{
& Ano & Ne \\
Ano & Diegetic & Spatial \\
Ne & Meta & Non-Diegetic \\
};
\node[above=of T, lbl= 0] {Je součástí narativu?};
\node[left =of T, lbl=90, xshift=-1ex] {Je v prostoru herní scény?};
\end{tikzpicture}
\end{document}
(表格代码略有改变/简化)
主文件结果:
答案2
经过一番挖掘(启用和禁用软件包),我发现问题出在软件包上babel
,使用解决了\usetikzlibrary{babel}
。不确定问题到底是什么,但这对我有用。