2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение24.03.2018, 15:30 


26/03/17
36
Доброго времени суток!
Три вопроса:
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 
Заслуженный участник
Аватара пользователя


31/01/14
11308
Hogtown
1. С секциями мы с вами разобрались. С главами замените соответствующую строчку (у вас она вообще центрирована)

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

 Профиль  
                  
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение24.03.2018, 17:23 


26/03/17
36
Red_Herring в сообщении #1299445 писал(а):
1. С секциями мы с вами разобрались.


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

 Профиль  
                  
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение25.03.2018, 00:08 


26/03/17
36
Не нахожу решения. Не хватает квалификации похоже. Думаю копать нужно сюда:
Используется синтаксис LaTeX
\renewcommand\section{\@startsection{section}


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

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


31/01/14
11308
Hogtown
Если хочется изменить расстояние между линиями в оглавлении то установите \baselineskip до и после \tableofcontents

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


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

 Профиль  
                  
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение25.03.2018, 11:54 


26/03/17
36
Red_Herring в сообщении #1299567 писал(а):
\baselineskip20pt
\tableofcontents
\baselineskip10pt

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

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

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

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


31/01/14
11308
Hogtown
Stasroot1 в сообщении #1299608 писал(а):
точно не знал какое расстояние между строками

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

 Профиль  
                  
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение25.03.2018, 17:13 


13/07/14
257
Раз вам доступны англоязычные материалы, то, когда выкроете время, имеет смысл ознакомиться с пакетом/классом memoir, который умеет много всего, просто и из коробки.

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

 Профиль  
                  
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение25.03.2018, 18:16 
Заслуженный участник
Аватара пользователя


31/01/14
11308
Hogtown
Lenchik в сообщении #1299678 писал(а):
Раз вам доступны англоязычные материалы, то, когда выкроете время, имеет смысл ознакомиться с пакетом/классом memoir,

Безусловно.

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

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


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

 Профиль  
                  
 
 Re: tocloft выравнивание строк глав и секций по левому краю стр.
Сообщение25.03.2018, 19:36 


26/03/17
36
Red_Herring в сообщении #1299691 писал(а):
вам же печатать, не кликать.

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

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group