获取图标定义列表,其中图标具有行高并与行垂直对齐

获取图标定义列表,其中图标具有行高并与行垂直对齐

我目前正在尝试定义一个图标/图像列表,这些图标/图像将采用行高的大小并与行垂直对齐。这个列表基本上是一个解释这些图标是什么的列表。下面的示例是我想要实现的,并被采用来自 Apple iOS 文档网站在此处输入图片描述

我从那里抓取了图像,但这些图像比实际行高要大一些。指定并包含图像而不调整它们的大小应该会产生一个渲染版本,其中每个图像都比预期的要大一些。奇怪的是,这不是我得到的渲染版本:一些图像看起来比其他图像大得多。我知道每张图片的尺寸都略有不同(例如:26x30、30x30、36x32 等),但据我所知,这不能成为原因并解释该问题。

在此处输入图片描述

我认为使用线的大小来减小每幅图像的尺寸(并保持它们的比例)就足够了,例如描述在这里。不幸的是,由于无法确定我们当前所在行的高度因为它取决于许多因素:行距和字体大小等。

然后我决定我应该使用一个适合渲染版本的值通过反复试验来缩放每个图像,但这个值不会自动计算,而且一旦我更改文本的大小,我就需要手动重新计算该值。效率不高。我得到了一些更好的结果,但我仍然遇到一些问题,即有些图像看起来比其他图像小得多。

在此处输入图片描述

为了解决居中问题,我想到命令\vcenter,但我遇到了一些问题:它要求我处于数学模式,并且其余的线出现在页面边框之外。

在此处输入图片描述

我现在的丑陋代码:

\begin{itemize}
    \item $\vcenter{\includegraphics[scale=0.5]{fig_xcode_inspector_file}} Some text$
    \item $\vcenter{\includegraphics[scale=0.5]{fig_xcode_inspector_quick_help}} yet some text$
    \item $\vcenter{\includegraphics[scale=0.5]{fig_xcode_inspector_identity}} some text$
    \item $\vcenter{\includegraphics[scale=0.5]{fig_xcode_inspector_attributes}} some text$
    \item $\vcenter{\includegraphics[scale=0.5]{fig_xcode_inspector_size}} some text $
    \item $\vcenter{\includegraphics[scale=0.5]{fig_xcode_inspector_connections}} some text $
\end{itemize}

欢迎任何能帮助我解决此问题的帮助。

答案1

像这样?

\documentclass{article}
\usepackage[export]{adjustbox}
\usepackage{enumitem}
\begin{document}
  \begin{itemize}
    \item \includegraphics[valign=b,height=\fontcharht\font`X]{example-image} Some text
    \item \includegraphics[valign=b,height=\fontcharht\font`X]{example-image-a} Some text
    \item \includegraphics[valign=b,height=\fontcharht\font`X]{logo} Some text
    \item \includegraphics[valign=b,height=\fontcharht\font`X]{pecemblem} Some text    
\end{itemize}
\end{document}

在此处输入图片描述

答案2

如果您想要居中对齐(如您所\vcenter建议的),那么我建议您adjustbox按照 Harish 所展示的进行操作,但在这里我认为您最好使用默认的基线对齐。我只需要这样做

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx}
\begin{document}
  \begin{itemize}
    \item \includegraphics[height=.7em]{example-image} Some text
    \item \includegraphics[height=.7em]{example-image-a} Some text
    \item \includegraphics[height=.7em]{logo} Some text
    \item \includegraphics[height=.7em]{example-image-b} Some text    
\end{itemize}
\end{document}

答案3

我认为\vcenter这不是您要找的。 行高的一个良好估计是,\fontdimen22\textfont2+1ex它是数学轴的高度加上字母的高度x$\null\mathsurround=0pt$用于初始化 TeX 中的数学字体,否则您将收到一条错误消息,提示 nullfont 中只有 7 个字体尺寸。

\documentclass{article}
\usepackage{graphicx}
\newcommand\icon[2]{%
  $\null\mathsurround=0pt$%
  \includegraphics[height=\dimexpr\fontdimen22\textfont2+1ex\relax]{#1}
  \textbf{#2.}\space
}
\begin{document}
\begin{itemize}
\item \icon{example-image-a}{File} Some text
\end{itemize}
\end{document}

在此处输入图片描述

答案4

如果你能找到并使用合适的图标字体(这里我使用了字体真棒(需要 XeLaTeX 或 LuaLaTeX),您可以完全放弃图像,字体大小缩放问题将自动处理。其他好处包括更高质量的符号、无限的可扩展性和更小的 PDF 文件大小。

\documentclass{article}
\usepackage{fontawesome}
\newcommand{\myitem}[2]{\item #1 {\bfseries\sffamily #2}}

\def\testlist{%
\begin{itemize}
  \myitem{\faFile}{File.} Specify general information about the storyboard.
  \myitem{\faQuestionSign}{Quick Help.} Get useful documentation about an object.
  \myitem{\faThumbnailsList}{Identity.} Specify a custom class for your object 
    and define its accessibility attributes.
\end{itemize}
}

\begin{document}\sffamily
{\testlist\par}

{\huge\testlist\par}

\end{document}

在此处输入图片描述

相关内容