定义 latex 命令来创建新类型的标题

定义 latex 命令来创建新类型的标题

我正在尝试使用自定义命令重新创建以下功能:

\vspace{.15cm}\noindent\textsc{Low Minor Allele Frequency} 
\\ \noindent

基本上是一个没有缩进的小标题,下一行也没有缩进。我尝试使用以下命令执行此操作:

\newcommand{\smallHead}[1]{\noindent\vspace{.75cm}\noindent\textsc{ #1 } \\ \noindent}

但它似乎不能正常工作。我想知道是否有人可以告诉我我是否遗漏了什么?

答案1

要删除命令后一行的缩进,请使用以下宏结束命令:

\@afterindentfalse\@afterheading

正如 Tobi 所说,我不会\\在这里使用它,但它也没有什么真正的危害。

(使用前需要宏\makeatletter。)

\makeatletter
\newcommand{\smallHead}[1]{%
  \vspace{.75cm}\noindent\textsc{ #1 }\vspace{\baselineskip}%
  \@afterindentfalse\@afterheading}
\makeatother

应该管用。

答案2

我认为你不应该\\在定义中使用。试试这个

\newcommand{\smallHead}[1]{%
    \par\vspace{.75cm}\noindent\textsc{#1}%
    \par\noindent\ignorespaces%
}

并注意标题和下一段落之间不要有空行。

如果你使用 KOMA-documentclass(以 scr… 开头),你也可以使用 -command\minisec更改其字体\setkomafont{minisec}…

完整示例

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
% own command
\newcommand{\smallHead}[1]{%
    \par\vspace{.75cm}\noindent\textsc{#1}%
    \par\noindent\ignorespaces%
}
% with KOMA-class
\setkomafont{minisec}{\normalfont\scshape}
\begin{document}
\section*{own command}
Varaint with your own command:
\smallHead{A Test}
This works \dots
% or
\smallHead{A Test}
%
This works \dots
% doesn't work
\smallHead{A Test}

This not \dots

\section*{KOMA}
With KOMA-Script all three will work:

\minisec{Another Test}
This works \dots

\minisec{Another Test}
%
This works \dots

\minisec{Another Test}

This works \dots
\end{document}

相关内容