TikZ ER 图:真的不能给键加下划线吗?

TikZ ER 图:真的不能给键加下划线吗?

我正在使用 TikZ ER 库创建 ER 图。手册警告说,尽管关键属性通常带有下划线,但在 TeX 中很难实现,因此库改用斜体。这对我来说没问题,但我的老师可能不会接受带有非标准符号的作业。

这就是为什么我向 TeX 向导社区寻求可行的解决方案 :) 可能相关的问题包括:

手册中的 MWE:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{er}

\begin{document}
\begin{tikzpicture}
\node[entity] (sheep) at (0,0) {Sheep}
            child {node [key attribute] {name}};
\node[entity] (genome) at (2,0) {Genome};
\node[relationship] at (1,1.5) {has}
            edge (sheep)
            edge (genome);
\end{tikzpicture}
\end{document}

答案1

假设我正确理解了要求,那么可以使用execute at begin nodeand '捕获' 框中的节点内容execute at end node,然后对其执行某些操作。这仅适用于“简单”节点内容(即基本上只是文本)。

\documentclass[border=0.125cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{er}
\newbox\underlinebox
\tikzset{
    key attribute/.append style={
        font=\rmfamily,
        execute at begin node={%
            \setbox\underlinebox=\hbox\bgroup
        },
        execute at end node={%
             \egroup\underline{\box\underlinebox}%
        }
    }
}
\begin{document}
\begin{tikzpicture}
\node[entity] (sheep) at (0,0) {Sheep}
            child {node [key attribute] {name}};
\node[entity] (genome) at (2,0) {Genome};
\node[relationship] at (1,1.5) {has}
            edge (sheep)
            edge (genome);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容