“LaTeX Error: Can be used only in preamble” even though all directives before begin directive











up vote
2
down vote

favorite












In the following simplified version of a markdown doc intended for pandoc/latex generation to `pdf:



documentclass{article}
usepackage{unicode-math}
setmainfont{TeX Gyre Schola}
setmathfont{TeX Gyre Schola Math}
begin{document}

## Custom F1 Score For Scoring of Graph Matching

### Overview

The `F1 Score` is intended to compare two sets:

- Truth Set
- Actuals Set

Its calculation is:

$$F_{beta} = (1 + beta^2) cdot frac{mathrm{precision_k} cdot mathrm{recall_k^2}}{(beta^2 cdot mathrm{precision_k}) + mathrm{recall_k}}$$


end{document}


Notice that all of the preamble directives happen before the
begin{document}



The pdf is generated via pandoc:



    $pandoc  -V fontsize=9pt --pdf-engine xelatex -V 
geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


The following error is produced:



Error producing PDF.
! LaTeX Error: Can be used only in preamble.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.60 documentclass


What is incorrect here for bringing in a mathsy font?










share|improve this question
























  • In markdown you need a YAML header, not documentclass{article}. Use something like - header-includes: -usepackage{unicode-math} -setmainfont{TeX Gyre Schola} -setmathfont{TeX Gyre Schola Math}. See, for example, How to include LaTeX package in R Markdown?
    – Werner
    Dec 12 at 6:18










  • @Werner - ah ya .. I have other docs doing that and will go copy and paste from them. Pls make this an answer
    – javadba
    Dec 12 at 6:19















up vote
2
down vote

favorite












In the following simplified version of a markdown doc intended for pandoc/latex generation to `pdf:



documentclass{article}
usepackage{unicode-math}
setmainfont{TeX Gyre Schola}
setmathfont{TeX Gyre Schola Math}
begin{document}

## Custom F1 Score For Scoring of Graph Matching

### Overview

The `F1 Score` is intended to compare two sets:

- Truth Set
- Actuals Set

Its calculation is:

$$F_{beta} = (1 + beta^2) cdot frac{mathrm{precision_k} cdot mathrm{recall_k^2}}{(beta^2 cdot mathrm{precision_k}) + mathrm{recall_k}}$$


end{document}


Notice that all of the preamble directives happen before the
begin{document}



The pdf is generated via pandoc:



    $pandoc  -V fontsize=9pt --pdf-engine xelatex -V 
geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


The following error is produced:



Error producing PDF.
! LaTeX Error: Can be used only in preamble.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.60 documentclass


What is incorrect here for bringing in a mathsy font?










share|improve this question
























  • In markdown you need a YAML header, not documentclass{article}. Use something like - header-includes: -usepackage{unicode-math} -setmainfont{TeX Gyre Schola} -setmathfont{TeX Gyre Schola Math}. See, for example, How to include LaTeX package in R Markdown?
    – Werner
    Dec 12 at 6:18










  • @Werner - ah ya .. I have other docs doing that and will go copy and paste from them. Pls make this an answer
    – javadba
    Dec 12 at 6:19













up vote
2
down vote

favorite









up vote
2
down vote

favorite











In the following simplified version of a markdown doc intended for pandoc/latex generation to `pdf:



documentclass{article}
usepackage{unicode-math}
setmainfont{TeX Gyre Schola}
setmathfont{TeX Gyre Schola Math}
begin{document}

## Custom F1 Score For Scoring of Graph Matching

### Overview

The `F1 Score` is intended to compare two sets:

- Truth Set
- Actuals Set

Its calculation is:

$$F_{beta} = (1 + beta^2) cdot frac{mathrm{precision_k} cdot mathrm{recall_k^2}}{(beta^2 cdot mathrm{precision_k}) + mathrm{recall_k}}$$


end{document}


Notice that all of the preamble directives happen before the
begin{document}



The pdf is generated via pandoc:



    $pandoc  -V fontsize=9pt --pdf-engine xelatex -V 
geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


The following error is produced:



Error producing PDF.
! LaTeX Error: Can be used only in preamble.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.60 documentclass


What is incorrect here for bringing in a mathsy font?










share|improve this question















In the following simplified version of a markdown doc intended for pandoc/latex generation to `pdf:



documentclass{article}
usepackage{unicode-math}
setmainfont{TeX Gyre Schola}
setmathfont{TeX Gyre Schola Math}
begin{document}

## Custom F1 Score For Scoring of Graph Matching

### Overview

The `F1 Score` is intended to compare two sets:

- Truth Set
- Actuals Set

Its calculation is:

$$F_{beta} = (1 + beta^2) cdot frac{mathrm{precision_k} cdot mathrm{recall_k^2}}{(beta^2 cdot mathrm{precision_k}) + mathrm{recall_k}}$$


end{document}


Notice that all of the preamble directives happen before the
begin{document}



The pdf is generated via pandoc:



    $pandoc  -V fontsize=9pt --pdf-engine xelatex -V 
geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


The following error is produced:



Error producing PDF.
! LaTeX Error: Can be used only in preamble.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.60 documentclass


What is incorrect here for bringing in a mathsy font?







pandoc preamble markdown






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 12 at 6:03

























asked Dec 12 at 3:01









javadba

1236




1236












  • In markdown you need a YAML header, not documentclass{article}. Use something like - header-includes: -usepackage{unicode-math} -setmainfont{TeX Gyre Schola} -setmathfont{TeX Gyre Schola Math}. See, for example, How to include LaTeX package in R Markdown?
    – Werner
    Dec 12 at 6:18










  • @Werner - ah ya .. I have other docs doing that and will go copy and paste from them. Pls make this an answer
    – javadba
    Dec 12 at 6:19


















  • In markdown you need a YAML header, not documentclass{article}. Use something like - header-includes: -usepackage{unicode-math} -setmainfont{TeX Gyre Schola} -setmathfont{TeX Gyre Schola Math}. See, for example, How to include LaTeX package in R Markdown?
    – Werner
    Dec 12 at 6:18










  • @Werner - ah ya .. I have other docs doing that and will go copy and paste from them. Pls make this an answer
    – javadba
    Dec 12 at 6:19
















In markdown you need a YAML header, not documentclass{article}. Use something like - header-includes: -usepackage{unicode-math} -setmainfont{TeX Gyre Schola} -setmathfont{TeX Gyre Schola Math}. See, for example, How to include LaTeX package in R Markdown?
– Werner
Dec 12 at 6:18




In markdown you need a YAML header, not documentclass{article}. Use something like - header-includes: -usepackage{unicode-math} -setmainfont{TeX Gyre Schola} -setmathfont{TeX Gyre Schola Math}. See, for example, How to include LaTeX package in R Markdown?
– Werner
Dec 12 at 6:18












@Werner - ah ya .. I have other docs doing that and will go copy and paste from them. Pls make this an answer
– javadba
Dec 12 at 6:19




@Werner - ah ya .. I have other docs doing that and will go copy and paste from them. Pls make this an answer
– javadba
Dec 12 at 6:19










2 Answers
2






active

oldest

votes

















up vote
3
down vote



accepted










The conversion of a markdown document places content within a YAML header within the preamble. However, since there is no YAML header specified, the contents is assumed to form part of the regular document body. As such, documentclass (and the rest) ends up after begin{document} and not in the preamble. Hence, the error "Can be used only in preamble" and pointing to documentclass...



You'll need something like this:



---
title: "Some title"
author: "Some author"
header-includes:
- usepackage{unicode-math}
- setmainfont{TeX Gyre Schola}
- setmathfont{TeX Gyre Schola Math}
output:
pdf_document
---

## Custom F1 Score For Scoring of Graph Matching

### Overview

...


Also see How to include LaTeX package in R Markdown?






share|improve this answer





















  • ya i forgot to add that yaml header.
    – javadba
    Dec 12 at 6:30








  • 1




    In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
    – DG'
    Dec 12 at 7:05




















up vote
2
down vote













It seems you have two problems.



The first is that you need to escape the # symbols (i.e. like #).



The second is your pandoc command. You need to add --from latex to it, like this:



pandoc  -V fontsize=9pt --from latex --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


I'm not entirely sure why you are using LaTeX code in a Markdown file, however. When I change your command to:



pandoc  -V fontsize=9pt --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.tex


And the file from .md to .tex, it also fixes the problem. It seems more natural to just keep it as a .tex file, because it is a .tex file. Not sure if I misunderstood something?






share|improve this answer





















  • "escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
    – javadba
    Dec 12 at 6:03












  • @javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
    – whatisit
    Dec 12 at 6:55











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f464444%2flatex-error-can-be-used-only-in-preamble-even-though-all-directives-before-be%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
3
down vote



accepted










The conversion of a markdown document places content within a YAML header within the preamble. However, since there is no YAML header specified, the contents is assumed to form part of the regular document body. As such, documentclass (and the rest) ends up after begin{document} and not in the preamble. Hence, the error "Can be used only in preamble" and pointing to documentclass...



You'll need something like this:



---
title: "Some title"
author: "Some author"
header-includes:
- usepackage{unicode-math}
- setmainfont{TeX Gyre Schola}
- setmathfont{TeX Gyre Schola Math}
output:
pdf_document
---

## Custom F1 Score For Scoring of Graph Matching

### Overview

...


Also see How to include LaTeX package in R Markdown?






share|improve this answer





















  • ya i forgot to add that yaml header.
    – javadba
    Dec 12 at 6:30








  • 1




    In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
    – DG'
    Dec 12 at 7:05

















up vote
3
down vote



accepted










The conversion of a markdown document places content within a YAML header within the preamble. However, since there is no YAML header specified, the contents is assumed to form part of the regular document body. As such, documentclass (and the rest) ends up after begin{document} and not in the preamble. Hence, the error "Can be used only in preamble" and pointing to documentclass...



You'll need something like this:



---
title: "Some title"
author: "Some author"
header-includes:
- usepackage{unicode-math}
- setmainfont{TeX Gyre Schola}
- setmathfont{TeX Gyre Schola Math}
output:
pdf_document
---

## Custom F1 Score For Scoring of Graph Matching

### Overview

...


Also see How to include LaTeX package in R Markdown?






share|improve this answer





















  • ya i forgot to add that yaml header.
    – javadba
    Dec 12 at 6:30








  • 1




    In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
    – DG'
    Dec 12 at 7:05















up vote
3
down vote



accepted







up vote
3
down vote



accepted






The conversion of a markdown document places content within a YAML header within the preamble. However, since there is no YAML header specified, the contents is assumed to form part of the regular document body. As such, documentclass (and the rest) ends up after begin{document} and not in the preamble. Hence, the error "Can be used only in preamble" and pointing to documentclass...



You'll need something like this:



---
title: "Some title"
author: "Some author"
header-includes:
- usepackage{unicode-math}
- setmainfont{TeX Gyre Schola}
- setmathfont{TeX Gyre Schola Math}
output:
pdf_document
---

## Custom F1 Score For Scoring of Graph Matching

### Overview

...


Also see How to include LaTeX package in R Markdown?






share|improve this answer












The conversion of a markdown document places content within a YAML header within the preamble. However, since there is no YAML header specified, the contents is assumed to form part of the regular document body. As such, documentclass (and the rest) ends up after begin{document} and not in the preamble. Hence, the error "Can be used only in preamble" and pointing to documentclass...



You'll need something like this:



---
title: "Some title"
author: "Some author"
header-includes:
- usepackage{unicode-math}
- setmainfont{TeX Gyre Schola}
- setmathfont{TeX Gyre Schola Math}
output:
pdf_document
---

## Custom F1 Score For Scoring of Graph Matching

### Overview

...


Also see How to include LaTeX package in R Markdown?







share|improve this answer












share|improve this answer



share|improve this answer










answered Dec 12 at 6:28









Werner

435k619531641




435k619531641












  • ya i forgot to add that yaml header.
    – javadba
    Dec 12 at 6:30








  • 1




    In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
    – DG'
    Dec 12 at 7:05




















  • ya i forgot to add that yaml header.
    – javadba
    Dec 12 at 6:30








  • 1




    In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
    – DG'
    Dec 12 at 7:05


















ya i forgot to add that yaml header.
– javadba
Dec 12 at 6:30






ya i forgot to add that yaml header.
– javadba
Dec 12 at 6:30






1




1




In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
– DG'
Dec 12 at 7:05






In newer versions of pandoc you can set the fonts directly: mainfont: 'TeX Gyre Schola' and mathfont: 'TeX Gyre Schola Math', cf. pandoc.org/MANUAL.html#variables-for-latex
– DG'
Dec 12 at 7:05












up vote
2
down vote













It seems you have two problems.



The first is that you need to escape the # symbols (i.e. like #).



The second is your pandoc command. You need to add --from latex to it, like this:



pandoc  -V fontsize=9pt --from latex --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


I'm not entirely sure why you are using LaTeX code in a Markdown file, however. When I change your command to:



pandoc  -V fontsize=9pt --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.tex


And the file from .md to .tex, it also fixes the problem. It seems more natural to just keep it as a .tex file, because it is a .tex file. Not sure if I misunderstood something?






share|improve this answer





















  • "escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
    – javadba
    Dec 12 at 6:03












  • @javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
    – whatisit
    Dec 12 at 6:55















up vote
2
down vote













It seems you have two problems.



The first is that you need to escape the # symbols (i.e. like #).



The second is your pandoc command. You need to add --from latex to it, like this:



pandoc  -V fontsize=9pt --from latex --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


I'm not entirely sure why you are using LaTeX code in a Markdown file, however. When I change your command to:



pandoc  -V fontsize=9pt --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.tex


And the file from .md to .tex, it also fixes the problem. It seems more natural to just keep it as a .tex file, because it is a .tex file. Not sure if I misunderstood something?






share|improve this answer





















  • "escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
    – javadba
    Dec 12 at 6:03












  • @javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
    – whatisit
    Dec 12 at 6:55













up vote
2
down vote










up vote
2
down vote









It seems you have two problems.



The first is that you need to escape the # symbols (i.e. like #).



The second is your pandoc command. You need to add --from latex to it, like this:



pandoc  -V fontsize=9pt --from latex --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


I'm not entirely sure why you are using LaTeX code in a Markdown file, however. When I change your command to:



pandoc  -V fontsize=9pt --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.tex


And the file from .md to .tex, it also fixes the problem. It seems more natural to just keep it as a .tex file, because it is a .tex file. Not sure if I misunderstood something?






share|improve this answer












It seems you have two problems.



The first is that you need to escape the # symbols (i.e. like #).



The second is your pandoc command. You need to add --from latex to it, like this:



pandoc  -V fontsize=9pt --from latex --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md


I'm not entirely sure why you are using LaTeX code in a Markdown file, however. When I change your command to:



pandoc  -V fontsize=9pt --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.tex


And the file from .md to .tex, it also fixes the problem. It seems more natural to just keep it as a .tex file, because it is a .tex file. Not sure if I misunderstood something?







share|improve this answer












share|improve this answer



share|improve this answer










answered Dec 12 at 5:39









whatisit

532213




532213












  • "escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
    – javadba
    Dec 12 at 6:03












  • @javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
    – whatisit
    Dec 12 at 6:55


















  • "escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
    – javadba
    Dec 12 at 6:03












  • @javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
    – whatisit
    Dec 12 at 6:55
















"escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
– javadba
Dec 12 at 6:03






"escape the #" huh ? this absolutely is markdown. I have truncated a couple hundred line markdown file to show just the tex related portion of it.
– javadba
Dec 12 at 6:03














@javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
– whatisit
Dec 12 at 6:55




@javadba it was difficult to tell. Looked like TeX, but you were saying Markdown, so I was a little confused what you were aiming for. I decided to go the route of the document provided, whereas Werner went the route that you said in your post :) Anyhow, glad it worked out with his answer.
– whatisit
Dec 12 at 6:55


















draft saved

draft discarded




















































Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f464444%2flatex-error-can-be-used-only-in-preamble-even-though-all-directives-before-be%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

"Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

Alcedinidae

Origin of the phrase “under your belt”?