Как расширить класс документа статьи в LaTeX?

Мне действительно не нужно много изменений в классе документов по умолчанию. Все, что я хочу, это:

  • переопределить поля страницы (я хочу, чтобы они были одинаковыми на всех страницах, но отличаются от значений по умолчанию);
  • используйте титульную страницу;
  • добавьте больше элементов на титульную страницу (название, автор и дата для меня недостаточно, я хочу, чтобы логотип компании и компании был на титульном листе);
  • изменить стили разделов, подсекций и подсекций (я не хочу, чтобы номера отображались, в противном случае - они хороши).

Возможно, есть несколько пакетов, которые могут быть полезны в этом случае?

Ответы

Ответ 1

Существует несколько пакетов, которые могут помочь вам достичь результатов, которые вы ищете. Пакеты, которые я выбрал ниже, являются теми, которые мне нравятся, но есть несколько способов сделать это.

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{paulius-article}[2009/02/25 v0.1 Paulius' modified article class]

% Passes and class options to the underlying article class
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions

% Load LaTeX article class with the `titlepage' option so that \maketitle creates a title page, not just a title block
\LoadClass[titlepage]{article}

% Redefine the page margins
% TODO: Adjust margins to your liking
\RequirePackage[left=1in,right=1in,top=1in,bottom=1in]{geometry}

% Remove the numbers from all the headings (\section, \subsection, etc.)
\setcounter{secnumdepth}{-1}

% To modify the heading styles more thoroughly use the titlesec package
%\RequirePackage{titlesec}

% Adjust the title page design
% NOTE: This is the default LaTeX title page -- free free to make it look like whatever you want.
% TODO: Add company name and logo somewhere in here.
\newcommand{\maketitlepage}{%
  \null\vfil
  \vskip 60\[email protected]
  \begin{center}%
    {\LARGE \@title \par}%
    \vskip 3em%
    {\large
     \lineskip .75em%
      \begin{tabular}[t]{c}%
        \@author
      \end{tabular}\par}%
      \vskip 1.5em%
    {\large \@date \par}%       % Set date in \large size.
  \end{center}\par
  \@thanks
  \vfil\null%
  \end{titlepage}%
}

% This some before-and-after code that surrounds the title page.  It shouldn't need to be modified.  
% I've pulled out the part the actually typesets the title page and placed it in the \maketitlepage command above.
\renewcommand\maketitle{\begin{titlepage}%
  \let\footnotesize\small%
  \let\footnoterule\relax%
  \let \footnote \thanks%
  \maketitlepage%
  \setcounter{footnote}{0}%
  \global\let\thanks\relax
  \global\let\maketitle\relax
  \global\let\@thanks\@empty
  \global\let\@author\@empty
  \global\let\@date\@empty
  \global\let\@title\@empty
  \global\let\title\relax
  \global\let\author\relax
  \global\let\date\relax
  \global\let\and\relax
}

% TODO: If there are any other article modifications required, add them here.

% That all, folks!
\endinput

Вы хотите прочитать документацию для геометрического пакета для корректировки полей. titlesec package можно использовать, если вы хотите изменить внешний вид заголовков (кроме просто отключить номера).

Заглавная страница - это титульная страница по умолчанию LaTeX. Вам нужно будет изменить его, чтобы добавить название вашей компании и логотип. Я выделил "материал для печати" из всего другого кода, связанного с титульной страницей. Вам нужно только изменить команду \maketitlepage. В документе используйте \maketitle для печати титульной страницы.

\documentclass{paulius-article}

\title{My New Document Class}
\author{Paulius}

\usepackage{lipsum}% provides some filler text

\begin{document}
\maketitle% Actually makes a title page

\section{Section Heading}
\subsection{Look no numbers!}
\lipsum[1-10]

\end{document}

Сообщите мне, если я пропустил любые ваши требования.

Ответ 2

Вы начинаете с

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{classname}[2009/02/24]
\LoadClass{article}

и после этого добавьте любые настройки.

ОБНОВЛЕНИЕ: Я рекомендую вам прочитать LaTeX2e для авторов классов и пакетов: PDF, HTML. Примеры в разделе 3 (Структура класса или пакета) должны быть полезными.

Ответ 3

Несколько моментов, которые могут быть интересны:

  • Вы можете переопределить поля в заголовке (т.е. до \begin{document}} путем переустановки управляющих длин, таких как \setlength{\textwidth}{6.80in}, \setlength{\oddsidemargin}{0.0in} и т.д.

  • \section*{...} предоставит вам уже пронумерованные разделы. Аналогично для \subsection* и \subsubsection*. Если вы используете этот трюк и хотите получить рабочие ссылки, вы можете взглянуть на Как исправить текстовое содержимое ссылки в LaTeX?.

  • Вы посмотрели на среду titlepage?

Но, возможно, самое главное, memoir class может дать вам весь необходимый вам элемент без какого-либо взлома класса. Проверьте документацию.

Или используйте Может ли предложение Berk Güder.