Установите заголовок рисунка Tufte внутри блока Knitr

Я использую новый пакет Tufte от Rstudio для создания отчета. Я хотел бы иметь довольно сложную заметку на полях рядом с моей фигурой. Строить заголовок в заголовке чанка довольно громоздко, поэтому я хочу установить опцию fig.cap внутри чанка.

Я попробовал это в качестве тестового случая, но, похоже, это не работает.

knitr::opts_current$set("fig.cap"="The Caption")

кто-нибудь знает, как это сделать правильно?

Был задан связанный с этим вопрос о встроенных подписях. Хотя концепции похожи, этот вопрос был очень специфичен для латексных аспектов вязания. Даже после того, как я выяснил ответ на свой вопрос, чтение этого вопроса и ответа все еще было слишком далеко, чтобы, по моему мнению, быть ответом на мой вопрос.


person jkgrain    schedule 04.02.2016    source источник
comment
Это может быть невозможно на основе этого предыдущего вопроса, если только поведение изменилось. Я думаю, что opts_current$set должен выдавать ошибку или предупреждение, а не молчать.   -  person jkgrain    schedule 04.02.2016


Ответы (1)


Я, наконец, взломал его и оставлю ответ, чтобы, надеюсь, сэкономить некоторым другим несколько часов исследовательского времени.

knitr::opts_current$set

ничего не делает. вы можете использовать

knitr::opts_current$get

чтобы прочитать текущие настройки чанка. Настройки текущего чанка можно задать только в заголовке чанка.

Чтобы решить мою проблему нежелания вставлять сложную подпись в заголовок, я использовал следующие фрагменты:

  1. Установите параметр пакета для оценки подписи после создания рисунка с помощью этого:

    knitr::opts_knit$set(eval.after = 'fig.cap')
    
  2. В заголовке чанка включите что-то вроде этого:

    fig.cap=varName
    
  3. Внутри фрагмента установите varName на значение, которое вы хотите для подписи к рисунку.

    varName <- paste("This is a sample caption evaluated on", Sys.Date(), sep=" ")
    

Я еще не играл с несколькими рисунками и подписями в одном фрагменте, поэтому я не уверен, как это может работать, но это определенно работает для фрагмента с одним рисунком.

person jkgrain    schedule 04.02.2016
comment
Супер. Спасибо за документирование того, что вы узнали. - person Josh O'Brien; 13.02.2016