在 TikZ 节点中使用 \hphantom

在 TikZ 节点中使用 \hphantom

我正在尝试对齐以下一段文字:

*通讯作者
姓名 Nameson
[电子邮件保护]

这样下面两行就与 C 水平对齐,而不是第一行的 *。为此,我尝试了 \hphantom{*}

梅威瑟:

\documentclass[twoside]{article}
\usepackage{pgfplots}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) node[inner sep=0pt, below right, text width=\textwidth] {
                      \textsuperscript{*}Corresponding author\\
                      \hphantom{*}Name Nameson\\
                      \hphantom{*}[email protected]};
    \end{tikzpicture}
\end{document}

但这不会影响水平对齐。相反,无论我使用什么参数作为 \hphantom,它都会产生额外的换行符。

我怎样才能达到所需的对齐?

答案1

两种方法,取决于所需的对齐方式。在第一种情况下,我只需将\Longunderstack所需文本的 左对齐到 之后即可\textsuperscript{*}。在第二种情况下,我\llap\textsuperscript{*}

\documentclass[twoside]{article}
\usepackage{pgfplots,stackengine}
\setstackEOL{\\}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\setstackgap{L}{1\baselineskip}
\draw (0,0) node[inner sep=0pt, below right, text width=\textwidth] {
                      \textsuperscript{*}\Longunderstack[l]{Corresponding author\\
                      Name Nameson\\
                      [email protected]}};
    \end{tikzpicture}

    versus:\smallskip

    \begin{tikzpicture}
\draw (0,0) node[inner sep=0pt, below right, text width=\textwidth] {
                      \llap{\textsuperscript{*}}Corresponding author\\
                      Name Nameson\\
                      [email protected]};
    \end{tikzpicture}
\end{document}

在此处输入图片描述

Egreg 提到\hphantom不会启动水平模式。因此,要使用原始方法解决问题,只需在调用之前退出垂直模式\hphantom

\documentclass[twoside]{article}
\usepackage{pgfplots}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) node[inner sep=0pt, below right, text width=\textwidth] {
                      \textsuperscript{*}Corresponding author\\
                      \leavevmode\hphantom{*}Name Nameson\\
                      \leavevmode\hphantom{*}[email protected]};
    \end{tikzpicture}
\end{document}

答案2

\hphantom没有启动水平模式,事实上你得到的是空白行而不是你想要的空间。

相反\hphantom,我建议使用tabular

\documentclass[twoside]{article}
\usepackage{tikz}
\begin{document}

\noindent
\begin{tikzpicture}
\draw (0,0) node[
  outer sep=-1pt,
  inner sep=0pt,
  below right,
  text width=\textwidth
]{\begin{tabular}{@{}r@{}l@{}}
    * & Corresponding author\\
      & Name Nameson\\
      & [email protected]
  \end{tabular}
};
\end{tikzpicture}

\end{document}

在此处输入图片描述

请注意,这\textsuperscript{*}通常是错误的,因为文本模式星号已经处于凸起的位置。

如果要使用\hphantom,请\leavevmode在其前面添加。

\begin{tikzpicture}
\draw (0,0) node[
  outer sep=-1pt,
  inner sep=0pt,
  below right,
  text width=\textwidth
]{*Corresponding author\\
  \leavevmode\hphantom{*}Name Nameson\\
  \leavevmode\hphantom{*}[email protected]};
\end{tikzpicture}

输出是一样的。

相关内容