Пожалуйста, рассмотрите следующий код:
\documentclass[a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{cfr-lm}
\usepackage{titlesec}
\renewcommand{\thechapter}{\scshape\roman{chapter}}
\titleformat{\chapter}[display]
{\normalfont\fontsize{11pt}{12pt}\selectfont}{\thechapter}{0pt}{}
%%{\normalfont\fontsize{11pt}{12pt}\selectfont}{\chaptertitlename\space \thechapter}{11pt}{}
\renewcommand\thesection{\arabic{section}}
\titleformat{\section}
{\normalfont\fontsize{11pt}{12pt}\selectfont}{\thesection}{1em}{}
\titleformat{\subsection}
{\normalfont\fontsize{11pt}{12pt}\selectfont\itshape}{}{1em}{}
\titlespacing{\chapter}{0pt}{0pt}{3cm}
\usepackage{titletoc}
\titlecontents{chapter}
[1.5em] % ie, 1.5em (chapter) + 2.3em
{}
{\contentslabel{2.3em}}
{\hspace*{-2.3em}}
{}
%{\titlerule*[1pc]{.}\contentspage}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% codice Pignalberi
\contentsmargin{0pt}
\titlecontents{chapter}[4pc]
{\contentsmargin{0pt}\makebox[0pt][r]{\thecontentspage\quad\makebox[30pt][l]%
{\textsc{\romannumeral\thecontentslabel\ quad}}}}
{}
{}
{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\tableofcontents
\chapter{Chapter 1 title}
Some text some text some text some text some text
\section{Section a title}
Some text some text some text some text some text
\section{Section b title}
Some text some text some text some text some text
\chapter{Chapter 2 title}
Some text some text some text some text some text
\section{Section c title}
Some text some text some text some text some text
\section{Section d title}
Some text some text some text some text some text
\chapter{Chapter 3 title}
Some text some text some text some text some text
\section{Section e title}
Some text some text some text some text some text
\section{Section f title}
Some text some text some text some text some text
\end{document}
Я попытался изменить, в соответствии со своими потребностями, и формат индекса в порядке. В качестве второго шага я хотел бы разместить номера страниц в ToC слева. Но код, который я нашел (в моем MWE "codice Pignalberi"), мешает предыдущему. Поскольку я не могу понять, следуя руководству titlesec/titletoc, где и как согласовывать две стороны этого кода, я надеюсь на вашу помощь.
===================================================
ОБНОВЛЯТЬ
Теперь все работает отлично, благодаря коду Гонсало. Я улучшил два аспекта (добавил больше места перед названиями глав и удалил номера глав, оставив только номера разделов: теперь это кажется мне более полезным для читателя). Код следующий:
<pre>\usepackage{titlesec}
\usepackage[rightlabels,dotinlabels]{titletoc}
\renewcommand{\thechapter}{\roman{chapter}}
\renewcommand\thesection{\arabic{section}}
\titleformat{\chapter}[display]
{\normalfont\fontsize{11}{12}\selectfont}
{\scshape\thechapter}
{0pt}
{}
\titleformat{\section}
{\normalfont\fontsize{11}{12}\selectfont}
{\thesection}
{1em}
{}
\titleformat{\subsection}
{\normalfont\fontsize{11}{12}\selectfont\itshape}
{}
{1em}
{}
\titlespacing{\chapter}
{0pt}{0pt}{3cm}
\titlecontents{chapter}[-3pc]
{\addvspace{0.8pc}}
{\makebox[3pc][r]{\hfill}%
\textsc{\thecontentslabel}\quad%
}
{}
{}
{}
\titlecontents{section}[-3pc]
{\makebox[4pc][r]{\thecontentspage\hfill}%
\textsc{\thecontentslabel}\quad%
}
{}
{}
{}</pre>
Наконец, я хотел бы выровнять все номера (страницы и разделы) по правому краю, а не по левому, так как на самом деле заголовки разделов не очень хорошо выровнены с использованием пропорционального шрифта. Подумайте о том, что опции, как titletoc
мне rightlabels,dotinlabels
кажется, не работают. Большое спасибо! Вы можете увидеть проблему здесь:
==========================================================
ОБНОВЛЕНИЕ 2
Я попробовал использовать etoc, скопировав ваш код в свой .tex-файл, но результат получился очень странным:
==========================================================
ОБНОВЛЕНИЕ 3
Проблемы выше из-за bidi
пакета, так как в этом файле я использую и иврит, и финикийский. В "нормальном" файле etoc
код работает нормально. Только последний вопрос: мне нужно очень хорошо прочитать etoc
документацию, которая довольно большая. Но как можно также выровнять правильные номера страниц? спасибо!!
решение1
Это всего лишь небольшой вариант этой частиОтвет Гонсало Мединыкоторый используетetoc
. Я не знаю, как он ведет себя во взаимодействии с bidi
.
Все etoc
становится проще, когда есть запас примеров.
Здесь я добавил немного графической помощи для понимания макета, особенно для вертикального выравнивания. Номера страниц разделов идут по левому полю. Главы и номера разделов выравниваются по правому краю, и есть 1em
горизонтальное разделение от фактического заголовка. Названия глав начинаются 1cm
с левого поля, а названия разделов — с 2cm
. Длинные названия переносятся на расстоянии 1cm
от правого текстового поля.
Theобновлять(добавлено в конце) является ответом на комментарии об обработке ненумерованных глав и отображении номеров страниц также для некоторых выбранных глав. (оба варианта здесь проиллюстрированы на примере одной ненумерованной дополнительной главы).
\documentclass[a4paper]{report}
\usepackage[margin=2cm,paperwidth=14cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{cfr-lm}
\usepackage{titlesec}
\usepackage{etoc}
\usepackage{color}
\renewcommand{\thechapter}{\Roman{chapter}}
\renewcommand\thesection{\arabic{section}}
\titleformat{\chapter}[display]
{\normalfont\fontsize{11}{12}\selectfont}
{\scshape\thechapter}
{0pt}
{}
\titleformat{\section}
{\normalfont\fontsize{11}{12}\selectfont}
{\thesection}
{1em}
{}
\titleformat{\subsection}
{\normalfont\fontsize{11}{12}\selectfont\itshape}
{}
{1em}
{}
\titlespacing{\chapter}
{0pt}{0pt}{3cm}
\etocsetstyle{chapter}
% FOR VISUALIZING LAYOUT:
% {\fboxsep-\fboxrule\noindent\normalsize
% \fbox{\makebox[1cm][r]{\strut
% \smash{\color{blue}\vrule depth12cm}\hspace{1em}%
% \smash{\color{green}\vrule depth12cm}}}%
% \fbox{\makebox[1cm][r]{\color{blue}\strut
% \smash{\color{blue}\vrule depth12cm}\hspace{1em}%
% \smash{\color{green}\vrule depth12cm}}}%
% \fbox{\makebox[1cm]{\strut}}(debugging layout)\hfill
% \fbox{\makebox[1cm][l]{\strut\smash{\color{red}\vrule
% depth12cm}}}%
% \hrule}
{}% <- uncomment the above and suppress this line if debugging layout
{\pagebreak[3]\vskip25pt\leftskip 1cm\relax
\rightskip 1cm\relax
\parindent 0pt\relax
}
{\Large\leavevmode
\llap{\makebox[1cm][r]{\normalsize\etocnumber.\hspace{1em}}}%
\etocname\par\nopagebreak\medskip }
{\bigskip}
\etocsetstyle{section}
{}
{\leftskip 2cm\relax}
{\normalsize\leavevmode
\llap{\makebox[1cm][r]{\mdseries\etocpage}%
\hspace{1cm}%
\makebox[1cm][r]{\etocnumber.\hspace{1em}}}%
\etocname\par\pagebreak[1]\smallskip }
{}
\begin{document}
\tableofcontents
\chapter{Vita e Opere}
\setcounter{page}{98}% just for the example
Some text some text some text some text some text
\section{Infanzia, studi a Lipsia e soggiorno a Parigi}
Some text some text some text some text some text
\section{A Honovver, al servizio del ducchi Johann Friedrich ed Ernst August}
Some text some text some text some text some text
\section{Viaggio in Italia, morte dell'elettore Erns August ed successione del nuovo elettore, Georg Ludwig}
Some text some text some text some text some text
\section{Della \textit{Dissertazione preliminare} al \textit{Dialogo}}
Some text some text some text some text some text
\section{La concezione delle idee}
Some text some text some text some text some text
\chapter{Seggni (``caratteri'') e idee}
Some text some text some text some text some text
\section{Della \textit{Dissertazione preliminare} al \textit{Dialogo}}
Some text some text some text some text some text
\section{La concezione delle idee}
Some text some text some text some text some text
\section{A Honovver, al servizio del ducchi Johann Friedrich ed Ernst August}
Some text some text some text some text some text
\clearpage
\section{Viaggio in Italia, morte dell'elettore Erns August ed successione del nuovo elettore, Georg Ludwig}
Some text some text some text some text some text
\section{A Honovver, al servizio del ducchi Johann Friedrich ed Ernst August}
Some text some text some text some text some text
\section{Viaggio in Italia, morte dell'elettore Erns August ed successione del nuovo elettore, Georg Ludwig}
Some text some text some text some text some text
\end{document}
\documentclass[a4paper]{report}
\usepackage[margin=2cm,paperwidth=14cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{cfr-lm}
\usepackage{titlesec}
\usepackage{etoc}
\usepackage{color}
\renewcommand{\thechapter}{\Roman{chapter}}
\renewcommand\thesection{\arabic{section}}
\titleformat{\chapter}[display]
{\normalfont\fontsize{11}{12}\selectfont}
{\scshape\thechapter}
{0pt}
{}
\titleformat{\section}
{\normalfont\fontsize{11}{12}\selectfont}
{\thesection}
{1em}
{}
\titleformat{\subsection}
{\normalfont\fontsize{11}{12}\selectfont\itshape}
{}
{1em}
{}
\titlespacing{\chapter}
{0pt}{0pt}{3cm}
%% ETOC SPECIFICATIONS
% conditional to display chapter page number
% a priori set to false
\newif\ifDisplayInTocChapterPageNumber
\etocsetstyle{chapter}
{}
{\pagebreak[3]\vskip25pt\leftskip 1cm\relax
\rightskip 1cm\relax
\parindent 0pt\relax
}
{\Large\leavevmode
\llap{\ifDisplayInTocChapterPageNumber
\makebox[1cm][r]{\mdseries\normalsize\etocpage}%
\fi
\makebox[1cm][r]{\normalsize\etocifnumbered{\etocnumber.}{}%
\hspace{1em}}}%
\etocname\par\nopagebreak\medskip }
{\bigskip}
\etocsetstyle{section}
{}
{\leftskip 2cm\relax}
{\normalsize\leavevmode
\llap{\makebox[1cm][r]{\mdseries\etocpage}%
\hspace{1cm}%
\makebox[1cm][r]{\etocnumber.\hspace{1em}}}%
\etocname\par\pagebreak[1]%\smallskip
}
{}
\begin{document}
\tableofcontents
\chapter{Vita e Opere}
\setcounter{page}{98}% just for the example
Some text some text some text some text some text
\section{Infanzia, studi a Lipsia e soggiorno a Parigi}
Some text some text some text some text some text
\section{A Honovver, al servizio del ducchi Johann Friedrich ed Ernst August}
Some text some text some text some text some text
\section{Viaggio in Italia, morte dell'elettore Erns August ed successione del nuovo elettore, Georg Ludwig}
Some text some text some text some text some text
\section{Della \textit{Dissertazione preliminare} al \textit{Dialogo}}
Some text some text some text some text some text
\section{La concezione delle idee}
Some text some text some text some text some text
\chapter{Seggni (``caratteri'') e idee}
Some text some text some text some text some text
\section{Della \textit{Dissertazione preliminare} al \textit{Dialogo}}
Some text some text some text some text some text
\section{La concezione delle idee}
Some text some text some text some text some text
\section{A Honovver, al servizio del ducchi Johann Friedrich ed Ernst August}
Some text some text some text some text some text
\clearpage
\section{Viaggio in Italia, morte dell'elettore Erns August ed successione del nuovo elettore, Georg Ludwig}
Some text some text some text some text some text
\section{A Honovver, al servizio del ducchi Johann Friedrich ed Ernst August}
Some text some text some text some text some text
\section{Viaggio in Italia, morte dell'elettore Erns August ed successione del nuovo elettore, Georg Ludwig}
Some text some text some text some text some text
\addtocontents{toc}{\protect\DisplayInTocChapterPageNumbertrue}
\chapter*{Un capitolo non numerato e col numero di pagina nel margine dell'indice}
\addcontentsline{toc}{chapter}{Un capitolo non numerato e col numero di
pagina nel margine dell'indice}
\setcounter{section}{0}
\section{Ultimi anni}
Some text some text some text some text some text
\end{document}
решение2
Ниже я показываю два варианта; первый использует , etoc
а второй — titletoc
. Окончательное желаемое форматирование мне все еще не совсем понятно. В вопросе предлагается разместить номера страниц для глав слева, а затем в комментариях приводится изображение, в котором записи глав не имеют номеров страниц слева? В любом случае, пример кода ниже позволяет легко настраивать любой желаемый формат.
Одна из возможностей использования мощногоetoc
упаковка:
\documentclass[a4paper]{report}
\usepackage[margin=2cm,paperwidth=14cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{cfr-lm}
\usepackage{titlesec}
\usepackage{etoc}
\renewcommand{\thechapter}{\Roman{chapter}}
\renewcommand\thesection{\arabic{section}}
\titleformat{\chapter}[display]
{\normalfont\fontsize{11}{12}\selectfont}
{\scshape\thechapter}
{0pt}
{}
\titleformat{\section}
{\normalfont\fontsize{11}{12}\selectfont}
{\thesection}
{1em}
{}
\titleformat{\subsection}
{\normalfont\fontsize{11}{12}\selectfont\itshape}
{}
{1em}
{}
\titlespacing{\chapter}
{0pt}{0pt}{3cm}
\etocsetstyle{chapter}
{}
{\vskip25pt\leavevmode\leftskip 0cm\relax}
{\parbox[t]{.5cm}{\etocnumber.\hfill}%
\parbox[t]{\dimexpr\linewidth-1cm-15pt\relax}{\Large\etocname}\hfill\par\medskip
}
{}
\etocsetstyle{section}
{}
{\leavevmode\leftskip 0cm\relax}
{\llap{\parbox[t]{1.5cm}{\mdseries\hfill\etocpage}\hspace{.5cm}}%
\normalsize\parbox[t]{1cm}{\quad\etocnumber.\hfill}%
\parbox[t]{\dimexpr\linewidth-1cm-15pt\relax}{\etocname\par}\hfill\par
}
{}
\begin{document}
\tableofcontents
\chapter{Vita e Opere}
\setcounter{page}{98}% just for the example
Some text some text some text some text some text
\section{Infanzia, studi a Lipsia e soggiorno a Parigi}
Some text some text some text some text some text
\section{A Honovver, al servizio del ducchi Johann Friedrich ed Ernst August}
Some text some text some text some text some text
\section{Viaggio in Italia, morte dell'elettore Erns August ed successione del nuovo elettore, Georg Ludwig}
Some text some text some text some text some text
\section{Della \textit{Dissertazione preliminare} al \textit{Dialogo}}
Some text some text some text some text some text
\section{La concezione delle idee}
Some text some text some text some text some text
\chapter{Seggni (``caratteri'') e idee}
Some text some text some text some text some text
\section{Della \textit{Dissertazione preliminare} al \textit{Dialogo}}
Some text some text some text some text some text
\section{La concezione delle idee}
Some text some text some text some text some text
\section{A Honovver, al servizio del ducchi Johann Friedrich ed Ernst August}
Some text some text some text some text some text
\clearpage
\section{Viaggio in Italia, morte dell'elettore Erns August ed successione del nuovo elettore, Georg Ludwig}
Some text some text some text some text some text
\section{A Honovver, al servizio del ducchi Johann Friedrich ed Ernst August}
Some text some text some text some text some text
\section{Viaggio in Italia, morte dell'elettore Erns August ed successione del nuovo elettore, Georg Ludwig}
Some text some text some text some text some text
\end{document}
Вот еще одна возможность использования titletoc
:
\documentclass[a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{cfr-lm}
\usepackage{titlesec}
\usepackage{titletoc}
\renewcommand{\thechapter}{\roman{chapter}}
\renewcommand\thesection{\arabic{section}}
\titleformat{\chapter}[display]
{\normalfont\fontsize{11}{12}\selectfont}
{\scshape\thechapter}
{0pt}
{}
\titleformat{\section}
{\normalfont\fontsize{11}{12}\selectfont}
{\thesection}
{1em}
{}
\titleformat{\subsection}
{\normalfont\fontsize{11}{12}\selectfont\itshape}
{}
{1em}
{}
\titlespacing{\chapter}
{0pt}{0pt}{3cm}
\titlecontents{chapter}[-4pc]
{\makebox[2pc][l]{\hfill\thecontentspage}\hspace{2pc}%
\textsc{\thecontentslabel}\quad%
}
{}
{}
{}
\titlecontents{section}[-4pc]
{\makebox[2pc][l]{\hfill\thecontentspage}\hspace{3pc}%
\textsc{\thecontentslabel}\quad%
}
{}
{}
{}
\begin{document}
\tableofcontents
\chapter{Chapter 1 title}
\setcounter{page}{98}% just for the example
Some text some text some text some text some text
\section{Section a title}
Some text some text some text some text some text
\section{Section b title}
Some text some text some text some text some text
\chapter{Chapter 2 title}
Some text some text some text some text some text
\section{Section c title}
Some text some text some text some text some text
\section{Section d title}
Some text some text some text some text some text
\chapter{Chapter 3 title}
Some text some text some text some text some text
\section{Section e title}
Some text some text some text some text some text
\section{Section f title}
Some text some text some text some text some text
\end{document}
решение3
Если я правильно понял вашу схему, вот базовое решение, основанное на titletoc
:
\newcommand\boxedpage{\makebox[3pc][r]{\thecontentspage}}
\newcommand\boxedtocnum{\makebox[3pc][r]{\thecontentslabel.\quad}}
\titlecontents{chapter}[0pc]
{\addvspace{0.8pc}}
{\contentslabel[\boxedpage\boxedtocnum]{6pc}}
{}{}{}
\titlecontents{section}[3pc]
{}
{\contentslabel[\boxedpage\hspace*{3pc}\boxedtocnum]{9pc}}
{}{}{}
Просто поиграйтесь с размерами.
РЕДАКТИРОВАТЬ.Вот полный пример с titletoc
. Помните, что вы можете управлять нумерацией с secnumdepth
, и включенными записями в TOC с tocdepth
. Помните также, что с помощью titletoc
вы можете изменить формат записей TOC всерединадокумента (для последующих разделов), если по какой-то причине вам это нужно. Как и прежде, просто играйтесь с размерами.
\documentclass{book}
\renewcommand{\thesection}{\arabic{section}}
\usepackage{titletoc}
\newcommand\boxedpage{\makebox[3pc][r]{\thecontentspage}}
\newcommand\boxedtocnum{\makebox[3pc][r]{\thecontentslabel.\quad}}
\titlecontents{chapter}[3pc]
{\addvspace{0.8pc}}
{\contentslabel[\boxedpage\boxedtocnum]{6pc}}
{\contentslabel[\boxedpage\hspace*{3pc}]{6pc}}
{}{}
\titlecontents{section}[6pc]
{}
{\contentslabel[\boxedpage\hspace*{3pc}\boxedtocnum]{9pc}}
{\contentslabel[\boxedpage\hspace*{6pc}]{9pc}}
{}{}
\newcommand*\asection{
\section{A Honovver, text text al servizio del ducchi Johann
Friedrich ed Ernst August.}
Some text some text some text some text some text\par}
\begin{document}
\tableofcontents
\chapter{Vita e Opere}
\setcounter{page}{98}% just for the example
\asection\asection
\chapter{Seggni (``caratteri'') e idee}
\asection\asection\asection\asection\asection
\asection\asection\asection\asection\asection
% From now on, unnumbered headers, but still in the toc
% down to section
\setcounter{secnumdepth}{-1}
\addtocontents{toc}{\protect\setcounter{tocdepth}{1}\ignorespaces}
\chapter{Seggni (``caratteri'') e idee}
\asection\asection
\end{document}