变更包中的注释为单倍行距,文档为双倍行距

变更包中的注释为单倍行距,文档为双倍行距

我正在使用该changes软件包进行评论。即使文档本身是双倍行距,是否可以将评论设置为单倍行距?

梅威瑟:

\documentclass{article}
\usepackage{changes}
\usepackage{lipsum}

\linespread{2}

\begin{document}

\lipsum[1-1][1-3]\comment{I would like this comment to be single-spaced.} \lipsum[1-1][4-6]

\end{document}

输出:

在此处输入图片描述

答案1

您很可能希望所有边注均为单倍行距。

\documentclass{article}
\usepackage{changes,etoolbox}

\usepackage{lipsum}

\makeatletter
\preto\@marginparreset{\linespread{1}}
\makeatother

\linespread{2}

\begin{document}

\lipsum[1-1][1-3]\comment{I would like this comment to be single-spaced.}
\lipsum[1-1][4-6]

\end{document}

在此处输入图片描述

解释:\@marginparreset是 LaTeX 内核提供的钩子,用于在开始排版边距段落之前进行初始化(由changes包内部使用)。

答案2

使用这个答案我试过

\documentclass{article}
\usepackage{changes}
\usepackage{lipsum}
\linespread{2}

\begin{document}
\lipsum[1-1][1-3]\renewcommand*{\baselinestretch}{1}\comment{\selectfont  
I would like this comment to be single-spaced.} 
\lipsum[1-1][4-6]

\end{document}

在此处输入图片描述

这似乎有效。如果你决定采用这种方法,那么显然可以通过将其修补到 中使其更加自动化和更安全\comment。你可以从 中查找其定义changes.sty并重新定义它,如下所示:

\documentclass{article}
\usepackage{changes}
\usepackage{lipsum}
\linespread{2}
\makeatletter
\renewcommand*{\comment}[2][\@empty]{%
\edef\oldbaselinestretch{\baselinestretch}%
\typeout{\oldbaselinestretch}%
\renewcommand*{\baselinestretch}{1}%
\setkeys{Changes@comment}{#1}%
\Changes@output%
{comment}%
{\Changes@comment@id}%
{}%
{}%
{\selectfont #2}%
{\changescommentname}%
{\selectfont #2}%
\renewcommand*{\baselinestretch}{\oldbaselinestretch}%
}
\makeatother
\begin{document}
\lipsum[1-1][1-3]\comment{I would like this comment to be single-spaced.} 
\lipsum[1-1][4-6]

\selectfont
\lipsum[1-1]

\end{document}

相关内容