单线检查器

单线检查器

我正在使用captionsubcaption包来为文档中使用的图表添加更漂亮的标题。因此我使用以下样式,

    \DeclareCaptionStyle{MarinoCaptionStyle}{
        format=plain,
        indention=0cm,
        labelformat=simple,
        labelsep=period,
        textformat=simple,
        justification=Justified,
        font={singlespacing, MarinoFont},
        width=\textwidth,
        skip=\baselineskip,
        position=bottom,
        list=false,
        hypcap=false,
    }

对于单行,标题不会自动居中,我曾尝试使用

singlelinecheck=true

但也不起作用。

然后,我尝试创建自己的解决方案,我浪费了半天时间搜索和阅读一些软件包文档,并使用etoolbox我设法得到它

\DeclareCaptionJustification{MarinoJustification}{\ifnumequal{\the\prevgraf}{1}{\centering}{\justifying}}

但同样,也没有用(是的,我打了电话justification=MarinoJustification)。

所以我想知道这是否可行并且有解决方案吗?或者最好有办法改进并使我的解决方案有效。

我认为这也许是一些重要的事情,我使用 LuaLatex 编译器。

答案1

标题包文档称:“如果您指定,<additional options>当标题适合一行并且未使用选项 singlelinecheck=off 禁用此检查时,它们还会被使用。”

据我对标题包文档这一部分的理解,\DeclareCaptionStyle如果标题确实适合一行,则会另外应用给出的“附加选项”。即,当标题长于一行时,将应用常规选项(在强制参数中给出),如果标题短于一行,则将应用常规选项和附加选项(在可选参数中给出)。

因此,如果较短的标题应该居中,则必须使用justification=centering可选参数。

示例文档:

\documentclass{article}
\usepackage{caption,ragged2e,graphicx,lipsum}

\DeclareCaptionFont{MarinoFont}{\itshape} % TODO

\DeclareCaptionStyle{MarinoCaptionStyle}[
        justification=centering]{
        format=plain,
        indention=0cm,
        labelformat=simple,
        labelsep=period,
        textformat=simple,
        justification=Justified,
        font={singlespacing, MarinoFont},
        width=\textwidth,
        skip=\baselineskip,
        position=bottom,
        list=false,
        hypcap=false
    }

\captionsetup{style=MarinoCaptionStyle}

\begin{document}
\begin{figure}
\centering
\includegraphics{example-image-a}
\caption{A short caption}
\end{figure}
\begin{figure}
\centering
\includegraphics{example-image-b}
\caption{\lipsum[1]}
\end{figure}
\end{document}

答案2

瓦

这是猜测的 MWE 的代码。

\documentclass[12pt,a4paper]{article}

\usepackage{graphicx}
\usepackage{caption}

    \DeclareCaptionStyle{MarinoCaptionStyle}{
    format=plain,
    indention=0cm,
    labelformat=simple,
    labelsep=period,
    textformat=simple,
    justification=centering, %<<<<<<<<<<<<<<< changed
    font={singlespacing, it},
    width=\textwidth,
    skip=\baselineskip,
    position=bottom,
    list=false,
    hypcap=false,
}

\captionsetup[figure]{%
style=MarinoCaptionStyle
}


\begin{document}    
    
\begin{figure}
    \centering  
    \includegraphics[width=0.7\linewidth]{example-image}
        \caption{A very nice centered caption}      
\end{figure}
    
\end{document}

相关内容