我正在做一个beamer
演示文稿并定义了一些自定义项目itemize
符号,如下所示:
\newcommand{\pro}{\item[\textbf{\color{green}+}]}
\newcommand{\con}{\item[\hspace{-2ex}\textbf{\color{red}--}]}
它们工作得很好,但没有彼此居中,标志\con
比标志更缩进\pro
。
我试过
\begin{itemize}[align=center]
没有效果。
有没有一种方法,不使用enumitem
(与 不太兼容beamer
)来将自定义项目符号对齐到居中位置?
也许这也是可能的enumitem
,但我还没有找到正确的方法来实现它?
答案1
你可以通过mathtools
其\(math)clap
命令得到你想要的东西。
我在数学模式下以不同的方式定义了您的自定义项目符号。请注意,其endash
宽度与字符的宽度不同+
。
\documentclass{beamer}
\usepackage{mathtools}
\newcommand{\pro}{\item[\boldmath$\mathclap{\color{green}+}$ ]}
\newcommand{\con}{\item[\boldmath$ \mathclap{\color{red}-}$ ]}
\begin{document}
\begin{frame}
\begin{itemize}
\pro item1
\con item2
\end{itemize}
\end{frame}
\end{document}
笔记:如果您想要使用的符号都有相同的宽度,则该mathclap
命令不是必需的。
答案2
由于+
大于--
,我将 置于--
同一空间的中心。这很复杂,因为--
略微不对称(如\fbox
演示中所示),当然还要beamer
重新定义所有内容。
\documentclass{beamer}
\newlength{\tempdima}
\newcommand{\pro}{\item[\color{green}\textbf{+}]}
\newcommand{\con}{\item[\settowidth{\tempdima}{\textbf{+}}%
\hbox to \tempdima{\hfill\hspace{.07ex}\color{red}\textbf{--}\hfill}]}
\begin{document}
\begin{frame}
\begin{itemize}
\pro item1
\con item2
\end{itemize}
\fboxsep=0pt
\fbox{\textbf{--}}
{\Huge\fbox{\hspace{.07ex}\textbf{--}}}
{\tiny\fbox{\hspace{.07ex}\textbf{--}}}
\end{frame}
\end{document}