当我运行以下代码时,我得到段落标题“Some title。”。如何让编译器隐藏段落标题中的句点(“。”)?
\documentclass[3p,12pt,authoryear]{elsarticle}
\begin{document}
\paragraph{Some title}
\end{document}
答案1
中的定义elsarticle
写得很糟糕,因为它无条件地添加了一个句号。
您可以借助amsthm
其\@addpunct
功能进行更改,只有在标题后没有标点符号时才添加句号。
\documentclass[3p,12pt,authoryear]{elsarticle}
\usepackage{amsthm}% for \@addpunct
\makeatletter
\def\els@aparagraph[#1]#2{\elsparagraph[#1]{#2\@addpunct{.}}}
\def\els@bparagraph#1{\elsparagraph*{#1\@addpunct{.}}}
\makeatother
\begin{document}
\paragraph{A title without period}
\paragraph{A title with period.}
\paragraph{Will it work with a question mark?}
\end{document}
amsthm
使用加载应该没有问题elsarticle
,因为该类支持 AMS 包。
请注意,按照样式的要求,第一个段落标题中也添加了句号,但第二个标题后面没有额外的句号,问号后面也没有句号。
答案2
编辑由于我回答时问题中没有问号“问题”,因此我无法解决这个问题。将此问题附加到我的解决方案中是没有意义的,因为已经有另一个答案了。
该点明确设置\els@aparagraph
为#2.
\def\els@aparagraph[#1]#2{\elsparagraph[#1]{#2.}}
对于 也有类似的定义\els@bparagraph
。
这是工作代码——但发布者可能会拒绝它。此外,@DavidCarlisle 表示:该命令\paragraph
在错误的分段命令层次结构中使用。
\documentclass[3p,12pt,authoryear]{elsarticle}
\makeatletter
\def\els@aparagraph[#1]#2{\elsparagraph[#1]{#2}}
\def\els@bparagraph#1{\elsparagraph*{#1}}
\makeatother
\begin{document}
\paragraph{Some title}
\end{document}