问题

问题

我不是 Latex 专家,因此在编写文档时,我遇到了许多 TeX 命令问题。TeX StackExchange 为我的大部分问题提供了答案。但是,我的一个问题仍然没有一致的答案。在 Tex StackExchange 上进行多次搜索后,我想分享一个解决方案。

问题

使用 制作演示文稿幻灯片时Beamer,有时我需要在 itemize 环境中为项目使用自定义图标。只是有时,所以我真的不需要全局定义\setbeamertemplate{enumerate items}[]\setbeamertemplate{itemize items}[]

我首选的自定义图标包是fontawesome5 CTAN: 软件包 fontawesome5

我们举一个例子来说明这个问题。

\begin{frame}{Alginment Test}
\begin{itemize}
    \item[{\faThumbsUp}] Good condition
    \item[{\faMeh[regular]}] Degraded condition
    \item[{\faTimes}] Failure condition
\end{itemize}
\end{frame}

(记得添加\usepackage{fontawesome5}到你的序言中)

将产生:

在此处输入图片描述

如您所见,图标不是垂直居中对齐的。在其他文档类中,我们可以使用包轻松修复此问题。可以在此处找到常规类(如或)enumitem的完整解决方法:articlereportitemize - 自定义项目符号的对齐方式。但是,我们正在使用beamer类,加载会破坏投影仪的结构。您可以在此处enumitem找到不使用的部分答案enumitem在 beamer 中逐项列出 - 自定义项目符号的对齐 。但语法对我来说相当复杂。

答案1

您可以fontawesome5使用该fixed选项加载包,然后所有图标都会自动在固定宽度的框中居中。

所以只需更换

\usepackage{fontawesome5}

\usepackage[fixed]{fontawesome5}

然后您就不必在您的 中进行任何更改{itemize}

答案2

解决方案

为了解决这个问题,你需要mathtoolsCTAN: 软件包 mathtools及其\clap命令。让我们进行一些观察。

首先,把图标放进去\clap{}

\begin{frame}{Alginment Test}
\begin{itemize}
    \item[\clap{\faThumbsUp}] Good condition
    \item[\clap{\faMeh[regular]}] Degraded condition
    \item[\clap{\faTimes}] Failure condition
\end{itemize}
\end{frame}

它将产生:

在此处输入图片描述

图标垂直居中。但是图标和文本之间的空间太小。所以我尝试在命令后添加一个空格,\clap{}如下所示:

\begin{frame}{Alginment Test}
\begin{itemize}
    \item[\clap{\faThumbsUp} ] Good condition %<----- extra white space after \clap{}
    \item[\clap{{\faMeh[regular]}} ] Degraded condition
    \item[\clap{\faTimes} ] Failure condition
\end{itemize}
\end{frame}

然后我们有:

在此处输入图片描述

这样好一些吧?

但是我不想在\clap{}命令后面添加多余的空格,这样代码看起来就不美观了。我在 TeX StackExchange 上进行了另一次搜索,找到了这个帖子:beamer:如何在 itemize 环境中增加项目符号和文本之间的空间?。现在,我将以下代码行添加到 itemize 环境中,并删除后面的所有空格\clap{}

\begin{frame}{Alginment Test}
\begin{itemize}
    \setlength\labelsep{10pt} %<---- new line
    \item[\clap{\faThumbsUp}] Good condition
    \item[\clap{{\faMeh[regular]}}] Degraded condition
    \item[\clap{\faTimes}] Failure condition
\end{itemize}
\end{frame}

最终结果:

在此处输入图片描述

您可以将空间调整10pt为适合您需要的任何数字。另外,请记住将\setlength\labelsep{10pt}您想要调整的空间放入 itemize 环境中(如果您有一些嵌套列表)。您可以根据\clap{your fontawesome5 icon}需要定义新的较短命令。由于我有时只使用自定义项目符号,因此原始宏就可以了。

非常感谢您的阅读,我希望这个解决方法能够有所帮助。

相关内容