以非逐字格式在文本上方和下方添加行(不是方框)(类似于逐字)

以非逐字格式在文本上方和下方添加行(不是方框)(类似于逐字)

这是上一个问题的后续问题问题在 SE 上,有人建议我创建一个新问题。

问题:如何在上方和下方添加线条(不是方框)非逐字 文本同时保留对所有传统 LaTeX 的访问权限文本属性包括但不限于字体系列、字体形状(包括斜体、粗体等)、文本颜色等。

这将包括控制上下线(一起或单独)属性的能力,包括但不限于线厚度分离(上方和/或下方,一起或单独)文本中的行,颜色)线路(一起或分开,单一或渐进),以及填充颜​​色(单一或渐进)在字里行间。

我审阅过的众多 SE 问题和答案确实不是符合我要寻找的标准。

我已经能够通过以下方式满足上述一些要求:逐字幻想VRB在以下 MWE 中:

\documentclass[varwidth]{article}
\usepackage{fancyvrb}
\usepackage{varwidth}
\usepackage{verbatim}
\usepackage{xcolor}

\begin{document}

{\centering
\begin{varwidth}{0.33\linewidth}
\begin{Verbatim}[commandchars=\\\{\}, fontfamily=courier, fontshape=it, numbers=none, frame=lines, framerule=0.7mm, framesep=3mm, rulecolor=\color{red}, fillcolor=\color{yellow}]
\textbf{Source} \textrightarrow \textbf{Migration}
\end{Verbatim}
\end{varwidth}
\par}

\end{document}

结果是:

在此处输入图片描述

然而,如果我尝试替代$\rightsquigarrow$为了\textrightarrow,我收到以下 LaTeX 错误:

Undefined control sequence.
<argument> Source $\rightsquigarrow 
                                    $ Migration
l.12 Source $\rightsquigarrow$ Migration

因此由于某种原因,我尝试插入等效于内联方程的内容导致错误。

另外,我尝试填补空白在使用上述方法时,两行之间的填充(例如 fillcolor=\color{yellow})会失败逐字幻想VRB代码。

正如上文所述问题在 SE 上,我试图重现 Thomas F. Sturm 博士的sanitize-umlaut 包为了逐字 文本

Sturm 的逐字文本

但对于简单、普通的非逐字 文本(例如 \textbf{},$<equation>$等等)。

我正在寻找一种方式来呈现文本采用 Sturm 文档中的格式(如上所示)没有我在使用过程中遇到的限制逐字基于代码。

(特别感谢 egreg 和 Marcel Krüger 的帮助!)

谢谢阅读。

答案1

尝试这个

\documentclass[varwidth]{article}
\usepackage{fancyvrb}
\usepackage{amssymb}
\usepackage{varwidth}
\usepackage{verbatim}
\usepackage{xcolor}

\begin{document}

{\centering
\begin{varwidth}{0.33\linewidth}
\begin{Verbatim}[commandchars=\\\{\}, codes={\catcode`\$=3},fontfamily=courier, fontshape=it, numbers=none, frame=lines, framerule=0.7mm, framesep=3mm, rulecolor=\color{red}, fillcolor=\color{yellow}]
\textbf{Source} $\rightsquigarrow$ \textbf{Migration}
\end{Verbatim}
\end{varwidth}
\par}

\end{document}

我做了两个更改,首先是我加载了\usepackage{amssymb}提供\rightsquigarrow符号的程序。其次是我通过调用启用了数学模式codes={\catcode`$=3},如 fancyvrb 文档(Catcode 字符部分 4.1.17)中所述:

在此处输入图片描述


实际上,再次阅读你的问题:如果你不想使用逐字,为什么要使用fancyvrb使用? 如果你只想画一个带有线条和颜色的框,可以使用类似mdframed而是。例如(我尽力重现了您列出的框架设置。)

\documentclass[varwidth]{article}
\usepackage{xcolor}
\usepackage{mdframed}
\usepackage{amssymb}
\usepackage{varwidth}

\begin{document}

{\centering
\begin{varwidth}{0.33\linewidth}
        \begin{mdframed}[skipabove=3mm,skipbelow=3mm,linecolor=red,backgroundcolor=yellow,linewidth=0.7mm,leftline=false,rightline=false]
                \textbf{A} $\rightsquigarrow$ \textsc{b}
        \end{mdframed}
\end{varwidth}
\par}

\end{document}

产生

在此处输入图片描述


看了你之前的问题和链接的参考文件,你似乎想用它来创建一个内联突出显示效果?在这种情况下,你应该使用tcolorbox

\documentclass{article}

\usepackage{amssymb}
\usepackage[skins]{tcolorbox}

\newtcbox{\myhl}{nobeforeafter,tcbox raise base,toprule=2pt, bottomrule=2pt, leftrule=0pt, rightrule=0pt, top=1mm,bottom=1mm,
  right=1pt,left=1pt,arc=0pt,boxsep=0pt,
  colframe=red,colback=yellow!10!white}

\MakeRobust\myhl


\begin{document}

Some text before \myhl{\textbf{A} $\rightsquigarrow$ \textsc{b}} some text after


\end{document}

这使

在此处输入图片描述

来自 OP 的更新:我从一开始就寻找的最新图像:

最新的带线条的文本图像。

太棒了!谢谢 Willie Wong!!

相关内容