получение двоеточий после каждого элемента описания (без использования пакета listing)

получение двоеточий после каждого элемента описания (без использования пакета listing)

выходной ток:

Убывание 1Бла 1

желаемый результат:

Описание 1:Бла 1


MWE:

выходной ток:

\documentclass[oneside,12pt]{scrartcl}
\usepackage{polyglossia}
\setdefaultlanguage{german}
\usepackage{fontspec}
\begin{document}
\begin{description}
\item[Desc 1] Bla 1
\end{description}
\end{document}

желаемый результат:

\documentclass[oneside,12pt]{scrartcl}
\usepackage{polyglossia}
\setdefaultlanguage{german}
\usepackage{fontspec}
\begin{document}
\begin{description}
\item[Desc 1:] Bla 1
\end{description}
\end{document}

Конечно, я знаю, что могу сделать это с помощью замены регулярных выражений... но я уверен, что есть более простой и элегантный способ. Кроме того, я ищу решение для случая, когда у меня >100 элементов.

решение1

Переопределите, \descriptionlabelдобавив двоеточие:

\documentclass[oneside,12pt]{scrartcl}
\usepackage{polyglossia}
\setdefaultlanguage{german}
\usepackage{fontspec}

\renewcommand*{\descriptionlabel}[1]{\hspace{\labelsep}\descfont #1:}

\begin{document}
\begin{description}
\item[Desc 1] Bla 1
\item[Desc 2] Bla 2
\item[Desc 3] Bla 3
\end{description}
\end{document}

Результат:

введите описание изображения здесь

Я не сделал никаких предварительных предположений на случай, если необязательный аргумент \itemне будет использоваться, поскольку это изначально не имело бы смысла в description.

решение2

Это переопределяет \item, но задаст поведение по умолчанию (двоеточие пропускается), если необязательный аргумент не указан.

\documentclass[oneside,12pt]{scrartcl}
%\usepackage{polyglossia}
%\setdefaultlanguage{german}
%\usepackage{fontspec}
\let\svitem\item
\renewcommand\item[1][\relax]{\ifx\relax#1\svitem\else\svitem[#1:]\fi}
\begin{document}
\begin{description}
\item[Desc 1] Bla 1
\item Default empty tag
\end{description}
\end{document}

введите описание изображения здесь

Поскольку он переопределяет \item, вышеуказанный MWE повлияет на другие типы списков. Однако этого можно избежать с помощью следующего MWE, который повлияет только на descriptionсреду.

\documentclass[oneside,12pt]{scrartcl}
%\usepackage{polyglossia}
%\setdefaultlanguage{german}
%\usepackage{fontspec}
\let\svitem\item
\newcommand\altitem[1][\relax]{\ifx\relax#1\svitem\else\svitem[#1:]\fi}
\let\svdescription\description
\def\description{\let\item\altitem\svdescription}
\begin{document}
\begin{description}
\item[Desc 1] Bla 1
\item Default empty tag
\end{description}
\begin{itemize}
\item[Desc 1] Bla 1
\item Default empty tag
\end{itemize}
\end{document}

Связанный контент