obtener dos puntos después de cada elemento de descripción (sin usar el paquete de listado)

obtener dos puntos después de cada elemento de descripción (sin usar el paquete de listado)

salida de corriente:

Desc 1Bla 1

salida deseada:

Descripción 1:Bla 1


MWE:

salida de corriente:

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

salida deseada:

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

Por supuesto, sé que podría hacerlo mediante el reemplazo de expresiones regulares... pero estoy bastante seguro de que hay una manera más fácil y elegante. y también estoy buscando una solución para el caso en el que tengo >100 artículos

Respuesta1

Redefinir \descriptionlabelpara agregar los dos puntos:

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

El resultado:

ingrese la descripción de la imagen aquí

No hice ninguna previsión en el caso en el que \itemno se utilice el argumento opcional de, ya que esto no tendría sentido en primer lugar en un archivo description.

Respuesta2

Esto redefine \item, pero dará un comportamiento predeterminado (omitir los dos puntos) cuando no se especifica ningún argumento opcional.

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

ingrese la descripción de la imagen aquí

Debido a que redefine \item, el MWE anterior afectará a otros tipos de listas. Sin embargo, esto se puede evitar con las siguientes MWE, que sólo afectarán al descriptionmedio 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}

información relacionada