
Я работаю над классом документа tufte-book и хочу изменить размер страницы. Поскольку страницы меньше, я хочу зафиксировать общую ширину текста (включая заметки на полях). В документации класса документа указано использование пакета геометрии.
В документации этого пакета width
параметр поясняется следующим образом:
width|totalwidth
ширинавсе тело.
width=
илиtotalwidth=
. Это измерение по умолчанию равноtextwidth
, но еслиincludemp
установлено значениеtrue
,width ≥ textwidth
так какwidth
включает ширину заметок на полях. Еслиtextwidth
иwidth
указаны одновременно,textwidth
имеет приоритет надwidth
.
Вот текст моей преамбулы:
\documentclass[symmetric,justified,marginals=raggedouter]{tufte-book}
\usepackage{microtype}
\usepackage{calc}
\usepackage{geometry,afterpage}
\geometry{papersize={16.8cm,23.7cm}}% <= it seems to be OK
\geometry{textheight=18.6cm}%text : 132 *186 mm <= it is OK
\geometry{width=13.2cm}% <= The code doesn't take into account the marginparwidth and the marginparsep
\begin{document}
\end{document]
Я не знаю, как указать, что includemp
установлено значение true
.
решение1
Цитата из geometry
руководства гласит: «Если textwidth
и width
указаны одновременно, то textwidth
имеет приоритет перед width
».
В исходном коде tufte-book
, а именно в файле tufte-common.def
, присутствует следующий код:
\RequirePackage[letterpaper,left=1in,top=1in,headsep=2\baselineskip,textwidth=26pc,marginparsep=2pc,marginparwidth=12pc,textheight=44\baselineskip,headheight=\baselineskip]{geometry}
Это означает, что textwidth
указано в классе, и, следовательно, любые width
спецификации, заданные позже (например, в .tex
файле), игнорируются.
Для изменения ширины текста необходимо textwidth
вручную указать и учесть размер полей. Однако в \geometry
. Поэтому следующий код
\geometry{textwidth=13.2cm-\marginparwidth-\marginparsep}
указывает, что основной текст и поля вместе составляют 13,2 см.