检测/使用标志来改变句子开头的命令行为

检测/使用标志来改变句子开头的命令行为

由于我的懒惰,我定义了一个命令来简化对表格的引用插入,这意味着它会自动插入“表格 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}}

相关内容