> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/ru/podrobnye-stati/25-how-to-create-a-multilingual-customisable-cd-disk-jewel-case-calendar-using-latex.md).

# Как создать многоязычный настраиваемый календарь для коробки от CD-диска с помощью LaTeX

Универсальность LaTeX делает его довольно удобным (и бесплатным!) инструментом для создания разных полезностей, включая ежемесячные календари. И вот моя попытка создать [класс и шаблон LaTeX](https://www.overleaf.com/read/vtqtzgbcvmbg) для создания настраиваемых многоязычных ежемесячных календарей, которые помещаются в коробки от CD или в коробки от дискет 3,5". Можно добавлять изображения и события, а для календаря можно выбрать любой диапазон месяцев — необязательно, чтобы он начинался в январе и заканчивался в декабре.

[![{{{alt}}}](/files/5b096a6aeca00ad5736d59b961f79c3666f01ff8)](https://www.overleaf.com/read/vtqtzgbcvmbg)

Их можно делать для личного пользования, в подарок или как памятный сувенир к особым событиям, например к годовщинам. Их также можно использовать для рекламы или мерча, если вы ведете клуб или общество. Например, вы могли бы сделать календарь с птицами, часто встречающимися в вашем районе, для местного клуба любителей наблюдения за птицами. По работе вы, возможно, захотите сделать календарь для вашей группы по чтению журнальных статей, выделив важные даты для заданий и подачи материалов на конференции в вашей области в наступающем семестре.

### Ежемесячные календари

Это `cdcalendar` класс задаст размер календаря так, чтобы он [помещался в коробку от CD](https://www.overleaf.com/read/htkctjjgmxjx), и разместит их на бумаге формата A4:

```latex
\documentclass[12pt]{cdcalendar}
\begin{document}

%% Июнь 2015
\monthCalendar{2015}{06}
\clearpage

%% Июль 2015
\monthCalendar{2015}{07}
\end{document}
```

Если вы хотите сделать календарь меньшего размера, чтобы [помещался в коробки от 3,5" дискет](https://www.overleaf.com/read/vtqtzgbcvmbg) вместо этого укажите `small` опцию `cdcalendar` класс:

```latex
\documentclass[9pt,small]{cdcalendar}
```

Для тех, кто интересуется техническими подробностями: календарь отрисовывается с помощью `tikz`, а компоновка 2-up или 4-up выполняется с помощью `pgfpages`.

### Добавление иллюстраций

Я определил команду `\illustration` для добавления изображений на каждую страницу календаря:

```latex
\usepackage{graphicx}

%% синтаксис: \illustration[caption]{width}{image-file-name}
\illustration[Мы отлично повеселились на дне рождения!]{8.5cm}{Party.jpg}
```

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

### Добавление/отметка событий

Вы можете отмечать события в каждом месяце с помощью `\event` команду:

```latex
\event{2015-10-25}{Конец летнего времени}
```

Событие будет перечислено над месячным календарем, а дата будет обведена кружком в самом календаре. События должны указываться *после* в соответствующем `\monthCalendar` и на той же странице.

Если ваше событие длится несколько дней, вы можете указать его продолжительность (в днях) как параметр для `\event`:

```latex
\event[5]{2015-07-26}{ACL 2015, Beijing}
```

Кроме того, можно указать *дату окончания* в качестве параметра вместо этого:

```latex
\event[2015-07-31]{2015-07-26}{ACL 2015, Beijing}
```

Обе формы команды дадут одинаковый результат.

Если событие охватывает два месяца, например `\event[9]{2015-06-27}{Летний лагерь}`, вам придется использовать эту команду в обоих месяцах, то есть один раз для июня и один раз для июля:

```latex
\monthCalendar{2015}{06}
\event[9]{2015-06-27}{Летний лагерь}
\clearpage

\monthCalendar{2015}{07}
\event[9]{2015-06-27}{Летний лагерь}
\clearpage
```

### Многоязычные календари

Даты, названия месяцев и начальные буквы дней недели можно локализовать на языки, которые поддерживаются `babel`, `translator` и `datetime2`.

Например, чтобы получить календарь с датами на испанском, просто укажите `испанский` в качестве опции класса:

```latex
\documentclass[12pt,spanish]{cdcalendar}
```

Мы протестировали следующие языковые параметры: `british, spanish, french, ngerman, italian, portuges, polish, croatian, greek`.

Только не забудьте [использовать LuaLaTeX](https://www.overleaf.com/blog/167) для компиляции проекта, если он на `французском`—с PDFLaTeX это работает не очень хорошо, а XeLaTeX не очень хорошо подходит для этого шаблона.

### Настройка стилей

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

Создавать это было очень увлекательно [этого шаблона](https://www.overleaf.com/read/vtqtzgbcvmbg)—мы уверены, что вы найдете этому календарю еще много применений. Наслаждайтесь!


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/ru/podrobnye-stati/25-how-to-create-a-multilingual-customisable-cd-disk-jewel-case-calendar-using-latex.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
