Tikz 节点内的垂直模式,使用 \textit 或 \emph

Tikz 节点内的垂直模式,使用 \textit 或 \emph

我想在 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键,节点的内容将排版在 中\boxalign使用 时,文本基本上会放入 中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}

在此处输入图片描述

相关内容