Skip to content

Commit ac9b2ea

Browse files
committed
Improve rendering of No Starch LaTeX
1 parent fbf6a22 commit ac9b2ea

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

src/render_latex.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,12 @@ function escapeChar(ch) {
3131
case "^": return "\\textasciicircum "
3232
case "\\": return "\\textbackslash "
3333
case "/": return "\\slash "
34+
case '"': return "\\textquotedbl{}"
3435
default: return "\\" + ch
3536
}
3637
}
3738
function escape(str) {
38-
return String(str).replace(/[&%$#_{}~^\\]|\w(\/)\w/g, (match, group) => {
39+
return String(str).replace(/[&%$#_{}~^\\"]|\w(\/)\w/g, (match, group) => {
3940
if (group) return match[0] + escapeChar(group) + match[2]
4041
return escapeChar(match)
4142
})
@@ -79,7 +80,10 @@ let linkedChapter = null, raw = false, quote = false
7980
let renderer = {
8081
fence(token) {
8182
if (/\bhidden:\s*true/.test(token.info)) return ""
82-
return `\n\n${id(token)}\\begin{lstlisting}\n${escapeComplexScripts(token.content.trimRight())}\n\\end{lstlisting}\n\\noindent`
83+
if (noStarch)
84+
return `\n\n${id(token)}\\begin{Code}\n${token.content.trimRight()}\n\\end{Code}\n`
85+
else
86+
return `\n\n${id(token)}\\begin{lstlisting}\n${escapeComplexScripts(token.content.trimRight())}\n\\end{lstlisting}\n\\noindent`
8387
},
8488

8589
hardbreak() { return "\\break\n" },
@@ -128,7 +132,12 @@ let renderer = {
128132
td_open() { return "\n" },
129133
td_close(_, next) { return next && next.type == "td_open" ? " &" : "" },
130134

131-
code_inline(token) { return `\\lstinline\`${miniEscape(token.content)}\`` },
135+
code_inline(token) {
136+
if (noStarch)
137+
return `\\texttt{${escape(token.content)}}`
138+
else
139+
return `\\lstinline\`${miniEscape(token.content)}\``
140+
},
132141

133142
strong_open() { return "\\textbf{" },
134143
strong_close() { return "}" },

0 commit comments

Comments
 (0)