将参数插入到新环境中

将参数插入到新环境中

有人能帮助我吗?我真的不知道在新环境中该做什么。我有这个:

 %Diagram environment
 \newenvironment{diagram}%
 {\stepcounter{CountDiag}\vspace*{10pt}%

 \begin{center}%
     \begin{tikzpicture}}%
         {\end{tikzpicture}\vspace*{-5pt}\par Diagram~\theCountDiag%
 \end{center}}%

它工作正常,但我想补充一点:

  \tkzSetUpCompass[color=blue]

所以我不需要把它放在我使用的每个图表中。

 \documentclass{article}
 \usepackage{tkz-euclide}

 %Diagram environment
 \newenvironment{diagram}%
 {\stepcounter{CountDiag}\vspace*{10pt}%

 \begin{center}%
 \begin{tikzpicture}}%
    {\end{tikzpicture}\vspace*{-5pt}\par Diagram~\theCountDiag%
 \end{center}}%

 \newcounter{CountDiag}\counterwithin*{CountDiag}{section}%

 \begin{document}

 \begin{diagram}
 \tkzDefPoint(0,0){A}
 \tkzDefPoint(3,0){B}
    \tkzDrawCircle[blue](A,B)

    \tkzDrawPoints(A,B)
    \tkzLabelPoints(A,B)
    
    \tkzDrawSegment[red](A,B)
 \end{diagram}
 \end{document}

答案1

只需在“开始”部分添加指令。

不过,我会做一些重构。

\documentclass{article}
\usepackage{tkz-euclide}

\usepackage{lipsum}

%Diagram environment
\newenvironment{diagram}
 {%
  \par\addvspace{10pt}%
  \centering
  \stepcounter{CountDiag}
  \tkzSetUpCompass[color=blue]
  \begin{tikzpicture}
}{%
  \end{tikzpicture}\par\nopagebreak
  \vspace{5pt}
  Diagram~\theCountDiag\par
  \addvspace{10pt}
}
\newcounter{CountDiag}\counterwithin*{CountDiag}{section}%

\begin{document}

\lipsum[1][1-4]

\begin{diagram}
  \tkzDefPoint(0,0){A}
  \tkzDefPoint(3,0){B}
  \tkzDrawCircle[blue](A,B)
  \tkzDrawPoints(A,B)
  \tkzLabelPoints(A,B)
  \tkzDrawSegment[red](A,B)
\end{diagram}

\lipsum[2]

\end{document}

调整间距以满足您的需求。\addvspace不要累积可能已经存在的垂直间距。

在此处输入图片描述

相关内容