我想在 tikz 节点内以斜体形式写入两行或多行文本。但我总是收到错误。请帮我解决这个问题。
梅威瑟:
\documentclass{article}
\usepackage{tikz}
\usepackage{fontawesome5}
\newcommand{\teacher}[1]{
\tikz[baseline]{
\draw (0,0) node[left=0.35cm,align=center,fill=violet!20,draw=violet,rounded corners,line width=1pt,inner sep=5pt] {\textit{#1}} node[circle,fill=violet!20,draw=violet,line width=1pt,inner sep=1pt] {\Large \color{red}\faCheck};
}
}
\begin{document}
\teacher{Hello\\World}
\end{document}
谢谢你!
答案1
如果没有align
键,节点的内容将排版在 中\box
。align
使用 时,文本基本上会放入 中tabular
(实际上是 TeX 基元 中\halign
)。因此,当你写
\tikz\node[draw,align=left]{foo\\bar};
节点的内容变成类似
\begin{tabular}{l}foo\\bar\end{tabular}
如果将节点的文本包装在宏中
\tikz\node[draw,align=left]{\textit{foo\\bar}};
就像你正在写
\begin{tabular}{l}\textit{foo\\bar}\end{tabular}
混乱将随之而来。
该怎么办?你已在上一个问题使用font
钥匙。这个建议也适用于这里
\documentclass{article}
\usepackage{tikz}
\usepackage{fontawesome5}
\newcommand{\teacher}[1]{%
\tikz[baseline]{%
\draw (0,0) node[left=0.35cm,align=center,fill=violet!20,draw=violet,rounded corners,line width=1pt,inner sep=5pt,font=\itshape] {#1}
node[circle,fill=violet!20,draw=violet,line width=1pt,inner sep=1pt] {\Large\color{red}\faCheck};% ^^^^^^^^^^^^^^
}%
}
\begin{document}
\teacher{Hello\\World}
\end{document}