一般フォーラム

語彙集っぽいヘッダに特殊文字をだしたい

語彙集っぽいヘッダに特殊文字をだしたい

- ermito の投稿
返信数: 9
奥村本第7版附属のDVDからWindows 7に
TeXLive2016一式をインストールした環境で
pLaTeXを使用しています。

知人に教示をえて添付ファイルのようなスタイルファイルをつくりました。
これを本文末尾にしめすようなソースファイルで処理すると、
特殊文字をつかわないかぎりは、ただしく処理されます。
#\textipa{AAA}のある行をコメントアウトするとエラーがでません。
そしてヘッダの左右に見出し語が表示されます。

しかし、ヘッダに表示されるべき単語が特殊文字であるばあい、
#特殊文字というか、
#IPA環境ですとかインド系文字などのように
#特別にパッケージをよみこんで定義しなければならない文字種のようです
次のようなエラーがでて、処理できません。

%%%エラーの見本・ここから%%%
Overfull \hbox (11.55109pt too wide) in paragraph at lines 18--18
[]\T3/cmr/m/n/10 AAA [] \OT1/cmr/m/n/10 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
! Missing control sequence inserted.
<inserted text>
\inaccessible
l.54 \midasigo{う}{名}{あいうえお}
 
?
%%%ここまで%%%

どうしたらヘッダにも特殊文字が表示されるでしょうか。
ご教示いただければさいわいです。
よろしくおねがいいたします。

追伸
dici.sty
http://natura.di.uminho.pt/~jj/latex/dici-sty/
というスタイルファイルを使用すれば、このような問題はないようです。
しかし、すでに添付のgoisyuu.styにそった
ファイルを大量に作成していること、
XeLaTeXはふなれなのでさけたいということ、
下位見出しを字下げして表示するにはどうしたらいいのかわからないということ、
などがありますので、
goisyuu.sty
を修正することで解決したいとおもっています。

%%%見本ソースはここから%%%

\documentclass[a4j]{jsarticle}

\usepackage{tipa}
%%% 語彙集パッケージ
\usepackage{goisyuu}
%%% スタイル選択
\pagestyle{goisyuu}

\begin{document}

% \midasigo{<見出し語>}{<品詞>}{<語義説明>}
% \midasigo* とすると見出し語の前にの長さの線が出ます

\begin{ABC}{あ}
%次の一行をコメントアウトするとエラーでない
\midasigo{\textipa{AAA}}{n}{aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo*{あ}{名}{あいうえお}

\end{ABC}

\begin{ABC}{い}

\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}

\end{ABC}

\begin{ABC}{う}

\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}

\end{ABC}

\end{document}

%%%ここまで%%%


ermito への返信

Re: 語彙集っぽいヘッダに特殊文字をだしたい

- 飯島 徹 の投稿
goisyuu.styの2ヶ所の
\mark{#1}を\mark{\noexpand#1}に変更してはいかがでしょうか
飯島 徹 への返信

Re: 語彙集っぽいヘッダに特殊文字をだしたい

- ermito の投稿
飯島さま
さっそくの返信おそれいります。
ご教示のとおりの方法で、
IPA環境についてはうまくいきました。

ところが、実は本命はインド系文字です。
たとえばデーバナーガリ文字では、
次のようなエラーがでます。

%%%エラーの見本・ここから%%%
LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <30> not available
(Font) size <24.88> substituted on input line 18.

(I search kanjifont definition file: . . ))
! Incomplete \iffalse; all text was ignored after line 21.
<inserted text>
\fi
<*> ./mihon.tex
 
?
%%%ここまで%%%

これはどうしたらよいでしょうか。

ご教示いただければさいわいです。

よろしくおねがいいたします。

%%%見本ファイル%%%

\documentclass[a4j]{jsarticle}

%%% 語彙集パッケージ
\usepackage{goisyuu2}
%%% スタイル選択
\pagestyle{goisyuu}

\usepackage{tipa}
\usepackage{dev}

\begin{document}

% \midasigo{<見出し語>}{<品詞>}{<語義説明>}
%
% \midasigo* とすると見出し語の前にの長さの線が出ます

\begin{ABC}{あ}
%

\midasigo{{\dn k}}{名}{{\dn k}}
\midasigo{\textipa{AAA}}{n}{aaa}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo*{あ}{名}{あいうえお}
%
\end{ABC}

\begin{ABC}{い}
%

\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
%
\end{ABC}

\begin{ABC}{う}
%

\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
%
\end{ABC}

\end{document}



ermito への返信

Re: 語彙集っぽいヘッダに特殊文字をだしたい

- ermito の投稿
追記です。

IPAだけなら表示されるとおもいましたけれども、
補助記号がつくと、その部分は「トウフ」のような記号が下につくようです。

たとえば次のようなものを処理するとそうなります。
これも修正できればありがたく存じます。
ご教示いただければさいわいです。
よろしくおねがいいたします。

%%%見本ファイル%%%
\documentclass[a4j]{jsarticle}

%%% 語彙集パッケージ
\usepackage{goisyuu2}
%%% スタイル選択
\pagestyle{goisyuu}

\usepackage{tipa}

\begin{document}

% \midasigo{<見出し語>}{<品詞>}{<語義説明>}
%
% \midasigo* とすると見出し語の前にの長さの線が出ます

\begin{ABC}{あ}
%
%次の行でエラーでないが、ヘッダへの出力は「トウフ」つき
\midasigo{\textipa{\'AAA}}{n}{aaa}
\midasigo{あ}{名}{あいうえお}
%\midasigo{{kaa}}{名}{{\bn ka}}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo*{あ}{名}{あいうえお}
%
\end{ABC}

\begin{ABC}{い}
%

\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
%
\end{ABC}

\begin{ABC}{う}
%

\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
%
\end{ABC}




\end{document}

ermito への返信

Re: 語彙集っぽいヘッダに特殊文字をだしたい

- 飯島 徹 の投稿
\midasigoを変更しました
通常は
\midasigo{<見出し語>}{<品詞>}{<語義説明>}
ですが
ヘッダに表示したい文字列がコントロールシーケンスが含まれている場合は
\midasigo[<\noexpandを付加したヘッダに表示させる見出し語>]{<見出し語>}{<品詞>}{<語義説明>}
のように指定します
次の例を見ていただければ分かりやすいと思います

\documentclass[a4j]{jsarticle}
\usepackage{xparse,fancybox}
\usepackage{tipa}
\usepackage{dev}
\makeatletter
\NewDocumentCommand\ps@goisyuu{}{%
\let\ps@jpl@in\ps@plain
\let\@mkboth\markboth
}%
\RenewDocumentCommand\@oddhead{}{%
\underline{\hbox to\textwidth{%
\rlap{\textbf{\firstmark}}\hfill\llap{\textbf{\botmark}}}}%
}%
\let\@evenhead\@oddhead
\pagestyle{goisyuu}
\NewDocumentCommand\midasigo{sommm}{%
\IfBooleanTF{#1}{%
  ---
  #3%
  {\footnotesize{【\textbf{#4}}】}~
  #5%
  \IfValueTF{#2}{\mark{#2}}{\mark{#3}}%

}{%
  #3%
  {\footnotesize{【\textbf{#4}】}}%
  #5%
  \IfValueTF{#2}{\mark{#2}}{\mark{#3}}%
  \par
}%
}%
\NewDocumentEnvironment{ABC}{m}{%
\vspace{\baselineskip}
\begin{center}
  \noindent
  {\fboxrule=2\fboxrule
  \shadowbox{\vphantom{\HUGE{ly}}{\Huge\textbf{#1}}}}%
\end{center}
\vspace{1.45\baselineskip}
\setlength{\parindent}{-1ex}
\par
}{}%
\makeatother
\begin{document}
% \midasigo{<見出し語>}{<品詞>}{<語義説明>}
% \midasigo* とすると見出し語の前にの長さの線が出ます
\begin{ABC}{あ}
%次の一行をコメントアウトするとエラーでない
\midasigo[{\noexpand\dn k}]{{\dn k}}{名}{{\dn k}}
\midasigo[\noexpand\textipa{\noexpand\'AAA}]{\textipa{\'AAA}}{n}{aaa}
\midasigo[\noexpand\textipa{AAA}]{\textipa{AAA}}{n}{aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo*{あ}{名}{あいうえお}
\end{ABC}

\begin{ABC}{い}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\end{ABC}

\begin{ABC}{う}
\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
\end{ABC}
\end{document}
ermito への返信

Re: 語彙集っぽいヘッダに特殊文字をだしたい

- Z. R. の投稿

(私自身、markについてはよく知りませんが、情報として。)

最近のエンジンでは、\unexpanded という「完全展開文脈においてトークン列の展開を抑止する」ためのプリミティブが利用できます。

\mark の引数も完全展開されるようなので、もしかしたらこれが役に立つかも知れません。

Z. R. への返信

Re: 語彙集っぽいヘッダに特殊文字をだしたい

- 飯島 徹 の投稿
Z.R.さん情報ありがとうございます
最初のgoisyuu.styの\mark{#1}を\mark{\unexpanded{#1}}にしただけでコンパイルできました

ermitoさんへ
スタイルファイル内では\makeatletterおよび\makeatotherは不要です
タブ文字がある場合dev.styを読み込むとエラーが出たのでタブ文字をすべて消去します
\newenvironmentの書式がおかしいです
\newenvironment{環境}[引数の数]{はじめ}{おわり}ですが最後の{おわり}がないです(偶然により{おわり}がなくても動作している)
\newenvironment{ABC}の最後に{}を付加してください
飯島 徹 への返信

Re: 語彙集っぽいヘッダに特殊文字をだしたい

- ermito の投稿
飯島さま
Z. R.さま

ご教示いただいた
\unexpanded
をもちいた方法で、もっとも簡単かつ理想的に
出力をえることができました。ありがとうございました。

一点だけあえて難点をいえば、
見出し語が長大なものであるばあい、
ヘッダの左右で単語がぶつかってしまうというものがあります。

これを回避するためには、ヘッダに
\firstmark
\botmark
の両方をのせるのではなく、
奇数ページでは
\firstmark
だけヘッダの右端に、
偶数ページでは
\firstmark
だけをヘッダの左端にでるようにしたらどうかとおもい、
goisyuu.sty
の該当箇所らしきところを次のようにしてみました。

その結果、奇数ページではたしかに右端のみに見出し語がでました。
しかし、偶数ページでも右端に見出し語がでてしまいました。

どのように修正したらよいでしょうか。

ご教示いただければさいわいです。

よろしくおねがいいたします。

%%%ここから%%%

%%%ヘッダー・フッターのスタイル定義

\def\ps@goisyuu{%
\let\ps@jpl@in@in\ps@plain
\let\@mkboth\markboth
%%%
\def\@oddhead{%% 奇数ページヘッダー
\underline{\hbox to \textwidth{%% 下線を引く
%\rlap{\textbf\firstmark}%% 見出し語
\hfill
\llap{\textbf\firstmark}}%% 見出し語
}}
%%%

%%%
\def\@evenhead{%% 偶数ページヘッダー
\underline{\hbox to \textwidth{%% 下線を引く
\rlap{\textbf\firstmark}% % 見出し語
%\hfill
%\llap{\textbf\botmark}
}%% 見出し語
}}
%%%
}%

%%%ここまで%%%

ermito への返信

Re: 語彙集っぽいヘッダに特殊文字をだしたい

- 飯島 徹 の投稿
jsarticleではなくjsbookにしないといけないと思います
% それでもヘッダの左右が逆なのかな?

\documentclass[a4j]{jsbook}
\usepackage{tipa,dev}
%%% 語彙集パッケージ
\usepackage{goisyuu}
%%% スタイル選択
\makeatletter
\def\ps@goisyuu{%
\let\ps@jpl@in@in\ps@plain
\let\@mkboth\markboth
\def\@oddhead{%% 奇数ページヘッダー
  \underline{\hbox to \textwidth{\hfill\llap{\textbf\firstmark}}}%
}%
\def\@evenhead{%% 偶数ページヘッダー
  \underline{\hbox to \textwidth{\rlap{\textbf\firstmark}}}%
}%
}%
\makeatother
\pagestyle{goisyuu}
\begin{document}
% \midasigo{<見出し語>}{<品詞>}{<語義説明>}
% \midasigo* とすると見出し語の前にの長さの線が出ます
\begin{ABC}{あ}
%次の一行をコメントアウトするとエラーでない
\midasigo{{\dn k}}{名}{{\dn k}}
\midasigo{\textipa{\'AAA}}{n}{aaa}
\midasigo{\textipa{AAA}}{n}{aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo{あ}{名}{あいうえお}
\midasigo*{あ}{名}{あいうえお}
\end{ABC}

\begin{ABC}{い}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\midasigo{い}{名}{あいうえお}
\end{ABC}

\begin{ABC}{う}
\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
\midasigo{う}{名}{あいうえお}
\end{ABC}
\end{document}
飯島 徹 への返信

Re: 語彙集っぽいヘッダに特殊文字をだしたい

- ermito の投稿
飯島さま
たびたびのご教示おそれいります。

ご指摘のように
jsbook
とすることによって完全に解決しました。

作成中のものは某語の語彙集で、見本は添付のようなものです。
何かあればまたこの場で質問することがあるかとおもいます。

ご助力ありがとうございました。