Вопрос

Я использую \todo команда от \todonotes посылка.Я бы хотел расположить свой исходный код так, чтобы поместить \todos отдельно от предыдущего абзаца:

Some text.

\todo{make note}

Но я не хочу \todo чтобы начать новый абзац, иначе это приведет к увеличению интервала в документе.

Есть ли команда, чтобы избежать этого?

Если бы существовала команда / пакет для использования пробела до нее, тогда я мог бы переопределить \todo чтобы использовать его.

Редактировать: Добавление % между всем, очевидно, очень раздражает.Что-нибудь еще?

Это было полезно?

Решение

Я должен согласиться со всеми остальными, что вам, вероятно, следует просто добавить %, но я действительно нахожу этот вопрос интересным.Проблема в том, что как только LaTeX считывает пустую строку, она преобразуется в \par команда, которая завершает предыдущий абзац.В начале \todo, что \par команда уже была выполнена, и отменить ее невозможно (я думаю).Так что ваша единственная надежда - сохранить это \par от того, что он был вставлен или вел себя так, как обычно.Если вы хотите предотвратить его вставку, вы могли бы попробовать прочитать главу 8 "The TeXbook", в которой должно быть рассказано, как пустая строка преобразуется в \par.В качестве альтернативы, вы могли бы попытаться создать решение, основанное на идее следующего рода:

Some text.{\let\par\relax

\todo{make note}}

Но будьте осторожны!Ты определенно не хочешь глобально измените поведение \par, именно поэтому я добавил дополнительную пару фигурных скобок (область действия команд LaTeX ограничена, поэтому новое определение \par вступает в силу только внутри группы, в которой было сделано определение).Удачи.

Другие советы

Когда макрос предшествует нежелательному пробелу, % не требуется, если вы используете \@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 между двумя строками.

Попробуй это:

Some text.
%
\todo{make note}

возможно, вам не следует оставлять новую строку между текстом и заметкой о задаче или просто комментировать ее

Some text.
%
\todo{make note}

Как насчет

Some text.
%
\todo{make note}
%
some more text

Установить \endlinechar=-1 чтобы пустые строки не имели никакого эффекта.Вам нужно будет использовать \par для разделения абзацев, что, я думаю, вызывает большее раздражение, чем необходимость печатать % на разделительных линиях, но это то, о чем вы просите.

Как насчет того, чтобы сохранить все, над чем еще предстоит поработать, внутри тегов \ def, а затем удалить это и переместить в сам документ, когда больше нечего будет делать?

Например.

\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 как в исходном тексте буквально, так и

в выходных данных.

просто укажите \ todo прямо в середине вашего текста.никакого разрыва строки, ничего.

бла-бла-бла текст \ todo {Сделай это сейчас!} еще текст бла-бла-бла.

на моем компьютере (win xp, miktex 2.7, texniccenter) это работает нормально, не приводит к разрыву строки и помещает примечание о задаче на полях...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top