kanji-sheets/jishoScrape/src/kanjiTables.js

30 lines
898 B
JavaScript
Raw Normal View History

2020-05-27 16:54:57 +02:00
/**
* Turns an array of kanji into a tabular for a chapter overview
* @param {string[]} kanjiArray A list of kanji to put into the table
* @returns {string} A tex tabular.
*/
function kanjiTable(kanjiArray) {
2020-05-27 16:54:57 +02:00
const xLength = 16;
const yLength = Math.ceil(kanjiArray.length/xLength);
const sideLength = Math.ceil(Math.sqrt(kanjiArray.length));
let tableString = '';
for (let y_index = 0; y_index < yLength; y_index++) {
const lineArray = new Array;
2020-05-27 16:54:57 +02:00
lineArray.push(`{\\large ${y_index*16}}`);
for (let x_index = 0; x_index < xLength; x_index++) {
2020-05-25 22:16:04 +02:00
const indexNumber = y_index * xLength + x_index;
lineArray.push(kanjiArray[indexNumber] ? kanjiArray[indexNumber] : '');
}
tableString += `${lineArray.join(' & ')} \\\\\n`
}
2020-05-27 16:54:57 +02:00
return `\\begin{longtable}{ ${'c '.repeat(xLength+1)}}
${tableString}\\end{longtable}`
}
exports.kanjiTable = kanjiTable;