РЕДАКТИРОВАТЬ

РЕДАКТИРОВАТЬ

Я хочу создать новый тип заголовка. Заголовок должен выглядеть так.введите описание изображения здесь

Имя заголовка должно быть "Myheader". Сейчас я решил проблему следующим образом:

\makeatletter
\newcommand{\Myheader}{\subsubsection}
\makeatother
\titlespacing*{\subsubsection}{0cm}{0cm}{2pt}%pbk
\titleformat{\subsubsection}[display]{\Huge\filleft\scshape}{ \normalfont\bf\fontfamily{put}\fontseries{b}\fontsize{95pt}{0pt}\selectfont\thesection}{20pt}{}[\titlerule\vspace{2ex}\filright\vspace{2ex}]

Я все еще хочу иметь возможность использовать заголовок \subsubsection, поэтому решение неприемлемо. Минимальный пример кода:

\documentclass[10pt,a4paper,oneside]{article}
\usepackage[danish,english]{babel}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\makeatletter
\newcommand{\Myheader}{\subsubsection}
\makeatother
\titlespacing*{\subsubsection}{0cm}{0cm}{2pt}%pbk
\titleformat{\subsubsection}[display]{\Huge\filleft\scshape}{ \normalfont\bf\fontfamily{put}\fontseries{b}\fontsize{95pt}{0pt}\selectfont\thesection}{20pt}{}[\titlerule\vspace{2ex}\filright\vspace{2ex}]
\begin{document}
\Myheader{The first appendix}
\end{document}

Есть идеи, как это решить?

решение1

Вы можете пропатчить команду, выданную для начала приложений, так что она \sectionбудет выдавать правильные результаты после этой точки, т. е. только для приложений. Это гарантирует, что ваши приложения будут размещены на правильном уровне в иерархии разделов (например, для ToC или для закладок) и сделает ваш код максимально гибким (например, если вы передумаете, просто удалите патч).

Например:

\documentclass[10pt,a4paper,oneside]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{titlesec,etoolbox}
\usepackage{kantlipsum}
\apptocmd\appendix{%
  \titlespacing*{\section}{0cm}{0cm}{2pt}%pbk
  \titleformat{\section}[display]{\Huge\filleft\scshape}{ \normalfont\bfseries\fontfamily{put}\fontseries{b}\fontsize{95pt}{0pt}\selectfont\thesection}{20pt}{}[\titlerule\vspace{2ex}\filright\vspace{2ex}]
}{\typeout{Appendices title formatting successfully patched. Expect the expected.}}{\typeout{Appendices title formatting could not be patched. Unexpected results paradoxically to be expected.}}
\begin{document}
\section{A section}
\kant[1]
\section{Another section}
\kant[2]
\appendix
\section{The first appendix}
\kant[3]
\end{document}

залатанное аппендикс

РЕДАКТИРОВАТЬ

В комментариях вы спрашивали, как изменить это, чтобы получить пустые заголовки на страницах с \sectionafter \appendixis выдан. Ваш комментарий заставляет меня предположить, что вы используете fancyhdr. Не зная кода, который вы в настоящее время используете для заголовков в других местах, трудно указать лучший способ сделать это, но если у вас есть что-то достаточно стандартное, это должно сработать.

\documentclass[10pt,a4paper,oneside]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{titlesec,etoolbox,fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhf[lh]{\leftmark}
\fancyhf[rh]{\thepage}
\fancypagestyle{ancy}{%
  \fancyhf[h]{}%
  \renewcommand\headrulewidth{0pt}%
}
\usepackage{kantlipsum}
\apptocmd\appendix{%
  \titlespacing*{\section}{0cm}{0cm}{2pt}%pbk
  \titleformat{\section}[display]{\Huge\filleft\scshape}{ \normalfont\bfseries\fontfamily{put}\fontseries{b}\fontsize{95pt}{0pt}\selectfont\thesection}{20pt}{}[\titlerule\vspace{2ex}\filright\vspace{2ex}\thispagestyle{ancy}]
}{\typeout{Appendices title formatting successfully patched. Expect the expected.}}{\typeout{Appendices title formatting could not be patched. Unexpected results paradoxically to be expected.}}
\begin{document}
\section{A section}
\kant[1-4]
\section{Another section}
\kant[5]
\appendix
\section{The first appendix}
\kant[6-8]
\end{document}

нет заголовков в новом разделе в приложениях

Обратите внимание, что это буквальная интерпретация вашего описания и может быть, а может и не быть тем, что вы хотите. В частности:

  • \sectionследующий \appendixочищает заголовок на текущей странице, даже если страница также содержит \sectionпредшествующий \appendix;
  • Следующие страницы \appendixвключают стандартный заголовок, если они не включают \section.

\appendixЕсли вам вообще не нужны заголовки после . Вы можете использовать:

\apptocmd\appendix{%
  \pagestyle{ancy}%
  \titlespacing*{\section}{0cm}{0cm}{2pt}%pbk
  \titleformat{\section}[display]{\Huge\filleft\scshape}{ \normalfont\bfseries\fontfamily{put}\fontseries{b}\fontsize{95pt}{0pt}\selectfont\thesection}{20pt}{}[\titlerule\vspace{2ex}\filright\vspace{2ex}\thispagestyle{ancy}]
}{\typeout{Appendices title formatting successfully patched. Expect the expected.}}{\typeout{Appendices title formatting could not be patched. Unexpected results paradoxically to be expected.}}

в приложениях вообще нет заголовков

Другие возможности здесь более сложны, поэтому я буду думать о них только в случае необходимости. В этом случае я буду работать с вашим текущим кодом для заголовков, потому что, вероятно, будет проще всего отойти от него fancyhdrв тот момент. titlepsдополняет titlesecи будет хорошо работать здесь.

ИЗМЕНИТЬ ИЗМЕНИТЬ

В ответ на ваш вопрос о патчинге \tableofcontentsподобным образом, вы, конечно, можете это сделать. Однако, признаю, что я немного запутался в том, как именно все должно выглядеть, и я не смог точно понять цель кода, который вы разместили. (Но явные разрывы страниц и нумерация страниц не должны быть в определении стиля страницы.)

Я сделал это:

\pretocmd\tableofcontents{%
  \titlespacing*{\section}{0cm}{0cm}{2pt}%pbk
  \titleformat{\section}[display]{\Huge\filleft\scshape}{ \normalfont\bfseries\fontfamily{put}\fontseries{b}\fontsize{95pt}{0pt}\selectfont\thesection}{20pt}{}[\titlerule\vspace{2ex}\filright\vspace{2ex}\thispagestyle{ancy}]
}{\typeout{Contents title formatting successfully patched. Expect the expected.}}{\typeout{Contents title formatting could not be patched. Unexpected results paradoxically to be expected.}}
\apptocmd\tableofcontents{%
  \titlespacing*{\section}{0pt}{*5}{*2.5}%
  \titleformat{\section}[hang]{\normalfont\Large\bfseries}{\thesection}{1.5em}{}[\thispagestyle{fancy}]
}{\typeout{Contents title formatting successfully patched again. Expect the expected.}}{\typeout{Contents title formatting could not be patched again. Unexpected results paradoxically to be expected.}}

что дает мне это

необычное содержимое

Но я подозреваю, что вы на самом деле просто используете не тот класс. Если бы вы использовали bookили , reportто многое из этого было бы там для вас в любом случае. bookНапример, с , вы получаете \frontmatter, \mainmatter and\backmatter which are starting to look suspiciously like code you are trying to create here. If so, don't reinvent the wheel - use the right tool for the job and choosebook or abook`-like класс.

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