我正在尝试更改矩形节点中的字体大小,但矩形仍具有预定义的大小(t=其他矩形的大小)。此外,我想在某些节点中左对齐,并有一个换行符...
我已经历过许多问答但还是无法让它发挥作用。
以下是示例代码:
\documentclass[class=minimal,border=0pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\tikzset{
punktchain/.style={rectangle, draw=black, minimum width=12em, minimum height=3em},
punktchain2/.style={rectangle, draw=black, minimum width=12em, minimum height=3em},
punktchain3/.style={rectangle, draw=black, minimum width=12em, minimum height=3em},
}
\begin{document}
\begin{tikzpicture}
[node distance=.8cm]
\node[punktchain] (x1) {TUTU};
\node[punktchain2, below=1.5cm of x1] (x2) {TITI:\\TOTO};
\node[punktchain2, below =1.5cm of x2] (x3) {TATA};
\end{tikzpicture}
\end{document}
并且我希望“TITI:”左对齐,并且使用 sriptnotesize ,“TOTO”在换行符后,也是使用 scriptnotesize 。
任何帮助将不胜感激。
答案1
字体大小
如果该class=minimal
选项与类一起使用standalone
,则标准字体大小修改宏(例如\scriptsize
、\footnotesize
等)不可用。但是,如果您真的必须使用该类选项,您始终可以定义所需的那些宏。
该类standalone
默认使用 10pt 字体大小。根据LaTeX2e 文档第 5.2 节,当默认字体大小为 10pt 时,\scriptsize
和分别由和\footnotesize
定义。\fontsize{7pt}{8pt}\selectfont
\fontsize{8pt}{9pt}\selectfont
tikz
节点中的左对齐和换行
看这个经典答案关于如何在tikz
节点中实现换行。一种方法是使用align=left
和\\
,但似乎给定行上的字体大小不受前几行修改的影响;这意味着,使用这种方法,您需要单独修改每行的大小。不太易于维护...
更好的方法(至少在您的情况下)是使用tabular
由一个左对齐列组成的(见下文)。
\documentclass[class=minimal,border=0pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\def\scriptsize{\fontsize{7pt}{8pt}\selectfont}
\def\footnotesize{\fontsize{8pt}{9pt}\selectfont}
\tikzset{
punktchain/.style={rectangle, draw=black, minimum width=12em, minimum height=3em},
punktchain2/.style={rectangle, draw=black, minimum width=12em, minimum height=3em},
punktchain3/.style={rectangle, draw=black, minimum width=12em, minimum height=3em},
}
\begin{document}
\begin{tikzpicture}[node distance=.8cm]
\node[punktchain] (x1) {TUTU};
\node[punktchain2, below=1.5cm of x1] (x2)
{
\scriptsize
\begin{tabular}{l}
TITI:\\
TOTO
\end{tabular}
};
\node[punktchain2, below =1.5cm of x2] (x3) {TATA};
\end{tikzpicture}
\end{document}