有没有办法将\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}