Ошибка создания PDF-файла, если уценка содержит горизонтальную линейку: или ***

Когда мой файл Markdown содержит горизонтальную линейку --- или *** я получаю сообщение об ошибке \ Linethickness -> \ Protect

Я понимаю, что в последнее время были проблемы с MiKTeX, однако я не уверен, применимы ли они здесь.

У меня возникла эта проблема со вчерашнего утра, когда я играл, пытаясь заставить пакет шрифтов Lato работать с набором файлов Markdown, которые мне нужно преобразовать в PDF. Он работал нормально (кроме проблемы со шрифтом).

Это могло произойти, когда я обновил MiKTeX, хотя в то время я не понимал, что это может быть так, поскольку я также играл с шаблонами, YAML, PS Script и т. Д.

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

Это заставляет меня сомневаться, связано ли это, но я относительно новичок в Tex, Markdown и т. Д.

Исходный файл был длиннее и сложнее, но этот Markdown

# Sample File
Test Test Test

---

Выдает ту же ошибку

Error producing PDF.
! Missing number, treated as zero.
<to be read again>
                   \protect
\linethickness ->\protect
                          \linethickness
\setlength #1#2->#1 #2
                      \relax
\@rule ...@tempdimb {#2}\setlength \@tempdimc {#3}
                                                  \advance \@tempdimc \@temp...
l.362 ...nter}\rule{0.5\linewidth}{\linethickness}

Удаление --- позволяет создавать PDF-файл как в приведенном выше примере, так и в моем более сложном файле уценки, даже с шаблонами.

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

Я бы просто удалил оскорбительные строки, но они используются во всех остальных файлах уценки, и я бы предпочел найти исправление с вашей помощью, если это возможно! Не могли бы вы сообщить мне, лаю ли я не на то дерево из-за этой недавней проблемы с MiKTeX или нет, а если нет, то где я могу ошибиться. Спасибо заранее.

Обновление: я выполнил эту команду

pandoc -s sample.md -o sample.tex

чтобы произвести этот текс:

% Options for packages loaded elsewhere
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}
%
\documentclass[
]{article}
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
  \usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
  \usepackage{unicode-math}
  \defaultfontfeatures{Scale=MatchLowercase}
  \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
  \usepackage[]{microtype}
  \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\makeatletter
\@ifundefined{KOMAClassName}{% if non-KOMA class
  \IfFileExists{parskip.sty}{%
    \usepackage{parskip}
  }{% else
    \setlength{\parindent}{0pt}
    \setlength{\parskip}{6pt plus 2pt minus 1pt}}
}{% if KOMA class
  \KOMAoptions{parskip=half}}
\makeatother
\usepackage{xcolor}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\hypersetup{
  hidelinks,
  pdfcreator={LaTeX via pandoc}}
\urlstyle{same} % disable monospaced font for URLs
\usepackage[margin=1cm]{geometry}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering

\date{}

\begin{document}

\setcounter{errorcontextlines}{40}

\hypertarget{sample-file}{%
\section{Sample File}\label{sample-file}}

Test Test Test

\begin{center}\rule{0.5\linewidth}{\linethickness}\end{center}

\end{document}

person JV53    schedule 15.10.2019    source источник
comment
Можете ли вы поделиться промежуточным файлом .tex, чтобы узнать, где именно возникла проблема? Я подозреваю, что это связано с некоторыми недавними изменениями устойчивости некоторых команд, но это всего лишь предположение.   -  person samcarter_is_at_topanswers.xyz    schedule 15.10.2019
comment
Внизу я вижу правило, которое я вставил в уценку. Прав ли я, думая, что должно быть что-то вроде {* x * \ linethickness}, и если да, как мне заставить его вставить туда значение во время преобразования? Я предполагаю, что это необычное поведение и \ linethickness должен иметь какое-то значение по умолчанию или получить значение откуда-то?   -  person JV53    schedule 17.10.2019
comment
Похоже, это проблема с текущей версией латекса. MWE основной проблемы tex: \documentclass{article} \begin{document} \rule{0.5\linewidth}{\linethickness} \end{document} Это работает с TL2018, но не работает с TL2019   -  person samcarter_is_at_topanswers.xyz    schedule 17.10.2019
comment
Некоторое объяснение, почему это больше не работает: chat.stackexchange.com/transcript/41?m=52094810#52094810 < / а>   -  person samcarter_is_at_topanswers.xyz    schedule 17.10.2019
comment
Проблема в том, что синтаксис неверен и сработал только случайно. Я думаю, что об этом нужно сообщить pandoc как об ошибке   -  person samcarter_is_at_topanswers.xyz    schedule 17.10.2019
comment
Об этом сообщается в pandoc в github.com/jgm/pandoc/issues/5801.   -  person samcarter_is_at_topanswers.xyz    schedule 17.10.2019
comment
Я считаю, что исправлено, но не уверен, когда оно будет запущено.   -  person JV53    schedule 17.10.2019
comment
До pandoc 2.8 вы можете использовать ночную сборку.   -  person mb21    schedule 19.10.2019


Ответы (1)


тем временем я попробовал это (как root в последней установке RStudio Debian):

~# sed 's,\\linethickness,0.5000000000pt,g' < pandoc/pandoc > /usr/lib/rstudio-server/bin/pandoc/pandoc

где 1-й pandoc / pandoc - это копия оригинала из package. Это сохраняет ту же длину строки и действительный номер, чтобы двоичный файл не сломался. Это пишет hrule как:

\begin{center}\rule{0.5\linewidth}{0.5000000000pt}\end{center}

и MiKTeX, похоже, с этим справляется (по крайней мере, TeXworks компилирует pdf).

HTH пока

person user12450576    schedule 28.11.2019
comment
обновление: сделал то же самое с pandoc.exe в последней установке rstudio win10, кажется безопасным и WFM - person user12450576; 28.11.2019