<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}
或者你可以使用计数器定义不同级别的“强”:
\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
\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
或另一个使用 的语义命令\textbf
。beamer
然而, 类 做了一些接近的事情:除了 之外\emph
,它还定义了\alert
以红色显示其参数。