참조할 수 있는 새 카운터

참조할 수 있는 새 카운터

\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}

이는 다음을 생성합니다.

여기에 이미지 설명을 입력하세요

에 대한 설명서를 살펴보세요.amsthm패키지를 통해 정리와 유사한 환경을 사용자 정의할 수 있는 방법을 알아보세요.

편집하다제가 말씀드린 것처럼 스타일을 맞춤설정하려면Eksempel 해당 문서를 읽어야 합니다.amsthm패키지. 행을 추가하는 경우:

\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

그런 다음 정의하려는 스타일을 얻습니다.

여기에 이미지 설명을 입력하세요

"정리 헤드 사양"의 s 는 \hfillEksempel 제목의 중앙에 위치합니다.

이보다 더 많은 작업을 수행하려는 경우 \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}

여기에 이미지 설명을 입력하세요

관련 정보