解释:

解释:

我正在用这个解决方案这个的问题用于打印警告标志。但在我的特殊情况下,文本和符号在垂直方向上没有正确对齐。

我希望符号的下基线与字母(如 ( a, b, c) )相同,而不是(q, p, g, y)。上基线对我来说没问题。

不太好的垂直对齐标志

答案1

请参阅最后的编辑答案,其中包含更清洁和适应性的解决方案

快速,肮脏且非常明确,但它有效:

\documentclass{article}
    \usepackage{fourier}
    \usepackage{graphicx}

\begin{document}
    \raisebox{0.325ex}{\resizebox{!}{1.2ex}{\danger}} dasdfcsdasda
\end{document}

在此处输入图片描述

当然,它需要根据您使用的字体进行调整......


解释:

1.初始状态:\danger dasdfcsdasda

在此处输入图片描述

2.首先,我们需要减小警告标志的尺寸。

它是通过宏\resizebox{width}{height}{what is to be resized}graphicx包的)实现的,其中参数!用于保持比例相同。作为初步近似,我们取:

\resizebox{!}{1ex}{\danger} dasdfcsdasda

在此处输入图片描述

3.然而,我们观察到resizebox调整大小后的符号与原始符号底部对齐。

因此,我们需要使用 来“提高” \raisebox{length}{content to be raised}。作为第一近似值,我们使用:

\raisebox{0.3ex}{\resizebox{!}{1ex}{\danger}} dasdfcsdasda

在此处输入图片描述

4.最后,我们调整了长度,以便得到更正确的结果


编辑

这是一个自适应解决方案,可根据当前上下文(字体系列和大小)评估长度。

\documentclass{article}

    \usepackage{graphicx}%                                          to access \settoheight and \settodepth macros

    \usepackage{fourier}%                                           to access \danger icon
    \usepackage{libertine}%                                         set serif font
    \usepackage{roboto}%                                            set sans-serif font (different height)

    \newlength{\myheight}
    \newlength{\mydepth}

    \newcommand{\myDanger}{%
        \settoheight{\myheight}{l}%                                 in order to get the maximal height of letters in the font used
        \settodepth{\mydepth}{\danger}%                             in order to retrieve the actual baseline
        \resizebox{!}{\myheight}{\raisebox{\mydepth}{\danger}}%     seems counterintuitive to me (I'd have resized, then raised... but well, it works, so... !)
    }

\begin{document}
    \myDanger dasdfcsdasda

    {\sffamily \myDanger dasdfcsdasda}

    {\Huge \sffamily \myDanger dasdfcsdasda}

    {\Huge \myDanger  dasdfcsdasda}

    {\Huge\myDanger{\sffamily\myDanger}}
\end{document}

在此处输入图片描述

相关内容