Как я могу сохранить начальный пробел в строке при написании документации Rd?
В связи с попыткой найти для себя решение по этому вопросу, я обнаружил, что пытаюсь написать правильную разметку Rd. Я хочу добавить раздел с именем Raw Function Code
и поместите код функции под ним. Я достиг ограниченного успеха в этом отношении, написав скрипт для изменения файлов Rd, чтобы включить
\section{Raw Function Code}{\code{
# some piece of R script will eventally provide this part of the text
}}
Однако, даже если я вручную правильно разместил текст в файле.Rd (используя пробелы или символы табуляции), начальный пробел каждой строки, кажется, удаляется, оставляя нежелательную функцию. Я заметил, что если я предоставлю начальный символ перед пробелом, пробел останется. Однако я не хотел указывать начальный символ, потому что хотел бы, чтобы люди могли копировать и вставлять их непосредственно из созданного PDF-файла.
Я просмотрел parseRd и знаю, что существует три типа текста LaTeX-подобный, R-подобный и дословный. Я попытался поместить свой код функции в \code и в \verb, и ни один из них не дал желаемых результатов. Что я могу сделать, чтобы удержать мой начальный пробел?
3 ответа
\section
макрос содержит текст типа LaTeX, но так как вы хотите написать код, вы можете использовать \synopsis
макрос, т.е.
\synopsis
# some piece of R script will eventally provide this part of the text
}
Есть одна проблема с этим, хотя; Вы не можете дать имя этому разделу, он автоматически будет назван как другой раздел использования. То же самое может быть достигнуто с помощью \examples
макрос, но теперь название раздела - "Примеры", что, вероятно, еще более сомнительно (не говоря уже о том, что у вас, вероятно, уже есть раздел "Примеры").
Это невозможно без изменения разделов использования или примеров вашего кода Rd. Смотрите ответ Hemmo для полезного обходного пути. Он производит текст в режиме дословного ввода, который является неоптимальным, но гораздо лучше, чем ничего.
(Этот ответ задается сообществом Wiki на случай, если ситуация изменится. Этот результат актуален по состоянию на R-2.15.1)
Если вы хотите супер хакерский способ сделать это, вы можете использовать \Sexpr
сделать символы нулевой ширины и добавить пробелы между ними:
#' first line \cr
#'\Sexpr{"\u200B"} \Sexpr{"\u200B"} \Sexpr{"\u200B"} \Sexpr{"\u200B"} indented line
Предупреждение, однако, - ваш пакет будет работать нормально, но R CMD CHECK подойдет.