可以用这样的命令修改figure目录中条目的indent为0em, numwidth的值为2.55em: `\cftsetindents{figure}{0em}{2.55em}` 为什么用同样的方法改listing时就不行呢。 `\cftsetindents{lstlisting}{0em}{2.55em}` 那么应如何修改 目录中listings中条目的indent及numwidth呢?谢谢。 源码详见mwe_lstlisting.tex ```tex %mwe_lstlisting.tex \documentclass{memoir} \usepackage{lipsum} \usepackage{mwe} \usepackage{listings} \begin{document} \frontmatter %\tableofcontents \cftsetindents{table}{0em}{2.55em} \listoftables \cftsetindents{figure}{0em}{2.55em} \listoffigures \cftsetindents{lstlisting}{0em}{2.55em} \renewcommand{\lstlistlistingname}{List of Listings} \lstlistoflistings \addcontentsline{toc}{chapter}{List of Listings} \clearpage \mainmatter \chapter{test1} \lipsum[1-4] \begin{table} \centering \caption{test1} \begin{tabular}{l} askdfakjs;dkjfalksed \end{tabular} \end{table} \begin{figure} \centering \includegraphics[width=0.3\linewidth]{example-image-a} \caption{test} \end{figure} \begin{lstlisting}[caption=test1] ta;lskjdfajsejfoqijwepojiqpowijeojrqowjeo asdfqw;efqowie qwefoqjwero \end{lstlisting} \begin{lstlisting}[caption=test2] ta;lskjdfajsejfoqijwepojiqpowijeojrqowjeo asdfqw;efqowie qwefoqjwero \end{lstlisting} \end{document} ```

1 回答1

0
先给出一个代码 ```tex \documentclass{memoir} \usepackage{lipsum} \usepackage{mwe} \usepackage{listings} \renewcommand{\lstlistlistingname}{List of Listings} \begingroup \makeatletter \let\newcounter\@gobble \let\setcounter\@gobbletwo \globaldefs\@ne \let\c@loldepth\@ne \newlistof{listings}{lol}{\lstlistlistingname} \newlistentry{lstlisting}{lol}{0} \endgroup \begin{document} \frontmatter \tableofcontents \listoftables \listoffigures \listings \mainmatter \chapter{the first chapter} \lipsum \begin{table} \centering \caption{caption of table} \begin{tabular}{l} this is a tabular. \end{tabular} \end{table} \begin{figure} \centering \includegraphics[width=\linewidth]{example-image-a} \caption{caption of figure} \end{figure} \begin{lstlisting}[caption={caption of listing}] #include<stdio> int main() { printf("hello world"); return 1; } \end{lstlisting} \begin{lstlisting}[caption={caption of another listing}] import numpy as np a = np.linspace(10) print(a) \end{lstlisting} \end{document} ``` 更多的讨论参考 [https://github.com/CTeX-org/forum/issues/84](https://github.com/CTeX-org/forum/issues/84)
  • 您已经给了我很大的帮助了,谢谢! – WoodMan 2020-01-03 10:44 回复
  • 回复 undefined :如果你要做这么深的定制,工作量会很大。我的能力不足以支撑这个问题 – 啸行 2020-01-02 22:53 回复
  • 这样带来了新的问题,table目录中,章与章之间会有一个空行分开;而在listing目录中,则没有空行分隔。只好在lol文件中增加了一行命令\addvspace {10pt}。如何在编译时自动加上这行 – WoodMan 2020-01-02 09:40 回复
  • 这样带来了新的问题,table目录中,章与章之间会有一个空行分开;而在listing目录中,则没有空行分隔。只好在lol文件中增加了一行命令\addvspace {10pt}如何让在编译时自动加上这行 – WoodMan 2020-01-02 09:39 回复
  • 谢谢,知道怎么弄了,在\edngroup 下面可以加命令: \cftsetindents{lstlisting}{0em}{2.55em}。 谢谢!非常感谢!! – WoodMan 2020-01-02 08:55 回复
  • 这样设置 的话,indent 设为0了,那 numwidth 这个参数如何设为2.55em呢? – WoodMan 2020-01-02 08:34 回复

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。