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

upTeX u2.00, Unicode合成文字、異体字セレクタ、Unicode 16bit欧文

- t tk の投稿

TeX Live 2025 が出ています。
(e)upTeX にかなり大きな更新を2つ入れupTeX u2.00 という版数でリリースしましたのでご紹介します。
副作用が出ないよう配慮しているつもりでしたが少々出てしまっているようです。それにも少し触れます。

(1) Unicode合成文字と異体字セレクタ(IVS, SVS)への対応
Unicodeでは,一つの文字を表すために複数のコードポイントの連なり(シーケンス)で示すことが規定されている文字があります。
その例が異体字セレクタ(IVS, Ideographic Variation Sequence/Selector)や絵文字シーケンス、JIS第3水準の半濁点付き仮名などです。
upTeX では従来それらの合成文字をUTF-8のプレーンテキストの入力で扱うことができませんでしたが、今回それに対応しました。

この対応のためupTeX独自の内部コードを使用しています。
現在のところ、出力側はこの文字コードを従来の文字コードに対応づける virtual font を用意する必要があります。
以下のvirtual fontにはIVSやSVSのエントリーを入れました。
* uptex-base の配布に含まれる up{jpn,sch,tch,kor}{rm,gt}-{h,v}.vf,upjis{r,g}-{h,v}.vf にSVSのエントリー
* japanese-otf の配布に含まれる upnml{minr,gothr,minb,gothb,mgothr,gotheb,minl}{,n}-{h,v}.vf にSVSとIVSとJIS第3水準の半濁点付き仮名のエントリー

これらを扱うのに dviware などの関連ソフトにも新規の拡張が要りますが、dvips, dvipdfmx, omfonts, ovp2ovf, ovf2ovp, updvitypeは対応済みで、TeX Live 2025 に含まれています。

ご利用の環境によってはIVS, SVS等を使用しないのにも関わらず処理が重くなる、などの副作用がでているようです。
その場合は、お手数ですが、とりあえずはvirtual fontをTeX Live 2024のものに戻せば元の水準に戻るはずです。

技術的な詳細は、↓で議論しています。
https://github.com/texjporg/tex-jp-build/issues/46

(2) Unicode 16bit欧文への対応 (実験的)
upTeX では従来ラテン文字・ギリシャ文字・キリル文字については欧文8bit TeXと同様のエンコーディング(T1,LGR,T2A等)でのみ扱うことが可能で、U+007Fよりも大きな文字コードのUnicodeの欧文をUnicodeのまま扱うことができませんでしたが、今回それに一部対応しました。
欧文として扱える文字コードの最大値は U+2E7F までという制限があります。メトリックの読み込みは OFM Level-0か、TFM(T1,LGR,T2A等からUnicodeへのコード変換を介してUnicodeとして扱う)が指定可能です。
kcatcode=14(latin_ucs)を指定するとupTeXエンジンはUTF-8の入力を16bit欧文として扱います。

dviware などの関連ソフトは従来の(u)pTeX対応のものがそのまま使えます。
厳密にはomega対応が必要なのですが、(u)pTeX対応の関連ソフトは大抵すでにomegaも対応しているためです。

本機能を実用にするにはフォントの用意が必要なもののまだまだ整備途上であるため、実験的と称しています。
ただし、従来の8bit欧文も同じルーチンを通過するため、従来と同じ使用法であっても今回の拡張の影響が思わぬ形で出ないか心配しています。
お気づきの点があればお知らせください。

技術的な詳細は、↓で議論しています。
https://github.com/texjporg/tex-jp-build/issues/170

どちらの更新も、upTeX開発の初期の頃(2007年頃)以来17年ぶりの久々の大改造のレベルです。
フィードバックは大歓迎です。

TL2025でSTIX2とNewComputerModernの積分記号が変わった?

- m c の投稿
TL2025がリリースされたので,早速ダウンロードして使っています.
LuaLaTeXでunicode-mathを使って数式フォントを変更しているのですが,STIX2とNewComputerModernで積分記号が直立体になってしまいます.
TL2024ではこのようなことはありませんでした.

サンプル図は,左がTL2025(各フォントで記述),右がTL2024(積分記号だけフォントを変更しており,他はTeX Gyre Termes Math)です.

どなたかこのあたりの事情と対応策(STIX2とNCMの積分記号をスラントにする)についてご存知でしたら,ご教示いただければ幸いです.
添付 TL2025_integral.png

目次に謝辞を追加すると参考文献の表示が崩れる現象について

- Y O の投稿

お世話になります。

論文に同梱されているクラスファイルを用いてビルドしたところ、目次における参考文献の項目が「chapter参考文献4」という表示となり、想定する「参考文献   4」と異なる結果となりました。以下の画像は、その現象が再現できる最小限のコードによる目次ページです。

なお、私の環境はWindows PCにてTeX Live 2023を使用しており、以下のコマンドでビルドしています。
latexmk -pdfdvi .\main.tex
目次のページで、「謝辞」以降に「参考文献」があるべきですが、「chapter参考文献」と表示されており、想定と異なる様。
一方、Overleaf上でTeX Liveの各バージョン(2017~2024)を試したところ、TeX Live 2017~2021では正常な表示(「参考文献   4」)が得られるのに対し、TeX Live 2022以降では、Windows PCでのビルド時と同様の異常表示が確認されました。

以下に、正常な結果が得られた場合の目次の画像を示します。
先の例では「chapter参考文献4」と表示されたが、「参考文献  4」と正しく表示された様子

さらに、クラスファイル内の謝辞(acknowledgment)の定義を調査した結果、元々の定義は下記のようになっていました。

\def\acknowledgment{\par
\newpage
\thispagestyle{plain}
\addtocontents{toc}{\protect\contentsline{chapter}%
{\hbox to\@tempdima {\hfil }謝辞}{\thepage}}%
{{\large \bf 謝辞} \ignorespaces}\newline\indent}

これを、以下のように変更すると新しいTeX Live環境でも正常な結果が得られることに偶然気付きました。

\def\acknowledgment{\par
\newpage
\thispagestyle{plain}
\addtocontents{toc}{\protect\contentsline{chapter}%
{\hbox to\@tempdima {\hfil }謝辞}{\thepage}{}}%
{{\large \bf 謝辞} \ignorespaces}\newline\indent}

第4引数として空を与える点に着目すると、\contentslineは通常3つの引数を取るものと認識しているため、なぜこの変更で正常表示が得られるのかが分かりません。またTeX Live 2021から2022へのバージョンアップに伴い、今回の現象に関連する何らかの仕様変更があったと思われますが、マクロ作成については殆ど経験がなく、原因の特定ができず困惑しております。

以上の現象の原因および、上記の変更がどのように正常な結果に寄与したのかについて、ご教示いただけますと幸いです。

よろしくお願いいたします。

jlreq における見出し系の上部マージンについて

- 上山 英二 の投稿

LuaLaTeX + jlreq で次のような \secion コマンドを定義しています:

\ModifyHeading{section}{
    font={\Large\bfseries\gtfamily},
    format={#1#2},
    before_space=1.5\baselineskip,
    after_space=\baselineskip,
    label_format={\thesection{}},
    after_label_space=\zw,
    pagebreak=nariyuki,
}
 
 
この場合,改ページ(pagebreak)されてセクションタイトルがページの先頭に来た際に,その上部にも余白が挿入されて無駄なスペースが生まれてしまい,若干見栄えが悪くなってしまいます.
特にこれは多段組にした際に顕著に表れ,\section の前後で columnbreak され見出しが column の先頭に来ると,その上部にマージンが挿入されるせいで他の column と文章の高さが合わずにどうしても微妙な体裁になってしまいます.
これを jlreq でどうにかする(ページ先頭にセクションタイトルが来る際に上部マージンが挿入されないようにする)方法はございますでしょうか.
一応比較用の pdf も上げておきます.
 

tikzで無理関数を描写するとき,端が消えてしまう件

- シグマ シグマ の投稿

windows10,texlive2019を使用しています.

tikzでグラフを描画する際,半円を描こうとして

\draw[domain=-1:1, samples=100] plot(\x, {sqrt(1-(\x)^2)});
 
とすると,(1,0)に近い部分のグラフが微妙に消えてしまいます.
 
domainの範囲を入れ替えて
 
\draw[domain=1:-1, samples=100] plot(\x, {sqrt(1-(\x)^2)});
 
とすると,今度は(-1,0)に近い部分のグラフが消えてしまいます.
 
samplesの数値を変えても解決しません.
 
どうすれば,グラフの端(片方)が消えないようにできるかご教示頂けると幸いです.
 
ちなみに,半円を媒介変数表示すれば,上記の問題が解決できるのは確認済です.
 
 

表組みに再現性が無い

- ueki ichiro の投稿
Windows11の富士通ノートパソコンに23年版のTEXをのせて論文を書いています。二つの表組みファイルを作った後で
一方のプリアンブルを消してもう一方のプリアンブルを移植して、二つの表組みファイルのプリアンブルを同じにしました。
ところが両者をタイプセットすると、移植元のファイルは正常な表になりますが、移植されたファイルは1ページ目が空白になり、
末尾が切れてしまいます。移植されたファイルをタイプセットして正常な表を作るにはテキストをどう直したらよいでしょうか。
両ファイルのプリアンブル比較、タイプセットした1ページ目の比較、テキスト末尾比較、タイプセット末尾比較のスクリーンショットを
添付します。なお二つのファイルは内容は同じで配列順を変えたものです。
植木



添付 タイプセット先頭比較.png
添付 タイプセット末尾比較.png
添付 テキスト末尾比較.png
添付 プリアンブル比較.png

相互参照、\pageref \label でページ数の漢字表示について

- mr2h の投稿
表記については 2021/01/11 に本田様にmacro をご提示していただき、とても具合よく、利用させていただいておりました。ところが最近、関連する仕様が変わったのかもしれませんが、表示がおかしいのです。私の使用方法に問題あり、かもしれませんが。教えてください。 ① 教えていただいたmacro % ----- 2021/01/11 honda: qa_3009 ----- % cf. 2017/09/27 plcore.dtx v1.2s: \@setref: 相互参照のスペースファクターを補正. \makeatletter \def\page@setref#1#2#3{% \ifx#1\relax \protect\G@refundefinedtrue \nfss@text{\reset@font\bfseries ??}% \@latex@warning{Reference `#3' on page \thepage \space undefined}% \else \kansuji\expandafter#2#1\protect\@setref@{}% change \null to \protect\@setref@{} \fi} \def\pageref#1{\expandafter\page@setref\csname r@#1\endcsname \@secondoftwo{#1}} \makeatother ②不具合の内容 例えば、 16ページにある、春草\label{poem;01}とラベル付けしたのを、注(\pageref{poem:01}ページ参照) というふうにページ参照しますと、 以前は正しく、 注(十六ページ参照)と表示されたのに、 最近はいつの間に、注(十六enumi.4ページ参照)となります。 enumi.4 がなぜか紛れ込んで邪魔なのです。 質問の要領が悪くて、的を得ていないとおもいますが、 以前のような表示に戻したいのです。 win11, texlive2024,jlreqを使用。縦書きuplatex です。

数式の下付き添え字について

- dai ue の投稿

添え字が数字($v_1$)ならば,綺麗なバランスで表示されるんですが,$v_A$のように小文字のアルファベットに大文字のアルファベットを下付き添え字にすると,vに対してAが大きすぎてバランスが悪くなってしまいます。

v_1とv_Aの出力

もう少し,vに対するAを小さくしたいのですが,解決方法はありませんか?

※Cloud LaTexでpLaTeX+dvipdfmxで動かしています。

jlreqで脚注に空行が入る

- 珀海 白鷺 の投稿

jlreq で脚注を利用したところ,余計な空行が入ってしまい困っています.

--- サンプル ---

\documentclass[
    fontsize        = 10pt,
    jafontscale     = 0.92469,
    line_length     = 35zw,
    number_of_lines = 30,
    paper           = a5paper,
]{jlreq}

\begin{document}

ああ\footnote{
    重 複した素数を含めてよいことに注意せよ.
    例えば $ 2 $ は素数で $ 4 = 2 \cdot 2 $ は合成数である.
    % \kern-5\zw \quad
}か\footnote{
    いいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい
}ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ

\end{document}

--- サンプルここまで ---

サンプル中でコメントアウトしている行をアンコメントすると一応は空行が消えますが,

毎度出力を確認してこの行を入れるというのは避けたいので何か策があればご教示ください.

よろしくお願いします.

beamerでtikzcdが使えないです。

- mathema の投稿
\documentclass[]{beamer}
%\usepackage[utf8]{inputenc}
 
\newcommand{\maru}[1]{\ooalign{
\hfil\resizebox{.8\width}{\height}{#1}\hfil
\raise.1ex\hbox{\large$\bigcirc$}}}%encircle
\usepackage{fancybox}%about frame
\usepackage{luatexja}%japanese
%\usepackage{natbib}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{cd}%tikzcd
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{babel}
\usetikzlibrary{arrows}
\usepackage{xcolor}
\usepackage{graphics}%reverse
\usepackage{graphicx}%about scalebox
\usepackage{amsmath,amsfonts,amsthm,amssymb,amscd,ascmac}%in order to  higher formula and mathfrak and so on.
\usepackage{latexsym, mathtools}%arrow
\usepackage{textcomp}%※
\usepackage{bussproofs}%prooftree
\usepackage{pifont}
\usepackage{subfigure}
\usepackage{lscape}%%revolve
\usepackage{stmaryrd}%bracket
\usepackage{cancel}%diagonal line on a letter
\usepackage{hyperref}%reference
\usepackage{setspace}%
\usepackage{soul}%下線
\usepackage{comment}
\usepackage{wrapfig}%回り込み
\usepackage{qrcode}
\usepackage{luatexja-otf}%ajRightBArrow等
\usepackage{multicol}%itemize並列版
\usepackage{enumerate}
\usepackage{tikz-cd}
\usepackage{mathrsfs}%花文字(スクリプトフォント)
\usepackage{tasks}%itemize並列版
\usepackage{wrapstuff}%回り込み改良版
\usepackage{pb-diagram}%可換図式
\usepackage{bxdpx-beamer}% dvipdfmxなので必要
\usepackage{babel}
\usepackage{lmodern}
\tikzset{aneg/.style={
preaction={decorate},
decoration={markings, mark=at position 0.5 with {\draw[red, -] (-1mm,-1.5mm) -- (1mm,1.5mm);}}
}}%tikzの線の斜線
 
 
\newtheorem{proposition}[theorem]{Proposition}
 
 
\definecolor{deepskyblue}{rgb}{0.0, 0.75, 1.0}
\definecolor{dodgerblue}{rgb}{0.12, 0.56, 1.0}
\definecolor{aliceblue}{rgb}{0.94, 0.97, 1.0}
\definecolor{lavenderblue}{rgb}{0.8, 0.8, 1.0}
\definecolor{lavender(web)}{rgb}{0.9, 0.9, 0.98}
 
\setbeamercovered{transparent}
\setbeamertemplate{theorems}[numbered]
\setbeamertemplate{footline}[frame number]
\setbeamertemplate{navigation symbols}{}
 
\newcommand{\red}[1]{\textcolor{red}{#1}}
 
\renewcommand{\baselinestretch}{1.3}%Leave a space between lines
\renewcommand{\arraystretch}{1}%arrayの行間を変える
 
\deftranslation[to=japanese]{Theorem}{定理}
\deftranslation[to=japanese]{Corollary}{系}% ある
\deftranslation[to=japanese]{Lemma}{補題}
%\deftranslation[to=japanese]{Proposition}{命題}% ない!
\deftranslation[to=japanese]{Example}{例}
\deftranslation[to=japanese]{Examples}{例}
\deftranslation[to=japanese]{Definition}{定義}
\deftranslation[to=japanese]{Definitions}{定義}
\deftranslation[to=japanese]{Problem}{問題}
\deftranslation[to=japanese]{Solution}{解}
\deftranslation[to=japanese]{Fact}{事実}
\deftranslation[to=japanese]{Proof}{証明}
\def\proofname{証明}
 
\parindent = 0pt%no indent
 
 
\usetheme{Madrid}%テーマは指定しなくともよい.
 
\usepackage[%
backend  = biber,
bibstyle = authoryear-comp,
citestyle= authoryear-comp
]{biblatex}
%
%\nocite{*}
\addbibresource{bib_name.bib}
 
\begin{document} 
\begin{frame}

\begin{tikzcd}
                    A \arrow[r, "\phi"] \arrow[d, red]
                    & B \arrow[d, "\psi" red] \\
                    C \arrow[r, red, "\eta" blue]
                    &D 
                \end{tikzcd}

\end{frame}

\end{document}

lualtexでcompileすると

error: 567: Package pgf Error: Single ampersand used with wrong catcode. \end{frame}

error: 567: Undefined control sequence. \end{frame}

error: 567: Package pgf Error: Single ampersand used with wrong catcode. \end{frame}

というエラーが出てきて添付画像の様な出力がなされます。

宜しければご教授お願いします。

添付 スクリーンショット 2025-02-07 181350.png