我想使用宏来构建表格,以便将音节与其他文本对齐。为了完成这项任务,我定义了一个没有列分隔的表格。然而,如果用 & 符号连接,这会导致单词粘在一起。
用xstring
and替换对orStrSubstitute
之类的宏不起作用,并且奇怪地产生错误。自然简单的书写空格会被表格环境忽略。如何插入空格?\hspace
\phantom
\,
这是一个虚拟示例。首先,一个没有替换的版本。然后是一个有替换的\,\,
版本。最后,是想要的结果。对我来说,这个示例编译时会出现有关在 Overleaf 中插入缺失的错误}
。但它确实产生了正确的结果。
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\RequirePackage{xstring}
\begin{document}
\begin{tabular}{@{}*{8}{l@{}}}
Wo-&ah we're & half way there, && Wo-&oah & livin' on a prayer \\
{\StrSubstitute{Wo-&ah we're & half way there, && Wo-&oah & livin' on a prayer}{& }{&\,\,}} \\
\end{tabular}
Wo-ah we're half way there, Wo-oah livin' on a prayer
\end{document}
它看起来是这样的:
答案1
保存替换后的字符串并使用它;您需要一个小\expandafter
技巧和括号来隐藏&
对齐;我们在组结束之前\expandafter
进行扩展。\temp
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{xstring}
\begin{document}
\begin{tabular}{@{}*{8}{l@{}}}
Wo-&ah we're & half way there, && Wo-&oah & livin' on a prayer \\
\noexpandarg
{\StrSubstitute{Wo-&ah we're & half way there, && Wo-&oah & livin' on a prayer}
{& }{&\,\,}[\temp]\expandafter}\temp \\
\end{tabular}
Wo-ah we're half way there, Wo-oah livin' on a prayer
\end{document}