这是我的代码。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\def\magnet at (#1,#2,#3){\draw [rotate=#3] (#1,#2) ellipse (0.8 and 0.4)
node at (#1-0.4,#2) {N}
node at (#1+0.4,#2) {S};}
\begin{figure}
\centering
\begin{tikzpicture}
\magnet at (1,0,30);
\magnet at (3,0,30);
\magnet at (5,0,30);
\end{tikzpicture}
\end{figure}
\end{document}
为什么即使椭圆的中心有相同的 y 值,它们也不是水平对齐的?
答案1
pic
通过TikZ 3.0 的功能解决:
\documentclass{article}
\usepackage{tikz}
\tikzset{
magnet/.pic={
\draw
ellipse (0.8 and 0.4)
node at (-0.4, 0) {N}
node at (0.4, 0) {S}
;
},
}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\path
(1, 0) pic[rotate=30]{magnet}
(3, 0) pic[rotate=30]{magnet}
(5, 0) pic[rotate=30]{magnet}
;
\end{tikzpicture}
\end{figure}
\end{document}
答案2
通过在定义中使用 \tikz,并删除末尾的 ;,结果是三个相邻的省略号。我自己还在学习 tikz。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\def\magnet at (#1,#2,#3){\tikz \draw [rotate=#3] (#1,#2) ellipse (0.8 and 0.4)
node at (#1-0.4,#2) {N}
node at (#1+0.4,#2) {S}}
\begin{figure}
\centering
\magnet at (1,0,30);
\magnet at (3,0,30);
\magnet at (5,0,30);
\end{figure}
\end{document}