Open vizance opened 3 years ago
I have the same issue. Can somebody help me?
example.md
---
title: "Example PDF"
author: [Author]
date: "2017-02-20"
CJKmainfont: "PingFangTC-Regular"
titlepage: true
titlepage-rule-color: "360049"
titlepage-background: "background1.pdf"
---
# 您好 Hello
command
pandoc example.md -o example.pdf --from markdown --template eisvogel --listings --pdf-engine=xelatex
Same issue here, and I think it's related to Polyglossia - if I remove Polyglossia from the template, everything works as expected.
@cocowalla Thanks for your feedback !
Could you explain more details on removing from which line (Polyglossia) ?
I could see possible related code is from line 433
to line 567
(see below), but not quite sure.
Thank you.
% Load polyglossia as late as possible: uses bidi with RTL langages (e.g. Hebrew, Arabic)
\usepackage{polyglossia}
\setmainlanguage[$for(polyglossia-lang.options)$$polyglossia-lang.options$$sep$,$endfor$]{$polyglossia-lang.name$}
$for(polyglossia-otherlangs)$
\setotherlanguage[$for(polyglossia-otherlangs.options)$$polyglossia-otherlangs.options$$sep$,$endfor$]{$polyglossia-otherlangs.name$}
$endfor$
\else
\usepackage[$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
% get rid of language-specific shorthands (see #6817):
\let\LanguageShortHands\languageshorthands
\def\languageshorthands#1{}
$if(babel-newcommands)$
$babel-newcommands$
$endif$
\fi
$endif$
\ifluatex
\usepackage{selnolig} % disable illegal ligatures
\fi
$if(dir)$
\ifxetex
% Load bidi as late as possible as it modifies e.g. graphicx
\usepackage{bidi}
\fi
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\TeXXeTstate=1
\newcommand{\RL}[1]{\beginR #1\endR}
\newcommand{\LR}[1]{\beginL #1\endL}
\newenvironment{RTL}{\beginR}{\endR}
\newenvironment{LTR}{\beginL}{\endL}
\fi
$endif$
$if(natbib)$
\usepackage[$natbiboptions$]{natbib}
\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
$endif$
$if(biblatex)$
\usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
$for(bibliography)$
\addbibresource{$bibliography$}
$endfor$
$endif$
$if(csl-refs)$
\newlength{\cslhangindent}
\setlength{\cslhangindent}{1.5em}
\newlength{\csllabelwidth}
\setlength{\csllabelwidth}{3em}
\newenvironment{CSLReferences}[2] % #1 hanging-ident, #2 entry spacing
{% don't indent paragraphs
\setlength{\parindent}{0pt}
% turn on hanging indent if param 1 is 1
\ifodd #1 \everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces\fi
% set entry spacing
\ifnum #2 > 0
\setlength{\parskip}{#2\baselineskip}
\fi
}%
{}
\usepackage{calc}
\newcommand{\CSLBlock}[1]{#1\hfill\break}
\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{#1}}
\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{#1}\break}
\newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1}
$endif$
$if(csquotes)$
\usepackage{csquotes}
$endif$
$if(title)$
\title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
$endif$
$if(subtitle)$
$if(beamer)$
$else$
\usepackage{etoolbox}
\makeatletter
\providecommand{\subtitle}[1]{% add subtitle to \maketitle
\apptocmd{\@title}{\par {\large #1 \par}}{}{}
}
\makeatother
$endif$
\subtitle{$subtitle$}
$endif$
\author{$for(author)$$author$$sep$ \and $endfor$}
\date{$date$}
$if(beamer)$
$if(institute)$
\institute{$for(institute)$$institute$$sep$ \and $endfor$}
$endif$
$if(titlegraphic)$
\titlegraphic{\includegraphics{$titlegraphic$}}
$endif$
$if(logo)$
\logo{\includegraphics{$logo$}}
$endif$
$endif$
%%
%% added
%%
%
% language specification
%
% If no language is specified, use English as the default main document language.
%
$if(lang)$$else$
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=english]{babel}
$if(babel-newcommands)$
$babel-newcommands$
$endif$
\else
$if(mainfont)$
$else$
% Workaround for bug in Polyglossia that breaks `\familydefault` when `\setmainlanguage` is used.
% See https://github.com/Wandmalfarbe/pandoc-latex-template/issues/8
% See https://github.com/reutenauer/polyglossia/issues/186
% See https://github.com/reutenauer/polyglossia/issues/127
\renewcommand*\familydefault{\sfdefault}
$endif$
% load polyglossia as late as possible as it *could* call bidi if RTL lang (e.g. Hebrew or Arabic)
\usepackage{polyglossia}
\setmainlanguage[]{english}
$for(polyglossia-otherlangs)$
\setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
$endfor$
\fi
$endif$
$if(page-background)$
\usepackage[pages=all]{background}
$endif$
@vizance so basically I'm removing the use of Polyglossia, and always using Babel instead:
Before:
$if(lang)$
\ifxetex
% Load polyglossia as late as possible: uses bidi with RTL langages (e.g. Hebrew, Arabic)
\usepackage{polyglossia}
\setmainlanguage[$for(polyglossia-lang.options)$$polyglossia-lang.options$$sep$,$endfor$]{$polyglossia-lang.name$}
$for(polyglossia-otherlangs)$
\setotherlanguage[$for(polyglossia-otherlangs.options)$$polyglossia-otherlangs.options$$sep$,$endfor$]{$polyglossia-otherlangs.name$}
$endfor$
\else
\usepackage[$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
% get rid of language-specific shorthands (see #6817):
\let\LanguageShortHands\languageshorthands
\def\languageshorthands#1{}
$if(babel-newcommands)$
$babel-newcommands$
$endif$
\fi
$endif$
After:
$if(lang)$
\usepackage[$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
% get rid of language-specific shorthands (see #6817):
\let\LanguageShortHands\languageshorthands
\def\languageshorthands#1{}
$if(babel-newcommands)$
$babel-newcommands$
$endif$
$endif$
I'm using an older version of this template that doesn't have the language specification
section - that entire section should also be removed if you have it.
@cocowalla
Great, I will try to remove this section.
thank you so much !
@cocowalla
Thanks, I got it.
But I need to modify another section to work
Before
$if(lang)$$else$
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=english]{babel}
$if(babel-newcommands)$
$babel-newcommands$
$endif$
\else
$if(mainfont)$
$else$
% Workaround for bug in Polyglossia that breaks `\familydefault` when `\setmainlanguage` is used.
% See https://github.com/Wandmalfarbe/pandoc-latex-template/issues/8
% See https://github.com/reutenauer/polyglossia/issues/186
% See https://github.com/reutenauer/polyglossia/issues/127
\renewcommand*\familydefault{\sfdefault}
$endif$
% load polyglossia as late as possible as it *could* call bidi if RTL lang (e.g. Hebrew or Arabic)
\usepackage{polyglossia}
\setmainlanguage[]{english}
$for(polyglossia-otherlangs)$
\setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
$endfor$
\fi
$endif$
After
$if(lang)$$else$
% \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=english]{babel}
$if(babel-newcommands)$
$babel-newcommands$
$endif$
% \else
% $if(mainfont)$
% $else$
% % Workaround for bug in Polyglossia that breaks `\familydefault` when `\setmainlanguage` is used.
% % See https://github.com/Wandmalfarbe/pandoc-latex-template/issues/8
% % See https://github.com/reutenauer/polyglossia/issues/186
% % See https://github.com/reutenauer/polyglossia/issues/127
% \renewcommand*\familydefault{\sfdefault}
% $endif$
% % load polyglossia as late as possible as it *could* call bidi if RTL lang (e.g. Hebrew or Arabic)
% \usepackage{polyglossia}
% \setmainlanguage[]{english}
% $for(polyglossia-otherlangs)$
% \setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
% $endfor$
% \fi
$endif$
Pandoc recently removed polyglossia support in favor of babel (https://github.com/jgm/pandoc/pull/7562). I merged the upstream changes here 496dfcf67f4cf827d18f3f7f19c10beda75fce81. Could you try again?
Yes I tried it, now it works perfect! Thanks
Hello @Wandmalfarbe
I'm trying using template to convert Markdown to PDF but encounter error
! Parameters must be numbered consecutively.
Below are the details.
I. Issue Backgrounds
1. Command & Error
Using template with this command
pandoc "test1.md" -o "example_with_template.pdf" --pdf-engine=xelatex --from markdown --template eisvogel --listings
but encounter below error :
2. test1.md file content
II. Version
Update
If I delete
--pdf-engine=xelatex
, eisvogel works successfully.However, my document includes Chinese and must use
--pdf-engine=xelatex
and-V CJKmainfont
to convert the file.Hope someone can help...