Я использую Lyx 2.1.2 с knitr на системе Fedora 20 x86_64. Я не уверен, как определить версию knitr, но она, безусловно, работает, как правило, обеспечивая очень хорошие результаты. Однако я вижу две проблемы: (1) Если я включаю final @ в любой фрагмент, он появляется буквально в тексте. Естественно, я не возражаю, если мне не нужно добавлять окончательный @. Во всяком случае, это подразумевает конец куска. Однако (2), если я НЕ включаю final @ в Chunk 3 (см. Ниже), тогда весь текст документа между кусками 3 и 4 исчезает из выхода PDF.Отсутствует текст в PDF после R chunk в Lyx/knitr
При создании минимального примера (извините за то, что он не был отправлен ранее), я обнаружил, что ключом к поведению является наличие среднего вертикального прохода сразу после фрагмента 3. Если я удалю его, текст документа будет выход просто отлично.
Я не вижу способа прикреплять файлы к этому сообщению, поэтому я включу их в текст. Просто дайте мне знать, есть ли лучший способ опубликовать примеры. Этот файл minimal.lyx:
#LyX 2.1 created this file. For more info see http://www.lyx.org/
\lyxformat 474
\begin_document
\begin_header
\textclass article
\use_default_options true
\begin_modules
knitr
\end_modules
\maintain_unincluded_children false
\language american
\language_package default
\inputencoding auto
\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_math auto
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize default
\spacing single
\use_hyperref false
\papersize a4paper
\use_geometry false
\use_package amsmath 1
\use_package amssymb 1
\use_package cancel 1
\use_package esint 1
\use_package mathdots 1
\use_package mathtools 1
\use_package mhchem 1
\use_package stackrel 1
\use_package stmaryrd 1
\use_package undertilde 1
\cite_engine basic
\cite_engine_type default
\biblio_style plain
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\justification true
\use_refstyle 1
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 2
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header
\begin_body
\begin_layout Standard
\begin_inset Flex Chunk
status open
\begin_layout Plain Layout
<<import-external-code,echo=FALSE>>=
\end_layout
\begin_layout Plain Layout
read_chunk('mini.R')
\end_layout
\end_inset
\end_layout
\begin_layout Section
Section A
\end_layout
\begin_layout Standard
Some text
\end_layout
\begin_layout Standard
\begin_inset Flex Chunk
status open
\begin_layout Plain Layout
<<Mini1,echo=FALSE>>=
\end_layout
\end_inset
\begin_inset VSpace medskip
\end_inset
\end_layout
\begin_layout Standard
Explanation of first graph
\end_layout
\begin_layout Subsection
Subsection A1
\end_layout
\begin_layout Standard
Some text
\end_layout
\begin_layout Standard
\begin_inset Flex Chunk
status open
\begin_layout Plain Layout
<<Mini2,echo=FALSE>>=
\end_layout
\end_inset
\end_layout
\begin_layout Standard
Explanation of second graph
\end_layout
\end_body
\end_document
ссылаются, R-код (mini.R) тривиальна:
# ---- Mini1
print("Hello World")
# ---- Mini2
print("Where did the explanation of the first graph go?")
Это выход minimal.tex из pdflatex:
\batchmode
\makeatletter
\def\[email protected]{{/home/loga/bug//}}
\makeatother
\documentclass[a4paper,twoside,american]{article}\usepackage[]{graphicx}\usepackage[]{color}
%% maxwidth is the original width if it is less than linewidth
%% otherwise use linewidth (to make sure the graphics do not exceed the margin)
\makeatletter
\def\maxwidth{ %
\ifdim\[email protected]@width>\linewidth
\linewidth
\else
\[email protected]@width
\fi
}
\makeatother
\definecolor{fgcolor}{rgb}{0.345, 0.345, 0.345}
\newcommand{\hlnum}[1]{\textcolor[rgb]{0.686,0.059,0.569}{#1}}%
\newcommand{\hlstr}[1]{\textcolor[rgb]{0.192,0.494,0.8}{#1}}%
\newcommand{\hlcom}[1]{\textcolor[rgb]{0.678,0.584,0.686}{\textit{#1}}}%
\newcommand{\hlopt}[1]{\textcolor[rgb]{0,0,0}{#1}}%
\newcommand{\hlstd}[1]{\textcolor[rgb]{0.345,0.345,0.345}{#1}}%
\newcommand{\hlkwa}[1]{\textcolor[rgb]{0.161,0.373,0.58}{\textbf{#1}}}%
\newcommand{\hlkwb}[1]{\textcolor[rgb]{0.69,0.353,0.396}{#1}}%
\newcommand{\hlkwc}[1]{\textcolor[rgb]{0.333,0.667,0.333}{#1}}%
\newcommand{\hlkwd}[1]{\textcolor[rgb]{0.737,0.353,0.396}{\textbf{#1}}}%
\usepackage{framed}
\makeatletter
\newenvironment{kframe}{%
\def\[email protected]@[email protected]{}%
\ifinner\ifhmode%
\def\[email protected]@[email protected]{\end{minipage}}%
\begin{minipage}{\columnwidth}%
\fi\fi%
\def\FrameCommand##1{\hskip\@totalleftmargin \hskip-\fboxsep
\colorbox{shadecolor}{##1}\hskip-\fboxsep
% There is no \\@totalrightmargin, so:
\hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
\MakeFramed {\advance\hsize-\width
\@totalleftmargin\[email protected] \linewidth\hsize
\@setminipage}}%
{\par\unskip\endMakeFramed%
\[email protected]@[email protected]}
\makeatother
\definecolor{shadecolor}{rgb}{.97, .97, .97}
\definecolor{messagecolor}{rgb}{0, 0, 0}
\definecolor{warningcolor}{rgb}{1, 0, 1}
\definecolor{errorcolor}{rgb}{1, 0, 0}
\newenvironment{knitrout}{}{} % an empty environment to be redefined in TeX
\usepackage{alltt}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\pdfpageheight\paperheight
\pdfpagewidth\paperwidth
\makeatother
\usepackage{babel}
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\begin{document}
\section{Section A}
Some text
\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}\begin{kframe}
\begin{verbatim}
## [1] "Hello World"
\end{verbatim}
\end{kframe}
\end{knitrout}
\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}\begin{kframe}
\begin{verbatim}
## [1] "Where did the explanation of the first graph go?"
\end{verbatim}
\end{kframe}
\end{knitrout}
Explanation of second graph
\end{document}
Как вы можете видеть, объяснение первого графика, заголовка подраздела и исходного текста в подразделе A1 не отображается в выводе. Он просто перескакивает на выход из Chunk 4. Отсутствующий текст восстанавливается в выходном файле, если я либо (a) добавляю символ «@» в конец Chunk 3, либо удаляю MedSkip после Chunk 3. Итак, кажется, что есть ошибка там где-то ...
Просто скажите, если что-нибудь еще поможет!
Пожалуйста, напишите * оба * минимальный пример '.lyx' и файл' .tex', который вы получаете при экспорте в 'LaTeX (pdflatex)'. См. Здесь для получения дополнительной информации: wiki.lyx.org/FAQ/MinimalExample – scottkosty
Я обновил публикацию, чтобы включить минимальный пример, но теперь я думаю, что это проявление более общей проблемы Lyx, связанной с объектами, которые появляются сразу после куска. В приведенном выше случае это вертикальный промах, однако такое же явление возникает, если вы вставляете кусок в ячейку таблицы. Я добавлю еще одну запись с примером этой ситуации. – user4294565
Благодарим вас за MWE. Вы правы в этом, имея отношение к вертикальному пространству. – scottkosty