LaTeX 是否定义了 \textbf 的语义等价物?

LaTeX 是否定义了 \textbf 的语义等价物?

<em>在 HTML 中,语义标记和<i>纯格式标记之间存在区别。LaTeX 也有相同的区别:\emph是语义标记,使用 呈现\textit

<strong>HTML 还包括和之间的类似区别<b>。LaTeX 是否定义了使用来呈现的语义命令(例如\strong{...},但它不存在)\textbf

编辑:在非常相似的行上,LaTeX 是否定义了一个语义命令,就像\quote{...}将使用引号(某种首选类型)进行渲染一样?(HTML 有<q>。)

答案1

您可以定义自己的\strong命令,在强文本和普通文本之间切换,就像\emph斜体一样:

\documentclass{article}

\makeatletter
\newcommand{\strong}[1]{\@strong{#1}}
\newcommand{\@@strong}[1]{\textbf{\let\@strong\@@@strong#1}}
\newcommand{\@@@strong}[1]{\textnormal{\let\@strong\@@strong#1}}
\let\@strong\@@strong
\makeatother

\begin{document}

Text \strong{strong text \strong{strong2 \strong{st-\strong{st}-st}  yyy } xxxx} after

\end{document}

结果1


或者你可以使用计数器定义不同级别的“强”:

\documentclass{article}
\usepackage{xcolor}

\newcounter{stronglevel}
\setcounter{stronglevel}{1}
\newcommand{\strong}[1]{%
    \csname strong\roman{stronglevel}\endcsname{{%
        \advance\value{stronglevel} by 1\relax
        #1%
    }}%
}
\newcommand{\strongi}[1]{\textbf{#1}}
\newcommand{\strongii}[1]{{\blendcolors*{!50!red}\color{.}#1}}
\newcommand{\strongiii}[1]{\textsf{#1}}
\newcommand{\strongiv}[1]{{\blendcolors*{!50!red}\color{.}#1}}

\begin{document}

Text \strong{strong text \strong{strong2 \strong{st-\strong{st}-st}  yyy } xxxx} after \strong{next}.

\end{document}

结果2

答案2

\emph并不总是呈现为\textit。如果您嵌套\emph命令,它会在直立和斜体之间切换:

\documentclass{article}
\begin{document}
abc \emph{some text \emph{emph} some text}
\end{document}

并且没有类似的命令可以在粗体和正常之间切换,但是定义起来很容易。只需从 latex.ltx 中复制\em和的定义即可。\emph

答案3

第一个问题的答案是“不,但做起来很容易”。只需将其添加\let\strong\textbf到您的序言中即可。

第二个问题的答案是“不,但是有一个包可以以非常聪明的方式做到这一点”。csquotes定义\enquote哪个做你想做的事情。

答案4

正如 Seamus 和 Ulrike 指出的那样,LaTeX 核心并未定义\strong或另一个使用 的语义命令\textbfbeamer然而, 类 做了一些接近的事情:除了 之外\emph,它还定义了\alert以红色显示其参数。

相关内容