
Eu criei um método \makeExample
que cria um novo contador chamado example
. Você pode me dizer como posso modificá-lo, para poder fazer referências ao example
contador? Para que eu por exemplo possa escrever: some text.... \vref{label} ....
.
Uma amostra de trabalho pode ser encontrada aqui:https://www.sharelatex.com/project/541ffc3e05c84a5c4060ae58
Meu método é assim:
\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}%
}%
}
Responder1
A modificação mais simples em seu código é adicionar um argumento opcional \makeExample
onde você pode colocar código arbitrário, como \label
. Posto um exemplo disso na parte inferior, mas suspeito fortemente que não é isso que você deseja. O exemplo que você fornece está configurando um mdframed
ambiente e seria mais fácil usar o mecanismo semelhante a um teorema fornecido pelo mdframed
pacote da seguinte maneira:
\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}
Aqui está o resultado que a primeira modificação teria dado:
\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}
Acho que a primeira abordagem é muito mais simples.
Responder2
Ao fazer perguntas, você deve fornecer uma resposta completaexemplo de trabalho mínimo(MWE), tanto para mostrar o que você está tentando fazer quanto para ajudar os outros a ajudá-lo – é muito mais fácil ajudar alguém se eles lhe derem algo para trabalhar. O MWE deve começar com uma \documentclass
instrução, conter todos os pacotes que você deseja e depois ter a extensão \begin{document}...\end{document}
. O MWE deve compilar e conter a quantidade mínima de código necessária para explicar/demonstrar o que você está perguntando. Isso economiza muito tempo para todos.
Nesse caso, parece-me que você está simplesmente tentando definir um ambiente para exibição de exemplos. Se é isso que você está tentando fazer, então você está trabalhando demais, pois pode simplesmente usar \newtheorem{example}[section]{Eksempel}
. Um MWE completo, completo com referências cruzadas, é
\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}
Isso produz:
Veja a documentação doamsthmpacote para ver como você pode personalizar os ambientes semelhantes a teoremas.
EditarComo mencionei para customizar o estilo Eksempel
você deve ler a documentação doamsthmpacote. Se você adicionar as linhas:
\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
então você obtém o estilo que estava tentando definir:
Observe que os \hfill
s para "especificação da cabeça do teorema" centralizam o título Eksempel.
Se você está tentando fazer mais do que isso, então seu código ainda está se esforçando demais porque você não precisa definir os comandos \newenvironment{example}
e \makeExample
: os próprios ambientes são comandos. Neste caso você provavelmente quer algo como
\newenvironment{example}[1][]{\refstepcounter{example}\par\medskip
\center\LARGE\textsc{Eksempel~\thechapter.\theexample #1}}
{\endcenter\medskip}
(Sugiro excluir o \par
and \medskips
, no entanto, pois eles parecem errados para mim.)
Conforme você está usando, \refstepcounter
você pode usar este comando como no MWE acima com \label
e \ref
para criar referências cruzadas. Dito isto, provavelmente é melhor usar \theexample
na definição do ambiente e adicionar:
\renewcommand\theexample{\thechapter.\arabic{example}}
Finalmente, como você definiu o contador de exemplo como um subcontador da seção, suspeito que você realmente deseja:
\renewcommand\theexample{\thesection.\arabic{example}}
Responder3
Esta é uma versão com geração automática de etiquetas, mas pode falhar após a reinicialização do contador.
\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}