在 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}
这使得:
您可以看到第二组标签完全对齐,因此几乎不可读。我无法让这些标签左对齐,例如:
\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
仅适用于标签。