我正在格式化我的论文文档,但在自定义浮点列表方面遇到了一些问题。
我需要获取代表图表的自定义浮点数列表,以便打印它们的标签,如下例所示。
但是,我得到的格式如下所示。
我正在使用此命令通过“float”包创建新的浮点数:
\usepackage{float}
\newfloat{chart}{thp}{lochart}
\floatname{chart}{Chart}
此外,我还使用此命令来打印自定义列表:
\renewcommand{\figurename}{Chart}
\listof{chart}{List of charts}
我使用它是因为线程中的建议:经典论文中自定义浮点数的格式化列表
我的主要问题是 LaTeX 不易于使用,并且软件包提供了许多模糊的命令,人们认为这些命令在创建东西时会有所帮助。
关键是,我尝试过的所有软件包都过于复杂,难以使用,而且通常会重命名基本命令或命令序列。因此,当您尝试使用基本 LaTeX 命令和界面更改简单内容时,如果您还在学习如何正确自定义它(就像我一样),这似乎是不可能的。
尽管如此,我也尝试手动创建自定义列表。
我感谢您的任何帮助。
答案1
如果你浏览过该项目网站,你会发现 Wiki 中有一个特定的条目:
https://github.com/abntex/abntex2/wiki/HowToCriarNovoAmbienteListing
% Novo list of (listings) para QUADROS
\newcommand{\quadroname}{Quadro}
\newcommand{\listofquadrosname}{Lista de quadros}
\newfloat[chapter]{quadro}{loq}{\quadroname}
\newlistof{listofquadros}{loq}{\listofquadrosname}
\newlistentry{quadro}{loq}{0}
% configurações para atender às regras da ABNT
\counterwithout{quadro}{chapter}
\renewcommand{\cftquadroname}{\quadroname\space}
\renewcommand*{\cftquadroaftersnum}{\hfill--\hfill}
% Configuração de posicionamento padrão:
\setfloatlocations{quadro}{hbtp}
想要 MWE 吗?
\documentclass{abntex2}
% Novo list of (listings) para QUADROS
\newcommand{\quadroname}{Quadro}
\newcommand{\listofquadrosname}{Lista de quadros}
\newfloat[chapter]{quadro}{loq}{\quadroname}
\newlistof{listofquadros}{loq}{\listofquadrosname}
\newlistentry{quadro}{loq}{0}
% configurações para atender às regras da ABNT
\counterwithout{quadro}{chapter}
\renewcommand{\cftquadroname}{\quadroname\space}
\renewcommand*{\cftquadroaftersnum}{\hfill--\hfill}
% Configuração de posicionamento padrão:
\setfloatlocations{quadro}{hbtp}
\begin{document}
\listofquadros*
\begin{quadro}
\caption{Um quadro qualquer}
\begin{tabular}{|ccc|}
\hline
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
\hline
\end{tabular}
\end{quadro}
\end{document}
答案2
处理列表、自定义列表和自定义浮点数可能很麻烦,因为我认为对于像我这样的初学者来说,LaTex 语法并不像其他一些主流语言那样简单或容易阅读和理解。
根据@Joseph 和@Christian 的说法,这个问题可以通过创建自定义环境甚至更改一些标题选项来解决,他们说得很对。但是,@Joseph 提供的语法(可在https://github.com/abntex/abntex2/wiki/HowToCriarNovoAmbienteListing,第一次尝试没有成功。
所以我想分享我的经验,以帮助那些遇到类似问题的人。请记住,主要问题是打印“列表”内容时不会显示标签,如下所示。
为了解决这个问题,打印标签及其正确的计数器值,我尝试了两种方法,都成功解决了问题。
在应用任何解决方案之前,您应该知道我假设您想创建一个自定义浮点数并正确显示它、它的标题和列表名称。
为了使其工作,需要使用 de 命令创建自定义浮点数:
\usepackage{float}
\newfloat{chart}{}{locharts}
\floatname{chart}{Chart}
第一个将导入你的浮点包,第二个将创建一个名为的新浮点包'图表',第一个参数,它会将其存储在名为‘locharts’,最后一个参数。中间{}负责浮点格式选项。对于此示例,您可以将其留空,因为我现在不需要任何特殊选项。最后,该命令\floatname
只是定义应该调用最近创建的浮点数'图表'大写字母。
创建自定义浮点数后,您可以使用我在此处提供的两种方法来在显示列表时更改标签名称。
对于第一种方法,您应该使用下面的代码。
%CREATE A NEW COMMAND TO HOLD THE LIST FILE NAME SO YOU CAN HANDLE AND MODIFY IT
\newcommand{\listofchartsname}{List of charts}
%CREATE THE LIST
\newlistof{listofcharts}{locharts}{\listofchartsname}
%INSERT AN ENTRY
\newlistentry{chart}{locharts}{0}
%CHANGE THE LIST DISPLAY NAMES
\counterwithout{chart}{chapter}
%CHANGE HOW THINGS WILL BE PRINTED
\renewcommand{\cftchartname}{Chart\space}
\renewcommand*{\cftchartaftersnum}{\hfill--\hfill}
我认为这里重要的是你正在创建一个命令来\newcommand{\listofchartsname}{List of charts}
保存一个名为的变量名'图表列表'。然后使用该变量通过命令为您的列表命名\newlistof{listofcharts}{locharts}{\listofchartsname}
。之后,\counterwithout{chart}{chapter}
用于指定在增加浮点计数器时不计算章节。
第一种方法的诀窍最终通过实现\renewcommand{\cftchartname}{Chart\space}
,\renewcommand{\cftchartaftersnum}{\hfill--\hfill}
这将保持'图表\空间'和\hfill--\hfill命令。打印您创建的列表时都会调用这两个命令
\newlistof{listofcharts}{locharts}{\listofchartsname}
使用此方法操作、创建自定义浮点的结果如下图所示
这是通过调用生成的
\pdfbookmark[0]{\listofchartsname}{locharts}
\listofcharts*
不同的是,第二种方法基于标题选项,正如@Christian 所建议的那样。在开始之前,我想分享这个链接:https://mirror.hmc.edu/ctan/macros/latex/contrib/caption/caption-eng.pdf. 这是'标题'该包描述了如何自定义标题以及列出选项的方法。
为了使用第二种方法,你只需要使用代码
\usepackage[labelfont=bf, textfont=bf]{caption}
\DeclareCaptionListFormat{chartListFormat}{\hspace*{-30.5pt}Chart #2~--~}
\captionsetup[chart]{listformat=chartListFormat}
在此示例中,命令\usepackage[labelfont=bf, textfont=bf]{caption}
是导入包'标题',以便轻松处理它们。选项'标签字体=bf'和'文本字体=bf'只是指定所有标题标签和计数器的两种字体都应以粗体打印。
为了改变列表时标签的显示方式,你需要使用选项更改标题列表格式‘列表格式’。在许多方法中,这可以通过使用命令创建自定义列表格式来实现\DeclareCaptionListFormat{chartListFormat}{\hspace*{-30.5pt}Chart #2~--~}
,其中‘chartListFormat’是它的名字,\hspace*{-30.5pt}留出一些空间以避免事物重叠,并且“图表 #2~-~”是一个字符串,表示它应该打印名称 Chart,后跟参数 #2,指示列表中一个浮点数的当前计数器值(此命令针对创建的浮点数列表中的每个元素调用)。
要设置该选项,\captionsetup[chart]{listformat=chartListFormat}
可以使用该命令并指定选项'列表格式=图表列表格式'对于自定义浮点数'图表'已创建。此方法将生成如下所示的列表。
这是通过调用生成的
\listof{chart}{Charts list}
我希望这些方法可以帮助到你们,你们在配置自定义打印字幕或配置字幕时遇到了麻烦。我还想分享这个链接:http://www.peteryu.ca/tutorials/publishing/latex_captions。它包含一些有关如何自定义字幕的很好的例子。