由于我的懒惰,我定义了一个命令来简化对表格的引用插入,这意味着它会自动插入“表格 X”而不是仅插入“X”(请参阅下面的 MWE)。根据引用是否是新句子的第一部分,我想在这个字符串中触发大写 T。
有没有办法在命令中检测这是否插入在句子开头,以触发不同的行为?
或者
我如何传递标志来手动在命令中指示这一点?
我知道我也可以定义一个新命令,例如只使用大写 T 的 TTABREF,但也许我可以学到一些有关 LaTeX 功能的新知识,例如命令中的布尔标志。
低于
\documentclass{report}
\newcommand{\TABREF}[1]{table \ref{#1}}
\begin{document}
\noindent A reference to \TABREF{tab:table} within a sentence is fine.
\newline \TABREF{tab:table} referenced at the beginning of the sentence would be nice to have a capital T.
\begin{table}
\centering
\begin{tabular}{ccc}
A & B & C \\
B & C & A \\
C & A & B
\end{tabular}
\caption{A very nice table}
\label{tab:table}
\end{table}
\end{document}
答案1
\nonfrenchspacing
您可以测试空间因子。但请注意:这仅在设置为开启的特定语言(例如英语)下有效。
\def\TABREF#1{\ifhmode \ifnum\spacefactor>2999 T\else t\fi\else T\fi able \ref{#1}}