お世話になっています。
部分的にLaTeXを使いつつ、Markdownでレポートを書きたいと思い、いくつかのサイト(例えばMarkdownで爆速LaTeXレポート | ロボット・IT雑食日記など)を参考にPandocを使用してみたのですが、コードブロックが入ると、Highlighting
環境やShaded
環境、NormalTok{}
など、未定義のものが入ってきて、dviに変換するときに、pLaTeX、LuaLaTeXともにエラーになってしまいます。
おそらくLaTeXとして出力させず、内部的にLaTeXを使用させてpdfまで自動で変換させる場合は定義されているのでしょうけど、いったいどこに定義があるのかが皆目見当が付きません。
Pandoc ユーザーズガイド 日本語版 - Japanese Pandoc User's Association pdfを作成するにあるパッケージはエラーが出なかったものに関してはすべて有効化しましたが、この中にも定義はなかったようです。
最後にPandoc Markdown -> latex with syntax highlightingというページにたどり着き、この中のコードをコピペして実行してみました。しかし、pLaTeX、LuaLaTeXの両方で試しましたがどちらでも\fi
の箇所でエラーとなってしまい、うまくいきませんでした。
コピペと言っている時点でお分かりかと思いますが、LaTeXの仕組みについてはほとんど知識がありません。(TeXとLaTeXが違うことを今回の問題で初めて知ったレベルです。)
もし、似たような問題に遭遇した方がおりましたら、回答していただけるとありがたいです。
回答よろしくお願いします。m(_ _)m
あまり参考にならない&いろいろと間違っていると考えられる現在用意しているプリアンブル部です。一部は先ほど載せたURLの完全なコピペです。
\documentclass[autodetect-engine,dvipdfmx-if-dvi,ja=standard]{bxjsarticle} % [11pt,a4paper] % \usepackage{geometry} \geometry{top=30truemm,bottom=30truemm,left=25truemm,right=25truemm} \usepackage{here} \usepackage{amssymb} \usepackage{amsmath} \usepackage{ifxetex} \usepackage{ifluatex} \usepackage{longtable} \usepackage{booktabs} \usepackage{url} \usepackage{graphicx} \usepackage{hyperref} \usepackage{ulem} \ifxetex \usepackage{fontspec,xltxtra,xunicode} \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} \newcommand{\euro}{€} \else \ifluatex \usepackage{fontspec} \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} \newcommand{\euro}{€} \else \usepackage[utf8]{inputenc} \usepackage{eurosym} \fi \fi \usepackage{color} \usepackage{fancyvrb} \DefineShortVerb[commandchars=\\{\}]{\|} \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\{\}} % Add ',fontsize=\small' for more characters per line \newenvironment{Shaded}{}{} \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}} \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} \newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} \newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}} \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}} \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}} \newcommand{\RegionMarkerTok}[1]{{#1}} \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} \newcommand{\NormalTok}[1]{{#1}} \ifxetex \usepackage[setpagesize=false, % page size defined by xetex unicode=false, % unicode breaks when used with xetex xetex, colorlinks=true, linkcolor=blue]{hyperref} \else \usepackage[unicode=true, colorlinks=true, linkcolor=blue]{hyperref} \fi \hypersetup{breaklinks=true, pdfborder={0 0 0}} \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt} \setlength{\emergencystretch}{3em} % prevent overfull lines \setcounter{secnumdepth}{0} \EndDefineVerbatimEnvironment{Highlighting} \begin{document} \input{main.tex} \end{document}
main.mdの例です。(\
は表現上入れましたが実際はありません。)
md
1# main.texの中身 2 3\```python 4print("Shaded & Highlighting環境") 5\``` 6 7\``` 8verbatim環境 9\``` 10 11`文中コード`
Pandocを通した後のmain.texの中身です。
\hypertarget{main.texux306eux4e2dux8eab}{% \section{main.texの中身}\label{main.texux306eux4e2dux8eab}} \begin{Shaded} \begin{Highlighting}[] \BuiltInTok{print}\NormalTok{(}\StringTok{"Shaded & Highlighting環境"}\NormalTok{)} \end{Highlighting} \end{Shaded} \begin{verbatim} verbatim環境 \end{verbatim} \texttt{文中コード}
バージョンなど :
- 実行環境 : Windows 10 MINGW64
- pandoc : pandoc.exe 2.2.1
- TeX関連 : TeX Live 2018
他に確認が必要な項目があれば修正欄にお願いします。
補足事項 :
LaTeXの使用はマストなのでAtomやVSCodeの拡張機能を使ってMarkdown -> pdfという方法はおそらく使えないと思います。
追記
エラー内容です。オプションのクラッシュとのことですが、hyperrefのどこを修正すればいいかがいまいちわかりませんでした。
! LaTeX Error: Option clash for package hyperref. See the LaTeX manual or LaTeX Companion for explanation. Type H <return> for immediate help. ... l.63 \fi
dviへ変換するコマンドはlualatex master.tex
を使用しています。
最後の\EndDefineVerbatimEnvironment{Highlighting}
は確かに不要らしいですね。。gistでもコメントされているみたいですし。これは取り除きました。
引き続きよろしくお願いします。m(_ _)m
回答2件
あなたの回答
tips
プレビュー