我正在尝试对齐以下一段文字:
*通讯作者
姓名 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}
输出是一样的。