obtendo dois pontos após cada item de descrição (sem usar o pacote de listagem)

obtendo dois pontos após cada item de descrição (sem usar o pacote de listagem)

saída atual:

Descrição 1Bla 1

saída desejada:

Descrição 1:Bla 1


MWEs:

saída atual:

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

saída desejada:

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

é claro que sei que poderia fazer isso substituindo regex... mas tenho certeza de que existe uma maneira mais fácil e elegante. e também estou procurando uma solução para o caso em que tenho mais de 100 itens

Responder1

Redefina \descriptionlabelpara adicionar dois pontos:

\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}

O resultado:

insira a descrição da imagem aqui

Não fiz nenhuma previsão no caso em que o argumento opcional of \itemnão é usado, pois isso não faria sentido em primeiro lugar em a description.

Responder2

Isso redefine \item, mas fornecerá o comportamento padrão (omitir os dois pontos) quando nenhum argumento opcional for especificado.

\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}

insira a descrição da imagem aqui

Por redefinir \item, o MWE acima afetará outros tipos de lista. No entanto, isso pode ser evitado com o seguinte MWE, que só afetará o descriptionmeio ambiente.

\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}

informação relacionada