我正在寻找一种方法来创建一个新命令,使该行上的文本变为红色(或以另一种方式清晰区分)。
就像 % 符号注释掉一行。这样工作的命令可能吗?我想制作打印的简短注释,并且不想每次都打开和关闭括号。
答案1
为了这个目的,使用“分隔”参数更容易,使用\def
。
不要使用\par
作为分隔符(这将导致段落中断,而这可能并不总是我们所希望的),您可以选择一个%
不会出现在您的注释文本中的非字符。如果|
是这样的字符,那么应该可以工作:
\def\bla#1|{\textcolor{red}{#1}}
即使\bla
不开始新行,并且整个注释嵌入在文本块中,这种方法也应该有效。
(@Bordaigorl 在评论中提出了正确的想法,但\par
可能过于局限。)
在这个问题的答案中给出了对这种方法的一些补充评论:\renewcommand 用于使用 \def 定义的命令。
答案2
下面的宏\HighlightRestOfCurrentLine
可以让你突出显示到末尾当前的线:
参考:
- 标记文本部分的其他方法可参见用于在视觉上区分文本的环境
笔记:
这确实需要运行两次。第一次确定位置,第二次进行绘制。不过我觉得这应该只需运行一次就可以完成。
这魔法用于确定页面边缘的数字是通过
\layout
使用包裹layout
。来自
\tikzmark
在正文旁边添加大括号。
代码:
\documentclass{article}
%\usepackage{layout}
\usepackage{tikz}
\usetikzlibrary{calc}
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node[baseline] (#1) {};}
\newcommand{\HighlightRestOfCurrentLine}[1][]{%
\tikzmark{Start}%
\begin{tikzpicture}[overlay,remember picture]
\coordinate (EdgeOfText) at ($(current page.west |- 0,0) + (1.0in+\hoffset+\oddsidemargin+\textwidth,0.3ex) + (0.1em,1.6ex)$) ;
\draw [draw=none,fill=green!50, #1] ($(Start)+(0,-0.6ex)$) rectangle (EdgeOfText);
\end{tikzpicture}
}%
\begin{document}%\layout
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at dignissim eros.
Morbi faucibus sit amet felis a accumsan. \HighlightRestOfCurrentLine Aliquam
dapibus pellentesque dui, vitae aliquam turpis semper eget.
Donec egestas leo nibh, at malesuada leo congue non.
Cras laoreet lectus sed tortor laoreet, ac aliquet nibh condimentum.
Nam elementum ante non nunc facilisis porttitor. Nullam non suscipit lorem.
Sed arcu dui, accumsan et pretium dictum, venenatis id metus.
Mauris massa lacus, vehicula
vitae \HighlightRestOfCurrentLine[fill=none,draw=gray, ultra thick] blandit ac,
fermentum vitae ligula. Maecenas ultricies, tortor a sodales ullamcorper,
erat lorem semper leo, vel pretium felis arcu ut velit. Aenean viverra
lacus at nisi malesuada luctus. Maecenas libero odio, luctus et blandit
vitae, commodo in turpis. Duis nisi enim, gravida id libero id,
sollicitudin volutpat purus. Curabitur rhoncus risus euismod arcu venenatis,
\HighlightRestOfCurrentLine[red!25]non elementum mi lobortis.
Pellentesque quis leo eu nunc malesuada condimentum. Ut dictum iaculis
aliquam. Nunc tincidunt a ligula in adipiscing. Praesent
\HighlightRestOfCurrentLine[fill=none,draw=blue, dotted, ultra thick]ultricies sem
odio, eget pellentesque mi faucibus vitae. Class aptent taciti sociosqu
ad litora torquent per conubia nostra, per inceptos himenaeos.
Sed ullamcorper massa risus, non commodo dolor eleifend quis.
Mauris ultrices lorem a orci hendrerit tempor. Sed fringilla mattis fringilla.
\end{document}