尚待解決的問題

尚待解決的問題

我正在使用歌曲包創建一本歌集。我對 LaTex 非常陌生,並選擇使用效果很好的背頁,我真正遇到的唯一問題是索引。我正在為該專案使用較舊的基本模板,該模板已經有一個可以顯示的工作索引文件,但索引不會更新。

在搜尋文件時,我相信解決方案已連接到線路:

texlua Songidx.lua titlfile.sxd titlfile.sbx

但我似乎找不到任何地方可以將該行放在背面。有沒有辦法解決這個問題,或者我必須學習如何在我的電腦上本地解析它?

更新:在下面新增了 MWE。此範例產生一個帶有文字的空索引:「[索引尚未產生。]」或如果我從本書的舊版本中新增idxfile.sbx,則整個暫存器將顯示為幾年前的樣子,而不僅僅是兩個本例中的歌曲。很明顯,idxfile.sbx 必須以某種方式重寫。現在到 MWE,它分為兩個最小檔案(第一個區塊)和一個包含歌曲本身的包含檔案:

\documentclass[9pt,a6paper,openright,twoside]{extbook}
\usepackage[bookmarks]{hyperref}
\usepackage[top=15mm,bottom=15mm,left=15mm,right=10mm]{geometry}
%\addtolength{\oddsidemargin}{5mm}
\usepackage[lyric,noshading]{songs}
\usepackage{amsmath,amssymb}
\usepackage{amsfonts}
\usepackage{fancyhdr}   
\usepackage{enumitem}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[swedish]{babel}
\usepackage{calligra}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{imakeidx}
\usepackage{tikz}

\usepackage{textcomp}

\hypersetup{
    colorlinks=false,
    pdfborder={0 0 0},
}

\setlength{\sbarheight}{0.2pt}

\renewcommand{\stitlefont}{\bf\large}
\renewcommand{\notefont}{\itshape\small}

\makeatletter

\renewcommand\showindex[3][0]{%
\@ifundefined{SB@idxsel@#3}{\SB@errnoidx{#3}}{%
\expandafter\let\expandafter\SB@temp\csname SB@idxsel@#3\endcsname%
\SB@cnt#1\relax%
\ifnum\SB@cnt<\@ne\SB@cnt\SB@temp232\relax\fi%
\expandafter\SB@temp%
\expandafter\SB@maketitleindex%
\expandafter\SB@makescripindex%
\expandafter\SB@makeauthorindex%
\expandafter{\the\SB@cnt}%
{#2}{#3}%
}%
}
\makeatother


%%%% index
\renewcommand{\idxtitlefont}{\sffamily\small}%\itshape}
\renewcommand{\idxlyricfont}{\itshape\small}%\mdseries}
\renewcommand{\idxheadfont}{\calligra\bfseries\Huge}

\noversenumbers
\nosongnumbers
\songcolumns{0}



%%% Don't try to fill up every page
\raggedbottom

\setcounter{secnumdepth}{-1}

%%%%%%% Index
\newindex{index}{idxfile}

\scriptureon

\title{\large Sångbok 
\vfill
\small Denna sångbok trycktes i 1000 exemplar. Detta är exemplar Nr. \rule{0.5cm}{0.5pt}
}
\date{}

\begin{document}
\maketitle
\indexsongsas{index}{\thepage}


\pagestyle{plain}

\newpage
\tableofcontents

\include{Text/bordsvisor}

\indexeson

\injectparagraph{%
\center Rak text: Sångtitel\ ~ \emph{Kursiv text: Första raden\\
\begin{center}
\line(1,0){250}
\end{center}}}

\showindex{Register}{index}

\end{document}

包含的歌曲(Text/bordvisor.tex)在這裡:

\songchapter{Bordsvisor}
\thispagestyle{empty}
 \begin{tikzpicture}[remember picture,overlay]
   \node at (current page.center) {\includegraphics[width=\paperwidth]{bilder/kapitel/kap_bord.JPG}};
 \end{tikzpicture}
\pagebreak

\begin{songs}{index}

\beginsong{Måltidssång}[sr={Fredmans sång nr 21},by={Text \& musik: Carl Michael Bellman},index={Så lunka vi så småningom}]
\beginverse
Så lunka vi så småningom
från Bacchi buller och tumult,
när döden ropar: Granne kom,
ditt timglas är nu fullt.
Du gubbe fäll din krycka ner,
och du, du yngling, lyd min lag,
den skönsta nymf som åt dig ler
inunder armen tag.
\endverse
\endsong


\beginsong{Spritbolaget}[by={Mel.: Du kära lille snickerbo'},index={Till spritbolaget ränner jag}]
\beginverse
Till spritbolaget ränner jag
och bankar på dess port.
Jag vill ha nå’t som bränner bra
och gör mig skitfull fort.
Expediten sade goddag,
hur gammal kan min herre va’?
Har du nå’t leg ditt fula drägg?
Kom hit igen när du fått skägg.
\endverse
\endsong

\end{songs}

答案1

您可以下載該songidx.lua檔案並將其複製到您的背面工作目錄(從 ctan 或其他資源)。然後使用\write18運行命令texlua songidx.lua idxfile.sxd idxfile.sbx,該命令將為您更新並寫入正確的索引檔案(idxfile.sbx)。我已經對此進行了測試,不幸的是,您每次都需要clear cached filesRecompile from scratch才能使文件正確更新。有人可能有更好的解決方案。

之前加入以下程式碼\begin{document}

\write18{texlua songidx.lua idxfile.sxd idxfile.sbx}

答案2

這是 90% 的解決方案。是的:關鍵問題與您的懷疑很接近。

檢查是否有類似問題

誰報告了歌曲包和索引已經存在問題?看這裡。其中有一位解決方案,這也或多或少地描述於ch. 10首歌曲手冊:

  • 這裡的關鍵是至少將檔案複製songidx.lua到工作目錄
  • 開啟命令外殼,設定為文件目錄
  • 運行pdflatextexlua按照解決方案中的描述多次

複製所述文件,並按照所述解決方案,我可以生成具有所需兩個索引的歌集。

在我的本機安裝上嘗試你的範例

準備工作:

  • 根據先前的分析,我禁用了程式碼的許多部分,這些部分不會導致創建索引的關鍵問題,或者可能會導致該問題
  • 我複製到了songidx.lua那裡,在我的發行版上位於C:\...\MiKTeX2\scripts\songs(連結或設定PATH變數也可以)

接下來我運行:

  • ...\songBookIndex>pdflatex songBookIndex.tex
  • ...\songBookIndex>texlua songidx.lua idxfile.sxd
  • ...\songBookIndex>pdflatex songBookIndex.tex

就這樣: 本地結果

歌曲書索引.tex

\documentclass[9pt,a6paper,openright,twoside]{extbook}
\usepackage[bookmarks]{hyperref}
\usepackage[top=15mm,bottom=15mm,left=15mm,right=10mm]{geometry}
%\addtolength{\oddsidemargin}{5mm}
\usepackage[lyric,noshading]{songs}
%\usepackage{amsmath,amssymb}
%\usepackage{amsfonts}
\usepackage{fancyhdr}   
%\usepackage{enumitem}

%\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}
\usepackage[swedish]{babel}
%\usepackage{calligra}
%\usepackage{lmodern}
%\usepackage{graphicx}
%\usepackage{fancyhdr}
%\usepackage{imakeidx}
%\usepackage{tikz}

%\usepackage{textcomp}

\hypersetup{
    colorlinks=false,
    pdfborder={0 0 0},
}

\setlength{\sbarheight}{0.2pt}

\renewcommand{\stitlefont}{\bf\large}
\renewcommand{\notefont}{\itshape\small}

%\makeatletter
%
%\renewcommand\showindex[3][0]{%
%\@ifundefined{SB@idxsel@#3}{\SB@errnoidx{#3}}{%
%\expandafter\let\expandafter\SB@temp\csname SB@idxsel@#3\endcsname%
%\SB@cnt#1\relax%
%\ifnum\SB@cnt<\@ne\SB@cnt\SB@temp232\relax\fi%
%\expandafter\SB@temp%
%\expandafter\SB@maketitleindex%
%\expandafter\SB@makescripindex%
%\expandafter\SB@makeauthorindex%
%\expandafter{\the\SB@cnt}%
%{#2}{#3}%
%}%
%}
%\makeatother


%%%% index
\renewcommand{\idxtitlefont}{\sffamily\small}%\itshape}
\renewcommand{\idxlyricfont}{\itshape\small}%\mdseries}
\renewcommand{\idxheadfont}{\calligra\bfseries\Huge}

\noversenumbers
\nosongnumbers
\songcolumns{0}



%%% Don't try to fill up every page
\raggedbottom

\setcounter{secnumdepth}{-1}

%%%%%%% Index
\newindex{index}{idxfile}


\scriptureon

\title{\large Sångbok 
\vfill
\small Denna sångbok trycktes i 1000 exemplar. Detta är exemplar Nr. \rule{0.5cm}{0.5pt}
}
\date{}

\begin{document}
\maketitle
\indexsongsas{index}{\thepage}


\pagestyle{plain}

\newpage
\tableofcontents

%\include{Text/bordsvisor}
\input{bordsvisor}

%\indexeson

%\injectparagraph{%
%\center Rak text: Sångtitel\ ~ \emph{Kursiv text: Första raden\\
%\begin{center}
%\line(1,0){250}
%\end{center}}}

\showindex{Register}{index}

\end{document}

bordsvisor.tex:

\songchapter{Bordsvisor}
\thispagestyle{empty}
% \begin{tikzpicture}[remember picture,overlay]
%   \node at (current page.center) {\includegraphics[width=\paperwidth]{bilder/kapitel/kap_bord.JPG}};
% \end{tikzpicture}
\pagebreak

\begin{songs}{index}

\beginsong{Måltidssång}[sr={Fredmans sång nr 21},by={Text \& musik: Carl Michael Bellman},index={Så lunka vi så småningom}]
\beginverse
Så lunka vi så småningom
från Bacchi buller och tumult,
när döden ropar: Granne kom,
ditt timglas är nu fullt.
Du gubbe fäll din krycka ner,
och du, du yngling, lyd min lag,
den skönsta nymf som åt dig ler
inunder armen tag.
\endverse
\endsong


\beginsong{Spritbolaget}[by={Mel.: Du kära lille snickerbo'},index={Till spritbolaget ränner jag}]
\beginverse
Till spritbolaget ränner jag
och bankar på dess port.
Jag vill ha nå’t som bränner bra
och gör mig skitfull fort.
Expediten sade goddag,
hur gammal kan min herre va’?
Har du nå’t leg ditt fula drägg?
Kom hit igen när du fått skägg.
\endverse
\endsong

\end{songs}

在背面嘗試這個

建立專案並複製(修改後的)檔案沒有問題。但是,我沒有看到是否可以在 Overleaf 上執行命令 shell,如果可以,如何運行。

僅僅複製songidx.lua並不能解決問題,當然不是。

所以我嘗試複製本地創建的文件,並且成功了(沒有檢查哪些文件是真正需要的)。所以至少這對你來說可能是一個繞過:

  • 在本機安裝上建立索引
  • 將結果複製到您的 Overleaf 專案中
  • 不太好,缺少 10%,但無論如何...

背頁

尚待解決的問題

如何在 Overleaf 上執行指令 shell?

  • 那可能嗎?
  • 如果是這樣:怎麼辦?
  • 它也適用於免費帳戶嗎?
  • 你需要升級嗎?
  • 是否可以使用 Overleaf 將所需的操作自動化(並根據個人需求進行調整)?

也許尋求解決方案?

搜尋時command shell overleaf我點擊了這則推文:

鳴叫

latexmkrc…… 那是什麼?至少它看起來足夠重要,Overleaf 有一篇關於它的文章如何將 Latexmkrc 與 Overleaf 一起使用

您也可以在這裡找到有關的問題特克斯SE ...

好的,是時候讓一些更有經驗的使用者加入了:)

相關內容