在我的教材中,我希望学生在某些时候能够向老师核实他们是否已经准备好学习更难的教材。
我希望我的学生能看到这样的东西:
也许停车标志应该小一点,顺便说一句,我不太在意字体。
这是我为实现这一目标所做出的努力。有两件事需要改变:
- 如何在 TikZ 图表中用白色写下“STOP”?
- 如何使图片垂直对齐?
平均能量损失
\documentclass{article}
\usepackage{tikz}
\newcommand{\STOP}
{\tikz{
\draw[line width=1.2pt,scale=0.4,baseline=-0.5ex]
(22.5:1)--(3*22.5:1)--(5*22.5:1)--(7*22.5:1)--(9*22.5:1)--(11*22.5:1)--(13*22.5:1)--(15*22.5:1)--cycle;
\fill[scale=0.32,baseline=-0.5ex]
(22.5:1)--(3*22.5:1)--(5*22.5:1)--(7*22.5:1)--(9*22.5:1)--(11*22.5:1)--(13*22.5:1)--(15*22.5:1)--cycle;}
Check this section with a teacher before moving on.}
\begin{document}
\STOP
\end{document}
答案1
要添加文本,您只需要。可以使用命令选项\node[font=\tiny\bfseries\sffamily]{STOP};
调整垂直对齐。我需要稍微增加尺寸以使文本适合。baseline
\tikz
一种完全不同的方法是使用 的符号marvosym
。
\documentclass{article}
\usepackage{tikz}
\usepackage{marvosym,graphicx}
\newcommand{\STOPP}
{\begin{center}
\tikz[baseline=-1ex]{
\draw[line width=1.2pt,scale=0.6,baseline=-0.5ex]
(22.5:1)--(3*22.5:1)--(5*22.5:1)--(7*22.5:1)--(9*22.5:1)--(11*22.5:1)--(13*22.5:1)--(15*22.5:1)--cycle;
\fill[scale=0.53,baseline=-0.5ex]
(22.5:1)--(3*22.5:1)--(5*22.5:1)--(7*22.5:1)--(9*22.5:1)--(11*22.5:1)--(13*22.5:1)--(15*22.5:1)--cycle;
\node [white,font=\small\bfseries\sffamily] {STOP};}
Check this section with a teacher before moving on.
\end{center}}
\newcommand{\STOP}{
\begin{center}
\scalebox{2}{\raisebox{-1.7ex}{\Huge\Stopsign}} Check this section with a teacher before moving on.
\end{center}}
\begin{document}
\STOP\bigskip
\STOPP
\end{document}
答案2
TikZ 有一个名为 的包shapes.geometric
,我们可以通过它轻松绘制这样的正多边形并在里面添加标签。我画了两个;一个没有填充(外面的那个),另一个填充黑色并带有标志文字。
\parbox
自然地垂直居中其内容,因此我使用\parbox
与标志相同宽度的 ,以自动将标志相对于周围文本居中。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\newcommand{\STOP}{%
\parbox{1.33cm}{%
\tikz{%
\node[regular polygon, regular polygon sides=8, minimum width=1.33cm, draw, line width=2pt](n1){};
\node[regular polygon, regular polygon sides=8, minimum width=1.2cm, draw=white,fill=black,label=center:\color{white}{\bfseries\sffamily STOP}]at(n1){};
}} Check this section with a teacher before moving on.%
}%
\begin{document}
Some text \STOP
\end{document}
另外,如果您更喜欢这种marvosym
方法,我会使用相同的方法\parbox
将标志与周围的文本垂直居中。只calc
需要包来计算标志的宽度,如下所示:
\documentclass{article}
\usepackage{marvosym,graphicx,calc}
\newcommand{\STOP}{%
\parbox{\widthof{\Huge\Stopsign}}{\Huge\Stopsign} Check this section with a teacher before moving on.}
\begin{document}
\STOP
\end{document}
答案3
TikZ 实际上在手册中提供了一个使用该chamfered rectangle
形状的 STOP! 符号的示例,可以进行如下调整:
\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{shapes.misc,positioning}
\begin{document}
\begin{tikzpicture}[font=\sffamily]% modified from manual page 736
\node (stop) [chamfered rectangle, text=white, font=\bfseries\sffamily, fill, double=white, double distance=.2ex, draw, very thick, inner ysep=2ex, inner xsep=0pt, chamfered rectangle xsep=1ex, chamfered rectangle ysep=1ex] {STOP};
\node [right=of stop, anchor=west] {Check this section with a teacher before moving on.};
\end{tikzpicture}
\end{document}
为了方便起见,这可以转换为一个命令\stophere[<optional instructions>]
,该命令将默认使用问题中 MWE 的文本,或者如果指定则使用其他指令。
我还在停车标志前后留出了一点垂直空间,这可能就是您在工作表中想要的。
\documentclass{article}
\usepackage{tikz,kantlipsum}
\usetikzlibrary{shapes.misc,positioning}
\newcommand*\stophere[1][Check this section with a teacher before moving on.]{%
\medskip\par
\tikz[font=\sffamily]{% modified from manual page 736
\node (stop) [chamfered rectangle, text=white, font=\bfseries\sffamily, fill, double=white, double distance=.2ex, draw, very thick, inner ysep=2ex, inner xsep=0pt, chamfered rectangle xsep=1ex, chamfered rectangle ysep=1ex] {STOP};
\node [right=of stop, anchor=west] {#1};
}%
\medskip\par
}
\begin{document}
\kant[1]
\stophere
\kant[2]
\stophere[Complete Exercise 2 before reading the next section.]
\kant[3]
\end{document}
答案4
这也应该有效:(在 xelatex 或 lualatex 中)
\documentclass{article}
\usepackage{fontawesome}
\begin{document}
\faHandStopO
\end{document}