![关于用破折号替换句号并将标题与图形边框对齐](https://linux22.com/image/336061/%E5%85%B3%E4%BA%8E%E7%94%A8%E7%A0%B4%E6%8A%98%E5%8F%B7%E6%9B%BF%E6%8D%A2%E5%8F%A5%E5%8F%B7%E5%B9%B6%E5%B0%86%E6%A0%87%E9%A2%98%E4%B8%8E%E5%9B%BE%E5%BD%A2%E8%BE%B9%E6%A1%86%E5%AF%B9%E9%BD%90.png)
这是关于caption
包装的。我读了写得很好的本包的手册(但并不彻底,因为我是 LaTex 新手)并且没有找到足够的与标题标签相关的数字。因此,
- 如何用自定义符号(比如破折号)代替章节和图号之间的句点(例如图 7-1和沒有
\renewcommand
)? - 同样,在标题编号前放置一个自定义符号怎么样?例如图 P7-1?
第三个问题关于字幕对齐,
- 是否可以将标题与图形边框对齐(这里我指的是左边框)?如何操作?
这是一个典型的 MWE:
\documentclass{book}
\usepackage{blindtext}
\usepackage[demo]{graphicx}
\usepackage{caption}
\DeclareCaptionStyle{mystyle}[]{
name=FIGURE,
labelsep=newline
}
\setcounter{chapter}{7}
\begin{document}
\begin{figure}
\centering
\includegraphics[width=10cm]{testimage}
\captionsetup{style=mystyle}
\caption{Caption of my figure}
\end{figure}
\end{document}
输出如下:
当然,我读过那些关于使用破折号而不是句点或标题对齐的问题,但如果可能的话,我只想使用amsmath
和caption
包装。
答案1
这取决于您希望如何打印参考文献。
如果您希望将图 7-1 或表 7-1 的引用打印为“7.1”,可以这样做:
\documentclass{book}
\usepackage{graphicx}
\usepackage{caption}
\makeatletter
\DeclareCaptionLabelFormat{pcdn}{% Prefix Chapter Dash Number
\MakeUppercase{#1} P\arabic{chapter}--\arabic{\@captype}%
}
\makeatother
\DeclareCaptionStyle{mystyle}{
labelformat=pcdn,
labelsep=newline
}
\setcounter{chapter}{7}
\begin{document}
We see in figure~\ref{ei}
\begin{figure}[htp]
\captionsetup{style=mystyle}
\centering
\begin{minipage}{10cm}
\includegraphics[width=\textwidth]{example-image}
\caption{Caption of my figure}\label{ei}
\end{minipage}
\end{figure}
\end{document}
该caption
包允许定义各种格式;在本例中,我们想要更改标签的格式(默认情况下为“图n”或“表格n“, 在哪里n是数字)。在第二个参数中,\DeclareCaptionLabelFormat
可以使用#1
代表相应环境名称和#2
相关计数器值的 。由于我们希望标签为大写,\MakeUppercase{#1}
因此这是显而易见的选择。但是,由于数字应以特殊方式排版,与引用分离,我们可以明确使用计数器,因此这P\arabic{chapter}--\arabic{figure}
似乎是不错的选择;不过,我们可以做得更好:在 float 环境中,\@captype
代表figure
或table
,因此\arabic{\@captype}
将扩展为所需的计数器。由于我们使用名称中带有 的命令@
,因此代码必须用\makeatletter
和包围\makeatother
,请参阅\makeatletter 和 \makeatother 起什么作用?。
如果引用应该像标题中那样是“P7–1”,代码会更简单。
\documentclass{book}
\usepackage{graphicx}
\usepackage{caption}
\DeclareCaptionLabelFormat{pcdn}{\MakeUppercase{#1} #2}
\renewcommand{\thefigure}{P\arabic{chapter}--\arabic{figure}}
\DeclareCaptionStyle{mystyle}{
labelformat=pcdn,
labelsep=newline
}
\setcounter{chapter}{7}
\begin{document}
We see in figure~\ref{ei}
\begin{figure}[htp]
\captionsetup{style=mystyle}
\centering
\begin{minipage}{10cm}
\includegraphics[width=\textwidth]{example-image}
\caption{Caption of my figure}\label{ei}
\end{minipage}
\end{figure}
\end{document}