突出显示 LaTeX 文章中的任何内容

突出显示 LaTeX 文章中的任何内容

我正在寻找一个可以突出显示的包/命令任何事物我用它来包装。目前我发现最接近的东西是soul但它有很多缺点:

  • 无分区突出显示
  • 没有自动脚注突出显示
  • \cite突出显示,除非包裹在\mbox{}
  • \citep突出显示

以下是可以看到这些要点的示例文章:

\documentclass{article}
\usepackage{hyperref}
\hypersetup{colorlinks=true, urlcolor=blue, citecolor=cyan, pdfborder={0 0 0},}
\usepackage{soul}
\usepackage{natbib}
\bibliographystyle{plainnat}

\begin{document}

\section{\hl{Title of a section}}

This is a line with no highlighting done.\\
\hl{This is a line where a citation \citep{Knuth86} appears.}
\hl{This is a line with a footnote\footnote{And this is the footnote that should also be automatically highlighted.} which I want highlighted.}

\bibliography{biblio}

\end{document}

文件如下biblio.bib所示:

@ARTICLE{Knuth86,
   author = {Knuth, D. E.},
    title = "{The TeXbook}",
    year = 1986,
}

如果你尝试用通常的方法编译它:

pdflatex "%f" && bibtex "%e" && pdflatex "%f" && pdflatex "%f"

命令,它会因我上面给出的所有原因而失败。难道没有什么东西刚刚起作用


编辑

接受的答案很接近,但在发现latexdiffhttp://www.ctan.org/pkg/latexdiff)我实际上已经改用该应用程序,而不是手动突出显示文本。

答案1

这只是一个部分解决方案 而且它不能很好地跨行工作,但如果您将突出显示命令替换为

\usepackage{tcolorbox}
\newtcbox{\hl}[1][yellow]{on line, arc=7pt,colback=#1!10!white,colframe=#1!50!black,
  before upper={\rule[-3pt]{0pt}{10pt}},boxrule=1pt, boxsep=0pt,left=6pt,
  right=6pt,top=2pt,bottom=2pt}

那么我认为突出显示几乎按照 OP 想要的方式工作:

在此处输入图片描述

主要问题是根本\footnote没有出现。(原帖作者可能也会抱怨,\citep但由于包装规格似乎缺失,所以我只是使用\usepackage[numbers]{natbib}并继续使用。)

\footnotemark您可以通过手动使用和来使脚注正确显示,并进行所需的突出显示\footnotetext

\hl{This is a line with a footnote\footnotemark which I want highlighted.}
\footnotetext{\hl{And this is the footnote that should also be 
      automatically highlighted.}}

现在产生了缺失的脚注:

在此处输入图片描述

原帖作者无疑更希望自动处理脚注。我认为这应该是可以安排的,尽管突出显示的文本部分中的多个脚注可能会引起问题。我现在没有时间这样做,但如果没有其他人找到解决方案,我会尝试明天查看。

答案2

您需要小心stomach commands在章节标题中使用可选参数。这有效。您还遇到了来自“natbib”的问题\citep{},这是您在 MWE 中遗漏的。

\documentclass{article}
\usepackage{hyperref}
\hypersetup{colorlinks=true, urlcolor=blue, citecolor=cyan, pdfborder={0 0 0},}
\usepackage{soul}

\begin{document}

\section[title of section]{\hl{Title of a section}}

This is a line with no highlighting done.\\
\hl{This is a line where a citation \protect\cite{Knuth86} appears.}
\hl{This is a line with a footnote\footnote{\protect\hl{And this is the footnote that should also be automatically highlighted.}} which I want highlighted.}

\begin{thebibliography}{1}
\bibitem{Knuth86} D.E. Knuth, The TeXbook, 1986
\end{thebibliography}

\end{document}

检查一下文章关于hyperref's命令的一些非常好的提示。

相关内容