그래서 저는 한동안 이 특정 라텍스 템플릿을 사용해 왔으며 이를 제가 원하는 대로 계속 추가하고 변경하고 있습니다. 최근에 TOC, LOF, LOT, LOL의 선두 점을 제거하기 위해 다시 포맷을 시도했고 명령을 갱신하여 모두 제거했지만 \cftdot
LOL에서는 작동하지 않는 것 같습니다.
\titlecontents
LOL의 설정을 변경하기 위해 패키지 의 명령을 사용했지만 titletoc
이로 인해 페이지 번호가 나머지 목록과 일치하지 않게 되었습니다. 문제를 해결하기 위해 이전 \hfill
에도 시도했지만 둘 다 효과가 없었습니다.\titlerule*[0.0em]{.}
\contentspage
현재 작업 예제는 \hfill
.
\documentclass[12pt]{article}
\usepackage{geometry}
\geometry{letterpaper}
\geometry{margin = 1.0in}
\usepackage[parfill]{parskip}
\usepackage{setspace}
\singlespacing
\usepackage[utf8x]{inputenc}
\usepackage{microtype}
\usepackage{listings}
\usepackage{graphicx}
\usepackage[justification = centering]{caption}
\usepackage[section]{placeins}
\usepackage{float}
\usepackage[nottoc,notlof,notlot]{tocbibind}
\usepackage[titles]{tocloft}
\usepackage{titletoc}
\renewcommand{\cftsecfont}{\rmfamily\mdseries\upshape}
\renewcommand{\cftsecpagefont}{\rmfamily\mdseries\upshape}
\renewcommand{\cftdot}{}
\renewcommand\lstlistlistingname{List of Scripts}
\renewcommand\lstlistingname{Script}
\contentsuse{lstlisting}{lol}
\titlecontents{lstlisting}[1.5em]
{\hspace{2.3em}}
{\contentslabel{2.3em}}
{\hspace*{-2.3em}}
{\hfill\contentspage}
\usepackage{hyperref}
\pdfoutput=1
\hypersetup{
unicode=false,
pdftoolbar=true,
pdfmenubar=true,
pdffitwindow=true,
pdfstartview={FitH},
pdftitle={Title},
pdfauthor={Author},
pdfsubject={Subject},
pdfcreator={Producer},
pdfproducer={Producer},
pdfdisplaydoctitle=true,
pdfnewwindow=true,
colorlinks=true,
linkcolor=black,
citecolor=black,
filecolor=black,
urlcolor=black
}
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\lstlistoflistings
\section{Here is A Section}
\begin{figure}[H]
\centering
\includegraphics[width = 2cm]{boats}
\caption{A boat}
\end{figure}
\begin{table} [H]
\begin{center}
\begin{tabular}{ c | c }
Title 1 & Title 2 \\ \hline
Stuff & More stuff
\end{tabular}
\caption{A Table}
\end{center}
\end{table}
\begin{lstlisting}[language = Matlab, basicstyle = \scriptsize, numberstyle = \scriptsize, caption = A Listing]
%%
clear;clc;close all;format compact;
%%
x = 5;
y = 6;
x + y = z;
disp(z);
\end{lstlisting}
\end{document}
아래 예에서 볼 수 있듯이 목록의 페이지 번호는 어떤 이유로 들여쓰기되어 있는지 알 수 없습니다. 나는 그것이 쉽다고 확신하지만 그것을 찾지 못했습니다.
참고로 저는 이보다 훨씬 더 많은 패키지와 수정 사항을 사용하지만 이는 여전히 제대로 컴파일되는 가장 기본적인 것입니다.
답변1
tocloft
표준 ToC
, LoF
명령 LoT
, 파일 및 를 사용하여 정의된 파일 에만 연결됩니다 \newlistof
.
LoL
이 모든 것은 유사한 매크로 의 전통적인 설정을 사용하는 에서는 다루지 않습니다 \l@...
.
우리 는 listings.sty
발견
\def\l@lstlisting#1#2{\@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}}
이는 콘텐츠 목록의 줄 설정과 관련된 매크로입니다. 다음 레벨에서는 두 개의 컨텐츠 라인 점 사이를 분리하는 공간으로 \@dottedtocline
사용하는 LaTeX 커널 매크로를 발견합니다. \@dotsep
기본값은 입니다 4.5
. 이 숫자를 5000(정말 큰 값)으로 늘리면 점들이 여기에서 보이지 않을 가능성이 높습니다.
전역적 으로 변경하고 싶지 않았기 \@dotsep
때문에 명령을 패치했습니다 (그룹을 사용하여 사용 \l@lstlisting
후 설정을 삭제함 ).\l@lstlisting
\makeatletter % Patching to prevent interference
\xpatchcmd{\l@lstlisting}{\@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}}{%
\begingroup\renewcommand{\@dotsep}{5000}\@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}\endgroup}{%
}{}
\makeatother
코드는 다음과 같습니다( titletoc
관련 항목은 주석 처리됨).
\documentclass[12pt]{article}
\usepackage{geometry}
\geometry{letterpaper}
\geometry{margin = 1.0in}
\usepackage[parfill]{parskip}
\usepackage{setspace}
\singlespacing
\usepackage[utf8x]{inputenc}
\usepackage{microtype}
\usepackage[demo]{graphicx}
\usepackage[justification = centering]{caption}
\usepackage[section]{placeins}
\usepackage{float}
\usepackage[nottoc,notlof,notlot]{tocbibind}
\usepackage{listings}
\usepackage[titles]{tocloft}
\usepackage{xpatch}
%\usepackage{titletoc}
\renewcommand{\cftsecfont}{\rmfamily\mdseries\upshape}
\renewcommand{\cftsecpagefont}{\rmfamily\mdseries\upshape}
\renewcommand{\cftdotsep}{\cftnodots}
\renewcommand\lstlistlistingname{List of Scripts}
\renewcommand\lstlistingname{Script}
\makeatletter % Patching to prevent interference
\xpatchcmd{\l@lstlisting}{\@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}}{%
\begingroup\renewcommand{\@dotsep}{5000}\@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}\endgroup}{%
}{}
\makeatother
%\contentsuse{lstlisting}{lol}
%\titlecontents{lstlisting}[1.5em]
% {\hspace{2.3em}}
% {\contentslabel{2.3em}}
% {\hspace*{-2.3em}}
% {\hfill\contentspage}
\usepackage{hyperref}
\pdfoutput=1
\hypersetup{
unicode=false,
pdftoolbar=true,
pdfmenubar=true,
pdffitwindow=true,
pdfstartview={FitH},
pdftitle={Title},
pdfauthor={Author},
pdfsubject={Subject},
pdfcreator={Producer},
pdfproducer={Producer},
pdfdisplaydoctitle=true,
pdfnewwindow=true,
colorlinks=true,
linkcolor=black,
citecolor=black,
filecolor=black,
urlcolor=black
}
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\lstlistoflistings
\section{Here is A Section}
\begin{figure}[H]
\centering
\includegraphics[width = 2cm]{boats}
\caption{A boat}
\end{figure}
\begin{table} [H]
\begin{center}
\begin{tabular}{ c | c }
Title 1 & Title 2 \\ \hline
Stuff & More stuff
\end{tabular}
\caption{A Table}
\end{center}
\end{table}
\begin{lstlisting}[language = Matlab, basicstyle = \scriptsize, numberstyle = \scriptsize, caption = A Listing]
%%
clear;clc;close all;format compact;
%%
x = 5;
y = 6;
x + y = z;
disp(z);
\end{lstlisting}
\end{document}