如何将 listoffigures 作为水平列表获取?

如何将 listoffigures 作为水平列表获取?

有没有办法将\listoffigures图号、标题和页码显示为除以的水平列表|

图 1:图 1 的标题 | 2;图 2:图 2 的标题 | 4;图 3:图 3 的标题 | 82;图 4:图 4 的标题 | 282

还有什么办法可以隐藏页码吗?例如

图 1:图 1 的标题;图 2:图 2 的标题;图 3:图 3 的标题;图 4:图 4 的标题

作为 MWE,我提供

\documentclass{scrbook}
\usepackage{graphicx}
\usepackage{caption}
\makeatletter
\AtBeginDocument{
\renewcommand*\l@figure{\@dottedtocline{1}{2.4cm}{.5cm}}
\renewcommand{\@dotsep}{10000}
}
\makeatother
\renewcommand{\thefigure}{\bfseries\arabic{figure}}

\begin{document}

    \captionof{figure}{example-image-a}
    \captionof{figure}{example-image-b}
    \captionof{figure}{example-image-c}

\listoffigures
\end{document}

答案1

您只需要一个自定义版本\numberline

\def\numberline#1#2{%
  \lofsep\space{\let\bfseries\relax Fig. #1: #2}
}

\lofsep将是垂直线,\let\bfseries\relax因为默认情况下\bfseries会写入.lof文件。最后你需要说\let\l@figure\@firstoftwo,所以页码就被遗忘了。

输出

完整代码

\documentclass{scrbook}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{etoolbox}

\makeatletter
\let\l@figure\@firstoftwo
\let\ltx@numberline\numberline
\preto\listoffigures{
  \def\numberline#1#2{%
    \lofsep\space{\let\bfseries\relax Fig. #1: #2}
  }
  \def\lofsep{\def\lofsep{\(\mid\)}}
}
\appto\listoffigures{\let\numberline\ltx@numberline}
\makeatother

\renewcommand*\thefigure{\bfseries\arabic{figure}}

\begin{document}
\captionof{figure}{example-image-a}
\captionof{figure}{example-image-b}
\captionof{figure}{example-image-c}
\listoffigures
\end{document}

相关内容