Новый счетчик, на который можно ссылаться

Новый счетчик, на который можно ссылаться

Я создал метод \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

тогда вы получите стиль, который вы пытались определить:

введите описание изображения здесь

Обратите внимание, что буква \hfills для «theorerm head spec» располагается по центру заголовка 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}

введите описание изображения здесь

Связанный контент