新的計數器可供參考

新的計數器可供參考

我創建了一個方法\makeExample來創建一個名為 的新計數器example。你能告訴我如何修改它,以便我可以引用計數器嗎example?例如,我可以寫:some text.... \vref{label} ....

可以在此處找到工作範例:https://www.sharelatex.com/project/541ffc3e05c84a5c4060ae58

我的方法如下:

\newcounter{example}[section]
\newenvironment{example}[1][]{\refstepcounter{example}\par\medskip
   \LARGE\textsc{Eksempel~\thechapter.\theexample #1}}{\medskip}

\newcommand\makeExample{%
 {%
    \begin{center}%
        \begin{example}%
        \end{example}%
    \end{center}%
 }%
}

答案1

對程式碼最簡單的修改是添加一個可選參數到\makeExample可以放置任意程式碼的位置,例如\label.我在底部發布了一個這樣的例子,但是我強烈懷疑這不是你想要的。您提供的範例正在設定一個mdframed環境,​​最簡單的方法是使用套件提供的類似定理的機制,mdframed如下所示:

樣本輸出

\documentclass{memoir}

\usepackage[utf8]{inputenc}
\usepackage{mathtools,varioref}
\usepackage[framemethod=TikZ]{mdframed}

\mdfdefinestyle{cexamplestyle}{%
 frametitlefont=\normalfont\Large\scshape,
 frametitlealignment=\center
}
\mdtheorem[style=cexamplestyle]{centerexample}{Example}[chapter]


\begin{document}

\vref{todo} is a sample. The fist is a sample of how I would like it to be

\begin{centerexample}
  \label{todo}
    \noindent
    \textbf{Data:} 1011
    \newline
    \textbf{Function:} $a\cdot x^3+b\cdot x^2+c\cdot x+d\cdot 1$

    \noindent
    Værdierne fra $a$, $b$, $c$ og $d$ findes som følger:
    \newline
    $a=1$, $b=0$, $c=1$ og $d=1$
\end{centerexample}

\end{document}

這是第一次修改的結果:

\documentclass{book}

\usepackage{mdframed}
\newcounter{example}[section]
\newenvironment{example}[1][]{\refstepcounter{example}\par\medskip
   \LARGE\textsc{Example~\thechapter.\theexample #1}}{\medskip}

\newcommand{\makeExample}[1][\relax]{%
 {%
    \begin{center}%
      \begin{example}%
        #1%
      \end{example}%
    \end{center}%
 }%
}

\begin{document}

\chapter{A chapter}
\label{cha:chapter}

\begin{mdframed}
  \makeExample[\label{cex:sample}]
  A centered example.
\end{mdframed}

That was Example~\ref{cex:sample}.

\end{document}

第二個樣品

我認為第一種方法要簡單得多。

答案2

提出問題時,您應該提供完整的最小工作範例(MWE),既是為了展示你正在嘗試做的事情,也是為了幫助其他人幫助你——如果他們給你一些可以利用的東西,那麼幫助別人就會容易得多。 MWE 應該以一個\documentclass語句開始,包含您想要的所有包,然後擁有\begin{document}...\end{document}. MWE 應該編譯並包含解釋/演示您所要求的內容所需的接近最少量的程式碼。這為每個人節省了大量時間。

在這種情況下,在我看來,您只是試圖定義一個用於顯示範例的環境。如果這就是您想要做的,那麼您工作得太辛苦了,因為您只能使用\newtheorem{example}[section]{Eksempel}.完整的 MWE,帶有交叉引用,是

\documentclass{article}
\usepackage{amsmath}
\newtheorem{example}{Eksempel}% implicitly defines a counter
\numberwithin{example}{section}% numbers it within sections
\begin{document}
\section{Important examples}
\begin{example}\label{MyExample}% \label creates the reference
  1+1=2.
\end{example}

My Eksempel~\ref{MyExample} is great.% \ref creates the cross-reference

\end{document}

這會產生:

在此輸入影像描述

查看文件阿姆斯特姆包以了解如何自訂類似定理的環境。

編輯正如我所提到的,要自訂樣式,Eksempel您應該閱讀以下文檔阿姆斯特姆包裹。如果新增以下行:

\usepackage{amsmath,amsthm}
\newtheoremstyle{eksempel}
  {3pt}% ⟨Space above⟩
  {3pt}% ⟨Space below⟩
  {}% ⟨Body font⟩
  {0pt}% ⟨Indent amount⟩
  {\scshape}% ⟨Theorem head font⟩
  {}% ⟨Punctuation after theorem head⟩
  {0pt}% ⟨Space after theorem head⟩2
  {\centerline{\thmname{#1} \thmnumber{#2}}}% ⟨Theorem head spec⟩
\theoremstyle{eksempel}
\newtheorem{example}{Eksempel}% implicitly defines a counter

然後你就得到了你想要定義的樣式:

在此輸入影像描述

請注意,\hfill“定理頭規範”的 s 位於 Eksempel 標題的中心。

如果您嘗試做的事情不止於此,那麼您的程式碼仍然過於努力,因為您不需要同時定義\newenvironment{example}\makeExample命令:環境本身就是命令。在這種情況下,你可能想要類似的東西

\newenvironment{example}[1][]{\refstepcounter{example}\par\medskip
     \center\LARGE\textsc{Eksempel~\thechapter.\theexample #1}}
     {\endcenter\medskip}

(但是,我建議刪除\par\medskips,因為它們對我來說看起來是錯誤的。)

當您使用時,\refstepcounter您可以像上面的 MWE 中一樣使用此命令,並\label使用 和\ref來建立交叉引用。也就是說,最好\theexample在環境的定義中使用並添加:

\renewcommand\theexample{\thechapter.\arabic{example}}

最後,由於您將範例計數器定義為部分的子計數器,我懷疑您確實想要:

\renewcommand\theexample{\thesection.\arabic{example}}

答案3

這是一個具有自動標籤生成功能的版本,但是,重置計數器後可能會失敗。

\documentclass{book}

\newcounter{example}[section]

\renewcommand{\theexample}{\thesection.\arabic{example}}
\newenvironment{example}[1][]{\refstepcounter{example}\label{mysophisticatedexample::\number\value{example}}
  \LARGE\textsc{Eksempel~\theexample #1}\par\medskip

}{\medskip}

\newcommand\makeExample{%
 {%
    \begin{center}%
        \begin{example}%
          This is some dummy example with \theexample as counter and it references \ref{mysophisticatedexample::1}
        \end{example}%
    \end{center}%
 }%
}

\begin{document}

\chapter{First}

\section{First}

\makeExample 

\makeExample

\makeExample





\end{document}

在此輸入影像描述

相關內容