早上好。我想在节号和字符串之间添加 2 厘米的空格,但新命令\renewcommand{\thesubsection}{\hspace{2cm}}
不起作用。一切都消失了。如果我改用%
first,一切都会正常。我哪里做错了?谢谢。
源文件是:
\documentclass[a4paper,12pt]{article}
\usepackage{lipsum}
\renewcommand{\thesubsection}{\hspace{2cm}}
\newcommand{\upsecnum}{\refstepcounter{section}}
\begin{document}
\upsecnum
\subsection{Scene}
\lipsum[2]
\subsection{Scene}
\lipsum[2]
%change from Act 1 to Act 2
\upsecnum
\subsection{Scene}
\lipsum[2]
\end{document}
答案1
答案2
如果你不使用\section
,而只使用小节,你可以更简单地修改\@seccntformat
。例如,修改\thesubsection
会对目录造成不良影响。
\documentclass[a4paper,12pt]{article}
\usepackage{lipsum}
\newcommand{\upsecnum}{\refstepcounter{section}}
\makeatletter
\renewcommand{\@seccntformat}[1]{%
\csname the#1\endcsname\hspace{2cm}% original has \quad
}
\makeatother
\begin{document}
\upsecnum
\subsection{Scene}
\lipsum[2]
\subsection{Scene}
\lipsum[2]
%change from Act 1 to Act 2
\upsecnum
\subsection{Scene}
\lipsum[2]
\end{document}
请注意,相同的格式也适用于\section
。
我还可以推荐一种不同的文本输入方式。如果需要,使用更语义化的命令可以更轻松地修改文本的外观。
\documentclass[a4paper,12pt]{article}
\usepackage{lipsum}
\NewDocumentCommand{\scene}{t+ m}{%
\IfBooleanT{#1}{\stepcounter{section}}%
\subsection{#2}%
}
\makeatletter
\renewcommand{\@seccntformat}[1]{%
\csname the#1\endcsname\hspace{2cm}% original has \quad
}
\makeatother
\begin{document}
\scene+{Scene}
\lipsum[2]
\scene{Scene}
\lipsum[2]
%change from Act 1 to Act 2
\scene+{Scene}
\lipsum[2]
\end{document}