Я пишу журнал и использую стандартный enumitem
пакет для написания пронумерованных списков. Текущий список, который я использую, это:
В преамбуле
\usepackage[shortlabels]{enumitem}
и в документе
\begin{enumerate}[label=\textbf{\arabic*}.]
%code to executed here
\end{enumerate}
Однако команда журнала попросила меня изменить это на следующее:
______________________
Упражнение XX
______________________
где XX — это счетчик, например, 1, 2, 3 ... и так далее. Я понятия не имею, как это сделать. Единственное, что приходит на ум, — это объединить TIkZ с самодельным перечислителем. Однако я не могу придумать правильные макросы, необходимые для этого.
Любая помощь?
решение1
Я использовал, amsthm
так как ваши упражнения показались мне очень похожими на те, что определены в amsthm
пакете. Я приглашаю вас прочитать эту документацию.
Плюс в том, что вы можете довольно хорошо и легко стилизовать вещь, минус в том, что у вас есть среда для каждого примера.
Вот что я получил:
\documentclass[letterpaper,12pt]{article}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{xca}{Exercise}
\newenvironment{myexercise}{%
\par\noindent \rule{4pc}{1pt}\begin{xca}}%
{\end{xca}\noindent\rule{4pc}{1pt}}
\begin{document}
\begin{myexercise}
Test
\end{myexercise}
\end{document}
с таким результатом:
Вот основные направления:
\theoremstyle{definition}
использует предопределенный стиль amsthm\newtheorem{xca}{Exercise}
устанавливает новую теорему (xca
) в вышеупомянутом стиле, с названиемУпражнениеЗатем мне нужно установить правила, которые я даю, поскольку
\rule{4pc}{1pt}
они кажутся мне подходящими. Возможно, им нужна тонкая настройкаThe
\par\noindent
служит для завершения предыдущего абзаца и не оставляет отступа. Thenoindent
также требуется после окружения.
РЕДАКТИРОВАТЬ
Так как OP нужно что-то немного другое, например a \newline
после заголовка, я определил новый theoremstyle
и применил его. amsthm
В документации все это объяснено
\documentclass[letterpaper,12pt]{article}
\usepackage{amsthm}
\newtheoremstyle{mydefinition}%
{3pt}% space above
{5pt}% space below
{}% body font
{}% indent
{\bfseries}% header font
{.} % header punctuation
{\newline}% after header space
{}%
\theoremstyle{mydefinition}
\newtheorem{xca}{Exercse}
\newenvironment{myexercise}{\par\noindent \rule{4pc}{1pt}\begin{xca}}{\end{xca}\noindent\rule{4pc}{1pt}}
\begin{document}
\begin{myexercise}
Test
\end{myexercise}
\end{document}
С результатом:
ПРИМЕЧАНИЕ:Я привел несколько фиктивных примеров разделения верха и низа, просто чтобы показать, что здесь можно указать «нормальные» размеры.
решение2
Это еще одна возможность, с ntheorem
. Я исправил break
стиль, чтобы определить ruled
стиль, и добавил немного удовольствия с microtype
.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{ntheorem}
\usepackage{microtype}
\usepackage{fourier, cabin}
\makeatletter
\newtheoremstyle{ruled}%
{\hrule\qquad\item[[\indent\rlap{\vbox{\hbox{\hskip\labelsep \theorem@headerfont
##1\ ##2\theorem@separator}\hbox{\strut}}}] \leavevmode\vspace*{-1.3ex}\hrule\vspace{2ex}}%
{\hrule\item[\indent\rlap{\vbox{\hbox{\hskip\labelsep \theorem@headerfont
##1\ ##2\ (##3)\theorem@separator}\hbox{\strut}}}] \leavevmode\vspace*{-1.3ex}\hrule\vspace{2ex}}
\makeatother
\theoremstyle{ruled}%
\theoremheaderfont{\lsstyle\sffamily\scshape}
\theorembodyfont{\normalfont}
\newtheorem{exercise}{Exercise}
\begin{document}
\begin{exercise}[An exciting exercise]
Prove that equality is an equivalence relation.
\end{exercise}
\end{document}