2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение24.03.2018, 15:30 
Доброго времени суток!
Три вопроса:
1. Как сделать так, чтобы длинные названия глав и секций (занимают более одной строки) со второй и последующих строк начинались от левого поля страницы?
2. Как уменьшить межстрочный интервал внутри глав и секций в оглавлении? С остальными проблемами по оформлению оглавления разобрался.
3. Как изменить жирность номеров страниц для глав? (Чтобы название главы было жирным, а номер её страницы обычным)

Минимальный пример:
код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\documentclass[oneside,a4paper,14pt]{extreport} %Определение класса документа draft опция подсвеичвает все заползания за поля области печати.

\usepackage[T2A]{fontenc}
%\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}

\usepackage{fontspec} \setmainfont{Times New Roman}


\usepackage{indentfirst} %делать отступ в начале первого параграфа (стр.19 "LaTeX за три дня" А.В. Столяров 2010г.)

\usepackage{setspace} %"умное" расстояние между строк - установить 1.5 интервала от нормального, эквивалентно
\renewcommand{\baselinestretch}{1.47}

\usepackage{geometry} %способ ручной установки полей
\geometry{top=17mm} %поле сверху
\geometry{bottom=17mm} %поле снизу
\geometry{left=21mm} %поле слева
\geometry{right=8mm} %поле справа



\setlength\parindent{1.25cm} % Указывает, что во всем тексте отступ первой строки в абзацах должен быть 1.25см.


% % Начертание заголовков секций.
\usepackage{titlesec}

\titleformat{\chapter}[block]{\filcenter}{\bfseries\chaptertitlename\bfseries\thechapter}{8mm}{\bfseries}{}
\titleformat{\section}[block]{\bfseries\normalsize}{\hspace{1.25cm}\thesection}{1ex}{}

%\titleformat{\section}[block]{\bfseries\normalsize}{\thesection}{1ex}{}

\titlespacing*{\chapter}{0mm}{-30pt}{24pt}
\titlespacing*{\section}{0pt}{34pt}{24pt}[25pt]

\usepackage{tocloft} % подключение модуля управления содержанием, списком рисунков и таблиц...
        \def\contentsname{Содержание} % Указываем, что вместо слова Оглавление должно быть СОДЕРЖАНИЕ


\clearpage


\renewcommand{\cfttoctitlefont}{\bfseries\centerline} %используется пакет tocloft команда описана в документации к пакету 2.2 Changing the titles Делаем шрифт заголовка содержания жирным (\bfseries). Выравниваем по середине строки (\centerline).

%\renewcommand{\cftaftertoctitle}{\hfill{Стр.}} % добавляет "стр." над столбиком номеров страниц в содержании.

\renewcommand{\cftaftertoctitle}{\thispagestyle{empty}} % Запрещает выводить номер первой страницы содержания, сохраняя при этом нумерацию в счетчиках страниц по документу.



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Регулировка расстояний между номерами элементов содержания и началом их названий.
\addtolength{\cftchapnumwidth}{0mm} % Регулируется расстояние от правого края номера секции до начала названия секции. (регулируется классическая numwidth)   OK
\addtolength{\cftsecnumwidth}{-3mm} % Регулируется расстояние от правого края номера секции до начала названия секции. (регулируется классическая numwidth)   OK
%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Устанавливаем ширину колонки под номера страниц и регулируем расположение номеров в этой колонке.
%\cftsetpnumwidth{mm} минус \cftsetrmarg{mm} равно ширина стобца в котором выравниваются номера страниц.
\cftsetpnumwidth{6mm} % устанавливает ширину от правого края поля для названий структурных элементов письменной работы и отточий до правого края страницы.
\cftsetrmarg{8mm} % устанавливает промежуток между правым краем поля для номеров страницы и правым краем страницы.
\renewcommand{\cftpnumalign}{r} %Позволяет выровнять номера страниц в отведенной для них колонке либо по правому краю (r) либо по левому (l) или же по центру (c). По умолчанию этот параметр в tocloft задан как r, т.е. по правому краю. Если такое поведение и требуется, то можно закомментировать это переопределение команды \cftpnumalign.
%%%%%



\setcounter{tocdepth}{1} % Указывает до какого уровня включать секции в содержание.  0 - Только chapter, 1 - также и section, 2 - еще и subsection и так далее. По требованиям РАНХиГС Тверского филиала Это значение на уровне 1.

%%%%%%%%%%%%%%%%%%%%%%%%%%
%Регулировка некоторых расстояний
\setlength{\cftbeforetoctitleskip}{-26pt} %отступ над Содержанием      OK
\setlength{\cftaftertoctitleskip}{19pt} %отступ под Содержанием.       ОК

% % Межстрочные интервалы в Содержании:
\setlength{\cftbeforechapskip}{-2mm} % интервал между главами
\setlength{\cftbeforesecskip}{-2mm} % интервал между секциями \section{title}

% % Отступы от левого поля:
\setlength{\cftchapindent}{0mm} %отступ между левым полем и \chapter{}         OK
\setlength{\cftsecindent}{12.5mm} %отступ между левым полем и \section{title}  OK
%%%%%%%




%%%%%%%%%%%%%%%%%%%%%%%%%%
% Отточия в Содержании
%\renewcommand{\cftdot}{\ensuremath{+}} % переопределение отточия после названия секции до номера страницы.
\renewcommand{\cftdotsep}{1} % Устанавливает промежуток между точками в отточии в оглавлении.
\renewcommand\cftchapdotsep{\cftdotsep} %добавляет отточия после \chapter{title}
\renewcommand{\cftchapleader}{\cftdotfill{\cftchapdotsep}} % делает отточия после \chapter{title} тонкими, (по умолчанию жирные).
%\renewcommand\cftsecdotsep{\cftdot} %делает отточия после \section{title} частыми.
%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%
% Добавление слова ГЛАВА переде номерами глав в ToC (СОДЕРЖАНИИ).
\renewcommand{\cftchappresnum}{Глава~} % Определение добавляемого слова перед номером секции
\newlength{\mylen} % a "scratch" length (длина «царапины»)
\settowidth{\mylen}{\cftchappresnum} % extra space (дополнительное пространство)
\addtolength{\cftchapnumwidth}{\mylen} % add the extra space (добавить дополнительное пространство)
%%

%%% Точки в СОДЕРЖАНИИ после номеров структурных элементов. На тело самой работы не распространяется.
\renewcommand{\cftchapaftersnum}{} %Определяет ставить точку после номеров глав в СОДЕРЖАНИИ {.} или нет {}.
\renewcommand{\cftsecaftersnum}{} %Определяет ставить точку после номеров секций в СОДЕРЖАНИИ.
%\renewcommand{\cftsubsecaftersnum}{.} %Определяет ставить точку после номеров субсекций в СОДЕРЖАНИИ.



\begin{document}
       


        \tableofcontents
       
        \thispagestyle{empty} % Отключение нумерации на всех оставшихся после первой страницах СОДЕРЖАНИЯ
               
       
\chapter{Анализ стратегического планирования развития сферы культуры  в Астраханской области}

\section{Целеполагание, планирование и программирование стратегического развития сферы культуры в Астраханской области и на федеральном уровне}

тексттекст текст много текста секции еще много много много разного текста о всякой разнообразной ерунде  текста секции еще много много много разного текста о всякой разнообразной ерунде
\end{document}


К первому вопросу:
Красным пометил строки которые надо смесить влево.
Изображение

Ко второму вопросу:
Выделил те интервалы которые надо уменьшать.
Изображение
Прошу помочь, буду благодарен за помощь.

 
 
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение24.03.2018, 16:30 
Аватара пользователя
1. С секциями мы с вами разобрались. С главами замените соответствующую строчку (у вас она вообще центрирована)

Используется синтаксис LaTeX
\titleformat{\chapter}[block]{\flushleft}{\bfseries\hskip1.25cm\chaptertitlename\bfseries\ \thechapter}{8mm}{\bfseries}{}

 
 
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение24.03.2018, 17:23 
Red_Herring в сообщении #1299445 писал(а):
1. С секциями мы с вами разобрались.


Да разобрались для секций в теле документа, тут вопрос про то как это сделать в оглавлении, tocloft.
Куда и как вставлять
Используется синтаксис LaTeX
\hskip1.25cm
?
Т.е. то как сейчас ведет себя отображение глав и параграфов (секций) в самом документе меня устраивает полностью, то как эти элементы ведут себя в TOC меня не устраивает, вернее не соответствует требованиям.

 
 
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение25.03.2018, 00:08 
Не нахожу решения. Не хватает квалификации похоже. Думаю копать нужно сюда:
Используется синтаксис LaTeX
\renewcommand\section{\@startsection{section}


Но не уверен что это правильно и почти уверен что не докопаюсь к нужному сроку.

 
 
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение25.03.2018, 01:12 
Аватара пользователя
Если хочется изменить расстояние между линиями в оглавлении то установите \baselineskip до и после \tableofcontents

Используется синтаксис LaTeX
\baselineskip20pt
\tableofcontents
\baselineskip10pt


остальное, похоже, не поддерживается tocloft или каким-либо пакетом.

 
 
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение25.03.2018, 11:54 
Red_Herring в сообщении #1299567 писал(а):
\baselineskip20pt
\tableofcontents
\baselineskip10pt

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

Используется синтаксис LaTeX
%%%%%%%%%%%
% Изменение расстояния между строками для какого либо конкретного текста, набираемого явно или после работы каких либо сборных алгоритмов, типа TOC.
{\renewcommand{\baselinestretch}{1.0}
\tableofcontents
       
}% не забудьте оставить пустую строку перед закрытием окружения, иначе команда не сработает.
%%%%
Вдруг кому то пригодиться!

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

 
 
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение25.03.2018, 12:22 
Аватара пользователя
Stasroot1 в сообщении #1299608 писал(а):
точно не знал какое расстояние между строками

Загрузив пакет printlen, можно
Используется синтаксис LaTeX
\printlength{\baselineskip}

 
 
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение25.03.2018, 17:13 
Раз вам доступны англоязычные материалы, то, когда выкроете время, имеет смысл ознакомиться с пакетом/классом memoir, который умеет много всего, просто и из коробки.

Поскольку вы пишете диплом, и у вас есть нормоконтроль, видимо вас заставляют следовать ГОСТам на текстовые документы или что-то подобное. Имеет смысл ознакомиться с шаблоном на базе memoir для кандидатских диссертаций. Оформление там, конечно, не под дипломные работы, но как старт может подойти (допиливать под себя уже будет легче, поскольку у класса memoir отличная документация). Ссылка на репозиторий шаблона для оформления кандидатских диссертаций по российскому ГОСТ в LaTeX: https://github.com/AndreyAkinshin/Russian-Phd-LaTeX-Dissertation-Template

 
 
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение25.03.2018, 18:16 
Аватара пользователя
Lenchik в сообщении #1299678 писал(а):
Раз вам доступны англоязычные материалы, то, когда выкроете время, имеет смысл ознакомиться с пакетом/классом memoir,

Безусловно.

Но, кстати, я сообразил, как удовлетворить извращению с оглавлениями: секции (и т.д.) допускают опцию
Используется синтаксис LaTeX
\section[For TOC]{For Text}
 
(а в memoir можно зафигачить две [ ][ ]{ }). И в квадратных скобках можно поизвращаться:

Используется синтаксис LaTeX
\section[\hbox{Исключительная фигня фиговая,} \\  \hbox{\hskip-70pt Бред собачий}]{Исключительная фигня фиговая, Бред собачий и сивокобыльный, }


Беда в том, что эта хрень пойдет и в бегущие заголовки. Поэтому самый простой выход
1) Если разрешается, то в оглавления включить короткие названия глав и секций
А вот если не разрешается, то прогнать нормально и спасти куда нибудь, а потом с этим извращением, и заменить оглавление. Это можно сделать с помощью разного софта. Конечно, линки разрушатся, но вам же печатать, не кликать.

 
 
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение25.03.2018, 19:36 
Red_Herring в сообщении #1299691 писал(а):
вам же печатать, не кликать.

Да, это я так и сделаю. Распечатаю отдельно. А приложение в электронном виде пускай будет нормальным, т.е. как сейчас.

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

 
 
 [ Сообщений: 10 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group