我使用\todo
包中的\todonotes
命令。我想布置我的源代码,将\todos
与上一段分开:
Some text.
\todo{make note}
但我不希望\todo
开始新的段落,或者它会弄乱文档的间距。
是否有命令要避免这种情况?
如果有一个命令/包来消耗它的空格,那么我可以重新定义\todo
来使用它。
编辑:在所有内容之间添加%显然非常烦人。还有什么吗?
答案 0 :(得分:9)
我必须同意其他人你应该添加%
,但我觉得这个问题很有意思。问题是,一旦LaTeX读取空行,它就会转换为\par
命令,该命令结束前一段。在\todo
开始时,\par
命令已经执行,并且无法撤消它(我认为)。所以你唯一的希望是保持\par
不被插入或者像通常那样表现。如果您想阻止它被插入,您可以尝试阅读“The TeXbook”的第8章,它应该告诉您如何将空行转换为\par
。或者,您可以尝试根据以下类型的想法制定解决方案:
Some text.{\let\par\relax \todo{make note}}
但请注意!你肯定不希望全局改变\par
的行为,这就是为什么我添加了一对额外的花括号(LaTeX命令是作用域的,因此{{1}的新定义只在定义的组内生效)。祝你好运。
答案 1 :(得分:9)
当宏在不需要的空间之前时,如果你使用\ @ifnextchar和\ @gobble,则不需要%。
考虑类似的事情(当然在序言中):
\makeatletter
\let\oldtodo\todo
\renewcommand\todo[1]{%
\oldtodo{#1}%
\@ifnextchar\par{\@gobble}{}}
\makeatother
这样,如果你有类似的东西:
\todo{Stuff}
Things
它的行为与
相同\todo{Stuff}
%
Things
或
\todo{Stuff}
Things
您可以使用像
这样的宏来概括这些事情\makeatletter
\newcommand\gobblepars{%
\@ifnextchar\par%
{\expandafter\gobblepars\@gobble}%
{}}
\makeatother
然后,您可以在任何想要占用空间的地方使用\gobblepars
(就像在todo之后)。您还可以重新定义待办事项(如上所示),以便自动在其后面放置\gobblepars
。
处理前导空白区域。你也可以使用\gobblepars
,但你必须明确。例如:
Some text\gobblepars
\todo{Stuff}
将阻止\ par显示在两行之间。
答案 2 :(得分:4)
试试这个:
Some text. % \todo{make note}
答案 3 :(得分:3)
可能是你不应该在文本和待办事项之间留下新的界限或只是评论
Some text.
%
\todo{make note}
答案 4 :(得分:2)
怎么样
Some text.
%
\todo{make note}
%
some more text
答案 5 :(得分:2)
设置\endlinechar=-1
以使空行无效。您需要使用\par
来分隔段落,我认为这比在分隔线上键入%
更令人恼火,但这就是您所要求的。
答案 6 :(得分:1)
如果还没有工作,那么保留仍然有工作的内容在\ def标签内部进行,然后将其移除并在没有其他工作要做的情况下将其移动到文档中?
E.g。
\def \par1
{
It was the best of times, it was the
}
\def \par2000
{
"Repression is the only lasting philosophy. The dark deference of fear and slavery, my friend," observed the Marquis
}
\def \paridunno
{
The end
}
查尔斯狄更斯的“双城记”
\par1
\todo{write a whole bunch of pages}
\par2000
\todo{Visit ghost of Christmas future, copy pages from finished book}
\paridunno
\todo{Think of a better ending}
这样做的另一个好处就是在字面上给你一个\ listoftodos和
在输出中。
答案 7 :(得分:0)
只需将\ todo直接包含在文本中间即可。没有换行,没有什么。
blat blah blah text \ todo {现在就这样做!}更多文字等等等等。在我的电脑上(win xp,miktex 2.7,texniccenter)这个工作正常,不会产生换行符,并将todo音符放在边缘。 。 。