我如何在 LaTeX 中排版法诺平面?

我如何在 LaTeX 中排版法诺平面?

如果这是重复的问题或者是糟糕的问题,我深感抱歉。

我该如何排版法诺平面在 LaTeX 中?

具体来说,我需要它的矢量图形,我更愿意使用该tikz包。我也不想复制粘贴别人的答案:我希望能够对其进行自定义。

为方便起见,这是法诺平面的图片:

在此处输入图片描述

恐怕我一点头绪都没有。我可以使用tikz-cd平均交换图,但仅此而已。

请帮忙 :)

答案1

在此处输入图片描述

使用一些基本的几何形状和calc库,您可以将所有计算留给 TikZ:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

\newcommand\FanoPlane[1][1cm]{%
\begin{tikzpicture}[
mydot/.style={
  draw,
  circle,
  fill=black,
  inner sep=1.5pt}
]
\draw
  (0,0) coordinate (A) --
  (#1,0) coordinate (B) --
  ($ (A)!.5!(B) ! {sin(60)*2} ! 90:(B) $) coordinate (C) -- cycle;
\coordinate (O) at
  (barycentric cs:A=1,B=1,C=1);
\draw (O) circle [radius=#1*1.717/6];
\draw (C) -- ($ (A)!.5!(B) $) coordinate (LC); 
\draw (A) -- ($ (B)!.5!(C) $) coordinate (LA); 
\draw (B) -- ($ (C)!.5!(A) $) coordinate (LB); 
\foreach \Nodo in {A,B,C,O,LC,LA,LB}
  \node[mydot] at (\Nodo) {};    
\end{tikzpicture}%
}

\begin{document}

\FanoPlane\quad\FanoPlane[2cm]\quad\FanoPlane[3cm]

\end{document}

答案2

事实上和其他的没太大区别...

\documentclass[tikz,border=5]{standalone}
\begin{document}
\tikz[every node/.style={circle, fill}]
  \draw circle [radius=1] (90:2) -- (210:2) -- (330:2) -- cycle (0,0) node {}
    \foreach \i in {90,210,330}{ (\i:2) node {} -- (\i+180:1) node {} };
\end{document}

在此处输入图片描述

答案3

以下是两个简短的解决方案:

在此处输入图片描述

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw (30:1)  -- (210:2)
        (150:1) -- (330:2)
        (270:1) -- (90:2)
        (90:2)  -- (210:2) -- (330:2) -- cycle
        (0:0)   circle (1);
  \fill (0:0)   circle(3pt)
        (30:1)  circle(3pt)
        (90:2)  circle(3pt)
        (150:1) circle(3pt)
        (210:2) circle(3pt)
        (270:1) circle(3pt)
        (330:2) circle(3pt);
\end{tikzpicture}
\end{document}
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw \foreach \a in {30,150,270}{(\a:1)  -- (180+\a:2)}
        (90:2)  -- (210:2) -- (330:2) -- cycle
        (0:0) circle (1);
  \fill \foreach \p in {(0:0),(30:1),(90:2),(150:1),(210:2),(270:1),(330:2)}
        {\p circle(3pt)};
\end{tikzpicture}
\end{document}

答案4

另一个基于 的解决方案pstricks,使用包中的简短代码pst-poly。该pdf选项允许 pdfLaTeX编译,前提是您--shell-escape为 TeX Live 或 MacTeX 设置了开关,--enable-write18对于 MiKTeX:

\documentclass[12pt, pdf, x11names]{standalone}

\usepackage{pst-poly}

\begin{document}
\psset{unit = 2cm,dimen = m}
\begin{pspicture*}(-1.25,-1)(1.25,1.1)
\providecommand{\PstPolygonNode}{%
\psdots[dotstyle = o, dotsize=4pt,fillstyle = solid, fillcolor=cyan](1;\INode)}
\psset{ linewidth = 0.6pt}
\rput{-30}(0,0){\PstTriangle[PolyName =A]}
\pscircle(A0){0.5}
 \rput{150}(0,0){\PstTriangle[unit=0.5, PolyOffset=2,PolyName=I, linestyle=none]}
 \multido{\i = 1 + 1}{3}{\ncline[nodesep = 2pt]{A\i}{I\i}}
 \psdot[dotstyle = o, dotsize=4pt,fillstyle = solid, fillcolor=cyan](A0)
\end{pspicture*}

\end{document} 

在此处输入图片描述

相关内容