我不是 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
的完整解决方法:article
report
itemize - 自定义项目符号的对齐方式。但是,我们正在使用beamer
类,加载会破坏投影仪的结构。您可以在此处enumitem
找到不使用的部分答案enumitem
在 beamer 中逐项列出 - 自定义项目符号的对齐
。但语法对我来说相当复杂。
答案1
您可以fontawesome5
使用该fixed
选项加载包,然后所有图标都会自动在固定宽度的框中居中。
所以只需更换
\usepackage{fontawesome5}
和
\usepackage[fixed]{fontawesome5}
然后您就不必在您的 中进行任何更改{itemize}
。
答案2
解决方案
为了解决这个问题,你需要mathtools
包CTAN: 软件包 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}
需要定义新的较短命令。由于我有时只使用自定义项目符号,因此原始宏就可以了。
非常感谢您的阅读,我希望这个解决方法能够有所帮助。