質問用フォーラムです。ご質問の前に質問のしかたをご覧ください。

bstファイル:文献リストにおける著者名の表示

- hhh kkk の投稿

文献リストにおける著者名の表示を以下のようになるbstファイルを作成する必要がありまして、このフォーラムに質問させていただきました。

--------------------------------

著者が
1名の場合  : Sato, T.
2名の場合  : Sato, T. and Kato, M.
3名の場合  : Sato, T., Kato, M., and Yamada, D.
4名以上の場合: Sato, T., Kato, M., Yamada, D. et al.
と参考文献リストに表示するbstファイルを作成する必要があり、
色々試しているのですが、うまくいきません。
以下、改良前後のbstの関連する部分を示します。

なお、改良前のbstは、IEEEのとある雑誌のbstファイルをダウンロードして、
ほんの少しだけ変更したものとなっており、以下のように著者名が文献リストに表示されます
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 改良前のbst:
%% 
%% 1名の場合  : Sato, T.
%% 2名の場合  : Sato, T. and Kato, M.
%% 3名以上の場合: Sato, T., Kato, M., and Yamada, D. % 最後の著者名の前だけandをつける
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              numnames #2 >
                { ", " * }
                'skip$
              if$
              t "others" =
                { " et~al." * }
                { bbl.and space.word * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {format.authors}
{ author empty$
    { "author missing" }
    { author format.names }
  if$
}


----------------------------------
以下は、
ChatGPTにプロンプト入力して、仕様の動作を行うbstの作成を試みた結果です。
期待どおりには動作せず、どのように変更すればいいかよく分かりません。

---------------------
FUNCTION {format.names}
{ 's :=                        % 著者名リストを s に保存
  #1 'nameptr :=                % 現在の著者インデックス
  s num.names$ 'numnames :=     % 著者数
  numnames 'namesleft :=

  { nameptr numnames > not }    % ループ条件
  { 
    % ---- 区切り文字の処理 ----
    nameptr #1 >                % 2人目以降なら
      {
        numnames #4 >= nameptr #3 = and
          { ", " * }            % 4人以上で3人目 → カンマ
          {
            nameptr = numnames  % 最後の著者?
              {
                numnames #2 =   % 2人なら
                  { " and " * }
                  { ", and " * }% 3人なら
                if$
              }
              { ", " * }        % 中間の著者
            if$
          }
        if$
      }
      'skip$
    if$

    % ---- 著者名の出力(姓, 名イニシャル)----
    s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=

    % ---- 4人以上の場合の処理 ----
    numnames #4 >= nameptr #3 = and
      { " et~al." * #99 'nameptr := } % et al. を付けてループ終了
      { nameptr #1 + 'nameptr := }    % 次の著者へ
    if$
  }
  while$
}


FUNCTION {format.authors}
{ author empty$
    { "author missing" }
    { author format.names }
  if$
}
------------------------------------

epsファイル,pdfファイル が取り込めない

- ichizen 1971 の投稿

これまで,TeXLive2016のもと,古いMacで利用していました。

7月に新しいMacbookairを買い,美文書第9版の解説に従い,ダウンロードでTeXLive2025をセットアップしました。Pathも何とかうまく切れました。emathも新しいうまく作動させることができました。

PDFファイル,EPSファイルを¥inputで読み込もうとコンパイルすると次のエラーが出て止まってしまいます。

対処方法いろいろ調べてもよくわかりません。

困っています。アドバイスいただけると助かります。

次のエラー表示で止まります。

\edef \Gin@ext {\Gin@sepdefault \filename@ext }\ifx \Gin@ext \ETC.

もう少し長くさらにコピペしておきます。


(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.cod
e.tex
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothan
dlers.code.tex)
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.cod
e.tex)
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie
s/tikzlibrarytopaths.code.tex)))
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie
s/tikzlibraryarrows.code.tex
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.
code.tex))
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie
s/tikzlibrarypatterns.code.tex
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/libraries/pgflibrarypattern
s.code.tex))
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie
s/tikzlibraryplotmarks.code.tex
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmar
ks.code.tex))
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie
s/tikzlibrarybackgrounds.code.tex)
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie
s/tikzlibraryfit.code.tex) (./gnuplot-lua-tikz-common.tex))
(/usr/local/texlive/2025/texmf-dist/tex/latex/parskip/parskip.sty
(/usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty
(/usr/local/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty)
(/usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty))
(/usr/local/texlive/2025/texmf-dist/tex/latex/etoolbox/etoolbox.sty)
Couldn't patch \@startsection
) (/usr/local/texlive/2025/texmf-dist/tex/latex/epstopdf-pkg/epstopdf.sty
(/usr/local/texlive/2025/texmf-dist/tex/generic/infwarerr/infwarerr.sty)
(/usr/local/texlive/2025/texmf-dist/tex/latex/grfext/grfext.sty
(/usr/local/texlive/2025/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty))
 (/usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty)
(/usr/local/texlive/2025/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty

Package epstopdf Warning: Drivers other than `pdftex' and `luatex' are not supp
orted.

))
(/usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def)
 (./tiger_20210214.aux)
*geometry* detected driver: dvipdfm
Runaway argument?
"tiger.eps" \edef \Gin@ext {\Gin@sepdefault \filename@ext }\ifx \Gin@ext \ETC.
./tiger_20210214.tex:39: Paragraph ended before \@tempa was complete.
<to be read again> 
                   \par 
l.39 
     Runaway argument?
"tiger.eps" \edef \Gin@ext {\Gin@sepdefault \filename@ext }\ifx \Gin@ext \ETC.
./tiger_20210214.tex:50: Paragraph ended before \@tempa was complete.
<to be read again> 
                   \par 
l.50 
     
? ? 

dvilualatex-dev.fmt を作成するには

- 栃折 成紀 の投稿

Windows11 で、TeX Live2025 をインストールしています。ただしネットワークインストーラや ISOイメージによるインストールでなく、CTAN の archive から必要なファイルだけ入れ、ディレクトリ構造をカスタマイズするという、好き勝手なことをしています。これにより、platex, dvips, dvipdfmx などが恐らく正常に動作していることを確認しています。

fmtファイルは

 fmtutil-sys --all

により作成できますが、この過程で dvilualatex-dev.log は作成されるが dvilualatex-dev.fmt は作成されないという現象が生じています。platex.fmt などの他の fmtファイルは全て作成できています。dvilualatex-dev.log を見てもどのファイルが欠如しているかなどが分からず、加えて、ネットで「dvilualatex-dev」などで検索してもヒントになるような情報が見当たらず、当フォーラムに投稿させていただきました。こうすれば dvilualatex-dev.fmt は作成されるという点があれば教えていただけますか?dvilualatex-dev.log を添付致します。

Pathを編集したらtexが使えなくなった。

- A D の投稿

別ソフト(Pari-GP)を使う為にシステム環境変数のPathを編集したら、その後5時間ほどは問題なくtexが使えていましたが、Pathの編集後から5時間後にtexが使えなくなりました。一部のファイルでエラーが出ているのではなく、今まで上手く使えていた全てのtexファイルで動かなくなってしまいました。

使用環境等:

windows11

pdfTeX 3.141592653-2.6-1.40.25 (TeX Live 2023)
kpathsea version 6.3.5

エラーメッセージ:

This is ptex2pdf[.lua] version 20200520.0.

Processing empty.tex

Invalid PATH setting found. Please ensure that cmd.exe can be found.

ptex2pdf processing of empty.tex failed.

エラーが出るコードの一例:

\documentclass[dvipdfmx]{article}

\usepackage{amsmath,amssymb,amsthm}

\usepackage{graphicx,color}

\setlength{\topmargin}{-0.5cm}

\setlength{\oddsidemargin}{0.50cm}

\setlength{\evensidemargin}{-0.5cm}

\setlength{\textheight}{20cm}

\setlength{\textwidth}{12cm}

\newtheorem{thm}{定理}[section]

\newtheorem{defn}{定義}[section]

\newtheorem{exmp}{例}[section]

\newtheorem{lem}{補題}[section]

\newtheorem{prof}{証明}[section]

\newtheorem{prop}{命題}[section]

\newtheorem{rem}{注意}[section]

\newtheorem{cor}{系}[section]

\newtheorem{axm}{公理}[section]

\newtheorem{excs}{Ex}[section]

\renewcommand{\theenumi}{\roman{enumi}}

\renewcommand{\labelenumi}{(\theenumi)}

\begin{document}

empty

\end{document}

システム環境変数のPathの変数値:

C:\texlive\2023\bin\windows;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SystemRoot%\System32\WindowsPowerShell\v1.0\;%SystemRoot%\System32\OpenSSH\;C:\Users\victo\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Pari64-2-17-1;C:\Users\victo\AppData\Local\Programs\Microsoft VS Code\bin;



以下試したことと、その結果。

①コマンドプロンプトにて、

platex empty.tex
dvipdfmx empty.dvi と2段階で実行した→レイアウトはずれたものの、PDFが生成された。

②Pathの中で、C:\texlive\2023\bin\windowsが一番上にくるようにした→変化なし。

japanese-otf 2025-07-24

- t tk の投稿

japanese-otf (いわゆる「OTF パッケージのベータ版」とその upTeX 対応版)
が CTAN で更新されました。
お知らせと更新内容の紹介です。

japanese-otf-uptex Ver.0.32の更新を含んでいます。

[1] \UTF{}, \UTFC{}, \UTFT{}, \UTFK{}, \CID{}, \CIDC{}, \CIDT{}, \CIDK{}のマクロを
platexとともに使う場合、Unicode/CIDベースの7書体のvirtual fontをデフォルトで使うようにしました。
本機能を使うにはeuptex v2.00以降(TeX Live 2025以降; 正確にはr73271以降)をエンジンとしたplatexであることが必要です。
\UTFC{}, \UTFT{}, \UTFK{}, \CIDC{}, \CIDT{}, \CIDK{}はplatexとともに使う場合従来は2書体でした。
Unicode/CIDベースではなく従来のsubfont方式のvirtual fontを使用したい場合のために
otf.styに'subfont'というオプションを追加しました。

詳細は
pLaTeXでも\UTF*{}, \CID*{} を非subfont方式化、多書体化
に記載しています。

\UTFC{}, \UTFT{}, \UTFK{}, \CIDC{}, \CIDT{}, \CIDK{}のマクロのための従来のsubfont方式のvfとtfmをCTANパッケージから削除しました。
platexとともに'subfont'オプションで当マクロを使用する場合には、旧版に付属のvf,tfmを使用するかまたはソースコードに含まれているスクリプトから生成する必要があります。

[2] 中国語韓国語の本文用virtual fontにSVS(Standardized Variation Sequence)の文字を追加しました。

詳細は
[jotf-uptex] IVSを伴う異体字、合成を伴う仮名
に記載しています。

beamer の数式ラベルが二重に登録される

- Toshio Otaguro の投稿

Beamer を使い始めた初心者なのですが,数式にラベルを付けるとそのラベルがダブって登録されて警告が出ます.出力は期待通りに出るのですが,気持ちが悪いので警告を消す方法はないでしょうか?以下再現ソースです.

\documentclass[unicode,xcolor={svgnames},%
    hyperref={colorlinks,citecolor=Red,linkcolor=Red,urlcolor=Blue}]{beamer}
    \usetheme{Copenhagen}
    \usefonttheme{professionalfonts}

\usepackage[haranoaji,no-math,deluxe]{luatexja-preset}
    \renewcommand{\kanjifamilydefault}{\gtdefault}
\usepackage[TU]{fontenc}
\usepackage{amsmath,amssymb}

\begin{document}
\begin{frame}{数式ラベルの例}
    以下は有名な二次方程式の解の公式です:
    \begin{equation}\label{eqn:quadratic_formula}
        x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
    \end{equation}
    式\eqref{eqn:quadratic_formula}は二次方程式の解を表します。
\end{frame}
\end{document}
 
これを lualatex で2回コンパイルするのですが,毎回
warning  (pdf backend): ignoring duplicate destination with the name 'eqn:quadratic_formula'
と警告が出ます.snm ファイルにはこのラベルがダブって登録されています.
\beamer@slide {eqn:quadratic_formula}{1}
\beamer@slide {eqn:quadratic_formula}{1}
元になっているはずの aux ファイルの該当部分は以下の通りです.
\@writefile{snm}{\beamer@slide {eqn:quadratic_formula}{1}}
\newlabel{eqn:quadratic_formula}{{1}{1}{}{eqn:quadratic_formula}{}}
\@writefile{snm}{\beamer@slide {eqn:quadratic_formula}{1}}
 
\documentclass で beamer を読み込むときの hyperref のオプションを外しても同じです.また,図や表にラベルを付けてもこのようなことは起こりません.
タグ:

mendex/upmendex と makeindex での空入力に対する挙動の違い

- Lemures Lemniscati の投稿

makeindex では入力が空でも exit code は 0 なのですが,
$ makeindex < /dev/null ; echo $?
This is makeindex, version 2.17 [TeX Live 2025] (kpathsea + Thai support).
Scanning input file stdin...done (0 entries accepted, 0 rejected).
Nothing written in stdout.
Transcript written in stderr.
0

mendex/upmendex だと exit code が 255 になります.
$ mendex < /dev/null ; echo $?
This is mendex version 3.8 [09-Feb-2025] (utf8.uptex) (TeX Live 2025).
Scanning input file stdin....done (0 entries accepted, 0 rejected).
0 entries accepted, 0 rejected.
Nothing written in output file.
255

$ upmendex < /dev/null ; echo $?
This is upmendex version 1.11 [ICU 76.1] (TeX Live 2025).
Scanning input file stdin....done (0 entries accepted, 0 rejected).
0 entries accepted, 0 rejected.
Nothing written in output file.
255

非常にニッチかつ些末なことで大変恐縮ですが,これはなにか意図があっての違いなのでしょうか.
できれば共通のほうがよいのですが……

※ exit code の違いのほかにも下記のような微妙な違いがありましたが,これはどちらでもよいような気がします.
mendex/upmenex  だと,0 entries accepted, 0 rejected. が(ある意味,二重に)出力されるが,makeindex では(ある意味,一度しか)出力されない.
makeindex だと,Nothing written in stdout. が出力されるが,mendex/upmendex では Nothing written in output file. が出力される.
makeindex だと,Transcript written in stderr. が出力されるが,mendex/upmendex では出力されない.

目次を編集したい

- ko yuki の投稿

jlreqのbookオプションで、縦書きの日本語文章(小説)を記述しようとしています。

\tableofcontentsで表示される目次を次のように変更したいと考えています。

  1. 第n章や「1.3」などの章番号?を表示せず、章の名前だけを表示したい。
  2. 通常、「・・・」を使ってページ番号までの導線があるが長すぎて鬱陶しい箇所があるので、これを別の文字(例えば「---」など)に変更する
  3. ページ番号が表示される部分を文書の上方向(横書き文書なら左方向)へずらしたい

想定している出力結果は次のようなものです(ローカル環境では縦書き文書で作成していますが、フォーラム上では横書きで記述しています)

目次

走れメロス・・・・・・4

 第一節・・・・・・・・4

 第二節・・・・・・・・7

人間失格・・・・・・・10

 第一節・・・・・・・・10

 第二節・・・・・・・・15

以上、何か解決策などあればご教示いただけると幸いです。

よろしくお願いします。

添付 無題.png

ltj-adjust.lua でエラーが出る

- Toshio Otaguro の投稿

私は lualatex + jlreq で日本語の文章を書いている者です.先月14日頃の luatexja の改訂以降 postnotes パッケージを使うと ltj-adjust.lua においてエラーが出るようになってしまいました.以下再現ソースです.

\documentclass[lualatex,paper=b5j,book,openany,hanging_punctuation]{jlreq}
\usepackage[haranoaji,no-math,deluxe]{luatexja-preset}
\usepackage{postnotes}
\postnotesetup{%
  heading=\section*{注},%
  listenv=postnoteslisthang,%
  postprintnote=\vspace{3pt}
}
\begin{document}
\chapter{序章}
この章では対流圏\postnote{\;対流圏に関する注.}における高度補正について論じる.
\printpostnotes
\end{document}
 
エラーは
warning  (append to vlist): error: ...xlive/2025/texmf-dist/tex/luatex/luatexja/ltj-adjust.lua:425: Attempt to node.direct.remove() a non-existing node
.
<argument> ...hskip:D \c_zero_dim \fi: \tex_par:D
                                                  \hook_use:n {para/after}\@...
 
というもので,ltj-adjust.lua の 425 行目で発生しています.存在しないノードを取り除こうとしてエラーとなっているようです.付随する症状として,\postnotesetup の最後の行の postprintnote をコメントアウトするとエラーが出なくなります.また \postnote{} 中身の末尾の全角ピリオドを取り除いてもエラーが出なくなります.これは奇妙.
 
応急処置として ltj-adjust.lua の該当部分をコメントアウトして使っています.これは luatexja 側に問題があるのでしょうか?それとも postnotes 側に問題があるのでしょうか?各種パッケージは tlmgr によって最新版にしています.どなたかご教示いただければ幸いです.

\usepackage[x-4]{pdfx}によって色味が変わってしまう

- KK TeX の投稿

今度入稿しようと思っている資料がありまして、普段 LuaLaTeX と jlreq によって組んでいたpdfを

\usepackage[x-4]{pdfx}

で無理やりX4形式に合わせてコンパイルしてみました。そうしたところ、このパッケージの読み込み以前に比べて全体的に色味が薄くなってしまいました。

自分は入稿や印刷に関して全くの初心者ですので、正直余りよくわかっていない状態で pdfx を読み込んだのですが、こういった症状を回避する方法はありませんでしょうか。