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

cloud latexとoverleafの違い

- 名前 無 の投稿
先日、プロフェッショナルの方から帳票出力のありがたいアドバイスをいただきました。それに関して新たに質問が生じてしまいました。
自分は、普段よりオンラインのLaTeXソフトを使っていまして、そのときに以下のプログラムを入力してみたところ、Cloud LaTeXではコンパイルができたのですが、Overleafではエラーがでました。理由がわかりません。
これからのためにも、TeXのシステムを理解したいのでどなたか助力いただけないでしょうか。
[[[入力したプログラム↓]]]

\documentclass[dvipdfmx]{jsarticle}

\newcommand{\帳票出力A}[5]{拝啓 {#1} {#2} 様\\
{#3}歳\\{#4}\\
性別:{#5}\\
}

\begin{document}
\noindent
\帳票出力A{田中}{林太郎}{14}{A}{男}
\end{document}

[[[Overleafでの出力結果↓]]]

A14A

[[[Cloud LaTeXでの出力結果↓]]]

拝啓 田中 林太郎 様
14歳
A


[[[エラー文↓]]]
but this is `LaTeX2e'.

See the LaTeX manual or LaTeX Companion for explanation.
Type H for immediate help.
...

l.14 \NeedsTeXFormat{pLaTeX2e}

The current input file will not be processed further,
because it was written for some other flavor of TeX.
You're in trouble here. Try typing to proceed.
If that doesn't work, type X to quit.

pLaTeX/upLaTeX/LuaLaTeX判定のベストプラクティスは?

- Ryuta Kudo の投稿

タイトルに示した通り、pLaTeX/upLaTeX/LuaLaTeXを判定したいと考えています。 自作のクラスファイル内でpLaTeX/upLaTeX/LuaLaTeXによって処理を変えたいものがあるためです。

pLaTeX/upLaTeX/LuaLaTeXを判定する方法はいくつかある(ifptexパッケージなどを利用する方法:https://qiita.com/zr_tex8r/items/71ae46c9c4e8cb575073 など)と聞き及びますが、pLaTeXがe-upTeXで動作するようになった場合でも、TeX Live 2022以前(pLaTeXがe-pTeXで動作している状態)でも正常に判定できる「ベストプラクティス」はいったい何でしょうか。


今までは、雑に

\NeedsTeXFormat{LaTeX2e}

下で,TeXエンジンがe-pTeX、e-upTeX、LuaTeXのどれかをiftexパッケージを利用して判定することでpLaTeX/upLaTeX/LuaLaTeXの判定を行っていましたが、pLaTeXがe-upTeXで動作するようになるとこれでは適切に判定できないかと思います。

そこで判定の処理を修正しようと思っているのですが、どう実装するのがベストなのか、ぜひご意見を頂きたいです。

ifptexなどのパッケージを利用したほうが安全なのでしょうか。 それともパッケージは使わずに判定したほうが保守しやすいでしょうか。 パッケージを使わない場合、どう実装するのが適切なのでしょうか。

当方はTeX/LaTeXに関する知識が浅く、自力では解決できそうにないため、皆様のお力をお借りできればと思っております。

数件のデータファイルをTeXファイルにインポート

- 名前 無 の投稿
概念だけでも知りたいです。

例えば、数人の名前と模試の点数や順位などがexcelデータファイルとしてあります。
このファイルのデータをTeXファイルにインポートして、各人の成績表を自動的に作成することをしたい場合、どのような命令がありますか?

丸投げで申し訳ないです。どなたか心優しい方、よろしくお願いします。

pandocで生成したPDFで引用符を正しい順序でかつ英文フォントで出力する方法について

- 小林 茂 の投稿
初めまして。pandocで次のようにしてinput.mdからPDFを生成しています。

pandoc input.md -o output.pdf --pdf-engine=xelatex --template=preamble.tex

preamble.texとinput.mdの内容は次のようになっています(和文にUD書体を指定しております)。

preamble.tex:
\usepackage{fontspec}
\setmainfont{Georgia}
\setsansfont{Arial}
\setjamainfont{BIZ UDMincho Medium}
\setjasansfont[BoldFont=BIZ UDGothic Bold]{BIZ UDGothic}

input.md:
---
documentclass: bxjsarticle
classoption: pandoc
papersize: a4
fontsize: 10pt
---

---
documentclass: bxjsarticle
classoption: pandoc
papersize: a4
fontsize: 10pt
---

# はじめに

彼は"Hello, world!"と言いました。

He said, "Hello, world!"

これでPDFの生成自体は問題なくできるのですが、一重および二重の引用符に適用されるのが英文フォント(Georgia/Arial)ではなく和文フォント(BIZ UDMincho Medium/BIZ UDGothic)となり、全角分の幅になってしまいます。また、日本語文章中の引用符の順序が逆になってしまいます(この問題はフォントの設定をしなくても起きるようです)。日本語文章中の引用符の順序を正しくしつつ、引用符に使用するフォントを英文フォントにすることはできないでしょうか。

環境は次のようになります。

TeX 3.141592653 (TeX Live 2023)
pandoc 3.1.2
macOS 12.6.3

何とか自力で解決できないかといろいろ試してみたのですが上手くできないため、どなたかのお知恵をお借りできればと思い投稿させていただいた次第です。お手数をおかけいたしますが、どうぞよろしくお願いいたします。
添付 pandoc test 2023-04-09 20.48.45.png

欧文フォントの文字間隔指定

- 土屋 勝 の投稿
既成フォームに重ねて印刷するため、LuaLaTeXで欧文フォントの文字間隔を指定するにはどうすれば良いのでしょうか。

ドキュメントクラスはjlreqを使い、タイプライター体の欧文英数字文字列の文字間隔を指定したいのですが、方法がわかりません。下のサンプルだと\IDの箇所です。邦文のkanjiskipに相当する命令が無いかと探してみたのですが、見つかりませんでした。

この文字列は5~10文字程度の任意長。CSVファイルからdatatoolパッケージで読み込み、tikzでレイアウトしています。1文字ごとにスペースを挿入する、といった方法は無しで。

\documentclass[a6paper]{jlreq}
\usepackage{luatexja-fontspec}
\usepackage{tikz}
\usepackage{datatool}
\begin{document}
\pagestyle{empty}
\DTLloaddb{data}{sample.csv}
\DTLforeach*{data}{\Name=name,\Kana=kana,\ID=id}{%
\noindent\begin{tikzpicture}
\node (id) at (0,0) {\texttt\ID};
\node [below of =id](name) {\Name};
\node [right of = name, xshift=10mm] (kana) {\Kana};
\end{tikzpicture}
\newpage
}
\end{document}

sample.csv

name,kana,id
山田太郎,ヤマダタロウ,PG12481
中村花子,ナカムラハナコ,AXU310
田中一郎,タナカイチロウ,BOC8D14

Can't Install

- Johny Why の投稿
Getting "broken pipe" error. Full error here: https://gcdnb.pbrd.co/images/XkJcJvtdC12B.png I removed "ming" from path, as described here: https://okumuralab.org/tex/mod/forum/discuss.php?d=3534 That didn't help. seems to be a gui problem. Command line install works.
添付 Tex Live.jpg
タグ:

\noexpand の動作は、どのように考えるとよいか

- ut の投稿
今月(?)、一部界隈で \noexpand が話題になっていたみたいなので、便乗して私も少
し考えてみました。
(実用性は考慮していません)
(興味本位なので、\noexpand の扱いについて何か困っているということではないです)

以下は、飽くまで「説明の試み」であって、以下の説明が正しいと主張しているわけでは
ありません。

ですから:

  (1)もっといい説明の仕方がありましたら、教えていただけると嬉しいです。

  (2)以下の説明が間違っていて、以下の説明には当てはまらない例がありましたら、
     やはり教えていただけたら嬉しいです。

なお、「もっと正確な説明」があるだろうなということは承知していますが、TeXbook よろしく
"deliberate lying" な説明のほうが、私のような素人には助かります。


=================================================================
\noexpand の動作についての "仮説"
(以下の説明が正しいという保証は一切ありません)
=================================================================

コントロールシーケンス \cs が展開可能なトークンであるとする。

このとき、"\noexpand\cs" は、展開処理に曝されるとまず \cs へと展開される。この
\cs は、引き続き間髪入れずに展開処理に曝されると、一時的に \relax の意味となって
展開が抑制されていて、展開はされずに、そのまま胃へと送られる。
(\edef の置換テキスト部分の \noexpand は、この場合に相当する)

他方、"\noexpand\cs" が一旦 "展開が抑制された \cs" へと展開された後、何らかの処理
が挟まった後に、再び展開処理に曝された場合には、"展開可能な \cs" へと展開された後、
実際に、展開される。

「展開処理に曝される」場合としては、\edef による定義の場合の他、TeX の口で処理さ
れるときや、\expandafter によって展開されるとき、また、カウンタへの代入の際にど
こまでが数値であるのかを事前に(?)スキャンされるとき、などがある。


【例 1】 TeX の口で 1 回展開され、引き続き TeX の口の展開処理に曝された場合

例えば:

  \noexpand\foo

が、TeX の口による展開処理に曝された場合には、"\noexpand\foo" はまず:

  \foo

へと展開される。続いて、間髪入れずに TeX の口による展開処理はこの \foo を展開し
ようとするが、この \foo は一時的に \relax の意味になっているので展開は抑制されて:

  \foo

のママ、胃へと送られる。


【例 2】 1 回だけ展開した場合

例えば:

  \expandafter\meaning\noexpand\foo

が、TeX の口による展開処理に曝されると、\expandafter が展開されて、その働きによ
り "\noexpand\foo" が 1 回展開されるので:

  \meaning\foo

となる。ここで \foo は一旦 \relax の意味になっているので、結果として:

  \relax

と出力される。


【例 3】 断続的に 2 回、展開処理に曝された場合

例えば:

  \def\foo{bar}

と定義されているとき:

  \expandafter\expandafter\expandafter\meaning\noexpand\foo

は、まず、TeX の口によって最初の \expandafter が展開されて、その働きにより、3 番
目の \expandafter が展開されて、その働きにより、"\noexpand\foo" が展開されるので、
まず:

  \expandafter\meaing\foo

となる。次に、TeX の口が遭遇するのはまた \expandafter であって、この \expandafter
が展開されることによって、\foo が再度展開されて "普通の \foo" となり、結果として
その意味が:

  macro:->bar

と出力される。

この場合には、"\noexpand\foo" が 1 回展開されて \foo となった後に、2 番目の \expandafter
の展開という処理が挟まっていて、"\noexpand\foo" が連続して展開処理に曝されている
のではないので、2 回目の展開処理に曝されると \foo は "展開可能な \foo" となって、
その意味が "macro:->bar" と出力されている。


【例 4】 断続的に 3 回展開した場合

\expandafter を 7 個使って "\noexpand\foo" を 3 回展開してみると、\meaning の結
果は:

  the letter bar

と出力される。


【例 5】 カウンタへの値の代入の後ろに続く場合

例えば:

  \newcount\countA
  \def\foo{456}

と定義されているとき:

  \countA=123\noexpand\foo

は、まず TeX は、\countA に代入される数値を確定するために、スキャンをする。"123"
の次に展開可能なコントロールシーケンスが続いているので、これが数値に展開されるか
も知れないので、それを一回展開する。"\noexpand\foo" は \foo に展開されるが、これ
は一旦 \relax の意味なので、数値ではない。

したがって、\countA には、"123" が代入される。

続いて、TeX の口は \foo に遭遇するが、この場合、"\noexpand\foo" の一回展開の後に、
\countA への値の代入という処理が挟まっているので、TeX の口による展開処理は、\foo
を展開できてしまう。

したがって、"456" が出力されることになる。


\documentclass{article}
\begin{document}

\ttfamily

1: \noexpand\foo

2: \expandafter\meaning\noexpand\foo

3: \def\foo{bar}\expandafter\expandafter\expandafter\meaning\noexpand\foo

4: \expandafter\expandafter\expandafter\expandafter\expandafter%
  \expandafter\expandafter\meaning\noexpand\foo

5: \newcount\countA\def\foo{456}\countA=123\noexpand\foo

\end{document}


※ 繰り返しになりますが、以上の説明は、私立文系初級ユーザーである私による「説明
  の試み」であって、以上の説明が正しいという保証は、まったくありません。

数式内の日本語

- シグマ シグマ の投稿
windows10,texlive2019を使用しています.

エラーではないのですが,数式内の日本語入力について質問がございます.

常識として,数式内の日本語はamsmath パッケージを読み込んでいる場合は,\text{}で日本語を囲むことになっていますが,\text{}で囲まなくても出力としては同じものが出ます(添付のファイル内で上が囲みなし,下が囲みあり).
\text{}で囲まなかったら,何かしら不具合や不都合が起こるものなのでしょうか.

日頃,日本語交じりの同値変形を多用するので,タイピングの負担を減らしたいのが正直な気持ちです.

ご教示いただければ幸いです.

b5サイズのpdfの大きさが揃いません

- 信男 水羽 の投稿
みずは@広島です。先日は全角数字と半角数字の扱いについて、貴重なアドバイスをいただき感謝しています。今回もまたお知恵を借りたいと思いメールしています。 texliveの2022で、以下のような作業をしているのですが、うまくゆきません。 ①ワードでb5サイズ(182mm×257mm)の表紙を作り、pdfファイルで保存する。 ②本文は次の設定で作成し、CubePDFUtillityというソフトで本文と表紙を結合する。 \documentclass[uplatex,dvipdfmx,B5paper,jbase=11pt,ja=standard]{bxjsarticle} ③しかし結合後のファイルをFoxit PDF Readerで確認すると、表紙が小さくなる(添付ファイルをご参照ください)。 紙に印字するには問題はないのですが、このファイルはネットで公開する雑誌のためなので、画面の大きさは一致させたいと願っています。

IllustratorにおけるComputer Modern フォントの表示

- sk attack の投稿
【環境】
ハードウエア: MacBook Air, Apple M2、
OS:macOS Ventura 13.2.1、
Illustrator: 27.4、
TeX: pdfTeX Version 3.141592653-2.6-1.40.25 (TeX Live 2023)

【トラブル内容】
以前、LaTeXiTを使って作成した数式をadobe illustratorで作成したepsの図に
コピペしました。当時はなんの問題もなかったのですが、先ほどそのファイルを
開いたら「ドキュメントにはこのコンピュータにないフォントが使われています」
という警告と共に「フォントの置換」のパネルが表示されます。
ちなみに対象になっているフォントは、
CMMI10, CMMI7, CMR10, CMR7, CMSY7
です。

同症状に関する過去の質問で次を見つけました:

https://okumuralab.org/tex/mod/forum/discuss.php?d=1048

このスレッドの最後のコマンドの「2013」を「2023」に変更した次のコマンド:

find /usr/local/texlive/2013/texmf-dist -name "*.pfb" -print -exec cp {} ~/Library/Application\ Support/Adobe/Fonts/ \;

を実行しフォントのコピーをお請いましたが、解決しません。

アドバイス頂けるとたすかります。