
Я пытаюсь создать новую \section
команду с немного другим форматированием текста. Хотя я могу понять, как это сделать с помощью пакета titlesec
, я бы хотел избежать ручной вставки форматирования и интервалов.
До сих пор у меня есть
\titleclass{\customsec}{straight}[\section]
\newcounter{customsec}
\titleformat{\customsec}{\sffamily\normalsize\bfseries}{}{0em}{Custom text \thecustomsec:~}
\titlespacing*{\customsec}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
В настоящее время я вручную вставил некоторые значения для шрифта, размера и т. д., но я хотел бы, чтобы это была точная копия форматирования для \section
. Единственное изменение, которое мне нужно, это возможность изменить текст в заголовке раздела. Есть ли какие-либо команды, которые могут извлечь это для меня?
Или правильным способом будет просто обновить команду в той части текста, где мне нужен пользовательский раздел, а затем восстановить ее?
решение1
Я не знаю, как извлечь точный стиль из \section
команды по умолчанию, но, похоже, titlesec
она не предоставляет для этого возможности, а делать это вручную или автоматически было бы ненадежно.
Однако локальное изменение заголовка кажется достаточно простым, а с помощью группы TeX (это внутренний слой фигурных скобок) он автоматически возвращается к значению по умолчанию, когда мы закончим.
\documentclass{article}
\usepackage{titlesec}
\newcommand\customsec[1]{{%
\titlelabel{Custom text \thetitle:~}%
\section{#1}%
}}
\begin{document}
\section{normal section}
\customsec{custom section}
\section{normal section}
\customsec{custom section}
\end{document}
РЕДАКТИРОВАТЬ: В более старой версии этой статьи были показаны две более сложные версии, которые либо вручную сбрасывали настройки \titlelabel
до значений по умолчанию, либо обращались к внутренним макросам LaTeX для сохранения и восстановления.