我正在尝试使用自定义命令重新创建以下功能:
\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}