使回忆录类 \flexlabelled 左对齐

使回忆录类 \flexlabelled 左对齐

在 Memoir 类中,我可以\usepackage{enumitem},然后制作一个漂亮的描述列表。我尝试使用 Memoir 的内置flexlabelled环境执行相同操作,但标签完全对齐。MWE:

\documentclass[article]{memoir}

\usepackage{enumitem}

\usepackage{polyglossia}
  \setdefaultlanguage[variant=uk]{english}
  \setmainfont{Open Sans}

\begin{document}

\chapter*{Lights (enumitem)}
\begin{description}[style=multiline,leftmargin=4cm,font=\normalfont\sffamily]
  \item [SR tripod] 300W PAR56, vertically > Marjolaine
  \item [somewhere, possibly] 12V 50W or 300W PAR56 > house
\end{description}

\chapter*{Lights (flexlabelled)}
\newcommand*\sfl{\raggedright\sffamily}
\begin{flexlabelled}{sfl}{4cm}{*}{0mm}{5cm}{0mm}
  \item [SR tripod] 300W PAR56, vertically > Marjolaine
  \item [somewhere, possibly] 12V 50W or 300W PAR56 > house
\end{flexlabelled}

\end{document}

这使得:

enumitem 与 flexlabelled

您可以看到第二组标签完全对齐,因此几乎不可读。我无法让这些标签左对齐,例如:

\newcommand*{\sfl}[1]{\sffamily{\raggedright{}#1}}

什么都没改变。有人知道发生了什么吗?

答案1

该命令\sfl应该有一个参数(标签);\raggedright不执行任何操作,因为标签是在中排版的\makebox,用于\hfill强制左对齐。

\documentclass[article]{memoir}

\usepackage{polyglossia}
\usepackage{siunitx}

\setdefaultlanguage[variant=uk]{english}
\setmainfont{Linux Libertine O}
\setsansfont{Open Sans}[Scale=MatchLowercase]

\newcommand*\sfl[1]{\sffamily\raggedright#1\hfill}

\begin{document}

\chapter*{Lights (flexlabelled)}
\begin{flexlabelled}{sfl}{4cm}{0mm}{0mm}{4cm}{0mm}
  \item [SR tripod] \SI{300}{W} PAR56, vertically > Marjolaine
  \item [somewhere, possibly] \SI{12}{V} \SI{50}{W} or \SI{300}{W} PAR56 > house
\end{flexlabelled}

\end{document}

我对正文使用了衬线字体,只是为了表明声明\sffamily仅适用于标签。

在此处输入图片描述

相关内容